/*! ************************************************************************************* * \brief * ue_v, reads an ue(v) syntax element, the length in bits is stored in * the global UsedBits variable * * \param tracestring * the string for the trace file * * \param bitstream * the stream to be read from * * \return * the value of the coded syntax element * ************************************************************************************* */ int ue_v (char *tracestring, Bitstream *bitstream) { SyntaxElement symbol, *sym=&symbol; assert (bitstream->streamBuffer != NULL); sym->type = SE_HEADER; sym->mapping = linfo_ue; // Mapping rule SYMTRACESTRING(tracestring); readSyntaxElement_VLC (sym, bitstream); UsedBits+=sym->len; return sym->value1; }
/*! ************************************************************************************* * \brief * ue_v, reads an se(v) syntax element, the length in bits is stored in * the global UsedBits variable * * \param tracestring * the string for the trace file * * \param bitstream * the stream to be read from * * \return * the value of the coded syntax element * ************************************************************************************* */ int se_v (char *tracestring, Bitstream *bitstream) { SyntaxElement symbol; assert (bitstream->streamBuffer != NULL); symbol.type = SE_HEADER; symbol.mapping = linfo_se; // Mapping rule: signed integer SYMTRACESTRING(tracestring); readSyntaxElement_VLC (&symbol, bitstream); UsedBits+=symbol.len; return symbol.value1; }
/*! ************************************************************************************* * \brief * ue_v, reads an u(v) syntax element, the length in bits is stored in * the global UsedBits variable * * \param LenInBits * length of the syntax element * * \param tracestring * the string for the trace file * * \param bitstream * the stream to be read from * * \return * the value of the coded syntax element * ************************************************************************************* */ int u_v (int LenInBits, char*tracestring, Bitstream *bitstream) { SyntaxElement symbol, *sym=&symbol; assert (bitstream->streamBuffer != NULL); sym->type = SE_HEADER; sym->mapping = linfo_ue; // Mapping rule sym->len = LenInBits; SYMTRACESTRING(tracestring); readSyntaxElement_FLC (sym, bitstream); UsedBits+=sym->len; return sym->inf; };
/*! ************************************************************************************* * \brief * ue_v, reads an u(v) syntax element, the length in bits is stored in * the global p_Dec->UsedBits variable * * \param LenInBits * length of the syntax element * * \param tracestring * the string for the trace file * * \param bitstream * the stream to be read from * * \return * the value of the coded syntax element * ************************************************************************************* */ int u_v (int LenInBits, char*tracestring, Bitstream *bitstream) { SyntaxElement symbol; symbol.inf = 0; //assert (bitstream->streamBuffer != NULL); symbol.type = SE_HEADER; symbol.mapping = linfo_ue; // Mapping rule symbol.len = LenInBits; SYMTRACESTRING(tracestring); readSyntaxElement_FLC (&symbol, bitstream); p_Dec->UsedBits+=symbol.len; return symbol.inf; }
/*! ************************************************************************************* * \brief * i_v, reads an i(v) syntax element, the length in bits is stored in * the global UsedBits variable * * \param LenInBits * length of the syntax element * * \param tracestring * the string for the trace file * * \param bitstream * the stream to be read from * * \return * the value of the coded syntax element * ************************************************************************************* */ int i_v (int LenInBits, char*tracestring, Bitstream *bitstream) { SyntaxElement symbol; symbol.inf = 0; assert (bitstream->streamBuffer != NULL); symbol.type = SE_HEADER; symbol.mapping = linfo_ue; // Mapping rule symbol.len = LenInBits; SYMTRACESTRING(tracestring); readSyntaxElement_FLC (&symbol, bitstream); UsedBits+=symbol.len; // can be negative symbol.inf = -( symbol.inf & (1 << (LenInBits - 1)) ) | symbol.inf; return symbol.inf; }