编码标准结构的帧:
3D视频——标准的帧结构为

0视点帧:I B B B B B B B
I B B B B B B B
1视点帧:P B B B B B B B
P B B B B B B B
一个GOP组包括16帧,其中左路8帧,右路8帧。左路每个GOP组有1个I帧,7个B帧,右路每个GOP组有1个P帧,7个B帧。
JM18.4在编码3D视频的时候,默认的情况下,编码出来的帧不是标准结构的帧。
IPPPBBBBbbbbBBbbbbPPBBBBbbbbBBbbbb
0视点帧:I B B B B B B B
P B B B B B B B
1视点帧:P B B B B B B B
P B B B B B B B
左路视频只有第一个GOP组有1个I帧,其余的GOP组以P帧作为第一个帧。
右路视频每个GOP组有1个P帧,7个B帧。
JM18.4在默认的情况下,
编码出来的帧如图:
对比默认结构域标准结构的两路视频的帧,可以得出修改的办法
默认结构:0视点帧
I B B B B B B B P B B B B B B B
标准结构:0视点帧
I B B B B B B B I B B B B B B B
默认结构:1视点帧
P B B B B B B B P B B B B B B B
标准结构:1视点帧
P B B B B B B B P B B B B B B B

通过前面两种情况下帧结构的对比,可以看出,1视点帧结构一致,0视点帧结构不同。
出现这种情况的原因主要是由于在默认情况下与标准情况下I帧出现的位置的设置不同。
因此找到解决问题的方法,即改变编码中I帧出现的位置,就可以将编码的帧变为标准结构的帧。
在编码配置文件中有这样一个设置:
IntraPeriod = 8
# Period of I-pictures (0=only first)
即I帧的间隔周期为8,每8帧设置一个I帧。
这样就完成了改变帧结构的设置。
如图是程序显示结果:

注意:程序输出时一个GOP组中B帧显示顺序在配置文件中可以设置,默认情况下和标准情况下帧输出顺序是一致的,不做修改
根据标准结构可以看出一个GOP组B帧输出的顺序为:
T4->T2->T1->T3->T6->T5->T7
配置文件中:/*r:reference, e:non reference.*/
ExplicitHierarchyFormat = "b3r0b1r1b0e2b2e2b5r1b4e2b6e2“
即B帧的输出顺序为:b3->b1->b0->b2->b5->b4->b6
这个输出的顺序与标准帧结构中B帧输出顺序一致。
T4->T2->T1->T3->T6->T5->T7
配置文件中:/*r:reference, e:non reference.*/
ExplicitHierarchyFormat = "b3r0b1r1b0e2b2e2b5r1b4e2b6e2“
即B帧的输出顺序为:b3->b1->b0->b2->b5->b4->b6
这个输出的顺序与标准帧结构中B帧输出顺序一致。
本文探讨了3D视频编码中标准帧结构与默认帧结构的区别,并提供了将默认帧结构调整为标准帧结构的方法。详细介绍了如何通过调整I帧的位置来实现这一目标。

被折叠的 条评论
为什么被折叠?



