#include "contributors.h"
#include "global.h"
#include "vlc.h"
#include "elements.h"

Go to the source code of this file.
Defines | |
| #define | SYMTRACESTRING(s) |
Functions | |
| int | ue_v (char *tracestring, Bitstream *bitstream) |
| int | se_v (char *tracestring, Bitstream *bitstream) |
| int | u_v (int LenInBits, char *tracestring, Bitstream *bitstream) |
| int | i_v (int LenInBits, char *tracestring, Bitstream *bitstream) |
| Boolean | u_1 (char *tracestring, Bitstream *bitstream) |
| void | linfo_ue (int len, int info, int *value1, int *dummy) |
| void | linfo_se (int len, int info, int *value1, int *dummy) |
| void | linfo_cbp_intra (int len, int info, int *cbp, int *dummy) |
| void | linfo_cbp_inter (int len, int info, int *cbp, int *dummy) |
| void | linfo_levrun_inter (int len, int info, int *level, int *irun) |
| void | linfo_levrun_c2x2 (int len, int info, int *level, int *irun) |
| int | readSyntaxElement_VLC (SyntaxElement *sym, Bitstream *currStream) |
| int | readSyntaxElement_UVLC (SyntaxElement *sym, ImageParameters *img, struct datapartition *dP) |
| int | readSyntaxElement_Intra4x4PredictionMode (SyntaxElement *sym, ImageParameters *img, Bitstream *currStream) |
| int | GetVLCSymbol_IntraMode (byte buffer[], int totbitoffset, int *info, int bytecount) |
| int | more_rbsp_data (byte buffer[], int totbitoffset, int bytecount) |
| int | uvlc_startcode_follows (Slice *currSlice, int dummy) |
| int | GetVLCSymbol (byte buffer[], int totbitoffset, int *info, int bytecount) |
| static int | ShowBitsThres (int inf, int numbits) |
| int | code_from_bitstream_2d (SyntaxElement *sym, Bitstream *currStream, const byte *lentab, const byte *codtab, int tabwidth, int tabheight, int *code) |
| int | readSyntaxElement_FLC (SyntaxElement *sym, Bitstream *currStream) |
| int | readSyntaxElement_NumCoeffTrailingOnes (SyntaxElement *sym, Bitstream *currStream, char *type) |
| int | readSyntaxElement_NumCoeffTrailingOnesChromaDC (SyntaxElement *sym, Bitstream *currStream) |
| int | readSyntaxElement_Level_VLC0 (SyntaxElement *sym, Bitstream *currStream) |
| int | readSyntaxElement_Level_VLCN (SyntaxElement *sym, int vlc, Bitstream *currStream) |
| int | readSyntaxElement_TotalZeros (SyntaxElement *sym, Bitstream *currStream) |
| int | readSyntaxElement_TotalZerosChromaDC (SyntaxElement *sym, Bitstream *currStream) |
| int | readSyntaxElement_Run (SyntaxElement *sym, Bitstream *currStream) |
| int | GetBits (byte buffer[], int totbitoffset, int *info, int bitcount, int numbits) |
| int | ShowBits (byte buffer[], int totbitoffset, int bitcount, int numbits) |
Variables | |
| int | UsedBits |
| static const byte | NCBP [2][48][2] |
| const byte | NTAB1 [4][8][2] |
| const byte | LEVRUN1 [16] |
| const byte | NTAB2 [4][8][2] |
| const byte | LEVRUN3 [4] |
| const byte | NTAB3 [2][2][2] |
Definition in file vlc.c.
| int code_from_bitstream_2d | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream, | |||
| const byte * | lentab, | |||
| const byte * | codtab, | |||
| int | tabwidth, | |||
| int | tabheight, | |||
| int * | code | |||
| ) |
code from bitstream (2d tables)
Definition at line 641 of file vlc.c.
References Bitstream::frame_bitoffset, syntaxelement::len, ShowBitsThres(), Bitstream::streamBuffer, syntaxelement::value1, and syntaxelement::value2.
Referenced by readSyntaxElement_NumCoeffTrailingOnes(), readSyntaxElement_NumCoeffTrailingOnesChromaDC(), readSyntaxElement_Run(), readSyntaxElement_TotalZeros(), and readSyntaxElement_TotalZerosChromaDC().

| int GetBits | ( | byte | buffer[], | |
| int | totbitoffset, | |||
| int * | info, | |||
| int | bitcount, | |||
| int | numbits | |||
| ) |
Reads bits from the bitstream buffer.
| buffer | containing VLC-coded data bits | |
| totbitoffset | bit offset from start of partition | |
| info | returns value of the read bits | |
| bitcount | total bytes in bitstream | |
| numbits | number of bits to read |
Definition at line 1234 of file vlc.c.
Referenced by readIPCM_CABAC(), and readSyntaxElement_FLC().
| int GetVLCSymbol | ( | byte | buffer[], | |
| int | totbitoffset, | |||
| int * | info, | |||
| int | bytecount | |||
| ) |
read one exp-golomb VLC symbol
| buffer | containing VLC-coded data bits | |
| totbitoffset | bit offset from start of partition | |
| info | returns the value of the symbol | |
| bytecount | buffer length |
Definition at line 557 of file vlc.c.
Referenced by readSyntaxElement_VLC().
| int i_v | ( | int | LenInBits, | |
| char * | tracestring, | |||
| Bitstream * | bitstream | |||
| ) |
i_v, reads an i(v) syntax element, the length in bits is stored in the global UsedBits variable
| LenInBits | length of the syntax element | |
| tracestring | the string for the trace file | |
| bitstream | the stream to be read from |
Definition at line 200 of file vlc.c.
References syntaxelement::inf, syntaxelement::len, linfo_ue(), syntaxelement::mapping, readSyntaxElement_FLC(), SE_HEADER, and syntaxelement::type.
Referenced by interpret_picture_timing_info().

| void linfo_cbp_inter | ( | int | len, | |
| int | info, | |||
| int * | cbp, | |||
| int * | dummy | |||
| ) |
Definition at line 310 of file vlc.c.
References linfo_ue(), and NCBP.
Referenced by readCBPandCoeffsFromNAL().

| void linfo_cbp_intra | ( | int | len, | |
| int | info, | |||
| int * | cbp, | |||
| int * | dummy | |||
| ) |
Definition at line 290 of file vlc.c.
References linfo_ue(), and NCBP.
Referenced by readCBPandCoeffsFromNAL().

| void linfo_levrun_c2x2 | ( | int | len, | |
| int | info, | |||
| int * | level, | |||
| int * | irun | |||
| ) |
Definition at line 364 of file vlc.c.
References LEVRUN3.
Referenced by readCBPandCoeffsFromNAL().
| void linfo_levrun_inter | ( | int | len, | |
| int | info, | |||
| int * | level, | |||
| int * | irun | |||
| ) |
Definition at line 329 of file vlc.c.
References NTAB1.
Referenced by readCBPandCoeffsFromNAL(), and readCompCoeff4x4SMB_CABAC().
| void linfo_se | ( | int | len, | |
| int | info, | |||
| int * | value1, | |||
| int * | dummy | |||
| ) |
mapping rule for se(v) syntax elements
Definition at line 271 of file vlc.c.
Referenced by readMotionInfoFromNAL(), and se_v().
| void linfo_ue | ( | int | len, | |
| int | info, | |||
| int * | value1, | |||
| int * | dummy | |||
| ) |
mapping rule for ue(v) syntax elements
Definition at line 255 of file vlc.c.
Referenced by i_v(), linfo_cbp_inter(), linfo_cbp_intra(), prepareListforRefIdx(), read_ipred_modes(), read_one_macroblock(), u_v(), and ue_v().
| int more_rbsp_data | ( | byte | buffer[], | |
| int | totbitoffset, | |||
| int | bytecount | |||
| ) |
test if bit buffer contains only stop bit
| buffer | buffer containing VLC-coded data bits | |
| totbitoffset | bit offset from start of partition | |
| bytecount | buffer length |
Definition at line 494 of file vlc.c.
Referenced by InterpretPPS(), and uvlc_startcode_follows().
| int readSyntaxElement_FLC | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream | |||
| ) |
read FLC codeword from UVLC-partition
Definition at line 691 of file vlc.c.
References Bitstream::bitstream_length, Bitstream::frame_bitoffset, GetBits(), syntaxelement::inf, syntaxelement::len, Bitstream::streamBuffer, and syntaxelement::value1.
Referenced by i_v(), read_one_macroblock(), readCBPandCoeffsFromNAL(), readCoeff4x4_CAVLC(), readIPCMcoeffsFromNAL(), readRefPictureIdx_FLC(), and u_v().

| int readSyntaxElement_Intra4x4PredictionMode | ( | SyntaxElement * | sym, | |
| ImageParameters * | img, | |||
| Bitstream * | currStream | |||
| ) |
read next VLC codeword for 4x4 Intra Prediction Mode and map it to the corresponding Intra Prediction Direction
Definition at line 431 of file vlc.c.
References Bitstream::bitstream_length, Bitstream::frame_bitoffset, syntaxelement::inf, syntaxelement::len, Bitstream::streamBuffer, TRACE, and syntaxelement::value1.
Referenced by read_ipred_modes().
| int readSyntaxElement_Level_VLC0 | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream | |||
| ) |
read Level VLC0 codeword from UVLC-partition
Definition at line 888 of file vlc.c.
References Bitstream::bitstream_length, Bitstream::frame_bitoffset, syntaxelement::inf, syntaxelement::len, ShowBits(), and Bitstream::streamBuffer.
Referenced by readCoeff4x4_CAVLC().

| int readSyntaxElement_Level_VLCN | ( | SyntaxElement * | sym, | |
| int | vlc, | |||
| Bitstream * | currStream | |||
| ) |
read Level VLC codeword from UVLC-partition
Definition at line 946 of file vlc.c.
References Bitstream::bitstream_length, Bitstream::frame_bitoffset, syntaxelement::inf, syntaxelement::len, ShowBits(), and Bitstream::streamBuffer.
Referenced by readCoeff4x4_CAVLC().

| int readSyntaxElement_NumCoeffTrailingOnes | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream, | |||
| char * | type | |||
| ) |
read NumCoeff/TrailingOnes codeword from UVLC-partition
Definition at line 717 of file vlc.c.
References Bitstream::bitstream_length, code_from_bitstream_2d(), Bitstream::frame_bitoffset, syntaxelement::len, ShowBits(), Bitstream::streamBuffer, syntaxelement::value1, and syntaxelement::value2.
Referenced by readCoeff4x4_CAVLC().

| int readSyntaxElement_NumCoeffTrailingOnesChromaDC | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream | |||
| ) |
read NumCoeff/TrailingOnes codeword from UVLC-partition ChromaDC
Definition at line 821 of file vlc.c.
References code_from_bitstream_2d(), syntaxelement::len, syntaxelement::value1, and syntaxelement::value2.
Referenced by readCoeff4x4_CAVLC().

| int readSyntaxElement_Run | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream | |||
| ) |
read Run codeword from UVLC-partition
Definition at line 1175 of file vlc.c.
References code_from_bitstream_2d(), syntaxelement::len, and syntaxelement::value1.
Referenced by readCoeff4x4_CAVLC().

| int readSyntaxElement_TotalZeros | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream | |||
| ) |
read Total Zeros codeword from UVLC-partition
Definition at line 1020 of file vlc.c.
References code_from_bitstream_2d(), syntaxelement::len, and syntaxelement::value1.
Referenced by readCoeff4x4_CAVLC().

| int readSyntaxElement_TotalZerosChromaDC | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream | |||
| ) |
read Total Zeros Chroma DC codeword from UVLC-partition
Definition at line 1084 of file vlc.c.
References code_from_bitstream_2d(), syntaxelement::len, and syntaxelement::value1.
Referenced by readCoeff4x4_CAVLC().

| int readSyntaxElement_UVLC | ( | SyntaxElement * | sym, | |
| ImageParameters * | img, | |||
| struct datapartition * | dP | |||
| ) |
read next UVLC codeword from UVLC-partition and map it to the corresponding syntax element
Definition at line 419 of file vlc.c.
References datapartition::bitstream, and readSyntaxElement_VLC().

| int readSyntaxElement_VLC | ( | SyntaxElement * | sym, | |
| Bitstream * | currStream | |||
| ) |
read next UVLC codeword from UVLC-partition and map it to the corresponding syntax element
Definition at line 394 of file vlc.c.
References Bitstream::bitstream_length, Bitstream::frame_bitoffset, GetVLCSymbol(), syntaxelement::inf, syntaxelement::len, syntaxelement::mapping, Bitstream::streamBuffer, syntaxelement::value1, and syntaxelement::value2.
Referenced by readSyntaxElement_UVLC(), se_v(), and ue_v().

| int se_v | ( | char * | tracestring, | |
| Bitstream * | bitstream | |||
| ) |
ue_v, reads an se(v) syntax element, the length in bits is stored in the global UsedBits variable
| tracestring | the string for the trace file | |
| bitstream | the stream to be read from |
Definition at line 131 of file vlc.c.
References syntaxelement::len, linfo_se(), syntaxelement::mapping, readSyntaxElement_VLC(), SE_HEADER, syntaxelement::type, and syntaxelement::value1.
Referenced by interpret_film_grain_characteristics_info(), interpret_pan_scan_rect_info(), interpret_post_filter_hints_info(), InterpretPPS(), pred_weight_table(), and RestOfSliceHeader().

| int ShowBits | ( | byte | buffer[], | |
| int | totbitoffset, | |||
| int | bitcount, | |||
| int | numbits | |||
| ) |
Reads bits from the bitstream buffer.
| buffer | buffer containing VLC-coded data bits | |
| totbitoffset | bit offset from start of partition | |
| bitcount | total bytes in bitstream | |
| numbits | number of bits to read |
Definition at line 1285 of file vlc.c.
Referenced by readSyntaxElement_Level_VLC0(), readSyntaxElement_Level_VLCN(), and readSyntaxElement_NumCoeffTrailingOnes().
| static int ShowBitsThres | ( | int | inf, | |
| int | numbits | |||
| ) | [inline, static] |
Reads bits from the bitstream buffer (Threshold based).
| inf | bytes to extract numbits from with bitoffset already applied | |
| numbits | number of bits to read |
Definition at line 615 of file vlc.c.
Referenced by code_from_bitstream_2d().
ue_v, reads an u(1) syntax element, the length in bits is stored in the global UsedBits variable
| tracestring | the string for the trace file | |
| bitstream | the stream to be read from |
Definition at line 238 of file vlc.c.
References u_v().
Referenced by dec_ref_pic_marking(), interpret_deblocking_filter_display_preference_info(), interpret_dec_ref_pic_marking_repetition_info(), interpret_film_grain_characteristics_info(), interpret_motion_constrained_slice_group_set_info(), interpret_pan_scan_rect_info(), interpret_picture_timing_info(), interpret_post_filter_hints_info(), interpret_recovery_point_info(), interpret_spare_pic(), interpret_stereo_video_info_info(), interpret_subsequence_characteristics_info(), interpret_subsequence_info(), interpret_subsequence_layer_characteristics_info(), InterpretPPS(), pred_weight_table(), ref_pic_list_reordering(), and RestOfSliceHeader().

| int u_v | ( | int | LenInBits, | |
| char * | tracestring, | |||
| Bitstream * | bitstream | |||
| ) |
ue_v, reads an u(v) syntax element, the length in bits is stored in the global UsedBits variable
| LenInBits | length of the syntax element | |
| tracestring | the string for the trace file | |
| bitstream | the stream to be read from |
Definition at line 165 of file vlc.c.
References syntaxelement::inf, syntaxelement::len, linfo_ue(), syntaxelement::mapping, readSyntaxElement_FLC(), SE_HEADER, and syntaxelement::type.
Referenced by FirstPartOfSliceHeader(), interpret_buffering_period_info(), interpret_film_grain_characteristics_info(), interpret_motion_constrained_slice_group_set_info(), interpret_picture_timing_info(), interpret_post_filter_hints_info(), interpret_recovery_point_info(), interpret_subsequence_characteristics_info(), interpret_subsequence_layer_characteristics_info(), InterpretPPS(), RestOfSliceHeader(), and u_1().

| int ue_v | ( | char * | tracestring, | |
| Bitstream * | bitstream | |||
| ) |
ue_v, reads an ue(v) syntax element, the length in bits is stored in the global UsedBits variable
| tracestring | the string for the trace file | |
| bitstream | the stream to be read from |
Definition at line 100 of file vlc.c.
References syntaxelement::len, linfo_ue(), syntaxelement::mapping, readSyntaxElement_VLC(), SE_HEADER, syntaxelement::type, and syntaxelement::value1.
Referenced by dec_ref_pic_marking(), FirstPartOfSliceHeader(), interpret_buffering_period_info(), interpret_deblocking_filter_display_preference_info(), interpret_dec_ref_pic_marking_repetition_info(), interpret_film_grain_characteristics_info(), interpret_full_frame_freeze_info(), interpret_full_frame_snapshot_info(), interpret_motion_constrained_slice_group_set_info(), interpret_pan_scan_rect_info(), interpret_post_filter_hints_info(), interpret_progressive_refinement_end_info(), interpret_progressive_refinement_start_info(), interpret_recovery_point_info(), interpret_scene_information(), interpret_spare_pic(), interpret_subsequence_characteristics_info(), interpret_subsequence_info(), interpret_subsequence_layer_characteristics_info(), InterpretPPS(), pred_weight_table(), read_new_slice(), ref_pic_list_reordering(), and RestOfSliceHeader().

| int uvlc_startcode_follows | ( | Slice * | currSlice, | |
| int | dummy | |||
| ) |
Check if there are symbols for the next MB.
Definition at line 528 of file vlc.c.
References assignSE2partition, datapartition::bitstream, Bitstream::bitstream_length, Slice::dp_mode, Bitstream::frame_bitoffset, more_rbsp_data(), Slice::partArr, and Bitstream::streamBuffer.

| const byte LEVRUN1[16] |
Initial value:
{
2,1,0,0
}
Definition at line 73 of file vlc.c.
Referenced by linfo_levrun_c2x2().
Initial value:
{
{
{15, 0},{ 0, 1},{ 7, 2},{11, 4},{13, 8},{14, 3},{ 3, 5},{ 5,10},{10,12},{12,15},{ 1, 7},{ 2,11},
{ 4,13},{ 8,14},{ 6, 6},{ 9, 9},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},
{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},
{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0},{ 0, 0}
},
{
{47, 0},{31,16},{15, 1},{ 0, 2},{23, 4},{27, 8},{29,32},{30, 3},{ 7, 5},{11,10},{13,12},{14,15},
{39,47},{43, 7},{45,11},{46,13},{16,14},{ 3, 6},{ 5, 9},{10,31},{12,35},{19,37},{21,42},{26,44},
{28,33},{35,34},{37,36},{42,40},{44,39},{ 1,43},{ 2,45},{ 4,46},{ 8,17},{17,18},{18,20},{20,24},
{24,19},{ 6,21},{ 9,26},{22,28},{25,23},{32,27},{33,29},{34,30},{36,22},{40,25},{38,38},{41,41}
}
}
Definition at line 34 of file vlc.c.
Referenced by linfo_cbp_inter(), and linfo_cbp_intra().
Initial value:
{
{{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}},
{{1,1},{1,2},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}},
{{2,0},{1,3},{1,4},{1,5},{0,0},{0,0},{0,0},{0,0}},
{{3,0},{2,1},{2,2},{1,6},{1,7},{1,8},{1,9},{4,0}},
}
Definition at line 51 of file vlc.c.
Referenced by linfo_levrun_inter().
| const byte NTAB2[4][8][2] |
| const byte NTAB3[2][2][2] |