merge
[libav.git] / doc / README.tech
1 Technical notes:
2 ---------------
3
4 Video:
5 -----
6
7 - The decision intra/predicted macroblock is the algorithm suggested
8 by the mpeg 1 specification.
9
10 - only Huffman based H263 is supported, mainly because of patent
11 issues.
12
13 - MPEG4 is supported, as an extension of the H263 encoder. MPEG4 DC
14 prediction is used, but not AC prediction. Specific VLC are used for
15 intra pictures. The output format is compatible with Open DIVX
16 version 47.
17
18 - MJPEG is supported, but in the current version the huffman tables
19 are not optimized. It could be interesting to add this feature for
20 the flash format.
21
22 - To increase speed, only motion vectors (0,0) are tested for real
23 time compression. NEW: now motion compensation is done with several
24 methods : none, full, log, and phods. The code is mmx/sse optimized.
25
26 - In high quality mode, full search is used for motion
27 vectors. Currently, only fcode = 1 is used for both H263/MPEG1. Half
28 pel vectors are used.
29
30 I also plan to improve the bitrate control which is too simplistic.
31
32 Audio:
33 -----
34
35 - I rewrote the mpeg audio layer 2 compatible encoder from scratch. It
36 is one of the simplest encoder you can imagine (800 lines of C code
37 !). It is also one of the fastest because of its simplicity. There
38 are still some problems of overflow. A minimal psycho acoustic model
39 could be added. Currently, stereo is supported, but not joint
40 stereo.
41
42 - I rewrote the AC3 audio encoder from scratch. It is fairly naive,
43 but the result are quiet interesting at 64 kbit/s. It includes
44 extensions for low sampling rates used in some Internet
45 formats. Differential and coupled stereo is not handled. Stereo
46 channels are simply handled as two mono channels.