下面一段是H264官方中文版中给出的解释:
“类别(在表中以C 表示)规定条带数据可以至多划分为三种条带数据类别。条带数据类别A 包含了类别2的所有语法元素。条带数据类别B 包含了类别3 的所有语法元素。条带数据类别C 包含了类别4 的所有语法元素。其他类别值的含义不作规定。某些语法元素需要使用两个类别值,这两个值通过竖线分开。在这些情况下,本文将会进一步说明应用的类别值的含义。对于在其他语法结构中使用的语法结构,它所包含的所有语法元素的类别值都应列出,通过竖线来分开。如果语法元素或者语法结构的类别标为”All”,它可以出现在所有的语法结构中。对于用在其他语法结构中的语法结构,语法表格中的数字类别值如果处于包含了一个类别值为“All”的语法结构中,那么该数字类别值被认为能够应用到类别为“All”的语法元素值。”
看下面的已知事实:
在H264中传输视频‘数据’时有以下5种NAL类型
nal_unit_typt_val NAL类型
1 一个非IDR图像的编码条带 slice_layer_without_partitioning_rbsp( )
2 编码条带数据分割块A slice_data_partition_a_layer_rbsp( )
3 编码条带数据分割块B slice_data_partition_b_layer_rbsp( )
4 编码条带数据分割块C slice_data_partition_c_layer_rbsp( )
5 IDR图像的编码条带 slice_layer_without_partitioning_rbsp( )
1和5不用解释了,主要是2,3,4,这是3种对于片数据的处理方式,其中2类型时,只传递片中最重要的信息,如片头,片中宏块的预测模式等,3类型是只传输残差,而4时则只可以传输残差中的AC系数。
对照句法表可以看到通过C中指定的数字值,限定了在各个句法元素在特定NAL类型中的使用,以达到在特定NAL中使用不同的句法元素,如不在4中传输残差的DC值,见毕书---表7.17中DC系数语法后面为3,而AC系数后面为3|4,这就达到了在 编码条带数据分割块B 中可以传输所有残差,而在编码条带数据分割块C中仅可以传输AC残差。
据此可以得到下面的结论:
C是语法元素可以出现在哪种NAL中的指示,NAL的类型由nal_type_unit指定