用于视频译码的量化组的制作方法

文档序号:22047522发布日期:2020-08-28 18:58阅读:211来源:国知局
用于视频译码的量化组的制作方法

本申请要求于2018年1月19日提交的美国临时专利申请第62/619,563号和于2019年1月17日提交的美国专利申请第16/250,845号的权益,所述申请中的每个申请的全部内容通过引用并入本文。

本公开涉及视频编码和视频解码。



背景技术:

数字视频功能可以并入到广泛范围的装置中,包含数字电视、数字直接广播系统、无线广播系统、个人数字助理(pda)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏机、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置等。数字视频装置实施视频译码技术,如在由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4、part10、高级视频译码(avc)、高效视频译码(hevc)标准、itu-th.265/高效视频译码(hevc)以及此类标准的扩展限定的标准中描述的那些技术。通过实施此类视频译码技术,视频装置可以更高效地发射、接收、编码、解码和/或存储数字视频信息。

视频译码技术包含空间(图片内)预测和/或时间(图片间)预测,以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可以将视频切片(例如,视频图片或视频图片的一部分)划分为视频块,所述视频块也可以被称为译码树单元(ctu)、译码单元(cu)和/或译码节点。相对于同一图片中的相邻块中的参考样本,使用空间预测对图片的帧内编码(i)切片中的视频块进行编码。图片的帧间编码(p或b)切片中的视频块可以相对于同一图片中的相邻块中的参考样本使用空间预测或相对于其它参考图片中的参考样本使用时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。



技术实现要素:

通常,本公开描述了用于视频编码和解码的技术,包含用于确定使用多种不同划分类型进行划分的视频数据图片的量化组的技术。本公开还描述了用于量化参数预测的技术。

在一个实例中,一种对视频数据进行译码的方法包含:基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定量化组(qg),为所确定的量化组内的所有视频数据块确定单个量化参数,以及使用所确定的单个量化参数对所述所确定的量化组内的所有视频数据块的变换系数执行量化过程。

在另一个实例中,一种被配置成对视频数据进行译码的设备包含:存储器,所述存储器被配置成存储所述视频数据;以及一或多个处理器,所述一或多个处理器与所述存储器通信,所述一或多个处理器被配置成:基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg,为所确定的量化组内的所有视频数据块确定单个量化参数,以及使用所确定的单个量化参数对所述所确定的量化组内的所有视频数据块的变换系数执行量化过程。

在另一个实例中,一种被配置成对视频数据进行译码的设备包含:用于基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg的装置,用于为所确定的量化组内的所有视频数据块确定单个量化参数的装置,以及用于使用所确定的单个量化参数对所述所确定的量化组内的所有视频数据块的变换系数执行量化过程的装置。

在另一个实例中,本公开描述了一种非暂时性计算机可读存储媒体,所述非暂时性计算机可读存储媒体存储指令,所述指令当被执行时使被配置成对视频数据进行译码的一或多个处理器:基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg,为所确定的量化组内的所有视频数据块确定单个量化参数,并且使用所确定的单个量化参数对所述所确定的量化组内的所有视频数据块的变换系数执行量化过程。

在下文的附图和描述中阐述了一或多个实例的细节。根据本说明书、附图和权利要求书,其它特征、目的和优点将显而易见。

附图说明

图1是展示了可以执行本公开的技术的示例视频编码和解码系统的框图。

图2a和图2b是展示了示例四叉树划分结构和对应的译码树单元(ctu)的概念图。

图3a和图3b是展示了示例四叉树二叉树(qtbt)划分结构和对应的ctu的概念图。

图4a和图4b是展示了示例多类型树(mtt)划分结构和对应的ctu的概念图。

图5是展示了根据mtt划分结构划分的ctu的另一个实例的概念图。

图6是展示了通过不同类型的树划分从ctu衍生的两个量化组(qg)的实例的概念图。

图7是展示了针对用mtt划分结构划分的ctu而衍生的两个量化组(qg)的实例的概念图。

图8是根据本公开的技术的qg衍生的一个实例。

图9是根据本公开的技术的qg衍生的另一个实例。

图10是展示了可以执行本公开的技术的示例视频编码器的框图。

图11是展示了可以执行本公开的技术的示例视频解码器的框图。

图12是展示了用于对当前块进行编码的示例方法的流程图。

图13是展示了根据本公开的示例编码技术的用于对视频数据块进行量化的示例技术的流程图。

图14是展示了用于对当前块进行解码的示例方法的流程图。

图15是展示了根据本公开的示例解码技术的用于对视频数据块进行量化的示例技术的流程图。

具体实施方式

本公开涉及确定视频数据的图片中的一或多个量化组(qg),并且涉及用于生成可以用于确定一或多个qg的语法元素的技术。本公开的所述技术可以在如高效视频译码(hevc)标准(itu-th.265)的扩展等高级视频编解码器,或如h.266/vvc(通用视频译码)等下一代视频译码标准的上下文中使用。

图1是展示了示例视频编码和解码系统100的框图,所述示例视频编码和解码系统可以执行本公开的用于确定量化组并且对所确定的量化组内的变换系数进行量化的技术。本公开的技术通常涉及对视频数据进行译码(编码和/或解码)。通常,视频数据包含用于处理视频的任何数据。因此,视频数据可以包含原始的、未译码的视频、经过编码的视频、经过解码的(例如,重构的)视频以及视频元数据,如信令数据。

如图1所示,在此实例中,系统100包含源装置102,所述源装置提供经过编码的视频数据以由目的地装置116解码和显示。具体地,源装置102通过计算机可读媒体110将视频数据提供到目的地装置116。源装置102和目的地装置116可以包括广泛范围的装置中的任一种,包含台式计算机、笔记本计算机(即,膝上型计算机)、平板计算机、机顶盒、如智能电话等电话送受话器、电视、相机、显示装置、数字媒体播放器、视频游戏机、视频流式传输装置等。在一些情况下,源装置102和目的地装置116可以被配备用于无线通信,并且因此可以被称为无线通信装置。

在图1的实例中,源装置102包含视频源104、存储器106、视频编码器200和输出接口108。目的地装置116包含输入接口122、视频解码器300、存储器120和显示装置118。根据本公开,源装置102的视频编码器200和目的地装置116的视频解码器300可以被配置成应用用于确定量化组并且对所确定的量化组内的变换系数进行量化的技术。因此,源装置102表示视频编码装置的实例,而目的地装置116表示视频解码装置的实例。在其它实例中,源装置和目的地装置可以包含其它组件或布置。例如,源装置102可以从如外部相机等外部视频源接收视频数据。同样地,目的地装置116可以与外部显示装置接口连接,而不是包含集成显示装置。

图1中所示的系统100仅是一个实例。通常,任何数字视频编码和/或解码装置都可以执行用于确定量化组并对所确定的量化组内的变换系数进行量化的技术。源装置102和目的地装置116仅为此类译码装置的实例,其中源装置102生成经过译码的视频数据以传输到目的地装置116。本公开将“译码”装置称为对数据执行译码(编码和/或解码)的装置。因此,视频编码器200和视频解码器300分别表示译码装置的实例,具体地,视频编码器和视频解码器。在一些实例中,装置102、116可以以基本上对称的方式操作,使得装置102、116中的每一个包含视频编码和解码组件。因此,系统100可以支持视频装置102、116之间的单向或双向视频传输,例如,以用于视频流式传输、视频回放、视频广播或视频电话。

通常,视频源104表示视频数据(即,原始的、未译码的视频数据)的源,并将视频数据的一系列顺序的图片(也被称为“帧”)提供给对图片的数据进行编码的视频编码器200。源装置102的视频源104可以包含如摄像机等视频捕获装置、含有先前捕获的原始视频的视频档案和/或用于从视频内容提供方接收视频的视频馈送接口。作为另外的替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者直播视频、存档视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕获的、预先捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收到的顺序(有时被称为“显示顺序”)重新布置为用于译码的译码顺序。视频编码器200可以生成包含经过编码的视频数据的位流。然后,源装置102可以通过输出接口108将经过编码的视频数据输出到计算机可读媒体110上,以通过例如目的地装置116的输入接口122进行接收和/或检索。

源装置102的存储器106和目的地装置116的存储器120表示通用存储器。在一些实例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的原始的、经过解码的视频数据。另外地或替代性地,存储器106、120可以存储分别可由例如视频编码器200和视频解码器300执行的软件指令。尽管在此实例中视频编码器200与视频解码器300分开示出,但应当理解的是,视频编码器200和视频解码器300还可以包含内部存储器,以实现功能上类似或等效的目的。此外,存储器106、120可以存储例如从视频编码器200输出并输入到视频解码器300的经过编码的视频数据。在一些实例中,存储器106、120的部分可被分配为一或多个视频缓冲器,例如,以存储原始的、经过解码的和/或经过编码的视频数据。

计算机可读媒体110可以表示能够将经过编码的视频数据从源装置102输送到目的地装置116的任何类型的媒体或装置。在一个实例中,计算机可读媒体110表示用于使源装置102能够例如通过射频网络或基于计算机的网络实时地将经过编码的视频数据直接传输到目的地装置116的通信媒体。根据如无线通信协议等通信标准,输出接口108可以调制包含经过编码的视频数据的传输信号,并且输入接口122可以调制接收到的传输信号。通信媒体可以包括任何无线或有线通信媒体,如射频(rf)频谱或一或多条物理传输线。通信媒体可以形成基于分组的网络(如局域网、广域网或全球网(如互联网))的一部分。通信媒体可以包含路由器、交换机、基站或可以用于促进从源装置102到目的地装置116的通信的任何其它设备。

在一些实例中,源装置102可以将经过编码的数据从输出接口108输出到存储装置112。类似地,目的地装置116可以通过输入接口122从存储装置112访问经过编码的数据。存储装置112可以包含各种分布式或本地访问的数据存储媒体中的任一种,如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性存储器或非易失性存储器或用于存储经过编码的视频数据的任何其它适合的数字存储媒体。

在一些实例中,源装置102可以将经过编码的视频数据输出到可以存储由源装置102生成的经过编码的视频的文件服务器114或另一中间存储装置。目的地装置116可以通过流式传输或下载从文件服务器114访问存储的视频数据。文件服务器114可以是能够存储经过编码的视频数据并且将所述经过编码的视频数据传输到目的地装置116的任何类型的服务器装置。文件服务器114可以表示web服务器(例如,用于网站)、文件传输协议(ftp)服务器、内容传递网络装置或网络附加存储(nas)装置。目的地装置116可以通过包含互联网连接在内的任何标准数据连接从文件服务器114访问经过编码的视频数据。这可以包含适于访问存储在文件服务器114上的经过编码的视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置成根据流式传输协议、下载传输协议或其组合来操作。

输出接口108和输入接口122可以表示无线发射器/接收器、调制解调器、有线联网组件(例如,以太网卡)、根据各种ieee802.11标准中的任一种来操作的无线通信组件、或者其它物理组件。在输出接口108和输入接口122包括无线组件的实例中,输出接口108和输入接口122可以被配置成根据蜂窝通信标准(如4g、4g-lte(长期演进)、高级lte、5g等)来传递如经过编码的视频数据等数据。在输出接口108包括无线发射器的一些实例中,输出接口108和输入接口122可以被配置成根据其它无线标准(如ieee802.11规范、ieee802.15规范(例如,zigbeetm)、bluetoothtm标准等)来传递如经过编码的视频数据等数据。在一些实例中,源装置102和/或目的地装置116可以包含各自的片上系统(soc)装置。例如,源装置102可以包含soc装置以执行归因于视频编码器200和/或输出接口108的功能,并且目的地装置116可以包含soc装置以执行归因于视频解码器300和/或输入接口122的功能。

本公开的技术可以应用于视频译码以支持各种多媒体应用中的任一种,如无线电视广播、有线电视传输、卫星电视传输、如通过http的动态自适应流式传输(dash)等互联网流式视频传输、编码到数据存储媒体上的数字视频、解码存储在数据存储媒体上的数字视频或其它应用。

目的地装置116的输入接口122从计算机可读媒体110(例如,存储装置112、文件服务器114等)接收经过编码的视频位流。经过编码的视频位流计算机可读媒体110可以包含由视频编码器200限定也由视频解码器300使用的信令信息,如具有描述视频块或其它译码单元(例如,切片、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示装置118向用户显示经过解码的视频数据的经过解码的图片。显示装置118可以表示各种显示装置中的任一种,如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一种类型的显示装置。

尽管在图1中未示出,但在一些实例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成并且可以包含适当的mux-demux单元或其它硬件和/或软件,以处理包含普通数据流中的音频和视频两者的复用流。如果适用,mux-demux单元可以符合ituh.223多路复用器协议或如用户数据报协议(udp)等其它协议。

视频编码器200和视频解码器300各自可以实施为各种合适的编码器和/或解码器电路系统中的任一种,如一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当技术部分地在软件中实施时,装置可以将用于软件的指令存储在合适的非暂时性计算机可读媒体中并且使用一或多个处理器在硬件中执行指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可以包含在一或多个编码器或解码器中,所述一或多个编码器或解码器中的任一个可以集成为相应装置中的组合编码器/解码器(codec)的一部分。包含视频编码器200和/或视频解码器300的装置可以包括集成电路、微处理器和/或无线通信装置,如蜂窝电话。

视频编码器200和视频解码器300可以根据视频译码标准来操作。视频译码标准包含itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual和itu-th.264(也称为iso/iecmpeg-4avc),包含其可伸缩视频译码(svc)和多视点视频译码(mvc)扩展。

在一些实例中,视频编码器200和视频解码器300可以根据也被称为hevc的itu-th.265来操作,所述hevc包含hevc范围扩展、多视点扩展(mv-hevc)和/或可伸缩扩展(shvc)。hevc由视频译码联合协作小组(jct-vc)以及itu-t视频译码专家组(vceg)和iso/iec运动图像专家组(mpeg)的3d视频译码扩展研发联合协作小组(jct-3v)研发。

itu-tvceg(q6/16)和iso/iecmpeg(jtc1/sc29/wg11)现在正在研究对具有超过当前hevc标准的压缩能力的未来的视频译码技术标准化的潜在需求(包含针对屏幕内容译码和高动态范围译码的当前扩展和近期扩展)。被称为联合视频探索小组(jvet)的小组正在联合协作努力中共同开展这项探索活动,以评估其专家在此领域中提出的压缩技术设计。jvet在2015年10月19-21日期间首次举行会议。可以从以下网址下载参考软件的一种版本,即,联合探索模型3(jem3):http://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/tags/hm-16.6-jem-3.0/。jem3的算法描述(j.陈(j.chen)等人,“联合探索测试模型3的算法描述(algorithmdescriptionofjointexplorationtestmodel3)”,itu-tsg16wp3和iso/iecjtc1/sc29/wg11的联合视频探索小组(jvet),第3次会议:瑞士日内瓦,2016年5月26日-6月1日,“jvet-c1001_v3”)可以从以下网址下载:http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=2714

被称为h.266/通用视频译码(vvc)标准的新视频译码标准的早期草案可在本杰明·布鲁斯(benjaminbross)的文档jvet-j1001“通用视频译码(草案1)”中获得,并且其算法描述可在陈简乐(jianlechen)和埃琳娜·阿尔希纳(elenaalshina)的文档jvet-j1002“通用视频译码和测试模型1(vtm1)的算法描述”中获得。

在其它实例中,视频编码器200和视频解码器300可以根据如jem3、vvc和未来的视频译码标准等其它专有或工业标准来操作。然而,本公开的技术不限于任何特定的译码标准。

根据将在下文中更详细描述的本公开的一或多个实例,视频编码器200和视频解码器300可以被配置成:基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg,为所确定的量化组内的所有视频数据块确定单个量化参数,并使用所确定的单个量化参数对所确定的量化组内的所有视频数据块的变换系数执行量化过程。

通常,视频编码器200和视频解码器300可以执行基于块的图片译码。术语“块”通常是指包含要处理(例如,编码、解码或以其它方式在编码和/或解码过程中使用)的数据的结构。例如,块可以包含亮度和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以yuv(例如,y,cb,cr)格式表示的视频数据进行译码。即,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是对图片的样本的红色、绿色和蓝色(rgb)数据进行译码,其中色度分量可以包含红色色调色度分量和蓝色色调色度分量。在一些实例中,视频编码器200在进行编码之前将接收到的rgb格式化数据转换为yuv表示,并且视频解码器300将yuv表示转换为rgb格式。替代性地,预处理和后处理单元(未示出)可以执行这些转换。

本公开通常可以指对图片进行译码(例如,编码和解码)以包含对图片的数据进行编码或解码的过程。类似地,本发明可以指对图片的块进行译码以包含对块的数据进行编码或解码的过程,例如,预测编码和/或残差译码。经过编码的视频位流通常包含用于表示译码决策(例如,译码模式)以及将图片划分为块的语法元素的一系列值。因此,提及对图片或块进行译码通常应被理解为用于形成图片或块的语法元素的译码值。

本公开通常可以指“用信号发送”某些信息,如语法元素。术语“用信号发送”通常可以指值语法元素和/或用于对经过编码的视频数据进行解码的其它数据的通信。即,视频编码器200可以用信号发送位流中的语法元素的值。通常,用信号发送是指在位流中生成值。如上所述,源装置102可以基本上实时地或不是实时地将位流输送到目的地装置116,如在将语法元素存储到存储装置112以供稍后由目的地装置116检索时可能发生的情况。

hevc限定了各种块,包含译码单元(cu)、预测单元(pu)和变换单元(tu)。在hevc中,切片中最大的译码单元被称为译码树单元(ctu)。ctu含有一个亮度译码树块(ctb)和两个色度ctb,其节点为亮度译码块和色度译码块(cb)。一个亮度cb和通常两个色度cb与相关联的语法一起形成一个译码单元。

视频编码器200可以以如图2a和图2b所示的四叉树方式将ctu递归地分裂成cu。图2a和图2b是展示了示例四叉树划分结构126和对应的ctu128的概念图。在二叉树结构126(也被称为分裂树)的每个分裂(即,非叶)节点中,用信号发送一个标志(例如,分裂标志)以指示节点处的块是否被分裂成四个大小相等的块,其中0指示节点处的块未被分裂,并且1指示节点处的块被分裂。在以下上下文中,cu分裂树的每个树节点都被称为cu分裂节点。

在hevc主配置文件中,亮度ctb的大小范围可以在16×16到64×64之间(尽管在技术上可以支持8×8ctb大小)。尽管cu可以小到8×8,但是它可以与ctb的大小相同。以一种模式对每个译码单元(即,译码树中的叶节点)进行译码,所述模式可以是帧内模式或帧间模式。

视频编码器200可以进一步划分pu和tu。例如,在hevc中,残差四叉树(rqt)表示tu的划分。在hevc中,pu表示帧间预测数据,而tu表示残差数据。被帧内预测的cu包含帧内预测信息,如帧内模式指示。

本公开可以可互换地使用“n×n”和“n乘n”来指块(如cu或其它视频块)在竖直尺寸和水平尺寸方面的样本尺寸,例如,16×16个样本或16乘16个样本。通常,16×16cu将会在竖直方向上具有16个样本(y=16)并且在水平方向上具有16个样本(x=16)。同样地,n×ncu通常在竖直方向上具有n个样本并且在水平方向上具有n个样本,其中n表示非负整数值。cu中的样本可以按行和列布置。此外,cu在水平方向上不一定需要具有与竖直方向上相同数量的样本。例如,cu可以包括n×m个样本,其中m不一定等于n。

视频编码器200对cu的视频数据进行编码,所述视频数据表示预测和/或残差信息以及其它信息。预测信息指示要如何预测cu以形成cu的预测块。残差信息通常表示编码之前的cu与预测块的样本之间的逐样本差。

为了预测cu,视频编码器200通常可以通过帧间预测或帧内预测形成cu的预测块。帧间预测通常是指根据先前译码的图片的数据来预测cu,而帧内预测通常是指根据同一图片的先前译码的数据来预测cu。为了执行帧间预测,视频编码器200可以使用一或多个运动向量来生成预测块。视频编码器200通常可以执行运动搜索以识别例如在cu与参考块之间的差异方面与cu紧密匹配的参考块。视频编码器200可以使用绝对差和(sad)、平方差和(ssd)、平均绝对差(mad)、均方差(msd)或其它此类差值计算来计算差值度量,以确定参考块是否与当前cu紧密匹配。在一些实例中,视频编码器200可以使用单向预测或双向预测来预测当前cu。

jem还提供了仿射运动补偿模式,所述仿射运动补偿模式可以被视为帧间预测模式。在仿射运动补偿模式下,视频编码器200可以确定表示如放大或缩小、旋转、透视运动或其它不规则运动类型等非平移运动的两个或两个以上运动向量。

为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。jem的一个实例提供了六十七种帧内预测模式,包含各种方向模式以及平面模式和dc模式。视频编码器200通常选择帧内预测模式,所述帧内预测模式描述了预测当前块的样本所依据的与当前块(例如,cu的块)相邻的样本。假设视频编码器200以光栅扫描顺序(从左到右,从上到下)对ctu和cu进行译码,则在与当前块相同的图片中,此类样本通常可以在当前块的上方、在上方且在左边或在左边。

视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用了各种可用帧间预测模式中的哪一种帧间预测模式的数据以及对应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可以使用高级运动向量预测(amvp)或合并模式对运动向量进行编码。视频编码器200可以使用类似模式来对仿射运动补偿模式的运动向量进行编码。

在如对块的帧内预测或帧间预测等预测之后,视频编码器200可以计算块的残差数据。如残差块等残差数据表示块与使用对应的预测模式形成的用于块的预测块之间的逐样本差。视频编码器200可以对残差块应用一或多个变换,以在变换域而非样本域中产生经过变换的数据。例如,视频编码器200可以对残差视频数据应用离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换。另外,视频编码器200可以在第一次变换之后应用二次变换,如模式相关不可分二次变换(mdnsst)、信号相关变换、卡洛南-洛伊(karhunen-loeve)变换(klt)等。视频编码器200在应用所述一或多个变换之后产生变换系数。

如上文所指出的,在进行任何变换以产生变换系数之后,视频编码器200可以执行对变换系数的量化。量化通常是指将变换系数量化以可能地减少用于表示系数的数据量从而提供进一步压缩的过程。通过执行量化过程,视频编码器200可以减小与系数中的一些或所有系数相关联的位深度。例如,在量化期间,视频编码器200可以将n位值四舍五入为m位值,其中n大于m。在一些实例中,为了执行量化,视频编码器200可以执行要量化的值的逐位右移。

在量化之后,视频编码器200可以扫描变换系数,从而从包含经过量化的变换系数的二维矩阵产生一维向量。可以将扫描设计成将较高的能量(以及因此较低的频率)系数放置在向量的前面并且将较低的能量(以及因此较高的频率)变换系数放置在向量的后面。在一些实例中,视频编码器200可以利用预定义扫描顺序来扫描经过量化的变换系数以产生序列化向量,并且然后对向量的经过量化的变换系数进行熵编码。在其它实例中,视频编码器200可以执行自适应扫描。在扫描经过量化的变换系数以形成一维向量之后,视频编码器200可以例如根据上下文自适应二进制算术译码(cabac)对一维向量进行熵编码。视频编码器200还可以对与经过编码的视频数据相关联的描述元数据的语法元素的值进行熵编码,以供视频解码器300在对视频数据进行解码时使用。

为了执行cabac,视频编码器200可以将上下文模型内的上下文分配到要传输的符号。上下文可以涉及例如符号的邻近值是否为非零值。概率确定可以基于分配到符号的上下文。

视频编码器200可以进一步例如在图片标题、块头、切片头或如序列参数集(sps)、图片参数集(pps)或视频参数集(vps)等其它语法数据中将如基于块的语法数据、基于图片的语法数据和基于序列的语法数据等语法数据生成到视频解码器300。视频解码器300可以类似地对此类语法数据进行解码以确定如何对对应的视频数据进行解码。

以此方式,视频编码器200可以生成包含经过编码的视频数据的位流,例如,描述将图片划分为块(例如,cu)以及块的预测和/或残差信息的语法元素。最终,视频解码器300可以接收位流并对经过编码的视频数据进行解码。

通常,视频解码器300执行与由视频编码器200执行的过程互反的过程以对位流的经过编码的视频数据进行解码。例如,视频解码器300可以使用cabac以与视频编码器200的cabac编码过程基本上类似(尽管互反)的方式对位流的语法元素的值进行解码。语法元素可以将图片的划分信息限定为ctu,并根据对应的划分结构对每个ctu进行划分以限定ctu的cu。语法元素可以进一步限定视频数据的块(例如,cu)的预测信息和残差信息。

残差信息可以由例如经过量化的变换系数表示。视频解码器300可以对块的经过量化的变换系数进行逆量化和逆变换以重现块的残差块。视频解码器300使用用信号发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,帧间预测的运动信息)来形成块的预测块。然后,视频解码器300可以(在逐样本的基础上)组合预测块和残差块以重现原始块。视频解码器300可以执行另外的处理,如执行去块过程以减少沿块的边界的视觉伪像。

现在将讨论hevc中的hevc中的量化组和δ量化参数(qp)值。视频编码器200可以被配置成更改图片内的量化步长大小(并且因此更改qp值)以用于例如速率控制和感知量化目的。hevc允许在每个量化组(qg)级别传输一个δqp值,以允许图片内的qp更改。这与允许在宏块级别修改qp值的h.264/avc类似。qg大小是译码单元大小的倍数,可以从8×8到64×64变化,取决于ctu大小和语法元素diff_cu_qp_delta_depth的值。语法元素diff_cu_qp_delta_depth的值指示亮度译码树块大小与传达δqp值的译码单元的最小亮度译码块大小之间的差。

在一个实例中,视频编码器200仅用信号发送具有非零变换系数的译码单元中的δqp。如果将ctu分裂成大于qg大小的译码单元,则将在大于qg大小的(具有非零变换系数的)编码单元处用信号发送δqp值。如果将ctu分裂成小于qg大小的译码单元,则qg内的所有译码单元共享相同的δqp,并且在qg中具有非零变换系数的第一译码单元中用信号发送δqp值。如果qg有具有所有零值变换系数的译码单元(例如,如果在qg的所有译码单元中都使用了合并模式),则视频编码器200将不会用信号发送δqp。总之,如果满足以下条件中的任一个,则将qg指定为cu分裂节点:

i.cu分裂节点的大小等于qg大小。

ii.cu分裂节点的大小大于qg大小,并且cu分裂节点是叶译码单元。

用于计算δqp的qp预测器(predictor)是来自相对于当前块的左边qg的qp值、来自相对于当前块的上方qg的qp值或来自按解码顺序的前一qg的qp值的组合。视频编码器200通过从qg的qp中减去qg的qp预测器来计算δqp。视频解码器300通过将qg的δqp与qg的qp预测器相加来恢复qg的qp。在hevc的实例中,视频编码器200和视频解码器300可以使用以下两种预测技术之一来确定qp预测器:空间qp预测(从左边和上方qg)或前一qp预测。确定qp预测器使用在ctu内从左边(qpleft)和上方(qpabove)进行的空间预测,并使用前一qp作为ctu边界处的预测器。当空间上相邻的qp值、qpleft和qpabove在不同的ctu中或者如果当前的qg在切片/图块/图片边界处,则它们被认为不可用。当空间上相邻的qp值不可用时,空间上相邻的qp值被前一qp值(qpprev)替代。qpprev是按解码顺序的前一qp值。如果ctu在切片、图块或波前的开始处,则将ctu的前一qp(qpprev)初始化为前一ctu(以光栅顺序)中的最后经过译码的qp或切片qp值。

现在将讨论hevc以外的cu结构及其信令。在vceg提案com16-c966(j.安(j.an)、y.-w.陈(y.-w.chen)、k.张(k.zhang)、h.黄(h.huang)、y.-w.黄(y.-w.huang)和s.雷(s.lei.),“下一代视频译码的块划分结构(blockpartitioningstructurefornextgenerationvideocoding)”,国际电信联盟,com16-c966,2015年9月)中,提出了四叉树-二叉树(qtbt)划分结构以用于hevc以外的未来的视频译码标准。仿真表明所提出的qtbt结构比hevc中使用的四叉树结构更有效。

在所提出的qtbt结构中,视频编码器200首先用四叉树结构对ctb进行划分,其中可以迭代对一个节点的四叉树分裂,直到所述节点达到最小允许的四叉树叶节点大小(minqtsize)。如果四叉树叶节点大小不大于最大允许的二叉树根节点大小(maxbtsize),则可以通过二叉树对节点进行进一步划分。在二叉树分裂中,将块水平地或竖直地分裂成两个块。在此实例中,有两种分裂类型:对称水平分裂和对称竖直分裂。可以迭代对一个节点的二叉树分裂,直到所述节点达到最小允许的二叉树叶节点大小(minbtsize)或最大允许的二叉树深度(maxbtdepth)。在此实例中,二叉树叶节点是cu,所述cu用于预测(例如,图片内预测或图片间预测)和变换,而无需任何进一步划分。

在qtbt划分结构的一个实例中,将ctu大小设为128×128(亮度样本和两个对应的64×64色度样本),将minqtsize设为16×16,将maxbtsize设为64×64,将minbtsize(对于宽度和高度两者)设为4,并且将maxbtdepth设为4。视频编码器200首先将四叉树划分应用于ctu,以生成四叉树叶节点。四叉树叶节点的大小可以为16×16(即,minqtsize)到128×128(即,ctu大小)。如果叶四叉树节点为128×128,则由于大小超过了maxbtsize(即,64×64),因此所述节点不会被二叉树进一步分裂。否则,叶四叉树节点将被二叉树进一步划分。因此,四叉树叶节点也是二叉树的根节点并且二叉树深度为0。当二叉树深度达到maxbtdepth(即,4)时,这暗指不进行进一步分裂。当二叉树节点的宽度等于minbtsize(即,4)时,这暗指不进行进一步水平分裂。类似地,当二叉树节点的高度等于minbtsize时,这暗指不进行进一步竖直分裂。二叉树的叶节点(即,cu)根据预测和变换进行进一步处理,而无需任何进一步划分。

图3a和图3b是展示了示例qtbt划分结构130和对应的ctu132的概念图。实线表示四叉树分裂,并且虚线指示二叉树分裂。在二叉树的每个分裂(即,非叶)节点中,用信号发送一个标志以指示使用了哪种分裂类型(即,水平或竖直),其中在本实例中,0指示水平分裂,并且1指示竖直分裂。对于四叉树分裂,由于四叉树节点水平地和竖直地将块分裂成大小相等的4个子块,因此无需指示分裂类型。因此,视频编码器200可以对qtbt结构130的区域树级别(即,实线)的语法元素(如分裂信息)和qtbt结构130的预测树级别(即,虚线)的语法元素(如分裂信息)进行编码并且视频解码器300可以对其进行解码。视频编码器200可以对由qtbt结构130的端叶节点表示的用于cu的如预测数据和变换数据等视频数据进行编码并且视频解码器300可以对其进行解码。

将不再描述多类型树(mtt)划分结构。在于2017年1月12日提交的美国专利公开第2017/0208336号和于2017年3月20日提交的美国专利公开第2017/0272782号中,描述了示例mtt划分结构,所述美国专利中的每一个的全部内容通过引用并入本文。根据示例mtt划分结构,视频编码器200可以被配置成进一步分裂具有多个树类型的树节点,所述树类型诸如二叉树、对称中心侧三叉树和四叉树。在两级mtt结构中,首先使用ctu的四叉树划分构造区域树(rt),然后构造预测树(pt),其中仅二叉树和对称中心侧三叉树可以被扩展。图4a和图4b是展示了示例mtt划分结构134和对应的ctu136的概念图。

图5是展示了根据mtt划分结构划分的ctu的另一个实例的概念图。换言之,图5展示了对应于ctu的ctb91的划分。在图5的实例中:

·在深度0处,用水平二叉树划分将ctb91(即,整个ctb)分裂成两个块(如具有通过单点隔开的划线的线93所指示的)。

·在深度1处:

·用竖直的中心侧三叉树划分将上部块分裂成三个块(如具有小划线的线95和线86所指示的)。

·用四叉树划分将底部块分裂成四个块(如具有通过两个点隔开的划线的线88和线90所指示的)。

·在深度2处:

·用水平中心侧三叉树划分将深度1处的上部块的左侧块分裂成三个块(如具有通过短划线隔开的长划线的线92和线94所指示的)。

·深度1处的上部块的中心块和右块不进行进一步分裂。

·深度1处的底部块的四个块不进行进一步分裂。

从图5的实例中可以看出,三种不同的划分结构(bt、qt和tt)与四种不同的划分类型(水平二叉树划分、竖直中心侧三叉树划分、四叉树划分和水平中心侧三叉树划分)一起使用。

与hevc中的cu结构和qtbt结构相比,mtt划分结构可以提供更好的译码效率,因为块划分更加灵活。另外,中心侧三叉树划分的引入提供了更加灵活的视频信号定位。在mtt划分结构中,三个箱(bin)用于确定每个pt节点处的块划分(除了可以施加一些约束的条件之外,如美国专利公开第2017/0272782号中所描述的),以表示未分裂、水平二叉树划分、竖直二叉树划分、水平三叉树划分和竖直三叉树划分的块划分。由于新引入了三叉划分(三叉树(tt)划分),用于用信号发送树类型的位数将从hevc增加。

在一些实例中,视频编码器200和视频解码器300可以使用单个qtbt结构或mtt结构来表示亮度分量和色度分量中的每一个,而在其它实例中,视频编码器200和视频解码器300可以使用两个或两个以上qtbt结构或mtt结构,如一个qtbt结构或mtt结构用于亮度分量并且另一个qtbt结构或mtt结构用于两个色度分量(或两个qtbt结构或mtt结构用于各自的色度分量)。

如将在下文中更详细描述的,根据本公开的技术,视频编码器200和视频解码器300可以被配置成:基于cu分裂节点的大小和基于区域的参数(qg_region)的值中的一或多个来确定视频数据的译码单元(cu)分裂节点的量化组(qg),确定所确定的量化组的量化参数,并对所确定的量化组的视频数据块的变换系数执行量化过程。

如上文所描述的,在hevc和vceg提案com16-c966中,qg被指定为取决于ctu大小和语法元素diff_cu_qp_delta_depth的值。δqp的最大深度(maxcudqpdepth)被限定为2×diff_cu_qp_delta_depth,并且qg面积等于ctu面积>>maxcudqpdepth,其中>>是二进制右移。在hevc(四叉树划分)和vceg提案(qtbt划分)两者中,每个cu分裂节点的面积以及因此qg的规范都可以基于cu分裂节点的四叉树深度(qtdepth)和/或二叉树深度(btdepth)完全确定。例如,hevc中的四叉树深度qtdepth的cu分裂节点的面积等于ctu面积>>2×qtdepth,其中>>是二进制右移。因此,如果满足以下条件中的任一个,则在hevc中将qg指定为四叉树深度qtdepth的cu分裂节点。

i.2×qtdepth等于maxcudqpdepth。

ii.2×qtdepth小于maxcudqpdepth,并且cu分裂节点是叶译码单元。

类似地,在vceg提案com16-c966中,如果满足以下条件中的任一个,则将qg指定为四叉树深度qtdepth和二叉树深度btdepth的cu分裂节点。

i.btdepth+2×qtdepth等于maxcudqpdepth。

ii.btdepth+2×qtdepth小于maxcudqpdepth,并且cu分裂节点是叶译码单元。

图6是展示了通过不同类型的树划分从ctu衍生的两个qg的实例的概念图。对于ctu138,使用2个四叉树分裂(qtdepth=2)衍生qg140(突出显示)。对于ctu142,使用1个四叉树分裂(qtdepth=1)和2个二叉树分裂(btdepth=2)衍生qg144。由于btdepth+2×qtdepth是相等的,因此不管划分类型如何,两个qg的大小相同。

然而,仅指定深度可能会导致在使用mtt划分结构(具有另外的三叉树)时发生模糊确定qg。图7是展示了针对用mtt划分结构划分的ctu而衍生的两个量化组(qg)的实例的概念图。如图7所示,即使对于每个qg,树深度qtdepth、btdepth和ttdepth相同(qtdepth=1且ttdepth=2),ctu146的qg148与ctu150的qg152相比具有不同的面积。与其中将cu分裂成大小相等的子块的四叉树和qtbt划分不同,在(如在mtt划分中找到的)三叉树tt划分中,面积为n的cu被分成两个面积为n/4子块和一个面积为n/2子块。因此,仅给定划分深度无法确定从tt划分衍生的cu分裂节点的大小。

考虑到mtt划分结构的潜在歧义,本公开描述了以下用于限定和确定qg的技术以及用于为mtt划分结构执行qp预测的技术。本公开的技术不限于mtt划分结构,而是可以与使用三叉树划分结构的任何划分结构一起使用。

在本公开的实例中,视频编码器200可以使用基于区域的参数(例如,被称为qg_region)来指定qg。同样,视频解码器300可以根据基于区域的参数qg_region的值来确定qg。基于区域的参数qg_region的值可以根据样本/像素的总数或者根据样本/像素的块的宽度和高度来指定大小。

根据本公开的一个实例,视频编码器200和视频解码器300可以:基于cu分裂节点的大小和基于区域的参数(qg_region)的值中的一或多个来确定qg,为所确定的量化组内的所有视频数据块确定单个量化参数,并使用所确定的单个量化参数对所确定的量化组内的所有视频数据块的变换系数执行量化过程。下文是根据本公开的技术指定和确定qg的一些实例。

在本公开的一个实例中,如果以下集合中的任一个的所有条件为真(例如,集合1的所有条件为真或集合2的所有条件为真),则视频编码器200和视频解码器300可以被配置成确定qg与特定的cu分裂节点相同。

集合1:

i.cu分裂节点的面积大于或等于qg_region的值。

ii.cu分裂节点的子节点中的任一个的面积小于qg_region的值。

iii.qg尚未被指定为cu分裂节点的祖先节点中的任一个。祖先节点是从其中分裂cu分裂节点的cu。

集合2:

i.cu分裂节点的面积大于或等于qg_region的值。

ii.所述cu分裂节点是叶节点。

iii.qg尚未被指定为cu分裂节点的祖先节点中的任一个。

在图8所示的实例中,如果qg_region的值是1024(例如,32×32=1024),则qg被指定为包含子节点a、b和c的左上方cu分裂节点154(突出显示的块),因为存在至少一个大小小于qg_region的值的子节点(在实例中为a和c)。注意,在此实例中,将qg_region的值指定为qg中的像素总数。在其它实例中,可以仅通过qg的宽度和/或高度来指定qg_region的值。在仍其它实例中,qg_region的值可以是指向预定表的索引,所述预定表指示qg的大小。

在本公开的另一个实例中,如果以下集合中的任一个的所有条件为真(例如,集合3的所有条件为真或集合4的所有条件为真),则视频编码器200和视频解码器300可以确定qg被指定为cu分裂节点。

集合3:

i.cu分裂节点的面积小于或等于qg_region的值。

ii.cu分裂节点的父节点的面积大于qg_region的值。

集合4:

iii.cu分裂节点的面积大于qg_region的值。

iv.所述cu分裂节点是叶节点。

在图9所示的实例中(其中基于区域的参数qg_region的值指示qg大小为2×32=1024),视频编码器200和视频解码器300可以确定两个qg被分别指定为分裂节点a和c。视频编码器200和视频解码器300可以进一步确定另外两个qg将被指定为b的子节点b1和b2,因为b1和b2的大小都小于基于区域的参数qg_region的值,并且其父节点b的面积大于基于区域的参数qg_region的值。

在本公开的另一个实例中,视频编码器200和视频解码器300可以被配置成将基于区域的参数qg_region的值确定为maxdqpregionpara*maxdqpregionpara,其中在pps中用信号发送值maxdqpregionpara。以下是信令的若干个实例:

·视频编码器200可以用信号发送maxdqpregionpara与ctu大小的差值:对于ctu大小=2n且maxdqpregionpara=2m,其中视频编码器200用信号发送n-m的值。视频解码器300将被配置成通过确定ctu大小、根据ctu大小确定值n并且然后恢复m的值来恢复m的值。视频解码器300然后将根据等式maxdqpregionpara=2m来确定maxdqpregionpara的值。

·视频编码器200可以用信号发送maxdqpregionpara的具体值(例如,在最后的实例中的m)。

在本公开的另一个实例中,视频编码器200和视频解码器300可以被配置成将基于区域的参数qg_region的值确定为maxdqpregionpara1*maxdqpregionpara2,其中视频编码器200用信号发送图片参数集(pps)中指示maxdqpregionpara1和maxdqpregionpara2的值的数据。以下是信令的若干个实例:

·视频编码器200可以用信号发送maxdqpregionpara1(2)与ctu大小的差值:对于ctu大小=2n且maxdqpregionpara1(2)=2m1(2),用信号发送n-m1和n-m2的值。

·视频编码器200可以用信号发送maxdqpregionpara1(2)的具体值(例如,在最后的实例中的m1和m2)。

·视频编码器200可以用信号发送maxdqpregionpara1与maxdqpregionpara2之间的最短值及其差值。例如,视频编码器200可以用信号发送

min(maxdqpregionpara1,maxdqpregionpara2)

abs(maxdqpregionpara2-maxdqpregionpara1)。

在本公开的另一个实例中,视频编码器200和视频解码器300可以被配置成将基于区域的参数qg_region的值确定为在pps中用信号发送的maxdqpregionpara。以下是信令的若干个实例:

·视频编码器200可以用信号发送maxdqpregionpara1(2)与ctu面积的差值:对于ctu面积=2x且maxdqpregionpara=2y,用信号发送值x-y。

·视频编码器200可以用信号发送maxdqpregionpara的具体值(例如,在最后的实例中的y)。

在另一个实例中,本公开描述了qp预测过程的若干修改。如上文所描述的,视频解码器300可以从视频编码器200接收δqp(dqp)值。视频解码器300可以通过将δqp值与qp预测器的值相加来恢复qg的qp值。在一些实例中,qp预测器可以是来自前一块(qpprev)的qp值。为了确定qpprev的值(即,解码顺序中的最后一个qp),视频编码器200和视频解码器300可以执行以下技术的任意组合,以减少用于确定qp值的存储缓冲器的数量和/或数目,以及降低确定qp值时ctu之间的依赖性。

在本公开的一个实例中,视频编码器200和视频解码器300可以被配置成用切片qp替代qpprev的值以用于qp预测。切片qp是切片的qp值。

在本公开的另一个实例中,视频编码器200和视频解码器300可以被配置成推导出qp预测器作为可用的相邻qp值的平均值。例如,如果qpabove(即,来自当前块上方的块的qp值)和qpleft(即,来自当前块左边的块的qp值)两者都可用,则视频编码器200和视频解码器300可以被配置成计算qp预测器为(qpabove+qpleft+1)>>1,其中>>是逻辑右移。如果仅一个相邻qp可用,则视频编码器200和视频解码器300可以被配置成确定qp预测器的值是可用的qp邻居的值(例如,qpabove或qpleft)。如果没有可用的相邻qp(例如,对于ctu中的第一qg),则视频编码器200和视频解码器300可以被配置成确定qp预测器的值是切片qp的值。

在本公开的另一个实例中,视频编码器200和视频解码器300可以被配置成将qpprev的值初始化为每个ctu的切片qp。

在本公开的另一个实例中,如果ctu在ctu行的开始处,则视频编码器200和视频解码器300可以被配置成将qpprev的值初始化为切片qp。

在本公开的另一个实例中,视频编码器200和视频解码器300可以被配置成将qpprev的值初始化为最后一个ctu行中上方邻居的最后一个经过译码的qp。

图10是展示了可以执行上文所描述的本公开的技术的示例视频编码器200的框图。图10是出于解释的目的而提供的,并且不应被认为是对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开在如研发中的hevc视频译码标准和h.266视频译码标准等视频译码标准的上下文中描述了视频编码器200。然而,本公开的技术不限于这些视频译码标准,并且通常可应用于视频编码和解码。

在图10的实例中,视频编码器200包含视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲器(dpb)218和熵编码单元220。

视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。dpb218可以充当参考图片存储器,所述参考图片存储器存储参考视频数据,以供视频编码器200在预测随后的视频数据时使用。视频数据存储器230和dpb218可以由多种存储器装置中的任一种形成,如动态随机存取存储器(dram),包含同步dram(sdram)、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。视频数据存储器230和dpb218可以由相同的存储器装置或单独的存储器装置提供。在各个实例中,视频数据存储器230可以与视频编码器200的其它组件一起在片上,如所展示的,或者相对于那些组件在片外。

在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器,除非如此具体地描述,或者限于视频编码器200外部的存储器,除非如此具体地描述。相反,对视频数据存储器230的引用应当被理解为存储视频编码器200所接收的用于编码的视频数据(例如,要编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时存储。

展示了图10的各个单元,以帮助理解由视频编码器200执行的操作。所述单元可以被实施为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并且在可以执行的操作上预先设置的电路。可编程电路是指可以被编程以执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所限定的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是所述固定功能电路执行的操作的类型通常是不可变的。在一些实例中,单元中的一或多个单元可以是不同的电路块(固定功能或可编程),并且在一些实例中,所述一或多个单元可以是集成电路。

视频编码器200可以包含由可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程核。在其中使用由可编程电路执行的软件来执行视频编码器200的操作的实例中,存储器106(图1)可以存储视频编码器200接收并执行的软件的目标代码,或者视频编码器200内的另一个存储器(未示出)可以存储此类指令。

视频数据存储器230被配置成存储接收到的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要编码的原始视频数据。

模式选择单元202包含运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包含另外的功能单元,以根据其它预测模式来执行视频预测。作为实例,模式选择单元202可以包含调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等。

模式选择单元202通常协调多个编码通道,以测试编码参数的组合以及针对此类组合的所得率失真值。编码参数可以包含将ctu划分为cu、用于cu的预测模式、cu的残差数据的变换类型、cu的残差数据的量化参数等等。模式选择单元202可以最终选择具有比其它经过测试的组合更好的率失真值的编码参数的组合。

视频编码器200可将从视频数据存储器230检索到的图片划分为一系列ctu,并将一或多个ctu包封在切片内。模式选择单元202可以根据如以上所描述的qtbt结构、hevc的四叉树结构或mtt结构等树结构来划分图片的ctu。如上文所描述的,视频编码器200可以通过根据树结构划分ctu来形成一或多个cu。此类cu通常也可以被称为“视频块”或“块”。视频编码器200还可如上所描述的确定量化组并执行量化参数预测。

通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成当前块的预测块(例如,当前cu,或在hevc中,pu和tu的重叠部分)。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一或多个参考图片(例如,存储在dpb218中的一或多个先前译码的图片)中的一或多个紧密匹配的参考块。特别地,运动估计单元222可以例如根据绝对差和(sad)、平方差和(ssd)、平均绝对差(mad)、均方差(msd)等来计算表示潜在参考块与当前块的类似程度的值。运动估计单元222通常可以使用当前块与所考虑的参考块之间的逐样本差来执行这些计算。运动估计单元222可以识别具有由这些计算产生的最低值的参考块,从而指示与当前块最紧密匹配的参考块。

运动估计单元222可以形成一或多个运动向量(mv),所述一或多个mv限定参考图片中的参考块相对于当前图片中的当前块的位置的位置。运动估计单元222然后可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。然后,运动补偿单元224可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来检索参考块的数据。作为另一个实例,如果运动向量具有分数样本精度,则运动补偿单元224可以根据一或多个内插滤波器内插预测块的值。此外,对于双向帧间预测,运动补偿单元224可以例如通过逐样本平均或加权平均来检索由相应运动向量识别的两个参考块的数据,并组合所检索的数据。

作为另一个实例,对于帧内预测或帧内预测译码,帧内预测单元226可以根据与当前块相邻的样本来生成预测块。例如,对于定向模式,帧内预测单元226通常可以在数学上组合相邻样本的值,并且跨当前块在所限定的方向上填充这些经过计算的值以产生预测块。作为另一个实例,对于dc模式,帧内预测单元226可以计算到当前块的相邻样本的平均值,并且生成预测块以包含预测块的每个样本的此所得平均值。

模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始、未经过译码的版本,并且从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差。所得的逐样本差限定了当前块的残差块。在一些实例中,残差生成单元204还可以确定残差块中的样本值之间的差,以使用残差差分脉冲译码调制(rdpcm)来生成残差块。在一些实例中,可以使用执行二进制减法的一或多个减法器电路来形成残差生成单元204。

在其中模式选择单元202将cu划分为pu的实例中,每个pu可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的pu。如上文所指示的,cu的大小可以指cu的亮度译码块的大小,并且pu的大小可以指pu的亮度预测单元的大小。假设特定cu的大小为2n×2n,则视频编码器200可以支持用于帧内预测的2n×2n或n×n的pu大小,以及用于帧间预测的2n×2n、2n×n、n×2n、n×n或类似的对称pu大小。视频编码器200和视频解码器300还可以支持用于帧间预测的2n×nu、2n×nd、nl×2n和nr×2n的pu大小的不对称划分。

在其中模式选择单元不进一步将cu划分为pu的实例中,每个cu可以与亮度译码块和对应的色度译码块相关联。如上所述,cu的大小可以指cu的亮度译码块的大小。视频编码器200和视频解码器300可以支持2n×2n、2n×n或n×2n的cu大小。

对于如作为几个实例的块内复制模式译码、仿射模式译码和线性模型(lm)模式译码等其它视频译码技术,模式选择单元202通过与译码技术相关联的相应单元来生成正被编码的当前块的预测块。在一些实例中,如调色板模式译码,模式选择单元202可以不生成预测块,而是生成语法元素,所述语法元素指示基于所选调色板重构块的方式。在此类模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。

如上文所描述的,残差生成单元204接收当前块和对应的预测块的视频数据。残差生成单元204然后生成当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差。因此,

变换处理单元206对残差块应用一或多个变换应以生成变换系数的块(本文称为“变换系数块”)。变换处理单元206可以对残差块应用各种变换以形成变换系数块。例如,变换处理单元206可以对残差块应用离散余弦变换(dct)、方向变换、卡洛南-洛伊变换(klt)或概念上类似的变换。在一些实例中,变换处理单元206可以对残差块执行多个变换,例如初级变换和二次变换,如旋转变换。在一些实例中,变换处理单元206不对残差块应用变换。

量化单元208可以量化变换系数块中的变换系数,以产生经过量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值来量化变换系数块的变换系数。视频编码器200(例如,通过模式选择单元202)可以通过调整与cu相关联的qp值来调整应用于与当前块相关联的系数块的量化程度。量化可以引起信息丢失,并且因此,经过量化的变换系数可以比由变换处理单元206产生的原始变换系数具有更低的精度。

逆量化单元210和逆变换处理单元212可以分别将逆量化和逆变换应用于经过量化的变换系数块,以从变换系数块重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来产生与当前块对应的重构的块(尽管可能具有某种程度的失真)。例如,重构单元214可以将重构的残差块的样本添加到来自由模式选择单元202生成的预测块的对应的样本,以产生重构的块。

滤波器单元216可以对重构的块执行一或多个滤波操作。例如,滤波器单元216可以执行去块操作以减少沿cu的边缘的块效应伪像。如由虚线所展示的,在一些实例中,可以跳过滤波器单元216的操作。

视频编码器200将重构的块存储在dpb218中。例如,在其中不需要滤波器单元216的操作的实例中,重构单元214可以将重构的块存储到dpb218。在其中需要滤波器单元216的操作的实例中,滤波器单元216可以将经过滤波的重构的块存储到dpb218。运动估计单元222和运动补偿单元224可以从dpb218检索参考图片,所述参考图片由重构的(并且可能经过滤波的)块形成,以对随后经过编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用当前图片的dpb218中的重构的块来对当前图片中的其它块进行帧内预测。

通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经过量化的变换系数块进行熵编码。作为另一个实例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一个实例的语法元素执行一或多个熵编码操作,以生成经过熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(cavlc)操作、cabac操作、可变至可变(v2v)长度译码操作、基于语法的上下文自适应二进制算术译码(sbac)操作、概率区间划分熵(pipe)译码操作、指数哥伦布编码操作或另一种类型的熵编码操作。在一些实例中,熵编码单元220可以在其中语法元素未被熵编码的旁路模式下操作。

视频编码器200可以输出包含重构切片或图片的块所需的经过熵编码的语法元素的位流。特别地,熵编码单元220可以输出位流。

相对于块描述了上文所描述的操作。此类描述应该被理解为用于亮度译码块和/或色度译码块的操作。如上文所描述的,在一些实例中,亮度译码块和色度译码块是cu的亮度和色度组件。在一些实例中,亮度译码块和色度译码块是pu的亮度和色度组件。

在一些实例中,不需要针对色度译码块重复相对于亮度译码块执行的操作。作为一个实例,不需要重复用于识别亮度译码块的运动向量(mv)和参考图片的操作来识别色度块的mv和参考图片。相反,可以缩放亮度译码块的mv以确定色度块的mv,并且参考图片可以是相同的。作为另一个实例,对于亮度译码块和色度译码块,帧内预测过程可以是相同的。

视频编码器200表示被配置成对视频数据进行编码的装置的实例,所述装置包含:存储器,所述存储器被配置成存储视频数据;以及一或多个处理单元,所述一或多个处理单元在电路系统中实施并且被配置成:基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg,为所确定的量化组内的所有视频数据块确定单个量化参数,以及使用所确定的单个量化参数对所确定的量化组内的所有视频数据块的变换系数执行量化过程。

图11是展示了可以执行本公开的技术的示例视频解码器300的框图。图11是出于解释的目的而提供的,并且不对本公开中广泛例示和描述的技术的进行限制。出于解释的目的,本公开描述了根据jem和hevc的技术描述的视频解码器300。然而,本公开的技术可以由被配置成其它视频译码标准的视频译码装置来执行。

在图11的实例中,视频解码器300包含译码图片缓冲器(cpb)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲器(dpb)314。预测处理单元304包含运动补偿单元316和帧内预测单元318。预测处理单元304可以包含加法单元,以根据其它预测模式来执行预测。作为实例,预测处理单元304可以包含调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(lm)单元等。在其它实例中,视频解码器300可以包含更多、更少或不同的功能组件。

cpb存储器320可以存储要由视频解码器300的组件解码的视频数据,如经过编码的视频位流。可以例如从计算机可读媒体110(图1)中获得存储在cpb存储器320中的视频数据。cpb存储器320可以包含存储来自经过编码的视频位流的经过编码的视频数据(例如,语法元素)的cpb。而且,cpb存储器320可以存储除了经过译码的图片的语法元素以外的视频数据,如表示来自视频解码器300的各个单元的输出的临时数据。dpb314通常存储经过解码的图片,当对经过编码的视频位流的后续数据或图片进行解码时,视频解码器300可以输出和/或用作参考视频数据。cpb存储器320和dpb314可以由多种存储器装置中的任一种形成,如动态随机存取存储器(dram),包含同步dram(sdram)、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。cpb存储器320和dpb314可以由相同的存储器装置或单独的存储器装置提供。在各个实例中,cpb存储器320可以与视频解码器300的其它组件一起在片上,或者相对于那些组件在片外。

另外地或替代性地,在一些实例中,视频解码器300可以从存储器120(图1)检索经过译码的视频数据。也就是说,存储器120可以使用cpb存储器320如上文所讨论的存储数据。同样,当视频解码器300的功能中的一些或全部在要由视频解码器300的处理电路系统执行的软件中实施时,存储器120可以存储要由视频解码器300执行的指令。

展示了图11所示的各个单元,以帮助理解由视频解码器300执行的操作。所述单元可以被实施为固定功能电路、可编程电路或其组合。与图10类似,固定功能电路是指提供特定功能并且在可以执行的操作上预先设置的电路。可编程电路是指可以被编程以执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所限定的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是所述固定功能电路执行的操作的类型通常是不可变的。在一些实例中,单元中的一或多个单元可以是不同的电路块(固定功能或可编程),并且在一些实例中,所述一或多个单元可以是集成电路。

视频解码器300可以包含由可编程电路形成的alu、efu、数字电路、模拟电路和/或可编程核。在其中视频解码器300的操作由在可编程电路上执行的软件来执行的实例中,片上或片外存储器可以存储视频解码器300接收并执行的软件的指令(例如,目标代码)。

熵解码单元302可以从cpb接收经过编码的视频数据,并且对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从位流中提取的语法元素来生成经过解码的视频数据。

通常,视频解码器300在逐块的基础上重构图片。视频解码器300可以单独地对每个块执行重构操作(其中当前正在重构(即,被解码)的块可被称为“当前块”)。可以根据如以上所描述的qtbt结构、hevc的四叉树结构或mtt结构等树结构来划分图片的ctu。视频解码器300还可如上所描述的确定量化组并执行量化参数预测。

熵解码单元302可以对限定经过量化的变换系数块的经过量化的变换系数的语法元素以及如量化参数(qp)和/或一或多个变换模式指示等变换信息进行熵解码。逆量化单元306可以使用与经过量化的变换系数块相关联的qp来确定量化程度,并且同样地,确定逆量化程度以供逆量化单元306应用。逆量化单元306可以例如执行逐位左移位操作以对经过量化的变换系数进行逆量化。逆量化单元306从而可以形成包含变换系数的变换系数块。

在逆量化单元306形成变换系数块之后,逆变换处理单元308可以对变换系数块应用一或多个逆变换以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对系数块应用逆dct、逆整数变换、逆卡洛南-洛伊变换变换(klt)、逆旋转变换、逆方向变换或另一个逆变换。

此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示从中检索参考块的dpb314中的参考图片,以及识别参考图片中的参考块相对于当前图片中的当前块的位置的位置的运动向量。运动补偿单元316通常可以以与关于运动补偿单元224(图10)所描述的方式基本上类似的方式来执行帧间预测过程。

作为另一个实例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318通常可以以与关于帧内预测单元226(图10)所描述的方式基本上类似的方式来执行帧内预测过程。帧内预测单元318可以从dpb314检索当前块的相邻样本的数据。

重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本添加到预测块的对应样本以重构当前块。

滤波器单元312可以对重构的块执行一或多个滤波操作。例如,滤波器单元312可以执行去块操作以减少沿重构的块的边缘的块效应伪像。如由虚线所展示的,不一定在所有实例中都执行滤波器单元312的操作。

视频解码器300可以将重构的块存储在dpb314中。如上文所讨论的,dpb314可以向预测处理单元304提供参考信息,如用于帧内预测的当前图片以及用于随后的运动补偿的先前经过解码的图片的样本。此外,视频解码器300可以从dpb输出经过解码的图片,用于随后在如图1的显示装置118等显示装置上呈现。

以此方式,视频解码器300表示视频解码装置的实例,所述视频解码装置包含:存储器,所述存储器被配置成存储视频数据;以及一或多个处理单元,所述一或多个处理单元在电路系统中实施并且被配置成:基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg,为所确定的量化组内的所有视频数据块确定单个量化参数,以及使用所确定的单个量化参数对所确定的量化组内的所有视频数据块的变换系数执行量化过程。

图12是展示了用于对当前块进行编码的示例方法的流程图。当前块可以包括当前cu。尽管关于视频编码器200(图1和10)进行了描述,但是应当理解,其它装置可以被配置成执行与图12的方法类似的方法。

在此实例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成当前块的预测块。视频编码器200然后可以计算当前块的残差块(352)。为了计算残差块,视频编码器200可以计算原始的未译码的块与当前块的预测块之间的差。视频编码器200然后可以对残差块的系数进行变换和量化(354)。接下来,视频编码器200可以扫描残差块的经过量化的变换系数(356)。在扫描期间或在扫描之后,视频编码器200可以对系数进行熵编码(358)。例如,视频编码器200可以使用cavlc或cabac对系数进行编码。视频编码器200然后可以输出块的经过熵译码的数据(360)。

图13是展示了根据本公开的示例编码技术的用于对视频数据块进行量化(例如,对图12的残差块354进行变换和量化)的示例技术的流程图。视频编码器200的一或多个结构组件可以被配置成执行图13的技术,包含量化单元208。

在本公开的一个实例中,视频编码器200可以被配置成产生一或多个视频数据块(例如,视频数据的cu)中的每一个的残差块(例如,通过帧间预测、帧内预测或其它预测过程)(400),并且变换残差块以产生变换系数(402)。视频编码器200可以被进一步配置成基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg(404)。

视频编码器200可以进一步确定所确定的qg内的所有视频数据块的单个量化参数(qp)(406),并且使用所确定的单个qp对所确定的qg内的所有视频数据块的变换系数执行量化过程(408)。视频编码器200可以对经过编码的视频数据块进行熵编码和输出,例如,如上文所描述的。

在本公开的一个实例中,为了确定qg,视频编码器200被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积大于或等于基于区域的参数的值,cu分裂节点的任何子节点的面积小于基于区域的参数的值,以及qg尚未被指定为cu分裂节点的任何祖先节点。

在本公开的另一个实例中,为了确定qg,视频编码器200被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积大于或等于基于区域的参数的值,cu分裂节点是叶节点,以及qg尚未被指定为cu分裂节点的祖先节点中的任一个祖先节点。

在本公开的另一个实例中,为了确定qg,视频编码器200被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积小于或等于基于区域的参数的值,并且cu分裂节点的父节点的面积大于基于区域的参数的值。

在本公开的另一个实例中,为了确定qg,视频编码器200被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积大于基于区域的参数的值,并且cu分裂节点是叶节点。

在本公开的一个实例中,基于区域的参数的值为1024。

在本公开的另一个实例中,视频编码器200被配置成将基于区域的参数的值确定为maxdqpregionpara*maxdqpregionpara,其中在图片参数集(pps)中用信号发送指示maxdqpregionpara的值的信息。

在本公开的另一个实例中,视频编码器200被配置成将基于区域的参数的值确定为maxdqpregionpara1*maxdqpregionpara2,其中在图片参数集(pps)中用信号发送指示maxdqpregionpara1和maxdqpregionpara2的值的信息。

在本公开的另一个实例中,视频编码器200被配置成将基于区域的参数的值确定为maxdqpregionpara,其中在图片参数集(pps)中用信号发送指示maxdqpregionpara的值的信息。

在本公开的另一个实例中,视频编码器200被配置成确定量化组的量化参数预测器,并且使用所确定的量化参数预测器对量化参数执行预测过程,以确定单个量化参数。在一个实例中,量化参数预测器是切片量化参数。在另一个实例中,量化参数预测器是所述量化组左边的量化组的左量化参数和所述量化组上方的量化组的上量化参数的平均值。在另一个实例中,量化参数预测器是所述量化组左边的量化组的左量化参数或所述量化组上方的量化组的上量化参数之一。

在本公开的另一个实例中,视频编码器200被配置成将先前的量化参数预测器(qpprev)的值初始化为译码树单元的切片量化参数。

图14是展示了用于对当前视频数据块进行解码的示例方法的流程图。当前块可以包括当前cu。尽管关于视频解码器300(图1和11)进行了描述,但是应当理解,其它装置可以被配置成执行与图13的方法类似的方法。

视频解码器300可以接收当前块的经过熵译码的数据,如与当前块相对应的残差块的系数的经过熵译码的预测信息和经过熵译码的数据(370)。视频解码器300可以对经过熵译码的数据进行熵解码以确定当前块的预测信息并且重现残差块的系数(372)。视频解码器300可以例如使用如由当前块的预测信息所指示的帧内或帧间预测模式来预测当前块(374),以计算当前块的预测块。然后,视频解码器300可以逆扫描重现的系数(376),以产生经过量化的变换系数的块。然后,视频解码器300可以对系数进行逆量化和逆变换以产生残差块(378)。视频解码器300最终可以通过组合预测块和残差块来对当前块进行解码(380)。

图15是展示了根据本公开的示例编码技术的用于对视频数据块进行量化(例如,对系数进行逆量化和逆变换以产生图14的残差块378)的示例技术的流程图。视频解码器300的一或多个结构组件可以被配置成执行图14的技术,包含逆量化单元306。

在本公开的一个实例中,视频解码器300可以被配置成对一或多个视频数据块进行熵解码以产生变换系数的块(450)。视频解码器300可以被进一步配置成基于cu分裂节点的大小和基于区域的参数的值中的一或多个来确定qg(452)。

视频解码器300可以进一步确定所确定的qg内的所有视频数据块的单个量化参数(qp)(454),并且使用所确定的单个qp对所确定的qg内的所有视频数据块的变换系数执行量化过程(例如,逆量化)(456)。视频解码器300然后可以对变换系数的块进行逆变换以产生残差块(458)。视频解码器300然后可以例如如上文所描述的执行预测过程(例如,帧内预测、帧间预测或任何其它预测过程)以从残差块重构视频数据块。

在本公开的一个实例中,为了确定qg,视频解码器300被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积大于或等于基于区域的参数的值,cu分裂节点的任何子节点的面积小于基于区域的参数的值,以及qg尚未被指定为cu分裂节点的任何祖先节点。

在本公开的另一个实例中,为了确定qg,视频解码器300被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积大于或等于基于区域的参数的值,cu分裂节点是叶节点,以及qg尚未被指定为cu分裂节点的祖先节点中的任一个祖先节点。

在本公开的另一个实例中,为了确定qg,视频解码器300被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积小于或等于基于区域的参数的值,并且cu分裂节点的父节点的面积大于基于区域的参数的值。

在本公开的另一个实例中,为了确定qg,视频解码器300被配置成:如果所有以下条件都为真,则确定qg与cu分裂节点的大小相同:cu分裂节点的面积大于基于区域的参数的值,并且cu分裂节点是叶节点。

在本公开的一个实例中,基于区域的参数的值为1024。

在本公开的另一个实例中,视频解码器300被配置成将基于区域的参数的值确定为maxdqpregionpara*maxdqpregionpara,其中在图片参数集(pps)中用信号发送指示maxdqpregionpara的值的信息。

在本公开的另一个实例中,视频解码器300被配置成将基于区域的参数的值确定为maxdqpregionpara1*maxdqpregionpara2,其中在图片参数集(pps)中用信号发送指示maxdqpregionpara1和maxdqpregionpara2的值的信息。

在本公开的另一个实例中,视频解码器300被配置成将基于区域的参数的值确定为maxdqpregionpara,其中在图片参数集(pps)中用信号发送指示maxdqpregionpara的值的信息。

在本公开的另一个实例中,视频解码器300被配置成确定量化组的量化参数预测器,并且使用所确定的量化参数预测器对量化参数执行预测过程,以确定单个量化参数。在一个实例中,量化参数预测器是切片量化参数。在另一个实例中,量化参数预测器是所述量化组左边的量化组的左量化参数和所述量化组上方的量化组的上量化参数的平均值。在另一个实例中,量化参数预测器是所述量化组左边的量化组的左量化参数或所述量化组上方的量化组的上量化参数之一。

在本公开的另一个实例中,视频解码器300被配置成将先前的量化参数预测器(qpprev)的值初始化为译码树单元的切片量化参数。

应当认识到,根据所述实例,本文中描述的任何技术的某些动作或事件可以按不同的顺序执行、可以进行添加、合并或完全省去(例如,并不是所有描述的动作和事件对于实践技术来说都是必要的)。此外,在某些实例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器同时地而不是按顺序执行。

在一或多个实例中,所描述的功能可以以硬件、软件、固件或其任何组合实施。如果以软件实施,则可以将功能以一或多个指令或代码的形式存储在计算机可读媒体上或通过计算机可读媒体进行传输并且可以由基于硬件的处理单元执行功能。计算机可读媒体可以包含对应于如数据存储媒体等有形媒体的计算机可读存储媒体或包含有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何媒体的通信媒体。以此方式,计算机可读媒体通常可以对应于(1)非暂时性的有形计算机可读存储媒体或(2)如信号或载波等通信媒体。数据存储媒体可以是可以被一或多个计算机或一或多个处理器访问以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。

通过举例而非限制,此类计算机可读存储媒体可以包括ram、rom、eeprom、cd-rom或其它光盘存储区、磁盘存储区或其它磁性存储装置、闪速存储器或可以用于以指令或数据结构的形式存储期望的程序代码并且可以被计算机访问的任何其它媒体。并且,任何连接都被适当地称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、dsl或如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应当理解的是,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而相反针对非暂时性有形存储媒体。如本文所使用的,盘和碟包含压缩碟(cd)、激光碟、光碟、数字通用碟(dvd)、软盘和蓝光碟,其中盘通常磁性地重现数据,而碟用激光光学地重现数据。上述内容的组合也应包含在计算机可读媒体的范围内。

指令可以由一或多个处理器执行,如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其它等效的集成或离散逻辑电路系统。因此,本文所使用的术语“处理器”可以指代任何前述结构或适于实施本文所描述的技术的任何其它结构。另外,在一些方面,本文所描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或结合到组合式编解码器中。而且,所述技术可以完全在一或多个电路或逻辑元件中实施。

本公开的技术可以在各种装置或设备中实施,所述装置或设备包含无线手持装置、集成电路(ic)或ic组(例如,芯片组)。本公开中描述了各种组件、模块或单元以强调被配置成执行所公开技术的装置的功能方面,但不一定需要通过不同的硬件单元来实现。相反,如上文所描述的,结合适合的软件和/或固件,可以将各种单元组合在编解码器硬件单元中或由可互操作的硬件单元的集合提供,包含如上文所描述的一或多个处理器。

已经描述了各个实例。这些和其它实例在以下权利要求书的范围内。

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