协调基于矩阵的帧内预测和二次变换核选择的编码器、解码器及相应方法与流程

文档序号:27315635发布日期:2021-11-09 23:49阅读:264来源:国知局
协调基于矩阵的帧内预测和二次变换核选择的编码器、解码器及相应方法与流程
协调基于矩阵的帧内预测和二次变换核选择的编码器、解码器及相应方法
1.相关申请案交叉申请
2.本专利申请要求于2019年4月17日提交的第62/835,487号美国临时专利申请的优先权。上述专利申请的公开内容通过全文引用的方式并入本文中。
技术领域
3.本技术(本发明)实施例大体上涉及图像处理领域,更具体地涉及帧内预测。


背景技术:

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


技术实现要素:

6.本发明旨在缓解或解决上述问题。
7.本技术实施例提供根据独立权利要求的用于编码和解码的装置和方法。
8.本发明公开了一种由解码设备或编码设备实现的译码方法,包括:确定当前块的帧内预测模式;根据为所述当前块确定的帧内预测模式确定所述当前块的二次变换选择。
9.本发明的方法确定所述当前块的帧内预测模式,并确定是否以及如何根据所确定的帧内预测模式进行所述当前块的二次变换。
10.在上述方法中,可以根据所述当前块的帧内预测模式索引,确定为所述当前块的二次变换选择二次变换核。
11.在上述方法中,在不使用基于矩阵的帧内预测(matrix

based intra prediction,mip)模式预测当前块的情况下,可以选择用于所述当前块二次变换的二次变换核。
12.因此,在使用mip模式预测帧内预测块的情况下,例如,mip标志的值可以用于表示是否使用mip模式预测块,对所述帧内预测块禁用二次变换。换句话说,二次变换索引的值设置为0,或者不需要从码流中解码二次变换索引。因此,在选择二次变换核时可以协调mip
工具和rst工具。
13.上述方法还可以包括:当使用mip模式预测所述当前块时,禁用所述当前块的二次变换。
14.在上述方法中,所述禁用当前块的二次变换可以包括:将所述当前块的二次变换指示信息的值设置为默认值。
15.在上述方法中,mip指示信息的值指示所述当前块是否使用mip模式预测。
16.在上述方法中,在未使用mip模式预测所述当前块的情况下,可以根据以下表格选择所述二次变换:
[0017][0018]
其中:
[0019]
sps_lfnst_enabled_flag等于1表示lfnst_idx可以在帧内编码单元语法中存在,sps_lfnst_enabled_fag等于0表示lfnst_idx在帧内编码单元语法中不存在;
[0020]
intra_mip_flag[x0][y0]等于1表示亮度样本的帧内预测类型为基于矩阵的帧内预测,intra_mip_flag[x0][y0]等于0表示亮度样本的帧内预测类型不是基于矩阵的帧内预测,其中,当intra_mip_flag[x0][y0]不存在时,推断其等于0;
[0021]
lfnst_idx表示是否使用所选变换集中的两个低频不可分离变换核中的其中一个以及使用哪一个,lfnst_idx等于0表示所述当前编码单元不使用低频不可分离变换,其中,当lfnst_idx不存在时,推断其等于0;
[0022]
transform_skip_flag[x0][y0][cidx]表示是否将变换应用于关联的变换块。
[0023]
上述方法还可以包括:根据所述当前块的基于矩阵的帧内预测(matrix

based intra prediction,mip)模式索引和所述当前块的尺寸,获取所述当前块的帧内预测模式索引;根据所述当前块的所述帧内预测模式索引,为所述当前块的二次变换选择二次变换核。
[0024]
因此,在所述二次变换的变换核选择过程中,当使用mip模式预测块时,二次变换核集中的一个二次变换核被认为用于所述块。
[0025]
在上述方法中,所述当前块的帧内预测模式索引可以根据所述mip模式索引与所述当前块的尺寸之间的映射关系得到,所述映射关系可以在预定义表格中表示。
[0026]
上述方法还可以包括:当使用基于矩阵的帧内预测(matrix

based intra prediction,mip)模式预测所述当前块时,使用二次变换核用于当前块的二次变换。
[0027]
在上述方法中,所述二次变换核是用于非mip模式的二次变换核中的其中一个。
[0028]
在上述方法中,所述二次变换核不同于用于非mip模式的所述二次变换核中的任意一个。
[0029]
在上述方法中,在使用mip模式预测当前块的情况下,使用查找表将所述mip模式索引映射到常规帧内模式索引,根据所述常规帧内模式索引选择二次变换核集。
[0030]
在上述方法中,所述mip模式索引可以根据以下表格映射到常规帧内模式索引:
[0031]
[0032][0033]
其中,可以根据以下表格选择所述二次变换集:
[0034]
intrapredmodetr.set indexintrapredmode<010<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=55256<=intrapredmode1
[0035]
上述方法还可以包括:提供四个变换核集,变换核集索引分别为0、1、2和3,其中,所述四个变换核集中的每个变换核集包括两个变换;通过根据所述当前块的帧内预测模式确定要应用于所述当前块的所述四个变换核集中的变换核集,选择简化二次变换(reduced secondary transform,rst)矩阵,步骤如下:如果所述当前帧内块使用分量间线性模型(cross

component linear model,cclm)模式或所述mip模式预测,则选择变换核集索引为0的变换核集;否则,根据所述当前块的帧内预测模式索引的值和以下表格选择变换核集:
[0036]
intrapredmodetr.set indexintrapredmode<010<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=552
56<=intrapredmode1
[0037]
所述方法还可以包括:提供四个变换核集,变换核集索引分别为0、1、2和3,所述四个变换核集中的每个变换核集包括两个变换;提供变换核集索引为4的第五变换核集;其中,所述第五变换核集与变换核集索引为0

3的变换核集具有相同的尺寸;所述第五变换核集根据相同的机器学习方法和mip模式的输入训练集进行新训练;通过根据所述当前块的帧内预测模式确定要应用于所述当前块的所述五个变换核集中的变换核集,选择简化二次变换(reduced secondary transform,rst)矩阵,步骤如下:如果所述当前帧内块使用分量间线性模型(cross

component linear model,cclm)模式预测,则选择变换核集索引为0的变换核集;如果所述当前帧内块使用mip模式预测,则选择变换核集索引为4的变换核集;否则,根据所述当前块的帧内预测模式索引的值和以下表格选择变换核集:
[0038]
intrapredmodetr.set indexintrapredmode<010<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=55256<=intrapredmode1
[0039]
因此,在所述二次变换的变换核选择过程中,当使用mip模式预测块时,训练后的二次变换核集被认为用于所述块。所述训练后的二次变换核集可以不同于上述示例中的变换核集。
[0040]
本发明还提供一种编码器,包括处理电路,用于执行由编码设备实现的上述方法。
[0041]
本发明还提供一种解码器,包括处理电路,用于执行由解码设备实现的上述方法。
[0042]
本发明还提供一种计算机程序产品,包括用于执行上述方法的程序代码。
[0043]
本发明还提供一种解码器,包括:一个或多个处理器;以及非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质耦合到所述处理器并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使所述解码器执行由解码设备实现的上述方法。
[0044]
本发明还提供一种编码器,包括:一个或多个处理器;以及非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质耦合到所述处理器并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使所述编码器执行由编码设备实现的上述方法。
[0045]
本发明还提供一种解码器,包括:确定单元,用于确定当前块的帧内预测模式;以及选择单元,用于根据为所述当前块确定的帧内预测模式确定所述当前块的二次变换选择。
[0046]
本发明还提供一种编码器,包括:确定单元,用于确定当前块的帧内预测模式;以及选择单元,用于根据为所述当前块确定的帧内预测模式确定所述当前块的二次变换选择。
[0047]
上述目的及其它目的通过独立权利要求请求保护的主题实现。其它实现方式在从属权利要求、说明书以及附图中是显而易见的。
[0048]
本发明第一方面提供的方法可以由本发明第三方面提供的装置执行。本发明第三
方面提供的方法的其它特征和实现方式对应于本发明第一方面提供的装置的特征和实现方式。
[0049]
本发明第二方面提供的方法可以由本发明第四方面提供的装置执行。本发明第四方面提供的方法的更多特征和实现方式对应于本发明第二方面提供的装置的特征和实现方式。
[0050]
根据第五方面,本发明涉及一种视频流解码装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第一方面所述的方法。
[0051]
根据第六方面,本发明涉及一种视频流编码装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第二方面所述的方法。
[0052]
根据第七方面,本发明涉及一种计算机可读存储介质,所述计算机可读存储介质存储指令。当执行所述指令时,使一个或多个处理器编码视频数据。所述指令使所述一个或多个处理器执行所述第一方面和第二方面或第一方面和第二方面任意可能实施例中所述的方法。
[0053]
根据第八方面,本发明涉及一种计算机程序,所述计算机程序包括程序代码。在计算机上执行所述程序代码时,执行第一方面和第二方面或第一方面和第二方面任意可能实施例中所述的方法。
[0054]
以下附图和说明书详细阐述了一个或多个实施例。其它特征、目的和优点在说明书、附图以及权利要求书中是显而易见的。
附图说明
[0055]
下面参照所附的附图和示意图对本发明实施例进行更加详细地描述,其中:
[0056]
图1a为用于实现本发明实施例的示例性视频译码系统的框图;
[0057]
图1b为用于实现本发明实施例的另一示例性视频译码系统的框图;
[0058]
图2为用于实现本发明实施例的示例性视频编码器的框图;
[0059]
图3为用于实现本发明实施例的视频解码器的示例性结构的框图;
[0060]
图4为示例性编码装置或解码装置的框图;
[0061]
图5为另一示例性编码装置或解码装置的框图;
[0062]
图6为4
×
4块的mip模式矩阵乘法示例的框图;
[0063]
图7为8
×
8块的mip模式矩阵乘法示例的框图;
[0064]
图8为8
×
4块的mip模式矩阵乘法示例的框图;
[0065]
图9为16
×
16块的mip模式矩阵乘法示例的框图;
[0066]
图10为示例性二次变换过程的框图;
[0067]
图11为编码和解码装置的示例性二次变换核乘法过程的框图;
[0068]
图12为从16
×
64减小到16
×
48的示例性二次变换核尺寸的框图;
[0069]
图13为根据相邻块位置的示例性mip mpm重建的框图;
[0070]
图14为根据相邻块位置的另一示例性mip mpm重建的框图;
[0071]
图15示出了本发明提供的由解码设备或编码设备实现的方法;
[0072]
图16示出了本发明提供的编码器;
[0073]
图17示出了本发明提供的解码器;
[0074]
图18为实现内容分发服务的内容提供系统3100的示例性结构的框图;
[0075]
图19为终端设备的示例性结构的框图。
[0076]
下文中,相同的附图标记表示相同的特征或至少在功能上等效的特征,除非另有明确规定。
具体实施方式
[0077]
以下描述中,参考形成本发明一部分并以说明之方式示出本发明实施例的具体方面或可使用本发明实施例的具体方面的附图。应理解,本发明实施例可以在其它方面中使用,且可以包括附图中未描述的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。
[0078]
例如,应理解,结合所描述的方法的揭示内容可以对用于执行所述方法的对应设备或系统也同样适用,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括如功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元中的每一个单元都执行多个步骤中的一个或多个步骤),即使附图中未显式描述或说明此一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元来描述具体装置,则对应的方法可以包括一个步骤,以执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤中的每一个步骤执行多个单元中的一个或多个单元的功能),即使附图中未显式描述或说明此一个或多个步骤。进一步,应理解的是,除非另外明确说明,本文中所描述的各种示例性实施例和/或方面的特征可以相互组合。
[0079]
视频译码通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源端执行,通常包括处理(例如,压缩)原始视频图像,以减少表示该视频图像所需的数据量(以便更高效地进行存储和/或传输)。视频解码在目的地端执行,通常包括相对于编码器的逆处理过程,用于重建该视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或各自视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码器(编码和解码,codec)。
[0080]
在无损视频译码的情况下,可以对原始视频图像进行重建,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据损失)。在有损视频译码的情况下,通过量化等进行进一步压缩,来减少表示视频图像所需的数据量。此时解码器侧无法完全重建视频图像,即重建的视频图像的质量低于或劣于原始视频图像的质量。
[0081]
若干个视频译码标准属于“有损混合视频编解码器”组(即,将样本域中的空间和时间预测与2d变换译码相结合,以在变换域中进行量化)。视频序列中的每个图像通常划分成不重叠块的集合,通常进行块级别的译码。换句话说,在编码器侧,通常在块(视频块)级处对视频进行处理(即编码),例如,通过空间(帧内)预测和/或时间(帧间)预测来生成预测块;从当前块(当前处理的块/待处理块)中减去预测块,得到残差块;在变换域中变换残差块并量化残差块,以减少待发送(压缩)的数据量,而在解码器侧,对经编码或压缩的块进行相对于编码器的逆处理,以重建当前块进行表示。此外,编码器和解码器的处理步骤相同,
使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于进行处理,即对后续块进行译码。
[0082]
在以下视频译码系统10的实施例中,视频编码器20和视频解码器30根据图1至图3进行描述。
[0083]
图1a为示例性译码系统10的示意性框图,例如可以使用本技术技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本技术中描述的各种示例执行各技术的设备的示例。
[0084]
如图1a所示,所述译码系统10包括源设备12,源设备12用于将经编码图像数据21提供给用于对经编码图像数据13进行解码的目的地设备14。
[0085]
源设备12包括编码器20,另外即可选地,包括图像源16、预处理器(或预处理单元)18(如图像预处理器18)、通信接口或通信单元22。
[0086]
所述图像源16可以包括或可以为任何类型的图像捕获设备、和/或任何类型的图像生成设备或任何类型的其它设备,其中,所述图像捕获设备例如为用于捕获现实世界图像的相机,所述图像生成设备例如为用于生成计算机动画图像的计算机图形处理器,所述其它设备用于获取和/或提供现实世界的图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtual reality,vr)图像)和/或其任意组合(例如,增强现实(augmented reality,ar)图像)。图像源可以为存储上述图像中的任意图像的任何类型的存储器(memory/storage)。
[0087]
为了区分预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。
[0088]
预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,以获得经预处理的图像19或经预处理的图像数据19。预处理器18执行的预处理可以包括例如修剪(trimming)、颜色格式转换(例如从rgb转换为ycbcr)、颜色校正或去噪。可以理解的是,预处理单元18可以为可选组件。
[0089]
视频编码器20用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2等进行详细描述)。源设备12中的通信接口22可用于:接收经编码的图像数据21并通过通信信道13向目的地设备14等另一设备或任何其它设备发送经编码的图像数据21(或其它任意处理后的版本),以供存储或直接重建。
[0090]
目的地设备14包括解码器30(例如视频解码器30),另外即可选地,可包括通信接口或通信单元28、后处理器32(或后处理单元32)以及显示设备34。
[0091]
目的地设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备接收经编码的图像数据21(或其它任意处理后的版本),例如,存储设备为存储经编码的图像数据的存储设备,并将经编码的图像数据21提供给解码器30。
[0092]
通信接口22和通信接口28可用于通过源设备12与目的地设备14之间的直接通信链路,例如直接有线或无线连接等,或者通过任何类型的网络,例如有线网络、无线网络或其任意组合、任何类型的私网和公网或其任意类型的组合,发送或接收经编码的图像数据21或经编码的数据13。
[0093]
例如,通信接口22可用于将经编码的图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理所述经编码的图像数据,以便在通信链路或通信网
络上进行传输。
[0094]
通信接口28与通信接口22对应,例如,可用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获得经编码的图像数据21。
[0095]
通信接口22和通信接口28均可配置为如图1a中从源设备12指向目的地设备14的对应通信信道13的箭头所指示的单向通信接口,或配置为双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如编码后的图像数据传输等数据传输相关的任何其它信息,等等。
[0096]
解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或经解码的图像31(下文将根据图3或图5进行详细描述)。
[0097]
目的地设备14中的后处理器32用于对经解码的图像数据31(也称为经重建的图像数据),例如,经解码的图像31进行后处理,以获得经后处理的图像数据33,例如,经后处理的图像33。后处理单元32执行的后处理可以包括例如颜色格式转换(例如从ycbcr转换为rgb)、调色、修剪或重采样,或者用于产生供显示设备34等显示的经解码的图像数据31等任何其它处理。
[0098]
目的地设备14中的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以为或可以包括任意类型的用于表示经重建的图像的显示器,例如,集成或外部显示屏或显示器。例如,显示器可以包括液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light emitting diode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶显示器(liquid crystal on silicon,lcos)、数字光处理器(digital light processor,dlp)或任意类型的其它显示器。
[0099]
尽管图1a示出了将源设备12和目的地设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括源设备12和目的地设备14的功能,即同时包括源设备12或对应功能和目的地设备14或对应功能。在这些实施例中,源设备12或源设备12的对应功能和目的地设备14或目的地设备14的对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
[0100]
根据描述,图1a所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
[0101]
所述编码器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中的任一个可作为组合编解码器(encoder/decoder,codec)的一部分集成在单个设备中,如图1b所示。
[0102]
源设备12和目的地设备14可以包括多种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备等,且可以使用或不使用任意类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。
[0103]
在某些情况下,图1a所示的视频译码系统10仅仅是示例,本技术的技术可适用于在编码设备与解码设备之间不一定包括任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它示例中,数据从本地存储器检索,在网络上流式传输等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,由互不通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备来执行编码和解码。
[0104]
为便于描述,例如,参考由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标准。
[0105]
编码器和编码方法
[0106]
图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也可以称为混合型视频编码器或基于混合型视频编解码器的视频编码器。
[0107]
残差计算单元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、解码图像缓冲区230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
[0108]
图像和图像划分(图像和块)
[0109]
编码器20可用于通过输入单元201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是经预处理的图像19(或经预处理的图像数据19)。为简单起见,以下描述中称为图像17。图像17还可以称为当前图像或待译码图像(尤其在视频译码中,为区分当前图像和其它图像,其它图像例如为同一
视频序列中,即同时包括当前图像的视频序列中,的先前经编码的图像和/或先前经解码的图像)。
[0110]
(数字)图像是或可以认为是具有强度值的样本组成的二维阵列或矩阵。该阵列中的样本也可以称为像素(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彩色格式的亮度样本阵列和两个对应的色度样本阵列。
[0111]
在视频编码器20的实施例中,视频编码器20可以包括图像划分单元(图2中未示出),用于将所述图像17划分成多个(通常不重叠)图像块203。这些块也可以称为根块或宏块(h.264/avc标准)或称为编码树块(coding tree block,ctb)或编码树单元(coding tree unit,ctu)(h.265/hevc和vvc标准)。图像划分单元可以用于:对视频序列中的所有图像使用相同的块尺寸,并使用对应网格定义块尺寸,或者在图像或图像子集或图像组之间改变块尺寸,并将每个图像划分成对应的块。
[0112]
在其它实施例中,视频编码器可用于直接接收所述图像17的图像块203,例如,组成所述图像17的一个、若干个或所有图像块。图像块203也可以称为当前图像块或待译码图像块。
[0113]
与图像17一样,图像块203同样是或可以认为是具有强度值(样本值)的样本组成的二维阵列或矩阵,但是图像块203的尺寸要比图像17的尺寸小。换句话说,图像块203可以包括一个样本阵列(例如,图像17是黑白图像时,图像块203包括一个亮度阵列;图像17是彩色图像时,图像块203包括一个亮度阵列或一个色度阵列),或者包括三个样本阵列(例如,图像17是彩色图像时,图像块203包括一个亮度阵列和两个色度阵列),或者包括由所使用的颜色格式决定的任何其它数量和/或类型的阵列。图像块203在水平方向和垂直方向(或轴线)上的样本的数量限定了图像块203的尺寸。相应地,图像块可以为例如m
×
n(m列
×
n行)个样本阵列,或m
×
n个变换系数阵列等。
[0114]
在图2所示的视频编码器20的实施例中,视频编码器20可用于对图像17进行逐块编码,例如,对每个图像块203进行编码和预测。
[0115]
图2所示的视频编码器20的实施例还可以用于使用条带(slice)(也称为视频条带)对图像进行划分和/或编码,其中,可以使用一个或多个条带(通常为不重叠的)对图像进行划分或编码,并且每个条带可以包括一个或多个块(例如,ctu)。
[0116]
图2所示的视频编码器20的实施例还可以用于使用分块组(tile group)(也称为视频分块组)和/或分块(tile)(也称为视频分块)对图像进行划分和/或编码,其中,可以使
用一个或多个分块组(通常为不重叠的)对图像进行划分或编码,每个分块组可以包括一个或多个块(例如,ctu)或一个或多个分块等,其中,每个分块可以为矩形等形状,可以包括一个或多个块(例如,ctu),例如完整或部分块。
[0117]
残差计算
[0118]
残差计算单元204可以用于根据图像块203和预测块265(下文将详细描述预测块265)通过如下方式计算残差块205(也称为残差205),例如,逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值,得到样本域中的残差块205。
[0119]
变换
[0120]
变换处理单元206可以用于对残差块205的样本值执行离散余弦变换(discrete cosine transform,dct)或离散正弦变换(discrete sine transform,dst)等变换,以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。
[0121]
变换处理单元206可以用于执行dct/dst的整数近似,例如,针对h.265/hevc指定的变换。与正交dct变换相比,该整数近似通常基于某一因子进行缩放。使用其它缩放因子作为变换过程的一部分,以维持经前向变换和逆变换处理的残差块的范数。缩放因子通常是基于某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的折衷等。例如,在编码器20侧通过逆变换处理单元212等为逆变换(在视频解码器30侧通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子,并且相应地,可以在编码器20侧通过变换处理单元206等为前向变换指定对应的缩放因子。
[0122]
在视频编码器20的实施例中,视频编码器20(对应地,变换处理单元206)可用于,例如,直接输出或经熵编码单元270进行编码或压缩后输出一种或多种变换类型的变换参数,使得视频解码器30可以接收并使用变换参数进行解码。
[0123]
量化
[0124]
量化单元208用于通过执行标量化或矢量化等对变换系数207进行量化,以获得量化系数209。量化系数209也可以称为经量化的变换系数209或经量化的残差系数209。
[0125]
量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m,可以通过调整量化参数(quantization parameter,qp)修改量化程度。例如,对于标量化,可以执行不同的缩放来实现更精细或更粗略的量化。量化步长越小,量化越精细;量化步长越大,量化越粗略。量化参数(quantization parameter,qp)可以用于表示合适的量化步长。例如,量化参数可以是适用于预定义的一组合适的量化步长尺寸的索引。例如,小的量化参数可对应精细的量化(小的量化步长),大的量化参数可对应粗略的量化(大的量化步长),反之亦然。量化操作可以包括除以量化步长,而反量化单元210等执行的相应解量化或逆解量化操作可以包括乘以量化步长。在一些实施例中,根据如hevc等一些标准,可以使用量化参数来确定量化步长。通常,可以根据量化参数使用包括除法运算的等式的定点近似来计算量化步长。可以使用其它缩放因子进行量化和解量化,用于恢复残差块的范数。由于在用于量化步长和量化参数的等式的定点近似中使用了缩放,所以可能修改了该残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化中的缩放。或者,可以使用自定义的量化表并由编码器
通过码流等方式向解码器指示(signal)。量化是有损操作,其中量化步长越大,损耗越大。
[0126]
在视频编码器20的实施例中,视频编码器20(对应地,量化单元208)可用于,例如,直接输出或经熵编码单元270进行编码后输出量化参数(quantization parameter,qp),使得视频解码器30可以接收并使用量化参数进行解码。
[0127]
反量化
[0128]
反量化单元210用于对量化系数执行与量化单元208所执行的量化相反的反量化,以获得解量化系数211,例如,根据或通过与量化单元208相同的量化步长执行与量化单元208所执行的量化方案相反的反量化方案。解量化系数211也可以称为解量化残差系数211,其对应于变换系数207,但是由于量化造成损耗,解量化系数211通常与变换系数不完全相同。
[0129]
逆变换
[0130]
逆变换处理单元212用于执行变换处理单元206所执行的变换的逆变换,例如,逆离散余弦变换(discrete cosine transform,dct)或逆离散正弦变换(discrete sine transform,dst),以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。
[0131]
重建
[0132]
重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)与预测块265相加,例如,将重建残差块213的样本值和预测块265的样本值逐个样本进行相加,得到样本域中的重建块215。
[0133]
滤波
[0134]
环路滤波器单元220(或简称为环路滤波器220)用于对重建块215进行滤波,得到滤波块221,或通常用于对重建样本进行滤波,得到滤波样本值。例如,环路滤波单元用于平滑像素的突变或者提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample

adaptive offset,sao)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,alf)、锐化滤波器、平滑滤波器、协作滤波器或其任意组合。尽管在图2中环路滤波器单元220示出为环内滤波器,但在其它配置中,环路滤波器单元220可以实现为后环路滤波器。滤波块221也可以称为滤波重建块221。
[0135]
在实施例中,所述视频编码器20(对应地,环路滤波器单元220)可以用于输出环路滤波器参数(例如样本自适应偏移信息),例如直接输出或由熵编码单元270进行编码后输出,使得(例如)解码器30可以接收并使用相同的环路滤波器参数或相应的环路滤波器进行解码。
[0136]
解码图像缓冲区
[0137]
解码图像缓冲区(decoded picture buffer,dpb)230可以是存储参考图像或通常存储参考图像数据的存储器,以在视频编码器20对视频数据进行编码时使用。dpb 230可以由多种存储器设备中的任一者形成,例如包含同步dram(synchronous dram,sdram)的动态随机存取存储器(dynamic random access memory,dram)、磁阻式ram(magnetoresistive ram,mram)、电阻式ram(resistive ram,rram)或其它类型的存储器设备。解码图像缓冲区(decoded picture buffer,dpb)230可用于存储一个或多个滤波块221。解码图像缓冲区
230还可以用于存储同一当前图像的或如先前重建图像等的不同图像的其它先前滤波块如先前重建和滤波的块221,且可提供完整的先前重建图像即经解码的图像(以及对应的参考块和样本)和/或部分重建的当前图像(以及对应的参考块和样本),例如,以进行帧间预测。解码图像缓冲区230还可以用于存储一个或多个未经滤波的重建块215,或通常存储未经滤波的重建样本,例如,未经环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建样本。
[0138]
模式选择(划分和预测)
[0139]
模式选择单元260包括划分单元262、帧间预测单元244和帧内预测单元254,并且用于从解码图像缓冲区230或其它缓冲区(例如行缓冲区,图中未显示)接收或获取原始块203(当前图像17的当前块203)和重建图像数据等原始图像数据(例如同一个(当前)图像和/或一个或多个先前经解码图像的经过滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,用于获得预测块265或预测值265。
[0140]
模式选择单元260可以用于为当前块预测模式(包括不划分模式)和预测模式(例如帧内预测模式或帧间预测模式)确定或选择划分模式,并生成对应的预测块265,所述预测块用于残差块205的计算以及重建块215的重建。
[0141]
在模式选择单元260的实施例中,模式选择单元260可以用于选择划分和预测模式(例如,从模式选择单元260支持或可用的模式中选择)。划分和预测模式提供最佳匹配,即最小残差(最小残差意味着更好的压缩性能,以便进行发送或存储),或提供最小指示开销(最小指示开销意味着更好的压缩性能,以便进行发送或存储),或者同时考虑以上两者或在以上两者中取得平衡。模式选择单元260可以用于根据率失真优化(rate distortion optimization,rdo)确定划分和预测模式,即选择提供最小率失真的预测模式。本文中,术语“最佳”、“最小”、“最优”等不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致“次优选择”,但会降低复杂度和处理时间。
[0142]
划分单元262可以用于将块203划分成更小的块部分或子块(子块再次形成块),例如,通过迭代地使用四叉树划分(quad

tree partitioning,qt)、二叉树划分(binary

tree partitioning,bt)或三叉树划分(triple

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

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

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

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

tree and binary

tree,qtbt)划分来划分编码块。在qtbt块结构中,一个cu可以为正方形或矩形形状。例如,译码树单元(coding tree unit,ctu)首先通过四叉树结构进行划分。四叉树叶节点进一步通过二叉树或三叉树结构进行划分。划分树叶节点称为译码单元(coding unit,cu),这样的分段用于预测和变换处理,无需任何进一步的划分。这表示在qtbt译码块结构中,cu、pu和tu的块尺寸相同。与此同时,可以将三叉树划分等多重划分与qtbt块结构一起使用。
[0150]
在一个示例中,视频编码器20中的模式选择单元260可用于执行上文描述的划分技术的任意组合。
[0151]
如上所述,视频编码器20用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。该预测模式集合可以包括例如帧内预测模式和/或帧间预测模式等。
[0152]
帧内预测
[0153]
帧内预测模式集合可以包括35种不同的帧内预测模式,例如像dc(或均值)模式和平面(planar)模式的非方向性模式或如hevc中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如像dc(或均值)模式和平面模式的非方向性模式或如vvc中定义的方向性模式。
[0154]
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式,使用同一个当前图像的相邻块的重建样本来生成帧内预测块265。
[0155]
帧内预测单元254(或通常为模式选择单元260)还用于输出帧内预测参数(或通常为表示块的所选帧内预测模式的信息)以语法元素266的形式发送到熵编码单元270,以包含到经编码的图像数据21中,从而视频解码器30可执行操作,例如接收并使用用于解码的预测参数。
[0156]
帧间预测
[0157]
(可能的)帧间预测模式集合取决于可用参考图像(即上述存储在dpb 230等中的至少部分经解码图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗口区域)来搜索最佳匹配参考块,和/或例如取决于是否进行像素插值(例如二分之一/半像素插值和/或四分之一像素插值)。
[0158]
除了上述预测模式之外,还可以使用跳过(skip)模式和/或直接模式。
[0159]
帧间预测单元244可以包括运动估计(motion estimation,me)单元和运动补偿(motion compensation,mc)单元(两者均未在图2中示出)。运动估计单元可用于接收或获取图像块203(当前图像17的当前图像块203)和经解码的图像231,或至少一个或多个先前重建的块,例如,一个或多个其它/不同的先前解码的图像231的重建块,来进行运动估计。例如,一个视频序列可以包括当前图像和先前解码的图像231,或者,换句话说,当前图像和先前解码的图像231可以为组成视频序列的图像序列的一部分或形成该图像序列。
[0160]
例如,编码器20可以用于从多个其它图像中的同一个或不同图像的多个参考块中选择一个参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。该偏移也称为运动矢量(motion vector,mv)。
[0161]
运动补偿单元用于获取如接收帧间预测参数,并根据或使用帧间预测参数进行帧间预测,得到帧间预测块265。由运动补偿单元执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可以包括对子像素精度进行插值。进行插值滤波时,可以从已知像素的样本产生其它像素的样本,从而增加可用于对图像块进行译码的候选预测块的数量。接收到当前图像块的pu对应的运动矢量后,运动补偿单元可在其中一个参考图像列表中定位该运动矢量所指向的预测块。
[0162]
运动补偿单元还可以生成与块和视频条带相关的语法元素,以供视频解码器30在解码该视频条带的图像块时使用。此外,可选的,作为条带和相应语法元素的替代,可以生成或使用分块组和/或分块以及相应的语法元素。
[0163]
熵编码
[0164]
熵编码单元270用于将熵编码算法或方案(例如可变长度编码(variable length coding,vlc)方案、上下文自适应vlc(context adaptive vlc scheme,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进行后续传输或检索。
[0165]
视频编码器20的其它结构变化可以用于编码视频流。例如,基于非变换的编码器20能够在没有变换处理单元206的情况下直接量化某些块或帧的残差信号。在另一种实现方式中,编码器20可以具有组合成单个单元的量化单元208和反量化单元210。
[0166]
解码器和解码方法
[0167]
图3示出了用于实现本技术技术的示例性视频解码器30。视频解码器30用于接收例如由编码器20编码的经编码的图像数据21(例如,经编码的码流21),得到经解码的图像331。经编码的图像数据或经编码的码流包括用于解码所述经编码的图像数据的信息,例如,表示经编码的视频条带(和/或分块组或分块)的图像块的数据以及相关联的语法元素。
[0168]
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(如求和器314)、环路滤波器320、解码图像缓冲区(decoded picture buffer,dbp)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或可以包括运动补偿单元。在一些示例中,视频解码器30可执行大体上与图2所示视频编码器100所执行的编码过程相反的解码过程。2.
[0169]
如编码器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的相应单元和功能。
[0170]
熵解码
[0171]
熵解码单元304用于解析码流21(或一般为经编码的图像数据21)并对经编码的图像数据21执行熵解码等,得到量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任一个或全部。熵解码单元304可以用于进行对应于编码器20的熵编码单元270所描述的编码方案的解码算法或方案。熵解码单元304还可用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,并向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。此外,可选的,作为条带和相应语法元素的替代,可以接收或使用分块组和/或分块以及相应的语法元素。
[0172]
反量化
[0173]
反量化单元310可用于从经编码的图像数据21(例如,通过熵解码单元304等解析和/或解码)接收量化参数(quantization parameter,qp)(或通常为与反量化相关的信息)和量化系数,并基于所述量化参数对经解码的量化系数309进行反量化,以获得解量化系数311,所述解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带中的每一视频块计算的量化参数来确定量化程度,同样也确定需要执行的反量
化的程度。
[0174]
逆变换
[0175]
逆变换处理单元312可以用于接收解量化系数311(也称为变换系数311),并对解量化系数311进行变换,得到样本域中的重建残差块213。重建残差块213也可以称为变换块313。所述变换可以为逆变换,例如逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码的图像数据21(例如通过熵解码单元304解析和/或解码)接收变换参数或相应信息,以确定将对解量化系数311执行的变换。
[0176]
重建
[0177]
重建单元314(例如加法器或求和器314)可以用于通过如下方式将重建残差块313添加到预测块365,例如,将重建残差块313的样本值和预测块365的样本值相加,以得到样本域中的重建块315。
[0178]
滤波
[0179]
环路滤波器单元320(在译码环路中或在译码环路之后)用于对重建块315进行滤波,得到滤波块321,从而平滑像素的突变或以其它方式提高视频质量等。环路滤波器单元320可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample

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

32769,则使用公式(1)和(2)后,所得到的值为32767。在计算机系统中,十进制数以2补码的形式存储。

32769的2的补码为1,0111,1111,1111,1111(17位),然后丢弃msb,因此所得到的2的补码为0111,1111,1111,1111(十进制数为32767),与公式(1)和(2)的输出结果相同。
[0199]
ux=(mvpx+mvdx+2
bitdepth
)%2
bitdepth
ꢀꢀ
(5)
[0200]
mvx=(ux>=2
bitdepth
‑1)?(ux
‑2bitdepth
):ux
ꢀꢀ
(6)
[0201]
uy=(mvpy+mvdy+2
bitdepth
)%2
bitdepth
ꢀꢀ
(7)
[0202]
mvy=(uy>=2
bitdepth
‑1)?(uy
‑2bitdepth
):uy
ꢀꢀ
(8)
[0203]
这些运算可以在对mvp和mvd求和的过程中执行,如公式(5)至(8)所示。
[0204]
方法二:对值进行修正来去除溢出的msb
[0205]
vx=clip3(
‑2bitdepth
‑1,2
bitdepth
‑1‑
1,vx)
[0206]
vy=clip3(
‑2bitdepth
‑1,2
bitdepth
‑1‑
1,vy)
[0207]
其中,vx为一个图像块或子块的运动矢量中的水平分量,vy为一个图像块或子块的运动矢量中的垂直分量;x、y和z分别对应于mv修正过程的3个输入值,函数clip3的定义如下:
[0208][0209]
图4是为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器(例如图1a中的视频解码器30)或编码器(例如图1a中的视频编码器20)。
[0210]
视频译码设备400包括:入端口410(或输入端口410)和接收单元(receiver unit,rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,cpu)430,用于处理数据;发送单元(transmitter unit,tx)440和出端口450(或输出端口450),用于发送数据;存储器460,用于存储数据。视频译码设备400还可以包括耦合到入端口410、接收单元420、发送单元440和出端口450的光电(optical

to

electrical,oe)组件和电光(electrical

to

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

only memory,rom)、随机存取存储器(random access memory,ram)、三态内容寻址存储器(ternary content

addressable memory,tcam)和/或静态随机存取存储器(static random

access memory,sram)。
[0213]
图5为示例性实施例提供的装置500的简化框图,其中,装置500可用作图1中的源设备12和目的地设备14中的任一者或两者。
[0214]
装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将开发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用多个处理器实现时可以提高速度和效率。
[0215]
在一种实现方式中,装置500中的存储器504可以是只读存储器(read

only memory,rom)设备或随机存取存储器(random access memory,ram)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,应用程序510包括至少一个程序,所述至少一个程序使得处理器502执行本文中所描述的方法。例如,应用程序510可以包括应用1至n,其包括执行本文所述方法的视频编码应用。
[0216]
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与触敏元件相结合的触敏显示器,该触敏显示器能够用于感测触摸输入。显示器518可以通过总线512与处理器502耦合。
[0217]
虽然装置500的总线512在图中示也为单个总线,但是总线512可以有多个。此外,辅助存储器514可以直接与装置500中的其它组件耦合或可以通过网络访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置500可以具有各种配置。
[0218]
在日内瓦举行的第14次未来视频编码联合探索组(joint exploration team on future video coding,jvet)会议上,jvet

n0217提案如下:采用仿射线性加权帧内预测(affine linear weighted intra prediction,alwip)。
[0219]
在alwip中增加了三个新的帧内预测模式,分别是:
[0220]
·
针对4
×
4块的35种模式;
[0221]
·
针对8
×
4、4
×
8和8
×
8块的19种模式;
[0222]
·
针对宽度和高度均小于或等于64个样本的其它情况的11种模式。
[0223]
相应地,alwip中定义了块尺寸类型(sizeid)的变量如下:
[0224]
·
如果块尺寸为4
×
4,则块尺寸类型sizeid为0。
[0225]
·
否则,如果块尺寸为8
×
4、4
×
8或8
×
8,则块尺寸类型sizeid为1。
[0226]
·
否则,如果块尺寸不是上述情况之一,且块的宽度和高度都小于64,则块尺寸类型sizeid为2。
[0227]
这些模式通过矩阵矢量乘法和加上偏移,从当前块左侧和上方的一行参考样本中生成亮度帧内预测信号。因此,仿射线性加权帧内预测也称为基于矩阵的帧内预测(matrix

based intra prediction,mip)。在下文中,术语mip和alwip可以互换,都描述了
jvet

n0217的工具。
[0228]
为了预测宽度为w和高度为h的矩形块的样本,仿射线性加权帧内预测(affine linear weighted intra prediction,alwip)将块左侧的一行高度为h、重建相邻边界样本和块上方的一行宽度为w、重建相邻边界样本作为输入。如果重建的样本不可用,则像传统帧内预测那样生成这些样本。
[0229]
预测信号的生成主要分为三个步骤:
[0230]
1.通过取平均值从边界样本中提取4个样本(w=h=4的情况下),其它情况下提取8个样本。
[0231]
2.进行矩阵矢量乘法,然后加上偏移,以平均样本作为输入。得到原始块中的子采样样本集的简化预测信号。
[0232]
3.剩余位置处的预测信号由子采样集的预测信号通过线性插值生成,线性插值是在每个方向上的通过单个步骤实现的线性插值。
[0233]
图6至9提供了不同形状块的取平均值、矩阵矢量乘法和线性插值的整个过程。请注意,剩余的形状按照所描述的情况之一处理。
[0234]
图6示出了4
×
4块的过程。给定一个4
×
4块,alwip沿边界的每个轴取两个平均值。对所得到的四个输入样本进行矩阵矢量乘法。从集合s0中选择矩阵。加上偏移,生成16个最终预测样本。生成的预测信号不需要进行线性插值。因此,每个样本共进行(4
·
16)/(4
·
4)=4次乘法。
[0235]
图7示出了8
×
8块的过程。对于一个8
×
8块,alwip沿边界的每个轴取四个平均值。对所得到的八个输入样本进行矩阵矢量乘法。从集合s1中选择矩阵。在预测块的奇数位置产生16个样本。因此,每个样本共进行(8
·
16)/(8
·
8)=2次乘法。加上偏移,这些样本通过减小的顶部边界进行垂直插值。然后通过原始左边界进行水平插值。因此,每个样本共需要2次乘法来计算alwip预测。
[0236]
图8示出了8
×
4块的过程。对于一个8
×
4块,alwip沿边界的水平轴取四个平均值,在左边界取四个原始边界值。对所得到的八个输入样本进行矩阵矢量乘法。从集合s1中选择矩阵。在预测块的奇数水平位置和每个垂直位置产生16个样本。因此,每个样本共进行(8
·
16)/(8
·
4)=4次乘法。加上偏移,这些样本通过原始左边界进行水平插值。因此,每个样本共需要4次乘法来计算alwip预测。
[0237]
转置的情况进行相应地处理。
[0238]
图9示出了16
×
16块的过程。对于一个16
×
16块,alwip沿边界的每个轴取四个平均值。对所得到的八个输入样本进行矩阵矢量乘法。从集合s2中选择矩阵。在预测块的奇数位置产生64个样本。因此,每个样本共进行(8
·
64)/(16
·
16)=2次乘法。加上偏移,这些样本通过顶部边界的八个平均值进行垂直插值。然后通过原始左边界进行水平插值。因此,每个样本需要2次乘法来计算alwip预测。
[0239]
对于较大的形状,过程基本上是相同的,而且容易检查每个样本的乘法次数是否少于4次。
[0240]
对于w>8的w
×
8块,因为指定奇数水平位置和每个垂直位置的样本,仅需要进行水平插值。在这种情况下,每个样本进行(8
·
64)/(w
·
8)=64/w次乘法以计算简化预测。对于w>16,进行线性插值的每个样本需要的额外乘法次数少于2。因此,每个样本的乘法总次数
小于或等于4。
[0241]
最后,对于w>8的w
×
4块,使用a
k
矩阵,沿着下采样块的水平轴忽略对应于奇数项的每一行。因此,输出尺寸为32,并且仅需要进行水平插值。对于简化预测的计算,每个样本进行(8
·
32)/(w
·
4)=64/w次乘法。对于w=16,不需要额外的乘法,而对于w>16,进行线性插值的每个样本需要少于2次乘法。因此,乘法的总次数小于或等于4。
[0242]
转置的情况进行相应地处理。
[0243]
在jvet

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

mpm列表;
[0245]
2.当前块使用mip帧内模式时,使用3

mpm列表。
[0246]
上述两个mpm列表都是根据相邻块帧内预测模式构建的,因此可能出现以下情况:
[0247]
1.所述当前块使用普通帧内预测,而其一个或多个相邻块使用mip帧内预测,或者
[0248]
2.所述当前块使用mip帧内预测,而其一个或多个相邻块使用普通帧内预测。
[0249]
在这种情况下,相邻帧内预测模式是间接地通过查找表推导的。
[0250]
在一个示例中,所述当前块使用普通帧内预测,而如图13所示其上方a块使用mip帧内预测时,
[0251]
使用以下查找表1。根据所述上方块的块尺寸类型和所述上方块的mip帧内预测模式,推导出普通帧内预测模式。类似地,如果如图13所示的左侧l块使用mip帧内预测,根据所述左侧块的块尺寸类型和所述左侧块的mip帧内预测模式,推导出普通帧内预测模式。
[0252]
表1仿射线性加权帧内预测与帧内预测模式之间映射的说明
[0253]
[0254][0255]
在一个示例中,所述当前块使用mip帧内预测,而如图14所示其上方a块使用普通帧内模式预测时,使用以下查找表2。根据所述上方块的块尺寸类型和所述上方块的普通帧内模式预测,推导出mip帧内预测模式。类似地,如果如图14所示的左侧l块使用普通帧内模式预测,根据所述左侧块的块尺寸类型和所述左侧块的普通帧内模式预测,推导出mip帧内预测模式。
[0256]
表2帧内预测和仿射线性加权帧内预测模式之间映射的说明
[0257]
[0258][0259]
在jem中,在正向主变换和(编码器侧)量化之间、以及解量化和(解码器侧)反向主变换之间使用二次变换。如图10所示,4
×
4(或8
×
8)二次变换取决于块尺寸。例如,对于每个8
×
8块,4
×
4二次变换用于小块(即,最小(宽度、高度)<8),8
×
8二次变换用于大块(即,最小(宽度、高度)>4)。
[0260]
下面以输入为例描述不可分离变换的使用。要使用不可分离变换,4
×
4输入块x
[0261][0262]
首先表示为矢量
[0263][0264][0265]
根据计算不可分离变换,其中,表示变换系数矢量,t为16
×
16变换矩
阵。然后,按照所述块的扫描顺序(水平、垂直或对角线)将16
×
1系数矢量重新组织为4
×
4块。索引较小的系数与扫描索引较小的系数放在4
×
4系数块中。共有35个变换集,每个变换集使用3个不可分离变换矩阵(核)。从帧内预测模式到变换集的映射是预定义的。对于每个变换集,所选择的不可分离二次变换候选通过显式指示的二次变换索引进一步表示。在变换系数之后,每个帧内cu在码流中指示一次索引。
[0266]
在vvc 5.0中,使用简化二次变换(reduced secondary transform,rst)和提案jvet

n0193,作为一种新的译码工具,具有以下特征。
[0267]
简化变换(reduced transform,rt)的主要思想是将n维矢量映射到不同空间中的r维矢量,其中,r/n(r<n)为简化因子。
[0268]
rt矩阵为r
×
n矩阵,如下:
[0269][0270]
其中,变换的r行是n维空间的r个基。rt的逆变换矩阵是其正变换的转置。在图11中示出正rt和逆rt。
[0271]
使用rst8
×
8,简化因子为4(1/4尺寸)。因此,使用16
×
64直接矩阵,而不是64
×
64,即传统的8
×
8不可分离变换矩阵尺寸。换句话说,在解码器侧使用64
×
16逆rst矩阵,生成左上角8
×
8区域的核(主)变换系数。正rst8
×
8使用16
×
64(或者8
×
8块使用8
×
64)矩阵,使得仅在给定的8
×
8区域内的左上角4
×
4区域产生非零系数。换句话说,如果使用rst,除了左上角4
×
4区域之外的8
×
8区域仅具有零系数。对于rst4
×
4,使用16
×
16(4
×
4块使用8
×
16)直接矩阵乘法。
[0272]
当满足以下两个条件时,使用逆rst:
[0273]
·
块尺寸大于或等于给定阈值(w>=4&&h>=4);
[0274]
·
变换跳过(skip)模式标志等于0。
[0275]
如果变换系数块的宽度(w)和高度(h)均大于4,则变换系数块的左上角8
×
8区域使用rst8
×
8。否则,变换系数块的左上角最小(8,w)
×
最小(8,h)区域使用rst4
×
4。
[0276]
如果rst索引等于0,表示不使用rst。否则,使用rst,根据rst索引选择其变换核。
[0277]
此外,对帧内条带和帧间条带中的帧内cu、以及亮度和色度使用rst。如果启用了双树,则分别指示亮度和色度的rst索引。对于帧间条带(禁用双树),指示单个rst索引,均用于亮度和色度。
[0278]
vvc 4.0将帧内子划分(intra sub

partition,isp)作为一种帧内预测模式。当选择isp模式时,禁用rst且不指示rst索引,因为即使每个划分块使用rst,性能的改善也微乎其微。此外,针对isp预测的残差禁用rst可以降低编码复杂度。
[0279]
从四个变换集中选择rst矩阵,每个变换集包括两个变换。根据帧内预测模式确定使用哪个变换集如下:
[0280]
如果表示三种分量间线性模型(cross

component linear model,cclm,在该模式下根据亮度分量预测色度分量)模式中的一种,则选择变换集0。
[0281]
否则,根据以下表格选择变换集:
[0282]
表3变换集选择表
[0283]
intrapredmodetr.set indexintrapredmode<010<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=55256<=intrapredmode1
[0284]
访问表3的索引intrapredmode的范围是[

14,83]。所述索引为用于广角帧内预测的变换模式索引。
[0285]
变换集的一个示例如下所示:
[0286]

变换集索引等于0,16
×
16变换核如下所示:
[0287]
sectransmatrix[m][n]=
[0288]
{
[0289]
{108
ꢀ‑
40 25
ꢀ‑
32 8
ꢀ‑
25 8 2
ꢀ‑
16
ꢀ‑9ꢀ‑
13 8
ꢀ‑
2 4 2 0},
[0290]
{

44
ꢀ‑
97
ꢀ‑
31
ꢀ‑
39
ꢀ‑
9 5 9 34
ꢀ‑
27
ꢀ‑
10 1
ꢀ‑
7 13 9
ꢀ‑2ꢀ‑
2},
[0291]
{

15 56
ꢀ‑1ꢀ‑
92 33 16 16
ꢀ‑5ꢀ‑
39
ꢀ‑
34 4
ꢀ‑5ꢀ‑
6 11 8 0},
[0292]
{1 12 7 51
ꢀ‑8ꢀ‑
3 1 1
ꢀ‑
109 4
ꢀ‑9ꢀ‑
15
ꢀ‑
4 31
ꢀ‑
16
ꢀ‑
10},
[0293]
{

44
ꢀ‑
11 100
ꢀ‑6ꢀ‑
16
ꢀ‑
38 37
ꢀ‑
7 6
ꢀ‑9ꢀ‑
30 7
ꢀ‑
2 4 8
ꢀ‑
1},
[0294]
{19 29
ꢀ‑
16
ꢀ‑
16
ꢀ‑
102 14 36 24 10
ꢀ‑5ꢀ‑
17
ꢀ‑
30 28 9 5

7},
[0295]
{7
ꢀ‑
12
ꢀ‑
29 36 36 11 94
ꢀ‑
25 16
ꢀ‑
29
ꢀ‑3ꢀ‑
28
ꢀ‑
13 16 28
ꢀ‑
3},
[0296]
{
‑1ꢀ‑
3 1

8 23
ꢀ‑3ꢀ‑
38
ꢀ‑
3 24 5
ꢀ‑
64
ꢀ‑
87
ꢀ‑
14 19
ꢀ‑
17
ꢀ‑
35},
[0297]
{

11 18
ꢀ‑
54 3
ꢀ‑4ꢀ‑
97
ꢀ‑
7 8 3
ꢀ‑
33
ꢀ‑
35 31
ꢀ‑
3 12 6
ꢀ‑
1},
[0298]
{6 18 21 22 38 7 3 99 19
ꢀ‑
26 11 4 37 33
ꢀ‑7ꢀ‑
7},
[0299]
{2
ꢀ‑
15 14 18
ꢀ‑
27 26
ꢀ‑
47
ꢀ‑
28 10
ꢀ‑
96 17 4
ꢀ‑
15 32 18
ꢀ‑
2},
[0300]
{
‑1ꢀ‑3ꢀ‑4ꢀ‑
15
ꢀ‑
5 1 11
ꢀ‑
29 24 33 19 33
ꢀ‑
3 94
ꢀ‑
45
ꢀ‑
32},
[0301]
{0
ꢀ‑1ꢀ‑
7 4 5 55
ꢀ‑
6 6
ꢀ‑
4 14
ꢀ‑
86 61
ꢀ‑
2 12 40
ꢀ‑
6},
[0302]
{
‑1ꢀ‑
3 2 1 16
ꢀ‑
10
ꢀ‑
13
ꢀ‑
43
ꢀ‑
7 4 6
ꢀ‑
5 107 0 36
ꢀ‑
33},
[0303]
{

1 2 4
ꢀ‑5ꢀ‑8ꢀ‑
19
ꢀ‑
17 21
ꢀ‑
2 39 36
ꢀ‑
17
ꢀ‑
36 34 97
ꢀ‑
16},
[0304]
{0 1 0 2
ꢀ‑
6 3 10 11
ꢀ‑3ꢀ‑
14 14 22
ꢀ‑
24
ꢀ‑
45
ꢀ‑8ꢀ‑
112},
[0305]
}
[0306]

变换集索引等于1,16
×
16变换核如下所示:
[0307]
sectransmatrix[m][n]=
[0308]
{
[0309]
{

111
ꢀ‑
47
ꢀ‑
35 13
ꢀ‑
11 0
ꢀ‑
17 4 5
ꢀ‑4ꢀ‑
2 5
ꢀ‑
5 0
ꢀ‑1ꢀ‑
1},
[0310]
{39
ꢀ‑
27
ꢀ‑
23 93
ꢀ‑
27
ꢀ‑
35
ꢀ‑
46
ꢀ‑
10
ꢀ‑
20
ꢀ‑1ꢀ‑
10 13
ꢀ‑
7 4 2 0},
[0311]
{4 15 4
ꢀ‑
27 1 32
ꢀ‑
92
ꢀ‑
23 32 38 35 18
ꢀ‑
34
ꢀ‑
2 7
ꢀ‑
12},
[0312]
{3
ꢀ‑
1 4
ꢀ‑
4 2

2 14 4
ꢀ‑5ꢀ‑
18
ꢀ‑
19 34
ꢀ‑
83
ꢀ‑
60
ꢀ‑
57 23},
[0313]
{44
ꢀ‑
92
ꢀ‑
17
ꢀ‑
48
ꢀ‑
47 26 7 16 8
ꢀ‑
7 5 11 2 5 3 1},
[0314]
{11 43
ꢀ‑
72 13
ꢀ‑
4 60
ꢀ‑
10 58
ꢀ‑3ꢀ‑
42 8
ꢀ‑4ꢀ‑
1 9
ꢀ‑7ꢀ‑
4},
[0315]
{

12 20 32
ꢀ‑
34
ꢀ‑
36
ꢀ‑3ꢀ‑
39
ꢀ‑
17
ꢀ‑
46
ꢀ‑
63
ꢀ‑
44 18
ꢀ‑
4 42 9 17},
[0316]
{
‑1ꢀ‑
2 6 4 10
ꢀ‑
17 29 26
ꢀ‑7ꢀ‑
6 14 18
ꢀ‑
73 34 68
ꢀ‑
53},
[0317]
{7 20
ꢀ‑
59
ꢀ‑
52
ꢀ‑2ꢀ‑
82
ꢀ‑
17 30

4 33
ꢀ‑
25 5 4 5
ꢀ‑9ꢀ‑
3},
[0318]
{

16 39 18 11
ꢀ‑
85 1 27 21 2 34 25 58 20
ꢀ‑
14 6 4},
[0319]
{
‑5ꢀ‑
16 50 1 14
ꢀ‑
30
ꢀ‑
28 67
ꢀ‑
15
ꢀ‑
23 58
ꢀ‑
3 15 9
ꢀ‑
49
ꢀ‑
21},
[0320]
{2
ꢀ‑5ꢀ‑
6 10 29 0 17 2 24 15 17 42
ꢀ‑
12 80
ꢀ‑
20 72},
[0321]
{3 10 0 3
ꢀ‑
20
ꢀ‑
37 1
ꢀ‑
13 100
ꢀ‑
65 7
ꢀ‑
2 4
ꢀ‑
5 6
ꢀ‑
4},
[0322]
{
‑1ꢀ‑
5 40 16
ꢀ‑
2 21
ꢀ‑
15 59 44 33
ꢀ‑
84
ꢀ‑
10
ꢀ‑
3 13
ꢀ‑4ꢀ‑
8},
[0323]
{4
ꢀ‑
13 0
ꢀ‑
3 57 3
ꢀ‑
13 13 0
ꢀ‑
20
ꢀ‑
16 85 44
ꢀ‑
38 36
ꢀ‑
3},
[0324]
{2 2
ꢀ‑
13 1 4 12 17
ꢀ‑
40 5 2
ꢀ‑
18 38 12 37
ꢀ‑
64
ꢀ‑
83},
[0325]
}
[0326]

变换集索引等于2,16
×
16变换核如下所示:
[0327]
sectransmatrix[m][n]=
[0328]
{
[0329]
{

112 29
ꢀ‑
36 28
ꢀ‑
12 18 5
ꢀ‑
13
ꢀ‑
4 15
ꢀ‑8ꢀ‑2ꢀ‑
3 2 4 0},
[0330]
{47
ꢀ‑7ꢀ‑
87
ꢀ‑5ꢀ‑
24 53
ꢀ‑1ꢀ‑
32
ꢀ‑
13 33
ꢀ‑
24
ꢀ‑6ꢀ‑
7 6 8 1},
[0331]
{

2 1 69 2 15 69 2 18
ꢀ‑
10 63
ꢀ‑
27
ꢀ‑
24
ꢀ‑
16 10 21 4},
[0332]
{2
ꢀ‑1ꢀ‑
10
ꢀ‑2ꢀ‑3ꢀ‑
74 0
ꢀ‑
2 19 89 15 13
ꢀ‑
21
ꢀ‑
3 40 11},
[0333]
{

34
ꢀ‑
108
ꢀ‑
17
ꢀ‑
29 26 14
ꢀ‑
26 15 18 8 12
ꢀ‑
1 10
ꢀ‑5ꢀ‑4ꢀ‑
2},
[0334]
{13 40
ꢀ‑
33 13 80 24 6 34 46 15 41
ꢀ‑
8 24
ꢀ‑
16
ꢀ‑
11
ꢀ‑
4},
[0335]
{2 2 26
ꢀ‑2ꢀ‑
61 28 0
ꢀ‑
27 60 25 26 37 46
ꢀ‑
31
ꢀ‑
28
ꢀ‑
13},
[0336]
{0 0
ꢀ‑
2 0 9
ꢀ‑
30 1 7
ꢀ‑
48 40
ꢀ‑
29
ꢀ‑
22 75 12
ꢀ‑
57
ꢀ‑
34},
[0337]
{15
ꢀ‑
45 7 103 15
ꢀ‑
6 45
ꢀ‑
25 16
ꢀ‑4ꢀ‑
17 3 8 7 5 3},
[0338]
{

7 13 14

36 54
ꢀ‑7ꢀ‑9ꢀ‑
80 33
ꢀ‑8ꢀ‑
50 18 20 24 14 7},
[0339]
{1 4
ꢀ‑
11
ꢀ‑4ꢀ‑
36
ꢀ‑
11
ꢀ‑
1 47 60
ꢀ‑
15
ꢀ‑
39
ꢀ‑
51 38 41 31 20},
[0340]
{0
ꢀ‑
1 2 1 2 12 0
ꢀ‑1ꢀ‑
48
ꢀ‑
8 27 22 72
ꢀ‑
16 70 47},
[0341]
{8 8 6 48 0
ꢀ‑5ꢀ‑
113
ꢀ‑
16 1
ꢀ‑
2 0
ꢀ‑
23 1
ꢀ‑
16 7
ꢀ‑
6},
[0342]
{
‑3ꢀ‑
5 8
ꢀ‑
16
ꢀ‑4ꢀ‑
7 28
ꢀ‑
50 0
ꢀ‑
6 35
ꢀ‑
95 2
ꢀ‑
41 18
ꢀ‑
19},
[0343]
{

1 1
ꢀ‑7ꢀ‑
4 6
ꢀ‑
6 8 28 5
ꢀ‑9ꢀ‑
67 17 1
ꢀ‑
89 32
ꢀ‑
42},
[0344]
{0 0 0 1
ꢀ‑
2 8
ꢀ‑
1 2
ꢀ‑2ꢀ‑
7 26 17 7 49 52
ꢀ‑
101},
[0345]
}
[0346]

变换集索引等于3,16
×
16变换核如下所示:
[0347]
sectransmatrix[m][n]=
[0348]
{
[0349]
{

114
ꢀ‑
19 36
ꢀ‑
27
ꢀ‑
11 15 13 16
ꢀ‑8ꢀ‑
6 5
ꢀ‑
5 1
ꢀ‑3ꢀ‑2ꢀ‑
5},
[0350]
{37
ꢀ‑
41
ꢀ‑
25
ꢀ‑
80
ꢀ‑
21 47 25 11
ꢀ‑
34
ꢀ‑
30 9
ꢀ‑
23 3
ꢀ‑2ꢀ‑7ꢀ‑
12},
[0351]
{3 19 18 44 37 10 79
ꢀ‑
26
ꢀ‑
26
ꢀ‑
42
ꢀ‑6ꢀ‑
23 23
ꢀ‑
21
ꢀ‑
33
ꢀ‑
18},
[0352]
{2
ꢀ‑2ꢀ‑2ꢀ‑3ꢀ‑
10
ꢀ‑6ꢀ‑
39 13 7
ꢀ‑
12 42 36 73
ꢀ‑
52
ꢀ‑
56
ꢀ‑
12},
[0353]
{

22 85
ꢀ‑
42
ꢀ‑
58 44
ꢀ‑
16
ꢀ‑
13
ꢀ‑
13
ꢀ‑
26
ꢀ‑3ꢀ‑
15 3 8 1
ꢀ‑
4 8},
[0354]
{

23
ꢀ‑
60
ꢀ‑
53 1
ꢀ‑4ꢀ‑
44 10
ꢀ‑
74
ꢀ‑
19 5
ꢀ‑
18 22 5
ꢀ‑
10
ꢀ‑
6 22},
[0355]
{14
ꢀ‑
11 35
ꢀ‑
29 47 42 31
ꢀ‑
20 29 57
ꢀ‑
9 36 34
ꢀ‑
17 21 38},
[0356]
{0 7 5 19
ꢀ‑
12 10
ꢀ‑4ꢀ‑1ꢀ‑
37
ꢀ‑
52 26 40 46 44 63 36},
[0357]
{21 17 46
ꢀ‑
41
ꢀ‑
37
ꢀ‑
80 49 5 1
ꢀ‑
2 15 27
ꢀ‑
12
ꢀ‑
19 15
ꢀ‑
5},
[0358]
{

17 31
ꢀ‑
60 18
ꢀ‑
41 25 45
ꢀ‑
6 22 37 58
ꢀ‑
4 2
ꢀ‑
20 31
ꢀ‑
15},
[0359]
{
‑5ꢀ‑
34
ꢀ‑
25
ꢀ‑
12 58
ꢀ‑
40 12 29 46
ꢀ‑
12 14
ꢀ‑
16 35 30 32
ꢀ‑
51},
[0360]
{2 2 19
ꢀ‑
7 18 21
ꢀ‑8ꢀ‑
47
ꢀ‑
9 6 43 56
ꢀ‑
38 45
ꢀ‑
22
ꢀ‑
63},
[0361]
{5
ꢀ‑
11 8 12 10
ꢀ‑
23 3 26
ꢀ‑
81 74 23
ꢀ‑
25 26 27
ꢀ‑
10
ꢀ‑
5},
[0362]
{2 19 21
ꢀ‑
17
ꢀ‑
46
ꢀ‑2ꢀ‑1ꢀ‑
49 37 10
ꢀ‑
10
ꢀ‑
46 52 61
ꢀ‑
26 0},
[0363]
{

4 2
ꢀ‑
33 7
ꢀ‑
16 3 43 54 14 6
ꢀ‑
37 56 2 49
ꢀ‑
52 15},
[0364]
{
‑1ꢀ‑8ꢀ‑1ꢀ‑
6 31
ꢀ‑
14 7 2 20
ꢀ‑
15 75
ꢀ‑
24
ꢀ‑
31 21
ꢀ‑
38 73},
[0365]
}
[0366]

变换集索引等于0,16
×
48变换核如下所示:
[0367]
sectransmatrix[m][n]=
[0368]
{
[0369]
{

117
ꢀ‑
29
ꢀ‑
10
ꢀ‑
15 32
ꢀ‑
10 1 0
ꢀ‑
13 6
ꢀ‑
12 0
ꢀ‑
1 6 6
ꢀ‑
1},
[0370]
{28
ꢀ‑
91 62 15 39 1
ꢀ‑
33 6
ꢀ‑
13 1
ꢀ‑2ꢀ‑
3 9 2 9 7},
[0371]
{18 47
ꢀ‑
11
ꢀ‑
10 92 50
ꢀ‑
11
ꢀ‑6ꢀ‑
37
ꢀ‑
14
ꢀ‑
26 0 13
ꢀ‑3ꢀ‑2ꢀ‑
2},
[0372]
{2 1
ꢀ‑8ꢀ‑2ꢀ‑
44
ꢀ‑
15
ꢀ‑
14 21
ꢀ‑
101
ꢀ‑
36
ꢀ‑
12
ꢀ‑
4 5 2 35 9},
[0373]
{4 9
ꢀ‑
2 1 4 2 7
ꢀ‑
4 29 9
ꢀ‑9ꢀ‑
15 14 10 110
ꢀ‑
11},
[0374]
{1 0
ꢀ‑
2 0
ꢀ‑
10
ꢀ‑3ꢀ‑
2 2
ꢀ‑
11
ꢀ‑
3 2 6
ꢀ‑2ꢀ‑1ꢀ‑
22 5},
[0375]
{2 3
ꢀ‑
1 1 1 1 2 0 8 2
ꢀ‑1ꢀ‑
3 2 2 11
ꢀ‑
1},
[0376]
{1 0
ꢀ‑
1 0
ꢀ‑4ꢀ‑
1 0 0
ꢀ‑
3 0 1 1
ꢀ‑
1 0
ꢀ‑
4 1},
[0377]
{32
ꢀ‑
54
ꢀ‑
95 10 26
ꢀ‑
28 29
ꢀ‑
20
ꢀ‑
12 10
ꢀ‑3ꢀ‑7ꢀ‑
8 8
ꢀ‑2ꢀ‑
7},
[0378]
{

18 26 3 112 12
ꢀ‑
15
ꢀ‑
12
ꢀ‑
24
ꢀ‑
15 9 30
ꢀ‑
15 3 3 0 2},
[0379]
{
‑2ꢀ‑
8 32
ꢀ‑
20
ꢀ‑
15 14 37
ꢀ‑
104
ꢀ‑
20
ꢀ‑
18 4
ꢀ‑
28
ꢀ‑4ꢀ‑1ꢀ‑3ꢀ‑
22},
[0380]
{0 3 0
ꢀ‑
17 13 6
ꢀ‑
7 30 2
ꢀ‑
1 34
ꢀ‑
86
ꢀ‑
62
ꢀ‑
20 1 4},
[0381]
{

1 0 4
ꢀ‑4ꢀ‑
5 1
ꢀ‑
4 5
ꢀ‑
11
ꢀ‑3ꢀ‑
4 19 4 0
ꢀ‑
18
ꢀ‑
13},
[0382]
{0 1 0
ꢀ‑
4 2 1 0 5 5 1 0
ꢀ‑
5 1 1 12 0},
[0383]
{0 0 2
ꢀ‑1ꢀ‑
2 1
ꢀ‑
1 1
ꢀ‑
2 0
ꢀ‑
1 4 1 0
ꢀ‑3ꢀ‑
1},
[0384]
{0 0 0
ꢀ‑
2 0 0 0 2 1 0 0
ꢀ‑
1 0 0 2 0},
[0385]
{14 33 32
ꢀ‑
20 29
ꢀ‑
99 6
ꢀ‑7ꢀ‑
12 38
ꢀ‑
30
ꢀ‑5ꢀ‑
12
ꢀ‑4ꢀ‑
5 0},
[0386]
{

1 5
ꢀ‑
30
ꢀ‑
26
ꢀ‑
16
ꢀ‑4ꢀ‑
99
ꢀ‑
46 10 26 3
ꢀ‑
17 23 4
ꢀ‑
4 28},
[0387]
{
‑3ꢀ‑9ꢀ‑
4 31
ꢀ‑
22 9 3 10 26
ꢀ‑
13
ꢀ‑
92
ꢀ‑
41 16
ꢀ‑
16
ꢀ‑
22 0},
[0388]
{0

1 4 1 8 5 26

14 12

1 14 42

11 0 8 76},
[0389]
{
‑1‑2‑
1 0 0 5

1 7
‑6‑
5 19
‑6‑
17
‑2‑
25 4},
[0390]
{0 0 1 0 1 2 5 0 0

1 0 2 0 0 3

6},
[0391]
{0

1 0 0 0 2 0 1
‑1‑
1 3
‑1‑
1 1 0 0},
[0392]
{0 0 0 0 1 1 2 0 0 0 0 1 0 0 0

2},
[0393]
{2

3 6 2

20 44 14 9

32 102

11
‑1‑
11 34
‑3‑
13},
[0394]
{0 3 2

16 6

10 30 21

2 3 34

40 97 23

21 5},
[0395]
{0 0
‑5‑
1 4

11

27 7 11

14 21 37

3 6 2

76},
[0396]
{0 0 0 6

3 1
‑2‑
6 3
‑1‑
33 13
‑3‑7‑3‑
4},
[0397]
{0 0 0 0 1

2 1

2 3

5 1

4 0

4 9 33},
[0398]
{0 0 0 1 0 0
‑1‑1‑1‑1‑
2 2
‑6‑2‑2‑
1},
[0399]
{0 0 0 0 0

1 0 0 1

2 0

1 0

1 1 3},
[0400]
{0 0 0 0 0 0
‑1‑
1 0 0

1 1

2 0 0 0},
[0401]
{3 7 6 1 1
‑5‑
6 2 11

29
‑9‑
10

21 108

7 9},
[0402]
{0 2
‑3‑4‑
4 4 6 2

5 10

4 13
‑5‑
5 1 18},
[0403]
{
‑1‑
2 0 0
‑3‑
3 6 5

1 10 18

1 23

30 3

3},
[0404]
{0 0 0 0 2 0
‑3‑
2 6 0 3

4 0 6
‑5‑
35},
[0405]
{1

1 2 0

4 8 1 0

4 10 2 4 2

27 3

4},
[0406]
{0 1 0

3 1

1 3 3 2

4 0
‑4‑
2 10 0

1},
[0407]
{0 0

1 0 0
‑2‑
3 4 1

1 0 3

1 7

1 6},
[0408]
{0 0 0 1 0 0 0

1 0 1

2 4 6

2 0 1},
[0409]
{1 2 2 0 1
‑2‑
1 0 3
‑7‑1‑2‑
3 11 0 1},
[0410]
{0 1
‑1‑1‑
1 1 1 0

1 1

1 2
‑3‑
3 1 2},
[0411]
{0

1 0 0
‑2‑
1 1 1 1 2 3

1 1

1 0 0},
[0412]
{0 0 0 0 1 0 0 0 2 1 0

1 0 1
‑1‑
3},
[0413]
{1 0 1 0

2 4 0 0

1 2 0 1 0

4 1

1},
[0414]
{0 0 0

2 0 0 1 1 0

1 0

1 0 1 0 0},
[0415]
{0 0 0 0 0
‑1‑
1 2 0 0 0 1 0 0 0 2},
[0416]
{0 0 0 0 0 0 0

1 0 0

1 2 2 1 0 0},
[0417]
}
[0418]

变换集索引等于1,16
×
48变换核如下所示:
[0419]
sectransmatrix[m][n]=
[0420]
{
[0421]
{110
ꢀ‑
43
ꢀ‑
19
ꢀ‑
35 9
ꢀ‑
5 14 7
ꢀ‑
13
ꢀ‑
11
ꢀ‑4ꢀ‑
2 3
ꢀ‑
4 5
ꢀ‑
5},
[0422]
{

49
ꢀ‑
19 17
ꢀ‑
103 5
ꢀ‑
5 17 35
ꢀ‑
27
ꢀ‑
13
ꢀ‑
10 1 1
ꢀ‑8ꢀ‑1ꢀ‑
6},
[0423]
{

3 17
ꢀ‑
7 39
ꢀ‑6ꢀ‑
28 27 17
ꢀ‑
101
ꢀ‑3ꢀ‑
24 13 5
ꢀ‑
1 26
ꢀ‑
27},
[0424]
{
‑4ꢀ‑
1 3 1
ꢀ‑
1 9
ꢀ‑
12
ꢀ‑
4 24
ꢀ‑
10
ꢀ‑
11
ꢀ‑
17
ꢀ‑
15
ꢀ‑
50 102
ꢀ‑
22},
[0425]
{

1 3
ꢀ‑
2 7
ꢀ‑1ꢀ‑
3 1
ꢀ‑1ꢀ‑
8 3 3 3 1 6
ꢀ‑
13
ꢀ‑
12},
[0426]
{

1 0 1 0 0 2
ꢀ‑
3 0 6
ꢀ‑1ꢀ‑2ꢀ‑5ꢀ‑2ꢀ‑
4 12 0},
[0427]
{0 1
ꢀ‑
1 2
ꢀ‑1ꢀ‑
1 1 0
ꢀ‑
3 1 0 1 1 2
ꢀ‑4ꢀ‑
3},
[0428]
{

1 0 0 0 0 1
ꢀ‑
1 0 2 0
ꢀ‑1ꢀ‑2ꢀ‑1ꢀ‑
2 4 0},
[0429]
{

38
ꢀ‑
98
ꢀ‑
32 38 42
ꢀ‑
20 8 3 11
ꢀ‑
19
ꢀ‑
6 3 7
ꢀ‑1ꢀ‑4ꢀ‑
5},
[0430]
{

1 46
ꢀ‑
59
ꢀ‑
13 4
ꢀ‑
78 19 8 43
ꢀ‑
19
ꢀ‑
37 0 4 5
ꢀ‑
2 8},
[0431]
{10 14 29 25 21 22
ꢀ‑
13 54 6
ꢀ‑
37
ꢀ‑
45
ꢀ‑
55
ꢀ‑7ꢀ‑
22
ꢀ‑
40
ꢀ‑
20},
[0432]
{0
ꢀ‑
1 3
ꢀ‑6ꢀ‑
11 16 4
ꢀ‑
17 28 8
ꢀ‑
17 22 29 20
ꢀ‑7ꢀ‑
83},
[0433]
{2 2 4 1 1 1
ꢀ‑
2 1
ꢀ‑
6 4 8 6
ꢀ‑
1 6
ꢀ‑
23 0},
[0434]
{0 0 0
ꢀ‑1ꢀ‑
3 3 1
ꢀ‑
2 3 2
ꢀ‑
2 1 2 1 3 0},
[0435]
{1 1 2 0 1 0
ꢀ‑
1 1
ꢀ‑
1 0 2 1
ꢀ‑
1 0
ꢀ‑
5 0},
[0436]
{0 0 0 0
ꢀ‑
1 1 0
ꢀ‑
1 1 1
ꢀ‑
1 0 1 0 1 0},
[0437]
{

9 26
ꢀ‑
72
ꢀ‑
1 21 80 48 10
ꢀ‑3ꢀ‑
12 17 8 8
ꢀ‑
16
ꢀ‑
1 9},
[0438]
{13 26 43 7 70
ꢀ‑6ꢀ‑
1 14 14
ꢀ‑
30 14 74 3
ꢀ‑
15 5 7},
[0439]
{1
ꢀ‑
15 34 6
ꢀ‑
32 25 48
ꢀ‑
11 21 3
ꢀ‑
58 21 12 18 8 24},
[0440]
{
‑2ꢀ‑3ꢀ‑9ꢀ‑7ꢀ‑
21
ꢀ‑5ꢀ‑
15
ꢀ‑
34
ꢀ‑
12
ꢀ‑
9 14 40
ꢀ‑
14
ꢀ‑
29
ꢀ‑
23
ꢀ‑
20},
[0441]
{0
ꢀ‑
2 3 1 0
ꢀ‑4ꢀ‑
4 4
ꢀ‑
7 5 15
ꢀ‑
14
ꢀ‑9ꢀ‑
11 7 41},
[0442]
{0
ꢀ‑1ꢀ‑2ꢀ‑1ꢀ‑4ꢀ‑1ꢀ‑2ꢀ‑4ꢀ‑
2 0 0 0
ꢀ‑
1 2 2 3},
[0443]
{0
ꢀ‑
1 1 0
ꢀ‑1ꢀ‑1ꢀ‑
1 1
ꢀ‑
1 1 2
ꢀ‑2ꢀ‑1ꢀ‑
2 1 6},
[0444]
{0 0
ꢀ‑
1 0
ꢀ‑
1 0
ꢀ‑1ꢀ‑1ꢀ‑
1 0 0 0 0 1 1 1},
[0445]
{

4 11 13
ꢀ‑
13 34 6 1
ꢀ‑
80
ꢀ‑
23
ꢀ‑
56
ꢀ‑
10
ꢀ‑
36 4 40 10 15},
[0446]
{2
ꢀ‑
7 36 14
ꢀ‑
26
ꢀ‑
24 60
ꢀ‑
7 10
ꢀ‑
9 34
ꢀ‑
8 29
ꢀ‑
45
ꢀ‑
11 20},
[0447]
{
‑3ꢀ‑9ꢀ‑
18 2
ꢀ‑
57 7
ꢀ‑
28
ꢀ‑6ꢀ‑4ꢀ‑
47
ꢀ‑
7 11
ꢀ‑
15
ꢀ‑
19
ꢀ‑
13 12},
[0448]
{0 2
ꢀ‑
10
ꢀ‑
4 11
ꢀ‑9ꢀ‑
42 2
ꢀ‑
12 8 28
ꢀ‑
13 31
ꢀ‑
22
ꢀ‑
3 11},
[0449]
{0 0 0 2 4 0 5 15 3 21 4
ꢀ‑
23 10 31 12 17},
[0450]
{0 0
ꢀ‑2ꢀ‑
1 2 0
ꢀ‑
6 0 0 1
ꢀ‑
1 1 4 2
ꢀ‑3ꢀ‑
9},
[0451]
{0 0 0 0 0 0 1 3 1 4 1
ꢀ‑
3 1 4 2 1},
[0452]
{0 0
ꢀ‑
1 0 1 0
ꢀ‑
2 0 0 1 0 0 1 1 0
ꢀ‑
2},
[0453]
{

2 9 3
ꢀ‑2ꢀ‑4ꢀ‑
7 11
ꢀ‑
16 2
ꢀ‑
11 23
ꢀ‑
36 61
ꢀ‑
25
ꢀ‑9ꢀ‑
26},
[0454]
{2
ꢀ‑
3 0 11
ꢀ‑
32 3
ꢀ‑
11 46 9
ꢀ‑
30 34 6 22 41 23
ꢀ‑
1},
[0455]
{0
ꢀ‑1ꢀ‑
12
ꢀ‑
6 5 13
ꢀ‑
51 1
ꢀ‑
10 10
ꢀ‑
31 16 55 0 4 18},
[0456]
{1 2 3
ꢀ‑
2 24
ꢀ‑
4 11 3 0 59 4
ꢀ‑
14 14 12 9
ꢀ‑
1},
[0457]
{

1 3 6
ꢀ‑
2 1
ꢀ‑3ꢀ‑
2 2 1
ꢀ‑
2 10 2 13 9 14
ꢀ‑
12},
[0458]
{1
ꢀ‑
3 1 4
ꢀ‑
6 5
ꢀ‑
10 7
ꢀ‑
5 8
ꢀ‑
22 19 3 7 9 32},
[0459]
{0 0
ꢀ‑3ꢀ‑
3 12 1
ꢀ‑2ꢀ‑
24
ꢀ‑
4 41
ꢀ‑
30
ꢀ‑4ꢀ‑9ꢀ‑
42
ꢀ‑
14 3},
[0460]
{0 0 2 0 4
ꢀ‑
5 13 0 4 8 22
ꢀ‑
12
ꢀ‑
65 12
ꢀ‑4ꢀ‑
18},
[0461]
{

1 4 1 0
ꢀ‑3ꢀ‑
2 2 2 2 2 4
ꢀ‑
1 1
ꢀ‑
3 0

5},
[0462]
{1
ꢀ‑1ꢀ‑
1 3
ꢀ‑
2 3
ꢀ‑6ꢀ‑2ꢀ‑
2 5
ꢀ‑
15 0
ꢀ‑
11
ꢀ‑
14
ꢀ‑
12 10},
[0463]
{0 0
ꢀ‑2ꢀ‑
2 4 1
ꢀ‑4ꢀ‑
5 2 6 9
ꢀ‑7ꢀ‑
21 2
ꢀ‑7ꢀ‑
25},
[0464]
{0 0 0 0
ꢀ‑2ꢀ‑
2 4 8 2
ꢀ‑
7 20
ꢀ‑3ꢀ‑
7 28 6
ꢀ‑
5},
[0465]
{

1 2 3
ꢀ‑
1 0
ꢀ‑1ꢀ‑
2 1 0
ꢀ‑
1 2 0 0 5 3
ꢀ‑
2},
[0466]
{0
ꢀ‑
1 1 1
ꢀ‑
1 2
ꢀ‑3ꢀ‑1ꢀ‑
2 3
ꢀ‑
5 2 0 1 0 1},
[0467]
{0 0
ꢀ‑1ꢀ‑
1 0

1 2
ꢀ‑
2 1 5 9
ꢀ‑2ꢀ‑
1 6 6
ꢀ‑
8},
[0468]
{0 0 1 0 0
ꢀ‑
2 2 2 0
ꢀ‑
2 4
ꢀ‑
1 3 2 3 10},
[0469]
}
[0470]

变换集索引等于2,16
×
48变换核如下所示:
[0471]
sectransmatrix[m][n]=
[0472]
{
[0473]
{

121 0
ꢀ‑
20 32
ꢀ‑3ꢀ‑
4 7
ꢀ‑8ꢀ‑
15
ꢀ‑3ꢀ‑1ꢀ‑5ꢀ‑2ꢀ‑2ꢀ‑
2 4},
[0474]
{33
ꢀ‑
2 19 108 0
ꢀ‑
12 1
ꢀ‑
31
ꢀ‑
43 1
ꢀ‑6ꢀ‑
14 0
ꢀ‑
10
ꢀ‑3ꢀ‑
4},
[0475]
{4 0
ꢀ‑5ꢀ‑
43
ꢀ‑1ꢀ‑
3 2 14
ꢀ‑
100 2
ꢀ‑3ꢀ‑
48 2
ꢀ‑4ꢀ‑
25 28},
[0476]
{4 0 2 10 0 1 0
ꢀ‑
4 23 0 2 2 0 0
ꢀ‑
2 103},
[0477]
{1 0
ꢀ‑1ꢀ‑
9 0
ꢀ‑
1 0 3
ꢀ‑
12 0
ꢀ‑1ꢀ‑
5 0 0
ꢀ‑3ꢀ‑
42},
[0478]
{2 0 1 3 0 0 0
ꢀ‑
1 6 0 0 1 0 0 0 24},
[0479]
{0 0 0
ꢀ‑
3 0 0 0 1
ꢀ‑
4 0 0
ꢀ‑
2 0 0
ꢀ‑1ꢀ‑
9},
[0480]
{1 0 0 1 0 0 0 0 2 0 0 0 0 0 0 7},
[0481]
{

1 121 16 4
ꢀ‑
29 19 4 9
ꢀ‑6ꢀ‑6ꢀ‑
6 10
ꢀ‑
2 3
ꢀ‑
1 1},
[0482]
{
‑1ꢀ‑
23 3 19 11 105 3 43
ꢀ‑
17 3
ꢀ‑
35 24 0 11
ꢀ‑
3 2},
[0483]
{1
ꢀ‑7ꢀ‑2ꢀ‑7ꢀ‑2ꢀ‑
31
ꢀ‑
2 0
ꢀ‑
48 1 9 99 1
ꢀ‑1ꢀ‑
1 4},
[0484]
{0
ꢀ‑
3 0 1 1 7 0 1 10 0 0
ꢀ‑
17 0
ꢀ‑
1 4 0},
[0485]
{0
ꢀ‑
2 0
ꢀ‑
1 0
ꢀ‑
6 0
ꢀ‑1ꢀ‑
5 0 2 10 0 0
ꢀ‑
2 3},
[0486]
{0
ꢀ‑
1 0 0 0 1 0 0 2 0 0
ꢀ‑
4 0 0 2
ꢀ‑
1},
[0487]
{0
ꢀ‑
1 0 0 0
ꢀ‑
2 0 0
ꢀ‑
1 0 0 3 0 0 0 0},
[0488]
{0 0 0 0 0 0 0 0 1 0 0
ꢀ‑
1 0 0 1 0},
[0489]
{24 17
ꢀ‑
120 11 12 9 22
ꢀ‑
13 1 0 1 4
ꢀ‑1ꢀ‑6ꢀ‑7ꢀ‑
1},
[0490]
{

5 1 14
ꢀ‑
30 7 46
ꢀ‑8ꢀ‑
105
ꢀ‑
5 3
ꢀ‑
6 14
ꢀ‑1ꢀ‑
40
ꢀ‑
8 0},
[0491]
{
‑1ꢀ‑
2 8 9
ꢀ‑1ꢀ‑
6 1 17 19
ꢀ‑
2 11 32 1
ꢀ‑
15
ꢀ‑
97
ꢀ‑
9},
[0492]
{

1 0 1
ꢀ‑
2 0 0
ꢀ‑1ꢀ‑2ꢀ‑
6 0
ꢀ‑
2 0
ꢀ‑
1 6 17
ꢀ‑
42},
[0493]
{0 0 3 1 0 0 0 2 3 0 2 2 0
ꢀ‑2ꢀ‑
9 17},
[0494]
{0 0 1
ꢀ‑
1 0 0 0 0
ꢀ‑
1 0 0 0 0 1 3
ꢀ‑
9},
[0495]
{0 0 1 0 0 0 0 0 1 0 1 1 0 0
ꢀ‑
3 3},
[0496]
{0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
ꢀ‑
2},
[0497]
{5
ꢀ‑
27
ꢀ‑
18 0

117 8
ꢀ‑
28
ꢀ‑
8 2
ꢀ‑
20
ꢀ‑9ꢀ‑4ꢀ‑
1 5
ꢀ‑8ꢀ‑
1},
[0498]
{

1 4
ꢀ‑2ꢀ‑
8 12
ꢀ‑
29
ꢀ‑9ꢀ‑
25 7 8
ꢀ‑
100 0
ꢀ‑
4 57
ꢀ‑
26 1},
[0499]
{0 2 3 2 9 9 4
ꢀ‑
3 15
ꢀ‑
2 17

39 2
ꢀ‑6ꢀ‑
61
ꢀ‑
14},
[0500]
{0 0 0 0 1
ꢀ‑
3 0 0

3 0
ꢀ‑
1 6 0 2
ꢀ‑
1 6},
[0501]
{0 0 1 0 3 1 1 0 1 0 1
ꢀ‑
4 0 0
ꢀ‑3ꢀ‑
4},
[0502]
{0 0 0 0 0 0 0 0
ꢀ‑
1 0 0 1 0 0
ꢀ‑
1 2},
[0503]
{0 0 0 0 1 0 0 0 0 0 0
ꢀ‑
1 0 0
ꢀ‑1ꢀ‑
1},
[0504]
{0 0 0 0 0 0 0 0 0 0 0 0 0 0
ꢀ‑
1 0},
[0505]
{3
ꢀ‑
12 17
ꢀ‑7ꢀ‑
32
ꢀ‑
3 117
ꢀ‑
7 4 30
ꢀ‑
10 2
ꢀ‑
8 1 2
ꢀ‑
1},
[0506]
{

1 2
ꢀ‑3ꢀ‑1ꢀ‑3ꢀ‑
19
ꢀ‑
10 32 10 13
ꢀ‑
63
ꢀ‑3ꢀ‑2ꢀ‑
95 10
ꢀ‑
2},
[0507]
{0 1
ꢀ‑
1 2 3 3
ꢀ‑8ꢀ‑
5 5
ꢀ‑
3 1
ꢀ‑4ꢀ‑
1 18 24
ꢀ‑
4},
[0508]
{0 0 0 0 0 0 0 1
ꢀ‑
1 0 2 0 1
ꢀ‑6ꢀ‑
7 4},
[0509]
{2
ꢀ‑
5 6
ꢀ‑
3 12
ꢀ‑
4 32
ꢀ‑
1 0
ꢀ‑
116
ꢀ‑
17 2 30
ꢀ‑
10 5 0},
[0510]
{

1 1
ꢀ‑1ꢀ‑1ꢀ‑2ꢀ‑
6 1 4 3 6 3
ꢀ‑
2 4
ꢀ‑
34 9 3},
[0511]
{0 0
ꢀ‑
1 1
ꢀ‑
1 1
ꢀ‑
4 0 1 10
ꢀ‑4ꢀ‑2ꢀ‑4ꢀ‑
2 19 1},
[0512]
{0 0 0 0 0 0 0 0 0 0 0 0 1 0
ꢀ‑1ꢀ‑
1},
[0513]
{2
ꢀ‑
1 2
ꢀ‑
2 7 0 3 2
ꢀ‑2ꢀ‑
35
ꢀ‑
1 0
ꢀ‑
102
ꢀ‑
4 0 0},
[0514]
{

1 0 0
ꢀ‑
2 0 0 1
ꢀ‑
1 1
ꢀ‑
5 9 0 4 17 1 2},
[0515]
{0 0 0 1 0 0
ꢀ‑
1 0 2 4
ꢀ‑1ꢀ‑
1 8
ꢀ‑
2 4 0},
[0516]
{0 0 0 0 0 0 0 0 0 0 0 0
ꢀ‑
1 0 0
ꢀ‑
2},
[0517]
{1
ꢀ‑
2 2 0 1 0
ꢀ‑
3 1
ꢀ‑1ꢀ‑
3 3 0
ꢀ‑
69 0
ꢀ‑
2 2},
[0518]
{0 0 0 0 0
ꢀ‑
1 1 0 1
ꢀ‑
1 4
ꢀ‑1ꢀ‑
2 2 0 0},
[0519]
{0 0 0 0 0 0 0
ꢀ‑
1 1 0
ꢀ‑1ꢀ‑
1 6 1 1 0},
[0520]
{0 0 0 0 0 0 0 0 0 0 0 0
ꢀ‑
1 0 0 0},
[0521]
}
[0522]

变换集索引等于3,16
×
48变换核如下所示:
[0523]
sectransmatrix[m][n]=
[0524]
{
[0525]
{

115 15 29
ꢀ‑
36
ꢀ‑
6 4
ꢀ‑
20 4 12 5
ꢀ‑3ꢀ‑
1 10 4 2 3},
[0526]
{37 51
ꢀ‑
22
ꢀ‑
98 18 15
ꢀ‑
7 29 13 20
ꢀ‑4ꢀ‑3ꢀ‑
4 6 9
ꢀ‑
3},
[0527]
{9
ꢀ‑
18 16 25 3 52
ꢀ‑
43 1 10 90
ꢀ‑
34 2
ꢀ‑
6 14 13 12},
[0528]
{2 0
ꢀ‑
6 5
ꢀ‑3ꢀ‑
13 4 26 2
ꢀ‑
17
ꢀ‑
12 19 12 53 37 84},
[0529]
{2
ꢀ‑
3 3 4
ꢀ‑
1 5 0
ꢀ‑5ꢀ‑
1 4 2
ꢀ‑
2 5
ꢀ‑
4 19
ꢀ‑
12},
[0530]
{1 0
ꢀ‑
2 1 0
ꢀ‑
3 1 4 3
ꢀ‑3ꢀ‑
1 4 1 4 6 8},
[0531]
{1
ꢀ‑
1 1 2 0 2
ꢀ‑1ꢀ‑2ꢀ‑
1 2
ꢀ‑1ꢀ‑
1 1 0 2
ꢀ‑
2},
[0532]
{0 0
ꢀ‑
1 1 0
ꢀ‑
1 1 1 1
ꢀ‑
1 0 2 0 2 2 3},
[0533]
{10
ꢀ‑
95
ꢀ‑4ꢀ‑
59
ꢀ‑
50
ꢀ‑
17
ꢀ‑7ꢀ‑
17 17 6 5 9 11 0
ꢀ‑
9 6},
[0534]
{

29 7
ꢀ‑
80 11
ꢀ‑5ꢀ‑
45 35
ꢀ‑7ꢀ‑
2 66 25 3
ꢀ‑9ꢀ‑1ꢀ‑
3 13},
[0535]
{8 34 12
ꢀ‑
17
ꢀ‑
38 16 0
ꢀ‑
73
ꢀ‑
46 8 11
ꢀ‑
35
ꢀ‑
12
ꢀ‑
20
ꢀ‑
9 50},
[0536]
{0
ꢀ‑
3 15 1 12 24 12 6 12 28 43 22
ꢀ‑2ꢀ‑
13
ꢀ‑
28
ꢀ‑
1},
[0537]
{1 5 0 1 0
ꢀ‑2ꢀ‑
4 6 7
ꢀ‑7ꢀ‑
10 11
ꢀ‑
7 3
ꢀ‑
20 45},
[0538]
{0
ꢀ‑
1 3 1 2 4 1 2 0 3 4 1 0 2
ꢀ‑
4 1},
[0539]
{1 2 0 0 0
ꢀ‑1ꢀ‑
1 1 2
ꢀ‑1ꢀ‑
2 2
ꢀ‑1ꢀ‑1ꢀ‑
3 7},
[0540]
{0 0 1 0 1 2 0 1 0 1 1 0 0 1
ꢀ‑
1 0},
[0541]
{23 23 45 6 3
ꢀ‑
87
ꢀ‑
51
ꢀ‑
5 16 29 23
ꢀ‑
7 33
ꢀ‑
3 1
ꢀ‑
2},
[0542]
{
‑8ꢀ‑
47 7
ꢀ‑
13 67
ꢀ‑8ꢀ‑
2 21
ꢀ‑
45 5 20
ꢀ‑
65
ꢀ‑
10 1 18 18},
[0543]
{

8 1
ꢀ‑
59 7
ꢀ‑7ꢀ‑
14
ꢀ‑
57
ꢀ‑3ꢀ‑9ꢀ‑
19
ꢀ‑
40
ꢀ‑
19
ꢀ‑4ꢀ‑
5 9
ꢀ‑
22},
[0544]
{1 6 7
ꢀ‑3ꢀ‑
40 7 5 5
ꢀ‑
53 12 12
ꢀ‑
22 18 35 28
ꢀ‑
37},
[0545]
{

1 0
ꢀ‑
2 0 3 8 15
ꢀ‑
1 6 9 21 11 18
ꢀ‑
16 24
ꢀ‑
13},
[0546]
{0 1 1 0

6 1 0
ꢀ‑
3 1
ꢀ‑1ꢀ‑
3 4
ꢀ‑4ꢀ‑
6 6 14},
[0547]
{0 0
ꢀ‑
1 0 1 2 4 0 1 1 4 2 4
ꢀ‑
1 2 0},
[0548]
{0 1 0 0
ꢀ‑
3 0 0
ꢀ‑
1 0 0
ꢀ‑
1 1
ꢀ‑1ꢀ‑
2 2 3},
[0549]
{3 8
ꢀ‑
15 14
ꢀ‑
12 23 7
ꢀ‑
11 70
ꢀ‑
10 25
ꢀ‑
75 28 46
ꢀ‑
20 1},
[0550]
{3 5 41
ꢀ‑4ꢀ‑
13
ꢀ‑
35 39 2 16 14
ꢀ‑
28
ꢀ‑
18
ꢀ‑
72 29
ꢀ‑5ꢀ‑
12},
[0551]
{
‑2ꢀ‑
12
ꢀ‑3ꢀ‑
14 65
ꢀ‑
6 5
ꢀ‑
52 8
ꢀ‑1ꢀ‑
10 3 1 13
ꢀ‑
25
ꢀ‑
3},
[0552]
{

1 0
ꢀ‑
16 3
ꢀ‑3ꢀ‑3ꢀ‑
55
ꢀ‑3ꢀ‑4ꢀ‑
13 5
ꢀ‑1ꢀ‑
49 21
ꢀ‑
33 2},
[0553]
{0
ꢀ‑
1 2
ꢀ‑1ꢀ‑
10 1 1 27
ꢀ‑
37 7 8
ꢀ‑
10 15 37
ꢀ‑
36
ꢀ‑
15},
[0554]
{0 0
ꢀ‑
3 0 0 1
ꢀ‑7ꢀ‑
2 1 0 6 2 2
ꢀ‑
5 9
ꢀ‑
8},
[0555]
{0 0 0 0
ꢀ‑
1 0 1 5
ꢀ‑
7 1 0 0 2 4
ꢀ‑
2 1},
[0556]
{0 0
ꢀ‑
1 0 0 0
ꢀ‑
3 0 0 0 2 1 1
ꢀ‑
1 2
ꢀ‑
1},
[0557]
{4 3 1 2 9 2 1 0
ꢀ‑
12 0
ꢀ‑
4 2 56
ꢀ‑
10
ꢀ‑
13 19},
[0558]
{0
ꢀ‑
3 0 8
ꢀ‑
20 5
ꢀ‑
10 27 29
ꢀ‑
6 21
ꢀ‑
35
ꢀ‑
23
ꢀ‑
53 42 14},
[0559]
{0 1 7
ꢀ‑3ꢀ‑5ꢀ‑
17 41 8 3 13
ꢀ‑
64
ꢀ‑
27 22
ꢀ‑
18 1
ꢀ‑
4},
[0560]
{
‑1ꢀ‑1ꢀ‑2ꢀ‑
5 22 0 2
ꢀ‑
58 21
ꢀ‑4ꢀ‑
8 4
ꢀ‑
1 8 57
ꢀ‑
12},
[0561]
{1 2
ꢀ‑
3 2
ꢀ‑
2 3 4 2 4 0
ꢀ‑
5 1 4 9
ꢀ‑
22
ꢀ‑
4},
[0562]
{1 1 6 0 0
ꢀ‑1ꢀ‑3ꢀ‑
5 0
ꢀ‑
4 19 8
ꢀ‑
1 12
ꢀ‑
2 5},
[0563]
{0
ꢀ‑
2 1 0 0
ꢀ‑1ꢀ‑
2 25 5 1 10
ꢀ‑
17
ꢀ‑
15
ꢀ‑
41
ꢀ‑
25 17},
[0564]
{0 0
ꢀ‑
2 0
ꢀ‑1ꢀ‑
5 3 3
ꢀ‑
1 5
ꢀ‑
48
ꢀ‑
19 26
ꢀ‑
25
ꢀ‑
28 8},
[0565]
{2 1 0 0 2 0
ꢀ‑
1 0
ꢀ‑
3 0 3 3 6
ꢀ‑
2 5 2},
[0566]
{0
ꢀ‑
1 0 3
ꢀ‑
3 1
ꢀ‑
2 3 4
ꢀ‑1ꢀ‑
1 0 4 2 6
ꢀ‑
4},
[0567]
{0 0 1 0
ꢀ‑2ꢀ‑
4 7 0 1
ꢀ‑
1 10 3
ꢀ‑
10 13 19
ꢀ‑
4},
[0568]
{0 0 0
ꢀ‑
1 3 0 1
ꢀ‑
5 4 1
ꢀ‑3ꢀ‑
6 0
ꢀ‑
16
ꢀ‑
12 4},
[0569]
{0 1
ꢀ‑
1 1
ꢀ‑
1 1 1 0 2 0 0 0 0 4
ꢀ‑5ꢀ‑
2},
[0570]
{0 1 2 0 0 0
ꢀ‑1ꢀ‑
2 0
ꢀ‑
1 4 2 2 1
ꢀ‑
3 2},
[0571]
{0
ꢀ‑
1 0 0 1 0
ꢀ‑
1 7 1 0 3
ꢀ‑1ꢀ‑3ꢀ‑5ꢀ‑
2 1},
[0572]
{0 0
ꢀ‑
1 0 0
ꢀ‑
2 0 0 0 0
ꢀ‑6ꢀ‑
2 2 1 4 0},
[0573]
}
[0574]
在rst8
×
8或rst4
×
4的情况下,如果所有tu尺寸为4
×
4tu或8
×
8tu,可能发生乘法计数。因此,将前8
×
64和8
×
16矩阵(即每个矩阵中从顶部开始的前8个变换基本矢量)分别应用于8
×
8tu和4
×
4tu。
[0575]
对于大于8
×
8tu的块(宽度和高度都大于8),左上角8
×
8区域使用rst8
×
8(即16
×
64矩阵)。对于8
×
4tu或4
×
8tu的块,左上角4
×
4区域使用rst4
×
4(即16
×
16矩阵)(示例中,其它4
×
4区域不使用rst 4
×
4)。在4
×
n或n
×
4tu的块(n≥16)的情况下,两个相邻左上角4
×
4块使用rst4
×
4。
[0576]
通过上述简化,在某些情况下,每个样本的乘法次数为8。
[0577]
为了减小二次变换矩阵的尺寸,多个16
×
48矩阵具有相同的变换集配置,每个16
×
48矩阵从左上角8
×
8块(在示例中,不包括右下角4
×
4块)中的三个4
×
4块中取48个输入样本,如图12所示。
[0578]
vvc 5.0公开了mip工具和rst工具,这两种工具都应用于帧内块。然而,在二次变
换核选择时这两种工具并不协调。换句话说,由于mip不是普通帧内模式,即如果使用mip模式预测一个帧内块,rst变换核选择方法和提案jvet

n0217和jvet

n0193中定义的不同。以下方案可以解决上述问题。
[0579]
图15示出了本发明提供的方法。图15示出了一种由解码设备或编码设备实现的译码方法。所述解码设备可以为上述的解码器30。同样地,编码设备可以为上述的编码器20。在图15中,在步骤1601中,所述方法包括:确定当前块的帧内预测模式。在下一个步骤1603中,所述方法包括:根据为所述当前块确定的帧内预测模式确定所述当前块的二次变换选择。下文详细描述。
[0580]
图16示出了本发明提供的编码器20。在图16中,所述编码器20包括确定单元2001,用于确定当前块的帧内预测模式。图17中的所述编码器20还示出了选择单元2003,用于根据为所述当前块确定的帧内预测模式确定所述当前块的二次变换选择。
[0581]
图17示出了本发明提供的解码器30。在图17中,所述解码器30包括确定单元3001,用于确定当前块的帧内预测模式。图17中的所述解码器30还示出了选择单元3003,用于基于根据为所述当前块确定的帧内预测模式确定所述当前块的二次变换选择。
[0582]
下文进一步详细描述图15的译码方法,由图17和16的解码设备或编码设备分别实现。
[0583]
方案一
[0584]
根据方案一,同一帧内预测块不使用基于矩阵的帧内预测和简化二次变换。
[0585]
当使用mip模式预测帧内预测块时,例如,mip标志的值可以用于表示是否使用mip模式预测块,对所述帧内预测块禁用二次变换。换句话说,二次变换索引的值设置为0,或者不需要从码流中解码二次变换索引。
[0586]
当不使用mip模式预测帧内预测块时,根据jvet

n0193中的方法选择二次变换的变换核。
[0587]
和jvet

n0193不同的规范文字变化部分以灰色高亮显示。
[0588][0589]
7.4.3.1序列参数集rbsp语义
[0590]
......
[0591]
sps_st_enabled_flag等于1表示st_idx可以在帧内编码单元的残差编码语法中存在,sps_st_enabled_flag等于0表示st_idx在帧内编码单元的残差编码语法中不存在。
[0592]
......
[0593]
7.4.7.5编码单元语义
[0594]
......
[0595]
st_idx[x0][y0]表示在所选变换集中的两个候选核之间使用哪个二次变换核,st_idx[x0][y0]等于0表示不使用二次变换。阵列索引x0和y0表示所考虑的变换块的左上角样本相对于图像的左上角样本的位置(x0,y0)。
[0596]
intra_mip_flag[x0][y0]等于1表示亮度样本的帧内预测类型是仿射线性加权帧内预测,intra_lwip_flag[x0][y0]等于0表示亮度样本的帧内预测类型不是仿射线性加权帧内预测。
[0597]
方案二
[0598]
根据方案二,在所述二次变换的变换核选择过程中,当使用mip模式预测块时,二次变换核集中的一个二次变换核被认为用于所述块。
[0599]
在一个实施例中,
[0600]
当使用mip模式预测当前块时,变换集0用作所选的二次变换核集。
[0601]
从四个变换集中选择rst矩阵,每个变换集包括两个变换。根据帧内预测模式确定块使用的变换集如下:
[0602]
如果当前帧内块使用cclm模式预测,则选择变换集0;
[0603]
否则,如果使用mip模式预测当前帧内块,则选择变换集0;
[0604]
否则(如果当前帧内块不使用cclm模式或mip模式预测),根据以下表格选择变换集:
[0605]
表4变换集选择表
[0606]
intrapredmodetr.set indexintrapredmode<010<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=55256<=intrapredmode1
[0607]
intrapredmode的索引范围为

14至83(包括端值),这是用于广角帧内预测的变换模式索引。
[0608]
在本方案中,当使用mip模式预测所述当前块时使用一个变换集,以变换集0为例,本方案也可以使用其它变换集。
[0609]
方案三
[0610]
根据方案三,在所述二次变换的变换核选择过程中,当使用mip模式预测块时,训练后的二次变换核被认为用于所述块。所述训练后的二次变换核集可以不同于上述示例中的变换核集。
[0611]
在一个实施例中,
[0612]
当使用mip模式预测当前块时,(新训练的)变换集4用作所选的二次变换核集。
[0613]
所述变换集4具有与变换集0至3相同的尺寸(即16
×
16和16
×
48),根据相同的机器学习方法和专门针对mip模式的输入训练集进行新的训练。
[0614]
从四个变换集中选择rst矩阵,每个变换集包括两个变换。根据帧内预测模式确定块使用的变换集如下:
[0615]
如果当前帧内块使用cclm模式预测,则选择变换集0;
[0616]
否则,如果使用mip模式预测当前帧内块,则选择变换集4;
[0617]
否则(如果当前帧内块不使用cclm模式或mip模式预测),根据以下表格选择变换集:
[0618]
表5变换集选择表
[0619]
intrapredmodetr.set indexintrapredmode<010<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=55256<=intrapredmode1
[0620]
intrapredmode的索引范围为

14至83(包括端值),这是用于广角帧内预测的变换模式索引。
[0621]
在本方案中,当使用mip模式预测所述当前块时,使用新的训练后的变换集(例如变换集4)。
[0622]
方案四
[0623]
根据方案四,在所述二次变换的变换核选择过程中,当使用mip模式预测块时,使用查找表将mip模式索引映射为普通帧内模式索引,然后根据所述普通帧内模式索引选择二次变换核集。
[0624]
在一个实施例中,
[0625]
如果使用mip模式预测所述当前块,则根据表6将mip模式索引映射为普通帧内模式索引。在本示例中,表6与mip mpm查找表相同。
[0626]
表6仿射线性加权帧内预测与帧内预测模式之间映射的规范
[0627]
[0628][0629]
然后,根据以下表格选择二次变换集:
[0630]
表7变换集选择表
[0631]
intrapredmodetr.set indexintrapredmode<01
0<=intrapredmode<=102<=intrapredmode<=12113<=intrapredmode<=23224<=intrapredmode<=44345<=intrapredmode<=55256<=intrapredmode1
[0632]
例如,如果使用mip模式索引10预测所述当前块,且所述当前块的块尺寸类型sizeid的值为0,则根据表6得到映射后的普通帧内模式索引为18,根据表7选择二次变换集2。
[0633]
本方案使用mip模式索引到普通帧内索引的映射方法。当使用mip模式预测块时,根据映射后的普通帧内索引选择二次变换核。
[0634]
图18为用于实现内容分发业务的内容提供系统3100的框图。该内容提供系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102通过通信链路3104与终端设备3106进行通信。通信链路可以包括上文描述通信信道13。通信链路3104包括但不限于wi

fi、以太网、电缆、无线(3g/4g/5g)、usb或者其任何类型的组合等。
[0635]
所述捕获设备3102生成数据,且可以通过如上述实施例所示的编码方法对数据进行编码。或者,所述捕获设备3102可以将数据分发到流媒体服务器(图中未示出),由该服务器对数据进行编码,并将经编码的数据传输到所述终端设备3106。捕获设备3102包括但不限于相机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、pda、车载设备或其任意组合等。例如,捕获设备3102可以包括上文所述的源设备12。当所述数据包括视频时,所述捕获设备3102中的视频编码器20实际上可以执行视频编码处理。当所述数据包括音频(即声音)时,所述捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。在一些实际场景中,所述捕获设备3102通过将经编码的视频和音频数据复用在一起来分发所述经编码的视频和音频数据。在其它实际场景中,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。所述捕获设备3102分别将经编码的音频数据和经编码的视频数据分发到所述终端设备3106。
[0636]
在所述内容供应系统3100中,所述终端设备310接收并再现经编码的数据。所述终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,nvr)/数字视频录像机(digital video recorder,dvr)3112、tv 3114、机顶盒(set top box,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,pda)3122、车载设备3124或其任意组合等,其能够解码上述经编码的数据。例如,终端设备3106可以包括上文所述的目的地设备14。当经编码的数据包括视频时,所述终端设备中包括的视频解码器30优先进行视频解码。当经编码的数据包括音频时,所述终端设备中包括的音频解码器优先进行音频解码处理。
[0637]
对于带有显示器的终端设备,例如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,nvr)/数字视频录像机(digital video recorder,dvr)3112、tv 3114、个人数字助理(personal digital assistant,pda)3122或车载设备3124,该终端设备可以将经解码的数据馈送到该终端设备的显示器。对于不带显示器的终端设备,例如,stb 3116、视频会议系统3118或视频监控系统3120,该终端
设备与外接显示器3126连接,用于接收并显示经解码的数据。
[0638]
当该系统中的每个设备进行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。
[0639]
图19为终端设备3106的示例性结构图。在终端设备3106从捕获设备3102接收到码流之后,协议处理单元3202分析该码流的传输协议。所述协议包括但不限于实时流媒体协议(realtimestreamingprotocol,rtsp)、超文本传输协议(hypertexttransferprotocol,http)、http直播流媒体协议(httplivestreamingprotocol,hls)、mpeg

dash、实时传输协议(real

timetransportprotocol,rtp)、实时消息传输协议(realtimemessagingprotocol,rtmp),或其任何类型的组合等。
[0640]
在协议处理单元3202对码流进行处理之后,生成流文件。将文件输出到解复用单元3204。所述解复用单元3204可以将经复用的数据分离为经编码的音频数据和经编码的视频数据。如上文所述,在一些实际场景中,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。在这种情况下,经编码的数据不通过所述解复用单元3204传输到视频解码器3206和音频解码器3208。
[0641]
通过解复用处理,生成视频基本流(elementarystream,es)和音频es,且可选地生成字幕。所述视频解码器3206包括如上述实施例描述的视频解码器30。所述视频解码器3206通过如上述实施例所示的解码方法解码所述视频es以生成视频帧,并将该数据馈送到同步单元3212。所述音频解码器3208解码所述音频es以生成音频帧,并将该数据馈送至同步单元3212。或者,所述视频帧在发送至同步单元3212之前可以存储在缓冲区中(图19中未示出)。类似地,所述音频帧在发送至同步单元3212之前可以存储在缓冲区中(图19中未示出)。
[0642]
同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。可以使用与经译码的音频和可视数据的呈现相关的时间戳和与数据码流的分发相关的时间戳,将信息译码到语法中。
[0643]
如果码流中包括字幕,则字幕解码器3210对所述字幕进行解码,使所述字幕与所述视频帧和所述音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
[0644]
数学运算符
[0645]
本技术中使用的数学运算符与c编程语言中使用的数学运算符类似。但是,这里准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,如幂运算和实值除法运算。编号和计数规范通常从零开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。
[0646]
算术运算符
[0647]
算术运算符定义如下:
[0648]
+加法
[0649]

减法(用作双参数运算符)或者非运算(用作一元前缀运算符)。
[0650]
*乘法,包括矩阵乘法。
[0651]
[0652]
÷
用来表示数学等式中的除法运算,但没有截断或者四舍五入操作。
[0653]
用来表示数学等式中的除法运算,但没有截断或者四舍五入操作。
[0654]
用于计算f(i)的和,i取x到y之间的所有整数,包括x和y。
[0655]
x%y取模运算,x除y的余数,这里x和y都必须是整数,并且x≥和y>0。
[0656]
逻辑运算符
[0657]
以下逻辑运算符定义如下:
[0658]
x&&yx和y的布尔逻辑“与”[0659]
x||yx和y的布尔逻辑“或”[0660]
!布尔逻辑“非”[0661]
x?y:z如果x为真或不等于0,则等于y的值;否则,等于z的值。
[0662]
关系运算符
[0663]
以下关系运算符定义如下:
[0664]
>大于
[0665]
>=大于等于
[0666]
<小于
[0667]
<=小于等于
[0668]
==等于
[0669]
!=不等于
[0670]
当关系运算符用于一个已赋值为“na”(不适用)的语法元素或变量时,则将值“na”视为该语法元素或变量的唯一值。值“na”不等于任何其它值。
[0671]
按位运算符
[0672]
按位运算符定义如下:
[0673]
&按位“与”运算。当对整数参数进行运算时,运算的是整数值的二进制补码表示法。当对二进制参数进行运算时,如果该二进制参数包含的位数比另一个参数的少,则通过添加更多等于0的有效位来扩展该较短的参数。
[0674]
|按位“或”运算。当对整数参数进行运算时,运算的是整数值的二进制补码表示法。当对二进制参数进行运算时,如果该二进制参数包含的位数比另一个参数的少,则通过添加更多等于0的有效位来扩展该较短的参数。
[0675]
^按位“异或”运算。当对整数参数进行运算时,运算的是整数值的二进制补码表示法。当对二进制参数进行运算时,如果该二进制参数包含的位数比另一个参数的少,则通过添加更多等于0的有效位来扩展该较短的参数。
[0676]
x>>yx的二进制补码整数表示法向右算术移动y个位元。仅当y为非负整数时,才定义该函数。右移操作的结果是移进最高有效位(mostsignificantbit,msb)的比特位应等于移位操作之前的x的msb的值。
[0677]
x<<yx的二进制补码整数表示法向左算术移动y个位元。仅当y为非负整数时,才定义该函数。左移操作的结果是移进最低有效位(leastsignificantbit,lsb)的比特位
应等于移位操作之前的x的lsb的值。
[0678]
赋值运算符
[0679]
算术运算符定义如下:
[0680]
=赋值运算符
[0681]
++增,即,x++等于x=x+1;当在数组索引中使用时,等于增运算之前变量的值。
[0682]
––
减,即,x
––
等于x=x

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

3)相当于x=x+(

3)。
[0684]

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

=3相当于x=x

3,x

=(

3)相当于x=x

(

3)。
[0685]
范围符号
[0686]
以下符号用于说明值的范围:
[0687]
x=y..zx取y到z的范围内的整数值(包含首尾数字),这里x,y和z都是整数,且z大于y。
[0688]
数学函数
[0689]
数学函数定义如下:
[0690][0691]
asin(x)三角反正弦函数,对参数x进行运算,x在

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

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

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

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

1,x)
[0697][0698]
cos(x)三角余弦函数,对参数x进行运算,单位为弧度。
[0699]
floor(x)表示小于或者等于x的最大整数值。
[0700][0701]
ln(x) x的自然对数(以e为底的对数,其中e是自然对数底数常数2.718281828
……
)。
[0702]
log2(x)返回x的以2为底的对数。
[0703]
log10(x)返回x的以10为底的对数。
[0704][0705][0706]
round(x)=sign(x)*floor(abs(x)+0.5)
[0707][0708]
sin(x)三角正弦函数,对参数x进行运算,单位为弧度。
[0709][0710]
swap(x,y)=(y,x)
[0711]
tan(x)三角正切函数,对参数x进行运算,单位为弧度。
[0712]
运算优先级顺序
[0713]
当没有使用括号来显式的表示优先顺序时,则遵循如下规则:
[0714]

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

相同优先级的运算从左到右依次进行。
[0716]
下表从最高到最低的顺序说明运算的优先级,在表中的位置越高,优先级也越高。
[0717]
如果在c编程语言中也使用这些运算符,则本文中采用的优先级顺序与c编程语言中采用的优先级顺序相同。
[0718]
表格:运算优先级从最高(表格顶部)到最低(表格底部)进行排序
[0719]
[0720][0721]
逻辑运算的文字描述
[0722]
文本中,逻辑运算中的语句以数学形式描述如下:
[0723][0724]
可以通过如下方式进行描述:
[0725]
……
如下/
……
以下为准:
[0726]

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

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

...
[0729]

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

“……
如下”或
“……
以下为准”后用“否则”结尾来识别语句。
[0731]
文本中,逻辑运算中的语句以数学形式描述如下:
[0732][0733]
subscriber line,dsl)或红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,则同轴缆线、光纤缆线、双绞线、dsl或红外线、无线电和微波等无线技术包含在介质的定义中。但是,应理解,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是涉及非瞬时性有形存储介质。本文所使用的磁盘和光盘包含压缩光盘(compact disc,cd)、激光光盘、光学光盘、数字多功能光盘(digital versatile disc,dvd)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。
[0755]
指令可以通过一或多个处理器来执行,例如,一个或多个数字信号处理器(digital signal processor,dsp)、一个或多个通用微处理器、一个或多个专用集成电路(application specific integrated circuit,asic)、一个或多个现场可编程逻辑阵列(field programmable logic array,fpga)或其它同等集成或离散逻辑电路等。因此,本文所使用的术语“处理器”可以指上述结构中的任一种或适用于实施本文所描述的技术的任何其它结构。另外,在一些方面中,本文所描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合的编解码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。
[0756]
本发明技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,ic)或一组ic(例如芯片组)。本发明中描述了各种组件、模块或单元,以强调用于执行所公开的技术的设备的功能方面,但未必需要通过不同的硬件单元实现。相反,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
[0757]
本发明公开了以下其它方面。
[0758]
根据第一方面,一种由解码设备或编码设备实现的译码方法包括:当不使用基于矩阵的帧内预测(matrix

based intra prediction,mip)模式预测当前块时,根据所述当前块的帧内预测模式索引,选择用于所述当前块二次变换的二次变换核。
[0759]
根据第一方面所述方法的第二方面,所述方法还包括:当使用mip模式预测所述当前块时,禁用所述当前块的二次变换。
[0760]
根据第二方面所述方法的第三方面,所述禁用所述当前块的二次变换包括:将所述当前块的二次变换指示信息的值设置为默认值。
[0761]
根据第一方面至第三方面中任一项所述方法的第四方面,mip指示信息的值指示所述当前块是否使用mip模式预测。
[0762]
根据第五方面,一种由解码设备或编码设备实现的译码方法包括:根据所述当前块的基于矩阵的帧内预测(matrix

based intra prediction,mip)模式索引和所述当前块的尺寸,获取所述当前块的帧内预测模式索引;
[0763]
根据所述当前块的所述帧内预测模式索引,为所述当前块的二次变换选择二次变换核。
[0764]
根据第五方面所述方法的第六方面,所述当前块的帧内预测模式索引根据所述mip模式索引与所述当前块的尺寸之间的映射关系得到,在预定义表格中表示所述映射关系。
[0765]
根据第七方面,一种由解码设备或编码设备实现的译码方法,包括:当使用基于矩
阵的帧内预测(matrix

based intra prediction,mip)模式预测所述当前块时,使用用于当前块二次变换的二次变换核。
[0766]
根据第七方面所述方法的第八方面,所述二次变换核是用于非mip模式的二次变换核中的其中一个。
[0767]
根据第七方面所述方法的第九方面,所述二次变换核不同于用于非mip模式的所述二次变换核中的任意一个。
[0768]
根据第十方面,一种编码器(20)包括处理电路,用于执行根据第一至第九方面中任一项所述的方法。
[0769]
根据第十一方面,一种解码器(30)包括处理电路,用于执行根据第一至第九方面中任一项所述的方法。
[0770]
根据第十二方面,一种计算机程序产品包括程序代码,用于执行根据第一至第九方面中任一项所述的方法。
[0771]
根据第十三方面,一种解码器包括:
[0772]
一个或多个处理器;
[0773]
非瞬时性计算机可读存储介质,其耦合至所述处理器并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使所述解码器执行第一至第九方面中任一项所述的方法。
[0774]
根据第十三方面,一种编码器包括:
[0775]
一个或多个处理器;
[0776]
非瞬时性计算机可读存储介质,其耦合至所述处理器并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使所述编码器执行第一至第九方面中任一项所述的方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1