笔记 :AVS2背景建模

BG帧:用于计算一个图像与背景的差分结果的背景图像缓冲;在差分模式启用时,BG帧是S帧的参考帧.

差分预测全局运动矢量数量global_mv_num_x

     4位无符号整数。表示当前图像在差分模式下与BG帧做差分运算时用到的横轴轴方向的全局运动矢量数量。


差分预测全局运动矢量数量global_mv_num_y

     4位无符号整数。表示当前图像在差分模式下与BG帧做差分运算时用到的纵轴方向的全局运动矢量数量。


差分预测全局运动矢量global_mv_x[i]

     4位无符号整数。表示当前图像在差分模式下与BG帧做差分运算时用到的全局运动矢量的横坐标。


差分预测全局运动矢量global_mv_y[i]

     4位无符号整数。表示当前图像在差分模式下与BG帧做差分运算时用到的全局运动矢量的纵坐标。


差分模式允许标志   difference_mode_enable标志。

     值为“1”表示当前图像允许使用差分模式编码。值为“0”表示当前图像不使用差分模式编码。


宏块差分模式标志   difference_mode_flag

标志。值为“1”表示当前宏块使用差分模式编码。值为“0”表示当前宏块不使用差分模式编码。


背景图像输出标志  background_picture_output_flag

标志。如果该标志不存在,BackgroundPictureOutputFlag的值为1。如果background_picture_output_flag的值为“1”,表示当前图像是应被输出的G帧,BackgroundPictureOutputFlag的值为1;如果background_picture_output_flag的值为“0”,表示当前图像是不应被输出的G帧,BackgroundPictureOutputFlag的值为0

背景图像输出标志difference_mode_enable

标志。值为“1”表示当前图像启用已经允许使用的差分模式,DiffModeEnable的值为1;值为“0”表示当前图像关闭已经允许使用的差分模式,DiffModeEnable的值为0。 

场景自适应标志  scene_adapt_disable

标志。值为“1”表示当前图像不应使用场景自适应;值为“0”表示使用场景自适应。SceneAdaptDisable的值等于scene_adapt_disable的值。


场景模型更新标志  scene_model_update_flag

标志。值为“1”表示应更新场景模型;值为“0”表示不更新场景模型。SceneModelUpdate的值等于scene_model_update_flag的值。

frames_before_next_intra

   存在时,FramesBeforeNextIntra值等于frames_before_next_intra,不存在时FramesBeForeNextIntra值为0。

图像间距相同标志  next_distance_equal_flag

    1位无符号整数,该标志存在且值为1表示该帧与后一帧的picture_distance相同。



9.4.5 参考图像选择

——如果当前图像是S帧并且PictureStructure 等于1,

——如果DifferenceModeEnable等于0,其参考图像是最近解码的G 帧。

——如果DifferenceModeEnable等于1,参考图像是当前的BG帧。

参考图像的标记方法如图29所示。此时NumberOfReference 等于1。

——如果当前图像是S帧并且PictureStructure 等于0,同时当前解码场在显示顺序上是第一场:

——如果DifferenceModeEnable等于0,其参考图像是最近解码的G 帧的第一场;

——如果DifferenceModeEnable等于1,参考图像是当前的BG帧的第一场。

参考图像的标记方法如图30所示。此时NumberOfReference 等于1。

——如果当前图像是S帧并且PictureStructure 等于0,同时当前解码场在显示顺序上是第二场:

——如果DifferenceModeEnable等于0,其参考图像是最近解码的G 帧的第二场;

——如果DifferenceModeEnable等于1,参考图像是当前的BG帧的第二场。

参考图像的标记方法如图31所示。此时NumberOfReference 等于1。

 

9.4.6 在视频中新加入一个建模图像,编码时只要保证给该图像分配帧号,打包时分配时间戳,那么在解码时的问题就如同普通的不输出G帧。解决了普通的不输出G帧的问题,建模G帧的问题就迎刃而解.


9.4.7  备注:

通过将背景建模图像作为G帧编入码流,这样一来,S帧在参考G帧编码时就可以得到更好的率失真特性,后续的PB帧通过参考S帧可以进一步获得编码效率提升,进而可以显著提高监控视频的编码性能。

但是,由于将背景建模图像作为G帧编入码流为视频序列引入了一个额外的编码帧,将会产生下列影响:

1、对于同时实时工作的编码+解码系统,在线工作时,要保证解码器的解码延迟不会累积。由于解码器大体上按照标准规定的“两帧时间间隔=帧率的倒数的”进行解码,如果编码端不丢帧,由于编码器中需要添加一帧背景建模帧,会导致播放时间大于编码端输入数据的时间,导致解码器播放器延迟累积。因而编码端需要丢一帧并将该帧的id分配给背景建模帧。于是,在规定的时间T内,信源输入的帧数为T×帧率,而编码器只编码了T×帧率-1帧原始图像,以及1帧建模背景,因而出现编码端丢帧的情况。


你可能感兴趣的:(背景建模,AVS2)