用于构造可伸缩视频的参考图像列表的方法和设备转让专利
申请号 : CN200680050517.5
文献号 : CN101356822B
文献日 : 2011-02-02
发明人 : 陈颖 , 爱德华·弗朗索瓦 , 谢凯
申请人 : 汤姆逊许可公司
摘要 :
权利要求 :
1.一种用于对具有一个第一空间低层和至少一个第二空间高层的视频图像进行编码的方法,其中,层内预测是用来通过同一层的一个或多个参考图像来预测第一空间低层和第二空间高层中的图像,而且,所述层内预测使用了参考图像列表,该方法包括以下步骤:-基于第一空间低层中对应图像的参考图像列表,生成第二空间高层中一个图像的参考图像列表,-生成一个指示,所述指示用于表明由第一空间低层中对应图像的参考图像列表可以和/或如何推断出第二空间高层中所述图像的参考图像列表;以及-把所述指示与其相关的第二空间高层的编码图像联系起来。
2.如权利要求1所述的方法,其中,所述指示包含在信号中,用于表明第二空间高层继承了第一空间低层的参考图像列表。
3.一种用于对具有一个第一空间低层和至少一个第二空间高层的视频图像进行解码的方法,其中,第二空间高层中的一个图像在第一空间低层中具有一个对应图像,且由所述第二空间高层中的一个或多个参考图像进行预测,该方法包括以下步骤:-检测一个指示,该指示用于表明由第一空间低层中对应图像的参考图像列表可以和/或如何推断出第二空间高层中一个图像的参考图像列表;以及-根据第一空间低层中对应图像的参考图像列表,生成或预测第二空间高层中所述图像的参考图像列表。
4.如权利要求3所述的方法,其中,在解码期间检测出一个指示,而且其中,基于所述检测步骤来执行所述第二空间高层中参考图像列表的生成或预测步骤。
5.如权利要求2或4所述的方法,其中,该指示指向图像的条带。
6.如权利要求3至4的任一项所述的方法,其中,在进行了数据丢失检测之后,根据第一空间低层中的参考图像列表来重新重构第二空间高层中的丢失的参考图像列表。
7.如权利要求5所述的方法,其中,在进行了数据丢失检测之后,根据第一空间低层中的参考图像列表来重新重构第二空间高层中的丢失的参考图像列表。
8.如权利要求1-4的任一项所述的方法,其中,第一空间低层的时间分辨率低于第二空间高层的时间分辨率。
9.如权利要求5所述的方法,其中,第一空间低层的时间分辨率低于第二空间高层的时间分辨率。
10.如权利要求6所述的方法,其中,第一空间低层的时间分辨率低于第二空间高层的时间分辨率。
11.一种对具有一个第一空间低层和至少一个第二空间高层的视频图像进行编码的设备,其中,层内预测是用来通过同一层的一个或多个参考图像来预测第一空间低层和第二空间高层中的图像,并且,所述层内预测使用了参考图像列表,该设备包括:-基于第一空间低层中对应图像的参考图像列表来生成第二空间高层中图像的参考图像列表的装置;
-用于生成指示的装置,所述指示用于表明由第一空间低层中对应图像的参考图像列表可以和/或如何推断出第二空间高层中所述图像的参考图像列表;以及-用于把所述指示与其相关的第二空间高层中的编码图像联系起来的装置。
12.一种对具有一个第一空间低层和至少一个第二空间高层的视频图像进行解码的设备,其中,第二空间高层中的一个图像在第一空间低层中具有一个对应图像,且由所述第二空间高层中的一个或多个参考图像进行预测,该设备包括:-用于检测指示的装置,所述指示用于表明可以和/或如何由第一空间低层中对应图像的参考图像列表推断出第二空间高层中所述图像的参考图像列表;以及-用于根据第一空间低层中对应图像的参考图像列表来生成或预测第二空间高层中所述图像的参考图像列表的装置。
说明书 :
用于构造可伸缩视频的参考图像列表的方法和设备
技术领域
有一个列表(list0),B帧具有两个列表(list0,list1)。因为参考图像是用来解码其他
图像,所以要对参考图像自身解码,然后将其存储起来。可伸缩视频编码(SVC)提供了参
考图像列表重排序(reference picture list reordering,RPLR)功能。空间可伸缩视
频编码(scalable video coding,SVC)具有一个基本层(base layer,BL)和一个或多个
增强层(enhancement layer,EL)。目前,增强层的更新(UPDATE)刚刚从可伸缩视频编码
中移除,即增强层同样具有层级B帧结构,且和基本层在时间上具有极其类似的语法(见
Joint Video Team(JVT)of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 and
ITU-TSG 16Q.6),Draft Output Document from JVT JVT-Q201,Draft of ScalableVideo
Coding-Working Draft 4,17th Meeting:Nice,France,October,2005)。
同空间层中对应图像之间的冗余,构造增强层参考图像列表(初始化或RPLR)的目的就是
使增强层参考图像列表(list_0或list_1)与基本层列表(或通常的较低的空间层)相匹
配。
from JVT JVT-Q202-JSVM4,Draft ofJoint Scalable Video Model JSVM-4,17th Meeting:
Nice,France,October,2005)RPLR命令,用来确定实际使用的参考图像列表,而不是仅仅
使用如AVC说明书(见ITU-T H.264.1,TELECOMMUNICATIONSTANDARDIZATION SECTOR OF
ITU,SERIES H:AUDIOVISUAL ANDMULTIMEDIA SYSTEMS,Infrastructure of audiovisual
services-Coding ofmoving video,Conformance s Conformance specification for
H.264 advancedvideo coding,08/2005)第8.2.4.2节“参考图像列表的初始化方法”中和
SVC工作草案(working draft,WD)的8.2.4.2节中定义的默认的参考图像列表构造方法。
方法。通过使用该方法,可以省略/跳过复杂的RPLR以及其他语法,也可以避免在空间增
强层使用RPLR方法。另外,该方法还可用来提供与JSVM相同的解码的YUV序列,并且在编
码效率方面有一点提高。当空间增强层的条带丢失时,该方法也可作为差错隐藏的强有力
工具。
均是由等于0的nal_ref_idc依次进行编码的。然而,在增强层中,具有以上图像序列号
(POC)的图像不属于最高时间层次,且由于这些帧的nal_ref_idc值大于 0(它们也可被称
为B存储图像),所以这些图像的frame_num值将会增加。当使用frame_num值来衡量一
个帧/图像在作为其他帧/图像的参考帧/参考图像的“重要性”时,图像序列号对应于图
像的显示次序,即,POC=0的图像被最先显示,然后显示POC=1的图像,等等。在H.264
中,解码的参考图像被标记为“短期参考图像”或“长期参考图像”,短期的解码参考图像用frame_num值进行标记。
相同显示时间)的输入帧的、增强层帧的ref_idx_lx值和基本层帧的ref_idx_lx的值相
等时,基本层参考图像列表和增强层参考图像列表需要相互匹配。图像通常也指帧。
附图说明
具体实施方式
解码次序 0 1 2 3 4 5 6 7 8
nal_ref_idc 3 3 2 1 1 0 0 0 0
frame_num 0 1 2 3 4 5 5 5 5
图像序列号 0 16 8 4 12 2 6 10 14
6 5
1 0 9 1
5 3
1 0 9 1
4 1
1 0 9 1
3
1 0 9 9
2
1 0 9 7
1
1 0 9 5
0
1 0 9 3
9 0 9 1
4
8 1 8 1
0
7 1 7 1
6 1 6 6
5 1 5 2
4 2 4 21
3 2 3 4
2 2 2 8
6
1 3 1 1
0 3 0 0
号
c
d
i m
序 _f un 列
层 次 er _e 序
强 码 _l ma 像
增 解 an rf 图
示的(前向预测的)可能的参考帧(即,低时间层次上的图像),把帧8,帧12,帧16做为在
其后显示(后向预测)的可能的参考帧。但是,如果用frame_num值来指示参考图像列表,
则如表1中所列,RefPicList0为{3,0}(例如,POC=4时:frame_num=3),RefPicList1
为{2,4,1}。POC=6时,当前的frame_num值为5。
0 1(5-3-1)
0 2(3-0-1)
3
值是3,即,POC=4(见表1)。同理,当前frame_num=3时的一对数值为reordering_of_
pic_nums_idc类型=0和值=2,其表示,下一个frame_num为0.下一个reordering_of_
pic_nums_idc类型为3,其表示,已完成了对参考图像列表进行重排序的循环(对比H.264
中的表7-4)。因此,如图2所示,帧6的前向参考帧是帧4和帧0(用它们的POC表示)。
0 2(5-2-1)
1 1(4-2-1)
0 2(4-1-1)
3
RefPicList0为{3,0},RefPicList1为{2,4,1}。但是,对于POC=6的增强层,其当前的
frame_num值为6(而在基层上为5)。因此,需采取不同的方法来构造参考帧列表/参考图
像列表,且需要为每一个帧传送所有的RPLR命令。
0 2(6-3-1)
0 2(3-0-1)
3
0 3(6-2-1)
1 1(4-2-1)
0 2(4-1-1)
3
过参照POC值,而非frame_num值,则可以使参考图像列表的构造更为简单,并且可以节省
比特数。本发明的一个方面,是向条带头(slice header)引入一个表示所述预测的标记。
该标记仅需要为空间增强层使用一个简单的参考图像列表的构造方法。
测,该方法包括通过参照第一层的参考帧来指示第二层的参考帧。
预测的,该方法包括通过评估第一层的参考帧列表来确定第二层的参考帧。
的参考帧的指示表明了第一层图像的参考帧将被再利用。
而引入一个新的处理方法。该方法中,先生成一些参考图像列表的大小,然后再根据基本
层参考图像列表生成这些参考图像列表,如果把标记设为“真”,则不使用如JVT-Q201的
G.8.2.4.3条款“参考图像列表重排序方法”中所规定的RPLR命令。这样,就可以跳过以上
命令,从而降低传输数据量、并且简化编码器和解码器中的操作。
中所述,以后该解码方法将会和基本层的解码方法相同。该图像的语法元素temporal_
level值等于或小于当前图像的语法元素temporal_level值。
考图像列表。新提出的方案是一个更好的方法,它提供了相同的参考图像列表,相同的信
号-噪音功率比(PSNR),且节省了RPLR的比特数,省时省力。如果每个帧都被编码成很多
条带,其优势也就增强了。一个帧包含的条带越多,节省的比特数也越多,也更省力。
reordering())。
“真”(见表3中的第48行),那么就可以跳过上述语法部分。
2 first_mb_in_slice 2 ue(v)
3 slice_type 2 ue(v)
4 if(slice_type==PR){
5 fragmented_flag 2 u(l)
6 if(fragmented_flag==1){
7 fragment_order 2 ue(v)
8 if(fragment_order!=0)
9 last_fragment_flag 2 u(l)
10 }
11 if(fragment_order==0){
12 num_mbs_in_slice_minus1 2 ue(v)
13 luma_chroma_sep_flag 2 u(l)
14 }
15 }
16 if(slice_type!=PR||fragment_order==0){
17 pic_parameter_set_id 2 ue(v)
18 frame_num 2 u(v)
19 if(!frame_mbs_only_flag){
20 field_pic_flag 2 u(l)
21 if(field_pic_flag)
22 bottom_field_flag 2 u(l)
23 }
24 if(nal_unit_type==21)
25 idr_pic_id 2 ue(v)
26 if(pic_order_cnt_type==0){
27 pic_order_cnt_lsb 2 u(v)
28 if(pic_order_present_flag &&!field_pic_flag)
29 delta_pic_order_cnt_bottom 2 se(v)
30 }
31 if(pic_order_cnt_type==1&&!delta_pic_order_always_zero_flag){
32 delta_pic_order_cnt[0] 2 se(v)
33 if(pic_order_present_flag &&!field_pic_flag)
34 delta_pic_order_cnt[1] 2 se(v)
35 }
36 }
37 if(slice_type!=PR){
38 if(redundant_pic_cnt_present_flag)
39 redundant_pic_cnt 2 ue(v)
40 if(slice_type==EB)
41 direct_spatial_mv_pred_flag 2 u(l)
42 base_id_plus1 2 ue(v)
44 adaptive_prediction_flag 2 u(l)
45 }
46 if(slice_type==EP||slice_type==EB)& & base_id_plus1!=0){
47 ref_pic_list_inherit_flag} 2 u(l)
48 if(base_id_plus1==0||!ref_pic_list_inherit_flag){
49 if(slice_type==EP||slice_type==EB){
50 num_ref_idx_active_override_flag 2 u(l)
51 if(num_ref_idx_active_override_flag){
52 num_ref_idx_10_active_minus1 2
ue(v)
53 if(slice_type==EB)
54 num_ref_idx_11_active_minus1 2
ue(v)
55 }
56 }
57 ref_pic_list_reordering()} 2
58 }
59 If((weighted_pred_flag & & slice_type==EP)|| (weighted_bipred_idc==1 && slice_type ==EB)){
60 if(adaptive_prediction_flag)
61 base_pred_weight_table_flag 2 u(l)
62 if(base_pred_weight_table_flag==0)
63 pred_weight_table()
64 }
65 if(nal_ref_idc!=0)
66 dec_ref_pic_marking() 2
67 if(entropy_coding_mode_flag && slice_type!=EI)
68 cabac_init_idc 2
ue(v)
69 }
70 if(slice_type!=PR||fragment_order==0){
71 slice_qp_delta 2
se(v)
72 if(deblocking_filter_control_present_flag){
73 disable_deblocking_filter_idc 2
ue(v)
74 if(disable_deblocking_filter_idc!=1){
75 slice_alpha_c0_offset_div2 2
se(v)
76 slice_beta_offset_div2 2
se(v)
77 }
78 }
79 }
80 if(slice_type!=PR)
81 if(num_slice_groups_minus1>0&& slice_group_map_type>=3 &&slice_group_map_type<=5)
82 slice_group_change_cycle 2 u(v)
83 if(slice_type!=PR &&extended_spatial_scalability>0){
84 if(chroma_format_idc>0){
85 base_chroma_phase_x_plus1 2 u(2)
87 }
88 if(extended_spatial_scalability==2){
89 scaled_base_left_offset 2 se(v)
90 scaled_base_top_offset 2 se(v)
91 scaled_base_right_offset 2 se(v)
92 scaled_base_bottom_offset 2 se(v)
93 }
94 }
95 SpatialScalabilityType=spatial_scalability_type()
96 }
ref_pic_list_reordering()语法,并使用与其相关的解码方法。
ref_pic_list_reordering()语法。当前条带的num_ref_idx_10_active_minus1和num_
ref_idx_11_active_minus1与低空间层条带的值相同,且调用新的参考图像列表构造方法
来替代参考图像列表初始化方法,也可能替代RPLR方法。
列表LE,其将被用来组成当前增强层条带的参考图像列表。列表LE通常是由短期列表和长
期列表中的项组成的。那么,列表LxE(初始化为空)的生成方法则如下所述:
法优于第一参考图像列表初始化方法加上 RPLR方法。
增强层的参考图像列表list_0。那么,我们应该把第一参考图像设为帧4(用POC表示时),
把第二参考图像设为帧0。上述操作可以由RPLR实现。然而,基于基本层列表list_0中的
参考图像的POC值,我们就可以轻易地构造增强层的参考列表list_0。
在编码器中生成RPLR命令则是更为复杂的。
前增强层条带的参考图像列表的备用增强层列表LE。通常列表LE由从短期列表和长期列
表生成的字段构成。那么,列表LxE的生成方法则如下所述:
间增强层包丢失,该方法可借助于对应的基本层的运动信息。该方法还适用于多参考图像
的情况,这是因为当前的JSVM解码器提供了一种使增强层参考图像列表和基本层参考图
像列表相匹配的默认方法,而事实上增强层像基本层一样不使用RPLR。在实施差错隐藏过
程中,只有关键图像需要考虑RPLR事宜,从而确保增强层中一个丢失的关键图像可以参照
前一关键图像。
到的基本层的RPLR命令并不能直接预测 到丢失的增强层的RPLR的R命令。这是因为两
个层中的参考图像列表的核心关系是基于POC数值。
BLSkip差错隐藏。