-
语法函数类别和描述符的规范-密码学-应用密码学:协议、算法与c源程序 (英文版)下载
资源介绍
7.2 语法函数、类别和描述符的规范
以下函数用于语法描述。这些函数假定解码器中存在一个比特流指针,这个指针指向比特流中解码过程要读
取的下一个比特的位置。
byte_aligned( ) 的规定如下:
— 如果比特流的当前位置是在字节边界,即,比特流中的下一比特是字节第一个比特,byte_aligned( )的
返回值为TRUE。
— 否则,byte_aligned( )的返回值为FALSE。
more_data_in_byte_stream( ),只有在附件 B 规定的字节流 NAL单元语法结构中使用,规定如下:
— 如果字节流中后续还有更多数据,more_data_in_byte_stream( )的返回值为TRUE。
— 否则,more_data_in_byte_stream( ) 的返回值为 FALSE。
more_rbsp_data( ) 的规定如下:
— 如果在rbsp_trailing_bits( )之前的RBSP中有更多数据,more_rbsp_data( ) 的返回值为TRUE。
— 否则,more_rbsp_data( )的返回值为 FALSE。
判断 RBSP 中是否有更多数据的方法由应用规定(或者附件 B 中使用字节流格式的应用)。
more_rbsp_trailing_data( ) 的规定如下:
— 如果RBSP中有更多数据,more_rbsp_trailing_data( ) 的返回值为TRUE。
— 否则,more_rbsp_trailing_data( ) 的返回值为 FALSE。
next_bits(n)提供比特流中接下来的比特用于比较的目的,而不需要移动比特流指针。该函数使比特流中的下
n 个比特可见,n 在这里是函数的参数。当用在附件 B 规定的字节流中时,如果剩余的字节流已不足 n 个比特,
next_bits( n )返回值为 0。
read_bits( n ) 从比特流中读取下面的 n 个比特,并且将比特流指针向前移动 n 个比特。当 n 等于 0 时,
read_bits( n )的返回值为 0 并且不移动比特流指针。
类别(在表中以 C 表示)规定条带数据可以至多划分为三种条带数据类别。条带数据类别 A 包含了类别 2
的所有语法元素。条带数据类别 B 包含了类别 3 的所有语法元素。条带数据类别 C 包含了类别 4 的所有语法元
素。其他类别值的含义不作规定。某些语法元素需要使用两个类别值,这两个值通过竖线分开。在这些情况下,
本文将会进一步说明应用的类别值的含义。对于在其他语法结构中使用的语法结构,它所包含的所有语法元素的
类别值都应列出,通过竖线来分开。如果语法元素或者语法结构的类别标为”All”,它可以出现在所有的语法结构
中。对于用在其他语法结构中的语法结构,语法表格中的数字类别值如果处于包含了一个类别值为“All”的语
法结构中,那么该数字类别值被认为能够应用到类别为“All”的语法元素值。
如下描述符规定了每个语法元素的解析处理。对于某些语法元素,需要使用通过竖线分开的两个描述符。在
这些情况下 ,左边的描述符在 entropy_coding_mode_flag 等 于 0 的 时候使 用 ,右边的描述符在
entropy_coding_mode_flag 等于 1 的时候使用。
— ae(v):上下文自适应算术熵编码语法元素。该描述符的解析过程在9.3节中规定。
— b(8):任意形式的8比特字节。该描述符的解析过程通过函数read_bits( 8 )的返回值来规定。
— ce(v):左位在先的上下文自适应可变长度熵编码语法元素。该描述符的解析过程在9.2节中规定。
— f(n):n位固定模式比特串(由左至右),左位在先, 该描述符的解析过程通过函数read_bits( n )的返
回值来规定。
— i(n):使用n比特的有符号整数。在语法表中,如果n是‘v’,其比特数由其它语法元素值确定。解析
过程由函数read_bits(n)的返回值规定,该返回值用最高有效位在前的2的补码表示。