一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

编码器、解码器及对应的帧内预测方法与流程

2021-12-04 03:02:00 来源:中国专利 TAG:


1.本技术实施例大体上涉及图像处理领域,更具体地,涉及帧内预测。


背景技术:

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


技术实现要素:

4.本技术实施例提供用于编码和解码的装置和方法。
5.上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式从从属权利要求、说明书和附图中是显而易见的。
6.根据本发明的第一方面,如图17所示,公开了一种由解码设备实现的译码方法,所述方法包括:
7.将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用非mip模式的帧内预测模式进行预测(1701);
8.根据所述默认值获取所述当前块的mip模式的值(1702)。
9.在一种实现方式中,所述默认值为负值。
10.在一种实现方式中,所述默认值为

1。
11.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
12.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
13.根据本发明的第二方面,公开了一种由解码设备实现的译码方法,所述方法包括:
14.将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用帧内预测模式但不是基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用
mip模式进行预测;
15.根据所述默认值获取所述当前块的帧内预测模式的值。
16.在一种实现方式中,所述默认值对应于非角度帧内预测模式。
17.在一种实现方式中,所述默认值为0或1,值为0表示平面模式,值为1表示dc模式。
18.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
19.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
20.根据本发明的第三方面,公开了一种由解码设备实现的译码方法,所述方法包括:
21.获取当前块的码流;
22.根据所述码流获取所述当前块的基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式指示信息的值;
23.对所述当前块进行色度模式推导过程,其中
24.当所述mip指示信息的值表示所述当前块使用基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测时,所述当前块的对应的亮度帧内预测模式设置为平面模式。
25.根据本发明的第四方面,公开了一种解码器(30),包括处理电路,用于执行上述方法实施例和实现方式中的任一项。
26.根据本发明的第五方面,公开了一种由编码设备实现的译码方法,所述方法包括:
27.将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用非mip模式的帧内预测模式进行预测;
28.根据所述默认值对所述当前块的mip模式的值进行编码。
29.在一种实现方式中,所述默认值为负值。
30.在一种实现方式中,所述默认值为

1。
31.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
32.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
33.根据本发明的第六方面,公开了一种由编码设备实现的译码方法,所述方法包括:
34.将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用帧内预测模式但不是基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用mip模式进行预测;
35.根据所述默认值对所述当前块的帧内预测模式的值进行编码。
36.在一种实现方式中,所述默认值对应于非角度帧内预测模式。
37.在一种实现方式中,所述默认值为0或1,值为0表示平面模式,值为1表示dc模式。
38.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
39.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
40.根据本发明的第七方面,公开了一种编码器,包括处理电路,用于执行上述方法实施例和实现方式中的任一项。
41.根据本发明的第八方面,公开了一种计算机程序产品,包括程序代码,用于执行上述方法实施例和实现方式中的任一项。
42.根据本发明的第九方面,公开了一种解码器,所述解码器包括:
43.一个或多个处理器;
44.非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,使所述解码器执行上述方法实施例和实现方式中的任一项。
45.根据本发明的第十方面,公开了一种编码器,所述编码器包括:
46.一个或多个处理器;
47.非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,使所述编码器执行上述方法实施例和实现方式中的任一项。
48.根据本发明的第十一方面,公开了一种视频信号的编码码流,所述码流包括多个语法元素,其中,根据上述实施例和实现方式中的任一项有条件地指示所述多个语法元素。
49.根据本发明的第十二方面,公开了一种非瞬时性记录介质,所述非瞬时性记录介质包括由图像解码设备解码的编码码流,其中,通过将视频信号或图像信号的帧划分为多个块生成所述码流,所述码流包括多个语法元素,所述多个语法元素根据上述实施例和实现方式中的任一项进行编码。
50.根据本发明的第十三方面,如图18所示,公开了一种装置,所述装置包括:
51.设置模块1810,用于将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用非mip模式的帧内预测模式进行预测;
52.获取模块,用于根据所述默认值获取所述当前块的mip模式的值。
53.在一种实现方式中,所述默认值为负值。
54.在一种实现方式中,所述默认值为

1。
55.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
56.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
57.根据本发明的第十四方面,公开了一种装置,所述装置包括:
58.设置模块,用于将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用帧内预测模式但不是基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用mip模式进行预测;
59.获取模块,用于根据所述默认值获取所述当前块的帧内预测模式的值。
60.在一种实现方式中,所述默认值对应于非角度帧内预测模式。
61.在一种实现方式中,所述默认值为0或1,值为0表示平面模式,值为1表示dc模式。
62.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
63.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
64.根据本发明的第十五方面,公开了一种装置,所述装置包括:
65.获取模块,用于获取当前块的码流;根据所述码流获取所述当前块的基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式指示信息的值;
66.处理模块,用于对所述当前块进行色度模式推导过程,其中
67.当所述mip指示信息的值表示所述当前块使用基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测时,所述当前块的对应的亮度帧内预测模式设置为平面模式。
68.根据本发明的第十六方面,公开了一种装置,所述装置包括:
69.设置模块,用于将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用非mip模式的帧内预测模式进行预测;
70.编码模块,用于根据所述默认值对所述当前块的mip模式的值进行编码。
71.在一种实现方式中,所述默认值为负值。
72.在一种实现方式中,所述默认值为

1。
73.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
74.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
75.根据本发明的第十七方面,公开了一种装置,所述装置包括:
76.设置模块,用于将当前块的候选帧内预测模式的值设置为默认值,其中,所述当前块使用帧内预测模式但不是基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测,所述当前块的邻块用于推导所述当前块的候选帧内预测模式的值,所述当前块的邻块使用mip模式进行预测;
77.编码模块,用于根据所述默认值对所述当前块的帧内预测模式的值进行编码。
78.在一种实现方式中,所述默认值对应于非角度帧内预测模式。
79.在一种实现方式中,所述默认值为0或1,值为0表示平面模式,值为1表示dc模式。
80.在一种实现方式中,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
81.在一种实现方式中,所述mip指示信息由标志intra_mip_flag表示。
82.本发明的方法可以通过本发明的装置执行。本发明提供的方法的更多特征和实现方式对应于本发明提供的装置的特征和实现方式。
83.以下附图和说明中将详细阐述了一个或多个实施例。其它特征、目的和优点在说明书、附图以及权利要求书中是显而易见的。
附图说明
84.下面参照所附的附图和示意图对本发明实施例进行更加详细的描述,其中:
85.图1a为用于实现本发明实施例的示例性视频译码系统的框图;
86.图1b为用于实现本发明实施例的另一示例性视频译码系统的框图;
87.图2为用于实现本发明实施例的示例性视频编码器的框图;
88.图3为用于实现本发明实施例的视频解码器的示例性结构的框图;
89.图4为示例性编码装置或解码装置的框图;
90.图5为另一示例性编码装置或解码装置的框图;
91.图6为4
×
4块的mip模式矩阵乘法示例的框图;
92.图7为8
×
8块的mip模式矩阵乘法示例的框图;
93.图8为8
×
4块的mip模式矩阵乘法示例的框图;
94.图9为16
×
16块的mip模式矩阵乘法示例的框图;
95.图10为示例性二次变换过程的框图;
96.图11为编码和解码装置的示例性二次变换核乘法过程的框图;
97.图12为从16
×
64减小到16
×
48的示例性二次变换核大小的框图;
98.图13为根据邻块位置的示例性mipmpm重建的框图;
99.图14为根据邻块位置的另一示例性mipmpm重建的框图;
100.图15为实现内容分发服务的内容提供系统3100的示例性结构的框图;
101.图16为终端设备的示例性结构的框图;
102.图17为获取块的mip模式的值的一个实施例的流程图;
103.图18为用于获取块的mip模式的值的装置的一个实施例的框图。
104.下文中,相同的附图标志指代相同或至少功能等同的特征。
具体实施方式
105.以下描述中,参考构成本发明的一部分的附图,这些附图通过说明的方式示出本发明实施例的特定方面或可以使用本发明实施例的特定方面。应理解,本发明的实施例可以用于其它方面,并且包括在附图中未描绘的结构上或逻辑上的变化。因此,以下详细描述不作为限制意义,并且本发明的范围由所附权利要求限定。
106.例如,应理解,参考所描述的方法公开的内容对于用于执行该方法的对应的设备或系统也可以成立,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括如功能单元等一个或多个单元,以执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元中的每一个单元都执行多个步骤中的一个或多个步骤),即使附图中未显式描述或说明此一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元来描述具体装置,则对应的方法可以包括一个步骤,以执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤中的每一个步骤执行多个单元中的一个或多个单元的功能),即使附图中未显式描述或说明此一个或多个步骤。此外,应理解,除非特别指出,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。
107.视频译码通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源端执行,通常包括处理(例如,压缩)原始视频图
像,以减少表示该视频图像所需的数据量(以便更高效地进行存储和/或传输)。视频解码在目的端执行,并且通常包括相对于编码器的逆处理以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或各自视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码器(编码和解码,codec)。
108.在无损视频译码的情况下,可以对原始视频图像进行重建,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据损失)。在有损视频译码的情况下,通过量化等进行进一步压缩,来减少表示视频图像所需的数据量。此时解码器侧无法完全重建视频图像,即重建的视频图像的质量低于或劣于原始视频图像的质量。
109.若干个视频译码标准属于“有损混合视频编解码器”组(即,将样本域中的空间和时间预测与2d变换译码相结合,以在变换域中进行量化)。视频序列中的每个图像通常分割成不重叠块的集合,通常进行块级别的译码。换句话说,在编码器侧,通常在块(视频块)级处对视频进行处理(即编码),例如,通过空间(帧内)预测和/或时间(帧间)预测来生成预测块;从当前块(当前处理的块/待处理块)中减去预测块,得到残差块;在变换域中变换残差块并量化残差块,以减少待发送(压缩)的数据量,而在解码器侧,对经编码或压缩的块进行相对于编码器的逆处理,以重建当前块进行表示。此外,编码器和解码器的处理步骤相同,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于进行处理,即对后续块进行译码。
110.在以下视频译码系统10的实施例中,视频编码器20和视频解码器30根据图1至图3进行描述。
111.图1a为示例性译码系统10的示意性框图,例如可以利用本技术技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本技术中描述的各种示例执行各技术的设备的示例。
112.如图1a所示,所述译码系统10包括源设备12,源设备12用于将经编码图像数据21提供给用于对经编码图像数据13进行解码的目的地设备14。
113.源设备12包括编码器20,另外即可选地,包括图像源16、预处理器(或预处理单元)18(如图像预处理器18)、通信接口或通信单元22。
114.图像源16可以包括或可以为任何类型的图像捕获设备、和/或任何类型的图像生成设备或任何类型的其它设备,其中,图像捕获设备为用于捕获现实世界图像的相机等,图像生成设备为用于生成计算机动画图像的计算机图形处理器等,或用于获取和/或提供现实世界的图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtualreality,vr)图像)和/或其任意组合(例如,增强现实(augmentedreality,ar)图像)任何类型的其它设备。图像源可以为存储上述图像中的任意图像的任何类型的存储器(memory/storage)。
115.为了与预处理单元18和由预处理单元18执行的处理进行区分,图像或图像数据17也可以称为原始图像或原始图像数据17。
116.预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,以获得预处理图像19或预处理图像数据19。预处理器18执行的预处理可以包括例如修剪(trimming)、颜色格式转换(例如从rgb转换为ycbcr)、颜色校正或去噪。可以理解的是,预
处理单元18可以为可选部件。
117.视频编码器20用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2等进行详细描述)。
118.源设备12中的通信接口22可用于:接收经编码的图像数据21并通过通信信道13向目的地设备14等另一设备或任何其它设备发送经编码的图像数据21(或其它任意处理后的版本),以供存储或直接重建。
119.目的地设备14包括解码器30(例如视频解码器30),另外即可选地,可包括通信接口或通信单元28、后处理器32(或后处理单元32)以及显示设备34。
120.目的地设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备接收经编码的图像数据21(或其它任意处理后的版本),例如,存储设备为存储经编码的图像数据的存储设备,并将经编码的图像数据21提供给解码器30。
121.通信接口22和通信接口28可用于通过源设备12与目的地设备14之间的直接通信链路,例如直接有线或无线连接等,或者通过任何类型的网络,例如有线网络、无线网络或其任意组合、任何类型的私网和公网或其任意类型的组合,发送或接收经编码的图像数据21或经编码的数据13。
122.例如,通信接口22可用于将经编码的图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理所述经编码的图像数据,以便在通信链路或通信网络上进行传输。
123.通信接口28与通信接口22对应,例如,可用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获得经编码的图像数据21。
124.通信接口22和通信接口28均可配置为如图1a中从源设备12指向目的地设备14的对应通信信道13的箭头所指示的单向通信接口,或配置为双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如编码后的图像数据传输等数据传输相关的任何其它信息,等等。
125.解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或经解码的图像31(下文将根据图3或图5进行详细描述)。
126.目的地设备14中的后处理器32用于对经解码的图像数据31(也称为经重建的图像数据),例如,经解码的图像31进行后处理,以获得经后处理的图像数据33,例如,经后处理的图像33。后处理单元32执行的后处理可以包括例如颜色格式转换(例如从ycbcr转换为rgb)、调色、修剪或重样本,或者用于产生供显示设备34等显示的经解码的图像数据31等任何其它处理。
127.目的地设备14中的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以为或可以包括任意类型的用于呈现经重建的图像的显示器,例如,集成或外部显示屏或显示器。例如,显示器可以包括液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶显示器(liquidcrystalonsilicon,lcos)、数字光处理器(digitallightprocessor,dlp)或任意类型的其它显示器。
128.尽管图1a示出了将源设备12和目的地设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括源设备12和目的地设备14的功能,即同时
包括源设备12或对应功能和目的地设备14或对应功能。在此类实施例中,源设备12或对应的功能与14或对应的功能可以通过相同的硬件和/或软件、通过单独的硬件和/或软件或其任何组合来实现。
129.根据描述,图1a所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
130.所述编码器20(例如视频编码器20)或所述解码器30(例如视频解码器30),或所述编码器20和所述解码器30两者都可通过如图1b所示的处理电路实现,如一个或多个微处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application

specificintegratedcircuit,asic)、现场可编程门阵列(field

programmablegatearray,fpga)、离散逻辑、硬件、视频编码专用处理器或其任意组合。所述编码器20可以通过处理电路46实现,以支持如图2所示的编码器20的各种模块和/或本文描述的任何其他编码器系统或子系统。所述解码器30可以通过处理电路46实现,以支持如图3所示的解码器30的各种模块和/或本文描述的任何其它解码器系统或子系统。处理电路可以用于执行下文描述的各种操作。如图5所示,如果部分技术通过软件实施,则设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,通过一个或多个处理器在硬件中执行所述指令,从而执行本发明的技术。视频编码器20和视频解码器30中的任一个可作为组合编解码器(encoder/decoder,codec)的一部分集成在单个设备中,如图1b所示。
131.源设备12和目的地设备14可以包括多种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备等,且可以使用或不使用任意类型的操作系统。在一些情况下,可以配置源设备12和目的地设备14用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
132.在某些情况下,图1a所示的视频译码系统10仅仅是示例,本技术的技术可适用于在编码设备与解码设备之间不一定包括任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它示例中,数据可以从本地存储器检索、通过网络流式传输等。视频编码设备可以对数据进行编码并将数据存储到存储器,和/或视频解码设备可以从存储器检索和解码数据。在一些示例中,编码和解码由不彼此通信但简单地将数据编码到存储器和/或从存储器检索和解码数据的设备执行。
133.为便于描述,例如,参考由itu

t视频编码专家组(videocodingexpertsgroup,vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,mpeg)的视频编码联合协作团队(jointcollaborationteamonvideocoding,jct

vc)开发的高效视频编码(high

efficiencyvideocoding,hevc)、通用视频编码(versatilevideocoding,vvc)参考软件、下一代视频编码标准来描述本发明实施例。本领域普通技术人员应理解本发明的实施例不限于hevc或vvc。
134.编码器和编码方法
135.图2为用于实现本技术技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入单元201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解
码图像缓冲器(decodedpicturebuffer,dpb)230、模式选择单元260、熵译码单元270和输出单元272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(图中未示出)。图2所示的视频编码器20也可以称为混合型视频编码器或基于混合型视频编解码器的视频编码器。
136.残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径;反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(decodedpicturebuffer,dpb)230、帧间预测单元244和帧内预测单元254组成视频编码器20的后向信号路径。其中,视频编码器20的后向信号路径对应于解码器(参见图3所示的解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
137.图像和图像分割(图像和块)
138.编码器20可用于通过输入单元201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是预处理图像19(或预处理图像数据19)。为简单起见,以下描述中称为图像17。图像17还可以称为当前图像或待译码图像(尤其在视频译码中,为区分当前图像和其它图像,其它图像例如为同一视频序列中,即同时包括当前图像的视频序列中,的先前经编码的图像和/或先前经解码的图像)。
139.(数字)图像是或可以看作具有强度值的二维样本阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(像元的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的样本的数量决定了该图像的大小和/或分辨率。为了表示颜色,通常采用三个颜色分量,即该图像可以表示为或者可以包括三个样本阵列。在rbg格式或色彩空间中,图像包括对应的红、绿、蓝样本阵列。然而,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如,ycbcr格式,其包括y表示的亮度分量(有时也用l表示)和cb和cr表示的两个色度分量。亮度(或简称luma)分量y表示亮度或灰度级强度(例如,在灰度级图像中),而两个色度(或简称chroma)分量cb和cr表示色度或颜色信息分量。对应地,ycbcr格式的图像包括亮度样本值的亮度样本阵列(y)和色度值的两个色度样本阵列(cb和cr)。rgb格式的图像可以转换或变换为ycbcr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则该图像可以只包括亮度样本阵列。相应地,图像可以为例如单色格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。
140.在视频编码器20的实施例中,视频编码器20可以包括图像分割单元(图2中未示出),用于将所述图像17分割成多个(通常不重叠)图像块203。这些块也可以称为根块或宏块(h.264/avc标准)或称为译码树块(codingtreeblock,ctb)或译码树单元(codingtreeunit,ctu)(h.265/hevc和vvc标准)。图像分割单元可以用于对视频序列中的所有图像和定义块大小的对应的网格使用相同的块大小,或者改变图像或子集或图像组之间的块大小,并将每个图像的块。
141.在其它实施例中,视频编码器可用于直接接收所述图像17的图像块203,例如,组成所述图像17的一个、若干个或所有图像块。图像块203也可以称为当前图像块或待译码图像块。
142.与图像17一样,图像块203同样是或可以认为是具有强度值(样本值)的样本组成的二维阵列或矩阵,但是图像块203的尺寸要比图像17的尺寸小。换句话说,图像块203可以包括一个样本阵列(例如,图像17是黑白图像时,图像块203包括一个亮度阵列;图像17是彩色图像时,图像块203包括一个亮度阵列或一个色度阵列),或者包括三个样本阵列(例如,图像17是彩色图像时,图像块203包括一个亮度阵列和两个色度阵列),或者包括由所使用的颜色格式决定的任何其它数量和/或类型的阵列。块203在水平和垂直方向(或轴线)上的多个样本定义块203的大小。相应地,某图像块可以为例如m
×
n(m列
×
n行)个样本阵列,或m
×
n个变换系数阵列等。
143.在图2所示的视频编码器20的实施例中,视频编码器20可用于对图像17进行逐块编码,例如,对每个图像块203进行编码和预测。
144.图2所示的视频编码器20的实施例还可以用于使用条带(slice)(也称为视频条带)对图像进行分割和/或编码,其中,可以使用一个或多个条带(通常为不重叠的)对图像进行分割或编码,并且每个条带可以包括一个或多个块(例如,ctu)。
145.图2所示的视频编码器20的实施例还可以用于使用分块组(tilegroup)(也称为视频分块组)和/或分块(tile)(也称为视频分块)对图像进行分割和/或编码,其中,可以使用一个或多个分块组(通常为不重叠的)对图像进行分割或编码,每个分块组可以包括一个或多个块(例如,ctu)或一个或多个分块等,其中,每个分块可以为矩形等形状,可以包括一个或多个块(例如,ctu),例如完整或部分块。
146.残差计算
147.残差计算单元204可以用于根据图像块203和预测块265(下文将详细描述预测块265)通过如下方式计算残差块205(也称为残差205),例如,逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值,得到样本域中的残差块205。
148.变换
149.变换处理单元206可以用于对残差块205的样本值执行离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst)等变换,以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,并且表示变换域中的残差块205。
150.变换处理单元206可以用于应用dct/dst的整数近似,例如针对h.265/hevc指定的变换。与正交dct变换相比,此类整数近似通常通过某个因子进行缩放。使用缩放因子作为变换过程的一部分,以维持经过前向变换和反向变换处理的残差块的范数。缩放因子通常是基于某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的折衷等。例如,在编码器20侧通过逆变换处理单元212等为逆变换(在视频解码器30侧通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子,并且相应地,可以在编码器20侧通过变换处理单元206等为前向变换指定对应的缩放因子。
151.在视频编码器20的实施例中,视频编码器20(对应地,变换处理单元206)可用于,例如,直接输出或经熵译码单元270进行编码或压缩后输出一种或多种变换类型的变换参数,使得视频解码器30可以接收并使用变换参数进行解码。
152.量化
153.量化单元208用于通过执行标量量化或矢量量化等对变换系数207进行量化,以获得量化系数209。量化系数209也可以称为量化变换系数209或量化残差系数209。
154.量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m,可以通过调整量化参数(quantizationparameter,qp)修改量化程度。例如,对于标量量化,可以执行不同的缩放来实现更精细或更粗略的量化。量化步长大小越小,量化越精细;量化步长大小越大,量化越粗略。合适的量化步长大小可以通过量化参数(quantizationparameter,qp)来表示。例如,量化参数可以是适用于的一组合适的量化步长大小的索引。例如,小的量化参数可以对应精细的量化(小量化步长大小),而大的量化参数可以对应粗略的量化(大量化步长大小),反之亦然。量化操作可以包括除以量化步长,而反量化单元210等执行的相应解量化或逆解量化操作可以包括乘以量化步长。在一些实施例中,根据如hevc等一些标准,可以使用量化参数来确定量化步长。通常,可以通过包括除法的方程的定点近似、量化参数计算量化步长大小。可以将缩放因子引入量化和解量化,用于恢复残差块的范数,因为量化步长大小和量化参数的方程的定点近似中使用缩放,所以可以修改该范数。在一种示例性实现方式中,可以合并逆变换和解量化中的缩放。或者,可以使用自定义的量化表并由编码器通过码流等方式向解码器指示(signal)。量化为有损操作,损耗随量化步长大小的增加而增加。
155.在视频编码器20的实施例中,视频编码器20(对应地,量化单元208)可用于,例如,直接输出或经熵译码单元270进行编码后输出量化参数(quantizationparameter,qp),使得视频解码器30可以接收并使用量化参数进行解码。
156.反量化
157.反量化单元210用于对量化系数执行与量化单元208所执行的量化相反的反量化,以获得解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案相反的反量化方案。解量化系数211也可以称为解量化残差系数211,其对应于变换系数207,但是由于量化造成损耗,解量化系数211通常与变换系数不完全相等。
158.逆变换
159.逆变换处理单元212用于执行与变换处理单元206所执行的变换相反的逆变换,例如,逆离散余弦变换(discretecosinetransform,dct)或逆离散正弦变换(discretesinetransform,dst),以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。
160.重建
161.重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)与预测块265相加,例如,将重建残差块213的样本值和预测块265的样本值逐个样本进行相加,得到样本域中的重建块215。
162.滤波
163.环路滤波器单元220(或简称为“环路滤波器”220)用于对重建块215进行滤波,得到滤波块221,或通常用于对重建样本进行滤波,得到滤波样本值。例如,环路滤波单元用于平滑像素的突变或者提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample

adaptiveoffset,sao)滤波器或一个或多个
其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化滤波器、平滑滤波器、协作滤波器或其任意组合。尽管在图2中环路滤波器单元220示出为环内滤波器,但在其它配置中,环路滤波器单元220可以实现为后环路滤波器。滤波块221也可以称为滤波重建块221。
164.在实施例中,所述视频编码器20(对应地,环路滤波器单元220)可以用于输出环路滤波器参数(例如样本自适应偏移信息),例如直接输出或由熵译码单元270进行编码后输出,使得(例如)解码器30可以接收并使用相同的环路滤波器参数或相应的环路滤波器进行解码。
165.解码图像缓冲器
166.解码图像缓冲器(decodedpicturebuffer,dpb)230可以是存储参考图像或通常存储参考图像数据的存储器,以在视频编码器20对视频数据进行编码时使用。dpb230可以由各种存储器设备中的任一种构成,例如动态随机存取存储器(dynamicrandomaccessmemory,dram)(包括同步dram(synchronousdram,sdram))、磁阻ram(magnetoresistiveram,mram)、电阻ram(resistiveram,rram)或其它类型的存储器设备。解码图像缓冲器(decodedpicturebuffer,dpb)230可用于存储一个或多个滤波块221。解码图像缓冲器230还可以用于存储同一当前图像的或如先前重建图像等的不同图像的其它先前滤波块如先前重建和滤波的块221,且可提供完整的先前重建图像即经解码的图像(以及对应的参考块和像素点)和/或部分重建的当前图像(以及对应的参考块和像素点),例如,以进行帧间预测。解码图像缓冲区230还可以用于存储一个或多个未经滤波的重建块215,或通常存储未经滤波的重建样本,例如,未经环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建样本。
167.模式选择(分割和预测)
168.模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,并且用于从解码图像缓冲区230或其它缓冲区(例如行缓冲区,图中未显示)接收或获取原始块203(当前图像17的当前块203)和重建图像数据等原始图像数据(例如同一个(当前)图像和/或一个或多个先前经解码图像的经过滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,用于获得预测块265或预测值265。
169.模式选择单元260可以用于为当前块预测模式(包括不分割模式)和预测模式(例如帧内预测模式或帧间预测模式)确定或选择分割模式,并生成对应的预测块265,所述预测块用于残差块205的计算以及重建块215的重建。
170.在模式选择单元260的实施例中,模式选择单元260可以用于选择分割和预测模式(例如,从模式选择单元260支持或可用的模式中选择)。分割和预测模式提供最佳匹配,即最小残差(最小残差意味着更好的压缩性能,以便进行发送或存储),或提供最小指示开销(最小指示开销意味着更好的压缩性能,以便进行发送或存储),或者同时考虑以上两者或在以上两者中取得平衡。模式选择单元260可以用于根据率失真优化(ratedistortionoptimization,rdo)确定分割和预测模式,即选择提供最小率失真的预测模式。本文中,术语“最佳”、“最小”、“最优”等不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致

次优选择”,但会降低复杂度和处理时间。
171.分割单元262可以用于将块203分割成更小的块部分或子块(子块再次形成块),例如,通过迭代地使用四叉树分割(quad

treepartitioning,qt)、二叉树分割(binary

treepartitioning,bt)或三叉树分割(triple

treepartitioning,tt)或其任何组合,并用于例如对每个块部分或子块进行预测。其中,模式选择包括选择经分割的块203的树结构以及选择应用于每个块部分或子块的预测模式。
172.下文将详细地描述由视频编码器20执行的分割(例如,由分割单元260执行)处理和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。
173.分割模块
174.分割单元262可以将当前块203分割(或划分)为较小的部分,例如方形或矩形小块。这些较小的块(也可以称为子块)可以进一步更小的。这也称为树分割或分层树分割,其中,在根树层级0(分层0、深度0)等的根块可以递归地分割为至少两个下一较低树层级的块,例如树层级1(分层1、深度1)的节点。这些块又可以分割为至少两个下一较低层级的块,例如树层级2(分层2、深度2)等,直到由于满足结束标准而结束分割,例如达到最大树深度或最小块大小。未进一步分割的块也称为树的叶块或叶节点。分成两个的树称为二叉树(binary

tree,bt),分成三个的树称为三叉树(ternary

tree,tt),分成四个的树称为四叉树(quad

tree,qt)。
175.如上所述,本文中使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,参照hevc和vvc,块可以为或可以对应于译码树单元(codingtreeunit,ctu)、译码单元(codingunit,cu)、预测单元(predictionunit,pu)和变换单元(transformunit,tu),和/或对应于对应的块,例如,译码树块(codingtreeblock,ctb)、译码块(codingblock,cb)、变换块(transformblock,tb)或预测块(predictionblock,pb)。
176.例如,译码树单元(codingtreeunit,ctu)可以为或可以包括具有3个样本阵列的图像中的亮度样本的一个ctb、该图像中的色度样本的两个对应ctb、或黑白图像中的或使用3个独立颜色平面和语法结构进行译码的图像中的样本的一个ctb。这些语法结构用于对样本进行译码。相应地,译码树块(codingtreeblock,ctb)可以为n
×
n个样本块,其中,n可以设为某个值,使得一个分量被划分为ctb,这就是分割。译码单元(codingunit,cu)可以为或可以包括具有3个样本阵列的图像中的亮度样本的一个译码块、该图像中的色度样本的两个对应译码块,或者黑白图像中的或使用3个单独颜色平面和语法结构进行译码的图像中的样本的一个译码块。这些语法结构用于对样本进行译码。相应地,译码块(codingblock,cb)可以为m
×
n个样本块,其中,m、n可以设为某个值,使得一个ctb被划分为译码块,这就是分割。
177.在一些实施例中,例如根据hevc,可以通过表示为译码树的四叉树结构将译码树单元(codingtreeunit,ctu)划分为多个cu。在cu级作出是否使用帧间(时间)预测或帧内(空间)预测对图像区域进行译码的决定。每个cu还可以pu类型1个、2个或4个pu。在一个pu内,进行相同的预测过程,并且以pu为单位将相关信息发送到解码器。在根据pu划分类型执行预测过程得到残差块之后,可以根据类似于用于cu的译码树类似的另一种四叉树结构将cu分割成变换单元(transformunit,tu)。
178.在一些实施例中,例如根据当前开发的最新视频编码标准(称为通用视频编码
(versatilevideocoding,vvc)),使用四叉树结合二叉树(quad

treeandbinary

tree,qtbt)分割来分割译码块。在qtbt块结构中,cu可以是正方形或矩形。例如,译码树单元(codingtreeunit,ctu)首先通过四叉树结构进行分割。进一步通过二叉树或三叉树结构对四叉树叶节点进行分割。分割树叶节点称为译码单元(codingunit,cu),这样的分段用于预测和变换处理,无需任何进一步的分割。这表示在qtbt译码块结构中,cu、pu和tu的块大小相同。与此同时,可以将三叉树分割等多重分割与qtbt块结构一起使用。
179.在一个示例中,视频编码器20中的模式选择单元260可用于执行上文描述的分割技术的任意组合。
180.如上所述,视频编码器20用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。该预测模式集合可以包括例如帧内预测模式和/或帧间预测模式等。
181.帧内预测
182.帧内预测模式集合可以包括35种不同的帧内预测模式,例如像dc(直流)(或均值)模式和平面(planar)模式的非方向性模式或如hevc中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如像dc(或均值)模式和平面模式的非方向性模式或如vvc中定义的方向性模式。
183.帧内预测单元254用于帧内预测模式集合中的帧内预测模式使用同一当前图像的邻块的重建样本来生成帧内预测块265。
184.帧内预测单元254(或通常为模式选择单元260)还用于输出帧内预测参数(或通常为表示块的所选帧内预测模式的信息)以语法元素266的形式发送到熵译码单元270,以包含到经编码的图像数据21中,从而视频解码器30可执行操作,例如接收并使用用于解码的预测参数。
185.帧间预测
186.(可能的)帧间预测模式集合取决于可用参考图像(即上述存储在dpb230等中的至少部分经解码图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗口区域)来搜索最佳匹配参考块,和/或例如取决于是否进行像素插值(例如二分之一/半像素插值和/或四分之一像素插值)。
187.除了上述预测模式之外,还可以使用跳过模式和/或直接模式。
188.帧间预测单元244可以包括运动估计(motionestimation,me)单元和运动补偿(motioncompensation,mc)单元(两者均未在图2中示出)。运动估计单元可用于接收或获取图像块203(当前图像17的当前图像块203)和经解码的图像231,或至少一个或多个先前重建的块,例如,一个或多个其它/不同的先前解码的图像231的重建块,来进行运动估计。例如,一个视频序列可以包括当前图像和先前解码的图像231,或者,换句话说,当前图像和先前解码的图像231可以为组成视频序列的图像序列的一部分或形成该图像序列。
189.例如,编码器20可以用于从多个其它图像中的同一个或不同图像的多个参考块中选择一个参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。这个偏移也称为运动矢量(motionvector,mv)。
190.运动补偿单元用于获取如接收帧间预测参数,并根据或使用帧间预测参数进行帧间预测,得到帧间预测块265。运动补偿单元所执行的运动补偿可以包括通过运动估计确定
的运动/块矢量提取或生成预测块(执行插值以提高精度)。进行插值滤波时,可以根据已知像素样本生成其它像素样本,从而可能增加可用于对图像块进行译码的候选预测块的数量。接收到当前图像块的pu对应的运动矢量后,运动补偿单元可以在其中一个参考图像列表中定位所述运动矢量所指向的预测块。
191.运动补偿单元还可以生成与块和视频条带相关的语法元素,以供视频解码器30在解码该视频条带的图像块时使用。此外,可选的,作为条带和相应语法元素的替代,可以生成或使用分块组和/或分块以及相应的语法元素。
192.熵译码
193.熵译码单元270用于将熵编码算法或方案(例如可变长度编码(variablelengthcoding,vlc)方案、上下文自适应vlc(contextadaptivevlcscheme,cavlc)方案、算术编码方案、二值化,上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术编码(syntax

basedcontext

adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)编码或其它熵编码方法或技术)等应用于或不应用于(无压缩)量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,得到可以通过输出端272以经编码码流21等形式输出的经编码的图像数据21,使得视频解码器30等可以接收并使用这些参数进行解码。可以将编码码流21发送到视频解码器30,或者将其存储在存储器汇总,以便随后由视频解码器30发送或检索。
194.视频编码器20的其它结构变化可以用于编码视频流。例如,对于某些块或帧,非变换的编码器20可以在没有变换处理单元206的情况下直接量化残差信号。在另一种实现方式中,编码器20可以将量化单元208和反量化单元210组合成单个单元。
195.解码器及解码方法
196.图3示出了用于实现本技术技术的示例性视频解码器30。视频解码器30用于接收例如由编码器20编码的经编码的图像数据21(例如,经编码的码流21),得到经解码的图像331。经编码的图像数据或经编码的码流包括用于解码所述经编码的图像数据的信息,例如,表示经编码的视频条带(和/或分块组或分块)的图像块的数据以及相关联的语法元素。
197.在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(如求和器314)、环路滤波器320、解码图像缓冲区(decodedpicturebuffer,dbp)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或包括运动补偿单元。在一些示例中,视频解码器30可执行大体上与图2所示视频编码器100所执行的编码过程相反的解码过程。
198.如编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decodedpicturebuffer,dpb)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。因此,反量化单元310可以与反量化单元110具有相同的功能,逆变换处理单元312可以与逆变换处理单元212具有相同的功能,重建单元314可以与重建单元214具有相同的功能,环路滤波器320可以与环路滤波器220具有相同的功能,解码图像缓冲器330可以与解码图像缓冲器230具有相同的功能。因此,对视频编码器20的相应单元和功能的解释相应地适用于视频解码器30的相应单元和功能。
199.熵解码
200.熵解码单元304用于解析码流21(或一般为经编码的图像数据21)并对经编码的图像数据21执行熵解码等,得到量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任一个或全部。熵解码单元304可以用于进行对应于编码器20的熵译码单元270所描述的编码方案的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,并向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。此外,可选的,作为条带和相应语法元素的替代,可以接收或使用分块组和/或分块以及相应的语法元素。
201.反量化
202.反量化单元310可用于从经编码的图像数据21(例如,通过熵解码单元304等解析和/或解码)接收量化参数(quantizationparameter,qp)(或通常为与反量化相关的信息)和量化系数,并基于所述量化参数对经解码的量化系数309进行反量化,以获得解量化系数311,所述解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带中的每一视频块计算的量化参数来确定量化程度,同样也确定需要执行的反量化的程度。
203.逆变换
204.逆变换处理单元312可以用于接收解量化系数311(也称为变换系数311),并对解量化系数311进行变换,以获得样本域中的重建残差块213。重建残差块213也可以称为变换块313。所述变换可以为逆变换,例如逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码的图像数据21(例如通过熵解码单元304解析和/或解码)接收变换参数或相应信息,以确定将对解量化系数311执行的变换。
205.重建
206.重建单元314(例如加法器或求和器314)可以用于通过如下方式将重建残差块313添加到预测块365,例如,将重建残差块313的样本值和预测块365的样本值相加,以得到样本域中的重建块315。
207.滤波
208.环路滤波器单元320(在译码环路中或在译码环路之后)用于对重建块315进行滤波,得到滤波块321,从而平滑像素的突变或以其它方式提高视频质量等。环路滤波器单元320可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample

adaptiveoffset,sao)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化滤波器、平滑滤波器、协作滤波器或其任意组合。尽管在图3中环路滤波器单元320示出为环内滤波器,但在其它配置中,环路滤波器单元320可以实现为后环路滤波器。
209.解码图像缓冲器
210.之后,将一个图像的解码视频块321存储在解码图像缓冲器330中。解码图像331作为参考图像存储在解码图像缓冲器330中,用于后续对其它图像进行运动补偿和/或后续相应输出以进行显示。
211.解码器30用于通过输出单元312等输出经解码的图像311,以向用户呈现或供用户
查看。
212.预测
213.帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同;帧内预测单元354的功能可以与帧间预测单元254相同,并根据从经编码的图像数据21接收到的分割和/或预测参数或相应信息(例如通过熵解码单元304等解析和/或解码)决策划分或分割模式并执行预测。模式应用单元360可以用于根据重建图像、重建块或相应的样本(已滤波的或未滤波的)按块进行预测(帧内预测或帧间预测),以获得预测块365。
214.当将视频条带译码为经帧内译码(i)条带时,模式应用单元360中的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像的先前经解码块的数据为当前视频条带的图像块生成预测块365。当视频图像译码为经帧间译码(intercoded)的(b或p)条带时,模式应用单元360中的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收到的其它语法元素为当前视频条带的视频块生成预测块365。对于帧间预测,预测块可以从一个参考图像列表中的一个参考图像中生成。视频解码器30可以dpb330中存储的参考图像通过默认构建技术构建参考帧列表,列表0和列表1。除了条带(如视频条带)或作为条带的替代,可以将相同或类似过程应用于或体现于分块组(如视频分块组)和/或分块(如视频分块)上,例如,可以采用i、p或b分块组和/或分块对视频进行译码。
215.模式应用单元360用于通过解析运动矢量或相关信息以及其它语法元素,确定当前视频条带的视频块的预测信息,并使用该预测信息为正在解码的当前视频块产生预测块。例如,模式应用单元360使用接收到的部分语法元素确定译码视频条带的视频块的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、条带的一个或多个参考图像列表的构建信息、条带的每一帧间编码视频块的运动矢量、条带的每一帧间译码视频块的帧间预测状态以及其它信息,以解码当前视频条带的视频块。除了条带(如视频条带)或作为条带的替代,可以将相同或类似过程应用于或体现于分块组(如视频分块组)和/或分块(如视频分块)上,例如,可以采用i、p或b分块组和/或分块对视频进行译码。
216.图3中所示的视频解码器30的实施例可用于使用条带(也称为视频条带)对图像进行分割和/或解码,其中,可以使用一个或多个条带(通常不重叠的)对图像进行分割或解码,并且每个条带可以包括一个或多个块(例如,ctu)。
217.图3所示的视频解码器30的实施例可以用于使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码,其中,可以使用一个或多个分块组(通常为不重叠的)对图像进行分割或解码,每个分块组可以包括一个或多个块(例如,ctu)或一个或多个分块等,其中,每个分块可以为矩形等形状,可以包括一个或多个块(例如,ctu),例如完整或部分块。
218.可以使用其它形式的视频解码器30对经编码的图像数据21进行解码。例如,解码器30能够在没有环路滤波器单元320的情况下产生输出视频流。例如,基于非变换的解码器30能够在没有逆变换处理单元312的情况下直接反量化某些块或帧的残差信号。在另一种实现方式中,视频解码器30可以具有组合成单个单元的反量化单元310和逆变换处理单元312。
219.应理解,在编码器20和解码器30中,可以针对当前环节的处理结果进行进一步处
理,然后输出到下一环节。例如,在插值滤波、运动矢量推导或环路滤波之后,可以针对插值滤波、运动矢量推导或环路滤波的处理结果进一步进行如限幅(clip)或移位(shift)等操作。
220.需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式下的控制点运动矢量、仿射模式下的子块运动矢量、平面模式下的子块运动矢量、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限制运动矢量的方法。
221.方法1:通过流操作来去除溢出的最高有效位(mostsignificantbit,msb)。
222.ux=(mvx 2
bitdepth
)%2
bitdepth
(1)
223.mvx=(ux>=2
bitdepth
‑1)?(ux
‑2bitdepth
):ux(2)
224.uy=(mvy 2
bitdepth
)%2
bitdepth
(3)
225.mvy=(uy>=2
bitdepth
‑1)?(uy
‑2bitdepth
):uy(4)
226.其中,mvx表示一个图像块或子块的运动矢量中的水平分量,mvy表示该图像块或子块的运动矢量中的垂直分量,ux和uy表示中间值。
227.例如,如果mvx的值为32769,则应用公式(1)和(2)后,所得到的值为32767。在计算机系统中,十进制数以2的补码的形式存储。

32769的二进制补码为1,0111,1111,1111,1111(17位)。这时丢弃msb,那么得到的二进制补码为0111,1111,1111,1111(十进数为32767),这与使用公式(1)和(2)之后得到的输出结果相同。
228.ux=(mvpx mvdx 2
bitdepth
)%2
bitdepth
(5)
229.mvx=(ux>=2
bitdepth
‑1)?(ux
‑2bitdepth
):ux(6)
230.uy=(mvpy mvdy 2
bitdepth
)%2
bitdepth
(7)
231.mvy=(uy>=2
bitdepth
‑1)?(uy
‑2bitdepth
):uy(8)
232.这些运算可以在对mvp和mvd求和的过程中进行,如公式(5)至(8)所示。
233.方法2:通过对值进行限幅来去除溢出的msb。
234.vx=clip3(
‑2bitdepth
‑1,2
bitdepth
‑1‑
1,vx)
235.vy=clip3(
‑2bitdepth
‑1,2
bitdepth
‑1‑
1,vy)
236.其中,vx表示一个图像块或子块的运动矢量中的水平分量,vy表示该图像块或子块的运动矢量中的垂直分量;x、y和z分别对应于mv限幅过程的3个输入值,函数clip3的定义如下:
[0237][0238]
图4是为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器(例如图
1a中的视频解码器30)或编码器(例如图1a中的视频编码器20)。
[0239]
视频译码设备400包括:入端口410(或输入端口410)和接收单元(receiverunit,rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(centralprocessingunit,cpu)430,用于处理数据;发送单元(transmitterunit,tx)440和出端口450(或输出端口450),用于发送数据;存储器460,用于存储数据。视频译码设备400还可以包括与入端口410、接收单元420、发送单元440和出端口450耦合的光电(optical

to

electrical,oe)组件和电光(electrical

to

optical,eo)组件,用作光信号或电信号的出口或入口。
[0240]
处理器430通过硬件和软件实现。处理器430可以实现为一个或多个cpu芯片、核(例如,多核处理器)、fpga、asic以及dsp。处理器430与入端口410、接收单元420、发送器单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上述描述的公开实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,将译码模块470包含在内,这为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的转换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
[0241]
器460可以包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据设备,以在选择此类程序用于执行时程序,以及在程序执行期间读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read

onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent

addressablememory,tcam)和/或静态随机存取存储器(staticrandom

accessmemory,sram)。
[0242]
图5为示例性实施例提供的装置500的简化框图,其中,装置500可用作图1中的源设备12和目的地设备14中的任一者或两者。
[0243]
装置500中的处理器502可以是中央处理器。或者,处理器502可以是能够操纵或处理现在存在或以后开发的信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用多于1个处理器实现时可以提高速度和效率。
[0244]
装置500中的存储器504在一种实现方式中可以是只读存储器(readonlymemory,rom)设备或随机存取存储器(randomaccessmemory,ram)设备。可以使用任何其它合适类型的设备作为器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,应用程序510包括使处理器502执行本文描述的方法的至少一个程序。例如,应用程序510可以包括应用1至n,其包括执行本文所述方法的视频译码应用。
[0245]
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是触摸敏感显示器,触摸敏感显示器将显示器与可操作以感测触摸输入的触摸敏感元件相结合。显示器518可以通过总线512耦合到处理器502。
[0246]
尽管在这里描述为单个总线,但装置500的总线512可以由多个总线组成。此外,辅助器514可以直接耦合到装置500的其它组件,或者可以通过网络访问,并且可以包括单个集成单元(例如卡)或多个单元(例如多个卡)。因此,装置500可以具有各种各样的配置。
[0247]
在日内瓦举行的第14次未来视频编码联合探索组(jointexplorationteamonfut
urevideocoding,jvet)会议上,jvet

n0217提案如下:使用仿射线性加权帧内预测(affinelinearweightedintraprediction,alwip),也和lwip一样简单。
[0248]
在alwip中增加了三种帧内预测模式,
[0249]
·
针对4
×
4块的35种模式;
[0250]
·
针对8
×
4、4
×
8和8
×
8块的19种模式;
[0251]
·
针对宽度和高度均小于或等于64个样本的其它情况的11种模式。
[0252]
相应地,alwip中定义了块大小类型(sizeid)的变量如下:
[0253]
·
如果块大小为4
×
4,则块大小类型sizeid为0。
[0254]
·
否则,如果块大小为8
×
4、4
×
8或8
×
8,则块大小类型sizeid为1。
[0255]
·
否则,如果块大小不是上述情况之一,且块的宽度和高度都小于64,则块大小类型sizeid为2。
[0256]
根据这些模式,通过矩阵矢量乘法和加上偏移,从当前块左侧和上方的一行参考样本中生成亮度帧内预测信号。因此,仿射线性加权帧内预测也称为基于矩阵的帧内预测(matrix

basedintraprediction,mip)。在本技术中,术语mip和alwip(或lwip)可以互换使用,且都描述了jvet

n0217的工具。
[0257]
为了预测宽度为w和高度为h的矩形块的样本,使用仿射线性加权帧内预测(affinelinearweightedintraprediction,alwip)方法,将块左侧的一行高度为h的重建相邻边界样本和块上方的一行宽度为w的重建相邻边界样本作为输入。
[0258]
预测信号的生成主要分为三个步骤:
[0259]
1.w=h=4时输出4个边界样本,其它情况通过取平均值输出8个边界样本。
[0260]
2.进行矩阵矢量乘法,然后加上偏移,以平均样本作为输入。得到原始块中的子采样样本集的简化预测信号。
[0261]
3.剩余位置处的预测信号由子采样集的预测信号通过线性插值生成,线性插值是在每个方向上的通过单个步骤实现的线性插值。
[0262]
图6至图9提供了不同形状块的取平均值、矩阵矢量乘法和线性插值的整个过程。请注意,剩余的形状按照所描述的情况之一处理。
[0263]
对于一个4
×
4块,alwip沿边界的每个轴取两个平均值。然后,将四个样本作为矩阵矢量乘法的输入。从集合s0中选择矩阵。加上偏移后,得到16个最终预测样本。生成的预测信号不需要进行线性插值。因此,每个样本共进行(4
·
16)/(4
·
4)=4次乘法。
[0264]
对于一个8
×
8块,alwip沿边界的每个轴取四个平均值。然后,将八个样本作为矩阵矢量乘法的输入。从集合s1中选择矩阵。得到预测块奇数位置上的16个样本。因此,每个样本共进行(8
·
16)/(8
·
8)=2次乘法。加上偏移,这些样本通过减小的顶部边界进行垂直插值。然后通过原始左边界进行水平插值。因此,每个样本共需要2次乘法来计算alwip预测。
[0265]
对于一个8
×
4块,alwip沿边界的水平轴取四个平均值,在左边界取四个原始边界值。然后,将八个样本作为矩阵矢量乘法的输入。从集合s1中选择矩阵。得到预测块的奇数水平和垂直位置上的16个样本。因此,每个样本共进行(8
·
16)/(8
·
4)=4次乘法。加上偏移,这些样本通过原始左边界进行水平插值。因此,每个样本共需要4次乘法来计算alwip预测。
[0266]
转置的情况进行相应地处理。
[0267]
对于一个16
×
16块,alwip沿边界的每个轴取四个平均值。然后,将八个样本作为矩阵矢量乘法的输入。从集合s2中选择矩阵。得到预测块奇数位置上的64个样本。因此,每个样本共进行(8
·
64)/(16
·
16)=2次乘法。加上偏移,这些样本通过顶部边界的八个平均值进行垂直插值。然后通过原始左边界进行水平插值。因此,每个样本需要2次乘法来计算alwip预测。
[0268]
对于较大的形状,过程基本上是相同的,每个样本的乘法次数少于4次。
[0269]
对于w
×
8块,w>8,因为指定奇数水平位置和垂直位置的样本,仅需要进行水平插值。在这种情况下,每个样本进行(8
·
64)/(w
·
8)=64/w次乘法以计算简化预测。对于w>16,进行线性插值的每个样本需要的额外乘法次数少于2。因此,每个样本的乘法总次数小于或等于4。
[0270]
对于w
×
4块,w>8,使用矩阵a
k
,沿着下采样块的水平轴忽略对应于奇数项的每一行。因此,输出大小为32,且仅需要进行水平插值。对于简化预测的计算,每个样本进行(8
·
32)/(w
·
4)=64/w次乘法。对于w=16,不需要额外的乘法,而对于w>16,进行线性插值的每个样本需要少于2次乘法。因此,乘法的总次数小于或等于4。
[0271]
转置的情况进行相应地处理。
[0272]
在jvet

n0217提案中,使用最可能模式(mostprobablemode,mpm)列表的方法也适用于mip帧内模式编码。当前块有两个mpm列表:
[0273]
1.当当前块使用普通帧内预测模式(即,非mip帧内预测模式)时,使用6

mpm列表。
[0274]
2.当当前块使用mip帧内预测模式时,使用3

mpm列表。
[0275]
上述两个mpm列表都是根据邻块的帧内预测模式构建的,因此可能出现以下情况:
[0276]
1.所述当前块使用普通帧内预测,而其一个或多个邻块使用mip帧内预测,或者
[0277]
2.所述当前块使用mip帧内预测,而其一个或多个邻块使用普通帧内预测。
[0278]
在这种情况下,邻块的帧内预测模式是间接地通过查找表推导的。
[0279]
在一个示例中,所述当前块使用普通帧内预测,而如图13所示其上方a块使用mip帧内预测时,使用以下查找表1。根据所述上方块的块大小类型和所述上方块的mip帧内预测模式,推导普通帧内预测模式。类似地,如果如图13所示的左侧(l)块使用mip帧内预测,根据所述左侧块的块大小类型和所述左侧块的mip帧内预测模式,推导普通帧内预测模式。
[0280]
表1仿射线性加权帧内预测与帧内预测模式之间映射的规范
[0281]
[0282]
[0283][0284]
在一个示例中,所述当前块使用mip帧内预测,而如图14所示其上方(a)块使用普通帧内模式预测时,使用以下查找表2。根据所述上方块的块大小类型和所述上方块的普通帧内预测模式预测,推导mip帧内预测模式。类似地,如果如图14所示的左侧(l)块使用普通帧内模式预测,根据所述左侧块的块大小类型和所述左侧块的普通帧内模式预测,推导mip帧内预测模式。
[0285]
表2帧内预测和仿射线性加权帧内预测模式之间映射的规范
[0286]
[0287][0288]
针对使用基于矩阵的帧内预测(mip)的块在mpm列表构建中设置邻块的帧内预测模式在mip中,3

mpm列表用于帧内预测模式编码。因此,对于三种不同的块大小类型:
[0289]
·
块类型大小0在mpm列表中有3种模式,在非mpm模式下有(35

3=)32种模式。
[0290]
·
块类型大小1在mpm列表中有3种模式,在非mpm模式下有(19

3=)16种模式。
[0291]
·
块类型大小2在mpm列表中有3种模式,在非mpm模式下有(11

3=)8种模式。
[0292]
具体而言,基于邻块的可用性和帧内预测模式,将使用mip的块的帧内预测模式按照以下过程进行推导。如果某个邻块在某些情况下不可用,则给邻块的帧内预测模式分配默认值(

1)。
[0293]
邻块的帧内预测模式的值推导如下:
[0294]
该过程的输入是:
[0295]

亮度位置(xcb,ycb),表示当前亮度译码块的左上样本相对于当前图像的左上亮度样本的位置;
[0296]

变量cbwidth,以亮度样本为单位表示当前译码块的宽度;
[0297]

变量cbheight,以亮度样本为单位表示当前译码块的高度。
[0298]
在该过程中,邻块candlwipmodea和candlwipmodeb的仿射线性加权帧内预测模式按顺序通过以下步骤推导:
[0299]
1.相邻位置(xnba,ynba)和(xnbb,ynbb)分别设置为(xcb

1,ycb)和(xcb,ycb

1)。
[0300]
2.由于将x替换为a或b,因此变量candlwipmodex推导如下:
[0301]

调用第6.4.x节(ed.(bb):邻块可用性检查过程tbd)中规定的块的可用性推导过程,其中,位置(xcurr,ycurr)设置为(xcb,ycb),以及相邻位置(xnby,ynby)设置为(xnbx,ynbx)作为输入,输出值为availablex。
[0302]

候选仿射线性加权帧内预测模式candlwipmodex推导如下:
[0303]

如果以下一个或多个条件为真(true),则candlwipmodex设置为

1。
[0304]

变量availablex等于假(false)。
[0305]

cupredmode[xnbx][ynbx]不等于mode_intra,且mh_intra_flag[xnbx][ynbx]不等于1。
[0306]

pcm_flag[xnbx][ynbx]等于1。
[0307]

x等于b,且ycb

1小于((ycb>>ctblog2sizey)<<ctblog2sizey)。
[0308]

否则,以下情况适用:
[0309]

调用第8.4.x.1节中规定的块的大小类型推导过程,以亮度样本为单位表示的当前译码块的宽度cbwidth和以亮度样本为单位表示的当前译码块的高度cbheight作为输入,输出值为变量sizeid。
[0310]

如果intra_lwip_flag[xnbx][ynbx]等于1,则调用第8.4.x.1节中规定的块的大小类型推导过程,以亮度样本为单位表示的相邻译码块的宽度nbwidthx和以亮度样本为单位表示的相邻译码块的高度nbheightx作为输入,输出值为变量sizeidx。
[0311]

如果sizeid等于sizeidx,则candlwipmodex设置为intrapredmodey[xnbx][ynbx]。
[0312]

否则,candlwipmodex设置为

1。
[0313]

否则,使用如表2所示的intrapredmodey[xnbx][ynbx]和sizeid推导candlwipmodex。
[0314]
8.4.x.1预测块大小类型的推导过程
[0315]
该过程的输入为:
[0316]

变量cbwidth,以亮度样本为单位表示当前译码块的宽度;
[0317]

变量cbheight,以亮度样本为单位表示当前译码块的高度。
[0318]
该过程的输出为变量sizeid。
[0319]
变量sizeid推导如下:
[0320]

如果cbwidth和cbheight都等于4,则sizeid设置为0。
[0321]

否则,如果cbwidth和cbheight都小于等于8,则sizeid设置为1。
[0322]

否则,sizeid设置为2。
[0323]
表3仿射线性加权帧内预测候选模式的规范
[0324]
[0325][0326]
针对使用普通帧内预测但不使用基于矩阵的帧内预测(非mip)的块,在mpm列表构建中设置邻块的帧内预测模式。
[0327]
具体而言,基于邻块的可用性和帧内预测模式,将使用非mip帧内预测的块的帧内预测模式按照以下过程进行推导。如果某个邻块在某些情况下不可用,则给邻块的帧内预测模式分配默认值(例如,平面模式值)。
[0328]
邻块的帧内预测模式的值推导如下:
[0329]
该过程的输入为:
[0330]

亮度位置(xcb,ycb),表示当前亮度译码块的左上样本相对于当前图像的左上亮度样本的位置;
[0331]

变量cbwidth,以亮度样本为单位表示当前译码块的宽度;
[0332]

变量cbheight,以亮度样本为单位表示当前译码块的高度。
[0333]
在该过程中,推导邻块的亮度帧内预测模式candintrapredmodea和candintrapredmodeb。
[0334]
帧内预测模式intrapredmodey[xcb][ycb]的取值及其相关名称如表8

1所示。
[0335]
表8

1帧内预测模式和相关名称的规范
[0336]
帧内预测模式相关名称0intra_planar1intra_dc2..66intra_angular2..intra_angular6681..83intra_lt_cclm,intra_l_cclm,intra_t_cclm
[0337]
说明:帧内预测模式intra_lt_cclm、intra_l_cclm和intra_t_cclm只适用于色度分量。
[0338]
邻块的亮度帧内预测模式candintrapredmodea和candintrapredmodeb推导如下:
[0339]

如果intra_luma_not_planar_flag[xcb][ycb]等于1,则按顺序执行以下步骤:
[0340]
1.相邻位置(xnba,ynba)和(xnbb,ynbb)分别设置为(xcb

1,ycb cbheight

1)和(xcb cbwidth

1,ycb

1)。
[0341]
2.由于将x替换为a或b,因此变量candintrapredmodex推导如下:
[0342]

调用第6.4.x节(ed.(bb):邻块可用性检查过程tbd)中规定的块的可用性推导过程,其中,位置(xcurr,ycurr)设置为(xcb,ycb),以及相邻位置(xnby,ynby)设置为(xnbx,ynbx)作为输入,输出值为availablex。
[0343]

候选帧内预测模式candintrapredmodex推导如下:
[0344]

如果满足以下一个或多个条件,则candintrapredmodex设置为intra_planar:
[0345]

变量availablex等于false。
[0346]

cupredmode[xnbx][ynbx]不等于mode_intra,且ciip_flag[xnbx][ynbx]不等于
1。
[0347]

pcm_flag[xnbx][ynbx]等于1。
[0348]

x等于b,且ycb

1小于((ycb>>ctblog2sizey)<<ctblog2sizey)。
[0349]

否则,candintrapredmodex推导如下:
[0350]

如果intra_lwip_flag[xcb][ycb]等于1,则按顺序执行以下步骤推导candintrapredmodex:
[0351]
i.调用第8.4.x.1节中规定的块的大小类型推导过程,以亮度样本为单位表示的当前译码块的宽度cbwidth和以亮度样本为单位表示的当前译码块的高度cbheight作为输入,输出值为变量sizeid。
[0352]
ii.使用如表1所示的intrapredmodey[xnbx][ynbx]和sizeid推导candintrapredmodex。
[0353]

否则,candintrapredmodex设置为y[xnbx][ynbx]。
[0354]
intra_lwip_flag[x0][y0]等于1,表示亮度样本的帧内预测类型是基于矩阵的帧内预测;intra_lwip_flag[x0][y0]等于0,表示亮度样本的帧内预测类型不是基于矩阵的帧内预测。
[0355]
当intra_lwip_flag[x0][y0]不存在时,推断等于0。
[0356]
实施例一(去掉映射表2,将普通帧内预测模式映射为mip帧内预测模式)
[0357]
进一步简化了使用mip的块在mpm列表构建中推导邻块的帧内预测模式的过程。在一个示例中,提供一种没有映射表(例如,表2)的过程,该映射表将普通帧内预测模式映射为mip帧内预测模式。
[0358]
该过程的输入为:
[0359]

亮度位置(xcb,ycb),表示当前亮度译码块的左上样本相对于当前图像的左上亮度样本的位置;
[0360]

变量cbwidth,以亮度样本为单位表示当前译码块的宽度;
[0361]

变量cbheight,以亮度样本为单位表示当前译码块的高度。
[0362]
在该过程中,邻块candlwipmodea和candlwipmodeb的仿射线性加权帧内预测模式按顺序通过以下步骤推导:
[0363]
1.相邻位置(xnba,ynba)和(xnbb,ynbb)分别设置为(xcb

1,ycb)和(xcb,ycb

1)。
[0364]
2.由于将x替换为a或b,因此变量candlwipmodex推导如下:
[0365]

调用第6.4.x节(ed.(bb):邻块可用性检查过程tbd)中规定的块的可用性推导过程,其中,位置(xcurr,ycurr)设置为(xcb,ycb),以及相邻位置(xnby,ynby)设置为(xnbx,ynbx)作为输入,输出值为availablex。
[0366]

候选仿射线性加权帧内预测模式candlwipmodex推导如下:
[0367]

如果以下一个或多个条件为true,则candlwipmodex设置为

1。
[0368]

变量availablex等于false。
[0369]

cupredmode[xnbx][ynbx]不等于mode_intra,且mh_intra_flag[xnbx][ynbx]不等于1。
[0370]

pcm_flag[xnbx][ynbx]等于1。
[0371]

x等于b,且ycb

1小于((ycb>>ctblog2sizey)<<ctblog2sizey)。
[0372]

否则,以下情况适用:
[0373]

调用第8.4.x.1节中规定的块的大小类型推导过程,以亮度样本为单位表示的当前译码块的宽度cbwidth和以亮度样本为单位表示的当前译码块的高度cbheight作为输入,输出值为变量sizeid。
[0374]

如果intra_lwip_flag[xnbx][ynbx]等于1,则调用第8.4.x.1节中规定的块的大小类型推导过程,以亮度样本为单位表示的相邻译码块的宽度nbwidthx和以亮度样本为单位表示的相邻译码块的高度nbheightx作为输入,输出值为变量sizeidx。
[0375]

如果sizeid等于sizeidx,则candlwipmodex设置为intrapredmodey[xnbx][ynbx]。
[0376]

否则,candlwipmodex设置为

1。
[0377]
在本实施例中,当当前块使用mip帧内预测,且当前块的邻块使用帧内预测但不是mip时,用于推导当前块的帧内预测模式所使用的邻块的帧内预测模式的值设置为默认值(例如,默认值是

1)。
[0378]
实施例二(去掉映射表1,将mip帧内预测模式映射为普通帧内预测模式)
[0379]
进一步简化使用帧内预测(但不是mip)的块在mpm列表构建中推导邻块的帧内预测模式的过程。在一个示例中,提供一种没有映射表(例如,表1)的过程,该映射表将mip帧内预测模式映射为普通帧内预测模式。
[0380]
该过程的输入为:
[0381]

亮度位置(xcb,ycb),表示当前亮度译码块的左上样本相对于当前图像的左上亮度样本的位置;
[0382]

变量cbwidth,以亮度样本为单位表示当前译码块的宽度;
[0383]

变量cbheight,以亮度样本为单位表示当前译码块的高度。
[0384]
在该过程中,推导邻块的亮度帧内预测模式candintrapredmodea和candintrapredmodeb。
[0385]
帧内预测模式intrapredmodey[xcb][ycb]的取值及其相关名称如表8

2所示。
[0386]
表8

2帧内预测模式和相关名称的规范
[0387]
帧内预测模式相关名称0intra_planar1intra_dc2..66intra_angular2..intra_angular6681..83intra_lt_cclm,intra_l_cclm,intra_t_cclm
[0388]
说明:帧内预测模式intra_lt_cclm、intra_l_cclm和intra_t_cclm只适用于色度分量。
[0389]
邻块的亮度帧内预测模式candintrapredmodea和candintrapredmodeb推导如下:
[0390]

如果intra_luma_not_planar_flag[xcb][ycb]等于1,则按顺序执行以下步骤:
[0391]
1.相邻位置(xnba,ynba)和(xnbb,ynbb)分别设置为(xcb

1,ycb cbheight

1)和(xcb cbwidth

1,ycb

1)。
[0392]
2.由于将x替换为a或b,因此变量candintrapredmodex推导如下:
[0393]

调用第6.4.x节(ed.(bb):邻块可用性检查过程tbd)中规定的块的可用性推导过
程,其中,位置(xcurr,ycurr)设置为(xcb,ycb),以及相邻位置(xnby,ynby)设置为(xnbx,ynbx)作为输入,输出值为availablex。
[0394]

候选帧内预测模式candintrapredmodex推导如下:
[0395]

如果满足以下一个或多个条件,则candintrapredmodex设置为intra_planar:
[0396]

变量availablex等于假。
[0397]

cupredmode[xnbx][ynbx]不等于mode_intra,且ciip_flag[xnbx][ynbx]不等于1。
[0398]

pcm_flag[xnbx][ynbx]等于1。
[0399]

x等于b,且ycb

1小于((ycb>>ctblog2sizey)<<ctblog2sizey)。
[0400]

否则,candintrapredmodex推导如下:
[0401]

如果intra_lwip_flag[xcb][ycb]等于1,则按顺序执行以下步骤推导candintrapredmodex:
[0402]
i.candintrapredmodex设置为intra_planar。
[0403]

否则,candintrapredmodex设置为intrapredmodey[xnbx][ynbx]。
[0404]
与上述非mip情况下的示例相比,当当前块使用帧内预测但不是mip,且当前块的一个或多个邻块使用mip时,用于推导当前块的帧内预测模式的邻块的帧内预测模式的值设置为默认值(例如,默认值为0,在一个示例中,平面模式对应的值为0)。
[0405]
在一些示例中,mip应用于亮度分量。然而,在某些情况下,可以根据对应位置的亮度模式推导色度帧内预测模式。在itujvet

n0217公开的示例中,当块的亮度分量使用mip且推导其色度模式时,按照表1根据当前块的mip模式和块大小类型,将mip模式转换为非mip帧内预测模式(在一个示例中,非mip帧内预测模式是指普通帧内预测模式)。
[0406]
在本发明的一个实施例中,当块使用mip模式且推导其色度模式时,对应的亮度模式设置为平面模式。
[0407]
这样,在当前块的色度模式推导过程和邻块的亮度模式推导过程中都可以去掉表1。
[0408]
亮度帧内预测模式推导过程
[0409]
该过程的输入为:
[0410]

亮度位置(xcb,ycb),表示当前亮度译码块的左上样本相对于当前图像的左上亮度样本的位置;
[0411]

变量cbwidth,以亮度样本为单位表示当前译码块的宽度;
[0412]

变量cbheight,以亮度样本为单位表示当前译码块的高度。
[0413]
在该过程中,推导亮度帧内预测模式intrapredmodey[xcb][ycb]。
[0414]
帧内预测模式intrapredmodey[xcb][ycb]的值及其相关名称如表19所示。
[0415]
表19帧内预测模式和相关名称的规范
[0416]
[0417][0418]
说明:帧内预测模式intra_lt_cclm、intra_l_cclm和intra_t_cclm只适用于色度分量。
[0419]
intrapredmodey[xcb][ycb]推导过程如下:
[0420]

如果intra_luma_not_planar_flag[xcb][ycb]等于0时,intrapredmodey[xcb][ycb]设置为intra_planar。
[0421]

否则,如果bdpcmflag[xcb][ycb][0]等于1,则intrapredmodey[xcb][ycb]设置为bdpcmdir[xcb][ycb][0]?intra_angular50:intra_angular18。
[0422]

否则(intra_luma_not_planar_flag[xcb][ycb]等于1),则按顺序执行以下步骤:
[0423]
1.相邻位置(xnba,ynba)和(xnbb,ynbb)分别设置为(xcb

1,ycb cbheight

1)和(xcb cbwidth

1,ycb

1)。
[0424]
2.由于将x替换为a或b,因此变量candintrapredmodex推导如下:
[0425]

调用第6.4.4节中规定的邻块可用性推导过程,位置(xcurr,ycurr)设置为(xcb,ycb),相邻位置(xnby,ynby)设置为(xnbx,ynbx),checkpredmodey设置为false,以及cidx设置为0作为输入,输出值为availablex。
[0426]

候选帧内预测模式candintrapredmodex推导如下:
[0427]

如果以下一个或多个条件为true,则candintrapredmodex设置为intra_planar:
[0428]

变量availablex等于false。
[0429]

cupredmode[0][xnbx][ynbx]不等于mode_intra。
[0430]

intra_mip_flag[xnbx][ynbx]等于1。
[0431]

x等于b,且ycb

1小于((ycb>>ctblog2sizey)<<ctblog2sizey)。
[0432]

否则,candintrapredmodex设置为intrapredmodey[xnbx][ynbx]。
[0433]
3.candmodelist[x](其中,x=0..4)推导如下:
[0434]

当candintrapredmodeb等于candintrapredmodea且candintrapredmodea大于intra_dc时,candmodelist[x](其中x=0..4)的推导方式如下:
[0435]
candmodelist[0]=candintrapredmodea(204)
[0436]
candmodelist[1]=2 ((candintrapredmodea 61)%64)(205)
[0437]
candmodelist[2]=2 ((candintrapredmodea

1)%64)(206)
[0438]
candmodelist[3]=2 ((candintrapredmodea 60)%64)(207)
[0439]
candmodelist[4]=2 (candintrapredmodea%64)(208)
[0440]

否则,如果candintrapredmodeb不等于candintrapredmodea,且candintrapredmodea或candintrapredmodeb大于intra_dc,则以下情况适用:
[0441]

变量minab和maxab的推导方式如下:
[0442]
minab=min(candintrapredmodea,candintrapredmodeb)(209)
[0443]
maxab=max(candintrapredmodea,candintrapredmodeb)(210)
[0444]

如果candintrapredmodea和candintrapredmodeb都大于intra_dc,则candmodelist[x](其中,x=0..4)的推导方式如下:
[0445]
candmodelist[0]=candintrapredmodea(211)
[0446]
candmodelist[1]=candintrapredmodeb(212)
[0447]

如果maxab

minab等于1(包括1),则以下情况适用:
[0448]
candmodelist[2]=2 ((minab 61)%64)(213)
[0449]
candmodelist[3]=2 ((maxab

1)%64)(214)
[0450]
candmodelist[4]=2 ((minab 60)%64)(215)
[0451]

否则,如果maxab

minab大于或等于62,则以下情况适用:
[0452]
candmodelist[2]=2 ((minab

1)%64)(216)
[0453]
candmodelist[3]=2 ((maxab 61)%64)(217)
[0454]
candmodelist[4]=2 (minab%64)(218)
[0455]

否则,如果maxab

minab等于2,则以下情况适用:
[0456]
candmodelist[2]=2 ((minab

1)%64)(219)
[0457]
candmodelist[3]=2 ((minab 61)%64)(220)
[0458]
candmodelist[4]=2 ((maxab

1)%64)(221)
[0459]

否则,以下情况适用:
[0460]
candmodelist[2]=2 ((minab 61)%64)(222)
[0461]
candmodelist[3]=2 ((minab

1)%64)(223)
[0462]
candmodelist[4]=2 ((maxab 61)%64)(224)
[0463]

否则(candintrapredmodea或candintrapredmodeb大于intra_dc),则candmodelist[x](其中,x=0..4)的推导方式如下:
[0464]
candmodelist[0]=maxab(225)
[0465]
candmodelist[1]=2 ((maxab 61)%64)(226)
[0466]
candmodelist[2]=2 ((maxab

1)%64)(227)
[0467]
candmodelist[3]=2 ((maxab 60)%64)(228)
[0468]
candmodelist[4]=2 (maxab%64)(229)
[0469]

否则,以下情况适用:
[0470]
candmodelist[0]=intra_dc(230)
[0471]
candmodelist[1]=intra_angular50(231)
[0472]
candmodelist[2]=intra_angular18(232)
[0473]
candmodelist[3]=intra_angular46(233)
[0474]
candmodelist[4]=intra_angular54(234)
[0475]
4.intrapredmodey[xcb][ycb]通过应用以下过程推导:
[0476]

如果intra_luma_mpm_flag[xcb][ycb]等于1时,intrapredmodey[xcb][ycb]设置为candmodelist[intra_luma_mpm_idx[xcb][ycb]]。
[0477]

否则,按顺序通过以下步骤推导intrapredmodey[xcb][ycb]:
[0478]
1.当candmodelist[i]大于candmodelist[j]时,i=0..3,对于每个i,j=(i 1)
..4,两个值的交换如下:
[0479]
(candmodelist[i],candmodelist[j])=swap(candmodelist[i],candmodelist[j])
[0480]
(235)
[0481]
2.按顺序通过以下步骤推导intrapredmodey[xcb][ycb]:
[0482]
i.intrapredmodey[xcb][ycb]设置为intra_luma_mpm_remainder[xcb][ycb]。
[0483]
ii.intrapredmodey[xcb][ycb]的值加1。
[0484]
iii.由于i等于0到4(包括端值),因此当intrapredmodey[xcb][ycb]大于或等于candmodelist[i]时,intrapredmodey[xcb][ycb]的值加1。
[0485]
将x=xcb..xcb cbwidth

1和y=ycb..ycb cbheight

1的变量intrapredmodey[x][y]设置为intrapredmodey[xcb][ycb]。
[0486]
示例1:一种由解码设备或编码设备实现的译码方法,包括:
[0487]
将当前块的邻块的帧内预测模式的值设置为默认值,其中,当所述当前块使用基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测时,所述邻块使用非mip模式的帧内预测模式进行预测;
[0488]
根据所述默认值获取所述当前块的mip模式的值。
[0489]
示例2:根据示例1所述的方法,所述默认值为负值。
[0490]
示例3:根据示例1或2所述的方法,所述默认值为

1。
[0491]
示例4:根据示例1至3中任一项所述的方法,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
[0492]
示例5:一种由解码设备或编码设备实现的译码方法,包括:
[0493]
将当前块的邻块的帧内预测模式的值设置为默认值,其中,当所述当前块使用帧内预测模式但不是基于矩阵的帧内预测(matrix

basedintraprediction,mip)模式进行预测时,所述邻块使用帧内预测模式进行预测;
[0494]
根据所述默认值获取所述当前块的帧内预测模式的值。
[0495]
示例6:根据示例5所述的方法,所述默认值对应于非角度帧内预测模式。
[0496]
示例7:根据示例5或6所述的方法,所述默认值为0或1。
[0497]
示例8:根据示例5至7中任一项所述的方法,所述当前块是否使用mip模式进行预测通过mip指示信息的值来指示。
[0498]
示例9:一种编码器(20),包括处理电路,用于执行根据示例1至8中任一项所述的方法。
[0499]
示例10:一种解码器(30),包括处理电路,用于执行根据示例1至8中任一项所述的方法。
[0500]
示例11:一种计算机程序产品,包括程序代码,所述程序代码用于执行根据示例1至8中任一项所述的方法。
[0501]
示例12:一种解码器,包括:
[0502]
一个或多个处理器;
[0503]
非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,使得所述解码器执行根据示例1至8中任一项所述
的方法。
[0504]
示例13:一种编码器,其特征在于,包括:
[0505]
一个或多个处理器;
[0506]
非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,使得所述编码器执行根据示例1至8中任一项所述的方法。
[0507]
下文对上述实施例中所示的编码方法和解码方法的应用以及使用这些方法的系统进行说明。
[0508]
图15为用于实现内容分发业务的内容提供系统3100的框图。该内容提供系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102通过通信链路3104与终端设备3106进行通信。通信链路可以包括上文描述通信信道13。通信链路3104包括但不限于wifi、以太网、电缆、无线(3g/4g/5g)、usb或者其任意组合等。
[0509]
所述捕获设备3102生成数据,且可以通过如上述实施例所示的编码方法对数据进行编码。或者,所述捕获设备3102可以将数据分发到流媒体服务器(图中未示出),由该服务器对数据进行编码,并将经编码的数据传输到所述终端设备3106。捕获设备3102包括但不限于相机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、pda、车载设备或其任意组合等。例如,捕获设备3102可以包括上文所述的源设备12。当所述数据包括视频时,所述捕获设备3102中的视频编码器20实际上可以执行视频编码处理。当所述数据包括音频(即声音)时,所述捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。在一些实际场景中,所述捕获设备3102通过将经编码的视频和音频数据复用在一起来分发所述经编码的视频和音频数据。在其它实际场景中,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。所述捕获设备3102分别将经编码的音频数据和经编码的视频数据分发到所述终端设备3106。
[0510]
在所述内容供应系统3100中,所述终端设备310接收并再现经编码的数据。所述终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、tv3114、机顶盒(settopbox,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personaldigitalassistant,pda)3122、车载设备3124或其任意组合等,其能够解码上述经编码的数据。例如,终端设备3106可以包括上文所述的目的地设备14。当经编码的数据包括视频时,所述终端设备中包括的视频解码器30优先进行视频解码。当经编码的数据包括音频时,所述终端设备中包括的音频解码器优先进行音频解码处理。
[0511]
对于带有显示器的终端设备,例如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、tv3114、个人数字助理(personaldigitalassistant,pda)3122或车载设备3124,该终端设备可以将经解码的数据馈送到该终端设备的显示器。对于不带显示器的终端设备,例如,stb3116、视频会议系统3118或视频监控系统3120,该终端设备与外接显示器3126连接,用于接收并显示经解码的数据。
[0512]
当该系统中的每个设备进行编码或解码时,可以使用如上述实施例中所示的图像
编码设备或图像解码设备。
[0513]
图16为终端设备3106的示例性结构图。在终端设备3106从捕获设备3102接收到码流之后,协议处理单元3202分析该码流的传输协议。所述协议包括但不限于实时流媒体协议(realtimestreamingprotocol,rtsp)、超文本传输协议(hypertexttransferprotocol,http)、http直播流媒体协议(httplivestreamingprotocol,hls)、mpeg

dash、实时传输协议(real

timetransportprotocol,rtp)、实时消息传输协议(realtimemessagingprotocol,rtmp),或其任何类型的组合等。
[0514]
在协议处理单元3202对码流进行处理之后,生成流文件。将文件输出到解复用单元3204。所述解复用单元3204可以将经复用的数据分离为经编码的音频数据和经编码的视频数据。如上文所述,在一些实际场景中,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。在这种情况下,经编码的数据不通过所述解复用单元3204传输到视频解码器3206和音频解码器3208。
[0515]
通过解复用处理,生成视频基本流(elementarystream,es)和音频es,且可选地生成字幕。所述视频解码器3206包括如上述实施例描述的视频解码器30。所述视频解码器3206通过如上述实施例所示的解码方法解码所述视频es以生成视频帧,并将该数据馈送到同步单元3212。所述音频解码器3208解码所述音频es以生成音频帧,并将该数据馈送至同步单元3212。或者,所述视频帧在发送至同步单元3212之前可以存储在缓冲区中(图16中未示出)。类似地,所述音频帧在发送至同步单元3212之前可以存储在缓冲区中(图16中未示出)。
[0516]
同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。可以使用与经译码的音频和可视数据的呈现相关的时间戳和与数据码流的分发相关的时间戳,将信息译码到语法中。
[0517]
如果码流中包括字幕,则字幕解码器3210对所述字幕进行解码,使所述字幕与所述视频帧和所述音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
[0518]
本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以结合到其它系统,例如汽车系统。
[0519]
数学运算符
[0520]
本技术中使用的数学运算符与c编程语言中使用的数学运算符类似。但是,这里准确定义了整除运算和算术移位运算的结果,并且还定义了运算,如幂运算和实值除法运算。编号和计数规范通常从零开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。
[0521]
算术运算符
[0522]
赋值运算符定义如下:
[0523][0524][0525]
逻辑运算符
[0526]
逻辑运算符定义如下:
[0527]
x&&yx和y的布尔逻辑“与”[0528]
x||yx和y的布尔逻辑“或”[0529]
!布尔逻辑“非”[0530]
x?y:z如果x为true或者不等于0,那么返回y的值,否则,返回z的值。
[0531]
关系运算符
[0532]
关系运算符定义如下:
[0533]
>大于
[0534]
>=大于或等于
[0535]
<小于
[0536]
<=小于或等于
[0537]
==等于
[0538]
!=不等于
[0539]
当关系运算符用于一个已赋值为“na”(不适用)的语法元素或变量时,则将值“na”视为该语法元素或变量的唯一值。值“na”不等于任何其它值。
[0540]
按位运算符
[0541]
以下按位运算符的定义如下:
[0542]
&按位“与”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
[0543]
|按位“或”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
[0544]
^按位“异或”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对
二进制参数进行运算时,如果它的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
[0545]
x>>y将x的二的补码整数表示算法右移y个二进制数字。该函数仅针对y的非负整数值定义。右移操作的结果是移进最高有效位(mostsignificantbit,msb)的位数等于移位操作之前的x的msb的值。
[0546]
x<<y将x的二的补码整数表示算法左移y个二进制数字。该函数仅针对y的非负整数值定义。左移操作的结果是移进最低有效位(leastsignificantbit,lsb)的位数等于移位操作之前的x的lsb的值。
[0547]
赋值运算符
[0548]
赋值运算符定义如下:
[0549]
=赋值运算符
[0550]
增,即,x 等于x=x 1;当在阵列索引中使用时,等于增运算之前变量的值。
[0551]
减,即,x
––
等于x=x

1;当在数组索引中使用时,等于减运算之前变量的值。
[0552]
=增加指定的量,例如:x =3相当于x=x 3,x =(

3)相当于x=x (

3)。
[0553]

=减少指定的量,例如:x

=3相当于x=x

3,x

=(

3)相当于x=x

(

3)。
[0554]
范围表示法
[0555]
以下表示法用于指定值的范围:
[0556]
x=y..zx取y到z的范围内的整数值(包含首尾数字),这里x,y和z都是整数,且z大于y。
[0557]
数学函数
[0558]
数学函数定义如下:
[0559][0560]
asin(x)三角反正弦函数,对参数x进行运算,x在

1.0至1.0的范围内(包含首尾数字),输出值在

π
÷
2至π
÷
2的范围内(包含首尾数字),单位为弧度。
[0561]
atan(x)三角反正切函数,对参数x运算,输出值的范围为

π
÷
2到π
÷
2(包括端值),单位为弧度。
[0562][0563]
ceil(x)表示大于或等于x的最小整数值。
[0564]
clip1
y
(x)=clip3(0,(1<<bitdepth
y
)

1,x)
[0565]
clip1
c
(x)=clip3(0,(1<<bitdepth
c
)

1,x)
[0566][0567]
cos(x)三角余弦函数,对参数x运算,单位为弧度。
[0568]
floor(x)表示小于或等于x的最大整数值。
[0569][0570]
ln(x)返回自然对数中x的值(以e为底的对数,其中,e为自然对数中的底数常数2.718281828
……
)。
[0571]
log2(x)以2为底x的对数。
[0572]
log10(x)以10为底x的对数。
[0573][0574][0575]
round(x)=sign(x)*floor(abs(x) 0.5)
[0576][0577]
sin(x)三角正弦函数,对参数x进行运算,单位为弧度。
[0578][0579]
swap(x,y)=(y,x)
[0580]
tan(x)三角正切函数,对参数x进行运算,单位为弧度。
[0581]
运算优先级顺序
[0582]
当没有使用括号来显式的表示优先顺序时,则遵循如下规则:
[0583]

高优先级的运算在低优先级的运算之前进行。
[0584]

相同优先级的运算从左到右依次进行。
[0585]
下表从最高到最低的顺序说明运算的优先级,在表中的位置越高,优先级也越高。
[0586]
如果在c编程语言中也使用这些运算符,则本文中采用的优先级顺序与c编程语言中采用的优先级顺序相同。
[0587]
表格:从最高(表格顶部)到最低(表格底部)的运算优先级
[0588][0589]
逻辑运算的文字描述
[0590]
文本中,逻辑运算中的语句以数学形式描述如下:
[0591]
if(condition0)
[0592]
statement0
[0593]
elseif(condition1)
[0594]
statement1
[0595]
...
[0596]
else/*informativeremarkonremainingcondition*/
[0597]
statementn
[0598]
可以通过如下方式进行描述:
[0599]
……
如下/
……
以下为准:
[0600]

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

否则,如果条件1,则语句1
[0602]

...
[0603]

否则(剩余条件的信息备注),则为语句n
[0604]
每个“如果
……
否则,如果
……
否则,
……“
如果
……”
后面紧跟着
“……
如下”或
“……
以下为准”用来介绍文本中的语句。".最后一个条件“如果
……”
,否则,如果
……
否则,
……
总有一个“否则,
……”
。中间有“如果
……
否则,如果
……
否则
……”

“……
如下”或
“……
以下为准”后用“否则”结尾来识别语句。
[0605]
文本中,逻辑运算中的语句以数学形式描述如下:
[0606]
if(condition0a&&condition0b)
[0607]
statement0
[0608]
elseif(condition1a||condition1b)
[0609]
statement1
[0610]
...
[0611]
else
[0612]
statementn
[0613]
可以通过如下方式进行描述:
[0614]
……
如下/
……
以下为准:
[0615]

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

条件0a
[0617]

条件0b
[0618]

否则,如果以下一个或多个条件为真,则语句1:
[0619]

条件1a
[0620]

条件1b
[0621]
–……
[0622]

否则,语句n
[0623]
文本中,逻辑运算中的语句以数学形式描述如下:
[0624]
if(condition0)
[0625]
statement0
[0626]
if(condition1)
[0627]
statement1
[0628]
可以通过如下方式进行描述:
[0629]
如果条件0,则语句0
[0630]
如果条件1,则语句1
[0631]
尽管本发明实施例主要根据视频译码进行了描述,但需要说明的是,译码系统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。
[0632]
编码器20和解码器30等的实施例,以及本文描述的与编码器20和解码器30等有关的功能可以以硬件、软件、固件或其任意组合来实现。如果通过软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过通信介质发送,且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质(例如数据存储介质),或者包括任何根据通信协议等有利于将计算机程序从一个地方传递到另一个地方的通信介质。在这种方式中,计算机可读介质通常可以对应(1)非瞬时性的有形计
算机可读介质或(2)通信介质,例如信号或载波。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实施本发明所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
[0633]
作为示例而非限制,这类计算机可读存储介质可以包括ram、rom、eeprom、cd

rom或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以称为计算机可读介质。例如,如果指令是从网站、服务器或其它远程源通过同轴电缆、光纤电缆、双绞线、数字用户线(digitalsubscriberline,dsl)或无线技术(例如红外、无线电、微波等)发送的,则介质的定义包括同轴电缆、光纤电缆、双绞线、dsl或无线技术(例如红外、无线电和微波等)。但是,应理解,计算机可读介质和数据介质不包括连接、载波、信号或其它瞬时介质,而是指非瞬时有形介质。本文所使用的磁盘和光盘包含压缩光盘(compactdisc,cd)、激光光盘、光学光盘、数字多功能光盘(digitalversatiledisc,dvd)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
[0634]
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(digitalsignalprocessor,dsp)、通用微处理器、专用集成电路(application

specificintegratedcircuit,asic)、现场可编程逻辑阵列(fieldprogrammablelogicarray,fpga)或其它等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何上述结构或任何适合于实现本文所描述的技术的任何其它结构。另外,在一些方面中,本文所描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合的编解码器中。另外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
[0635]
本发明技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integratedcircuit,ic)或一组ic(例如芯片组)。本发明描述各种组件、模块或单元以强调用于执行所公开技术的设备的功能方面,但这些组件、模块或单元不一定要求通过不同的硬件单元实现。相反,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献