资料来源C. A. Segall, etc. “
Spatial Scalability Within the H.264/AVC Scalable Video Coding Extension”, IEEE Trans. On CSVT, vol. 17, No. 9, Sept. 2007
SVC作为H.264/AVC的扩展的一部分,这已经是第四次进行可伸缩编码标准制定的尝试,尽管之前的尝试都不是那么成功。与MPEG-2,MPEG-4类似,SVC通过支持多层(Multi-layer)编码来实现空域可伸缩。图-1给出了编码器的示意框图。每一个layer对应某个分辨率下的图像,用一个
Dependency Identifier (D)来标识。Base layer的
D值为0,其它增强层顺序加1。Single-layer的各种预测技术仍然可用,另外增加了层间预测技术。为了降低解码复杂度和内存的消耗,SVC规定基本层和增强层的编码顺序必须一致,而同一时刻基本层和各个增强层构成一个访问单元(Access Unit),传输的时候依
D的递增顺序发送。

图-1 两层Spatial scalable 编码示意图
SVC定义了‘Scalable Base’, ‘Scalable High’和‘Scalable Intra’三个profile,其中‘Scalable Base’的约束条件如下:
1) 高、低分辨率图像的高度和宽度的比值满足

c等于1.5或2。
2) Spatial Offsets必须是图像左上角开始,x和y方向都是16像素的整数倍。
另外两个profile则支持任意的空间可伸缩性,比如基本层为4:3的SD图像,增强层为16:9的HD图像,这时在处理的时候除了缩放之外,还要考虑裁剪(cropping)和偏移(shifting)。SVC在picture语法中标明了位置和窗口参数,这样裁剪、缩放和偏移可以以帧为单位进行处理。
简单说明一下inter-layer prediction
1. Inter-layer motion prediction
SVC的MB syntax中增加了flag:
base_mode_flag。当增强层的宏块
base_mode_flag =1的时候,宏块的模式和对应的MV由低层的layer对应的8X8的块预测。如果对应的低层8x8块是4x8,那么当前宏块的模式就是8x16;8x4对应当前MB的16x8;8x8对应16x16,相应的MV等于底层8x8块对应MVx2得到,reference index不变。
另外,对于PMV,SVC定义
motion_prediction_flag_l0
,motion_prediction_flag_l1来标明其是来自相邻块还是来自低层对应块MV的倍数。
2. Inter-layer residual prediction
MB数据中增加了
residual_prediction_flag 来标识是否使用Inter-layer residual prediction,这跟宏块
base_mode_flag无关。Inter-layer residual prediction使用双线性滤波器的方法对低层8x8子块的residual进行插值作为当前MB的residual的预测值,插值以变换单元为基本单位(防止边界混叠),对二者的差进行编码。
3. Inter-layer intra prediction
当
base_mode_flag=1,而低层对应8x8块为Intra的时候,增强层的当前块的预测来自于低层co-located 8x8块的插值,其中亮度的插值滤波器是一个一维4抽头FIR滤波器,色度则用双线性插值。Deblocking filtering在插值前执行。