编码器、解码器及对应方法和装置与流程

文档序号:31393268发布日期:2022-09-03 02:50阅读:55来源:国知局
编码器、解码器及对应方法和装置与流程
编码器、解码器及对应方法和装置
1.相关申请交叉引用
2.本技术要求于2019年12月31日提交的申请号为pct/cn2019/130804的国际申请的优先权,要求于2020年1月2日提交的申请号为pct/cn2020/070153的国际申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
3.本技术(本发明)实施例大体上涉及图像处理领域,更具体地涉及一种编码器、一种解码器及对应方法和装置。


背景技术:

4.视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视(television,tv)、基于互联网和移动网络的视频传输、视频聊天和视频会议等实时会话应用、数字视频光盘(digital video disc,dvd)和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。
5.即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,当在存储设备中存储视频时,该视频的大小也可能是一个问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后传输或存储视频数据,从而减少表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不影响图像质量的情况下提高压缩比。


技术实现要素:

6.本技术实施例提供了根据独立权利要求所述的用于编码和解码的各种装置和方法。
7.上述和其它目的通过独立权利要求请求保护的主题来实现。其它实现方式在从属权利要求、说明书和附图中是显而易见的。
8.特定实施例在所附独立权利要求中概述,其它实施例在从属权利要求中概述。
9.根据第一方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行。所述方法包括:
10.通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0;
11.根据所述参考层语法元素的值,确定索引为j的层是否是索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0;
12.如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用
于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
13.根据所述第一方面,在所述方法的一种可能的实现方式中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
14.根据第二方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行。所述方法包括:
15.通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0;
16.如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
17.根据所述第一方面或所述第一方面的任一上述实现方式或所述第二方面,在所述方法的一种可能的实现方式中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于所述索引为j的层和所述索引为i的层。
18.根据所述第一方面或所述第一方面的任一上述实现方式或所述第二方面,在所述方法的一种可能的实现方式中,所述色度格式相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
19.根据所述第一方面或所述第一方面的任一上述实现方式或所述第二方面或所述第二方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
20.通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素和应用于所述索引为j的层的所述色度格式相关语法元素;所述条件还包括应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
21.根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
22.如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值不相同,停止对所述编码视频码流进行解码。
23.根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
24.如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
25.根据所述第一方面或所述第一方面的任一上述实现方式或所述第二方面或所述第二方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
26.如果所述条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素的情况下,确定应用于所述索引为i的层的所述色度格式
相关语法元素的值是应用于所述索引为j的层的所述色度格式相关语法元素的值。
27.根据第三方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行。所述方法包括:
28.通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0;
29.根据所述参考层语法元素的值,确定索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0。
30.如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
31.根据所述第三方面,在所述方法的一种可能的实现方式中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
32.根据第四方面,本发明涉及一种用于对编码视频码流进行解码的方法,所述方法由一种用于对编码视频码流进行解码的装置执行。所述方法包括:
33.通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0;
34.如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
35.根据所述第三方面或所述第一方面的任一上述实现方式或所述第四方面,在所述方法的一种可能的实现方式中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于所述索引为j的层和所述索引为i的层。
36.根据所述第三方面或所述第一方面的任一上述实现方式或所述第四方面,在所述方法的一种可能的实现方式中,所述位深度相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
37.根据所述第三方面或所述第三方面的任一上述实现方式或所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
38.通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素;所述条件还包括应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
39.根据所述第三方面或所述第三方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
40.如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值不相同,停止对所述编码视频码流进行解码。
41.根据所述第三方面或所述第三方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
42.如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
43.根据所述第三方面或所述第三方面的任一上述实现方式或所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:
44.如果所述条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素的情况下,确定应用于所述索引为i的层的所述位深度相关语法元素的值是应用于所述索引为j的层的所述位深度相关语法元素的值。
45.根据所述第三方面或所述第三方面的任一上述实现方式或所述第四方面或所述第四方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
46.根据第五方面,本发明涉及一种用于对视频进行编码的方法。所述方法由一种对视频进行编码的装置执行。所述方法包括:
47.确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;
48.如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的色度格式相关语法元素和应用于所述索引为j的层的色度格式相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
49.根据所述第五方面,在所述方法的一种可能的实现方式中,所述方法还包括:
50.如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
51.根据所述第五方面,在所述方法的一种可能的实现方式中,所述方法还包括:
52.如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
53.根据第六方面,本发明涉及一种用于对视频进行编码的方法。所述方法由一种对视频进行编码的装置执行。所述方法包括:
54.确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;
55.如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
56.根据所述第六方面,在所述方法的一种可能的实现方式中,所述方法还包括:
57.如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
58.根据所述第六方面,在所述方法的一种可能的实现方式中,所述方法还包括:
59.如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
60.根据所述第六方面或所述第六方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
61.根据第七方面,本发明涉及一种用于对编码视频码流进行解码的装置。所述装置包括:
62.获取单元,用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0;
63.确定单元,用于:根据所述参考层语法元素的值,确定索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0;
64.预测单元,用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
65.根据所述第七方面,在所述方法的一种可能的实现方式中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
66.根据第八方面,本发明涉及一种用于对编码视频码流进行解码的装置。所述装置包括:
67.获取单元,用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0;
68.预测单元,用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
69.根据所述第七方面或所述第七方面的任一上述实现方式或所述第八方面,在所述方法的一种可能的实现方式中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于所述索引为j的层和所述索引为i的层。
70.根据所述第七方面或所述第七方面的任一上述实现方式或所述第八方面,在所述方法的一种可能的实现方式中,所述色度格式相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
71.根据所述第七方面或所述第七方面的任一上述实现方式或所述第八方面或所述第八方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述获取单元还用
于通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素和应用于所述索引为j的层的所述色度格式相关语法元素;所述条件还包括应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
72.根据所述第七方面或所述第七方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述装置还包括停止单元;
73.所述停止单元用于:如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值不相同,停止对所述编码视频码流进行解码。
74.根据所述第七方面或所述第七方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述获取单元还用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
75.根据所述第七方面或所述第七方面的任一上述实现方式或所述第八方面或所述第八方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述确定单元还用于:如果条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素的情况下,确定应用于所述索引为i的层的所述色度格式相关语法元素的值是应用于所述索引为j的层的所述色度格式相关语法元素的值。
76.根据第九方面,本发明涉及一种用于对编码视频码流进行解码的装置。所述装置包括:
77.获取单元,用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0;
78.确定单元,用于:根据所述参考层语法元素的值,确定所述索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0;
79.预测单元,用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
80.根据所述第九方面,在所述方法的一种可能的实现方式中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
81.根据第十方面,本发明涉及一种用于对编码视频码流进行解码的装置。所述装置包括:
82.获取单元,用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0;
83.预测单元,用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的
层的位深度相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
84.根据所述第九方面或所述第九方面的任一上述实现方式或所述第十方面,在所述方法的一种可能的实现方式中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于所述索引为j的层和所述索引为i的层。
85.根据所述第九方面或所述第九方面的任一上述实现方式或所述第十方面,在所述方法的一种可能的实现方式中,所述位深度相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
86.根据所述第九方面或所述第九方面的任一上述实现方式或所述第十方面或所述第十方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述获取单元还用于通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素,其中,所述条件还包括应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
87.根据所述第九方面或所述第九方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述装置还包括停止单元;
88.所述停止单元用于:如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值不相同,停止对所述编码视频码流进行解码。
89.根据所述第九方面或所述第九方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述预测单元还用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
90.根据所述第九方面或所述第九方面的任一上述实现方式或所述第十方面或所述第十方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述确定单元还用于:在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素的情况下,确定应用于所述索引为i的层的所述位深度相关语法元素的值是应用于所述索引为j的层的所述位深度相关语法元素的值。
91.根据所述第九方面或所述第九方面的任一上述实现方式或所述第十方面或所述第十方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
92.根据第十一方面,本发明涉及一种用于对视频进行编码的装置。所述装置包括:
93.确定单元,用于确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;
94.编码单元,用于:如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的色度格式相关语法元素和应用于所述索引为j的层的色度格式相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相
同。
95.根据所述第十一方面,在所述方法的一种可能的实现方式中,所述装置还包括第一预测单元;
96.所述第一预测单元用于:如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
97.根据所述第十一方面,在所述方法的一种可能的实现方式中,所述装置还包括第二预测单元;
98.所述第一预测单元用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
99.根据第十二方面,本发明涉及一种用于对视频进行编码的装置。所述装置包括:
100.确定单元,用于确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;
101.编码单元,用于:如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
102.根据所述第十二方面,在所述方法的一种可能的实现方式中,所述装置还包括第一预测单元;
103.所述第一预测单元用于:如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
104.根据所述第十二方面,在所述方法的一种可能的实现方式中,所述装置还包括第二预测单元;
105.所述第二预测单元用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
106.根据所述第十二方面或所述第十二方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
107.根据第十三方面,本技术涉及一种编码器。所述编码器包括用于执行根据所述第五方面或所述第六方面的所述方法的处理电路。
108.根据第十四方面,本技术涉及一种解码器。所述解码器包括用于执行根据所述第一方面、所述第二方面、所述第三方面或第四方面的所述方法的处理电路。
109.根据第十四方面,本技术涉及一种包括程序代码的计算机程序产品。当所述程序代码在计算机或处理器上执行时,所述程序代码用于执行根据所述第一至第六方面中任一方面的所述方法。
110.根据第十五方面,本技术涉及一种解码器。所述解码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述一个或多个处理器并存储供所述一个或多个处理器执行的程序,其中,当所述程序由所述一个或多个处理器执行时,所述程序配置所述解码器以执行根据所述第一方面、所述第二方面、所述第三方面或所述第四方面的所述方法。
111.根据第十六方面,本技术涉及一种编码器。所述编码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述一个或多个处理器并存储供所述一个或多个处理器执行的程序,其中,当所述程序由所述一个或多个处理器执行时,所述程序配置所述编码器以执行根据所述第五方面或所述第六方面的所述方法。
112.根据第十七方面,本技术涉及一种包括程序代码的非瞬时性计算机可读介质。当所述程序代码由计算机设备执行时,所述程序代码使得所述计算机设备执行根据所述第一至第六方面中任一方面的所述方法。
113.根据第十八方面,本技术涉及一种非瞬时性存储介质。所述非瞬时性存储介质包括由图像解码设备解码的经编码码流,所述码流包括至少一层的编码数据,所述码流包括至少一层的经编码数据,所述码流还包括索引为i的层的色度格式相关语法元素和索引为j的层的色度格式相关语法元素,其中,当所述索引为j的层是所述索引为i的层的参考层时,所述索引为i的层的所述色度格式相关语法元素的值与所述索引为j的层的所述色度格式相关语法元素的值相同,i和j都是整数且大于或等于0。
114.根据第十九方面,本技术涉及一种非瞬时性存储介质。所述非瞬时性存储介质包括由图像解码设备解码的经编码码流,所述码流包括至少一层的经编码数据,所述码流还包括索引为i的层的位深度相关语法元素和索引为j的层的位深度相关语法元素,其中,当所述索引为j的层是所述索引为i的层的参考层时,所述索引为i的层的所述位深度相关语法元素的值与所述索引为j的层的所述位深度相关语法元素的值相同,i和j都是整数且大于或等于0。
115.根据所述第十九方面,在所述方法的一种可能的实现方式中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
116.根据所述第十八方面或所述第十九方面的任一上述实现方式或所述第十九方面,在所述方法的一种可能的实现方式中,所述码流还包括参考层语法元素,所述索引为j的层是所述索引为i的层的参考层包括:所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
117.根据第二十方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行,所述方法包括:解析用于推导最大允许层数的第一语法元素;当第一条件满足时,如果所述编码视频码流中不存在表示第三语法元素的第二语法元素的值,预测当前层中的图像,其中,所述第一条件包括:所述第一语法元素的值表示所述最大允许层数是1。
118.根据所述第二十方面,在所述方法的一种可能的实现方式中,所述第一语法元素包括在所述编码视频码流的vps中并用于推导参考所述vps的每个cvs中的最大允许层数。
119.根据所述第二十方面或所述第二十方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述如果所述编码视频码流中不存在表示第三语法元素的第二语法元素的值,预测具有索引的当前层中的图像包括:如果参考所述编码视频码流的sps的ph中不存在表示所述第三语法元素的第二语法元素的值,预测具有索引的当前层中的图像;所述第二语法元素包括在所述sps中。
120.根据所述第二十方面或所述第二十方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述方法还包括:当所述第一条件满足时,确定所述编码视频码流中不
存在表示所述第三语法元素的所述第二语法元素的值。
121.根据所述第二十方面或所述第二十方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述第三语法元素表示ph中是否存在所述当前图像的poc msb值的语法元素,所述第三语法元素包括在所述ph中。
122.根据第二十一方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行,所述方法包括:解析第一语法元素,其中,所述第一语法元素表示索引为i的层是否使用层间预测,i是整数且大于0;当包括所述第一语法元素的值表示索引为j的层是所述索引为i的层的直接参考层的第一条件满足时,如果所述索引为i的层的色度格式相关语法元素的值与所述索引为j的层的色度格式相关语法元素的值相同,预测所述索引为i的层中的图像,其中,在所述第一条件下j是整数且大于0。
123.根据所述第二十一方面,在所述方法的一种可能的实现方式中,所述方法还包括:当所述第一条件满足时,确定所述索引为i的层的色度格式相关语法元素的值与所述索引为j的层的色度格式相关语法元素的值相同。
124.根据所述第二十一方面或所述第二十一方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述色度格式相关语法元素包括chroma_format_idc或separate_colour_plane_flag。
125.根据所述第二十二方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行,所述方法包括:解析第一语法元素,其中,所述第一语法元素表示索引为i的层是否使用层间预测,i是整数且大于0;当包括所述第一语法元素的值表示索引为j的层是所述索引为i的层的直接参考层的第一条件满足时,如果所述索引为i的层的位深度相关语法元素的值与所述索引为j的层的位深度相关语法元素的值相同,预测所述索引为i的层中的图像,其中,在所述第一条件下j是整数且大于0。
126.根据所述第二十二方面,在所述方法的一种可能的实现方式中,所述方法还包括:当所述第一条件满足时,确定所述索引为i的层的位深度相关语法元素的值与所述索引为j的层的位深度相关语法元素的值相同。
127.根据所述第二十二方面或所述第二十二方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述位深度相关语法元素包括bit_depth_minus8。
128.根据第二十三方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行,所述方法包括:推导最大允许层数;当第一条件满足时,如果所述编码视频码流中不存在表示第二语法元素的第一语法元素的值,预测当前层中的图像,其中,所述第一条件包括所述最大允许层数的值是1。
129.根据第二十四方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行,所述方法包括:获取所述视频码流中的层数;当包括所述层数大于1的第一条件满足时,预测色度格式相关语法元素具有相同值的层中的图像。
130.根据所述第二十四方面,在所述方法的一种可能的实现方式中,所述方法还包括:当所述第一条件满足时,确定所述层的色度格式相关语法元素的值相同。
131.根据所述第二十四方面或所述第二十四方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述色度格式相关语法元素包括chroma_format_idc或separate_colour_plane_flag。
132.根据所述第二十四方面或所述第二十四方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述获取所述视频码流中的层数包括:解析用于推导最大允许层数的语法元素,以获取所述层数(例如vps_max_layers_minus1)。
133.根据第二十五方面,本发明涉及一种用于对编码视频码流进行解码的方法。所述方法由一种用于对编码视频码流进行解码的装置执行,所述方法包括:获取所述视频码流中的层数;当包括所述层数大于1的第一条件满足时,预测位深度相关语法元素具有相同值的层中的图像。
134.根据所述第二十五方面,在所述方法的一种可能的实现方式中,所述方法还包括:当所述第一条件满足时,确定所述层的位深度相关语法元素的值相同。
135.根据所述第二十五方面或所述第二十五方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述位深度相关语法元素包括bit_depth_minus8。
136.根据所述第二十五方面或所述第二十五方面的任一上述实现方式,在所述方法的一种可能的实现方式中,所述获取所述视频码流中的层数包括:解析用于推导最大允许层数的语法元素,以获取所述层数(例如vps_max_layers_minus1)。
137.根据第二十六方面,本技术涉及一种解码器。所述解码器包括用于执行根据所述第二十一方面至二十五方面中任一方面的所述方法的处理电路。
138.根据第二十七方面,本技术涉及一种包括程序代码的计算机程序产品。当所述程序代码在计算机或处理器上执行时,所述程序代码用于执行根据所述第二十一方面至第二十五方面中任一方面的所述方法。
139.根据第二十八方面,本技术涉及一种解码器。所述解码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述一个或多个处理器并存储供所述一个或多个处理器执行的程序,其中,当所述程序由所述一个或多个处理器执行时,所述程序配置所述解码器以执行根据所述第二十一方面至第二十五方面的所述方法。
140.根据第二十九方面,本技术涉及一种包括程序代码的非瞬时性计算机可读介质。当所述程序代码由计算机设备执行时,所述程序代码使得所述计算机设备执行根据所述第二十一方面至第二十五方面中任一方面的所述方法。
141.以下附图和说明书详细阐述了一个或多个实施例。其它特征、目的和优点在说明书、附图和权利要求书中是显而易见的。
142.根据本技术实施例,通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0;根据所述参考层语法元素的值,确定所述索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0;如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
附图说明
143.下面参考所附附图和示意图更加详细地描述本发明实施例,在附图中:
144.图1a为用于实现本技术实施例的视频译码系统的一个示例的框图;
145.图1b为用于实现本技术实施例的视频译码系统的另一个示例的框图;
146.图2为用于实现本技术实施例的视频编码器的一个示例的框图;
147.图3为用于实现本技术实施例的视频解码器的一种示例性结构的框图;
148.图4为编码装置或解码装置的一个示例的框图;
149.图5为编码装置或解码装置的另一个示例的框图;
150.图6为具有2层的可适性编码的示意图;
151.图7为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图;
152.图8为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图;
153.图9为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图;
154.图10为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图;
155.图11为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图;
156.图12为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图;
157.图13为本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图;
158.图14为本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图;
159.图15为本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图;
160.图16为本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图;
161.图17为本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图;
162.图18为本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图;
163.图19为本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图;
164.图20为本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图;
165.图21为本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图;
166.图22为本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图;
167.图23为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图;
168.图24为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图;
169.图25为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图;
170.图26为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图;
171.图27为实现内容分发服务的内容供应系统3100的一种示例性结构的框图;
172.图28为终端设备的一种示例性结构的框图。
173.在下文,如果没有另外明确说明,相同的附图标记指代相同特征或至少在功能上等效的特征。
具体实施方式
174.在以下描述中,参考构成本发明一部分的附图,这些附图通过说明的方式示出了本发明实施例的具体方面或可以使用本发明实施例的具体方面。应当理解的是,本发明实施例可以在其它方面中使用,并且可以包括附图中未描绘的结构变化或逻辑变化。因此,以下详细描述并不以限制性意义来理解,且本发明的范围由所附权利要求书界定。
175.例如,应当理解的是,与描述的方法有关的公开内容对于用于执行所述方法的对应设备或系统也同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如功能单元)来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或者多个单元分别执行多个步骤中的一个或多个步骤),即使附图中未明确描述或示出这类一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如功能单元)来描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或者多个步骤分别执行多个单元中的一个或多个单元的功能),即使附图中未明确描述或示出这类一个或多个步骤。此外,应当理解的是,除非另外明确说明,本文中描述的各个示例性实施例和/或方面的特征可以相互组合。
176.视频译码(coding)通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源侧执行,通常包括处理(例如通过压缩)原始视频图像,以减少表示视频图像所需的数据量(从而更高效地存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应当理解为涉及视频图像或相应视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码(编码和解码)。
177.在无损视频译码的情况下,可以重建原始视频图像,即经重建视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频译码的情况下,通过量化等执行进一步压缩,以减少表示视频图像的数据量,而解码器侧无法完全重建视频图像,即经重建视频图像的质量比原始视频图像的质量低或差。
178.若干个视频编码标准属于“有损混合视频编解码器”组(即,将样本域中的空间和时间预测与2d变换编码相结合,以在变换域中应用量化)。视频序列中的每个图像通常分割
成不重叠块的集合,而且通常在块级执行译码。换句话说,编码器侧通常在块(视频块)级通过以下方式对视频进行处理,即编码:例如,使用空间(帧内)预测和/或时间(帧间)预测来生成预测块,从当前块(当前处理/待处理的块)中减去预测块以获取残差块,在变换域中变换残差块并量化残差块,以减少待传输(压缩)的数据量;而解码器侧将相对于编码器的逆处理部分应用于经编码或经压缩块,以重建用于表示的当前块。此外,编码器复制解码器处理循环,使得编码器和解码器生成相同的预测(例如帧内和帧间预测)和/或重建,以对后续块进行处理,即译码。
179.在以下视频译码系统10的实施例中,视频编码器20和视频解码器30根据图1至图3进行描述。
180.图1a为示例性译码系统10的示意框图,例如可以利用申请中技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)为两个示例,即可以用于根据本技术中描述的各种示例执行各种技术的设备。
181.如图1a所示,译码系统10包括源设备12,源设备12用于将经编码图像数据21提供给目的地设备14等,以对经编码图像数据13进行解码。
182.源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(或预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。
183.图像源16可以包括或可以是任何类型的用于捕获真实世界图像的摄像机等图像捕获设备,和/或任何类型的用于生成计算机动画图像的计算机图形处理器等图像生成设备,或者任何类型的用于获取和/或提供真实世界图像、计算机生成图像(例如屏幕内容、虚拟现实(virtual reality,vr)图像)和/或其任意组合(例如增强现实(augmented reality,ar)图像)的其它设备。图像源可以是任何类型的存储任一上述图像的存储器(memory/storage)。
184.为了区分预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。
185.预处理器18用于接收(原始)图像数据17并对图像数据17执行预处理,以获取预处理图像19或预处理图像数据19。预处理器18执行的预处理可以包括修剪(trimming)、颜色格式转换(例如从rgb转换为ycbcr)、调色或去噪等。可以理解的是,预处理单元18可以为可选组件。
186.视频编码器20用于接收预处理图像数据19并提供经编码图像数据21(下文结合图2等提供更多详细描述)。
187.源设备12中的通信接口22可以用于接收经编码图像数据21,并通过通信信道13将经编码图像数据21(或对经编码图像数据21进一步处理后得到的数据)发送给另一设备,例如目的地设备14或任何其它设备,以便进行存储或直接重建。
188.目的地设备14包括解码器30(例如视频解码器30),并且可以另外(即可选地)包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。
189.目的地设备14中的通信接口28用于直接从源设备12或从存储设备(例如经编码图像数据存储设备)等任何其它源,接收经编码图像数据21(或对经编码图像数据21进一步处理后得到的数据),并将经编码图像数据21提供给解码器30。
190.通信接口22和通信接口28可以用于经由源设备12和目的地设备14之间的直接通信链路(例如,直接有线或无线连接),或经由任何类型的网络(例如,有线网络或无线网络或其任何组合,或任何类型的私网和公网或其任何类型的组合)发送或接收经编码图像数据21或经编码数据13。
191.通信接口22可以,例如用于将经编码图像数据21封装成合适的格式(例如数据包),和/或通过任何类型的传输编码或处理方式来处理经编码图像数据,以便通过通信链路或通信网络进行传输。
192.与通信接口22对应的通信接口28可以,例如用于接收传输数据,并使用任何类型的对应传输解码或处理方式和/或解封装方式对传输数据进行处理,以获取经编码图像数据21。
193.通信接口22和通信接口28都可以配置为图1a中从源设备12指向目的地设备14的通信信道13的箭头所指示的单向通信接口,或者配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如经编码图像数据传输)相关的任何其它信息,等等。
194.解码器30用于接收经编码图像数据21并提供经解码图像数据31或经解码图像31(下文结合图3或图5等提供更多详细描述)。
195.目的地设备14中的后处理器32用于对经解码图像数据31(也称为经重建图像数据)(例如经解码图像31)进行后处理,以获取后处理图像数据33(例如后处理图像33)。后处理单元32执行的后处理可以包括,例如颜色格式转换(例如从ycbcr转换为rgb)、调色、修剪或重采样,或者任何其它处理,以便提供解码图像数据31以供显示设备34等显示,等等。
196.目的地设备14中的显示设备34用于接收后处理图像数据33,以便向用户或观看者等显示图像。显示设备34可以是或可以包括任何类型的用于表示经重建图像的显示器,例如集成或外部显示器或显示屏。显示器可以,例如包括液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light emitting diode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶(liquid crystal on silicon,lcos)显示器、数字光处理器(digital light processor,dlp)或任何类型的其它显示器。
197.虽然图1a将源设备12和目的地设备14示为单独的设备,但是设备实施例也可以同时包括这两种设备或同时包括这两种设备的功能,即源设备12或对应的功能以及目的地设备14或对应的功能。在这些实施例中,源设备12或对应的功能以及目的地设备14或对应的功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
198.本领域技术人员基于描述明显可知,图1a所示的源设备12和/或目的地设备14内的不同单元或功能的存在和(精确)功能划分可以根据实际设备和应用有所不同。
199.编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或者编码器20和解码器30可以通过图1b所示的处理电路来实现。该处理电路包括一个或多个微处理器、一个或多个数字信号处理器(digital signal processor,dsp)、一个或多个专用集成电路(application-specific integrated circuit,asic)、一个或多个现场可编程门阵列(field-programmable gate array,fpga)、一个或多个离散逻辑、一个或多个硬件、一个或多个视频译码专用处理器或其任意组合。编码器20可以通过处理电路46来实现,以包含参照图2中的编码器20描述的各种模块和/或本文中描述的任何其它编码器系统或子系统。解
码器30可以通过处理电路46来实现,以包含参照图3中的解码器30描述的各种模块和/或本文中描述的任何其它解码器系统或子系统。处理电路可以用于执行下文论述的各种操作。如图5所示,如果上述技术部分在软件中实现,则一种设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器在硬件中执行这些指令,以执行本发明中的技术。视频编码器20或视频解码器30可以作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,例如,如图1b所示。
200.源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本或膝上型电脑、手机、智能手机、平板或平板电脑、摄像机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏机、视频流设备(例如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
201.在一些情况下,图1a所示的视频译码系统10仅仅是一个示例,本技术中的技术可以适用于不必包括编码设备和解码设备之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它示例中,数据从本地存储器检索、通过网络流式传输,等等。视频编码设备可以对数据进行编码并且将数据存储到存储器中,和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些示例中,编码和解码由相互不通信而是仅仅将数据编码到存储器和/或从存储器检索数据并对数据进行解码的设备执行。
202.为便于描述,本文例如,通过参考由itu-t视频编码专家组(video coding experts group,vceg)和iso/iec运动图像专家组(motion picture experts group,mpeg)的视频编码联合协作团队(joint collaboration team on video coding,jct-vc)开发的高效视频编码(high-efficiency video coding,hevc)或下一代视频编码标准即通用视频编码(versatile video coding,vvc)的参考软件描述本发明实施例。本领域普通技术人员理解本发明实施例不限于hevc或vvc。
203.编码器和编码方法
204.图2为用于实现本技术中技术的示例性视频编码器20的示意框图。在图2的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器单元220、解码图像缓冲区(decoded picture buffer,dpb)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合视频编码器或基于混合型视频编解码器的视频编码器。
205.残差计算单元204、变换处理单元206、量化单元208和模式选择单元260可以组成编码器20的前向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(decoded picture buffer,dpb)230、帧间预测单元244和帧内预测单元254可以组成视频编码器20的后向信号路径,其中,视频编码器20的后向信号路径对应于解码器(参见图3中的视频解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,dpb)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码
器”。
206.图像和图像分割(图像和块)
207.编码器20可以用于通过输入端201等接收图像17(或图像数据17)。图像17可以是组成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是预处理图像19(或预处理图像数据19)。为简单起见,以下描述中使用图像17。图像17也可以称为当前图像或待译码图像(尤其是在视频译码中为了将当前图像与同一视频序列(也就是同样包括当前图像的视频序列)中的其它图像(例如先前的经编码和/或经解码图像)区分开)。
208.(数字)图像是或可以视为由具有强度值的样本(sample)组成的二维阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的样本数量限定了图像的大小和/或分辨率。为了表示颜色,通常采用3个颜色分量,即图像可以表示为或可以包括3个样本阵列。在rbg格式或颜色空间中,一个图像包括对应的红色、绿色和蓝色样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如ycbcr,包括y表示的亮度分量(有时还用l表示)和cb和cr表示的2个色度分量。亮度(luminance,简写为luma)分量y表示亮度或灰度级强度(例如在灰度等级图像中两者相同),而2个色度(chrominance,简写为chroma)分量cb和cr表示色度或颜色信息分量。因此,ycbcr格式的图像包括由亮度样本值(y)组成的亮度样本阵列和由色度值(cb和cr)组成的2个色度样本阵列。rgb格式的图像可以转换或变换为ycbcr格式,反之亦然。该过程也称为颜色变换或转换。如果图像是黑白的,则该图像可以只包括亮度像素点阵列。相应地,图像可以为,例如黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和2个对应的色度样本阵列。
209.视频编码器20的实施例可以包括图像分割单元(图2中未示出),用于将图像17分割成多个(通常不重叠的)图像块203。这些块也可以称为根块、(h.264/avc中的)宏块,或(h.265/hevc和vvc中的)编码树块(coding tree block,ctb)或编码树单元(coding tree unit,ctu)。图像分割单元可以用于对视频序列中的所有图像使用相同的块大小和使用限定块大小的对应网格,或者在图像或图像子集或图像组之间改变块大小,并将每个图像分割成多个对应块。
210.在其它实施例中,视频编码器可以用于直接接收图像17中的块203,例如组成图像17的一个、几个或所有块。图像块203也可以称为当前图像块或待译码图像块。
211.与图像17类似,图像块203同样是或者可以视为具有强度值(样本值)的样本组成的二维阵列或矩阵,但是图像块203的尺寸比图像17的尺寸小。换句话说,块203可以包括,例如一个样本阵列(例如黑白图像17情况下的亮度阵列,或者彩色图像情况下的亮度阵列或色度阵列)或3个样本阵列(例如,彩色图像17情况下的1个亮度阵列和2个色度阵列)或任何其它数量和/或类型的阵列,取决于所采用的颜色格式。块203在水平方向和垂直方向(或轴线)上的样本数量限定了块203的大小。相应地,一个块可以为,例如m
×
n(m列
×
n行)的样本阵列,或m
×
n的变换系数阵列等。
212.图2所示的视频编码器20的实施例可以用于逐块对图像17进行编码,例如按块203执行编码和预测。
213.图2所示的视频编码器20的实施例还可以用于使用条带(slice)(也称为视频条带)对图像进行分割和/或编码。一个图像可以分割成一个或多个(通常不重叠的)条带或使
用一个或多个(通常不重叠的)条带进行编码,每个条带可以包括一个或多个块(例如ctu)或一个或多个块组(例如(h.265/hevc和vvc中的)分块(tile)或(vvc中的)砖块(brick))。
214.图2所示的视频编码器20的实施例还可以用于使用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或编码。一个图像可以分割成一个或多个(通常不重叠的)条带/分块组或使用一个或多个(通常不重叠的)条带/分块组进行编码;每个条带/分块组可以包括,例如一个或多个块(例如ctu)或一个或多个分块;每个分块,例如可以为矩形并可以包括一个或多个完整或部分块(例如ctu)等。
215.残差计算
216.残差计算单元204可以用于通过以下方式根据图像块203和预测块265(后续提供了预测块265的更多详细描述)来计算残差块205(还称为残差205):例如,逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值,以获取样本域中的残差块205。
217.变换
218.变换处理单元206可以用于在残差块205的样本值上应用离散余弦变换(discrete cosine transform,dct)或离散正弦变换(discrete sine transform,dst)等变换,以获取变换域中的变换系数207。变换系数207也可以称为变换残差系数并表示变换域中的残差块205。
219.变换处理单元206可以用于应用dct/dst(例如为h.265/hevc指定的变换)的整数近似。与正交dct变换相比,这种整数近似通常通过某一因子进行缩放。为了维持经正变换和逆变换处理的残差块的范数,应用其它缩放因子作为变换过程的一部分。缩放因子通常是根据某些约束条件选择的,例如,缩放因子是用于移位运算的2的幂、变换系数的位深度、精度与实现成本之间的权衡等。例如,通过逆变换处理单元212等为逆变换(以及视频解码器30通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子;相应地,编码器20可以通过变换处理单元206等为正变换指定对应的缩放因子。
220.视频编码器20(相应地,变换处理单元206)的实施例可以用于直接输出或通过熵编码单元270进行编码或压缩后输出变换参数(例如,一种或多种变换的类型),使得视频解码器30可以接收并使用变换参数进行解码,等等。
221.量化
222.量化单元208可以用于通过应用标量量化或矢量量化等来量化变换系数207,以获取经量化系数209。经量化系数209也可以称为经量化变换系数209或经量化残差系数209。
223.量化过程可以减小与部分或全部变换系数207相关的位深度。例如,n位变换系数可以在量化期间向下取整到m位变换系数,其中,n大于m。量化程度可以通过调整量化参数(quantization parameter,qp)进行修改。例如,对于标量量化,可以进行不同程度的缩放来实现较细或较粗量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。合适的量化步长可以通过量化参数(quantization parameter,qp)表示。例如,量化参数可以是一组预定义的合适量化步长的索引。例如,较小的量化参数可以对应精细量化(较小量化步长),较大的量化参数可以对应粗糙量化(较大量化步长),反之亦然。量化可以包括除以量化步长,而由反量化单元210等执行的对应反量化和/或反解量化可以包括乘以量化步长。根据hevc等一些标准的实施例可以用于使用量化参数来确定量化步长。一般而言,量化步长可以根据量化参数通过包括除法的等式的定点近似进行计算。可以引入额外的缩放因子
来进行量化和反量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的缩放而修改的残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的缩放。可选地,可以使用自定义量化表并在码流等中由编码器向解码器指示(signal)。量化是有损操作,其中,量化步长越大,损耗越大。
224.视频编码器20(对应地,量化单元208)的实施例可以用于直接输出或通过熵编码单元270进行编码后输出量化参数(quantization parameter,qp),使得视频解码器30可以接收并使用量化参数进行解码,等等。
225.反量化
226.反量化单元210用于通过以下方式对经量化系数应用量化单元208的反量化,以获取经解量化系数211:例如,根据或使用与量化单元208相同的量化步长,应用与量化单元208应用的量化方案相反的反量化方案。经解量化系数211也可称为经解量化残差系数211,对应于变换系数207,但是由于量化造成损耗,通常与变换系数不相同。
227.逆变换
228.逆变换处理单元212用于应用与变换处理单元206应用的变换相反的逆变换,例如,逆离散余弦变换(discrete cosine transform,dct)或逆离散正弦变换(discrete sine transform,dst)或其它逆变换,以获取样本域中的经重建残差块213(或对应的经解量化系数213)。经重建残差块213也可以称为变换块213。
229.重建
230.重建单元214(例如加法器或求和器214)用于通过以下方式将变换块213(即经重建残差块213)添加到预测块265,以获取样本域中的经重建块215:例如,逐个样本将经重建残差块213的样本值与预测块265的样本值相加。
231.滤波
232.环路滤波单元220(或简称为“环路滤波器”220)用于对经重建块215进行滤波,以获取经滤波块221,或通常用于对经重建样本进行滤波,以获取经滤波样本值。例如,环路滤波器单元用于顺利进行像素转变或以其它方式提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,例如,去块效应滤波器、样本自适应偏移(sample-adaptive offset,sao)滤波器或一个或多个其它滤波器,例如,自适应环路滤波器(adaptive loop filter,alf)、噪声抑制滤波器(noise suppression filter,nsf)或其任意组合。在一个示例中,环路滤波器单元220可以包括去块效应滤波器、sao滤波器和alf。滤波过程的顺序可以是去块效应滤波器、sao滤波器和alf。在另一个示例中,增加一种称为亮度映射与色度缩放(luma mapping with chroma scaling,lmcs)(即自适应环内整形器)的过程。这个过程在去块效应滤波之前执行。在另一个示例中,去块效应滤波器过程也可以应用于内部子块边缘,例如,仿射子块边缘、atmvp子块边缘、子块变换(sub-block transform,sbt)边缘和帧内子分区(intra sub-partition,isp)边缘。虽然环路滤波器单元220在图2中示为环内滤波器,但是在其它配置中,环路滤波器单元220可以实施为环后滤波器。经滤波块221也可以称为经滤波的经重建块221。
233.视频编码器20(对应地,环路滤波器单元220)的实施例可以用于直接输出或由熵编码单元270进行编码后输出环路滤波器参数(例如sao滤波器参数或alf参数或lmcs参数),使得解码器30可以接收并使用相同的环路滤波器参数或相应的环路滤波器进行解码,
等等。
234.解码图像缓冲区
235.解码图像缓冲区(decoded picture buffer,dpb)230可以是存储参考图像或通常存储参考图像数据的存储器,这些参考图像或参考图像数据用于由视频编码器20对视频数据进行编码。dpb 230可以由多种存储设备中的任一种形成,例如,动态随机存取存储器(dynamic random access memory,dram),包括同步dram(synchronous dram,sdram)、磁阻ram(magnetoresistive ram,mram)、电阻ram(resistive ram,rram)或其它类型的存储设备。解码图像缓冲区(decoded picture buffer,dpb)230可以用于存储一个或多个经滤波块221。解码图像缓冲区230还可以用于存储同一当前图像或不同图像(例如先前的经重建图像)中的其它先前经滤波块(例如先前经滤波的经重建块221),并可以提供先前完整的经重建(即经解码)图像(和对应的参考块和样本)和/或部分重建的当前图像(和对应的参考块和样本),以进行帧间预测等。解码图像缓冲区(decoded picture buffer,dpb)230还可以用于:如果经重建块215未由环路滤波器单元220进行滤波等,存储一个或多个未经滤波的经重建块215或通常存储未经滤波的经重建样本,或者用于存储对经重建块或样本进行进一步处理后得到的任何其它块或样本。
236.模式选择(分割和预测)
237.模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,并且用于从解码图像缓冲区230或其它缓冲区(例如行缓冲区,图中未显示)接收或获取原始块203(当前图像17中的当前块203)等原始图像数据以及经重建图像数据(例如同一(当前)图像和/或一个或多个先前经解码图像中的经滤波和/或未经滤波的经重建样本或块)。经重建图像数据用作帧间预测或帧内预测等预测使用的参考图像数据,以获取预测块265或预测值265。
238.模式选择单元260可以用于为当前块预测模式(包括不分割)确定或选择一种分割方式以及确定或选择一种预测模式(例如帧内或帧间预测模式),并生成对应的预测块265。预测块265用于对残差块205进行计算和对经重建块215进行重建。
239.模式选择单元260的实施例可以用于选择分割方式和预测模式(例如,从模式选择单元260支持或可用的那些模式中选择)。分割方式和预测模式提供最佳匹配或者说最小残差(最小残差意味着传输或存储中更好的压缩),或提供最小信令开销(最小信令开销意味着传输或存储中更好的压缩),或同时考虑或平衡以上两者。模式选择单元260可以用于根据率失真优化(rate distortion optimization,rdo)确定分割方式和预测模式,即选择提供最小率失真的预测模式。本文中的“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,但也可以指满足终止或选择标准的情况,例如,超过或低于阈值的值或其它约束条件可能导致“次优选择”,但会降低复杂度且减少处理时间。
240.换句话说,分割单元262可以用于:例如通过迭代地使用四叉树分割(quad-tree-partitioning,qt)、二叉树分割(binary partitioning,bt)或三叉树分割(triple-tree-partitioning,tt)或其任意组合,将视频序列中的图像分割成一系列编码树单元(coding tree unit,ctu),其中,ctu 203还可以分割成更小的块分区(partition)或子块(它们再次形成块);并且用于对每个块分区或子块执行预测等,其中,模式选择包括选择分割块203的树结构和选择应用于每个块分区或子块的预测模式。
241.下文详细地描述了由示例性视频编码器20执行的分割(例如由分割单元260执行)和预测处理(由帧间预测单元244和帧内预测单元254执行)。
242.分割
243.分割单元262可以用于将视频序列中的图像分割成一系列编码树单元(coding tree unit,ctu),分割单元262可以将编码树单元(coding tree unit,ctu)203分割(或划分)成较小的分区,例如正方形或矩形大小的较小块。对于具有3个样本阵列的图像,ctu包括n
×
n的亮度样本块和2个对应的色度样本块。ctu中的亮度块的最大允许大小在正在开发的通用视频编码(versatile video coding,vvc)中指定为128
×
128,但是将来可以指定为不同于128
×
128的值,例如256
×
256。图像中的ctu可以聚类/分组为条带/分块组、分块或砖块。分块覆盖图像的矩形区域,分块可以分成一个或多个砖块。砖块由分块中的多个ctu行组成。未分割成多个砖块的分块可以称为砖块。但是,砖块是分块的真子集,因此不称为分块。vvc支持两种分块组模式,即光栅扫描条带/分块组模式和矩形条带模式。在光栅扫描分块组模式中,一个条带/分块组包括图像中分块光栅扫描下的一系列分块。在矩形条带模式中,一个条带包括图像中的多个砖块,这些砖块共同组成该图像的矩形区域。矩形条带内的各个砖块按照条带中的砖块光栅扫描顺序排列。这些小块(也可以称为子块)可以进一步分割成甚至更小的分区。这还称为树分割或分层树分割。在根树级别0(层次级别0、深度0)等的根块可以递归地分割成两个或两个以上下一个较低树级别的块,例如树级别1(层次级别1、深度1)的节点。这些块可以再次分割成两个或两个以上下一个较低级别的块,例如树级别2(层次级别2、深度2)等,直到分割结束(因为满足结束标准,例如达到最大树深度或最小块大小)。未进一步分割的块还称为树的叶块或叶节点。分割成2个分区的树称为二叉树(binary-tree,bt),分割成3个分区的树称为三叉树(ternary-tree,tt),分割成4个分区的树称为四叉树(quad-tree,qt)。
244.例如,编码树单元(coding tree unit,ctu)可以是或可以包括具有3个样本阵列的图像中的亮度样本组成的1个ctb以及该图像中的色度样本组成的2个对应ctb,或者可以是或可以包括黑白图像或使用3个单独颜色平面和语法结构进行译码的图像中的样本组成的1个ctb。这些语法结构用于对上述样本进行译码。对应地,编码树块(coding tree block,ctb)可以是n
×
n的样本块,其中,n可以设为某个值,使得一个分量分成多个ctb,这就是一种分割方式。编码单元(coding unit,cu)可以是或可以包括具有3个样本阵列的图像中的亮度样本组成的1个编码块以及该图像中的色度样本组成的2个对应编码块,或者可以是或可以包括黑白图像或使用3个单独颜色平面和语法结构进行译码的图像中的样本组成的1个编码块。这些语法结构用于对上述样本进行译码。对应地,编码块(coding block,cb)可以是m
×
n的样本块,其中,m和n可以设为某个值,使得一个ctb分成多个编码块,这就是一种分割方式。
245.在实施例中,例如根据hevc,编码树单元(coding tree unit,ctu)可以通过表示为编码树的四叉树结构划分成多个cu。是否使用帧间(时间)预测或帧内(空间)预测对图像区域进行译码在叶cu级决定。每个叶cu可以根据pu划分类型进一步划分成1个、2个或4个pu。一个pu内应用相同的预测过程,并以pu为单位向解码器发送相关信息。在根据pu划分类型应用预测过程获取残差块之后,叶cu可以根据与该cu的编码树类似的其它四叉树结构分割成变换单元(transform unit,tu)。
246.在实施例中,例如根据当前开发的称为通用视频编码(versatile video coding,vvc)的最新视频编码标准,组合式四叉树嵌套多类型树(使用二叉树和三叉树)划分分段(segmentation)结构,例如用于分割编码树单元。在编码树单元内的编码树结构中,cu可以为正方形或矩形。例如,编码树单元(coding tree unit,ctu)首先通过四叉树进行分割。然后,四叉树叶节点可以通过多类型树结构进行进一步分割。多类型树结构中存在4种划分类型:垂直二叉树划分(split_bt_ver)、水平二叉树划分(split_bt_hor)、垂直三叉树划分(split_tt_ver)和水平三叉树划分(split_tt_hor)。多类型树叶节点称为编码单元(coding unit,cu),除非cu对于最大变换长度而言太大,否则,这样的分段用于预测和变换处理,无需任何进一步分割。这表示,在大多数情况下,cu、pu和tu在四叉树嵌套多类型树的编码块结构中具有相同的块大小。当最大支持变换长度小于cu的彩色分量的宽度或高度时,就会出现该异常情况。vvc制定了四叉树嵌套多类型树的编码结构中的分割划分信息的唯一指示机制。在指示机制中,编码树单元(coding tree unit,ctu)作为四叉树的根首先通过四叉树结构进行分割。然后,每个四叉树叶节点(当大到足以进行分割时)进一步通过多类型树结构进行分割。在多类型树结构中,指示第一标志(mtt_split_cu_flag)来表示节点是否进一步分割;当节点进一步分割时,先指示第二标志(mtt_split_cu_vertical_flag)来表示划分方向,再指示第三标志(mtt_split_cu_binary_flag)来表示划分是二叉树划分还是三叉树划分。根据mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,cu的多类型树划分模式(mttsplitmode)可以由解码器根据预定义的规则或表格推导出。需要说明的是,对于某种设计,例如vvc硬件解码器中的64
×
64亮度块和32
×
32色度流水线设计,当亮度编码块的宽度或高度大于64时,禁止tt划分,如图6所示。当色度编码块的宽度或高度大于32时,也禁止tt划分。流水线设计将图像分成虚拟流水线数据单元(virtual pipeline data unit,vpdu),这些vpdu定义为图像中的不重叠单元。在硬件解码器中,连续的vpdu通过多个流水线阶段同时处理。在大多数流水线阶段中,vpdu大小与缓冲区大小大致成正比,因此保持较小的vpdu大小很重要。在大多数硬件解码器中,vpdu大小可以设置为最大变换块(transform block,tb)大小。但是,在vvc中,三叉树(ternary tree,tt)和二叉树(binary tree,bt)分割可能会增加vpdu大小。
247.另外,需要说明的是,当树节点块的一部分超出图像下边界或右边界时,强制对该树节点块进行划分,直到每个经译码cu的所有样本都位于图像边界内。
248.例如,帧内子分区(intra sub-partition,isp)工具可以根据块大小将亮度帧内预测块垂直或水平地分成2个或4个子分区。
249.在一个示例中,视频编码器20中的模式选择单元260可以用于执行本文描述的分割技术的任意组合。
250.如上所述,视频编码器20用于从(例如预定的)预测模式集合内确定或选择最佳或最优的预测模式。预测模式集合可以包括帧内预测模式和/或帧间预测模式等。
251.帧内预测
252.帧内预测模式集合可以包括35种不同的帧内预测模式,例如,hevc等中定义的dc(或均值)模式和平面模式等非方向性模式或者方向性模式,或者可以包括67种不同的帧内预测模式,例如,vvc等中定义的dc(或均值)模式和平面模式等非方向性模式或者方向性模式。例如,几种传统角度帧内预测模式自适应地替换为vvc中定义的非正方形块的广角帧内
预测模式。又如,为了避免dc预测的除法运算,仅使用较长的一侧来计算非方形块的平均值。而且,平面模式的帧内预测结果还可以通过位置相关帧内预测组合(position dependent intra prediction combination,pdpc)方法进行修改。
253.帧内预测单元254用于根据帧内预测模式集合内的帧内预测模式,使用同一当前图像的相邻块的经重建样本来生成帧内预测块265。
254.帧内预测单元254(或通常称为模式选择单元260)还用于将帧内预测参数(或通常称为表示块的选定帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以将帧内预测参数包含在经编码图像数据21中,使得视频解码器30可以接收并使用预测参数进行解码,等等。
255.帧间预测
256.(可能的)帧间预测模式集合取决于可用的参考图像(即,例如上述存储在dbp 230中的至少部分经解码图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗口区域)来搜索最佳匹配的参考块,和/或例如取决于是否应用像素插值,例如二分之一像素、四分之一像素和/或1/16像素插值。
257.除上述预测模式外,还可以使用跳过模式、直接模式和/或其它帧间预测模式。
258.例如,使用扩展融合预测,这种模式下的融合候选列表由以下5种候选类型按顺序组成:空间相邻cu的空间mvp、并置cu的时间mvp、fifo表中的基于历史的mvp、成对平均mvp和零mv。而且,基于双边匹配的解码器侧运动矢量修正(decoder side motion vector refinement,dmvr)可以用于提高融合模式下的mv的精度。带有mvd的融合模式(merge mode with mvd,mmvd)源自带有运动矢量差值的融合模式。mmvd标志在发送跳过标志和融合标志之后立即进行指示,以表示cu是否使用mmvd模式。可以应用cu级自适应运动矢量精度(adaptive motion vector resolution,amvr)方案。amvr方案支持以不同的精度对cu的mvd进行译码。根据当前cu的预测模式,当前cu的mvd可以自适应地进行选择。当cu使用融合模式进行译码时,组合的帧间/帧内预测(combined inter/intra prediction,ciip)模式可以应用于当前cu。对帧间预测信号和帧内预测信号进行加权平均,以获取ciip预测信号。使用仿射运动补偿预测,块的仿射运动场通过2个控制点(4参数)或3个控制点(6参数)运动矢量的运动信息来描述。基于子块的时间运动矢量预测(subblock-based temporal motion vector prediction,sbtmvp)与hevc中的时间运动矢量预测(temporal motion vector prediction,tmvp)类似,但预测的是当前cu内的子cu的运动矢量。双向光流(bi-directional optical flow,bdof)以前称为bio,是一种需要很少计算(特别是乘法次数和乘数大小方面)的简化版本。使用三角分割模式,在这种模式中,cu通过对角线划分和反对角线划分均匀划分成2个三角形分区。此外,双向预测模式在简单平均的基础上进行了扩展,以支持2个预测信号的加权平均。
259.帧间预测单元244可以包括运动估计(motion estimation,me)单元和运动补偿(motion compensation,mc)单元(两者在图2中未示出)。运动估计单元可以用于接收或获取图像块203(当前图像17中的当前图像块203)和经解码图像231,或者至少一个或多个先前的经重建块(例如一个或多个其它/不同的先前经解码图像231中的经重建块),以进行运动估计。例如,视频序列可以包括当前图像和先前经解码图像231,或者换句话说,当前图像
和先前经解码图像231可以是图像序列的一部分或组成图像序列,这个图像序列组成视频序列。
260.例如,编码器20可以用于从多个其它图像中的同一或不同图像的多个参考块中选择一个参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。这种偏移还称为运动矢量(motion vector,mv)。
261.运动补偿单元用于获取(例如接收)帧间预测参数,并根据或使用帧间预测参数执行帧间预测,以获取帧间预测块265。由运动补偿单元执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可以包括执行插值以达到子像素精度。插值滤波可以根据已知像素样本生成其它像素样本,从而有可能增加可以用于对图像块进行译码的候选预测块的数量。在接收当前图像块的pu对应的运动矢量时,运动补偿单元可以在其中一个参考图像列表中定位运动矢量所指向的预测块。
262.运动补偿单元还可以生成与块和视频条带相关的语法元素,以供视频解码器30在对视频条带中的图像块进行解码时使用。除条带和相应语法元素之外或作为条带和相应语法元素的替代,可以生成或使用分块组和/或分块以及相应的语法元素。
263.熵编码
264.熵编码单元270用于将熵编码算法或方案(例如,可变长度编码(variable length coding,vlc)方案、上下文自适应vlc方案(context adaptive vlc,cavlc)、算术编码方案、二制化、上下文自适应二进制算术编码(context adaptive binary arithmetic coding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)编码或其它熵编码方法或技术)等应用于或不应用于(无压缩)经量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,以获取可以通过输出端272以经编码码流21等形式输出的经编码图像数据21,使得视频解码器30可以接收并使用这些参数进行解码,等等。经编码码流21可以发送给视频解码器30,或者存储在存储器中以供视频解码器30稍后发送或检索。
265.视频编码器20的其它结构变型可以用于对视频流进行编码。例如,基于非变换的编码器20可以在没有变换处理单元206的情况下为某些块或帧直接量化残差信号。在另一种实现方式中,编码器20可以包括组合成单个单元的量化单元208和反量化单元210。
266.解码器和解码方法
267.图3示出了用于实现本技术中技术的视频解码器30的一个示例。视频解码器30用于接收(例如)由编码器20编码的经编码图像数据21(例如经编码码流21),以获取经解码图像331。经编码图像数据或码流包括用于对该经编码图像数据进行解码的信息,例如表示经编码视频条带(和/或分块组或分块)的图像块的数据和相关语法元素。
268.在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲区(decoded picture buffer,dbp)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或可以包括运动补偿单元。在一些示例中,视频解码器30可以执行大体上与参照图2中的视频编码器100描述的编码过程互逆的解码过程。
269.如参照编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,dpb)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。相应地,反量化单元310在功能上可以与反量化单元110相同,逆变换处理单元312在功能上可以与逆变换处理单元212相同,重建单元314在功能上可以与重建单元214相同,环路滤波器320在功能上可以与环路滤波器220相同,解码图像缓冲区330在功能上可以与解码图像缓冲区230相同。因此,对视频编码器20的相应单元和功能进行的解释对应地适用于视频解码器30的相应单元和功能。
270.熵解码
271.熵解码单元304用于解析码流21(或通常称为经编码图像数据21)并对经编码图像数据21执行熵解码等,以获取经量化系数309和/或经解码编码参数(图3中未示出)等,例如,帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任一个或全部。熵解码单元304可以用于应用与参照编码器20中的熵编码单元270描述的编码方案对应的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,以及向解码器30中的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。除条带和相应语法元素之外或作为条带和相应语法元素的替代,可以接收和/或使用分块组和/或分块以及相应语法元素。
272.反量化
273.反量化单元310可以用于从经编码图像数据21(例如由熵解码单元304等解析和/或解码)接收量化参数(quantization parameter,qp)(或通常称为与反量化相关的信息)和经量化系数,并根据这些量化参数对经解码量化系数309进行反量化,以获取经解量化系数311。经解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带(或分块或分块组)中的每个视频块确定的量化参数来确定量化程度,同样也确定需要应用的反量化的程度。
274.逆变换
275.逆变换处理单元312可以用于接收经解量化系数311(也称为变换系数311),并对经解量化系数311进行变换,以获取样本域中的经重建残差块213。经重建残差块213也可以称为变换块313。变换可以是逆变换,例如,逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于(例如由熵解码单元304等解析和/或解码)从经编码图像数据21接收变换参数或对应的信息,以确定要应用于经解量化系数311的变换。
276.重建
277.重建单元314(例如加法器或求和器314)可以用于通过以下方式将经重建残差块313添加到预测块365以获取样本域中的经重建块315:例如,将经重建残差块313的样本值与预测块365的样本值相加。
278.滤波
279.环路滤波器单元320(在译码环路中或之后)用于对经重建块315进行滤波,以获取经滤波块321,从而顺利进行像素转变或以其它方式提高视频质量,等等。环路滤波器单元320可以包括一个或多个环路滤波器,例如,去块效应滤波器、样本自适应偏移(sample-adaptive offset,sao)滤波器或一个或多个其它滤波器,例如,自适应环路滤波器
(adaptive loop filter,alf)、噪声抑制滤波器(noise suppression filter,nsf)或其任意组合。在一个示例中,环路滤波器单元220可以包括去块效应滤波器、sao滤波器和alf。滤波过程的顺序可以是去块效应滤波器、sao滤波器和alf。在另一个示例中,增加一种称为亮度映射与色度缩放(luma mapping with chroma scaling,lmcs)(即自适应环内整形器)的过程。这个过程在去块效应滤波之前执行。在另一个示例中,去块效应滤波器过程也可以应用于内部子块边缘,例如,仿射子块边缘、atmvp子块边缘、子块变换(sub-block transform,sbt)边缘和帧内子分区(intra sub-partition,isp)边缘。虽然环路滤波器单元320在图3中示为环内滤波器,但是在其它配置中,环路滤波器单元320可以实施为环后滤波器。
280.解码图像缓冲区
281.随后将图像中的经解码视频块321存储在解码图像缓冲区330中,解码图像缓冲区330存储经解码图像331作为参考图像,以便后续对其它图像进行运动补偿和/或输出或显示。
282.解码器30用于通过输出单元332等输出经解码的图像331,以向用户呈现或供用户查看。
283.预测
284.帧间预测单元344在功能上可以与帧间预测单元244(特别是与运动补偿单元)相同,帧内预测单元354在功能上可以与帧间预测单元254相同,并根据(例如由熵解码单元304等解析和/或解码)从经编码图像数据21接收的分割方式和/或预测参数或相应的信息来执行划分或分割决策和执行预测。模式应用单元360可以用于根据经重建图像、块或相应的样本(经滤波或未经滤波)按块执行预测(帧内或帧间预测),以获取预测块365。
285.当视频条带被译码为经帧内译码(i)条带时,模式应用单元360中的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像中的先前经解码块的数据为当前视频条带中的图像块生成预测块365。当视频图像被译码为帧间译码(例如b或p)条带时,模式应用单元360中的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收的其它语法元素为当前视频条带的视频块生成预测块365。对于帧间预测,预测块可以根据其中一个参考图像列表内的其中一个参考图像生成。视频解码器30可以根据存储在dpb330中的参考图像,使用默认构建技术来构建参考帧列表0和列表1。除条带(例如视频条带)之外或作为条带的替代,相同或类似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例或由这些实施例应用。例如,视频可以使用i、p或b分块组和/或分块进行译码。
286.模式应用单元360用于通过解析运动矢量或相关信息以及其它语法元素为当前视频条带中的视频块确定预测信息,并使用该预测信息为正在解码的当前视频块生成预测块。例如,模式应用单元360使用接收到的一些语法元素确定用于对视频条带中的视频块进行译码的预测模式(例如帧内或帧间预测)、帧间预测条带类型(例如,b条带、p条带或gpb条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个经帧间编码视频块的运动矢量、用于条带的每个经帧间译码视频块的帧间预测状态以及其它信息,以对当前视频条带中的视频块进行解码。除条带(例如视频条带)之外或作为条带的替代,相同或类似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例或
由这些实施例应用。例如,视频可以使用i、p或b分块组和/或分块进行译码。
287.图3所示的视频解码器30的实施例可以用于使用条带(也称为视频条带)对图像进行分割和/或解码。一个图像可以分割成一个或多个(通常不重叠的)条带或使用一个或多个(通常不重叠的)条带进行解码,每个条带可以包括一个或多个块(例如ctu)、一个或多个块组(例如(h.265/hevc和vvc中的)分块或(vvc中的)砖块)。
288.图3所示的视频解码器30的实施例可以用于使用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码。一个图像可以分割成一个或多个(通常不重叠的)条带/分块组或使用一个或多个(通常不重叠的)条带/分块组进行解码;每个条带/分块组可以包括,例如一个或多个块(例如ctu)或一个或多个分块;每个分块,例如可以为矩形并可以包括一个或多个完整或部分块(例如ctu)等。
289.视频解码器30的其它变型可以用于对经编码图像数据21进行解码。例如,解码器30可以在没有环路滤波单元320的情况下生成输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下针对某些块或帧直接反量化残差信号。在另一种实现方式中,视频解码器30可以包括组合成单个单元的反量化单元310和逆变换处理单元312。
290.应当理解的是,在编码器20和解码器30中,当前步骤的处理结果可以做进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果执行限幅(clip)或移位(shift)等更多运算。
291.需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式的控制点运动矢量,仿射模式、平面模式、atmvp模式的子块运动矢量,时间运动矢量等)应用更多运算。例如,运动矢量的值根据运动矢量的表示位被约束在预定义范围内。如果运动矢量的表示位为bitdepth,则范围为

2^(bitdepth

1)~2^bitdepth

1)

1,其中“^”表示幂次方。例如,如果bitdepth被设置为16,则范围为

32768~32767;如果bitdepth被设置为18,则范围为

131072~131071。例如,推导出的运动矢量(例如,一个8
×
8块中的4个4
×
4子块的mv)的值被约束为使得这4个4
×
4子块mv的整数部分之间的最大差值不超过n个像素,例如不超过1个像素。这里提供了两种根据bitdepth来约束运动矢量的方法。
292.图4为本发明一个实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文中描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器(例如图1a中的视频解码器30)或编码器(例如图1a中的视频编码器20)。
293.视频译码设备400包括用于接收数据的入端口410(或输入端口410)和接收单元(rx)420,用于处理所述数据的处理器、逻辑单元或中央处理器(central processing unit,cpu)430,用于发送所述数据的发送单元(tx)440和出端口450(或输出端口450)以及用于存储所述数据的存储器460。视频译码设备400还可以包括耦合到入端口410、接收单元420、发送单元440和出端口450的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用作光信号或电信号的出口或入口。
294.处理器430通过硬件和软件来实现。处理器430可以实现为一个或多个cpu芯片、一个或多个核(例如多核处理器)、一个或多个fpga、一个或多个asic和一个或多个dsp。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上文描述的公开实施例。例如,译码模块470执行、处理、
准备或提供各种译码操作。因此,将译码模块470包含在内为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的转换。可选地,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
295.存储器460可以包括一个或多个磁盘、一个或多个磁带机以及一个或多个固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、三态内容寻址存储器(ternary content-addressable memory,tcam)和/或静态随机存取存储器(static random-access memory,sram)。
296.图5为一个示例性实施例提供的装置500的简化框图。装置500可以用作图1中的源设备12和/或目的地设备14。
297.装置500中的处理器502可以是中央处理器。可选地,处理器502可以是现有的或今后将开发出的能够操作或处理信息的任何其它类型的设备或多个设备。虽然所公开的实现方式可以使用如图所示的处理器502等单个处理器来实施,但使用多个处理器可以提高速度和效率。
298.在一种实现方式中,装置500中的存储器504可以是只读存储器(read only memory,rom)设备或随机存取存储器(random access memory,ram)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,应用程序510包括至少一个程序,这个程序使得处理器502执行本文描述的方法。例如,应用程序510可以包括应用1至应用n,还包括执行本文描述的方法的视频译码应用。
299.装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与触敏元件组合的触敏显示器,该触敏元件能够用于感测触摸输入。显示器518可以通过总线512耦合到处理器502。
300.虽然装置500中的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助存储器514可以直接耦合到装置500中的其它组件或可以通过网络被访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置500可以通过多种配置实现。
301.可适性编码
302.可适性编码包括质量可适性(psnr可适性)、空间可适性等。例如,如图6所示,一个序列可以向下采样,得到一个低空间分辨率版本。低空间分辨率版本和原始空间分辨率(高空间分辨率)版本都将进行编码。而且在一般情况下,低空间分辨率版本会首先进行译码,然后供后续译码的高空间分辨率版本参考。
303.为了描述各层的信息(数量、依赖关系、输出),存在如下定义的视频参数集(video parameter set,vps):
304.305.306.[0307][0308]
vps rbsp应在被参考之前可用于解码过程,包括在temporalid等于0的至少一个au中或者通过外部模块提供。
[0309]
cvs中具有特定的vps_video_parameter_set_id值的所有vps nal单元应具有相同的内容。
[0310]
vps_video_parameter_set_id提供vps的标识符,以供其它语法元素参考。vps_video_parameter_set_id的值应大于0。
[0311]
vps_max_layers_minus1+1表示参考vps的每个cvs中的层的最大允许数量。
[0312]
vps_max_sublayers_minus1+1表示可以存在于参考vps的每个cvs中的时间子层的最大数量。vps_max_sublayers_minus1的取值范围应为0至6(包括端值)。
[0313]
vps_all_layers_same_num_sublayers_flag等于1表示:参考vps的每个cvs中的所有层具有一样多的时间子层。vps_all_layers_same_num_sublayers_flag等于0表示:参考vps的每个cvs中的各层可以或可以不具有一样多的时间子层。当vps_all_layers_same_num_sublayers_flag不存在时,vps_all_layers_same_num_sublayers_flag的值被推断为1。
[0314]
vps_all_independent_layers_flag等于1表示:cvs中的所有层都是独立译码的,而不使用层间预测。vps_all_independent_layers_flag等于0表示:cvs中的一层或多层可以使用层间预测。当vps_all_independent_layers_flag不存在时,vps_all_independent_layers_flag的值被推断为1。
[0315]
vps_layer_id[i]表示第i层的nuh_layer_id值。对于任意两个非负整数值m和n,当m小于n时,vps_layer_id[m]的值应小于vps_layer_id[n]的值。
[0316]
vps_independent_layer_flag[i]等于1表示:索引为i的层不使用层间预测。vps_independent_layer_flag[i]等于0表示:索引为i的层可以使用层间预测,而且语法元素vps_direct_ref_layer_flag[i][j](其中,j的范围为0至i

1,包括端值)存在于vps中。当vps_independent_layer_flag[i]不存在时,vps_independent_layer_flag[i]的值被推断为1。
[0317]
vps_direct_ref_layer_flag[i][j]等于0表示:索引为j的层不是索引为i的层的直接参考层。vps_direct_ref_layer_flag[i][j]等于1表示:索引为j的层是索引为i的层的直接参考层。当vps_direct_ref_layer_flag[i][j](其中,i和j的范围为0至vps_max_layers_minus1,包括端值)不存在时,vps_direct_ref_layer_flag[i][j]被推断为0。当vps_independent_layer_flag[i]等于0时,j至少有一个值应在范围0至i

1(包括端值)内,使得vps_direct_ref_layer_flag[i][j]的值等于1。
[0318]
变量numdirectreflayers[i]、directreflayeridx[i][d]、numreflayers[i]、reflayeridx[i][r]和layerusedasreflayerflag[j]推导如下:
[0319][0320][0321]
变量generallayeridx[i]表示nuh_layer_id等于vps_layer_id[i]的层的层索引,该变量推导如下:
[0322]
for(i=0;i《=vps_max_layers_minus1;i++)
ꢀꢀꢀꢀ
(38)
[0323]
generallayeridx[vps_layer_id[i]]=i
[0324]
each_layer_is_an_ols_flag等于1表示:每个ols只包括一层,而且参考vps的cvs中的每层本身都是ols,其中,ols中包括的单个层是唯一的输出层。each_layer_is_an_ols_flag等于0表示:ols可以包括一个以上层。如果vps_max_layers_minus1等于0,则each_layer_is_an_ols_flag的值被推断为1。否则,当vps_all_independent_layers_flag等于0时,each_layer_is_an_ols_flag的值被推断为0。
[0325]
ols_mode_idc等于0表示:由vps指定的ols的总数量等于vps_max_layers_minus1+1,第i个ols包括层索引从0到i(包括端值)的层,而且对于每个ols,只输出ols中的最高层。
[0326]
ols_mode_idc等于1表示:由vps指定的ols的总数量等于vps_max_layers_minus1+1,第i个ols包括层索引从0到i(包括端值)的层,而且对于每个ols,输出ols中的所有层。
[0327]
ols_mode_idc等于2表示:由vps指定的ols的总数量是显式指示的,对于每个ols,输出层是显式指示的,而且其它层是ols中的输出层的直接或间接参考层。
[0328]
ols_mode_idc的取值范围应为0至2(包括端值)。保留ols_mode_idc的值3,以供itu-t或iso/iec将来使用。
[0329]
当vps_all_independent_layers_flag等于1且each_layer_is_an_ols_flag等于
0时,ols_mode_idc的值被推断为2。
[0330]
num_output_layer_sets_minus1+1表示ols_mode_idc等于2时由vps指定的ols的总数量。
[0331]
变量totalnumolss表示由vps指定的ols的总数量,该变量推导如下:
[0332][0333]
ols_output_layer_flag[i][j]等于1表示:当ols_mode_idc等于2时,nuh_layer_id等于vps_layer_id[j]的层是第i个ols的输出层。ols_output_layer_flag[i][j]等于0表示:当ols_mode_idc等于2时,nuh_layer_id等于vps_layer_id[j]的层不是第i个ols的输出层。
[0334]
变量numoutputlayersinols[i]表示第i个ols中的输出层的数量,变量outputlayeridinols[i][j]表示第i个ols中的第j个输出层的nuh_layer_id值,这两个变量推导如下:
[0335]
[0336][0337]
对于每个ols,应至少有一层是输出层。换句话说,对于范围0至totalnumolss

1(包括端值)内的任何i值,numoutputlayersinols[i]的值应大于或等于1。
[0338]
变量numlayersinols[i]表示第i个ols中的层的数量,变量layeridinols[i][j]表示第i个ols中的第j层的nuh_layer_id值,这两个变量推导如下:
[0339][0340]
注1:第0个ols只包括最低层(即nuh_layer_id等于vps_layer_id[0]的层),而且输出第0个ols中包括的唯一层。
[0341]
变量olslayeidx[i][j]表示nuh_layer_id等于layeridinols[i][j]的层的ols层索引,该变量推导如下:
[0342][0343]
每个ols中的最低层应为独立层。换句话说,当每个i的范围为0至totalnumolss

1(包括端值)时,vps_independent_layer_flag[generallayeridx[layeridinols[i][0]]]的值应等于1。
[0344]
每层应包括在由vps指定的至少一个ols中。换句话说,对于特定的nuh_layer_id nuhlayerid值等于vps_layer_id[k](k的范围为0至vps_max_layers_minus1,包括端值)之一的每层,应存在至少一对i和j的值,其中,i的范围为0至totalnumolss

1(包括端值),j的范围为numlayersinols[i]

1(包括端值),使得layeridinols[i][j]的值等于nuhlayerid。
[0345]
vps_num_ptls表示vps中的语法结构profile_tier_level()的数量。
[0346]
pt_present_flag[i]等于1:表示vps中的第i个语法结构profile_tier_level()
中存在档次(profile)、层次(tier)和通用约束条件信息。pt_present_flag[i]等于0表示:vps中的第i个语法结构profile_tier_level()中不存在档次、层次和通用约束条件信息。pt_present_flag[0]的值被推断为1。当pt_present_flag[i]等于0时,vps中的第i个语法结构profile_tier_level()中的档次、层次和通用约束条件信息被推断为与vps中的第(i

1)个语法结构profile_tier_level()中的档次、层次和通用约束条件信息相同。
[0347]
ptl_max_temporal_id[i]表示最高子层表示的temporalid,其中,该最高子层表示的级别信息存在于vps中的第i个语法结构profile_tier_level()中。ptl_max_temporal_id[i]的取值范围应为0至vps_max_sublayers_minus1(包括端值)。当vps_max_sublayers_minus1等于0时,ptl_max_temporal_id[i]的值被推断为0。当vps_max_sublayers_minus1大于0且vps_all_layers_same_num_sublayers_flag等于1时,ptl_max_temporal_id[i]的值被推断为vps_max_sublayers_minus1。
[0348]
vps_ptl_byte_alignment_zero_bit应等于0。
[0349]
ols_ptl_idx[i]表示当numlayersinols[i]大于1时,适用于第i个ols的语法结构profile_tier_level()在vps中的语法结构profile_tier_level()列表中的索引。当ols_ptl_idx[i]存在时,ols_ptl_idx[i]的取值范围应为0至vps_num_ptls

1(包括端值)。
[0350]
当numlayersinols[i]等于1时,适用于第i个ols的语法结构profile_tier_level()存在于由第i个ols中的层参考的sps中。
[0351]
vps_num_dpb_params表示vps中的语法结构dpb_parameters()的数量。vps_num_dpb_params的取值范围应为0至16(包括端值)。当vps_num_dpb_params不存在时,vps_num_dpb_params的值被推断为0。
[0352]
same_dpb_size_output_or_nonoutput_flag等于1表示:vps中不存在语法元素layer_nonoutput_dpb_params_idx[i]。same_dpb_size_output_or_nonoutput_flag等于0表示:vps中可以或可以不存在语法元素layer_nonoutput_dpb_params_idx[i]。
[0353]
vps_sublayer_dpb_params_present_flag用于控制vps中的语法结构dpb_parameters()中是否存在语法元素max_dec_pic_buffering_minus1[]、max_num_reorder_pics[]和max_latency_increase_plus1[]。当vps_sub_dpb_params_info_present_flag不存在时,vps_sub_dpb_params_info_present_flag被推断为0。
[0354]
dpb_size_only_flag[i]等于1表示:vps中的第i个语法结构dpb_parameters()中不存在语法元素max_num_reorder_pics[]和max_latency_increase_plus1[]。dpb_size_only_flag[i]等于0表示:vps中的第i个语法结构dpb_parameters()中可以存在语法元素max_num_reorder_pics[]和max_latency_increase_plus1[]。
[0355]
dpb_max_temporal_id[i]表示最高子层表示的temporalid,其中,该最高子层表示的dpb参数可以存在于vps中的第i个语法结构dpb_parameters()中。dpb_max_temporal_id[i]的取值范围应为0至vps_max_sublayers_minus1(包括端值)。当vps_max_sublayers_minus1等于0时,dpb_max_temporal_id[i]的值被推断为0。当vps_max_sublayers_minus1大于0且vps_all_layers_same_num_sublayers_flag等于1时,dpb_max_temporal_id[i]的值被推断为vps_max_sublayers_minus1。
[0356]
layer_output_dpb_params_idx[i]表示当第i层是ols中的输出层时,适用于第i层的语法结构dpb_parameters()在vps中的语法结构dpb_parameters()列表中的索引。当
layer_output_dpb_params_idx[i]存在时,layer_output_dpb_params_idx[i]的取值范围应为0至vps_num_dpb_params

1(包括端值)。
[0357]
如果vps_independent_layer_flag[i]等于1,则当第i层是输出层时,适用于第i层的语法结构dpb_parameters()是存在于由该层参考的sps中的语法结构dpb_parameters()。
[0358]
否则(vps_independent_layer_flag[i]等于0),以下内容适用:
[0359]

当vps_num_dpb_params等于1时,layer_output_dpb_params_idx[i]的值被推断为0。
[0360]

码流一致性的要求是:layer_output_dpb_params_idx[i]的值应使得dpb_size_only_flag[layer_output_dpb_params_idx[i]]等于0。
[0361]
layer_nonoutput_dpb_params_idx[i]表示当第i层是ols中的非输出层时,适用于第i层的语法结构dpb_parameters()在vps中的语法结构dpb_parameters()列表中的索引。当layer_nonoutput_dpb_params_idx[i]存在时,layer_nonoutput_dpb_params_idx[i]的取值范围应为0至vps_num_dpb_params

1(包括端值)。
[0362]
如果same_dpb_size_output_or_nonoutput_flag等于1,则以下内容适用:
[0363]

如果vps_independent_layer_flag[i]等于1,则当第i层是非输出层时,适用于第i层的语法结构dpb_parameters()是存在于由该层参考的sps中的语法结构dpb_parameters()。
[0364]

否则(vps_independent_layer_flag[i]等于0),layer_nonoutput_dpb_params_idx[i]的值被推断为layer_output_dpb_params_idx[i]。
[0365]
否则(same_dpb_size_output_or_nonoutput_flag等于0),当vps_num_dpb_params等于1时,layer_output_dpb_params_idx[i]的值被推断为0。
[0366]
vps_general_hrd_params_present_flag等于1表示:语法结构general_hrd_parameters()和其它hrd参数存在于vps rbsp语法结构中。vps_general_hrd_params_present_flag等于0表示:语法结构general_hrd_parameters()和其它hrd参数不存在于vps rbsp语法结构中。
[0367]
vps_sublayer_cpb_params_present_flag等于1表示:vps中的第i个语法结构ols_hrd_parameters()包括temporalid在0至hrd_max_tid[i]范围(包括端值)内的子层表示的hrd参数。vps_sublayer_cpb_params_present_flag等于0表示:vps中的第i个ols_hrd_parameters()语法结构只包括temporalid等于hrd_max_tid[i]的子层表示的hrd参数。当vps_max_sublayers_minus1等于0时,vps_sublayer_cpb_params_present_flag的值被推断为0。
[0368]
当vps_sublayer_cpb_params_present_flag等于0时,temporalid在范围0至hrd_max_tid[i]

1(包括端值)内的子层表示的hrd参数被推断为与temporalid等于hrd_max_tid[i]的子层表示的hrd参数相同。这些参数包括从语法元素fixed_pic_rate_general_flag[i]开始,直到紧跟语法结构ols_hrd_parameters中的条件“if(general_vcl_hrd_params_present_flag)”之后的语法结构sublayer_hrd_parameters(i)的hrd参数。
[0369]
num_ols_hrd_params_minus1+1表示语法结构general_hrd_parameters()中存在的语法结构ols_hrd_parameters()的数量。num_ols_hrd_params_minus1的取值范围应为
0至63(包括端值)。当totalnumolss等于1时,num_ols_hrd_params_minus1的值被推断为0。
[0370]
hrd_max_tid[i]表示最高子层表示的temporalid,其中,该最高子层表示的hrd参数包括在第i个语法结构ols_hrd_parameters()中。hrd_max_tid[i]的取值范围应为0至vps_max_sublayers_minus1(包括端值)。当vps_max_sublayers_minus1等于0时,hrd_max_tid[i]的值被推断为0。当vps_max_sublayers_minus1大于0且vps_all_layers_same_num_sublayers_flag等于1时,hrd_max_tid[i]的值被推断为vps_max_sublayers_minus1。
[0371]
ols_hrd_idx[i]表示适用于第i个ols的语法结构ols_hrd_parameters()的索引。ols_hrd_idx[[i]的取值范围应为0至num_ols_hrd_params_minus1(包括端值)。当ols_hrd_idx[[i]不存在时,ols_hrd_idx[[i]的值被推断为0。
[0372]
vps_extension_flag等于0表示:vps rbsp语法结构中不存在语法元素vps_extension_data_flag。vps_extension_flag等于1表示vps rbsp语法结构中存在语法元素vps_extension_data_flag。
[0373]
vps_extension_data_flag可以取任意值。它的存在和取值不影响解码器与本规范这一版本中指定的档次(profile)的一致性。与本规范这一版本一致的解码器应忽略所有语法元素vps_extension_data_flag。
[0374]
dpb管理和参考图像标识
[0375]
为了管理解码过程中的参考图像,需要将经解码图像保存在解码图像缓冲区(decoded picture buffer,dpb)中,以供后续图像解码参考使用。为了指示这些图像,它们的图像顺序编号(picture order count,poc)信息需要直接或直接在条带头中指示。通常情况下存在两个参考图像列表,即列表0和列表1。而且还需要包括参考图像索引,以指示列表中的图像。对于单向预测,参考图像从一个参考图像列表中获取,而对于双向预测,参考图像从两个参考图像列表中获取。
[0376]
所有参考图像都存储在dpb中。dpb中的所有图像都标识为“用于长期参考”、“用于短期参考”或“不用于参考”,即三种状态中的一种状态。一旦图像标识为“不用于参考”,则不再用于参考。如果也不需要存储以供输出,则可以从dpb中移除。参考图像的状态可以在条带头中指示,也可以从条带头信息中推导出。
[0377]
提出了一种新的参考图像管理方法,称为参考图像列表(reference picture list,rpl)方法。rpl提出当前编码图像(coding picture)对应的一个或多个完整的参考图像集,参考图像集中的参考图像用于当前图像或未来(后续)图像解码。因此,rpl反映了dpb中的图像信息,即使参考图像不用于当前图像的参考,但如果用于后续图像的参考,则还是需要存储在rpl中。
[0378]
图像在重建之后会存储在dpb中,并默认标记为“用于短期参考”。dpb管理操作将在解析条带头中的rpl信息之后开始。
[0379]
参考图像列表构建
[0380]
参考图像信息可以通过条带头指示。此外,序列参数集(sequence parameters set,sps)中可以存在一些rpl候选。在这种情况下,条带头可以包括rpl索引来得到所需的rpl信息,无需指示整个rpl语法结构。或者,整个rpl语法结构可以在条带头中指示。
[0381]
rpl方法介绍如下。
[0382]
为了降低rpl指示的成本比特,sps中可以存在一些rpl候选。图像可以使用rpl索
引(ref_pic_list_idx[i])从sps中获取其rpl信息。rpl候选指示如下:
[0383][0384][0385]
语义如下:
[0386]
rpl1_same_as_rpl0_flag等于1表示:语法结构num_ref_pic_lists_in_sps[1]和ref_pic_list_struct(1,rplsidx)不存在,而且以下内容适用:
[0387]

num_ref_pic_lists_in_sps[1]的值被推断为num_ref_pic_lists_in_sps[0]的值。
[0388]

ref_pic_list_struct(1,rplsidx)中的每个语法元素的值被推断为ref_pic_list_struct(0,rplsidx)(其中,rplsidx的范围为0至num_ref_pic_lists_in_sps[0]

1)中的对应语法元素的值。
[0389]
num_ref_pic_lists_in_sps[i]表示sps中包括的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx)的数量。num_ref_pic_lists_in_sps[i]的取值范围为0至64(包括端值)。
[0390]
除了根据rpl索引从sps中获取rpl信息之外,rpl信息还可以在条带头中指示。
[0391][0392][0393]
ref_pic_list_sps_flag[i]等于1表示:当前条带的参考图像列表i是根据sps中的listidx等于i的其中一个语法结构ref_pic_list_struct(listidx,rplsidx)推导出的。ref_pic_list_sps_flag[i]等于0表示:当前条带的参考图像列表i是根据直接包括在当前图像的条带头中的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx)推导出的。
[0394]
当ref_pic_list_sps_flag[i]不存在时,以下内容适用:
[0395]

如果num_ref_pic_lists_in_sps[i]等于0,则ref_pic_list_sps_flag[i]的值被推断为0。
[0396]

否则(num_ref_pic_lists_in_sps[i]大于0),如果rpl1_idx_present_flag等于0,则ref_pic_list_sps_flag[1]的值被推断为ref_pic_list_sps_flag[0]。
[0397]

否则,ref_pic_list_sps_flag[i]的值被推断为pps_ref_pic_list_sps_idc[i]

1。
[0398]
ref_pic_list_idx[i]表示用于推导当前图像的参考图像列表i的listidx等于i
的语法结构ref_pic_list_struct(listidx,rplsidx)在sps中包括的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx)列表中的索引。语法元素ref_pic_list_idx[i]由ceil(log2(num_ref_pic_lists_in_sps[i]))个比特表示。当ref_pic_list_idx[i]不存在时,ref_pic_list_idx[i]的值被推断为0。ref_pic_list_idx[i]的取值范围应为0至num_ref_pic_lists_in_sps[i]

1(包括端值)。当ref_pic_list_sps_flag[i]等于1且num_ref_pic_lists_in_sps[i]等于1时,ref_pic_list_idx[i]的值被推断为0。当ref_pic_list_sps_flag[i]等于1且rpl1_idx_present_flag等于0时,ref_pic_list_idx[1]的值被推断为ref_pic_list_idx[0]。
[0399]
变量rplsidx[i]推导如下:
[0400]
rplsidx[i]=ref_pic_list_sps_flag[i]?ref_pic_list_idx[i]:
[0401]
num_ref_pic_lists_in_sps[i](7-95)
[0402]
slice_poc_lsb_lt[i][j]表示第i个参考图像列表中的第j个ltrp条目的图像顺序编号的值对maxpicordercntlsb取模。语法元素slice_poc_lsb_lt[i][j]的长度为(log2_max_pic_order_cnt_lsb_minus4+4)个比特。
[0403]
变量poclsblt[i][j]推导如下:
[0404]
poclsblt[i][j]=ltrp_in_slice_header_flag[i][rplsidx[i]]?
ꢀꢀꢀꢀ
(7-96)
[0405]
slice_poc_lsb_lt[i][j]:rpls_poc_lsb_lt[listidx][rplsidx[i]][j]
[0406]
delta_poc_msb_present_flag[i][j]等于1表示:delta_poc_msb_cycle_lt[i][j]存在。delta_poc_msb_present_flag[i][j]等于0表示:delta_poc_msb_cycle_lt[i][j]不存在。
[0407]
假设prevtid0pic是解码顺序中的前一图像,其中,前一图像与当前图像具有相同的nuh_layer_id,前一图像的temporalid等于0,而且前一图像不是rasl图像或radl图像。假设setofprevpocvals是以下内容组成的集合:
[0408]

prevtid0pic的picordercntval,
[0409]

由prevtid0pic的refpiclist[0]或refpiclist[1]中的条目参考且与当前图像具有相同nuh_layer_id的每个图像的picordercntval,
[0410]

解码顺序在prevtid0pic之后、与当前图像具有相同nuh_layer_id且解码顺序在当前图像之前的每个图像的picordercntval。
[0411]
当setofprevpocvals中存在一个以上值时,其中,值对maxpicordercntlsb取模等于poclsblt[i][j],delta_poc_msb_present_flag[i][j]的值应等于1。
[0412]
delta_poc_msb_cycle_lt[i][j]表示变量fullpoclt[i][j]的值,如下所示:
[0413][0414]
delta_poc_msb_cycle_lt[i][j]的取值范围应为0至2
(32

log2_max_pic_order_cnt_lsb_minus4

4)
(包括端值)。当delta_poc_msb_cycle_lt[i][j]不存在时,
delta_poc_msb_cycle_lt[i][j]的值被推断为0。
[0415]
rpl的语法结构如下:
[0416][0417][0418]
num_ref_entries[listidx][rplsidx]表示语法结构ref_pic_list_struct(listidx,rplsidx中的条目的数量。num_ref_entries[listidx][rplsidx]的取值范围应为0至sps_max_dec_pic_buffering_minus1+14(包括端值)。
[0419]
ltrp_in_slice_header_flag[listidx][rplsidx等于0表示:语法结构ref_pic_list_struct(listidx,rplsidx)中存在语法结构ref_pic_list_struct(listidx,rplsidx)中的ltrp条目的poc lsb。ltrp_in_slice_header_flag[listidx][rplsidx]等于1表示:语法结构ref_pic_list_struct(listidx,rplsidx)中不存在语法结构ref_pic_list_struct(listidx,rplsidx)中的ltrp条目的poc lsb。
[0420]
inter_layer_ref_pic_flag[listidx][rplsidx][i]等于1表示:语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是ilrp条目。inter_layer_ref_pic_flag[listidx][rplsidx][i]等于0表示:语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目不是ilrp条目。当inter_layer_ref_pic_flag[listidx][rplsidx][i]不存在时,inter_layer_ref_pic_flag[listidx][rplsidx][i]的值被推断为0。
[0421]
st_ref_pic_flag[listidx][rplsidx][i]等于1表示:语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是strp条目。st_ref_pic_flag[listidx][rplsidx][i]等于0表示:语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是ltrp条目。当inter_layer_ref_pic_flag[listidx][rplsidx][i]等于0且st_ref_pic_flag[listidx][rplsidx][i]不存在时,st_ref_pic_flag[listidx][rplsidx][i]的值被推断为1。
[0422]
变量numltrpentries[listidx][rplsidx]推导如下:
[0423][0424]
abs_delta_poc_st[listidx][rplsidx][i]表示变量absdeltapocst[listidx][rplsidx][i]的值,如下所示:
[0425][0426]
strp_entry_sign_flag[listidx][rplsidx][i]等于1表示:语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目的值大于或等于0。strp_entry_sign_flag[listidx][rplsidx][i]等于0表示:语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目的值小于0。当strp_entry_sign_flag[listidx][rplsidx][i]不存在时,strp_entry_sign_flag[listidx][rplsidx][i]的值被推断为1。
[0427]
列表deltapocvalst[listidx][rplsidx]推导如下:
[0428][0429]
rpls_poc_lsb_lt[listidx][rplsidx][i]表示由语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目参考的图像的图像顺序编号的值对maxpicordercntlsb取模。语法元素rpls_poc_lsb_lt[listidx][rplsidx][i]的长度为(log2_max_pic_order_cnt_lsb_minus4+4)个比特。
[0430]
rpl结构的一些简要描述
[0431]
每个列表都存在一个rpl结构。首先,指示num_ref_entries[listidx][rplsidx],以表示列表中的参考图像的数量。ltrp_in_slice_header_flag[listidx][rplsidx]用于表示最低有效字节(least significant byte,lsb)信息是否在条带头中指示。如果当前参
考图像不是层间参考图像,则st_ref_pic_flag[listidx][rplsidx][i]用于表示当前参考图像是否是长期参考图像。如果是短期参考图像,则指示poc信息(abs_delta_poc_st和strp_entry_sign_flag)。如果ltrp_in_slice_header_flag[listidx][rplsidx]为0,则rpls_poc_lsb_lt[listidx][rplsidx][j++]用于推导当前参考图像的lsb信息。最高有效位(most significant bit,msb)可以直接导出,也可以根据条带头中的信息(delta_poc_msb_present_flag[i][j]和delta_poc_msb_cycle_lt[i][j])推导出。
[0432]
用于参考图像列表构建的解码过程
[0433]
该过程在开始非idr图像中的每个条带的解码过程时调用。
[0434]
参考图像通过参考索引进行寻址。参考索引是参考图像列表中的索引。在对i条带进行解码时,条带数据的解码不使用参考图像列表。在对p条带进行解码时,条带数据的解码只使用参考图像列表0(即refpiclist[0])。在对b条带进行解码时,条带数据的解码既使用参考图像列表0,又使用参考图像列表1(即refpiclist[1])。
[0435]
在非idr图像中的每个条带的解码过程开始时,推导出参考图像列表refpiclist[0]和refpiclist[1]。参考图像列表用于第8.3.3节详述的参考图像标识中或用于条带数据的解码中。
[0436]
注1:对于非idr图像中的不是第一个条带的i条带,refpiclist[0]和refpiclist[1]可以推导用于码流一致性检查目的,但是两者的推导不一定用于当前图像或解码顺序在当前图像之后的图像的解码。对于不是图像中的第一个条带的p条带,refpiclist[1]可以推导用于码流一致性检查目的,但是其推导不一定用于当前图像或解码顺序在当前图像之后的图像的解码。
[0437]
参考图像列表refpiclist[0]和refpiclist[1]、参考图像缩放比refpicscale[i][j][0]和refpicscale[i][j][1]以及参考图像缩放标志refpicisscaled[0]和refpicisscaled[1]构建如下:
[0438]
[0439][0440]
在每个i等于0或1的情况下,refpiclist[i]中的前numrefidxactive[i]个条目称为refpiclist[i]中的激活条目,refpiclist[i]中的其它条目称为refpiclist[i]中的非激活条目。
[0441]
注2:某一图像有可能由refpiclist[0]中的条目和refpiclist[1]中的条目共同参考。某个图像还有可能由refpiclist[0]中的一个以上条目或由refpiclist[1]中的一个以上条目参考。
[0442]
注3:refpiclist[0]中的激活条目和refpiclist[1]中的激活条目共同参考所有可以用于当前图像和解码顺序在当前图像之后的一个或多个图像的帧间预测的参考图像。refpiclist[0]中的非激活条目和refpiclist[1]中的非激活条目共同参考所有不用于当前图像的帧间预测但可以用于解码顺序在当前图像之后的一个或多个图像的帧间预测的参考图像。
[0443]
注4:refpiclist[0]或refpiclist[1]中可以存在一个或多个等于“无参考图像”的条目,因为dpb中不存在对应图像。应该忽略refpiclist[0]或refpiclist[0]中等于“无参考图像”的每个非激活条目。应该为refpiclist[0]或refpiclist[1]中等于“无参考图像”的每个激活条目推断意外图像丢失。
[0444]
码流一致性的要求是以下约束条件适用:
[0445]

在每个i等于0或1的情况下,num_ref_entries[i][rplsidx[i]]应不小于numrefidxactive[i]。
[0446]

由refpiclist[0]或refpiclist[1]中的每个激活条目参考的图像应存在于dpb中,而且该图像的temporalid小于或等于当前图像的temporalid。
[0447]

由refpiclist[0]或refpiclist[1]中的每个条目参考的图像应不是当前图像,而且该图像的non_reference_picture_flag应等于0。
[0448]

图像中的条带的refpiclist[0]或refpiclist[1]中的strp条目与同一图像中的
同一条带或不同条带的refpiclist[0]或refpiclist[1]中的ltrp条目应不参考同一图像。
[0449]

refpiclist[0]或refpiclist[1]中不存在ltrp条目,其中,当前图像的picordercntval与由该条目参考的图像的picordercntval之间的差值大于或等于2
24

[0450]

假设setofrefpics是由refpiclist[0]中的与当前图像具有相同nuh_layer_id的所有条目和refpiclist[1]中的与当前图像具有相同nuh_layer_id的所有条目参考的唯一图像集。setofrefpics中的图像数量应小于或等于maxdecpicbuffminus1,而且一个图像中的所有条带的setofrefpics应是相同的。
[0451]

在当前图像是stsa图像时,refpiclist[0]或refpiclist[1]中应不存在与当前图像具有相同temporalid的激活条目。
[0452]

在当前图像是解码顺序在与当前图像具有相同temporalid的stsa图像之后的图像时,应不存在与当前图像具有相同temporalid的作为refpiclist[0]或refpiclist[1]中的解码顺序在stsa图像之前的激活条目的图像。
[0453]

在当前图像是cra图像时,应不存在由refpiclist[0]或refpiclist[1]中的条目参考的输出顺序或解码顺序在解码顺序中的任何前一irap图像(如果存在)之前的图像。
[0454]

在当前图像是后置图像时,应不存在由refpiclist[0]或refpiclist[1]中的激活条目参考的通过用于生成与当前图像相关联的irap图像不可用的参考图像的解码过程生成的图像。
[0455]

在当前图像是解码顺序和输出顺序都在与同一irap图像相关联的一个或多个前置图像(如果存在)之后的后置图像时,应不存在由refpiclist[0]或refpiclist[1]中的条目参考的通过用于生成与当前图像相关联的irap图像不可用的参考图像的解码过程生成的图像。
[0456]

在当前图像是恢复点图像或输出顺序在恢复点图像之后的图像时,refpiclist[0]或refpiclist[1]中应不存在包括通过用于生成恢复点图像的gdr图像不可用的参考图像生成的图像的条目。
[0457]

在当前图像是后置图像时,应不存在由refpiclist[0]或refpiclist[1]中的激活条目参考的输出顺序或解码顺序在关联irap图像之前的图像。
[0458]

在当前图像是解码顺序和输出顺序都在与同一irap图像相关联的一个或多个前置图像(如果存在)之后的后置图像时,应不存在由refpiclist[0]或refpiclist[1]中的条目参考的输出顺序或解码顺序在关联irap图像之前的图像。
[0459]

在当前图像是radl图像时,refpiclist[0]或refpiclist[1]中应不存在为以下任一项的条目:
[0460]
rasl图像
[0461]
通过用于生成不可用参考图像的解码过程生成的图像
[0462]
解码顺序在关联irap图像之前的图像
[0463]

由当前图像中的条带的refpiclist[0]或refpiclist[1]中的每个ilrp条目参考的图像应与当前图像在同一au中。
[0464]

由当前图像中的条带的refpiclist[0]或refpiclist[1]中的每个ilrp条目参考的图像应存在于dpb中,而且该图像的nuh_layer_id应小于当前图像的nuh_layer_id。
[0465]

条带的refpiclist[0]或refpiclist[1]中的每个ilrp条目都应是激活条目。
[0466]
在rpl构建之后,标识过程如下。
[0467]
用于参考图像标识的解码过程
[0468]
在条带头解码和用于条带的参考图像列表构建的解码过程(如第8.3.2节详述)之后,但在条带数据解码之前,每个图像调用一次该过程。该过程可以使dpb中的一个或多个参考图像标识为“不用于参考”或“用于长期参考”。
[0469]
dpb中的经解码图像可以标识为“不用于参考”、“用于短期参考”或“用于长期参考”,但在解码过程操作内的任一时刻只能标识为这三种状态中的一种状态。将这些标识状态中的一种状态指定给一个图像隐式地移除其它标识状态(如果适用)。当一个图像标识为“用于参考”时,这统一是指将该图像标识为“用于短期参考”或“用于长期参考”(但不是同时)。
[0470]
strp和ilrp通过它们的nuh_layer_id和picordercntval值确定。ltrp通过它们的nuh_layer_id值和它们的picordercntval值的log2(maxltpicordercntlsb)个lsb确定。
[0471]
如果当前图像是clvss图像,则dpb中当前包括的所有与当前图像具有相同nuh_layer_id的参考图像都标识为“不用于参考”。
[0472]
否则,以下内容适用:
[0473]

对于refpiclist[0]或refpiclist[1]中的每个ltrp条目,当被参考的图像是与当前图像具有相同nuh_layer_id的strp时,该图像标识为“用于长期参考”。
[0474]

dpb中的与当前图像具有相同nuh_layer_id的未由refpiclist[0]或refpiclist[1]中的任何条目参考的每个参考图像标识为“不用于参考”。
[0475]

对于refpiclist[0]或refpiclist[1]中的每个ilrp条目,被参考的图像标识为“用于长期参考”。
[0476]
不同步的irap图像可以跨层。为了支持这种设计,采用以下poc设计在au内混合irap图像和非irap图像。
[0477]
对于独立层,使用poc msb循环周期指示。sps中有一个控制图像头是否具有ph_poc_msb_cycle_present_flag的标志,sps中还有一个长度。当ph_poc_msb_cycle_present_flag等于1时,经过u(v)译码的poc msb循环周期在图像头中指示。当存在poc msb循环周期时,图像的poc msb被设置为poc_msb_cycle*maxpicordercntlsb。
[0478]
对于依赖层,如果当前层的参考层中的同一au中存在图像pica,则poc被推导为pia的poc,而且要求poc lsb值跨层对齐。否则,当前poc推导过程适用。
[0479]
[0480][0481]
bit_depth_minus8表示亮度和色度阵列中的样本的位深度bitdepth以及亮度和色度量化参数范围偏移qpbdoffset的值,如下所示:
[0482]
bitdepth=8+bit_depth_minus8
ꢀꢀꢀꢀ
(45)
[0483]
qpbdoffset=6*bit_depth_minus8
ꢀꢀꢀꢀ
(46)
[0484]
bit_depth_minus8的范围应为0至8(包括端值)。
[0485]
sps_decoding_parameter_set_id在大于0时表示由sps参考的dps的dps_decoding_parameter_set_id值。当sps_decoding_parameter_set_id等于0时,sps不参考dps且在对参考sps的每个clvs进行解码时不参考dps。由码流中的经编码图像参考的所有sps应具有相同的sps_decoding_parameter_set_id值。
[0486]
sps_video_parameter_set_id在大于0时表示由sps参考的vps的vps_video_parameter_set_id值。
[0487]
当sps_video_parameter_set_id等于0时,以下内容适用:
[0488]

sps不参考vps。
[0489]

在对参考sps的每个clvs进行解码时不参考vps。
[0490]

vps_max_layers_minus1的值被推断为0。
[0491]

cvs应只包括一层(即cvs中的所有vcl nal单元应具有相同的nuh_layer_id值)。
[0492]

generallayeridx[nuh_layer_id]的值被推断为0。
[0493]

vps_independent_layer_flag[generallayeridx[nuh_layer_id]]的值被推断为1。
[0494]
当vps_independent_layer_flag[generallayeridx[nuh_layer_id]]等于1时,由具有特定的nuh_layer_id值(nuhlayerid)的clvs参考的sps应具有等于nuhlayerid的nuh_layer_id。
[0495]
chroma_format_idc表示相对于亮度采样的色度采样,如第6.2节详述。
[0496]
separate_colour_plane_flag等于1表示:4:4:4色度格式下的3个颜色分量是单独译码的。separate_colour_plane_flag等于0表示:颜色分量不是单独译码的。当separate_colour_plane_flag不存在时,separate_colour_plane_flag被推断为0。当separate_colour_plane_flag等于1时,经编码图像由3个单独的分量组成,每个分量由一个颜色平面的经编码样本(y、cb或cr)组成并使用黑白编码语法。在这种情况下,每个颜色平面与特定的colour_plane_id值相关联。
[0497]
注1:在解码过程中具有colour_plane_id值的颜色平面之间没有依赖关系。例如,
具有一个colour_plane_id值的黑白图像的解码过程不使用具有不同colour_plane_id值的黑白图像的任何数据进行帧间预测。
[0498]
根据separate_colour_plane_flag的值,变量chromaarraytype赋值如下:
[0499]

如果separate_colour_plane_flag等于0,则chromaarraytype被设置为chroma_format_idc。
[0500]

否则(separate_colour_plane_flag等于1),chromaarraytype设置为0。
[0501]
chroma_format_idc和separate_colour_plane_flag的含义用于表示色度格式:
[0502]
chroma_format_idcseparate_colour_plane_flag色度格式subwidthcsubheightc00黑白11104:2:022204:2:221304:4:411314:4:411
[0503]
sps_poc_msb_flag等于1表示:参考sps的ph中存在语法元素ph_poc_msb_cycle_present_flag。sps_poc_msb_flag等于0表示:参考sps的ph中不存在语法元素ph_poc_msb_cycle_present_flag。
[0504]
poc_msb_len_minus1+1表示参考sps的ph中存在语法元素poc_msb_val时,该语法元素的以比特为单位的长度。poc_msb_len_minus1的取值范围应为0至32

log2_max_pic_order_cnt_lsb_minus4

5(包括端值)。
[0505][0506]
ph_poc_msb_present_flag等于1表示:ph中存在语法元素poc_msb_val。ph_poc_msb_present_flag等于0表示:ph中不存在语法元素poc_msb_val。当vps_independent_layer_flag[generallayeridx[nuh_layer_id]]等于0且当前层的参考层中的当前au中存在图像时,ph_poc_msb_present_flag的值应等于0。
[0507]
poc_msb_val表示当前图像的poc msb值。语法元素poc_msb_val的长度为(poc_msb_len_minus1+1)个比特。
[0508]
下面是当前图像的图像顺序编号(picture order count,poc)推导。
[0509]
用于图像顺序编号的解码过程
[0510]
该过程的输出为picordercntval,即当前图像的图像顺序编号。
[0511]
每个经编码图像与图像顺序编号变量(表示为picordercntval)相关联。
[0512]
如果vps_independent_layer_flag[generallayeridx[nuh_layer_id]]等于0且当前层的参考层中的当前au中存在图像pica,则picordercntval被推导为pica的picordercntval,而且当前au的所有vcl nal单元应具有相同的slice_pic_order_cnt_lsb值。否则,当前图像的picordercntval推导如下。
[0513]
当ph_poc_msb_present_flag等于0且当前图像不是clvss图像时,变量prevpicordercntlsb和prevpicordercntmsb推导如下:
[0514]

假设prevtid0pic是解码顺序中的前一图像,其中,前一图像的nuh_layer_id等于当前图像的nuh_layer_id,前一图像的temporalid等于0,而且前一图像不是rasl图像或radl图像。
[0515]

变量prevpicordercntlsb被设置为prevtid0pic的slice_pic_order_cnt_lsb。
[0516]

变量prevpicordercntmsb被设置为prevtid0pic的picordercntmsb。
[0517]
当前图像的变量picordercntmsb推导如下:
[0518]

如果ph_poc_msb_present_flag等于1,则picordercntmsb被设置为poc_msb_val*maxpicordercntlsb。
[0519]

否则(ph_poc_msb_present_flag等于0),如果当前图像是clvss图像,则picordercntmsb被设置为0。
[0520]

否则,picordercntmsb推导如下:
[0521][0522]
picordercntval推导如下:
[0523]
picordercntval=picordercntmsb+slice_pic_order_cnt_lsb
ꢀꢀꢀꢀ
(197)
[0524]
注1:由于poc_msb_val不存在的clvss图像的picordercntmsb被设置为0,因此这些图像的picordercntval都等于slice_pic_order_cnt_lsb。
[0525]
picordercntval的取值范围应为
–231
至2
31

1(包括端值)。
[0526]
在一个cvs中,任意两个具有相同nuh_layer_id的经编码图像的picordercntval值应不同。
[0527]
任一特定au中的所有图像都应具有相同的picordercntval值。
[0528]
函数picordercnt(picx)如下所示:
[0529]
picordercnt(picx)=图像picx的picordercntval
ꢀꢀꢀꢀ
(198)
[0530]
函数diffpicordercnt(pica,picb)如下所示:
[0531]
diffpicordercnt(pica,picb)=picordercnt(pica)

picordercnt(picb) (199)
[0532]
码流应不包括使解码过程中使用的diffpicordercnt(pica,picb)的取值范围不为
–215
至2
15

1(包括端值)的数据。
[0533]
注2:假设x是当前图像,y和z是同一cvs中的另外两个图像,当diffpicordercnt
(x,y)和diffpicordercnt(x,z)都为正或都为负时,认为y和z相对于x处于相同的输出顺序方向上。
[0534]
sps_poc_msb_flag的约束条件
[0535]
标志sps_poc_msb_flag用于控制图像头中是否会呈现标志ph_poc_msb_cycle_present_flag。同时,在au内混合irap图像和非irap图像只需在多层场景下实现。因此,在单层编码场景下,不需要呈现ph_poc_msb_cycle_present_flag。因此,在单层编码场景下,sps_poc_msb_flag的值可以被约束为0。
[0536]
1.2chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8的约束条件
[0537]
当前运动补偿过程可以用于层间预测中,但不可用于不同层具有不同格式(例如chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8)的场景。
[0538]
提出在多层编码场景下约束sps_poc_msb_flag的值应等于0。
[0539]
提出约束层间预测只可用于当前层中的当前图像和参考层中的参考图像具有相同格式的场景。
[0540]
标志sps_poc_msb_flag用于控制图像头中是否会呈现标志ph_poc_msb_cycle_present_flag。同时,在au内混合irap图像和非irap图像只需在多层场景下实现。因此,在单层编码场景下,不需要呈现ph_poc_msb_cycle_present_flag。因此,在单层编码场景下,sps_poc_msb_flag的值可以被约束为0。
[0541]
第一实施例(sps_poc_msb_flag的约束条件)
[0542]
sps_poc_msb_flag的语义可以修改如下:
[0543]
sps_poc_msb_flag等于1表示:参考sps的ph中存在语法元素ph_poc_msb_cycle_present_flag。sps_poc_msb_flag等于0表示:参考sps的ph中不存在语法元素ph_poc_msb_cycle_present_flag。当vps_max_layers_minus1等于0时,sps_poc_msb_flag的值应等于0。
[0544]
第二实施例(格式的约束条件)
[0545]
应该在规范中添加以下约束约束:
[0546]
vps_direct_ref_layer_flag[i][j]等于0表示:索引为j的层不是索引为i的层的直接参考层。vps_direct_ref_layer_flag[i][j]等于1表示:索引为j的层是索引为i的层的直接参考层。当vps_direct_ref_layer_flag[i][j](其中,i和j的范围为0至vps_max_layers_minus1,包括端值)不存在时,vps_direct_ref_layer_flag[i][j]被推断为0。当vps_independent_layer_flag[i]等于0时,j至少有一个值应在范围0至i

1(包括端值)内,使得vps_direct_ref_layer_flag[i][j]的值等于1。
[0547]
变量numdirectreflayers[i]、directreflayeridx[i][d]、numreflayers[i]、reflayeridx[i][r]和layerusedasreflayerflag[j]推导如下:
[0548]
[0549][0550]
变量generallayeridx[i]表示nuh_layer_id等于vps_layer_id[i]的层的层索引,该变量推导如下:
[0551]
for(i=0;i《=vps_max_layers_minus1;i++)
ꢀꢀꢀꢀ
(38)
[0552]
generallayeridx[vps_layer_id[i]]=i
[0553]
约束条件选项a:
[0554]
如果当前层是依赖层,则当前层中的视频应与参考层中的视频具有相同的chroma_format_idc。
[0555]
此外,可以说,层间预测只能用于当前层中的视频与参考层中的视频具有相同chroma_format_idc的场景。
[0556]
约束条件选项b:
[0557]
如果当前层是依赖层,则当前层中的视频应与参考层中的视频具有相同的separate_colour_plane_flag。
[0558]
此外,可以说,层间预测只能用于当前层中的视频与参考层中的视频具有相同separate_colour_plane_flag的场景。
[0559]
约束条件选项c:
[0560]
如果当前层是依赖层,则当前层中的视频应与参考层中的视频具有相同的bit_depth_minus8。
[0561]
此外,可以说,层间预测只能用于当前层中的视频与参考层中的视频具有相同bit_depth_minus8的场景。
[0562]
选项a、b、c可以组合:
[0563]
例如,选项a+b:
[0564]
如果当前层是依赖层,则当前层中的视频应与参考层中的视频具有相同的chroma_format_idc、separate_colour_plane_flag。
[0565]
此外,可以说,层间预测只能用于当前层中的视频与参考层中的视频具有相同chroma_format_idc、separate_colour_plane_flag的场景。
[0566]
例如,选项a+b+c:
[0567]
如果当前层是依赖层,则当前层中的视频应与参考层中的视频具有相同的chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8。
[0568]
此外,可以说,层间预测只能用于当前层中的视频与参考层中的视频具有相同chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8的场景。
[0569]
第三实施例(格式的约束条件)
[0570]
约束条件也可以在其它方法中添加。
[0571]8ꢀꢀꢀꢀꢀꢀ
解码过程
[0572]
8.1
ꢀꢀꢀꢀ
通用解码过程
[0573]
8.1.1
ꢀꢀ
概述
[0574]
该过程的输入是码流bitstreamtodecode。该过程的输出是经解码图像列表。
[0575]
解码过程的规定使得与指定档次和级别一致的所有解码器在为与该档次和级别一致的码流调用与该档次相关联的解码过程时,产生数字上相同的裁剪后的经解码输出图像。与本文描述的过程产生相同的裁剪后的经解码输出图像(根据规定具有正确的输出顺序或输出时间)的任何解码过程都符合本规范中的解码过程要求。
[0576]
对于码流中的每个irap au,以下内容适用:
[0577]

如果au是码流中的解码顺序中的第一个au,每个图像都是idr图像,或者每个图像都是层中的解码顺序在eos nal单元之后的第一个图像,则变量noincorrectpicoutputflag被设置为1。
[0578]

否则,如果本规范中未详述的某一外部模块可用于将变量handlecraascvsstartflag设置为au的一个值,则handlecraascvsstartflag被设置为通过外部模块提供的值,而且noincorrectpicoutputflag被设置为handlecraascvsstartflag。
[0579]

否则,handlecraascvsstartflag和noincorrectpicoutputflag都被设置为0。
[0580]
对于码流中的每个gdr au,以下内容适用:
[0581]

如果au是码流中的解码顺序中的第一个au,或者每个图像都是层中的解码顺序在eos nal单元之后的第一个图像,则变量noincorrectpicoutputflag被设置为1。
[0582]

否则,如果本规范中未详述的某一外部模块可用于将变量handlegdrascvsstartflag设置为au的一个值,则handlegdrascvsstartflag被设置为通过外部模块提供的值,而且noincorrectpicoutputflag被设置为handlegdrascvsstartflag。
[0583]

否则,handlegdrascvsstartflag和noincorrectpicoutputflag都被设置为0。
[0584]
注:需要上述针对irap图像和gdr图像的操作来确定码流中的cvs。
[0585]
变量targetolsidx(确定待解码的目标ols的ols索引)和变量htid(确定待解码的最高时间子层)通过本规范中未详述的某一外部模块设置。码流bitstreamtodecode不包括除目标ols中包括的层之外的任何其它层,也不包括temporalid大于htid的任何nal单元。
[0586]
bitstreamtodecode中的解码顺序中的每个经编码图像重复调用第8.1.2节。
[0587]
选项a:
[0588]
当bitstreamtodecode包括一个以上层时,每层的以下属性应该相同:
[0589]

chroma_format_idc
[0590]

separate_colour_plane_flag
[0591]
选项b:
[0592]
当bitstreamtodecode包括一个以上层时,每层的以下属性应该相同:
[0593]

bit_depth_minus8
[0594]
选项c=选项a+选项b
[0595]
当bitstreamtodecode包括一个以上层时,每层的以下属性应该相同:
[0596]

chroma_format_idc
[0597]

separate_colour_plane_flag
[0598]

bit_depth_minus8
[0599]
(1)在单层编码场景中约束sps_poc_msb_flag的值应等于0,以减轻poc推导的设计。
[0600]
(2)约束层间预测的当前层和参考层的格式,以简化设计。
[0601]
图7为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图。所述方法可以由一种用于对编码视频码流进行解码的装置执行。如图7所示,所述用于对编码视频码流进行解码的方法可以包括以下步骤701至703。
[0602]
s701、通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0。
[0603]
具体地,层是图像序列,图像序列中的图像共用相同的层标识符或层索引。
[0604]
具体地,所述用于对编码视频码流进行解码的装置(例如图3所示的解码器)用于解析码流21(或通常称为经编码图像数据21)并对经编码图像数据21执行熵解码等,以获取经量化系数309和/或经解码编码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数、参考层语法元素、色度格式相关语法元素、位深度相关语法元素和/或其它语法元素中的任一个或全部。熵解码单元304可以用于应用与结合编码器20中的熵编码单元270描述的编码方案对应的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,以及向解码器30中的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。除条带和相应语法元素之外或作为条带和相应语法元素的替代,可以接收和/或使用分块组和/或分块以及相应语法元素。
[0605]
在一个实施例中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于索引为j的层和所述索引为i的层。
[0606]
在一个实施例中,所述参考层语法元素可以是上文引用的vps表中的语法元素vps_direct_ref_layer_flag[i][j]。
[0607]
vps_direct_ref_layer_flag[i][j]等于0表示:索引为j的层不是索引为i的层的直接参考层。vps_direct_ref_layer_flag[i][j]等于1表示:索引为j的层是索引为i的层的直接参考层。当vps_direct_ref_layer_flag[i][j](其中,i和j的范围为0至vps_max_layers_minus1,包括端值)不存在时,vps_direct_ref_layer_flag[i][j]被推断为0。当vps_independent_layer_flag[i]等于0时,j至少有一个值应在范围0至i

1(包括端值)内,
使得vps_direct_ref_layer_flag[i][j]的值等于1。
[0608]
变量numdirectreflayers[i]、directreflayeridx[i][d]、numreflayers[i]、reflayeridx[i][r]和layerusedasreflayerflag[j]推导如下:
[0609][0610]
具体地,vps_direct_ref_layer_flag[i][j]等于1表示:索引为j的层是索引为i的层的直接参考层。
[0611]
s702、根据所述参考层语法元素的值,确定所述索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0。
[0612]
在一个实施例中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
[0613]
具体地,关于参考层,存在两种场景:一种场景是索引为a的层是索引为b的层的直接参考层;另一种场景是当索引为c的层是索引为b的层的参考层,索引为a的层是索引为c的层的参考层,索引为a的层不是索引为b的层的直接参考层时,索引为a的层是索引为b的层的间接参考层。参考层包括直接参考层或间接参考层。索引为a的层是索引为b的层的直接参考层表示:索引为a的层包括索引为b的层中的图像的至少一个参考图像。在步骤s702中,所述索引为j的层是所述索引为k的层的参考层;如果所述参考层语法元素的值表示所述索引为k的层是索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
[0614]
s703、如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色
度格式相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
[0615]
具体地,如果索引为j的层是索引为i的层的参考层,则索引为i的层中的图像可以根据索引为j的层进行预测,应用于索引为i的层的色度格式相关语法元素的值与应用于索引为j的层的色度格式相关语法元素的值相同。
[0616]
具体地,所述用于对编码视频码流进行解码的装置(例如图3所示的解码器30)用于根据索引为j的层对索引为i的层中的图像使用帧间预测,根据从熵解码单元304接收到的运动矢量和其它语法元素,为当前视频条带的视频块生成预测块365。对于帧间预测,预测块可以根据其中一个参考图像列表内的其中一个参考图像生成。视频解码器30可以根据存储在dpb 330中的参考图像,使用默认构建技术来构建参考帧列表0和列表1。除条带(例如视频条带)之外或作为条带的替代,相同或类似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例或由这些实施例应用。例如,视频可以使用i、p或b分块组和/或分块进行译码。
[0617]
具体地,层间预测是指根据索引为j的层中的参考图像,对索引为i的层中的图像使用帧间预测。
[0618]
在一个实施例中,所述色度格式相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
[0619]
具体地,sps应用于图像序列,而层是图像序列,sps应用于索引为j的层或索引为i的层。
[0620]
在一个实施例中,所述色度格式相关语法元素可以是上文引用的sps表中的语法元素chroma_format_idc。
[0621]
chroma_format_idc表示相对于亮度采样的色度采样,如第6.2节详述。
[0622]
chroma_format_idc和separate_colour_plane_flag的含义用于表示色度格式:
[0623]
表:根据chroma_format_idc推导出的subwidthc和subheightc
[0624]
chroma_format_idcseparate_colour_plane_flag色度格式subwidthcsubheightc00黑白11104:2:022204:2:221304:4:411314:4:411
[0625]
根据本技术实施例,通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0;根据所述参考层语法元素的值,确定所述索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0;如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0626]
图8为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图。所述方法可以由一种用于对编码视频码流进行解码的装置执行。如图8所示,所述用于对编码视频码流进行解码的方法可以包括以下步骤801至803。
[0627]
s801、通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0。
[0628]
s802、如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
[0629]
需要说明的是,如果参考层语法元素的值表示索引为j的层不是索引为i的层的直接参考层,则索引为j的层可以是参考层,即索引为j的层可以是索引为j的层的间接参考层,也可以是参考层。
[0630]
根据本技术实施例,通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0;如果条件满足,则根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0631]
根据图7和图8所示的实施例,所述用于对编码视频码流进行解码的方法还包括:
[0632]
通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素和应用于所述索引为j的层的所述色度格式相关语法元素;所述条件还包括应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
[0633]
具体地,当索引为j的层是索引为i的层的参考层,并且应用于索引为i的层的色度格式相关语法元素的值与应用于索引为j的层的色度格式相关语法元素的值相同时,只能根据索引为j的层预测索引为i的层中的图像。
[0634]
图9为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图。所述方法可以由一种用于对编码视频码流进行解码的装置执行。如图9所示,根据图7所示的方法,所述用于对编码视频码流进行解码的方法可以包括以下步骤901至906。
[0635]
s901、通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0。
[0636]
s902、根据所述参考层语法元素的值,确定索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0。
[0637]
s903、如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
[0638]
s904、如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引
为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值不相同,停止对所述编码视频码流进行解码。
[0639]
s905、如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0640]
具体地,当索引为j的层不是索引为i的层的直接参考层且遍历所有层都找不到索引为k的层,索引为k的层是索引为i的层的直接参考层,索引为j的层是索引为k的层的参考层时,确定索引为j的层不是索引为i的层的参考层。
[0641]
在一个实施例中,如果所述索引为j的层不是所述索引为i的层的直接参考层,确定所述索引为j的层是否是所述索引为i的层的间接参考层;如果所述索引为j的层是所述索引为i的层的间接参考层,使用所述索引为j的层来预测所述索引为i的层中的图像;如果所述索引为j的层不是所述索引为i的层的间接参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0642]
当通过遍历所有层确定索引为k的层是索引为i的层的直接参考层,索引为j的层是索引为k的层的参考层时,确定索引为j的层是索引为i的层的间接参考层。
[0643]
s906、如果所述条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素的情况下,确定应用于所述索引为i的层的所述色度格式相关语法元素的值是应用于所述索引为j的层的所述色度格式相关语法元素的值。
[0644]
具体地,当索引为j的层是索引为i的层的参考层时,在不通过解析编码视频码流获取应用索引为i的层的色度格式相关语法元素的情况下,确定应用于索引为i的层的色度格式相关语法元素的值是应用于索引为j的层的色度格式相关语法元素的值。
[0645]
根据本技术实施例,如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值不相同,停止对所述编码视频码流进行解码;如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像;如果条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素的情况下,确定应用于所述索引为i的层的所述色度格式相关语法元素的值是应用于所述索引为j的层的所述色度格式相关语法元素的值。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0646]
图10为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图。所述方法可以由一种用于对编码视频码流进行解码的装置执行。如图10所示,所述用于对编码视频码流进行解码的方法可以包括以下步骤1001至1003。
[0647]
s1001、通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0。
[0648]
在一个实施例中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于索引为j的层和所述索引为i的层。
[0649]
s1002、根据所述参考层语法元素的值,确定所述索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0。
[0650]
在一个实施例中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
[0651]
s1003、如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
[0652]
在一个实施例中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
[0653]
在一个实施例中,所述位深度相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
[0654]
在一个实施例中,所述位深度相关语法元素可以是上文引用的sps表中的语法元素bit_depth_minus8。
[0655]
bit_depth_minus8表示亮度和色度阵列中的样本的位深度bitdepth以及亮度和色度量化参数范围偏移qpbdoffset的值,如下所示:
[0656]
bitdepth=8+bit_depth_minus8
ꢀꢀꢀꢀ
(45)
[0657]
qpbdoffset=6*bit_depth_minus8
ꢀꢀꢀꢀ
(46)
[0658]
bit_depth_minus8的范围应为0至8(包括端值)。
[0659]
本实施例的原理与图7所示的实施例类似,为简洁起见,此处不再赘述。
[0660]
根据本技术实施例,通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0;根据所述参考层语法元素的值,确定所述索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0;如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0661]
图11为本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图。所述方法可以由一种用于对编码视频码流进行解码的装置执行。如图11所示,所述用于对编码视频码流进行解码的方法可以包括以下步骤1101至1102。
[0662]
s1101、通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0。
[0663]
s1102、如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
[0664]
本实施例的原理与图8所示的实施例类似,为简洁起见,此处不再赘述。
[0665]
根据本技术实施例,通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0;如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,
应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0666]
根据图10和图11所示的实施例,所述用于对编码视频码流进行解码的方法还包括:
[0667]
通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素;所述条件还包括应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
[0668]
图12是本技术一个实施例提供的一种用于对编码视频码流进行解码的方法的示意性流程图。所述方法可以由一种用于对编码视频码流进行解码的装置执行。如图12所示,根据图10所示的方法,所述用于对编码视频码流进行解码的方法可以包括以下步骤1201至1206。
[0669]
s1201、通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0。
[0670]
s1202、根据所述参考层语法元素的值,确定索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0。
[0671]
s1203、如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
[0672]
s1204、如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值不相同,停止对所述编码视频码流进行解码。
[0673]
s1205、如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0674]
s1206、如果所述条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素的情况下,确定应用于所述索引为i的层的所述位深度相关语法元素的值是应用于所述索引为j的层的所述位深度相关语法元素的值。
[0675]
本实施例的原理与图9所示的实施例类似,为简洁起见,此处不再赘述。
[0676]
根据本技术实施例,如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值不相同,停止对所述编码视频码流进行解码;如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像;如果所述条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素的情况下,确定应用于所述索引为i的层的所述位深度相关语法元素的值是应用于所述索引为j的层的所述位深度相关语法元素的值。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0677]
图13是本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图。所述方法可以由一种用于对视频进行编码的装置执行。如图13所示,所述用于对视频进行编码的方法可以包括以下步骤1301和1302。
[0678]
s1301、确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0。
[0679]
所述用于对视频进行编码的装置(例如图2所示的编码器20)可以,例如用于确定索引为j的层是否是索引为i的层的直接参考层,以及用于从多个其它图像中的相同或不同图像的多个参考块中选择一个参考块并将参考图像(或参考图像索引)和/或参考块的位置(x、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。
[0680]
s1302、如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的色度格式相关语法元素和应用于所述索引为j的层的色度格式相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
[0681]
在一个实施例中,所述参考层语法元素可以是上文引用的vps表中的语法元素vps_direct_ref_layer_flag[i][j]。
[0682]
vps_direct_ref_layer_flag[i][j]等于0表示:索引为j的层不是索引为i的层的直接参考层。vps_direct_ref_layer_flag[i][j]等于1表示:索引为j的层是索引为i的层的直接参考层。当vps_direct_ref_layer_flag[i][j](其中,i和j的范围为0至vps_max_layers_minus1,包括端值)不存在时,vps_direct_ref_layer_flag[i][j]被推断为0。当vps_independent_layer_flag[i]等于0时,j至少有一个值应在范围0至i

1(包括端值)内,使得vps_direct_ref_layer_flag[i][j]的值等于1。
[0683]
变量numdirectreflayers[i]、directreflayeridx[i][d]、numreflayers[i]、reflayeridx[i][r]和layerusedasreflayerflag[j]推导如下:
coding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)编码或其它熵编码方法或技术)等应用于或不应用于(无压缩)经量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,以获取可以通过输出端272以经编码码流21等形式输出的经编码图像数据21,使得一种用于对经编码码流进行解码的装置(例如图3所示的视频解码器30)可以接收并使用这些参数进行解码。经编码码流21可以发送给视频解码器30,或者存储在存储器中以供视频解码器30稍后发送或检索。
[0692]
根据本技术实施例,确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的色度格式相关语法元素和应用于所述索引为j的层的色度格式相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0693]
图14是本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图。所述方法可以由一种用于对视频进行编码的装置执行。如图14所示,根据图13所示的方法,所述用于对视频进行编码的方法可以包括以下步骤1401至1404。
[0694]
s1401、确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0。
[0695]
s1402、如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的色度格式相关语法元素和应用于所述索引为j的层的色度格式相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
[0696]
s1403、如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
[0697]
(可能的)帧间预测模式集合取决于可用的参考图像(即,例如上述存储在dbp中的至少部分经解码图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗口区域)来搜索最佳匹配的参考块,和/或例如取决于是否应用像素插值,例如二分之一像素、四分之一像素和/或1/16像素插值。
[0698]
s1404、如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0699]
在一个实施例中,如果所述索引为j的层不是所述索引为i的层的直接参考层,确定所述索引为j的层是否是所述索引为i的层的间接参考层;如果所述索引为j的层是所述索引为i的层的间接参考层,使用所述索引为j的层来预测所述索引为i的层中的图像;如果所述索引为j的层不是所述索引为i的层的间接参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0700]
根据本技术实施例,确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的色度格式相关语法元素和应用于所述索引为j的层的色度格式相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同;如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0701]
图15是本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图。所述方法可以由一种用于对视频进行编码的装置执行。如图15所示,所述用于对视频进行编码的方法可以包括以下步骤1501和1502。
[0702]
s1501、确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0。
[0703]
s1502、如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
[0704]
在一个实施例中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
[0705]
在一个实施例中,所述位深度相关语法元素可以是上文引用的sps表中的语法元素bit_depth_minus8。
[0706]
bit_depth_minus8表示亮度和色度阵列中的样本的位深度bitdepth以及亮度和色度量化参数范围偏移qpbdoffset的值,如下所示:
[0707]
bitdepth=8+bit_depth_minus8
ꢀꢀꢀꢀ
(45)
[0708]
qpbdoffset=6*bit_depth_minus8
ꢀꢀꢀꢀ
(46)
[0709]
bit_depth_minus8的范围应为0至8(包括端值)。
[0710]
本实施例的原理与图13所示的实施例类似,为简洁起见,此处不再赘述。
[0711]
根据本技术实施例,在一个实施例中,所述位深度相关语法元素可以是上文引用的sps表中的语法元素bit_depth_minus8。
[0712]
bit_depth_minus8表示亮度和色度阵列中的样本的位深度bitdepth以及亮度和色度量化参数范围偏移qpbdoffset的值,如下所示:
[0713]
bitdepth=8+bit_depth_minus8
ꢀꢀꢀꢀ
(45)
[0714]
qpbdoffset=6*bit_depth_minus8
ꢀꢀꢀꢀ
(46)
[0715]
bit_depth_minus8的范围应为0至8(包括端值)。
[0716]
本实施例的原理与图7所示的实施例类似,为简洁起见,此处不再赘述。
[0717]
根据本技术实施例,确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;如果所述索引为j的层是所述索引为i的层的直接参考层,将
值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0718]
图16是本技术一个实施例提供的一种用于对视频进行编码的方法的示意性流程图。所述方法可以由一种对视频进行编码的装置执行。如图16所示,根据图15所示的方法,所述用于对视频进行编码的方法可以包括以下步骤1601至1604。
[0719]
s1601、确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0。
[0720]
s1602、如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
[0721]
s1603、如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
[0722]
s1604、如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0723]
根据本技术实施例,确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0;如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同;如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。本发明实现了用于层间预测的当前层和参考层的格式的约束条件,从而简化了设计。
[0724]
图17是本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图。如图17所示,所述用于对编码视频码流进行解码的装置可以包括获取单元1701、确定单元1702和预测单元1703。
[0725]
获取单元1701用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0。
[0726]
确定单元1702用于:根据所述参考层语法元素的值,确定索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0。
[0727]
预测单元1703用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引
为j的层的色度格式相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
[0728]
在一个实施例中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
[0729]
在一个实施例中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于索引为j的层和所述索引为i的层。
[0730]
在一个实施例中,所述色度格式相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
[0731]
获取单元1701可以是或包括在图3中的解码器30的熵解码单元304中,确定单元1702可以是或包括在图3中的解码器30的模式应用单元360中,预测单元1703可以是或包括在图3中的解码器30的帧间预测单元344中。
[0732]
需要说明的是,获取单元1701、确定单元1702和预测单元1703可以是软件模块或硬件电路。
[0733]
本实施例中的用于对编码视频码流进行解码的装置可以用于执行图7中的方法,图7所示方法中涉及的用于对编码视频码流进行解码的装置的结构也可以与图17所示的用于对编码视频码流进行解码的装置的结构相同,为了简洁,此处不再赘述。
[0734]
图18是本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图。如图18所示,所述用于对编码视频码流进行解码的装置可以包括获取单元1801和预测单元1802。
[0735]
获取单元1801用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0。
[0736]
预测单元1802用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的色度格式相关语法元素的值与应用于所述索引为j的层的色度格式相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
[0737]
获取单元1801可以是或包括在图3中的解码器30的熵解码单元304中,预测单元1802可以是或包括在图3中的解码器30的帧间预测单元344中。
[0738]
需要说明的是,获取单元1801和预测单元1802可以是软件模块或硬件电路。
[0739]
本实施例中的用于对编码视频码流进行解码的装置可以用于执行图8中的方法,图8所示的方法中涉及的用于对编码视频码流进行解码的装置的结构也可以与图18所示的用于对编码视频码流进行解码的装置相同,为了简洁,此处不再赘述。
[0740]
根据图17和图18所示的实施例,获取单元1701或获取单元1801还用于通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素和应用于所述索引为j的层的所述色度格式相关语法元素;所述条件还包括应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
[0741]
图19是本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结
构图。如图19所示,根据图17所示的装置,所述用于对编码视频码流进行解码的装置可以包括获取单元1701、确定单元1702、预测单元1703和停止单元1704。
[0742]
停止单元1704用于:如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值不相同,停止对所述编码视频码流进行解码。
[0743]
预测单元1703还用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0744]
确定单元1702还用于:如果条件满足,在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述色度格式相关语法元素的情况下,确定应用于所述索引为i的层的所述色度格式相关语法元素的值是应用于所述索引为j的层的所述色度格式相关语法元素的值。
[0745]
本实施例中的停止单元1704也可以是或包括在图3中的解码器30的熵解码单元304中。
[0746]
需要说明的是,获取单元1701、确定单元1702、预测单元1703和停止单元1704可以是软件模块或硬件电路。
[0747]
本实施例中的用于对编码视频码流进行解码的装置可以用于执行图9中的方法,图9所示的方法中涉及的用于对编码视频码流进行解码的装置的结构也可以与图19所示的用于对编码视频码流进行解码的装置相同,为了简洁,此处不再赘述。
[0748]
图20是本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图。如图20所示,所述用于对编码视频码流进行解码的装置可以包括获取单元2001、确定单元2002和预测单元2003。
[0749]
获取单元2001用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为k的层是否是索引为i的层的直接参考层,i和k都是整数且大于或等于0。
[0750]
确定单元2002用于:根据所述参考层语法元素的值,确定所述索引为j的层是否是所述索引为i的层的参考层,其中,所述索引为j的层是所述索引为k的层的参考层,j是整数且大于或等于0。
[0751]
预测单元2003用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述索引为j的层是所述索引为i的层的参考层。
[0752]
在一个实施例中,如果所述参考层语法元素的值表示所述索引为k的层是所述索引为i的层的直接参考层,则所述索引为j的层是所述索引为i的层的参考层。
[0753]
在一个实施例中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
[0754]
在一个实施例中,所述参考层语法元素是视频参数集(video parameter set,vps)级语法元素,其中,所述vps应用于索引为j的层和所述索引为i的层。
[0755]
在一个实施例中,所述位深度相关语法元素是序列参数集(sequence parameter set,sps)级语法元素,其中,所述sps应用于所述索引为j的层或所述索引为i的层。
[0756]
获取单元2001可以是或包括在图3中的解码器30的熵解码单元304中,确定单元2002可以是或包括在图3中的解码器30的模式应用单元360中,预测单元2003可以是或包括在图3中的解码器30的帧间预测单元344中。
[0757]
需要说明的是,获取单元2001、确定单元2002和预测单元2003可以是软件模块或硬件电路。
[0758]
本实施例中的用于对编码视频码流进行解码的装置可以用于执行图10中的方法,图10所示的方法中涉及的用于对编码视频码流进行解码的装置的结构也可以与图20所示的用于对编码视频码流进行解码的装置相同,为了简洁,此处不再赘述。
[0759]
图21是本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图。如图21所示,所述用于对编码视频码流进行解码的装置可以包括获取单元2101和预测单元2102。
[0760]
获取单元2101用于通过解析所述编码视频码流获取参考层语法元素,其中,所述参考层语法元素的值表示索引为j的层是否是索引为i的层的直接参考层,i和j都是整数且大于或等于0。
[0761]
预测单元2102用于:如果条件满足,根据所述索引为j的层预测所述索引为i的层中的图像,其中,应用于所述索引为i的层的位深度相关语法元素的值与应用于所述索引为j的层的位深度相关语法元素的值相同,所述条件包括所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
[0762]
获取单元2101可以是或包括在图3中的解码器30的熵解码单元304中,预测单元2102可以是或包括在图3中的解码器30的帧间预测单元344中。
[0763]
需要说明的是,获取单元2101和预测单元2102可以是软件模块或硬件电路。
[0764]
本实施例中的用于对编码视频码流进行解码的装置可以用于执行图11中的方法,图11所示的方法中涉及的用于对编码视频码流进行解码的装置的结构也可以与图21所示的用于对编码视频码流进行解码的装置相同,为了简洁,此处不再赘述。
[0765]
根据图20和图21所示的实施例,获取单元2001或获取单元2101还用于通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素;所述条件还包括应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
[0766]
图22为本技术一个实施例提供的一种用于对编码视频码流进行解码的装置的结构图。如图22所示,根据图20所示的装置,所述用于对编码视频码流进行解码的装置可以包括获取单元2001、确定单元2002、预测单元2003和停止单元2004。
[0767]
停止单元2004用于:如果所述索引为j的层是所述索引为i的层的参考层,并且应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值不相同,停止对所述编码视频码流进行解码。
[0768]
预测单元2003还用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0769]
确定单元2002还用于:在不通过解析所述编码视频码流获取应用于所述索引为i的层的所述位深度相关语法元素的情况下,确定应用于所述索引为i的层的所述位深度相关语法元素的值是应用于所述索引为j的层的所述位深度相关语法元素的值。
[0770]
本实施例中的停止单元2004也可以是或包括在图3中的解码器30的熵解码单元304中。
[0771]
需要说明的是,获取单元2001、确定单元2002、预测单元2003和停止单元2004可以是软件模块或硬件电路。
[0772]
本实施例中的用于对编码视频码流进解码的装置可以用于执行图12中的方法,图12所示的方法中涉及的用于对编码视频码流进行解码的装置的结构也可以与图22所示的用于对编码视频码流进行解码的装置的结构相同,为了简洁,此处不再赘述。
[0773]
需要说明的是,执行图7至图12中的方法的装置或图17至图22中的用于对编码视频码流进行解码的装置可以是或包括在图1a中的目的地设备14、图1b中的视频解码器30、图3中的解码器30、图4中的视频译码设备400或图5中的装置500中。
[0774]
图23为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图。如图23所示,所述用于对视频进行编码的装置可以包括确定单元2301和编码单元2302。
[0775]
确定单元2301用于确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0。
[0776]
编码单元2302用于:如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的色度格式相关语法元素和应用于所述索引为j的层的色度格式相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述色度格式相关语法元素的值与应用于所述索引为j的层的所述色度格式相关语法元素的值相同。
[0777]
确定单元2301可以是或包括在图2中的解码器20的模式选择单元260中,编码单元2302可以是或包括在图2中的编码器20的熵编码单元270中。
[0778]
需要说明的是,确定单元2301和编码单元2302可以是软件模块或硬件电路。
[0779]
本实施例中的用于对视频进行编码的装置可以用于执行图13中的方法,图13所示的方法中涉及的用于对视频进行编码的装置的结构也可以与图23所示的用于对视频进行编码的装置相同,为了简洁,此处不再赘述。
[0780]
图24为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图。如图24所示,根据图23所示的装置,所述用于对视频进行编码的装置还可以包括第一预测单元2303和第二预测单元2304。
[0781]
第一预测单元2303用于:如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
[0782]
第二预测单元2304用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0783]
第一预测单元2303和第二预测单元2304可以是或包括在图2中的解码器20的帧间预测单元244中。
[0784]
需要说明的是,确定单元2301、编码单元2302、第一预测单元2303和第二预测单元2304可以是软件模块或硬件电路。
[0785]
本实施例中的用于对视频进行编码的装置可以用于执行图14中的方法,图14所示的方法中涉及的用于对视频进行编码的装置的结构也可以与图24所示的用于对视频进行
编码的装置相同,为了简洁,此处不再赘述。
[0786]
图25为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图。如图25所示,所述用于对视频进行编码的装置可以包括确定单元2501和编码单元2502。
[0787]
确定单元2501用于确定索引为j的层是否是索引为i的层的直接参考层,其中,i和j都是整数且大于或等于0。
[0788]
编码单元2502用于:如果所述索引为j的层是所述索引为i的层的直接参考层,将值表示所述索引为j的层是所述索引为i的层的直接参考层的参考层语法元素编码到视频码流中,以及将应用于所述索引为i的层的位深度相关语法元素和应用于所述索引为j的层的位深度相关语法元素编码到所述视频码流中,其中,应用于所述索引为i的层的所述位深度相关语法元素的值与应用于所述索引为j的层的所述位深度相关语法元素的值相同。
[0789]
在一个实施例中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
[0790]
确定单元2501可以是或包括在图2中的解码器20的模式选择单元260中,编码单元2502可以是或包括在图2中的编码器20的熵编码单元270中。
[0791]
需要说明的是,确定单元2501和编码单元2502可以是软件模块或硬件电路。
[0792]
本实施例中的用于对视频进行编码的装置可以用于执行图15中的方法,图15所示的方法中涉及的用于对视频进行编码的装置的结构也可以与图25所示的用于对视频进行编码的装置相同,为了简洁,此处不再赘述。
[0793]
图26为本技术一个实施例提供的一种用于对视频进行编码的装置的结构图。如图26所示,根据图25所示的装置,所述用于对视频进行编码的装置还可以包括第一预测单元2503和第二预测单元2504。
[0794]
第一预测单元2503用于:如果所述索引为j的层是所述索引为i的层的直接参考层,根据所述索引为j的层预测所述索引为i的层中的图像。
[0795]
第二预测单元2504用于:如果所述索引为j的层不是所述索引为i的层的参考层,不使用所述索引为j的层来预测所述索引为i的层中的图像。
[0796]
第一预测单元2503和第二预测单元2504可以是或包括在图2中的解码器20的帧间预测单元244中。
[0797]
需要说明的是,确定单元2501、编码单元2502、第一预测单元2503和第二预测单元2504可以是软件模块或硬件电路。
[0798]
本实施例中的用于对视频进行编码的装置可以用于执行图16中的方法,图16所示的方法中涉及的用于对视频进行编码的装置的结构也可以与图26所示的用于对视频进行编码的装置相同,为了简洁,此处不再赘述。
[0799]
需要说明的是,执行图13至图16中的方法的装置或图23至图26中的用于对视频进行编码的装置可以是或包括在图1a中的源设备12、图1b中的视频编码器20、图2中的编码器20、图4中的视频译码设备400或图5中的装置500中。
[0800]
本技术还提供了一种编码器,包括用于执行图13至图16所示的本技术任一实施例提供的方法的处理电路。
[0801]
需要说明的是,本实施例中的编码器可以是或包括在图1a中的源设备12、图1b中的视频编码器20、图2中的编码器20、图4中的视频译码设备400或图5中的装置500中。
[0802]
本技术还提供了一种解码器,包括用于执行图7至图12所示的本技术任一实施例提供的方法的处理电路。
[0803]
需要说明的是,本实施例中的解码器可以是或包括在图1a中的目的地设备14、图1b中的视频解码器30、图3中的解码器30、图4中的视频译码设备400或图5中的装置500中。
[0804]
本技术还提供了一种包括程序代码的计算机程序产品。当所述程序代码在计算机或处理器上执行时,所述程序代码用于执行图7至图16所示的本技术任一实施例提供的方法。
[0805]
本技术还提供了一种解码器。所述解码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述一个或多个处理器并存储供所述一个或多个处理器执行的程序。当所述程序由所述一个或多个处理器执行时,所述程序配置所述解码器以执行图7至图12所示的本技术任一实施例提供的方法。
[0806]
需要说明的是,本实施例中的解码器可以是或包括在图1a中的目的地设备14、图1b中的视频解码器30、图3中的解码器30、图4中的视频译码设备400或图5中的装置500中。
[0807]
本技术还提供了一种编码器。所述编码包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述一个或多个处理器并存储供所述一个或多个处理器执行的程序。当所述程序由所述一个或多个处理器执行时,所述程序配置所述编码器以执行图13至图16所示的本技术任一实施例提供的方法。
[0808]
需要说明的是,本实施例中的编码器可以是或包括在图1a中的源设备12、图1b中的视频编码器20、图2中的编码器20、图4中的视频译码设备400或图5中的装置500中。
[0809]
本技术还提供了一种包括程序代码的非瞬时性计算机可读介质。当所述程序代码由计算机设备执行时,所述程序代码使得所述计算机设备执行图7至图16所示的本技术任一实施例提供的方法。
[0810]
本技术还提供了一种非瞬时性存储介质。所述非瞬时性存储介质包括由图像解码设备解码的经编码码流,所述码流包括至少一层的经编码数据,所述码流还包括索引为i的层的色度格式相关语法元素和索引为j的层的色度格式相关语法元素,其中,当所述索引为j的层是所述索引为i的层的参考层时,所述索引为i的层的所述色度格式相关语法元素的值与所述索引为j的层的所述色度格式相关语法元素的值相同,i和j都是整数且大于或等于0。
[0811]
本技术还提供了一种非瞬时性存储介质。所述非瞬时性存储介质包括由图像解码设备解码的经编码码流,所述码流包括至少一层的经编码数据,所述码流还包括索引为i的层的位深度相关语法元素和索引为j的层的位深度相关语法元素,其中,当所述索引为j的层是所述索引为i的层的参考层时,所述索引为i的层的所述位深度相关语法元素的值与所述索引为j的层的所述位深度相关语法元素的值相同,i和j都是整数且大于或等于0。
[0812]
在一个实施例中,所述位深度相关语法元素表示所述位深度相关语法元素应用于的层中的图像的亮度和色度样本的位深度。
[0813]
在一个实施例中,所述码流还包括参考层语法元素,所述索引为j的层是所述索引为i的层的参考层包括:所述参考层语法元素的值表示所述索引为j的层是所述索引为i的层的直接参考层。
[0814]
下面对上述实施例中所示的编码方法和解码方法的应用以及使用这些应用的系
统进行解释说明。
[0815]
图27为用于实现内容分发业务的内容供应系统3100的框图。内容供应系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。该通信链路可以包括上文描述的通信信道13。通信链路3104包括但不限于wi-fi、以太网、电缆、无线(3g/4g/5g)、usb或者其任何种类的组合等。
[0816]
捕获设备3102用于生成数据,并且可以通过上文实施例中所示的编码方法对数据进行编码。可选地,捕获设备3102可以将数据分发给流媒体服务器(图中未示出),该服务器对数据进行编码并将经编码数据发送给终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、pda、车载设备或其任意组合等。例如,捕获设备3102可以包括上文描述的源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中包括的音频编码器实际上可执行音频编码处理。对于一些实际场景,捕获设备3102通过将经编码视频数据和经编码音频数据一起复用来分发经编码视频数据和经编码音频数据。对于其它实际场景,例如在视频会议系统中,不复用经编码音频数据和经编码视频数据。捕获设备3102将经编码音频数据和经编码视频数据分发给终端设备3106。
[0817]
在内容供应系统3100中,终端设备310接收并再生成经编码数据。终端设备3106可以是具有数据接收和恢复能力的设备,例如,智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,nvr)/数字视频录像机(digital video recorder,dvr)3112、电视3114、机顶盒(set top box,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,pda)3122、车载设备3124,或其组合,或能够对上述经编码数据进行解码的设备。例如,终端设备3106可以包括上文描述的目的地设备14。当经编码数据包括视频时,终端设备中包括的视频解码器30优先执行视频解码。当经编码数据包括音频时,终端设备中包括的音频解码器优先执行音频解码处理。
[0818]
对于具有显示器的终端设备,例如,智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,nvr)/数字视频录像机(digital video recorder,dvr)3112、电视3114、个人数字助理(personal digital assistant,pda)3122或车载设备3124,终端设备可以将经解码数据馈送给其显示器。对于不配备显示器的终端设备,例如,stb 3116、视频会议系统3118或视频监控系统3120,在其中连接外部显示器3126以接收和显示经解码数据。
[0819]
当该系统中的每个设备执行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。
[0820]
图28为终端设备3106的一种示例性结构的示意图。在终端设备3106从捕获设备3102接收到流之后,协议处理单元3202分析该流的传输协议。该协议包括但不限于实时流协议(real time streaming protocol,rtsp)、超文本传输协议(hyper text transfer protocol,http)、http直播流媒体协议(http live streaming protocol,hls)、mpeg-dash、实时传输协议(real-time transport protocol,rtp)、实时消息传输协议(real time messaging protocol,rtmp),或其任何种类的组合,等等。
[0821]
协议处理单元3202对流进行处理之后,生成流文件。文件被输出给解复用单元
3204。解复用单元3204可以将复用数据分成经编码音频数据和经编码视频数据。如上所述,对于其它实际场景,例如在视频会议系统中,不复用经编码音频数据和经编码视频数据。在这种情况下,不通过解复用单元3204将经编码数据发送给视频解码器3206和音频解码器3208。
[0822]
通过解复用处理,生成视频基本流(视频es)(elementarystream,es)、音频es和可选的字幕。视频解码器3206包括上述实施例中说明的视频解码器30,通过上述实施例中所示的解码方法对视频es进行解码以生成视频帧,并将此数据馈送给同步单元3212。音频解码器3208对音频es进行解码以生成音频帧,并将此数据馈送给同步单元3212。可选地,视频帧在馈送给同步单元3212之前可以存储在缓冲区(图28中未示出)中。类似地,在将音频帧馈送给同步单元3212之前可以将音频帧存储在缓冲区(图28中未示出)中。
[0823]
同步单元3212使视频帧和音频帧同步,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212使视频信息和音频信息的呈现同步。信息可以使用与经译码音频和可视数据的呈现有关的时间戳以及与数据流本身的发送有关的时间戳而以语法进行译码。
[0824]
如果流中包括字幕,则字幕解码器3210对字幕进行解码,使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
[0825]
本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以包括在汽车系统等其它系统中。
[0826]
需要说明的是,内容供应系统3100和终端设备3106均用于执行上述图7至图16中的方法。
[0827]
数学运算符
[0828]
本技术中使用的数学运算符与c编程语言中使用的数学运算符类似。但是,本发明准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,例如幂运算和实值除法。编号和计数规范通常从0开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,以此类推。
[0829]
算术运算符
[0830]
算术运算符的定义如下:
[0831]
+加法运算
[0832]

减法运算(二元运算符)或者取反(一元前缀运算符)
[0833]
*乘法运算,包括矩阵乘法运算
[0834]
xy幂运算,表示x的y次幂。根据上下文,这种表示符用作上标,而不是作为幂运算。
[0835]
整除运算,沿向0的取值方向截断。例如,7/4和

7/

4截断至1,

7/4和/7/

4截断至

1。
[0836]
÷
除法运算,不做截断或取整。
[0837]
除法运算,不做截断或取整。
[0838]
i取x到y(包括y)的所有整数值时,函数f(i)的累加和。
[0839]
x%y模运算,表示x除y的余数,其中,x和y都是整数,并且x》=0,y》0。
[0840]
逻辑运算符
[0841]
逻辑运算符的定义如下:
[0842]
x&&yx和y的布尔逻辑“与”运算
[0843]
x||yx和y的布尔逻辑“或”运算
[0844]
!布尔逻辑“非”运算
[0845]
x?y:z如果x为真或不等于0,则求y的值;否则,求z的值。
[0846]
关系运算符
[0847]
关系运算符的定义如下:
[0848]
》大于
[0849]
》=大于或等于
[0850]
《小于
[0851]
《=小于或等于
[0852]
==等于
[0853]
!=不等于
[0854]
当一个关系运算符应用于一个已被赋值“na”(不适用)的语法元素或变量时,值“na”被视为该语法元素或变量的不同值。值“na”被视为不等于任何其它值。
[0855]
按位运算符
[0856]
按位运算符的定义如下:
[0857]
&按位“与”运算。当对整数参数运算时,运算的是整数值的二进制补码表示。当对二进制参数运算时,如果它包括的比特比另一个参数少,则通过添加更多等于0的有效比特来扩展较短的参数。
[0858]
|按位“或”运算。当对整数参数运算时,运算的是整数值的二进制补码表示。当对二进制参数运算时,如果它包括的比特比另一个参数少,则通过添加更多等于0的有效比特来扩展较短的参数。
[0859]
^按位“异或”运算。当对整数参数运算时,运算的是整数值的二进制补码表示。当对二进制参数运算时,如果它包括的比特比另一个参数少,则通过添加更多等于0的有效比特来扩展较短的参数。
[0860]
x》》y将x以二进制补码整数表示的形式向右算术移动y个二进制数位。只有当y为非负整数值时才有这个函数定义。右移的结果是移进最高有效位(mostsignificantbit,msb)的比特等于移位运算之前的x的msb。
[0861]
x《《y将x以二进制补码整数表示的形式向左算术移动y个二进制数位。只有当y为非负整数值时才有这个函数定义。左移的结果是移进最低有效位(leastsignificantbit,lsb)的比特等于0。
[0862]
赋值运算符
[0863]
算术运算符的定义如下:
[0864]
=赋值运算符
[0865]
++递增,即x++相当于x=x+1;当用于数组下标时,在自加运算前先求变量值。
[0866]
––
递减,即x
––
等于x=x

1;当用于数组下标时,在自减运算前先求变量值。
[0867]
+=自加指定值,即x+=3相当于x=x+3,x+=(

3)相当于x=x+(

3)。
[0868]

=自减指定值,即x

=3相当于x=x

3,x

=(

3)相当于x=x

(

3)。
[0869]
范围表示法
[0870]
下面的表示法用来说明值的范围:
[0871]
x=y..zx取从y到z(包括端值)的整数值,其中,x、y和z都是整数,z大于y。
[0872]
数学函数
[0873]
数学函数的定义如下:
[0874][0875]
asin(x)三角反正弦函数,对参数x运算,x在范围

1.0至1.0(包括端值)内,输出值在范围

π
÷
2至π
÷
2(包括端值)内,单位为弧度。
[0876]
atan(x)三角反正切函数,对参数x运算,输出值在范围

π
÷
2至π
÷
2(包括端值)内,单位为弧度。
[0877][0878]
ceil(x)大于或等于x的最小整数。
[0879]
clip1y(x)=clip3(0,(1《《bitdepthy)

1,x)
[0880]
clip1c(x)=clip3(0,(1《《bitdepthc)

1,x)
[0881][0882]
cos(x)三角余弦函数,对参数x运算,单位为弧度。
[0883]
floor(x)小于或等于x的最大整数。
[0884][0885]
ln(x)x的自然对数(以e为底的对数,其中,e是自然对数底数常数2.718281828
……
)。
[0886]
log2(x)x以2为底的对数。
[0887]
log10(x)x的以10为底的对数。
[0888]
[0889][0890]
round(x)=sign(x)*floor(abs(x)+0.5)
[0891][0892]
sin(x)三角正弦函数,对参数x运算,单位为弧度。
[0893][0894]
swap(x,y)=(y,x)
[0895]
tan(x)三角正切函数,对参数x运算,单位为弧度。
[0896]
运算优先级顺序
[0897]
当没有使用括号来显式表示表达式中的优先顺序时,以下规则适用:
[0898]

高优先级的运算在低优先级的任何运算之前计算。
[0899]

相同优先级的运算从左到右依次计算。
[0900]
下表从最高到最低的顺序说明运算的优先级,表中位置越高,优先级越高。
[0901]
对于c编程语言中也使用的运算符,本规范中运算符优先级顺序与c编程语言中优先级顺序相同。
[0902]
表:运算优先级从最高(表格顶部)到最低(表格底部)排序
[0903][0904]
逻辑运算的文本说明
[0905]
在文本中,用数学形式描述如下的逻辑运算语句:
[0906][0907]
可以用以下方式描述:
[0908]
……
如下/
……
以下内容适用:
[0909]

如果条件0,则语句0
[0910]

否则,如果条件1,则语句1
[0911]
–……
[0912]

否则(关于其余条件的提示性说明),语句n
[0913]
文本中的每个“如果
……
否则,如果
……
否则,
……”
语句都以
“……
如下”或
“……
以下内容适用”引入,后面紧跟着“如果
……”
。“如果
……
否则,如果
……
否则,
……”
的最后一个条件总有一个“否则,
……”
。中间有“如果
……
否则,如果
……
否则”的语句可以通过使
“……
如下”或
“……
以下内容适用”与结尾“否则
……”
匹配来识别。
[0914]
在文本中,用数学形式描述如下的逻辑运算语句:
[0915][0916]
可以用以下方式描述:
[0917]
……
如下/
……
以下内容适用:
[0918]

如果以下所有条件都为真,则语句0:
[0919]

条件0a
[0920]

条件0b
[0921]

如果满足以下一个或多个条件,则语句1:
[0922]

条件1a
[0923]

条件1b
[0924]
–……
[0925]

否则,语句n
[0926]
在文本中,用数学形式描述如下的逻辑运算语句:
[0927]
if(condition 0)
[0928]
statement 0
[0929]
if(condition 1)
[0930]
statement 1
[0931]
可以用以下方式描述:
[0932]
当条件0时,语句0
[0933]
当条件1时,语句1。
[0934]
虽然本发明实施例主要根据视频译码进行了描述,但需要说明的是,译码系统10、编码器20和解码器30(相应地,系统10)的实施例以及本文中描述的其它实施例也可以用于静止图像处理或译码,即,对视频译码中独立于任何先前或连续图像的单个图像进行处理或译码。一般而言,如果图像处理译码限于单个图像17,则只有帧间预测单元244(编码器)和344(解码器)不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)同样可以用于静态图像处理,例如残差计算204/304、变换206、量化208、反量化210/310、(逆)变换212/312、分割262/362、帧内预测254/354和/或环路滤波220/320、熵编码270和熵解码304。
[0935]
编码器20和解码器30等的实施例以及本文参照编码器20和解码器30等描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过通信介质发送,且由基于硬件的处理单元执行。计算机可读介质可以包括与有形介质(例如数据存储介质)对应的计算机可读存储介质,或者包括任何根据通信协议等便于将计算机程序从一个地方发送到另一个地方的通信介质。通过这种方式,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质或(2)信号或载波等通信介质。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实现本发明所述技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
[0936]
作为示例而非限制,这类计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可以用于存储指令或数据结构形式的所需程序代码并且可以由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果指令通过同轴缆线、光纤缆线、双绞线和数字用户线(digital subscriber line,dsl)、或红外线、无线电和微波等无线技术从网站、服务器或其它远程源进行传输,则同轴缆线、光纤缆线、双绞线和dsl、或红外线、无线电和微波等无线技术也包括在上述介质的定义中。但是,应当理解的是,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是涉及非瞬时性有形存储介质。本文所使用的磁盘和光盘包括压缩光盘(compact disc,cd)、激光光盘、光学光盘、数字多功能光盘(digital versatile disc,dvd)和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述各项的组合也应包括在计算机可读介质的范围内。
[0937]
指令可以通过一个或多个数字信号处理器(digital signal processor,dsp)、一个或多个通用微处理器、一个或多个专用集成电路(application specific integrated circuit,asic)、一个或多个现场可编程逻辑阵列(field programmable logic array,fpga)或其它同等集成或离散逻辑电路等一或多个处理器来执行。因此,本文使用的术语“处理器”可以指任何上述结构或任何适合于实现本文所描述的技术的任何其它结构。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件
模块内,或者并入组合编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
[0938]
本发明中的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,ic)或一组ic(例如芯片组)。本发明中描述各种组件、模块或单元是为了强调用于执行所公开技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1