1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
It is far from complete, anyway :
General:
--------
Encoder:
########
* CABAC: check if adaptive model is really working. (I didn't see any improvments)
* Field support : no and I probably won't do it.
* Slice A/B/C (partion): is there any interest doing it ? (Shouldn't be hard).
- extend x264_t
- review x264_macroblock_write_cavlc
* Intra encoding:
- in I_4x4 mode, some predict mode aren't tested and not supported :
when some pixels around are unavailble but could be predicted from
others. (see the norm)
* Inter coding:
- D_4x8 D_8x4 and D_4x4 ME P block -> done but too slow.
- B_SUB8x8 types.
- better SKIP detection.
- long terme ?
- ...
* B frame: B_L0/L1/BI/SKIP/DIRECT work (need more testing).
-> adaptive placement of B-frames
-> look at weighted prediction (should give better result)
-> better analyse algo (as always ;)
-> joint motion estimation of BI types
* Speed issue (oprofile is your friend)
- mc.c:30% and pixel.c:20% (mc is used by ME)
- Motion Estimation -> try better/faster algos.
- loop filter
- stream writing (bs)
- ...
* Time spent: (test file: 720x576, mmx, mmxext)
CAVLC: analyse=73% encode=15% write=4% filter=6%
CABAC: analyse=69% encode=16% write=8% filter=5%
* Limitations:
- frame width/height %16 == 0 only.
* ...
Decoder:
########
* Currently decoder/* won't even compile, and anyway is unusable.
Build:
######
* Finish to port gcc inlined asm to nasm file.
Coding issue:
-------------
* table : somes are duplicated -> find a solution (easy).
* documentations ? (mouaaaarfff ;)
* ...
|