H264语法分析( 三 )


bits()
3
}
表8
4片层C分区句法
句法
C
Desc
(){
4
ue(v)
if()
4
()/* only4 parts of ()*/
4
ue(v)
bits()
4
}
表9
5拖尾( bits)句法
句法
C
Desc
(){
/* equal to 1 */
All
f(1)
while(!())
bit/* equal to 0 */
All
f(1)
}
表10

H264语法分析

文章插图
6片头(Slice )句法
句法
C
Desc
(){
/*片中的第一个宏块地址,片通过这个句法元素来标定它自己的地址 。在帧场自适应模式下,宏块都是成对出现,这时本句法元素表示的是第几个宏块对,对应的第一个宏块的真实地址应该是:2* */
2
ue(v)
/*片的类型,见表12 */
2
ue(v)
/*引用的图像集索引*/
2
ue(v)
/*每个参考帧都有一个连续的作为它们的标识,它指明了各图像的解码顺序 。非参考帧也有,但没有意义 。*/
2
u(v)
if(!){
/*片层中标识图像编码模式的唯一一个元素,详细描述,见图3 */
2
u(1)
if()
/* 1:底场,0:顶场*/
2
u(1)
}
if(==5)
/* IDR图像标识,不同的IDR图像有不同的IDR值 。场模式下,IDR帧的两个场有相同的值,[0..65535] */
2
ue(v)
if(==0){
/*在poc的第一种算法中,显示传递poc的值,u(v)中,v=+4 */
2
u(v)
if(ag && !)
/*如果是在场模式下,场对中的两个场都各自被构造为一个图像,它们有各自的poc的计算方法来分别计算两场的poc,也就是一个场对拥有一对poc值;而在帧模式或帧场自适应模式下,一个图像只能根据片头中的元素计算出一个poc 。在不为1时,每个帧或场自适应的图像在解码时,帧或帧场自适应中包含的两个场也必须有各自的poc值,通过本元素,可以在已经解码的帧或帧场自适应图像的poc基础上新映射一个poc,并把它赋给底场 。*/
2
se(v)
}
if(==1 && !){
[0]/* poc的第二和第三种算法是从中映射得来,本元素用于帧编码下的底场和场编码方式的场*/
2
se(v)
if(ag && !)
[1]/*用于帧编码下的顶场*/
2
se(v)
}
if()
/*冗余片的id号*/
2
ue(v)
if(==B)
/* B图像在直接预测模式下,1:空间预测,0:时间预测*/
2
u(1)
if(==P||==SP||==B){
/*重载PPS中的参考帧队列中实际可用的参考帧的数目 。*/
2
u(1)
if(){
/*重载值*/
2
ue(v)
if(==B)
/*重载值*/
2
ue(v)
}
}
ing()/*见第7节描述*/
2
if(( && (==P || ==SP)) || (==1 && ==B))
()/*见第8节描述*/
2
if(!=0)
()/*见第9节描述*/
2
if(flag && !=1 &&!= SI)
/*给出cabac初始化时表格的选择,[0..2] */
2
ue(v)
/*指出用于当前片的所有宏块的量化参数的初始值 。=26++,[0..51] */
2
se(v)
if(==SP || ==SI){
if(==SP)
/*指出SP帧中的p宏块的解码方式是否是模式*/
2
u(1)
/*与的语义相似,用于SP和SI,QSY=26++,[0..51] */
2
se(v)
}
if(){
/* H.264指定了一套算法可以在解码器端独立地计算图像中各边界的滤波强度进行滤波 。除了解码器独立计算之外,编码器也可以传递句法元素来干涉滤波强度,该元素指定了在块的是否使用滤波,同时批明那个块的边界不用滤波*/
2
ue(v)
if( != 1){
/*增强alpha时的偏移值,= =3 &&-> */