summaryrefslogtreecommitdiff
path: root/libavcodec/clearvideodata.h
Commit message (Collapse)AuthorAge
* avcodec/clearvideo: Apply VLC offset during initAndreas Rheinhardt2020-12-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/clearvideo: Improve handling of VLC escape valuesAndreas Rheinhardt2020-12-08
| | | | | | | | | | | | | | Both the motion vector as well as the bias VLCs have an escape code; for the motion vectors, this value depended on the specific VLC table, whereas all the bias VLCs used the same value; the escape value has not been inlined in the latter case. But for both kinds of VLCs there are lots of values that are unused for all the VLCs of each kind and each of these can be used as common escape value, thus allowing to inline the escape value. This commit implements this. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/clearvideo: Avoid huge VLC length tablesAndreas Rheinhardt2020-12-08
| | | | | | | | | | After the motion vector and bias values tables have been reordered so that the codes are ordered from left to right, it emerged that the length of these entries are actually ascending for every table. Therefore it is possible to encode them in a run-length style and create the actual length tables during runtime. This commit implements this. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/clearvideo: Avoid code duplication when initializing VLCsAndreas Rheinhardt2020-12-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/clearvideo: Avoid code tables for initializing VLCsAndreas Rheinhardt2020-12-08
| | | | | | | | | | | | | | | | | | | | The ClearVideo decoder uses VLC tables that are initialized at runtime from static length, symbol and codes tables. Yet the code tables can be omitted by subjecting all of these tables to the permutation that orders the codes from left to right in the tree. After this is done, the codes can be easily computed at runtime from the lengths and therefore omitted. This saves about 10KB. Only one minor complication is encountered when doing so: The tree corresponding to the AC VLC codes is incomplete; but this can be handled by adding an entry with negative length. Furthermore, there are also VLCs that are only initialized with lengths and codes tables with codes of type uint16_t. These have also been switched to ff_init_vlc_from_lengths() as this means that one can replace the uint16_t codes tables with uint8_t symbols tables. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/clearvideo: add missing wrappers to clearvideodata.hJames Almer2018-04-03
| | | | | | Fixes make fate-source Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/clearvideo: add inter-frame decodingPaul B Mahol2018-04-03
Signed-off-by: Paul B Mahol <onemda@gmail.com>