对编码单位的变换单位编码和解码的方法与流程

文档序号:15848553发布日期:2018-11-07 09:28阅读:428来源:国知局
对编码单位的变换单位编码和解码的方法与流程

技术领域

本发明通常涉及数字视频信号处理,尤其涉及用于对变换单位(TU)的残差系数进行编码和解码的方法、设备和系统,其中该变换单位(TU)包括一个或多个变换单位(TU)并且可以是针对包括4:2:2色度格式的多个色度格式所配置的。



背景技术:

当前存在包括用于传输和存储视频数据的应用程序的许多视频编码用的应用程序。还开发了许多视频编码标准并且其它视频编码标准当前正在开发中。视频编码标准化的最新进展已导致形成被称为“视频编码联合小组”(JCT-VC)的组。该视频编码联合小组(JCT-VC)包括:已知为视频编码专家组(VCEG)的国际电信联盟(ITU)的电信标准化部门(ITU-T)的研究组16、问题6(SG16/Q6)的成员;以及还已知为运动图片专家组(MPEG)的国际标准化组织/国际电工委员会联合技术委员会1/小组委员会29/工作组11(ISO/IEC JTC1/SC29/WG11)的成员。

视频编码联合小组(JCT-VC)的目标是产生新的视频编码标准以显著优于目前现有的已知为“H.264/MPEG-4AVC”的视频编码标准。该H.264/MPEG-4AVC标准本身是针对诸如MPEG-4和ITU-T H.263等的以前的视频编码标准的大幅改进。已将开发中的新视频编码标准命名为“高效率视频编码(HEVC)”。视频编码联合小组JCT-VC还考虑由于针对高效率视频编码(HEVC)所提出的技术而产生的、在对该标准的实现进行缩放从而以高分辨率实时或以高帧频进行工作的情况下产生困难的实现挑战。一个实现挑战是用于支持使视频数据在频域和空间域之间进行变换所用的多个“变换”大小的逻辑的复杂度和大小。



技术实现要素:

本发明的目的是大致克服或至少改进现有配置的一个或多个缺点。

根据本发明的一个方面,提供一种用于从视频位流解码包含色度残差系数的变换单位的方法,所述变换单位包含与一个色度通道相关联的至少一个色度残差系数阵列,所述方法包括以下步骤:

确定所述变换单位的大小,其中所述大小与所述变换单位在相应的编码单位中的层级有关;

根据所确定出的大小来识别对所述至少一个色度残差系数阵列进行变换所使用的最大数量的逆变换;

针对所述变换单位的色度通道,使用所识别出的最大数量的变换来从所述视频位流解码所述至少一个色度残差系数阵列;

针对解码后的色度残差系数阵列选择逆变换,其中所述逆变换是从逆变换的预定集合中所选择的;以及

将所选择的逆变换应用于各个色度残差系数阵列,以针对所述变换单位的色度通道来解码色度残差样本。

根据本发明的另一方面,提供一种用于将包含与一个色度通道相关联的色度残差样本的变换单位编码在视频位流中的方法,所述变换单位包含至少一个色度残差样本阵列,所述方法包括以下步骤:

确定所述变换单位的大小,其中所述大小与所述变换单位在相应的编码单位中的层级有关;

根据所确定出的大小来识别对所述至少一个色度残差样本阵列进行变换所使用的最大数量的预定正变换;

针对所述色度残差样本阵列选择正变换,其中所述正变换是从正变换的预定集合中所选择的;

将所选择的正变换应用于各个所述色度残差样本阵列,以针对所述变换单位的色度通道将所述色度残差样本阵列中的至少一个转换成相应的色度残差系数阵列;以及

针对所述变换单位的色度通道来对所述色度残差系数阵列进行编码。

优选地,变换的最大数量为1或2。期望地,所述数量为2,并且按4:2:2色度格式应用于所述变换单位的大小为32×16的色度区域。

有利地,变换的数量是从1、2和4的集合中所选择的。在一个特定实现中,所述数量为4,并且按4:4:4色度格式应用于所述变换单位的大小为32×32的色度区域。

优选地,应用一次扫描来覆盖所识别出的数量的变换。期望地,所识别出的数量的变换的系数交错。

在一个实现中,使用4×4的子块扫描模式来扫描大小为4×8的变换单位。

在另一实现中,所应用的变换的数量是至少使用编码块标志所确定的。期望地,所应用的变换的数量是使用所识别出的变换的最大数量和针对各变换的编码块标志值所确定的。

根据本发明的另一方面,提供一种用于从视频位流解码包含色度残差样本的变换单位的方法,所述变换单位包含4:2:2色度格式的与一个色度通道相关联的至少一个色度残差系数阵列,所述方法包括以下步骤:

根据存在于所述视频位流中的分割变换标志来确定所述变换单位在编码单位内的层级,其中编码单位大小在最小编码单位~最大编码单位的范围内;

针对所述一个色度通道确定所述变换单位的变换大小,其中所述变换大小与所确定出的所述变换单位的层级和所述编码单位大小有关;

针对所述变换单位的一个色度通道来从所述视频位流确定多个编码块标志值,其中所述变换单位针对一个颜色通道具有多个色度残差系数阵列,并且所述多个编码块标志值的各编码块标志值与所述多个色度残差系数阵列中的一个色度残差系数阵列相对应;

根据所述多个编码块标志值中的相应编码块标志值来从所述视频位流解码所述多个色度残差系数阵列中的各色度残差系数阵列;

针对解码后的色度残差系数阵列选择正方形逆变换,其中所述正方形逆变换是根据所确定出的变换大小而从正方形逆变换的预定集合中所选择的;以及

将所选择的正方形逆变换应用于各个解码后的色度残差系数阵列,以针对所述变换单位的色度通道产生所述色度残差样本。

根据本发明的另一方面,提供一种用于将包含色度残差样本的变换单位编码到视频位流的方法,所述变换单位包含4:2:2色度格式的与一个色度通道相关联的至少一个色度残差系数阵列,所述方法包括以下步骤:

基于所接收到的所述变换单位在编码单位内的层级来将分割变换标志编码到所述视频位流,其中编码单位大小在最小编码单位~最大编码单位的范围内;

针对所述一个色度通道接收所述变换单位的变换大小,其中所述变换大小与所述变换单位的所述层级和所述编码单位大小有关;

针对所述变换单位的一个色度通道将多个编码块标志值编码到所述视频位流,其中所述变换单位针对一个颜色通道具有多个色度残差系数阵列,并且所述多个编码块标志值中的各编码块标志值与所述多个色度残差系数阵列中的一个色度残差系数阵列相对应;

针对所述多个色度残差系数阵列选择正方形正变换,其中所述正方形正变换是根据所接收到的变换大小而从正方形正变换的预定集合中所选择的;

将所选择的正方形正变换应用于各个解码后的色度残差系数阵列,以针对所述变换单位的色度通道产生所述色度残差样本;以及

根据所述多个编码块标志值中的相应编码块标志值来将所述多个色度残差系数阵列中的各色度残差系数阵列编码到所述视频位流。

还公开了其它方面。

附图说明

现在将参考以下附图来说明本发明的至少一个实施例,其中:

图1是示出视频编码和解码系统的示意框图;

图2A和2B构成可以实践图1的视频编码和解码系统的其中一个或这两者的通用计算机系统的示意框图;

图3是示出视频编码器的功能模块的示意框图;

图4是示出视频解码器的功能模块的示意框图;

图5A和5B示意性示出用于表示帧数据的色度格式;

图6A是编码单位的示例性变换树的示意表示;

图6B是配置在亮度样本网格上的示例性变换树的示意表示;

图6C是配置在色度样本网格上的示例性变换树的示意表示;

图7是表示示例性变换树的亮度通道的数据结构的示意例示;

图8示出表示示例性变换树的色度通道的数据结构;

图9A和9B示意性示出对示例性变换树进行编码的位流结构;

图9C和9D示意性示出对示例性变换树进行编码的替代位流结构;

图10是示出用于对示例性变换树进行编码的方法的示意流程图;

图11是示出用于对示例性变换树进行解码的方法的示意流程图;以及

图12A~12C示意性示出4×8变换单位的残差扫描模式。

具体实施方式

在任一个或多个附图中参考具有相同附图标记的步骤和/或特征的情况下,除非出现相反意图,否则这些步骤和/或特征为了本说明书的目的而具有相同的功能或操作。

图1是示出可以利用用于对代表如下推断子分割的句法元素进行编码的技术的视频编码和解码系统100的功能模块的示意框图,其中该推断子分割针对色度通道来将变换单位子分割成多个变换。系统100包括源装置110和目的地装置130。通信信道120用于从源装置110向目的地装置130通信编码视频信息。在一些情况下,源装置110和目的地装置130分别可以包括移动电话手机,其中在这种情况下,通信信道120是无线信道。在其它情况下,源装置110和目的地装置130可以包括视频会议设备,其中在这种情况下,通信信道120通常是诸如因特网接线等的有线信道。此外,源装置110和目的地装置130可以包括范围宽的任意装置,其中这些装置包括支持空中电视广播的装置、有线电视应用、因特网视频应用并且包括在一些存储介质或文件服务器上捕获编码视频的应用。

如图所示,源装置110包括视频源112、视频编码器114和发送器116。视频源112通常包括诸如摄像传感器等的所拍摄视频帧数据的源、存储在非瞬态记录介质上的先前拍摄到的视频序列、或者来自远程摄像传感器的视频提供。可以包括摄像传感器作为视频源112的源装置110的示例包括智能电话、视频摄录机和网络视频照相机等。视频编码器114将来自视频源112的所拍摄帧数据转换成编码视频数据并且以下将参考图3来进一步说明。该编码视频数据通常由发送器116经由通信信道120作为编码视频信息进行发送。还可以将该编码视频数据存储在诸如“闪速(Flash)”存储器或硬盘驱动器等的一些存储装置中,直到随后经由通信信道120进行发送为止。

目的地装置130包括接收器132、视频解码器134和显示装置136。接收器132从通信信道120接收编码视频信息并将所接收到的视频数据传递至视频解码器134。然后视频解码器134将解码后的帧数据输出至显示装置136。显示装置136的示例包括诸如智能电话、平板计算机和计算机监视器或者单机型电视机等内的阴极射线管和液晶显示器。还可以将源装置110和目的地装置130各自的功能嵌入单个装置中。

尽管以上说明了示例性装置,但源装置110和目的地装置130各自通常经由硬件组件和软件组件的组合可以配置在通用计算系统内。图2A示出如下的这种计算机系统200,其中该计算机系统200包括:计算机模块201;诸如键盘202、鼠标指示器装置203、扫描器226、可被配置为视频源112的照相机227、以及麦克风280等的输入装置;以及包括打印机215、可被配置为显示装置136的显示装置214、以及扬声器217等的输出装置。计算机模块201可以使用外部调制器-解调器(调制解调器)收发器装置216来经由接线221与通信网络220进行通信。可以表示通信信道120的通信网络220可以是广域网(WAN),诸如因特网、蜂窝远程通信网络或私有WAN等。在接线221是电话线的情况下,调制解调器216可以是传统的“拨号上网”调制解调器。可选地,在接线221是高容量(例如,线缆)接线的情况下,调制解调器216可以是宽带调制解调器。还可以使用无线调制解调器来进行向通信网络220的无线连接。收发器装置216可以提供发送器116和接收器132的功能,并且通信信道120可以嵌入接线221中。

计算机模块201通常包括至少一个处理器单元205和存储器单元206。例如,存储器单元206可以具有半导体随机存取存储器(RAM)和半导体只读存储器(ROM)。计算机模块201还包括多个输入/输出(I/O)接口,其中这多个输入/输出(I/O)接口包括:音频-视频接口207,其连接至视频显示器214、扬声器217和麦克风280;I/O接口213,其连接至键盘202、鼠标203、扫描器226、照相机227以及可选的操纵杆或其它人机接口装置(未示出);以及外部调制解调器216和打印机215所用的接口208。在一些实现中,调制解调器216可以内置于计算机模块201内,例如内置于接口208内。计算机模块201还具有本地网络接口211,其中该本地网络接口211允许计算机系统200经由接线223连接至已知为局域网(LAN)的局域通信网络222。如图2A所示,局域通信网络222还可以经由接线224连接至广域网220,其中该局域通信网络222通常包括所谓的“防火墙”装置或具有相似功能的装置。本地网络接口211可以包括以太网(EthernetTM)电路卡、蓝牙(BluetoothTM)无线配置或IEEE 802.11无线配置;然而,对于接口211,可以实践多种其它类型的接口。本地网络接口211还可以提供发送器116和接收器132的功能,并且通信信道120也可以嵌入局域通信网络222中。

I/O接口208和213可以提供串行连接和并行连接中的任一个或这两者,其中前者通常根据通用串行总线(USB)标准来实现并且具有相应的USB连接器(未示出)。设置有存储装置209,并且存储装置209通常包括硬盘驱动器(HDD)210。还可以使用诸如软盘驱动器和磁带驱动器(未示出)等的其它存储装置。通常设置有光盘驱动器212以用作数据的非易失性源。作为向计算机系统200的数据的适当源,可以使用例如光盘(例如,CD-ROM、DVD、蓝光盘(Blu-ray DiscTM))、USB-RAM、便携型外部硬盘驱动器和软盘等的便携型存储器装置。通常,HDD 210、光盘驱动器212、网络220和222中的任意还可被配置为用作视频源112、或者用作为了经由显示器214进行再现所要存储的解码视频数据的目的地。

计算机模块201的组件205~213通常经由互连总线204并且以得到相关领域技术人员已知的计算机系统200的传统操作模式的方式进行通信。例如,处理器205使用接线218连接至系统总线204。同样,存储器206和光盘驱动器212通过接线219连接至系统总线204。可以实践所述配置的计算机的示例包括IBM-PC和兼容机、Sun SPARCstation、Apple MacTM或相似的计算机系统。

在适当或期望的情况下,可以使用计算机系统200来实现视频编码器114和视频解码器134以及以下所述的方法,其中可以将视频编码器114和视频解码器134以及要说明的图10~13的处理作为计算机系统200内可执行的一个或多个软件应用程序233来实现。特别地,利用在计算机系统200内执行的软件233中的指令231(参见图2B)来实现视频编码器114、视频解码器134和所述方法的步骤。可以将软件指令231形成为各自用于进行一个或多个特定任务的一个或多个代码模块。还可以将软件分割成两个单独部分,其中第一部分和相应的代码模块进行所述方法,并且第二部分和相应的代码模块管理第一部分和用户之间的用户界面。

例如,可以将软件存储在包括以下所述的存储装置的计算机可读介质中。将软件从计算机可读介质载入计算机系统200,然后由计算机系统200来执行。记录有这种软件或计算机程序的计算机可读介质是计算机程序产品。优选地,在计算机系统200中使用该计算机程序产品实现了用于实现视频编码器114、视频解码器134和所述方法的有利设备。

通常将软件233存储在HDD 210或存储器206中。将该软件从计算机可读介质载入计算机系统200,并且由计算机系统200来执行。因而,例如,可以将软件233存储在光盘驱动器212所读取的光学可读盘存储介质(例如,CD-ROM)225上。

在一些示例中,将应用程序233以编码在CD-ROM 225上并且经由相应的驱动器212进行读取的方式供给至用户,或者可选地,可以由用户从网络220或222读取应用程序233。此外,还可以将软件从其它计算机可读介质载入计算机系统200。计算机可读存储介质是指将所记录的指令和/或数据提供至计算机系统200以供执行和/或处理的任何非瞬态有形存储介质。这种存储介质的示例包括软盘、磁带、CD-ROM、DVD、蓝光盘、硬盘驱动器、ROM或集成电路、USB存储器、磁光盘、或者诸如PCMCIA卡等的计算机可读卡,而与这些装置在计算机模块201的内部还是外部无关。还可以参与将软件、应用程序、指令和/或视频数据或编码视频数据提供至计算机模块401的瞬态或非有形计算机可读传输介质的示例包括:无线电或红外线传输通道及向着其它计算机或联网装置的网络接线、以及具有电子邮件发送和网站上所记录的信息等的因特网或内联网。

可以执行上述的应用程序233的第二部分和相应的代码模块来实现要渲染或呈现在显示器214上的一个或多个图形用户界面(GUI)。通过典型地对键盘202和鼠标203进行操作,计算机系统200的用户和应用程序可以以在功能上可改变的方式对界面进行操作,以将控制命令和/或输入提供至与这些GUI相关联的应用程序。还可以实现在功能上可改变的其它形式的用户界面,诸如利用经由扬声器217所输出的语音提示和经由麦克风280所输入的用户声音命令的音频界面等。

图2B是处理器205和“存储器”234的详细示意框图。存储器234表示图2A中的计算机模块201可以访问的(包括HDD 209和半导体存储器206的)所有存储器模块的逻辑聚合。

在初始对计算机模块201通电的情况下,执行上电自检(power-on self-test,POST)程序250。通常将POST程序250存储在图2A的半导体存储器206的ROM 249中。有时将诸如存储有软件的ROM 249等的硬件装置称为固件。POST程序250检查计算机模块201内的硬件以确保适当工作,并且通常检查处理器205、存储器234(209,206)和通常还存储在ROM 249中的基本输入-输出系统软件(BIOS)模块251,以进行正确操作。一旦POST程序250成功运行,BIOS 251启动图2A的硬盘驱动器210。启动硬盘驱动器210使得经由处理器205执行驻留在硬盘驱动器210上的引导装入程序252。这样将操作系统253载入RAM存储器206,其中在该RAM存储器206上,操作系统253开始工作。操作系统253是处理器205可执行的系统级应用程序,以实现包括处理器管理、存储器管理、装置管理、存储管理、软件应用程序接口和通用用户界面等的各种高级功能。

操作系统253管理存储器234(209,206),以确保计算机模块201上运行的各处理或应用程序具有在不会与分配至其它处理的内存冲突的情况下执行的充足内存。此外,必须适当使用图2A的计算机系统200中可用的不同类型的存储器,以使得各处理可以高效地运行。因此,聚合存储器234并不意图例示如何分配存储器的特定区段(除非另外说明),而是提供计算机系统200可访问的存储器的概述图以及如何使用该存储器。

如图2B所示,处理器205包括多个功能模块,其中这多个功能模块包括控制单元239、运算逻辑单元(ALU)240和有时称为高速缓冲存储器的本地或内部存储器248。高速缓冲存储器248在寄存器区段中通常包括多个存储寄存器244~246。一个或多个内部总线241从功能上使这些功能模块相互连接。处理器205通常还具有用于使用接线218来经由系统总线204与外部装置进行通信的一个或多个接口242。存储器234使用接线219连接至总线204。

应用程序233包括可以包含条件分支指令和循环指令的指令序列231。程序233还可以包括执行程序233时所使用的数据232。将指令231和数据232分别存储在存储器位置228、229、230和235、236、237中。根据指令231和存储器位置228~230的相对大小,如存储器位置230中示出的指令所描述的,可以将特定指令存储在单个存储器位置中。可选地,如存储器位置228和229中示出的指令段所描述的,可以将指令分割成各自被存储在单独的存储器位置的多个部分。

通常,向处理器205赋予一组指令,其中在该处理器205内执行该组指令。处理器205等待下一输入,其中处理器205通过执行另一组指令来对该下一输入作出反应。可以从一个或多个源提供各输入,其中该输入包括一个或多个输入装置202、203所生成的数据、从外部源经由网络220、202其中之一所接收到的数据、从存储装置206、209其中之一所检索到的数据或者从插入相应的读取器212内的存储介质225所检索到的数据(所有这些均在图2A中示出)。执行一组指令在一些情况下可能会导致输出数据。执行还可能涉及将数据或变量存储至存储器234。

视频编码器114、视频解码器134和所述方法可以使用存储在存储器234内的相应存储器位置255、256、257中的输入变量254。视频编码器114、视频解码器134和所述方法产生存储在存储器234内的相应存储器位置262、263、264中的输出变量261。可以将中间变量258存储在存储器位置259、260、266和267中。

参考图2B的处理器205,寄存器244、245、246、运算逻辑单元(ALU)240和控制单元239一起工作以进行微操作序列,其中这些微操作序列是针对构成程序233的指令集中的每个指令进行“提取、解码和执行”周期所需的。各提取、解码和执行周期包括以下操作:

(a)提取操作,用于从存储器位置228、229、230提取或读取指令231;

(b)解码操作,其中在该解码操作中,控制单元239判断提取了哪个指令;以及

(c)执行操作,其中在该执行操作中,控制单元239和/或ALU 240执行该指令。

之后,可以执行针对下一指令的进一步提取、解码和执行周期。同样,可以进行存储周期,其中在该存储周期中,控制单元239将值存储至或写入存储器位置232。

要说明的图10~13的处理中的各步骤或子处理与程序233的一个或多个区段相关联,并且通常通过处理器205中的寄存器部244、245、247、ALU 240和控制单元239一起工作以针对程序233的所述区段的指令集中的每个指令进行提取、解码和执行周期,来进行该步骤或子处理。

图3是示出视频编码器114的功能模块的示意框图。图4是示出视频解码器134的功能模块的示意框图。如图2A和2B所示,可以使用通用计算机系统200来实现视频编码器114和视频解码器134,其中可以利用计算机系统200内的专用硬件、利用计算机系统200内可执行的软件(诸如驻留在硬盘驱动器205上并且由处理器205控制其执行的软件应用程序233的一个或多个软件代码模块等)、或者可选地由计算机系统200内可执行的专用硬件和软件的组合来实现各种功能模块。可选地,可以在诸如进行所述方法的功能或子功能的一个或多个集成电路等的专用硬件中实现视频编码器114、视频解码器134和所述方法。这种专用硬件可以包括图形处理器、数字信号处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者一个或多个微处理器和关联存储器。特别地,视频编码器114包括模块320~344,并且视频解码器134包括模块420~434,其中这些模块各自可被实现为软件应用程序233的一个或多个软件代码模块。

尽管图3的视频编码器114是高效率视频编码(HEVC)视频编码流水线的示例,但模块320~344所进行的处理阶段对于诸如VC-1或H.264/MPEG-4AVC等的其它视频编解码器是共通的。视频编码器114接收诸如所拍摄帧数据等的所拍摄帧数据作为一系列帧,其中各帧包括一个或多个颜色通道。各帧针对各颜色通道包括一个样本网格。使用诸如推荐ITU-R BT.709(‘YUV’)等的“颜色空间”来表示颜色信息,尽管其它颜色空间也是可以的。在使用YUV颜色空间的情况下,颜色通道包括亮度通道(“Y”)和两个色度通道(“U”和“V”)。此外,根据图像的采样或者通过应用滤波以对所拍摄帧数据进行重采样,在各颜色通道的样本网格中可能包括不同的信息量。存在已知为“色度格式”的若干采样方法,其中将参考图5A和5B来说明这些采样方法中的一些方法。

视频编码器114将诸如帧数据310等的所拍摄帧数据的各帧分割成通常被称为“编码树块”(CTB)的区域。各编码树块(CTB)包括将帧的一部分子分割成“编码单位”(CU)的集合的层级四叉树子分割。编码树块(CTB)通常占据64×64个亮度样本的区域,尽管诸如16×16或32×32等的其它大小也是可以的。在一些情况下,可以使用诸如128×128等的甚至更大的大小。可以通过分割将编码树块(CTB)子分割成四个大小相等的区域以创建新的层级。可以递归地应用分割,从而得到四叉树层级。由于编码树块(CTB)的边尺寸始终是2的幂并且四叉树分割始终使宽度和高度减半,因此区域的边尺寸也始终为2的幂。在不进行区域的进一步分割的情况下,认为在该区域内存在“编码单位”(CU)。在编码树块的顶级不进行分割的情况下,占据整个编码树块的区域包含通常被称为“最大编码单位”(LCU)的一个编码单位(CU)。针对各编码单位还存在诸如被8×8个亮度样本所占据的区域等的最小大小,尽管其它最小大小也是可以的。通常将该大小的编码单位称为“最小编码单位”(SCU)。作为该四叉树层级的结果,编码树块(CTB)整体被一个或多个编码单位(CU)所占据。

视频编码器114针对各编码单位(CU)产生通常被称为“预测单位”(PU)的样本的一个或多个阵列。各编码单位(CU)中的预测单位(PU)的各种配置均是可以的,其中要求是预测单位(PU)没有重叠并且编码单位(CU)整体被一个或多个预测单位(PU)所占据。该方案确保了预测单位(PU)覆盖整个帧区域。

视频编码器114通过从多路复用器模块340输出预测单位(PU)382来进行工作。差模块344输出预测单位(PU)382和来自帧数据310的编码树块(CTB)的编码单位(CU)的数据样本的相应2D阵列之间的差,其中该差已知为“残差样本阵列”360。来自差模块344的残差样本阵列360被变换模块320接收到,其中该变换模块320通过应用“正变换”将残差样本阵列360从空间表示转换(或“编码”)为频域表示。变换模块320在通常被称为“变换树”的编码单位(CU)向一个或多个变换单位(TU)的层级子分割中,创建针对变换单位(TU)的各变换的变换系数362。针对开发中的高效率视频编码(HEVC)标准,使用改进的离散余弦变换(DCT)来实现向频域表示的转换,其中在该改进的DCT中,对传统的DCT进行修改以使用移位和加法来实现。根据所支持的变换大小,残差样本阵列360和变换系数362的各种大小均是可以的。在开发中的高效率视频编码(HEVC)标准中,针对具有诸如32×32、16×16、8×8和4×4等的特定大小的样本的2D阵列进行变换。因而,可以认为存在视频编码器114可利用的变换大小的预定集合。此外,如以上所预示的,变换大小的集合在亮度通道和色度通道之间可能有所不同。二维变换通常被配置为“可分离的”,从而能够实现为沿一个方向(例如,沿着行)在样本的2D阵列上进行工作的1D变换的第一集合,之后是沿另一方向(例如,沿着列)在从1D变换的第一集合输出的样本的2D阵列上进行工作的1D变换的第二集合。通常将宽度和高度相同的变换称为“正方形变换”。宽度和高度不同的其它变换也是可以的,并且通常被称为“非正方形变换”。这些变换的最优实现可以将行方向和列方向的一维变换组合到诸如4×4变换模块或8×8变换模块等的特定硬件或软件模块中。尺寸更大的变换需要更大量的电路来实现,尽管这些变换可能不经常使用。因此,在开发中的高效率视频编码(HEVC)标准中,存在最大变换大小32×32。代替重新使用从相应的正方形变换呈现的现有一维变换逻辑,由于所支持的非正方形变换大小通常将需要全新的硬件来实现,因此变换实现的集成性还引入了优先减少这些所支持的非正方形变换大小的数量。向亮度通道和色度通道这两者应用变换。针对变换单位(TU)在亮度通道和色度通道的处理之间存在差异,并且以下将参考图5A和5B来进行论述。各变换树占据一个编码单位(CU),并且被定义为编码单位(CU)向着在变换树(四叉树)层级的各叶节点处包含一个变换单位(TU)的层级的四叉树分解,其中各变换单位(TU)能够利用所支持的变换大小的变换。与编码树块(CTB)相似,需要编码单位(CU)整体被一个或多个变换单位(TU)占据。在变换树四叉树层级的各等级处,“编码块标志值”用信号通知在不存在进一步分割的情况下在当前层级中在各颜色通道中可能存在变换,或者用信号通知较低层级可能包含由此得到的变换单位(TU)中的至少一个变换。在编码块标志值为0的情况下,针对无论是当前层级等级或较低的层级等级处的变换树的任何变换单位(TU)的相应颜色通道,均不进行变换。在编码块标志值为1的情况下,区域包含必须具有至少一个非零残差系数的变换。这样,针对各颜色通道,0个或更多个变换可以覆盖从无直至编码单位(CU)整体的编码单位(CU)的区域的一部分。针对各颜色通道存在单独的编码块标志值。由于存在仅具有一个可能的编码块标志值的情况,因此无需对各编码块标志值进行编码。

然后将变换系数362输入至缩放和量化模块322,并且根据所确定的量化参数384进行缩放和量化以产生残差系数阵列364。根据所确定的量化参数384的值,该缩放和量化处理导致精度损失。所确定的量化参数384的值越高,则从变换系数中丢失的信息越多。这样以降低来自视频解码器134的输出的可视质量为代价提高了视频编码器114所实现的压缩。所确定的量化参数384可以在对帧数据310的各帧进行编码期间改变,或者可以针对帧数据310的一部分(诸如整个帧)固定。所确定的量化参数384的其它改变也是可以的,诸如以单独值量化不同的残差系数等。将残差系数阵列364和所确定的量化参数384视为向着逆缩放模块326的输入,其中该逆缩放模块326反转缩放和量化模块322所进行的缩放以产生作为残差系数阵列364的重新缩放版本的重新缩放变换系数阵列366。

还将残差系数阵列364和所确定的量化参数384视为向着熵编码器模块324的输入,其中该熵编码器模块324将残差系数编码在编码位流312(或“视频位流”)中。将各变换单位(TU)中的各变换的残差系数阵列364编码在通常已知为“子块”的组中。子块应优选具有相同的尺寸而与变换的大小无关,因为这样允许重新使用与子块处理有关的逻辑。通常将一个子块内的残差系数称为“系数组”,并且针对各系数组,通常对系数组标志进行编码以表示该系数组内的至少一个残差系数是否为非零。在一些情况下,可以推断出系数组标志,因而不进行编码。针对属于系数组标志值为1的系数组的各残差系数来对标志进行编码,以表示残差系数为非零(“有效”)还是零(“非有效”)。由于缩放和量化模块322所引起的精度损失,因此重新缩放变换系数阵列366与原始变换系数362不相同。然后将来自逆缩放模块326的重新缩放变换系数阵列366输出至逆变换模块328。逆变换模块328进行从频域向着空间域的逆变换,以产生与视频解码器134处所产生的空间域表示相同的重新缩放变换系数阵列366的空间域表示368。

运动估计模块338通过将帧数据310与来自(通常配置在存储器206内的)帧缓冲器模块332中所存储的帧的一个或多个集合中的先前帧数据进行比较,来产生运动矢量374。帧的这些集合已知为“参考图片列表”。然后将这些运动矢量374输入至运动补偿模块334,其中该运动补偿模块334考虑到源自于运动矢量374的空间偏移,通过对帧缓冲器模块332中所存储的样本进行滤波来产生帧间预测的预测单位(PU)376。尽管图3没有示出,但也将运动矢量374作为句法元素传递至熵编码器模块324以编码在编码位流312中。帧内预测模块336使用从求和模块342获得的样本370来产生帧内预测的预测单位(PU)378,其中该求和模块342对来自多路复用器模块340的预测单位(PU)382和来自逆变换模块328的空间域表示368进行求和。帧内预测模块336还产生帧内预测模式380,其中该帧内预测模式380被发送至熵编码器324以编码在编码位流312中。

可以使用帧内预测或帧间预测方法来生成预测单位(PU)。帧内预测方法利用与先前进行了解码的预测单位(PU)邻接(通常位于该预测单位的上方和左方)的样本,从而在该预测单位(PU)内生成参考样本。被称为“帧内预测模式”的各种方向的帧内预测都是可以的。帧间预测方法利用运动矢量以参考来自所选择的参考帧中的块。由于块可以与子样本精度(例如,样本的1/8)向下对准,因此需要进行滤波以针对预测单位(PU)创建参考样本块。根据由此得到的编码位流312的期望位率和由于帧内预测或帧间预测方法而引入的图像质量失真量之间的率失真权衡来判断使用哪一个方法。如果使用帧内预测,则还根据率失真权衡来从一组帧内预测可能模式中选择一个帧内预测模式。多路复用器模块340根据通过率失真算法所作出的决定,来选择来自帧内预测模块336的帧内预测的参考样本378或来自运动补偿块334的帧间预测的预测单位(PU)376。求和模块342产生总和370,其中将该总和370输入至去块滤波器模块330。去块滤波器模块330沿着块边界进行滤波,从而产生写入存储器206内所配置的帧缓冲器模块332的去块样本372。帧缓冲器模块332是具有用以保持来自一个或多个过去帧的数据作为参考图片列表的一部分以供将来参考的充足容量的缓冲器。

对于开发中的高效率视频编码(HEVC)标准,将熵编码器324所产生的编码位流312描绘成网络抽象层(NAL)单位。通常,帧的各片包含在一个NAL单位中。熵编码器324通过进行上下文自适应二进制算术编码(CABAC)算法将统称为“句法元素”的残差系数阵列364、帧内预测模式380、运动矢量和其它参数编码在编码位流312中。将句法元素一起组成“句法结构”,这些分组可以包含用以描述层级结构的递归。除诸如帧内预测模式等的序数值或者诸如运动矢量等的整数值以外,句法元素还包括诸如用以表示四叉树分割等的标志。运动估计模块338和运动补偿模块334在精度为亮度样本的1/8的运动矢量374上进行工作,从而使得能够进行帧数据310中的帧之间的运动的精确建模。

尽管参考高效率视频编码(HEVC)视频解码流水线来描述图4的视频解码器134,但模块420~434所进行的处理阶段对于采用诸如H.264/MPEG-4AVC、MPEG-2和VC-1等的熵编码的其它视频编解码器而言是共通的。还可以从存储器206、硬盘驱动器210、CD-ROM、蓝光(Blu-rayTM)盘或其它计算机可读存储介质读取编码视频信息。可选地,可以从诸如连接至通信网络220的服务器或射频接收器等的外部源接收编码视频信息。

如从图4看出,将诸如编码位流312等的所接收到的视频数据输入至视频解码器134。可以从存储器206、硬盘驱动器210、CD-ROM、蓝光(Blu-rayTM)盘或其它计算机可读存储介质读取编码位流312。可选地,可以从诸如连接至通信网络220的服务器或射频接收器等的外部源来接收编码位流312。编码位流312包含表示要解码的所拍摄帧数据的编码句法元素。

将编码位流312输入至熵解码器模块420,其中该熵解码器模块420从编码位流312中提取句法元素,并且将这些句法元素的值传递至视频解码器134中的其它块。熵解码器模块420应用上下文自适应二进制算术编码(CABAC)算法以从编码位流312解码句法元素。使用解码后的句法元素来在视频解码器134内重建参数。参数包括零以上的残差系数阵列450、运动矢量452和预测模式454。将残差系数阵列450传递至逆缩放和变换模块422,将运动矢量452传递至运动补偿模块434并且将预测模式454传递至帧内预测模块426和多路复用器428。逆缩放和变换模块422对残差系数数据进行逆缩放以创建重建变换系数。然后逆缩放和变换模块422应用“逆变换”以将重建变换系数从频域表示转换(或“解码”)为空间域表示,从而产生残差样本阵列456。逆缩放和变换模块422内的逆变换进行与逆变换328相同的操作。因此,逆缩放和变换模块422必须被配置为提供对符合开发中的高效率视频编码(HEVC)标准的编码位流312进行解码所需的变换大小的预定集合。

运动补偿模块434将来自熵解码器模块420的运动矢量452与来自存储器206内所配置的帧缓冲器块432的参考帧数据460相组合使用,以产生作为输出解码帧数据的预测结果的针对预测单位(PU)的帧间预测的预测单位(PU)462。在预测模式454表示使用帧内预测对当前编码单位进行编码的情况下,帧内预测模块426使用在空间上邻接预测单位(PU)的样本和还由预测模式454提供的预测方向来产生针对预测单位(PU)的帧内预测的预测单位(PU)464。根据从求和模块424输出的总和458来获得在空间上邻接的样本。多路复用器模块428根据当前预测模式454来选择针对预测单位(PU)466的帧内预测的预测单位(PU)464或帧间预测的预测单位(PU)462。利用求和模块424将从多路复用器模块428输出的预测单位(PU)466与来自逆缩放和变换模块422的残差样本阵列456相加,以产生总和458,然后将该总和458分别输入至去块滤波器模块430和帧内预测模块426。去块滤波器模块430沿着诸如变换单位(TU)边界等的数据块边界进行滤波以使可见的伪影平滑化。将去块滤波器模块430的输出写入存储器206内所配置的帧缓冲器模块432。帧缓冲器模块432提供用以保持一个或多个解码帧以供将来参考的充足存储量。还将解码帧412从帧缓冲器模块432输出至诸如显示装置136等的显示装置。

图5A和5B各自示出分别使用4∶2∶0色度格式和4∶2∶2色度格式进行编码后的帧部分500和帧部分510的样本网格。将色度格式作为配置参数指定到视频编码器114,并且视频编码器114将“chroma_format_idc”句法元素编码在用于指定该色度格式的编码位流312中。视频解码器134从编码位流312解码“chroma_format_idc”句法元素以确定使用中的色度格式。例如,在4∶2∶0色度格式处于使用中的情况下,chroma_format_idc的值为1,在4∶2∶2色度格式处于使用中的情况下,chroma_format_idc的值为2,并且在4∶4∶4色度格式处于使用中的情况下,chroma_format_idc的值为3。在图5A和5B中,使用“×”符号来例示诸如亮度样本位置501等的亮度样本位置,并且使用“○”符号来例示诸如色度样本位置502等的色度样本位置。通过在所示出的点处对帧部分500进行采样,在应用4:2:0色度格式的情况下,针对各颜色通道获得样本网格。在各亮度样本位置×处,对亮度通道(“Y”)进行采样,并且在各色度样本位置○处,对色度通道(“U”和“V”)这两者进行采样。如图5A所示,针对各色度样本位置,存在亮度样本位置的2×2排列。通过对帧部分510中所示出的亮度样本位置处的亮度样本和色度样本位置处的色度样本进行采样,在应用4:2:2色度格式的情况下,针对各颜色通道获得样本网格。对帧部分510进行与帧部分500相同的样本向颜色通道的分配。与帧部分500相反,在帧部分510中存在两倍多的色度样本位置。在帧部分510中,色度样本位置每隔一个亮度样本位置进行配置。因此,在图5B中,针对各色度样本位置,存在亮度样本位置的2×1排列。

以上以亮度样本为单位说明了变换单位的各种容许尺寸。因而,通过针对亮度通道应用的变换所覆盖的区域将具有与变换单位尺寸相同的尺寸。由于变换单位还对色度通道进行编码,因此针对各色度通道所应用的变换将具有根据使用中的特定色度格式而改变的尺寸。例如,在4:2:0色度格式处于使用中的情况下,16×16变换单位(TU)将针对亮度通道使用16×16变换并且针对各色度通道将使用8×8变换。一个特殊情况为:在将4×4变换用于亮度通道的情况下,不存在可用于色度通道的相应可用的2×2变换(应用4:2:0色度格式的情况)或可用的4×2变换(应用4:2:2色度格式的情况)。在该特殊情况下,针对各色度通道的4×4变换可以覆盖被多个亮度变换所占据的区域。

图6A是帧的编码树块(CTB)600内的(利用粗边框示出的)编码单位(CU)602的示例性变换树的示意表示。一个四叉树子分割将编码树块(CTB)600分割成诸如编码单位(CU)602等的四个32×32编码单位(CU)。在编码单位(CU)602内存在示例性变换树。示例性变换树包括若干四叉树子分割,从而得到例如变换单位#9(TU)604的如图6A那样编号的10个变换单位(TU)。变换单位#1~#10覆盖编码单位(CU)602整体。各四叉树子分割将区域从空间上分割成四个象限,从而得到四个较小区域。各变换单位(TU)具有与该变换单位(TU)在变换树内的层级相对应的变换深度值。层级表示在四叉树子分割终止之前所进行的四叉树子分割的数量,从而得到占据相应区域的变换单位(TU)的实例。例如,变换单位#9(TU)604占据编码单位(CU)602的区域的1/4,因此其变换深度为1。各变换单位(TU)具有通常被描述为包含变换单位(TU)的区域在亮度样本网格上的尺寸的关联大小(或“变换大小”)。该大小依赖于编码单位(CU)大小和变换深度。变换深度为0的变换单位(TU)的大小等于相应编码单位(CU)的大小。变换深度的递增使得存在于变换树中的给定变换深度处的变换单位(TU)的大小减半。由于帧包括亮度通道和色度通道,因此编码单位(CU)602占据亮度样本网格和色度样本网格这两者上的区域,因而各变换单位(TU)包括描述亮度样本网格上的亮度样本和色度样本网格上的色度样本这两者的信息。各变换单位(TU)的信息的性质依赖于视频编码器114或视频解码器134的处理阶段。在向变换模块320的输入以及逆缩放和变换模块422的输出处,残差样本阵列360和456分别包含空间域中的各变换单位(TU)的信息。由于亮度通道和色度通道之间的处理差异,因而可以将残差样本阵列360和456进一步分割成“色度残差样本阵列”和“亮度残差样本阵列”。在来自缩放和量化模块322的输出以及逆缩放和变换模块422的输入处,残差系数阵列364和450分别包含频域中的各变换单位(TU)的信息。由于亮度通道和色度通道之间的处理差异,因而可以将残差样本阵列364和450进一步分割成“色度残差系数阵列”和“亮度残差系数阵列”。

图6B示出针对包含一组变换单位(TU)并且占据编码单位(CU)602的32×32编码单位(CU)的亮度通道的与图6A的示例性变换树相对应的示例性变换树630,其中该示例性变换树630占据亮度样本网格上的32×32亮度样本阵列。图7示出表示示例性变换树630的数据结构700。在图6B中,编号为1~10的框表示(利用几个变换单位(TU)640例示的)存在于区域632内的变换单位,并且各框包含在(虚线边框的框所示出的)无法进行进一步子分割的区域中。

在图6B中,编号为1和9的框包含针对亮度通道的16×16变换,编号为2、3和8的框包含针对亮度通道的8×8变换,并且编号为4~7的框包含针对亮度通道的4×4变换。针对这些框各自的相应区域(虚线框)的编码块标志值为1,以表示存在变换。

如以下将论述的,利用在位流的编码和解码各自中使用的但无需在位流中进行传输的单独编码块标志值来指定针对各颜色通道的变换的有无。结果,从熵解码器420输出的残差系数阵列450的数量依赖于编码块标志值。在任何颜色通道中均不存在有效系数的情况下,从熵解码器420输出的残差系数阵列450的数量为0。

在图7中,圆形表示在相应圆形内示出分割变换标志值的分割变换标志值。在图7中,三角形表示在相应三角形内示出编码块标志值的编码块标志值。正方形表示对各变换进行编号以与图6B中存在的变换编号一致的变换单位。

示例性变换树630的最高层级包含占据32×32编码单位(CU)的区域632。分割变换标志值702表示将区域632子分割成诸如区域634等的四个16×16区域,由此定义示例性变换树630的“非叶”节点。针对各16×16区域,诸如分割变换标志值704等的进一步分割变换标志值表示应将各个16×16区域进一步子分割成四个8×8区域。例如,如分割变换标志值704(0)所示,没有对区域634进行进一步子分割,由此定义示例性变换树630的“叶”节点。作为对比,如分割变换标志值712(1)所示,将区域638进一步子分割成四个4×4区域(诸如区域636等)。变换树630中所存在的递归分割结构与编码树块(CTB)中所存在的四叉树分割类似。对于亮度通道,在四叉树的“叶”节点处,利用编码块标志值来用信号通知在变换单位(TU)中存在变换,例如编码块标志值708(1)表示在区域634中存在变换710。

由于可以使用变换来表示各区域中的残差数据,因此不允许区域小于所支持的最小变换大小(诸如针对亮度通道的4×4个亮度样本等)。另外,对于大于最大可用变换大小的区域,推断出分割变换标志值为1。例如,对于顶层等级为64×64编码单位的变换树,在所支持的最大变换大小为32×32个亮度样本的情况下发生向四个32×32区域的自动子分割(即,在编码位流312中没有用信号通知)。

右下方的16×16区域642包含针对亮度通道无变换的变换单位(TU)(编号为10(十)并且带阴影),因此其相应编码块标志值716为0。

图6C和8示出针对色度通道的与图6A的示例性变换树相对应的示例性变换树630,其中示例性变换树630是针对4:2:2色度格式所配置的,包含与针对亮度通道的变换树630相对应的针对色度通道的一组变换,并且由数据结构800来表示。由于在亮度通道和色度通道之间变换树层级凭借图6A的结构是共通的,因此在数据结构700和800之间共用分割变换标志值。与数据结构700相对比,数据结构800包括各变换分割标志值为1的编码块标志值(即,在变换树的非叶节点上)。例如,编码块标志值802(1)与变换分割标志702相关联。如果变换树的非叶节点上的编码块标志值为0,则推断出子节点上的编码块标志值为0(并且没有将相应的编码块标志编码在编码位流312中)。尽管在亮度通道中可能存在有效残差系数,但如果在任何子区域中都不存在有效残差系数,则非叶区域处的编码块标志值使得能够终止针对各色度通道的变换树的较低等级处的编码块标志的编码。由于大多数信息存在于亮度通道中,因此这是典型的所拍摄帧数据的共通情形。

在针对4:4:4色度格式配置视频编码器114和视频解码器134的情况下,大小并非是预定集合的变换单位(TU)大小其中之一的任何给定变换单位(TU)的各色度通道的色度区域具有与该给定变换单位(TU)(即,在没有发生推断分割的情况下)的亮度区域相同的尺寸。在针对4:4:4色度格式配置视频编码器114和视频解码器134的情况下,大小是预定集合的变换单位(TU)大小其中之一的任何给定变换单位(TU)的各色度通道的色度区域具有小于该给定变换单位(TU)(即,在发生推断分割的情况下)的亮度区域的尺寸。

在4:2:2色度格式处于使用中的情况下,这样得到包括针对各色度通道的色度样本中的图6C的16×32区域662并由此占据色度样本网格上的16×32区域的编码单位(CU)602。图6C示出绘制为色度样本的阵列的色度样本网格上的区域,其中各色度样本沿水平方向和垂直方向均等地间隔开(与图5B相对比)。由于使用了4:2:2色度格式,因此图6C的各色度区域相对于图6B的相应亮度区域看似为沿水平方向被压缩。分割变换标志值702(1)将与编码单位(CU)602相对应的16×32区域662分割成诸如8×16区域664等的四个8×16区域。8×16区域664具有非正方形形状,并且其大小大于诸如4×8区域670等的图6C所示的其它非正方形区域。对于各8×16区域,以与存在于针对亮度样本阵列的变换树630中的四叉树分割相类似的方式,诸如分割变换标志值704等的分割变换标志值表示是否应将相应的8×16区域进一步子分割成四个更小的4×8区域。将右上方的8×16区域672进一步子分割成四个4×8区域。编码块标志值804(1)表示四个4×8区域各自可以包含有效残差系数。因而,针对各4×8区域的编码块标志需要表示针对该相应区域存在变换。在这四个4×8区域中,左下方的4×8区域674(带阴影)包含变换单位(TU)但不包含变换,因此具有编码块标志值814(0)。诸如区域670等的其余的4×8区域各自具有变换,因此具有相应的编码块标志值(1)。将左上方的8×16区域子分割成两个相等大小的8×8区域。与四叉树子分割相对比,在编码位流312中不存在相应的分割变换标志。

将在编码位流312中不存在信令的情况下将变换单位(TU)中的诸如色度通道等的通道的区域分割成(各自可以具有变换的)多个区域称为“推断分割”。该推断分割使得不必引入支持针对该情况(8×16)的非正方形变换的硬件。作为代替,使用诸如第一个8×8变换666等的变换。由于通过推断分割而产生的各个区域可以包含所有的零残差信息,因此需要指定在通过推断分割所产生的各区域中存在变换。因此,针对通过推断分割所产生的各区域需要单独的编码块标志值。在这种情况下,编码块标志值806和808分别与第一个8×8变换666和第二个8×8变换668相对应。对于没有发生推断分割的变换单位(TU),针对各色度通道的编码块标志值指定针对被色度通道的变换单位(TU)占据的区域的变换的有无。在发生推断分割的情况下,针对由此产生的各个区域需要单独的编码块标志值(图8中未示出),然而实现可以保留归因于整个变换单位(TU)的编码块标志值。在所有情况下都可以将单独的编码块标志值推断为“1”,或者可以通过对分割所产生的各区域的编码块标志值进行逻辑“OR(或)”运算来确定单独的编码块标志值。如果根据通过分割所产生的各区域的编码块标志值来确定单独的编码块标志值,则单独的编码块标志值可以由熵编码器324编码在编码位流312中并且由熵解码器420从编码位流312解码为附加编码块标志(图9中未示出)。在这种情况下,在单独的编码块标志值为0的情况下,可以推断出来自分割的各区域的编码块标志值为0,并且在单独的编码块标志值为1的情况下,来自分割的各区域的编码块标志由熵编码器324编码在编码位流312中并且由熵解码器420从编码位流312解码。

16×32区域662的左下方的8×16的区域680示出在上方的8×8推断区域682中存在8×8变换但在下方的8×8推断区域684中不存在8×8变换的推断分割。右下方的8×16阵列676(带阴影)包含变换单位(TU),但在通过推断分割所产生的任一正方形8×8区域中不包含变换,因此其编码块标志值810、812为0。

存在两个色度通道得到图6C所示的结构的重复,其中单独的编码块标志值用于指定针对各色度通道存在变换。在该实现中,针对色度的除大小4×8以外的区域大小来推断分割,从而使用诸如(区域670中所包含的)4×8变换816等的4×8矩形变换,并且使得能够在其它情况(例如,8×8、16×16)下重新使用现有的正方形变换。因而,可以认为存在分割成两个区域的预定区域大小(诸如8×16和16×32等)的集合,因而可以使用(大小为8×8和16×16))两个变换。发生推断分割的区域大小的预定集合的不同定义也是可以的,并且将允许使用现有的正方形变换和矩形变换的不同组合。针对特定实现,还可以始终进行分割的推断,其中在这种情况下,针对色度4:2:2颜色通道没有引入矩形变换。在这种情况下,发生推断分割的区域大小的预定集合包含所有可能的色度区域大小(例如,针对4:2:2色度格式的4×8、8×16和16×32或者针对4:4:4色度格式的4×4、8×8、16×16和32×32)。

在4:2:0色度格式处于使用中的情况下,针对变换单位(TU)中的任一色度区域没有发生推断分割,因此针对各色度通道的变换的最大数量始终为1(针对各色度通道的编码块标志值控制是否发生色度变换)。

尽管独立于亮度通道和色度通道之间的差来对视频编码器114和视频解码器134进行说明,但由于色度格式而产生的不同样本网格使得模块的差异成为必要。实际实现针对亮度通道和色度通道可以具有单独的“处理路径”。因而,这种实现可以使亮度样本的处理和色度样本的处理解耦。由于编码位流312针对亮度通道和色度通道这两者是单个位流,因此不使熵编码器324和熵解码器420解耦。另外,诸如帧缓冲器332、432等的单个帧缓冲器保持亮度样本和色度样本,因而没有解耦。然而,模块322~330和334~340以及模块422~430和434可以使亮度处理和色度处理解耦,从而使得能够进行针对亮度和色度具有单独逻辑的实现,由此创建“亮度处理路径”和“色度处理路径”。

特定实现可以推断变换单位(TU)的色度通道的16×32区域向两个16×16区域的分割,但无法推断针对8×16情况和4×8情况的分割。代替能够依赖于现有技术中已成熟的4、8或16点变换逻辑,这种实现使得不必向色度处理路径引入32点变换逻辑。

图9A和9B示出可用于编码或表示变换树的层级的句法结构。在变换树的非叶节点处,根据诸如数据结构700和800等的数据结构递归地扩展句法结构900,以定义存在于编码位流312的与变换树相对应的部分中的句法元素。在变换树的(在变换树中没有发生进一步子分割的)叶节点处,句法结构930定义了存在于编码位流312的该部分中的句法元素。通常,存在针对亮度的一个数据结构和针对色度的两个数据结构,尽管诸如用于对阿尔法(alpha)通道或深度映射进行编码等的其它数据结构也是可以的。可选地,诸如在色度通道共用一个数据结构并且在色度通道之间能够共用编码块标志值的情况下等,可以利用较少的数据结构。变换树非叶节点句法结构902定义了针对诸如变换树630等的变换树的一个层级的编码。分割变换标志910对诸如分割变换标志值702等的分割变换标志值(1)进行编码。该值表示:变换树非叶节点句法结构902包括包含变换树非叶节点句法结构902或变换树叶节点句法结构932的附加实例或者“子节点”的较低层级。编码块标志912对针对“U”色度通道的编码块标志值802(1)进行编码,并且编码块标志914对针对“V”色度通道的另一编码块标志值进行编码。如果变换树非叶节点句法结构902定义变换树层级的顶层等级,则存在编码块标志912、914。如果变换树非叶节点句法结构902没有定义变换树层级的顶层等级,则在存在变换树层级的母等级中的相应编码块标志并且这些编码块标志的值为1的情况下,仅存在编码块标志912、914。由于在变换树630中(相对于顶层层级)存在下层层级,因此发生四叉树子分割。该子分割得到包括在变换树非叶节点句法结构902中的四个变换树句法结构916、918、920、922。

句法结构930定义了针对变换树叶节点932的叶节点的编码(即,没有发生进一步子分割)。分割变换标志940对诸如分割变换标志值704等的分割变换标志值(0)进行编码。

在相应区域大于最小大小的情况下,仅对分割变换标志进行编码。例如,针对(与所支持的最小亮度变换大小相对应的)4×4个亮度样本的区域,区域636具有最小容许大小,因而推断出变换分割标志值714为0,并且针对相应的变换树句法结构不进行分割变换标志的编码。

对于区域636,使用4×8色度变换来对色度残差样本进行变换,因而不存在推断变换分割。可以存在诸如编码块标志942和编码块标志946等的编码块标志,以用信号通知针对各个色度通道存在变换。编码块标志950用信号通知针对亮度通道存在变换。在变换单位(TU)句法结构952中存在针对亮度通道和色度通道(在存在的情况下)的残差系数。如果编码块标志950的值为1,则在编码位流312中存在亮度残差块954。如果针对各色度通道的编码块标志的值为1,则在编码位流312中存在相应的色度残差块956和960。

对于区域664,使用两个8×8色度变换来对色度残差样本进行变换,因而存在推断变换分割。编码块标志942和946(在存在的情况下)用信号通知针对第一个8×8变换666的各色度通道存在8×8变换。编码块标志944和948(在存在的情况下)用信号通知针对第二个8×8变换668的各色度通道存在8×8变换。如果编码块标志944的值为1,则在编码位流312中存在色度残差块958。如果编码块标志948的值为1,则在编码位流312中存在色度残差块962。

如图9B所示的句法结构930示出针对推断变换分割以邻接方式进行编码后的各色度通道的第一变换和第二变换。可选地,可以使用以邻接方式对各色度通道的句法元素进行编码或者对交错有其它句法元素的各色度通道的句法元素进行编码等的其它配置。

图9C和9D示出可用于编码或表示变换树的层级的替代句法结构9100。在变换树的非叶节点处,根据诸如数据结构700和800等的数据结构递归地扩展替代句法结构9100,以定义存在于编码位流312的与变换树相对应的部分中的句法元素。针对包括叶节点的变换树中的各节点,存在替代句法结构9100的实例,其中这些叶节点各自包含变换单位(TU)。在发生“推断分割”以针对各色度通道对变换单位(TU)进行子分割的情况下,句法结构9130定义了存在于编码位流312的该部分中的句法元素。通常,存在针对亮度的一个数据结构和针对色度的两个数据结构,尽管诸如用于对阿尔法通道或深度映射进行编码等的附加数据结构也是可以的。可选地,诸如在色度通道共用一个数据结构并且在色度通道之间能够共用编码块标志值的情况下等,可以利用较少的数据结构。变换树句法结构9102定义了针对诸如变换树630等的变换树的一个层级的编码。

对于诸如变换树630等的变换树的非叶节点处的变换树句法结构9102的实例,分割变换标志9110对诸如分割变换标志值702等的分割变换标志值(1)进行编码。该值表示变换树句法结构9102的实例包括包含变换树句法结构9102的附加实例或“子节点”的较低层级。编码块标志9112根据编码块标志912的描述来对编码块标志值进行编码。编码块标志9114根据编码块标志914的描述来对编码块标志值进行编码。由于在变换树630(相对于顶层层级)中存在较低的层级,因此发生四叉树子分割。该子分割得到变换树节点句法结构9102中所包括的四个变换树句法结构9116、9118、9120、9122。各个变换树句法结构9116、9118、9120、9122是变换树句法结构9102的另一实例。在变换树句法结构9102中将不存在编码块标志9124和亮度变换单位部9126。

实现还可以对变换树句法结构9102进行配置,以使得将编码块标志9124和亮度变换单位部9126(在存在的情况下)放置在变换树句法结构9102中的较前位置,诸如放置在编码块标志9114和变换树句法结构9116之间等。

对于诸如变换树630等的变换树的叶节点处的变换树句法结构9102的实例,分割变换标志9110对诸如分割变换标志值704等的分割变换标志值(0)进行编码。因而,变换树句法结构9102的实例与变换树930中的变换单位(TU)相对应。变换单位(TU)具有根据诸如编码单位(CU)602等的包含变换单位(CU)的编码单位(CU)以及变换深度所确定的大小。编码块标志9112对编码块标志值(1)进行编码,以表示通过针对“U”色度通道的推断分割所产生的任何色度区域均可以具有编码块标志值(1)。如果编码块标志9112对值0进行编码,则通过针对“U”色度通道的推断分割所产生的各色度区域的编码块标志值具有被推断为0的编码块标志值。即使在编码块标志9112对值1进行编码的情况下,实现仍可以对通过推断分割所产生的各色度区域的值为0的编码块标志进行编码。因此,实现可以将编码块标志9112从编码位流312中省略,代替地始终针对所省略的编码块标志9112推断编码块标志值(1)。编码块标志9114以与编码块标志9112相同的方式对“V”色度通道的另一编码块标志值进行编码。对于与发生向四个色度区域的推断分割(色度残差系数阵列的最大数量为4)的大小一致的变换单位(TU)大小,在变换树节点句法结构9102中包括四个变换树句法结构9116、9118、9120、9122。对于与发生向两个色度区域的推断分割(色度残差系数阵列的最大数量为2)的大小一致的变换单位(TU)大小,在变换树节点句法结构9102中包括诸如变换树句法结构9116、9118等的两个变换树句法结构。各个变换树句法结构9116、9118、9120、9122是针对色度句法结构9132的变换树的实例。编码块标志9124对诸如编码块标志值708等的编码块标志值进行编码,从而指定针对变换单位(TU)的亮度通道的变换的有无。变换单位9126的亮度部分将亮度残差系数阵列编码为亮度残差句法元素9128。

在发生推断分割的情况下仅针对各色度区域而存在的色度句法结构9132的变换树包括变换树句法结构930的句法的缩小集合。编码块标志9142对色度区域的“U”色度通道的编码块标志值进行编码。编码块标志9144对色度区域的“V”色度通道的编码块标志值进行编码。变换单位(TU)9146的色度部分对变换单位(TU)句法结构952的子集进行编码。如果编码块标志9142的值为1,则变换单位(TU)9146的色度部分针对“U”色度通道将色度残差系数阵列编码为色度残差句法元素9150。如果编码块标志9144的值为1,则变换单位(TU)9146的色度部分针对“V”色度通道将色度残差系数阵列编码为色度残差句法元素9152。

如图9D所示的句法结构9130针对推断变换分割示出紧挨各色度通道的第一和第二色度残差系数阵列之后进行编码得到的第一和第二编码块标志。可选地,可以使用诸如针对各色度通道以邻接方式对编码块标志和色度残差系数阵列进行编码等的其它配置。

尽管通过将8×16区域664分割成两个8×8区域来例示推断变换分割,但替代实现可以针对其它区域进行该分割。例如,一些实现可以推断16×32区域向两个16×16区域的分割。这些实现有利地使得不必进行色度处理路径中的32点1D变换。由于在应用4:2:0色度格式时针对色度处理路径不要求32点1D变换,因此将针对32点1D变换的要求从色度处理路径完全去除。由此,使用单独的处理电路以使亮度通道和色度通道解耦的实现可以在色度处理电路中实现较低的实现成本。

存在针对各亮度样本位置具有一个色度样本位置的4:4:4色度格式。因此,利用该格式,针对色度格式和亮度格式的变换可以具有相同大小。在亮度处理路径中最大变换大小为32×32的情况下,这需要将32×32变换引入色度处理路径以进行解耦实现。特定实现可以推断针对各色度通道的用以将32×32区域分割成四个16×16区域的分割,从而使得能够将现有的16×16变换重新用在色度处理路径中。由于在针对4:4:4色度格式的色度处理路径中将仅使用32×32变换,因此推断针对各色度通道的用以将32×32区域分割成四个16×16区域的分割将使得能够将32×32变换从色度处理路径去除,从而减少所需的处理电路。这些实现针对各色度通道将需要四个编码块标志值,并且由此将多达四个编码块标志在编码位流312中编码在针对各色度通道的句法结构930中。

支持4:2:2色度格式的实现还可以推断针对各色度通道的用以将32×16区域分割成四个8×16区域的分割。这些实现针对各色度通道需要四个编码块标志值,由此将四个编码块标志在编码位流312中编码在针对各色度通道的句法结构930中,因而在变换单位(TU)句法结构952中可以引入“CU3”、“CU4”、“CV3”和“CV4”编码块标志(图9B中未示出)。这些实现避免了将32点变换逻辑引入色度处理路径,并且在不对8×16区域进行子分割的情况下,这些实现可以将要求变换的(亮度通道中的)大小为16×16的变换单位(TU)所需的8×16变换逻辑重新用于针对色度通道的大小为8×16的变换。

图10是示出用于通过对变换树非叶节点句法结构902和变换树叶节点句法结构932进行编码来对变换单位(TU)进行编码的方法1000的示意流程图。参考变换单位(TU)的色度通道来说明方法1000,然而方法1000还可应用于变换单位(TU)的任何色度通道。由于变换树非叶节点句法结构902和变换树叶节点句法结构932描述变换树中的一个节点,因此方法1000将变换树的一个节点编码在编码位流312中。例如,可以以硬件或利用在处理器205上可执行的软件来实现方法1000。最初针对变换树的顶层等级调用方法1000,并且方法1000能够(递归地)调用自身以对变换树的子节点进行编码。确定变换单位大小的步骤1002根据包含变换树的编码单位(CU)大小和变换单位(TU)的变换深度值来确定变换树中的变换单位(TU)的大小。在变换树的顶层等级调用方法1000的情况下,将变换深度值设置为0,否则利用方法1000的母实例来提供变换深度值。如果变换深度值小于最大容许变换深度,则将诸如分割变换标志值702等的分割变换标志值作为分割变换标志910编码在编码位流312中。

在分割变换标志值为1时,仅在变换树层级的母节点具有相应的编码块标志值(1)的情况下,才针对各色度通道进行色度编码块标志912和914的编码。然后,方法1000针对变换树的(利用变换树句法结构916、918、920和922在编码位流312的一部分中所表示的)各子节点调用方法1000的新实例。针对子节点所调用的方法1000的各实例设置有与(本方法1000实例的变换深度值+1)相等的变换深度值。

在分割变换标志值为0的情况下,识别最大数量的正变换的步骤1004确定针对编码中的区域的各色度通道的最大数量(n)的变换。在没有发生推断分割的情况下,该数量n将为1。在4:2:2色度格式处于使用中、遇到诸如8×16区域664等的色度通道的矩形区域并且该区域大小是区域大小的预定集合(诸如16×32和8×16等)其中之一的情况下,发生推断分割并且变换的最大数量将为2(否则变换数量将为1)。另一方面(区域大小不是区域大小的预定集合其中之一),变换的最大数量将为1。例如,如果4×8不是区域大小的预定集合其中之一,则变换的最大数量将为1。在4:4:4色度格式处于使用中并且所遇到的区域大小是区域大小的预定集合其中之一(诸如32×32区域等)的情况下,发生推断分割并且变换的最大数量将为4。另一方面(区域大小不是区域大小的预定集合其中之一),最大数量将为1。例如,如果8×8不是区域大小的预定集合其中之一,则变换的最大数量将为1。尽管区域大小的预定集合包括8×16,但区域大小的其它预定集合也是可以的,诸如在4:2:2色度格式处于使用中的情况下仅为16×32或者在4:4:4色度格式处于使用中的情况下为32×32等。

针对各色度通道,如果母节点的编码块标志值为1,则针对各个n,将编码块标志编码在编码位流312中。例如,在变换数量等于2的情况下,编码块标志942和944表示针对通过分割所推断出的两个区域各自存在变换。选择正变换的步骤1006基于变换单位(TU)大小来针对最大数量的各变换从正变换的预定集合中选择正变换,而该变换单位(TU)大小依赖于变换深度,因而与最大编码单位中的变换单位的层级有关。在变换深度等于0的情况下,变换单位(TU)大小等于编码单位(CU)大小。对于变换深度的各递增,变换单位(TU)大小减半。对于32×32编码单位(CU)大小、变换深度为0并且使用4:2:2色度格式,变换单位(TU)大小由此将是32×32并且针对色度的变换大小由此将为16×32。例如,在变换的最大数量为2并且针对色度的区域大小为16×32的情况下,针对通过推断分割而产生的色度的各个16×16区域选择16×16正变换。

应用正变换的步骤1008针对编码块标志值为1的相应区域上的最大数量的各变换进行正变换。对色度残差样本阵列进行编码的步骤1008通常由变换模块320来进行。这样使得将各色度残差样本阵列(空间域表示)转换成色度残差系数阵列(频域表示)。

对色度残差系数阵列进行编码的步骤1010将编码块标志值为1的各色度通道的最大数量的变换区域各自的色度残差系数阵列编码在编码位流312中。针对给定色度通道的给定变换单位进行编码的色度残差系数阵列的数量依赖于各变换的编码块标志值,因而将在0~(最多为)变换的最大数量的范围内改变。例如,在变换数量为2、并且这两个色度通道针对各个计数值的编码块标志值均为1的情况下,将色度残差块956、958、960和962编码在编码位流312中。如果针对给定色度通道的各变换的编码块标志值为0,则针对该色度通道不将色度残差块编码在编码位流312中。对色度残差系数阵列进行编码的步骤1010通常由熵编码器324来进行。

图11是示出用于通过对变换树非叶节点句法结构902和变换树叶节点句法结构932进行解码来对变换单位(TU)进行解码的方法1100的示意流程图。参考变换单位(TU)的色度通道来说明方法1100,然而方法1100还可应用于变换单位(TU)的任何色度通道。由于变换树非叶节点句法结构902和变换树叶节点句法结构932描述变换树中的一个节点,因此方法1100从编码位流312解码变换树的一个节点。可以以适当的硬件或者可选地以例如处理器205可执行的软件来进行方法1100。最初针对变换树的顶层等级调用方法1100,并且方法1100能够(递归地)调用自身以对变换树的子节点进行解码。确定变换单位(TU)大小的步骤1102以与确定变换单位大小的步骤1002相同的方式确定变换单位(TU)大小。确定变换单位大小的步骤1102根据包含变换树的编码单位(CU)大小和变换单位(TU)的变换深度值来确定变换树中的变换单位(TU)的大小。在变换树的顶层等级调用方法1100的情况下,将变换深度值设置为0,否则将利用方法1100的母实例来提供变换深度值。在变换深度值小于最大容许变换深度的情况下,从编码位流312解码诸如分割变换标志值702等的分割变换标志值作为分割变换标志910。

在分割变换标志值为1的情况下,仅在变换树层级的母节点具有相应的编码块标志值(1)的情况下,才针对各色度通道进行色度编码块标志912和914的解码。然后,方法1100针对变换树的(利用变换树句法结构916、918、920和922在编码位流312的一部分中所表示的)各子节点调用方法1100的新实例。针对子节点所调用的方法1100的各实例设置有与(本发明1100实例的变换深度值+1)相等的变换深度值。

在分割变换标志值为0的情况下,识别最大数量的逆变换的步骤1104以与识别最大数量(n)的正变换的步骤1004相同的方式,确定针对存在于解码中的区域的各色度通道的至少一个色度残差系数阵列各自的变换的(最大)数量(n)。在没有发生推断分割的情况下,该数量n将为1。在4:2:2色度格式处于使用中、遇到诸如8×16区域664等的色度通道的矩形区域并且区域大小是区域大小的预定集合(诸如16×32和8×16等)其中之一的情况下,发生推断分割并且变换的最大数量将为2(否则,变换数量将为1)。另一方面(区域大小不是区域大小的预定集合其中之一),变换的最大数量将为1。例如,如果4×8不是区域大小的预定集合其中之一,则变换的最大数量将为1。在4:4:4色度格式处于使用中并且所遇到的区域大小是区域大小的预定集合其中之一(诸如32×32区域等)的情况下,发生推断分割并且变换的最大数量将为4。另一方面(区域大小不是区域大小的预定集合其中之一),最大数量将为1。例如,如果8×8不是区域大小的预定集合其中之一,则变换的最大数量将为1。尽管区域大小的预定集合包括8×16,但区域大小的其它预定集合也是可以的,诸如在4:2:2色度格式处于使用中的情况下仅为16×32或者在4:4:4色度格式处于使用中的情况下为32×32等。针对各色度通道,如果母节点的编码块标志值为1,则针对(n)个变换中的每一个变换,在编码位流312中解码编码块标志。例如,在变换的最大数量等于2的情况下,编码块标志942和944表示针对通过分割推断出的两个区域各自存在变换。

然后,对色度残差系数阵列进行解码的步骤1106从编码块标志值为1的编码位流312中解码针对各色度通道的最大数量的变换区域各自的残差系数阵列。针对给定色度通道的给定变换单位进行解码的残差系数阵列的数量依赖于各变换的编码块标志值,因而将在0~(最多为)“变换数量(n)”的范围内改变。例如,在变换数量为2并且这两个色度通道针对各个计数值的编码块标志均为1的情况下,从编码位流312解码色度残差块956、958、960和962。对色度残差系数阵列进行解码的步骤1106通常由熵解码器420针对编码块标志值为1的各色度残差系数阵列进行。

然后,选择逆变换的步骤1108对于针对各色度通道的编码块标志值为1的最大数量的各变换,从逆变换的预定集合中选择逆变换。例如,在变换的最大数量为2、区域大小为16×32并且针对这两个变换各自的编码块标志值为1的情况下,针对通过推断分割而产生的16×16区域各自选择16×16逆变换。

然后,应用逆变换的步骤1110针对编码块标志值为1的相应区域上的最大数量的变换区域各自进行逆变换。这样使得将各色度残差系数阵列(频域表示)转换成表示解码视频帧的色度残差样本阵列(空间域表示)。应用逆变换的步骤1110通常由逆缩放和变换模块422来进行。

针对4×8变换单位1200,图12A示出对角扫描模式1201,图12B示出水平扫描模式1202,并且图12C示出垂直扫描模式1203。使用所例示的扫描模式来对4×8变换单位1200进行扫描的这些实现具有将残差系数分组成已知为“子块”的4×4的块的性质。因此,可以使用存在于编码位流312中的“系数组”标志来针对各子块表示存在至少一个有效(非零)残差系数。对4×8变换应用4×4子块大小实现了与存在于系数始终被分组成子块的其它变换大小中的扫描模式的一致性。

特定实现可以应用系数组标志以用信号通知在各子块中存在至少一个非零残差系数。有利地,这些扫描模式通过将子块处理重新用于所有变换大小,允许重新使用对残差系数进行处理的控制软件或数字电路。可以根据诸如所配置的预测单位(PU)的帧内预测方向等的标准来选择所使用的特定扫描模式。在变换对4:2:2色度格式样本网格上的色度样本进行编码的情况下,由于将各色度样本映射到亮度样本的非正方形(2×1)阵列,因此帧内预测方向和扫描模式之间的关系改变,从而影响帧内预测模式的“方向”或角度。在位于变换单位(TU)的左上角的结束于DC系数的“后向”方向上示出扫描。此外,不要求从变换单位(TU)的右下角开始扫描。由于在变换单位(TU)的左上方区域中非零残差系数占主导,因此扫描可以从“最末有效系数位置”开始并且沿后方向进行直至到达左上方系数为止。

其它实现可以向给定区域应用一次扫描以对残差系数进行编码,然后向这些残差系数应用一个以上的变换。在这种情况下,将仅一个编码块标志用于该区域,因此用于扫描模式所覆盖的所有变换。在任何扫描中存在至少一个有效残差系数的情况下,将编码块标志设置为1。例如,可以应用图12A~12C的4×8扫描模式以对两个4×4变换的残差系数进行编码。残差系数的两个4×4阵列可以相连接以形成适合扫描模式的4×8阵列。由于对阵列进行一次扫描,因此将一个“最末有效系数”位置编码在扫描模式的位流中,并且对于该阵列,一个编码块标志值就足够了。改进的离散余弦变换(DCT)的能量压缩性质给其它方案提供了优点,诸如使沿着扫描模式的路径的各正方形变换的系数交错至矩形系数阵列内等。这样提供了在组合后的4×8阵列中各4×4残差系数阵列中的残差系数值的密度大致相等的优点,从而使得熵编码器324能够创建更高的压缩效率,以供熵解码器420进行后续解码。

特定实现的编码色度颜色通道可以使用用以对与4:2:0色度样本网格相对应的色度样本位置处的残差样本进行编码的第一变换以及用以对相对于4:2:0色度样本网格而在4:2:2色度样本网格中引入的附加色度样本位置处的残差样本进行编码的第二变换。这些实现可以有利地使用诸如Hadamard变换等的第二变换的简化变换,其中在该Hadamard变换中,将第二变换的输出与第一变换的残差样本相加(或相组合)以产生第二变换的残差样本。有利地,可以使用实现诸如Haar变换等的变换的预处理阶段来将4:2:2色度格式的色度样本网格采样成4:2:0色度格式的色度样本网格。这些结构必须从预处理阶段发送附加残差系数作为边信息,其中将这种残差应用于在最大编码单位(LCU)等级处应用预处理变换的情况下的各最大编码单位(LCU)。

针对给定区域具有多个变换的实现可以使用覆盖整个区域的单个组合扫描或针对各变换的单独扫描。如果将针对多个变换的扫描组合成一个扫描,则针对扫描中的各区域仅需一个编码块标志。使用单个组合扫描的这些实现可以通过使各变换的残差系数交错(诸如以系数为单位进行交错等),来实现残差系数的更高压缩,从而配置来自谱特性相似的各变换的残差系数。

附录A示出与句法结构900和句法结构930有关的开发中的高效率视频编码(HEVC)标准的可用“文本”。将附录A中的transform_tree()函数的各实例描述为在图9A和9C中标记为“TT”的句法结构的一部分,并且将附录A中的transform_unit()函数的各实例描述为在图9A和9B中标记为“TU”的句法结构的一部分。附录A中所提供的文本是符合句法结构900和930的文本的一个示例,并且其它示例也是可以的。符合句法结构900和930的文本表明了视频编码器114进行用以对位流进行编码的方法1000并且视频解码器134进行用以对位流进行解码的方法1100。

附录B示出与句法结构9100和句法结构9130有关的开发中的高效率视频编码(HEVC)标准的可用文本。将附录B中的transform_tree()函数的各实例描述为图9C和9D中标记为“TT”的句法结构的一部分,并且将附录A中的transform_unit()函数的各实例描述为图9C和9D中标记为“TU”的句法结构的一部分。附录B中所提供的文本是符合句法结构9100和9130的文本的一个示例,并且其它示例也是可以的。符合句法结构9100和9130的文本表明了视频编码器114进行用以对位流进行编码的方法1000并且视频解码器134进行用以对位流进行解码的方法1100。

附录A和附录B中的文本得到如下实现:在针对4:4:4色度格式所配置的大小为32×32的变换单位(TU)中遇到的32×32色度区域使得应用四个(最大数量)16×16色度变换,并且在针对4:2:2色度格式所配置的大小为32×32的变换单位(TU)中遇到的16×32色度区域使得应用两个(最大数量)16×16色度变换。通过附录A和附录B中的文本所得到的实现在应用于大小较小并且针对4:2:2色度格式所配置的变换单位(TU)的情况下,应用一个(最大)色度变换。例如,将8×16变换应用于8×16色度区域并且将4×8变换应用于4×8色度区域。

产业上的可利用性

所述的配置适用于计算机和数据处理行业,特别适用于对诸如视频信号等的信号进行编码解码的数字信号处理。

前述仅说明本发明的一些实施例,并且可以在没有背离本发明的范围和精神的情况下对本发明进行修改和/或改变,其中这些实施例仅是示例性而非限制性的。

(仅限澳大利亚)在本说明书的上下文中,词语“包括”意味着“主要但未必仅包括”或“具有”或“包含”,而不是“仅由…组成”。词语“包括(comprising)”的诸如“comprise”和“comprises”等的词尾变化具有相应的变化含义。

相关申请的交叉引用

本申请要求2012年9月28日提交的澳大利亚专利申请2012232992的优先权,其如同在此进行了充分陈述而通过引用全部包括于此。

附录A

transform_tree()和transform_unit()使用循环结构来实现推断色度分割

7.3.11变换树句法

7.3.12变换单位句法

7.4.8.1通用编码单位语义

按照如下推导变量TrafoCrCbHorCnt和TrafoCrCbVertCnt:

-如果log2TrafoSize等于5并且split_transform_flag等于0,则按照如下推导TransformIdxMax:

-如果chroma_format_idc等于1,则TrafoCrCbHorCnt和TrafoCrCbVertCnt等于1。

-如果chroma_format_idc等于2,则TrafoCrCbHorCnt等于1并且TrafoCrCbVertCnt等于2。

-否则,如果chroma_format_idc等于3,则TrafoCrCbHorCnt和TrafoCrCbVertCnt等于2。

-否则,TrafoCrCbHorCnt和TrafoCrCbVertCnt等于1。

推导出TrafoCrCbCnt作为TrafoCrCbHorCnt*TrafoCrCbVertCnt。

按照如下推导变量log2CrCbTrafoHorSize和log2CrCbTrafoVertSize。

-如果chroma_format_idc等于1,则log2CrCbTrafoHorSize和log2CrCbTrafoVertSize等于log2TrafoSize-1。

-否则,如果chroma_format_idc等于2,则log2CrCbTrafoHorSize等于log2TrafoSize,并且log2CrCbTrafoVertSize等于min(log2TrafoSize-1,4)。

-否则,如果chroma_format_idc等于3,则log2CrCbTrafoHorSize和log2CrCbTrafoVertSize等于min(log2TrafoSize,4)。

附录A结束

附录B

对于通过推断分割所产生的各色度变换,针对每对色度通道调用一次transform_tree()

7.3.11变换树句法

7.3.12变换单位句法

7.4.8.1通用编码单位语义

按照如下推导变量TrafoCrCbHorCnt和TrafoCrCbVertCnt:

-如果log2TrafoSize等于5并且split_transform_flag等于0,则按照如下推导TransformIdxMax:

-如果chroma_format_idc等于1,则TrafoCrCbHorCnt和TrafoCrCbVertCnt等于1。

-如果chroma_format_idc等于2,则TrafoCrCbHorCnt等于1并且TrafoCrCbVertCnt等于2。

-否则,如果chroma_format_idc等于3,则TrafoCrCbHorCnt和TrafoCrCbVertCnt等于2。

-否则,TrafoCrCbHorCnt和TrafoCrCbVertCnt等于1。

推导出TrafoCrCbCnt作为TrafoCrCbHorCnt*TrafoCrCbVertCnt。

附录B结束

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1