用于无损视频译码的信令的方法和系统与流程

文档序号:20511253发布日期:2020-04-24 18:33阅读:207来源:国知局
用于无损视频译码的信令的方法和系统与流程

本申请是申请日为2015年03月09日、申请号为201580014850.x、发明名称为“用于无损视频译码的信令的方法和设备”的中国专利申请的分案申请。

相关申请的交叉引用

本申请为非临时递交并要求享有根据35u.s.c.§119(e)于2014年3月16日提交的序列号为61/953,922的美国临时专利申请、以及2015年1月15日提交的序列号为62/103,916的美国临时专利申请的权益。这些申请的内容通过引用他们的全部的方式结合于此。



背景技术:

在过去的二十年中,各种数字视频压缩标准已经被开发和标准化以使得高效数字视频通信、发布以及消费能够进行。大多商业上广泛部署的标准由iso/iec和itu-t开发,例如h.261、mpeg-1、mpeg-2h.263、mpeg-4(部分-2)、以及h.264/avc(mpeg-4部分10高级视频译码)。由于新的高级视频压缩技术的出现和成熟,由itu-t视频译码专家组(vceg)和iso/iecmpeghevc(itu-th.265/iso/iec23008-2)联合开发的高效视频译码(hevc)早在2013年被接受为国际标准,并且能够基本实现比当前最先进的技术h.264/avc更高的译码效率。

与传统的数字视频服务(例如通过卫星、电缆和地面传输信道发送tv信号)相比,在异构环境中部署了越来越多的新视频应用,例如iptv、视频聊天、移动视频以及流视频。这种异构性存在于客户端以及网络中。在客户端侧,n-屏场景(即在具有不同的屏幕大小和显示器性能的设备上欣赏(consuming)视频内容,该设备包括智能手机、平板电脑、pc以及tv),已经主导着市场并被期望继续主导市场。在网络侧,视频在因特网、wifi网络、移动(3g和4g)网络、和/或其组合上传送。



技术实现要素:

在这里描述了与无损译码的高级信令相关的系统和方法。在一些实施方式中,所述方法包括生成包含指示使用了无损译码的高级语法元素的视频数据比特流。高级信令语法可以是图片参数集(pps)、序列参数集(sps)、视频参数集(vps)或片分段报头中的一者。无损译码语法元素可以用作用于生成与量化、变换、变换跳过、变换跳过循环以及环路滤波过程相关的一个或多个sps语法元素的限制(condition)。

在一些实施方式中,一种方法包括生成包括transquant_bypass_default_flag的图片参数集(pps)。transquant_bypass_default_flag设定为1,指示参考pps的片中的所有译码单元的cu_transquant_bypass_flag的默认值。pps也可以具有等于0的transquant_bypass_enabled_flag。

在解码器侧,当应用无损译码时,可以绕过(bypass)包括逆量化、逆变换、解块滤波、样本自适应偏移(sao)等的多个处理块。因此,如果解码器接收到高级无损译码指示,则解码器确定较大群组的译码单元(cu)将不需要这些处理块。在解码之前关闭这些处理块可以有利于功率节约、处理循环减少、更好地提供负载。

因此在一些实施方式中,一种方法包括在解码器处接收高级无损译码指示,并且作为响应,关闭多个处理块。多个处理块可以包括以下硬件块中的任意一者或多者:逆量化、逆变换、解块滤波、和/或sao。此外,处理块可以在视频解码之前被关闭,使得处理块硬件组件的至少一部分的功率消耗减少。

附图说明

可从以下描述中获取更详细的理解,这些描述是结合附图通过举例给出的,其中:

图1a是显示基于块的视频编码器的一个示例的框图。

图1b是显示基于块的无损视频编码器的一个示例的框图。

图2a是显示基于块的视频解码器的一个示例的框图。

图2b是显示基于块的无损视频解码器的一个示例的框图。

图3是八个方向预测模式的一个示例的示图。

图4是显示33个方向预测模式和两个非方向预测模式的的一个示例的示图。

图5是水平预测的一个示例的示图。

图6是平面模式的一个示例的示图。

图7是显示运动预测的一个示例的示图。

图8是显示图片内的块级运动的一个示例的示图。

图9是显示一个示例性通信系统的示图。

图10是显示一个示例性无线发射/接收单元(wtru)的示图。

图11是显示译码比特流结构的一个示例的示图。

图12是使用标志transquant_bypass_default_flag对修改的pps扩展语法进行解码的方法的流程图。

具体实施方式

现在将参考不同附图来提供示例性实施方式的详细描述。虽然该描述提供了对可能的实施的详细示例,但是应当注意所提供的细节是示例性的而并不是要限制申请范围。

视频编码及解码

图1a是显示基于块的视频编码器(例如混合视频译码系统)的一个示例的框图。视频编码器100可以接收输入视频信号102。输入视频信号102可以被逐块处理。视频块可以是任意大小的块。例如,视频块单元可以包括16x16个像素。16x16个像素的视频块单元可以称为宏块(mb)。在高效视频译码(hevc)中,扩展的块大小(例如其可以称为译码树单元(ctu)或译码单元(cu),这两个术语对于本发明来说是等效的)可以用于有效地压缩高分辨率(例如1080p以及更高)视频信号。在hevc中,cu可以达到64x64像素。cu可以划分成预测单元(pu),独立的预测方法可以应用于所述预测单元。

对于输入视频块(例如mb或cu),可以执行空间预测160和/或时间预测162。空间预测(例如内预测)可以使用来自相同视频图片/片中的已经译码的邻近块来预测当前视频块。空间预测可以减少视频信号内部的空间冗余。时间预测(例如“间预测”或“运动补偿预测”)可以使用来自已经译码的视频图片(例如其可以称为“参考图片”)的像素来预测当前视频块。时间预测可以减少视频信号固有的时间冗余。用于视频块的时间预测信号可以由一个或多个运动矢量来用信号发送,其可以指示当前块与其在参考图片中的预测块之间的运动的量和/或方向。如果支持多个参考图片(例如这是对于h.264/avc和/或hevc的情况),则对于视频块,其参考图片可以被发送。参考图片索引可以用于识别时间预测信号是来自参考图片存储器164中的哪个参考图片的。

编码器中的模式决定块180例如在空间和/或时间预测之后可以选择预测模式。在116处,预测块可以从当前视频块减去。预测残差可以被变换104和/或量化106。量化块106可以有效地减去对预测残差进行译码所需的比特数。量化参数(qp)可以用于控制量化的程度。随着qp值的增加,可以应用更严重的量化;因此,译码后的比特数会减小,并且同时解码后的视频质量会降级。由于量化产生的公知的视觉假象包括块效应、模糊、涂抹、振铃、闪烁等等。图1a和图2a中显示的视频译码系统的其他处理块也会引起信息丢失,尤其是当这些处理块应用于需要处理管道中的即时数据的位深的上限的固定点操作时。例如,在变换块104中,水平方向中的变换可以首先应用,随后应用垂直方向中的变换。因为变换会增大数据位深(由于多应用),在水平变换之后,可以对水平变换的结果应用右移,以便减小垂直变换的输入数据位深。虽然这种移位操作可以帮助减少实施成本(通过减小数据位深),但是它们也会引起处理管道中的信息丢失。另外,为了使得固定点操作能够进行,最近的视频标准(例如h.264/avc和hevc)中的变换是整数值变换。这些整数变换中的一些变换可以接近正交但不完全正交。如果变换(和逆变换)矩阵不完全正交,则它们不能保证完美的重构。换句话说,即使不使用任何正交,在非正交变换和逆变换被应用到输入数据块之后,输出数据块(缩放因数可以应用于输出)也可能不在数值上维持与输入数据块相同。

量化的残差系数可以被逆量化110和/或逆变换112以便形成重构的残差,该重构的残差可以被加回到预测块126以便形成重构的视频块。

可以应用环路滤波166(例如解块滤波、样本自适应偏移、自适应环路滤波等)到重构的视频块(在该视频块被放入参考图片存储器164之前和/或在用于对将来的视频块进行译码之前)。视频编码器100可以输出输出的视频流120。为了形成输出的视频比特流120,译码模式(例如间预测模式或内预测模式)、预测模式信息、运动信息、和/或量化的残差系数可以被发送给熵译码单元108以便被压缩和/或封装来形成比特流。参考图片存储器164可以称为解码图片缓存器(dpb)。

图2a是显示基于块的视频解码器的一个示例的框图。视频解码器200可以接收视频比特流202。视频比特流202可以在熵解码单元208处被解封装和/或熵解码。用于对视频比特流进行编码的译码模式和/或预测信息可以被发送到空间预测单元260(例如如果被内译码(intracoded))和/或时间预测单元262(例如如果被间译码(intercoded))以形成预测块。如果被间译码,则预测信息可以包括预测块大小、一个或多个运动矢量(例如其可以指示运动的方向和量)、和/或一个或多个参考索引(例如其可以指示预测信号将从哪个参考图片获得)。

运动补偿预测可以由时间预测单元262应用以形成时间预测块。残差变换系数可以被发送给逆量化单元210和逆变换单元212以便重构残差块。预测块和残差块可以在226处被添加到一起。重构的块可以通过由环路滤波器266进行的环路滤波(在其被存储在参考图片存储器264中之前)。参考图片存储器264中的重构的视频可以用于驱动显示设备和/或用于预测将来的视频块。视频解码器200可以输出重构的视频信号220。参考图片存储器264也可以称为解码图片缓存器(dpb)。

视频编码器和/或解码器(例如视频编码器100或视频解码器200)可以执行空间预测(例如其可以称为内预测)。空间预测可以通过从多个预测方向中的一个预测方向之后的已经译码的邻近像素进行的预测来执行(其可以称为方向内预测)。

图3是八个方向预测模式的一个示例的示图。可以在h.264/avc中支持图3的八个方向预测模式。九个模式(包括dc模式2)是:

·模式0:垂直预测

·模式1:水平预测

·模式2:dc预测

·模式3:对角下-左预测

·模式4:对角下-右预测

·模式5:垂直-右预测

·模式6:水平-下预测

·模式7:垂直-左预测

·模式8:水平-上预测

空间预测可以对各种大小和/或形状的视频块执行。可以对例如4x4、8x8以及16x16像素的块大小(例如在h.264/avc中)执行视频信号的亮度分量的空间预测。可以对例如8x8像素的块大小(例如在h.264/avc中)执行视频信号的色度分量的空间预测。对于4x4或8x8大小的亮度块,可以支持总数为九个预测模式,例如八个方向预测模式和dc模式(例如在h.264/avc中)。对于例如16x16大小的亮度块,可以支持四个预测模式:例水平、垂直、dc以及平面预测。

可以支持方向内预测模式和非方向预测模式。图4是显示了33个方向预测模式和两个非方向预测模式的一个示例的示图。hevc可以支持图4的33个方向预测模式和两个非方向预测模式。可以支持使用更大块大小的空间预测。例如,可以对任意大小的块执行空间预测,例如大小为4x4、8x8、16x16、32x32或64x64的方块。方向内预测(例如在hevc中)可以使用1/32像素精度执行。

例如,除了方向内预测之外,还可以支持非方向内预测模式(例如在h.264/avc、hevc等中)。非方向内预测模式可以包括dc模式和/或平面模式。对于dc模式,方向值可以通过对邻近像素求平均值来获得,并且方向值可以一致地应用到整个块。对于平面模式,线性内插可以用于预测具有慢过渡的平滑区域。h.264/avc可以允许为16x16亮度块和色度块使用平面模式。

编码器(例如编码器100)可以执行模式决定(例如在图1中的块180处)来为视频块确定最优译码模式。当编码器确定应用内预测(例如不是间预测)时,编码器可以从可用的模式集合确定最佳内预测模式。所选择的方向内预测模式可以提供与输入视频块中的任何纹理、边缘和/或结构的方向相关的强烈暗示。图5是水平方向(例如对于4x4块)的一个示例的示图。已经重构的像素p0、p1、p2以及p3(例如阴影块)可以用于预测当前4x4视频块中的像素。在水平方向中,重构像素例如像素p0、p1、p2和/或p3可以沿着相对应的行的方向水平传播以便预测4x4块。例如,可以根据下面的等式(1)来执行预测,其中l(x,y)可以是在(x,y)处预测的像素,x,y=0…3。

图6是平面模式的一个示例的示图。平面模式可以相应地执行。顶行中的最右像素(例如标记为t)可以被复制来预测最右列中的像素。左列中的底像素(例如标记为l)可以被复制来预测底行中的像素。可以执行水平方向中的双显性内插(例如如左块所示)来产生中心像素的第一预测h(x,y)。可以执行垂直方向中的双显性内插(例如如右块所示)来产生中心像素的第二预测v(x,y)。使用l(x,y)=((h(x,y)+v(x,y))>>1,可以执行在水平预测与垂直预测之间求平均值以获得最后的预测l(x,y)。

图7和图8是显示视频块的运动预测(例如使用图1的运动预测单元162)的一个示例的示图。图8是显示一个示例性解码图片缓存器的示图,其包括例如参考图片“refpic0”、“refpic1”以及“refpic2”。当前图片中的块b0、b1以及b2可以分别从参考图片“refpic0”、“refpic1”以及“refpic2”中的块预测。运动预测可以使用来自邻近视频帧的视频块来预测当前视频块。运动预测可以使用视频信号中固有的时间相关性和/或移除视频信号中固有的时间冗余。例如在h.264/avc和hevc中,可以对各种大小的视频块执行时间预测(例如对于亮度分量,时间预测块大小可以在h.264/avc中从16x16变化到4x4,在hevc中从64x64变化到4x4)。在(mvx,mvy)的运动矢量中,可以执行由等式(1)提供的时间预测:

p(x,y)=ref(x-mvx,y-mvy)(1)

其中ref(x,y)可以是参考图片中的位置(x,y)处的像素值,并且p(x,y)可以是被预测的块。视频译码系统可以支持具有分数像素精度的间预测。当运动矢量(mvx,mvy)具有分数像素值时,可以应用一个或多个内插滤波来获得分数像素位置处的像素值。基于块的视频译码系统可以使用多假设预测来改进时间预测,例如,其中预测信号可以通过合并来自不同的参考图片的多个预测信号来形成。例如,h.264/avc和/或hevc可以使用可合并两个方向信号的双向预测。双向可以合并两个预测信号(每个预测信号来自一个参考图片)来形成预测,例如下面的等式(2):

其中p0(x,y)和p1(x,y)可以分别为第一和第二预测块。如等式(2)中所示,两个方向块可以通过执行分别从两个参考图片ref0(x,y)和refx(x,y)用运动矢量(mvx0,mvy0)和(mvx1,mvy1)执行运动补偿预测来获得。可以从源视频块减去预测块(例如在加法器116处)来形成预测残差块。预测残差块可以被变换(例如在变换单元104处)和/或量化(例如在量化单元106处)。量化残差变换系数块可以被发送给熵译码单元(例如熵译码单元108)以便被熵译码以减小比特率。熵译码残差系数可以被封装以便形成部分输出的视频比特流(例如比特流120)。

图11是显示译码的比特流结构的一个示例的示图。译码后的比特流1000由多个nal(网络应用层)单元1001组成。nal单元可以包含诸如译码后的片1006之类的译码后的样本数据、或诸如参数集数据之类的高级语法元数据、片报头数据1005或补充增强信息数据1007(其可以称为sei消息)。参数集是包含必要的语法元素的高级语法结构,该必要的语法元素可应用于多个比特流层(例如视频参数集1002(vps))、或可应用于一个层内的译码后的视频序列(例如序列参数集1003(sps))、或可应用于一个译码后的视频序列内的多个译码后的图片(例如图片参数集1004(pps))。参数集可以与视频比特流的译码后的图片一起被发送,或者可以通过其他方式发送(包括使用可靠的信号、硬译码等的带外传输)。片报头1005也是高级语法结构,其可以包含相对较小或者仅针对特定片或图片类型相关的一些图片相关信息。sei消息1007携带解码过程可能不需要但是能用于各种其它目的(例如图片输出定时或显示和/或损失检测和隐藏)的信息。

图9是显示通信系统的一个示例的示图。通信系统1300可以包括编码器1302、通信网络1304、以及解码器1306。编码器1302可以经由连接1308与通信网络1304进行通信。连接1308可以是有线连接或无线连接。编码器1302可以类似于图1的基于块的视频编码器。编码器1302可以包括单层编解码器(例如图1)或多层编解码器。

解码器1306可以经由连接1310与通信网络1306进行通信。连接1310可以是有线连接或无线连接。解码器1306可以类似于图2a的基于块的视频解码器。解码器1306可以包括单层编解码器(例如图2a)或多层编解码器。例如,解码器1306可以是使用图片级ilp支持的多层(例如两层)可缩放解码系统。

编码器1302和/或解码器1306可以合并到各种有线通信设备和/或无线发射/接收单元(wtru),例如但不限于数字电视、无线广播系统、网络元件/终端、服务器、例如内容或网页服务器(例如超文本传输协议(http)服务器)、个人数字助理(pda)、笔记本电脑或台式电脑、平板电脑、数码相机、数码录音设备、视频游戏设备、视频游戏机、蜂窝或卫星无线电话、数字媒体播放器等。

通信网络1304可以是任意合适的类型的通信网络。例如,通信网络1304可以是用于提供诸如语音、数据、视频、消息、广播等内容给多个无线用户的多址系统。通信网络1304能够使得多个无线用户通过共享系统资源(包括无线带宽)来接入这些内容。例如,通信网络1304可以使用一种或多种信道接入方法,例如码分多址(cdma)、时分多址(tdma)、频分多址(fdma)、正交fdma(ofdma)、单载波fdma(sc-fdma)等。通信网络1304可以包括多个连接的通信网络。通信网络1304可以包括因特网和/或一个或多个私人商业网络,例如蜂窝网、wifi热点、因特网服务供应商网络(isp的网络)等。

图10是示例wtru的系统图。wtru902可以包括处理器918、收发信机920、发射/接收元件922、扬声器/麦克风924、小键盘或大键盘926、显示器/触控板928、不可移除存储器930、可移除存储器932、电源934、全球定位系统(gps)芯片组936、以及其它外围设备938。应认识到wtru902在保持与实施方式一致的同时,可以包括前述元件的任何子组合。另外,可合并编码器(例如编码器802)和/或解码器(例如解码器806)的终端可以包括图10画出的以及这里参考图10的wtru902描述的一些元件和所有元件。

处理器918可以是通用处理器、专用处理器、常规处理器、数字信号处理器(dsp)、地图处理单元(gpu)、多个微处理器、与dsp核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)电路、任何其它类型的集成电路(ic)、状态机等等。处理器918可以执行信号译码、数据处理、功率控制、输入/输出处理、和/或使得wtru902能够在有线和/或无线环境中操作的任何其它功能。处理器918可以耦合到收发信机920,收发信机920可以耦合到发射/接收元件922。虽然图10将处理器918和收发信机920画为单独的元件,但应认识到处理器918和收发信机920可以被一起集成在电子组件和/或芯片中。

发射/接收元件922可以被配置为通过空中接口915向另一终端发射信号和/或从另一终端接收信号。例如,在一个或多个实施方式中,发射/接收元件922可以是被配置为发射和/或接收rf信号的天线。在一个或多个实施方式中,发射/接收元件922可以是被配置为发射和/或接收例如ir、uv、或可见光信号的发射器/检测器。在一个或多个实施方式中,发射/接收元件922可以被配置为发射和/或接收rf和光信号两者。应认识到发射/接收元件922可以被配置为发射和/或接收无线信号的任何组合。

另外,虽然发射/接收元件922在图10中被画为单个元件,但wtru902可以包括任何数目的发射/接收元件922。更具体而言,wtru902可以采用mimo技术。因此,在一些实施方式中,wtru902可以包括用于通过空中接口915来发射和接收无线信号的两个或更多个发射/接收元件922(例如多个天线)。

收发信机920可以被配置为调制将由发射/接收元件922发射的信号和/或对由发射/接收元件922接收到的信号进行解调。如上所述,wtru902可以具有多模式能力。因此,例如,收发信机920可以包括多个收发信机,该多个收发信机用于使得wtru902能够包括经由诸如utra和ieee802.11之类的多种rat进行通信。

wtru902的处理器918可以耦合到扬声器/麦克风924、键盘926、和/或显示器/触控板928(例如液晶显示器(lcd)显示单元或有机发光二极管(oled)显示单元),并且可以从这些组件接收用户输入数据。处理器918还可以向扬声器/麦克风924、键盘926、和/或显示器/触控板928输出用户数据。另外,处理器918可以访问来自任意类型的合适的存储器(例如不可移除存储器930和可移除存储器932)的信息,或者将数据存储在该任意类型的合适的存储器中。不可移除存储器930可以包括随机存取存储器(ram)、只读存储器(rom)、硬盘、或任何其它类型的存储器存储设备。可移除存储器932可以包括用户标识模块(sim)卡、记忆棒、安全数字(sd)存储卡等。在一个或多个实施方式中,处理器918可以访问来自在物理上不位于wtru902上(诸如在服务器或家用计算机(未示出))的存储器的信息并将数据存储在该存储器中。

处理器918可以从电源934接收电力,并且可以被配置为分配和/或控制到wtru902中的其它元件的电力。电源934可以是用于为wtru902供电的任何适当设备。例如,电源934可以包括一个或多个干电池(例如镍镉(nicd)、镍锌(nizn)、镍金属氢化物(nimh)、锂离子(li)等等)、太阳能电池、燃料电池等等。

处理器918还可以耦合到gps芯片组936,gps芯片组936可以被配置为提供关于wtru902的当前位置的位置信息(例如,经度和纬度)。除来自gps芯片组936的信息之外或作为其替代,wtru902可以通过空中接口915从终端(例如,基站)接收位置信息和/或基于从两个或更多个附近的基站接收到信号的时序来确定其位置。应认识到wtru902可以在保持与实施方式一致的同时,通过任何适当的位置确定方法来获取位置信息。

处理器918还可以耦合到其它外围设备938,外围设备938可以包括提供附加特征、功能和/或有线或无线连接的一个或多个软件和/或硬件模块。例如,外围设备938可以包括加速计、方向传感器、移动传感器、接近传感器、电子指南针、卫星收发信机、数码相机和/或录像机(例如用于拍照和/或视频)、通用串行总线(usb)端口、振动设备、电视收发信机、免提耳机、模块、调频(fm)无线电单元、以及软件模块例如数字音乐播放器、媒体播放器、视频游戏机模块、因特网浏览器等等。

举例来说,wtru902可以被配置为传送和/或接收无线信号,并且可以包括用户设备(ue)、移动站、固定或移动用户单元、寻呼机、蜂窝电话、个人数字助理(pda)、智能手机、笔记本电脑、上网本、平板电脑、个人电脑、无线传感器、消费电子设备、或能够接收和处理压缩视频通信的任意其他终端。

wtru902和/或通信网络(例如通信网络804)可以实施无线电技术,例如通用移动通信系统(umts)陆地无线接入(utra),其可以使用宽带cdma(wcdma)来建立空中接口915。wcdma可以包括诸如高速分组接入(hspa)和/或演进型hspa(hspa+)之类的通信协议。hspa可以包括高速下行链路分组接入(hsdpa)和/或高速上行链路分组接入(hsupa)。wtru902和/或通信网络(例如通信网络804)可以实施诸如演进型umts陆地无线接入(e-utran)之类的无线电技术,其可以使用长期演进(lte)和/或高级lte(lte-a)来建立空中接口915。

wtru902和/或通信网络(例如通信网络804)可以实施诸如ieee802.16((例如全球互通微波接入(wimax))、cdma2000、cdma20001x、cdma2000ev-do、暂行标准2000(is-2000)、暂行标准95(is-95)、暂行标准856(is-856)、全球移动通信系统(gsm)、增强型gsm演进数据率(edge)、gsmedge(geran)等之类的无线电技术。wtru902和/或通信网络(例如通信网络804)可以实施诸如ieee802.11、ieee802.15等之类的无线电技术。

无损译码

对于一些视频应用,例如医学视频应用和高端专业视频应用,可能希望没有任何损失的保留原始视频信号中的所有信息。对于这种视频应用,可以使用无损译码。在无损译码中,可引起信息丢失(例如变换和量化)的视频编解码器中的处理块可以被修改和/或绕过。图1b和图2b中的编码器和解码器配置可以分别用于实现无损译码。在无损译码中,不应用用于变换、量化、逆变换以及逆量化的处理块。另外,由于重构的视频块作为图1b的加法器126和图2b的加法器226的结果在数值上与原始视频块相同,因此环路滤波可能不是必须的,并且其确实在实际上引入了不希望的失真。因此,在一些实施方式中也不应用用于环路滤波的处理块。

由于诸如无线显示之类的视频应用和云计算的快速增长,近年来屏幕内容译码(scc)已经收到了来自学术和工业上的许多关注。虽然与先前的视频译码标准相比,hevc已经在译码效率上实现了显著改进,但是其主要针对由摄像机捕获的自然视频而进行了设计。然而,屏幕内容视频(其典型地由计算机生成的内容(例如文本和图像)组成)显示了与自然内容非常不同的属性。鉴于这种情况,期望针对屏幕内容译码来扩展hevc。内块复制(ibc)是hevc屏幕内容译码扩展中已经采用的一种译码方法,如r.joshi、j.xu在2014年10月(joshi2014)所著的文献编号为no.jctvc-s1005的hevcscreencontentcodingdrafttext2中所述。ibc被设计为通过从同一图片的已重构区域的像素预测当前pu的像素,来利用一个图片内固有的图片内冗余(尤其是在图片包含文本和图像丰富的大量屏幕内容的情况下)。类似于间模式,对于使用ibc模式译码的cu,一个预测的pu与其参考块之间的位移由块矢量(bv)表示。bv与比特流中的相对应残差一起译码。

在hevc与其扩展中,称为transquant_bypass_enabled_flag的语法元素在图片参数集(pps)中被用信号发送以便指示变换和量化是否可以在逐块的基础上被绕过。如d.flynn,m.naccari,c.rosewarne、j.sole,g.sullivan、t.suzuk在2014年1月所著的文献编号为jctvc-p1005的“highefficiencyvideocoding(hevc)rangeextensionstextspecification:draft6”中所述,hevc中的pps语法表格被显示在下面的表1中,其中transquant_bypass_enabled_flag被显示在第22行:

表1:hevc范围扩展草案6中的pps语法表格

如果当前片参考其中transquant_bypass_enabled_flag(表1的第22行)被设定为1(这通过将片报头中的slice_pic_parameter_set_id(表2中的第5行)设定为适当的值以识别适当的pps来执行)的pps,则在译码单元或cu级别,称为cu_transquant_bypass_flag的另外的标志针对当前片中的所有cu而被发送。表3中显示了coding_unit元素表。

表2:hevc范围扩展草案6中的片报头语法表格

表3:hevc范围扩展草案6中的译码单元(cu)语法表格

cu_transquant_bypass_flag(表3的第3行)的值指示变换和量化针对当前cu被绕过(在cu_transquant_bypass_flag被设定为1的情况下)还是变换和量化被应用于当前cu(在cu_transquant_bypass_flag被设定为0的情况下)。当pps中的transquant_bypass_enabled_flag标记被设定为0时,另外的cu级标志cu_transquant_bypass_flag不被用信号发送,并且被推断为0(也就是说,变换和量化被应用于当前cu)。

当标志cu_transquant_bypass_flag针对当前cu被设定为1时,变换和量化不被应用于预测残差。相反,预测残差被直接熵译码并且与其预测模式信息、运动信息等一起封装到视频比特流中。另外,解块和样本自适应偏移(sao)针对当前cu而被绕过。这样,实现了块级别的无损译码,也就是说,重构的cu在数值上与原始cu相同。

对于需要无损译码的视频应用来说,期望将无损译码应用于序列级别(即整个序列被无损译码)或图片/片级别(即整个图片/片被无损译码)。第一版hevc标准以及当前jct-vc发展下的hevc范围扩展不包括或者以其他方式提供用于指示序列/图片/片级别的无损译码的高级信令。相反,为了使用现有信令方案来实现序列/图片/片级别的无损译码可以执行以下操作:(i)创建transquant_bypass_enabled_flag被设定为1的pps;(ii)在视频序列/图片/片的片分段报头中,参考transquant_bypass_enabled_flag被设定为1的pps;(iii)对于序列/图片/片中的所有cu,将标志cu_transquant_bypass_flag设定为1。

仅依赖于无损模式的块级别信令具有多种缺点。特别是,其需要为序列/图片/片中的所有cu发送cu_transquant_bypass_flag,可能效率不高。虽然上下文自适应二进制算术译码(cabac)用于对该cu级别标志cu_transquant_bypass_flag进行译码,其可以有效减少信令开销,但这仍然需要解码器为序列/图片/片中的所有cu解析另外的语法元素,其可能是冗余操作。

此外,如果针对无损模式仅块级别的信令可用,则解码器可能不能为整个无损译码进行正确地准备,这是因为仍然可能诸如逆量化、逆变换、解块滤波器、sao等之类的处理块可能对于一些将来的cu来说仍然有必要(也就是说,一些将来的cu的cu_transquant_bypass_flag的值可以设定为0)。这限制了以其他方式可从关闭不需要的处理块得到的可用的功率节约。

类似地,当前视频比特流包含无损译码不需要的不同级别处的多种语法元素。这些元素涉及高级语法结构中的逆量化、逆变换、解块以及sao。例如,在pps中,一些语法元素(例如表1中第11、14、17、18行中分别显示的init_qp_minus26、cu_qp_delta_enabled_flag、pps_cb/cr_qp_offset)与逆量化过程相关;一些语法元素(例如表1中第40、43、44行中分别显示的deblocking_filter_override_enabled_flag、pps_beta_offset_div2、pps_tc_offset_div2)与解块过程相关;并且一些语法元素(例如表1中第72、73行中分别显示的log2_sao_offset_scale_luma、log2_sao_offset_scale_chroma)与sao过程先关。类似地,片分段报头中的一些语法元素涉及逆量化(表2中第74、76、77行中分别显示的slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset)、解块(第86、87行中显示的slice_beta_offset_div2、slice_tc_offset_div2)、以及sao(表2中第47和49行中显示的slice_sao_luma_flag、slice_sao_chroma_flag)。这些和其他语法元素在表1-3中用星号标记。当无损译码应用于序列/图片/片级别时,可能必须用信号发送这些语法元素,其减少了信令开销。但是,在没有无损译码模式的高级指示的情况下,这些高级语法元素必须被编码到比特流中并传送给单独的解码器。

更进一步,视频流可以包含块级别(例如cu级别)的变换相关的信令。例如,在transform_tree()语法结构(表7中显示的简化版本的transform_tree())中,标志被发送以指示是否执行变换单元的四叉树分离(transform_split_flag)和/或在用于亮度和色度的变换块中是否存在任意非零系数(cbf_luma、cbf_cb、以及cbf_cr)。在无损译码模式中,transform_tree()语法可以通过显性地绕过这些标志的信令并且相反将这些标志设置为适当的默认值而被简化。

信令无损译码模式

在这里描述无损译码模式中使用的信令方法的各种实施方式,其可以克服上述缺点中的一个或多个。在一个这样的实施方式中,无损译码模式的信令可以通过修改pps语法结构来执行。表4显示了根据一些实施方式的修改后的pss语法表,在该实施方式中,添加了另外的标志transquant_bypass_default_flag来指示参考该pps的片中的所有译码单元的标志cu_transquant_bypass_flag的默认值。在该实施方式中,比特流不需要在每个单独的译码单元中用信号发送cu_transquant_bypass_flag。通过将该新的标志设定为1,并且将标志transquant_bypass_enabled_flag设定为0,编码器可以向解码器指示在序列、和/或图片、和/或片级别处应用了无损译码。也就是说,无需任意cu级别信令,绕过了参考当前pps的所有cu的变换、变换跳过、量化、以及环路滤波过程。

当cu_transquant_bypass_flag不存在时,可以考虑新的transquant_bypass_default_flag来规定cu_transquant_bypass_flag的默认值。

cu级别标志cu_transquant_bypass_flag在0的现有语义可以修改如下:cu_transquant_bypass_flag等于1规定了8.6小节中规定的缩放和变换过程和8.7小节中规定的环路滤波过程被绕过。当不存在cu_transquant_bypass_flag时,其被推断为等于transquant_bypass_default_flag。如表4所示,可以使用新的标志transquant_bypass_default_flag(表4第11行)来限制(condition)与逆量化、逆变换以及环路滤波过程相关的pps中的多个语法元素的存在性(如表4第12、15、17、21、28、42、45、57、74以及84所示),其在表4中用星号标记。这些限制被设定为使得这些语法元素仅在transquant_bypass_default_flag等于0时(即在应用有损译码时)被发送。当transquant_bypass_default_flag等于1时(即在应用无损译码时),这些语法元素不被发送,相反,它们的值被推断为0。例如,通过当transquant_bypass_default_flag被设定为1时推断cu_qp_delta_enabled_flag的值为0,其指示变量qp相关的语法元素在cu级别不被发送,由此节约了比特并且简化了语法解析。

此外,新的标志transquant_bypass_default_flag用于限制transform_skip_enabled_flag的存在性。transform_skip_enabled_flag用于绕过仅变换过程(而不是量化过程)。因此,它是transquant_bypass_enabled_flag的子集。此外,新的标志transquant_bypass_default_flag用于限制transquant_bypass_enabled_flag的存在性。这样,当transquant_bypass_default_flag设定为1时(即无损译码模式),transquant_bypass_enabled_flag被推断为0,并且cu级别处的cu_transquant_bypass_flag的信号发送被跳过。

表4:具有无损译码模式信令的pps语法表

在另一实施方式中,为了通过hevc范围扩展来实施提议的另外的语法元素,transquant_bypass_default_flag的位置可以进一步向下移动作为pps扩展的一部分(即,在pps_extension_flag[0]的“if”条件内)。该布置可以保证hevc范围扩展的pps语法最大程度地与hevc标准的第一版本(b.bross、w.-j.han,g.j.sullivan、j.-r.ohm、y.k.wang,t.wiegand.于2013年1月所著的文献编号为jctvc-l1003的highefficiencyvideocoding(hevc)textspecificationdraft10.document)后向兼容。表5显示了这种布置的一个示例。在这种布置中,新的标志transquant_bypass_default_flag可以根据transquant_bypass_enabled_flag的值来限制。也就是说,transquant_bypass_default_flag仅在transquant_bypass_enabled_flag等于0时被用信号发送。当transquant_bypass_enabled_flag等于1时,transquant_bypass_default_flag不被用信号发送,并且参考该pps的每个译码单元中的cu_transquant_bypass_flag的值在译码单元级别从比特流被显性地接收到。但是,在该实施方式的布置中,因为该新的标志不是主pps语法的一部分,它不用于限制如上面描述的表4中的量化、变换、变换跳过和环路滤波相关的那些现有pps语法元素(用星号标记的语法元素)的存在性。如果transquant_bypass_default_flag为1,则用信号发送另一标志lossless_coding_conformance_flag。如果标志lossless_coding_conformance_flag为1,则可以应用比特流符合(conformance)要求来保证无损译码模式中未用的那些语法元素的被用信号发送的值具有适当的值。例如,在符合比特流中,如果新的标志transquant_bypass_default_flag被设定为1,则包括cu_qp_delta_enabled_flag、pps_loop_filter_across_slices_enabled_flag、deblocking_filter_control_present_flag、loop_filter_across_tiles_enabled_flag、pps_scaling_list_data_present_flag等的语法元素的值可能需要被设定为0。这种比特流符合要求可以帮助最小化无损译码中未用的语法元素相关的信令开销。

如上所述,在一些实施方式中,pps用于携带新的标志transquant_bypass_default_flag来用于无损译码指示。但是,在其他实施方式中,其他高级语法结构例如序列参数集(sps)或视频参数集(vps)也可以用于携带所提议的标志。可替换地,如果仅期望片级别的无损译码指示,则片分段报头可以用于携带所提议的新的标志。

注意与量化、变换、以及环路滤波过程相关的一些语法元素可以作为sps的一部分而被用信号发送。这种sps语法元素的示例包括log2_min_transform_block_size_minus2、log2_diffmax_min_transform_block_size、max_transform_hierarchy_depth_inter、max_transform_hierarchy_depth_intra、scaling_list_enabled_flag、sample_adaptive_offset_enabled_flag、pcm_loop_filter_disabled_flag、transform_skip_rotation_enabled_flag、transform_skip_context_enabled_flag等。如果无损译码模式通过使用标志transquant_bypass_default_flag在sps级别或vps级别被指示,则所提议的标志可以用于限制与量化、变换、变换跳过、变换跳过循环、以及环路滤波过程相关的sps那些语法元素的存在性。可替换地,也可以应用类似的比特流符合要求来保证用信号为这些语法元素发送适当的值,例如在设定了符合标志的情况下,保证环路滤波被禁用。

表5:pps扩展中的信令transquant_bypass_default_flag

片报头信令

在再一实施方式中,可以使用片报头信令。类似于pps,表2中的片分段报头还包含用于变换、量化以及环路滤波处理块的多个语法元素(用星号标记的语法元素)。这些语法元素可以根据新标志transquant_bypass_default_flag的值而被限制,并且可能在通过将transquant_bypass_default_flag设定为1来指示无损译码时不需要被用信号发送。表6显示了一个这样的实例。

如表2所示,片分段报头包含与量化、变换以及环路滤波过程相关的几个语法元素。这种片分段报头语法元素(其行数用星号标记)包括slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2以及slice_loop_filter_across_slices_enabled_flag。如果片级别的无损译码通过用信号发送片分段报头处的所提议的标志transquant_bypass_default_flag而被启用,则所提议的标志可以用于限制片分段报头中的与量化、变换以及环路滤波过程相关的这些语法元素的存在性。因此,在一个实施方式中,标志transquant_bypass_default_flag放置在片分段报头中的与量化、变换以及环路滤波相关的那些语法元素前面。在另一实施方式中,标志transquant_bypass_default_flag放置在片分段报头中的可替换位置,例如在与量化、变换以及环路滤波相关的那些语法元素之后。在这种情况下,如果transquant_bypass_default_flag设定为1,则比特流符合要求应当被应用以保证那些语法元素的值被适当地设定。transquant_bypass_default_flag设定为1指示了当前片中的所有译码单元在无损模式中被译码,而无需用信号发送比特流中的每个单独的译码单元的cu_transquant_bypass_flag。另外,可以应用以下比特流符合要求:当所提议的transquant_bypass_default_flag设定为1时,当前片参考的pps的标志transquant_bypass_enabled_flag的值等于1。

表6显示了当所提议的标志transquant_bypass_default_flag在片分段报头中的与量化、变换以及环路滤波相关的语法元素之前被用信号发送时,修改后的片分段报头的一个示例。注意虽然表6中的示例显示了所提议的transquant_bypass_default_flag在片分段报头中被发送,但是作为代替,该标志可以在pps(表5)中被用信号发送,并且可以用于限制用星号指示的片分段报头语法元素的存在性。

表6:使用transquant_bypass_default_flag的修改后的片分段报头语法

用表5作为例子,其中transquant_bypass_default_flag作为pps扩展的一部分而被用信号发送,图12显示了一种用于在解码器侧解析修改后的pps扩展语法的算法的一个实施方式。在修改后的pps扩展中,所提议的标志transquant_bypass_default_flag被解析,并且其值在步骤1202中被检查。如果transquant_bypass_default_flag等于0,则高效视频译码(hevc)范围扩展文本规范(草案6)中的现有pps扩展语法元素被解析和处理(步骤1204)。如果transquant_bypass_default_flag等于1,则语法元素chroma_qp_adjustment_enabled_flag、log2_sao_offset_scale_luma以及log2_sao_offset_scale_chroma不被解析,并且作为代替,其值被推断为0(步骤1206)。如果标志lossless_coding_conformance_flag为1(步骤1207),则应用比特流符合要求。符合要求通过以下过程来应用:检查与量化、变换以及环路滤波相关的现有pps语法元素(例如init_qp_minus26、cu_qp_delta_enabled_flag、pps_cb/cr_qp_offset、cu_qp_delta_enabled_flag、pps_loop_filter_across_slices_enabled_flag、deblocking_filter_control_present_flag、loop_filter_across_tiles_enabled_flag、pps_scaling_list_data_present_flag等)的被用信号发送的值,来保证这些语法元素被正确地禁用(步骤1208)。如果一个或多个语法元素被禁用,则解码器将报告比特流符合违背(步骤1210);否则,pps扩展的解析被正常地完成。

变换树语法信令

用于无损译码的变换四叉树分离

hevc和hevc范围扩展使用变换树分离语法来用信号发送变换单元(tu)的大小。在一个实施方式中,高效视频译码(hevc)范围扩展文本规范(草案6)的7.3.8.8节中规定的变换树语法不需要基于所提议的新标志transquant_bypass_default_flag而改变。在另一实施方式中,变换树语法可以被简化以便当transquant_bypass_default_flag等于1时绕过四叉树分离标志(split_transform_flag)和/或用信号发送用于亮度和色度分量(cbf_luma、cbf_cb、cbf_cr)的译码块标志。表7中显示了简化的transform_tree()语法。transquant_bypass_default_flag用作split_transform_flag的存在性的另外的限制。当不存在时,split_transform_flag的值对于大多数情况被推断为0(即不应用变换四叉树分离),并且对于当变换四叉树分离被强制执行时(例如当在内译码中使用nxn划分时,或者当当前cu大小大于32x32的最大变换大小时等等)的一些现有特定情况split_transform_flag的值被推断为0(即应用变换四叉树分离)。另外,如表7所示,当transquant_bypass_default_flag等于1时,transform_tree()中的所有cbf标志(对于亮度分量和色度分量)的信号发送可以跳过;代替的是,其值可以推断为1,这是因为由于在无损译码中没有量化过程,cbf标志最可能具有非零值。

cbf_luma、cbf_cb以及cbf_cr的语义也可以修改。cbf_luma[x0][y0][trafodepth]的值等于1可以用于规定亮度变换块包含不等于0的一个或多个变换系数级别。阵列索引x0、y0规定了考虑的相对于图片的左上角亮度样本的变换块的左上角亮度样本的位置(x0,y0)。阵列索引trafodepth规定了译码块到块的当前细分级别,以便用于变换译码。对于对应于译码块的块来说,trafodepth等于0。当cbf_luma[x0][y0][trafodepth]不存在时,trafodepth被推断为等于1。

cbf_cb[x0][y0][trafodepth]的值等于1可以用于指示cb变换块包含不等于0的一个或多个变换系数级别。阵列索引x0、y0规定了考虑的变换单元的左上角位置(x0,y0)。阵列索引trafodepth规定了译码块到块的当前细分级别,以便用于变换译码。对于对应于译码块的块来说,trafodepth等于0。当cbf_cb[x0][y0][trafodepth]不存在时,cbf_cb[x0][y0][trafodepth]的值被推断如下。

·如果transquant_bypass_default_flag等于1,则cbf_cb[x0][y0][trafodepth]被推断为等于1,

·否则,如果trafodepth大于0并且log2trafosize等于2,则cbf_cb[x0][y0][trafodepth]被推断为等于cbf_cb[xbase][ybase][trafodepth-1],

·否则,cbf_cb[x0][y0][trafodepth]被推断为等于0。

cbf_cr[x0][y0][trafodepth]的值等于1规定了cr变换块包含不等于0的一个或多个变换系数级别。阵列索引x0,y0规定了考虑的变换单元的左上角位置(x0,y0)。阵列索引trafodepth规定了译码块到块的当前细分级别,以便用于变换译码。对于对应于译码块的块来说,trafodepth等于0。

当cbf_cr[x0][y0][trafodepth]不存在时,cbf_cr[x0][y0][trafodepth]的值被推断如下:

·如果transquant_bypass_default_flag等于1,则cbf_cr[x0][y0][trafodepth]被推断为等于1,

·否则,如果trafodepth大于0并且log2trafosize等于2,则cbf_cr[x0][y0][trafodepth]被推断为等于cbf_cr[xbase][ybase][trafodepth-1],

·否则,cbf_cr[x0][y0][trafodepth]被推断为等于0。

应当注意,虽然表7显示了使用所提议的高级别标志transquant_bypass_default_flag来简化transform_tree()语法的示例,但是现有的块级别标志cu_tranquant_bypass_flag可以作为代替用于通过遵循相同的逻辑来限制split_transform_flag、cbf_luma、cbf_cb以及cbf_cr的存在性。

表7:简化的变换树语法

在表7显示的一实施方式中,对于具有不同大小并且用不同译码模式译码的cu来说,当标志transquant_bypass_default_flag等于1时,四叉树分离标志split_transform_flag和译码块标志cbf_luma、cbf_cb以及cbf_cr被绕过并且被推断为相对应的默认值。但是,根据输入视频的特性,具有不同块大小和译码模式的cu的残差可以呈现出不同的统计特性。在这种情况下,它可能不能有利于禁用一个图片或序列中的所有su的变换四叉树分离。代替的是,为了改进译码性能,作为本发明的一个实施方式,所提议的transquant_bypass_default_flag用于根据要译码的cu的块大小、译码模式(即间、内或ibc)、或块大小与译码模式的组合来有条件地绕过变换四叉树分离标志和/或译码块标志的信令。例如,根据复杂性与性能的折衷,它可以有利于在块通过使用非内模式而被译码(即通过使用间或ibc模式而被译码)并且块大小为8x8或16x16的情况下,仅允许变换四叉树分离。

在一个实施方式中,以下过程适用于在标志transquant_bypass_default_flag等于1时。对于所有内译码的cu,以及块大小从64x64到32x32的所有间译码和ibc译码的cu,split_transform_flag和/或译码块标志(cbf_luma、cbf_cb以及cbf_cr)不被用信号发送;它们被推断为如上文所探讨的相对应的默认值。对于用间模式或ibc模式译码的8x8和16x16cu,可以允许进一步的分离。split_transform_flag和/或译码块标志(cbf_luma、cbf_cb以及cbf_cr)仍然被用信号发送以便分别指示当前块是否被进一步划分为四象限(quadrant)和/或一个tu中的系数是否为全0。

在一些实施方式中,可以添加两个语法元素log2_intra_max_no_transform_split_coding_block_size_minus3和log2_inter_max_no_transform_split_coding_block_size_minus3到sps或pps来规定最大cu大小,针对该最大cu大小,变换四叉树分离分别被应用于内和间/ibc译码的cu。例如通过使用上面的限制1)和2),log2_intra_max_no_transform_split_coding_block_size_minus3和log2_inter_max_no_transform_split_coding_block_size_minus3分别设定为log2(64)-3=3和log2(16)-3=1。表8显示了具有两个提议的语法元素的修改后的sps屏幕内容译码扩展语法表。

虽然表8显示了两个另外的语法元素,但是在本发明的另一实施方式中,可以不用信号发送log2_intra_max_no_transform_split_coding_block_size_minus3的值。代替的是,该值可以被推断为一直与能通过增大最小cu大小(如sps中由语法元素log2_min_luma_coding_block_size_minus3所规定的)获得的允许的最大cu大小相同,差值在最大与最小cu大小(如sps中由语法元素log2_diff_max_min_luma_coding_block_size所规定的)之间。在该实施方式中,当cu在内模式中被译码并且无损译码被应用时,不允许变换四叉树分离。

表8:序列参数集屏幕内容译码语法

log2_intra_max_no_transform_partition_coding_block_size_minus3的值加上3规定了当译码单元被内译码并且当cu_transquant_bypass_flag等于1时应用变换四叉树分离的译码单元的最大块大小。

log2_intra_max_no_transform_partition_coding_block_size_minus3的值加上3规定了当译码单元被间译码并且cu_transquant_bypass_flag等于1时应用于变换四叉树分离的译码单元的最大块大小。

表9显示了修改的transform_tree()语法表格,其具有根据当前cu的块大小和译码模式限制的split_transform_flag、cbf_luma、cbf_cb以及cbf_cr的所提议的信令约束。注意虽然该示例性实施方式使用cu译码模式和cu大小来限制是否允许split_transform_flag和cbf信令,但是可以使用其他修改限制。例如,可以使用译码模式和块大小中的任一者(但不是二者)。另外,独立(并且不同)的限制可以应用于split_transform_flag信令或cbf信令。

表9:修改后的变换树语法

在另一实施方式中,为了跳过无损情况下的split_transform_flag的信令,sps中的语法元素max_transform_hierarchy_depth_inter和max_transform_hierarchy_depth_intra可以设定为0。该方法在序列级别无损译码的情况下不需要对当前的transform_tree()语法进行低级别改变并且绕过了transform_skip_flag的信令。在这种实施方式中,split_transform_flag不被用信号发送,并且代替的是,被推断为默认值,其在大多数情况下为0,除非tu四叉树分离被强制(例如,nxn划分被用于内译码,或者当cu大小大于最大tu大小时,等等)。因此,当应用序列级别无损译码时,通过施加要求max_transform_hierarchy_depth_inter和max_transform_hierarchy_depth_intra被适当地设定为0的比特流约束,transform_split_flag的信令可以被绕过,而无需任何块级别的改变。类似地,通过施加最大变换大小和最小变换大小在序列级别无损译码的情况下必须相同的比特流约束,transform_split_flag的信令可以被绕过,而无需任何块级别的改变。该约束在序列级别无损译码的情况下能够通过要求sps语法log2_diff_max_min_transform_block_size设定为0来实现。由于max_transform_hierarchy_depth_inter、max_transform_hierarchy_depth_intra以及log2_diff_max_min_transform_block_size位于sps中,因此更优选的可以是在这种情况中也将transquant_bypass_default_flag放置在sps中。

在本发明的另一实施方式中,提议了仅编码器方法来用于进行无损译码,而无需添加标志transquant_bypass_default_flag。在这种实施方式中,使用transquant_bypass_default_flag的限制术语可以从用剑号标记的表7和表9中的语法元素省略。该实施方式不需要修改sps中的语法元素max_transform_hierarchy_depth_inter和max_transform_hierarchy_depth_intra或transform_tree()中的语法元素的值。为了减小编码复杂性,对于仅编码器方法仍用信号发送标志split_tranform_flag,但是仅由如表7或表9中所述的split_tranform_flag的默认值指示的变换四叉树分离针对每个cu而被测试。

在一些实施方式中,当对于当前cu来说标志cu_transquant_bypass_flag等于1时,编码器将会针对大多数情况仅测试无变换四叉树划分的率失真(r-d)性能,并且对于一些特别情况(例如当nxn个pu划分被应用于内译码cu或者当前cu大小大于阈值时)仅测试一次变换四叉树划分的r-d性能。这样,该仅编码器方法与应用于用剑号标记的语法元素中的表7中的标志split_tranform_flag的限制一致。

在另一实施方式中,当标志cu_transquant_bypass_flag等于1时,当cu精确地包含一个预测单元时,编码器将会对于块大小从64x64到32x32的所有内译码cu和所有间/ibc译码的cu仅测试无变换四叉树划分的r-d性能;当cu包含至少两个预测单元时,编码器将会对于块大小从64x64到32x32的所有内译码cu和所有间/ibc译码的cu仅测试一次变换四叉树划分的r-d性能;对于块大小16x16和8x8的间/ibc译码的cu,编码器测试无变换四叉树分离和进一步的变换四叉树分离的r-d性能。因此这种仅编码器方法与应用于表9中用剑号标记的标志split_tranform_flag的限制一致。另外,虽然对于上述仅编码器方法,标志split_tranform_flag仍在比特流中被用信号发送,但是可以应用一个比特流符合约束以便要求语法元素split_tranform_flag的值根据块大小和块译码模式而被设定为其默认值。

在一些实施方式中,变换四叉树分离标志的默认值的确定是至少部分基于相关译码单元中的预测单元的数量的。在一个这样的实施方式中,默认值的确定包括确定译码单元是否被内译码、译码单元的大小是否大于大小阈值、以及译码单元是否精确地包含一个预测单元。响应于确定译码单元不被内译码、译码单元大于大小阈值、以及译码单元精确地包含一个预测单元,变换四叉树分离标志的默认值被设定为指示无变换四叉树划分。

在另一这样的实施方式中,变换四叉树分离标志的默认值的确定包括确定相关译码单元是否被内译码、译码单元的大小是否大于大小阈值、以及第一译码单元是否包含至少两个预测单元。响应于确定译码单元不被内译码、译码单元大于大小阈值、以及译码单元包含至少两个预测单元,变换四叉树分离标志的默认值被设定为指示一次变换四叉树划分。

在进一步的实施方式中,变换四叉树分离标志的默认值的确定包括确定相关译码单元是否被内译码、以及第一译码单元是否精确地包含一个预测单元。响应于确定译码单元被内译码以及精确地包含一个预测单元,变换四叉树分离标志的默认值被设定为指示无变换四叉树划分。

在另一实施方式中,确定变换四叉树分离标志的默认值包括确定相关译码单元是否被内译码以及译码单元是否包含至少两个预测单元。响应于确定译码单元不被内译码以及译码单元包含至少两个预测单元,变换四叉树分离标志的默认值被设定为指示一次变换四叉树划分。

译码单元是精确地包括一个预测单元还是包括至少两个预测单元的确定可以通过确定译码单元的划分模式来执行。例如,使用2nx2n划分模式的译码单元精确地包括一个预测单元,而使用2nxn、nx2n、2nxnu、2nxnd、nlx2n、nrx2n或nxn划分模式的译码单元举例来说包含至少两个预测单元。

用于内块复制模式的变换树分离

变换树分离的最大深度与编码和解码复杂度密切相关。为了提供译码效率与计算复杂度之间的灵活的折衷,hevc与其扩展使用sps中的语法元素来规定tu大小和tu分离深度。值log2_min_luma_transform_block_size_minus2和log2_diff_max_min_luma_transform_block_size指示用于对视频序列进行译码的tu大小的设置,并且max_transform_hierarchy_depth_inter和max_transform_hierarchy_depth_intra分别为内和间译码cu指示最大分离深度。在某些限制下,不可以应用变换四叉树分离。例如,如果max_transform_hierarchy_depth_intra/inter设定为0,则变换四叉树不被应用于当前内/间译码的cu。

在hevc、其范围扩展、以及scc草案中,当禁用变换四叉树分离时,一个隐性的tu划分方法应用于有损和无损译码,从而使得split_transform_flag的值对于被划分为多个预测单元(pu)且在间模式中被译码的cu来说一直被推断为1(即变换四叉树分离被应用)。这是因为cu内的pu的不同运动矢量可能引起虚假的高频信息并且导致跨越邻近pu之间的边界的不一致残差。在这种情况下,将cu分离成较小的tu可以比使用与cu大小一样大的tu大小提供更好的译码效率。

在hevc屏幕内容译码扩展[0057]的工作草案中,上述隐性tu划分不应用于ibc模式中译码的cu。更特别地,当变换四叉树分离被禁用时,split_transform_flag的值对于对于所有ibc译码的cu来说一直被推断为0(即,变换单元大小被被设置为与cu的大小相同)。假定ibc模式与间模式之间的固有相似性,ibc译码的cu的残差可以呈现与间译码的cu相似的特征。因此,它可能也有利于将隐性tu划分(即推断split_transform_flag的值为1)应用于ibc译码的cu,以便进一步改进变换译码的效率。在这里描述的实施方式中,当变换四叉树划分被禁用时,应用于间模式的相同隐性tu划分方法也用于有损译码和无损译码中的ibc译码的cu。换句话说,当多于一个pu划分(例如2nxn、nx2n以及nxn)存在于用ibc模式译码的当前cu中时,split_transform_flag的值被推断为1(即,变换四叉树被分离)。

在[0057]的7.4.9.9节中规定了split_transform_flag的值的获取过程。在这里公开的示例性实施方式中,通过对于ibc模式启用隐性的tu划分,split_transform_flag的语义操作如下。

阵列split_transform_flag[x0][y0][trafodepth]规定了块是否被分离成半水平且半垂直大小的四个块,以便进行变换译码。阵列索引x0,y0规定了所考虑的块的左上角亮度样本相对于图片的左上角亮度样本的位置(x0,y0)。阵列索引trafodepth规定了译码块到块的当前细分级别,以便进行变换译码。对于对应于译码块的块,trafodepth的值等于0。

变量intersplitflag的获取如下。在以下限制中的一个或多个限制适用的情况下,intersplitflag被设定为等于1:max_transform_hierarchy_depth_inter等于0并且cupredmode[x0][y0]等于mode_inter;或者intra_bc_flag[x0][y0]等于1,并且partmode不等于part_2nx2n且trafodepth等于0。否则,intersplitflag被设定等于0。

当split_transform_flag[x0][y0][trafodepth]不存在时,其值推断如下。如果以下限制中的一个或多个限制为真,则split_transform_flag[x0][y0][trafodepth]的值被推断为等于1:log2trafosize大于maxtblog2sizey;intrasplitflag等于1并且trafodepth等于0;或者intersplitflag等于1。否则,split_transform_flag[x0][y0][trafodepth]的值被推断为等于0。

实施方式

在一个示例性的实施方式中,提供了一种用于对包括片分段报头和多个译码单元的视频片进行译码的方法。该方法包括在片分段报头中生成绕过标志,该绕过标志指示是否片中的所有译码单元都不被用无损译码进行译码。

在一些这样的实施方式中,绕过标志是transquant_bypass_default_flag。所述方法可以包括生成图片参数集(pps),该pps包括transquant_bypass_enabled_flag,其中片参考图片参数集,并且其中当transquant_bypass_default_flag设定为一时,transquant_bypass_enabled_flag被设定为零。

在一些实施方式中,绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,并且所述方法还包括在片分段报头中生成与无损译码相关的语法元素。绕过标志可以放置在与无损译码相关的语法元素的前面。

在一些实施方式中,其中绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,所述方法还包括在片分段报头中生成与量化、变换、以及环路滤波过程相关的语法元素。绕过标志可以放置在与量化、变换、以及环路滤波过程相关的语法元素的前面。

在一些实施方式中,其中绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,所述方法还包括在片分段报头中生成从由以下语法元素组成的群组中选择的一个或多个语法元素:slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2以及slice_loop_filter_across_slices_enabled_flag。绕过标志可以放置在从由以下语法元素组成的群组中选择的一个或多个语法元素前面:slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2以及slice_loop_filter_across_slices_enabled_flag。

在一些实施方式中,绕过标志指示片中的所有译码单元都被用无损译码进行译码,并且所述方法还包括从片分段报头中排除与无损译码相关的语法元素。

在一些实施方式中,其中绕过标志指示片中的所有译码单元都被用无损译码进行译码,所述方法还包括从片分段报头中排除与量化、变换以及环路滤波过程相关的语法元素。

在一些实施方式中,其中绕过标志指示片中的所有译码单元都被用无损译码进行译码,所述方法还包括从片分段报头中排除从由以下语法元素组成的群组中选择的一个或多个语法元素:slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2以及slice_loop_filter_across_slices_enabled_flag。

在一些实施方式中,其中绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,所述方法还包括为片中的每个译码单元用信号发送cu_transquant_bypass_flag。

在一些实施方式中,其中绕过标志指示片中的所有译码单元都被用无损译码进行译码,所述方法还包括从片中的每个译码单元排除cu_transquant_bypass_flag。

在一个示例性的实施方式中,提供了一种用于对包括图片参数集和参考图片参数集(pps)的至少一个片的视频进行译码的方法,其中片包括片分段报头和多个译码单元。在该实施方式中,所述方法包括在图片参数集中生成绕过标志,该绕过标志指示是否参考图片参数集的片中的所有译码单元都被用无损译码进行译码。

在一些这样的实施方式中,绕过标志是transquant_bypass_default_flag。所述图片参数集(pps)包括transquant_bypass_enabled_flag,并且当transquant_bypass_default_flag设定为一时,transquant_bypass_enabled_flag被设定为零。

在一些实施方式中,其中绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,所述方法还包括在片分段报头中生成与有损译码相关的语法元素。

在一些实施方式中,其中绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,所述方法还包括在片分段报头中生成与量化、变换、以及环路滤波过程相关的语法元素。

在一些实施方式中,其中绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,所述方法还包括在片分段报头中生成从由以下语法元素组成的群组中选择的一个或多个语法元素:slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2以及slice_loop_filter_across_slices_enabled_flag。

在一些实施方式中,其中绕过标志指示片中的所有译码单元都被用无损译码进行译码,所述方法还包括从片分段报头中排除与有损译码相关的语法元素。

在一些实施方式中,其中绕过标志指示片中的所有译码单元都被用无损译码进行译码,所述方法还包括从片分段报头中排除与量化、变换以及环路滤波过程相关的语法元素。

在一些实施方式中,其中绕过标志指示片中的所有译码单元都被用无损译码进行译码,所述方法包括从片分段报头中排除从由以下语法元素组成的群组中选择的一个或多个语法元素:slice_sao_luma_flag、slice_sao_chroma_flag、slice_qp_delta、slice_cb_qp_offset、slice_cr_qp_offset、slice_chroma_qp_adjustment_enabled_flag、deblocking_filter_override_flag、slice_deblocking_filter_disabled_flag、slice_beta_offset_div2、slice_tc_offset_div2以及slice_loop_filter_across_slices_enabled_flag。

在一些实施方式中,其中绕过标志指示不是片中的所有译码单元都被用无损译码进行译码,所述方法还包括为片中的每个译码单元用信号发送cu_transquant_bypass_flag。

在一些实施方式中,其中绕过标志指示片中的所有译码单元都被用无损译码进行译码,所述方法还包括从片中的每个译码单元排除cu_transquant_bypass_flag。

在一个示例性的实施方式中,提供了一种用于对视频进行译码的方法,其中该视频包括高级语法结构和参考所述高级语法结构的至少一个片,所述片包括多个译码单元。所述方法包括在高级语法结构中生成绕过标志,该绕过标志指示是否片中的所有译码单元都被用无损译码进行译码。对于每个单独的译码单元,确定是否生成四叉树分离标志。该确定是至少部分基于从由单独的译码单元的块大小和译码模式组成的群组中选择的参数来进行的。四叉树分离标志是仅在确定生成四叉树分离标志之后针对单独的译码单元生成的。

在这样的实施方式中,高级语法结构可以是图片参数集、分段片报头、或split_transform_flag。在一些这样的实施方式中,四叉树分离标志仅在以下情况下生成:块是使用非内模式译码的、并且块大小是8x8或16x16。四叉树分离标志在块大小为从64x64到32x32的情况下不被生成。

一些实施方式还涉及生成指示最大无变换四叉树分离块译码大小的高级语法元素。在一些实施方式中,指示最大无变换四叉树分离块译码大小的高级语法元素在序列参数集(sps)中被生成。在一些实施方式中,指示最大无变换四叉树分离块译码大小的高级语法元素在图片参数集(pps)中被生成。

在一些实施方式中,高级语法元素用于指示最大无变换四叉树分离块译码大小,该最大无变换四叉树分离块译码大小为在非内模式中译码的块指示最大无变换四叉树分离块译码大小。

在一些实施方式中,如果块被使用非内模式译码并且块大小不大于针对非内模式中译码的块的最大无变换四叉树分离块译码大小,则生成四叉树分离标志。

在一些实施方式中,指示最大无变换四叉树分离块译码大小的高级语法元素为在内模式中译码的块指示最大无变换四叉树分离块译码大小。

在一些实施方式中,如果块被使用内模式译码并且块大小不大于针对内模式中译码的块的最大无变换四叉树分离块译码大小,则生成四叉树分离标志。

在一示例性的实施方式中,提供了一种用于对视频进行译码的方法,其中该视频包括高级语法结构和参考所述高级语法结构的至少一个片,所述片包括多个译码单元。所述方法包括在高级语法结构中生成绕过标志,该绕过标志指示是否片中的所有译码单元都被用无损译码进行译码。对于每个单独的译码单元,至少部分基于从由单独的译码单元的块大小和译码模式组成的群组中选择的参数来确定是否生成译码块标志。译码块标志是仅在确定生成译码块标志之后针对单独的译码单元生成的。

在一这样的实施方式中,高级语法结构可以是图片参数集或分段片报头。译码块标志可以是cbf_luma标志、cbf_cb标志或cbf_cr标志中的一者或多者。在一些实施方式中,译码块标志仅在以下情况下生成:块是使用非内模式译码的并且块大小是8x8或16x16;然而译码块标志在块被使用内模式译码的情况下或者块大小为从64x64到32x32的情况下不被生成。

在一些实施方式中,生成指示最大无变换四叉树分离块译码大小的高级语法元素。指示最大无变换四叉树分离块译码大小的高级语法元素在序列参数集(sps)或图片参数集(pps)中被生成。

在一些实施方式中,高级语法元素指示最大无变换四叉树分离块译码大小,该最大无变换四叉树分离块译码大小为在非内模式中译码的块指示最大无变换四叉树分离块译码大小。如果块被使用非内模式译码并且块大小不大于针对间模式中译码的块的最大无变换四叉树分离块译码大小,则生成译码块标志。

在一些实施方式中,指示最大无变换四叉树分离块译码大小的高级语法元素为在内模式中译码的块指示最大无变换四叉树分离块译码大小。

在一些实施方式中,如果块被使用内模式译码并且块大小不大于针对内模式中译码的块的最大无变换四叉树分离块译码大小,则生成译码块标志。

在一示例性的实施方式中,提供了一种用于对视频进行译码的方法,其中该视频包括高级语法结构和参考所述高级语法结构的至少一个片,所述片包括多个译码单元。所述方法包括为译码单元确定标志cu_transquant_bypass_flag等于1。确定是基于译码单元大小和译码单元的译码模式中的至少一者来执行的,以便测试一次变换四叉树划分的率失真性能。在该确定之后,一次变换四叉树划分的率失真性能被测试。

在一些这样的实施方式中,所述方法还包括:对于另外的译码单元,确定不测试一次变换四叉树划分的率失真性能。率失真性能的测试仅在对于另外的译码单元来说无变换四叉树划分的情况下被执行。

在一示例性实施方式中,提供了一种用于对视频进行译码的方法,其中视频包括变换树语法并且还包括多个译码单元,所述变换树语法包括分离变换标志。所述方法包括为单独的译码单元确定译码单元是否在内块复制模式中被译码以及在译码单元中是否存在多于一个预测单元划分。响应于确定译码单元在内块复制模式中被译码并且在译码单元中存在多于一个预测单元划分,分离变换标志的值被推断为1。

在一示例性方法中,生成包括针对译码单元标志的默认值的高级语法结构,该默认值指示变换和量化过程被绕过。

在一些这样的实施方式中,所述默认值transquant_bypass_default_flag设定为1,指示参考高级语法结构的片的所有译码单元的cu_transquant_bypass_flag的默认值。高级语法结构可以是图片参数集(pps)、序列参数集(sps)、视频参数集(vps)或片分段报头中的至少一者。

在一些实施方式中,所述方法包括生成包括具有等于0的transquant_bypass_default_flag的pps的比特流。在一些实施方式中,所述方法包括生成比特流,在该比特流中译码单元参数不包括cu_transquant_bypass_flag。

在一示例性实施方式中,提供了一种用于经由特定高级语法结构中的高级语法元素向解码器发送信号以便绕过针对参考该特定高级语法结构的所有cu的变换、变换跳过、量化、以及环路滤波过程的方法。

在另一示例性实施方式中,提供了一种操作解码器来接收和处理高级语法元素以便标识与逆量化、逆变换、以及环路滤波过程中的任意一者或多着相关的多个pps语法元素的存在性。

在一些这样的方法中,高级语法元素是默认标志值(transquant_bypass_default_flag)。在一些这样的方法中,高级语法元素用于标识transform_skip_enabled_flag元素的存在性。

在一些实施方式中,所述方法包括通过推断来确定transquant_bypass_enabled_flag为0,并且作为响应,去除或跳过cu级别处的cu_transquant_bypass_flag的信令。在一些实施方式中,默认标志包含在pps扩展参数集、sps扩展参数集中的至少一者中。

在一些实施方式中,默认标志的存在性取决于transquant_bypass_enabled_flag的值。在一些实施方式中,默认标志是transquant_bypass_default_flag。

在一些实施方式中,所述方法还包括接收另外的符合标志的信令来指示无损译码模式中未用的语法元素的被用信号发送的值被适当地设定。

在一些实施方式中,如果标志transquant_bypass_default_flag设定为1,则包括cu_qp_delta_enabled_flag、pps_loop_filter_across_slices_enabled_flag、deblocking_filter_control_present_flag、loop_filter_across_tiles_enabled_flag、pps_scaling_list_data_present_flag的语法元素设定为0。

在一示例性实施方式中,提供了一种接收包含指示使用了无损译码的高级信令无损译码语法元素的视频数据比特流的方法。

在一些这样的方法中,高级信令语法是图片参数集(pps)、序列参数集(sps)、视频参数集(vps)或片分段报头中的一者。在一些这样的方法中,无损译码语法元素用作用于提出与量化、变换、变换跳过、变换跳过循环以及环路滤波过程相关的一个或多个sps语法元素的限制。

在一示例性实施方式中,片分段报头被接收,并且默认标志用于限制用于变换、量化以及环路滤波处理块的片分段语法元素的标识。在一些这样的实施方式中,默认标志是transquant_bypass_default_flag。

在一示例性实施方式中,在视频解码器处执行一种用于接收高级无损译码指示并且作为响应关闭多个处理块的方法。在一些这样的实施方式中,高级无损译码指示是pps、sps、vps、或片报头中的一者的参数元素。在一些实施方式中,多个处理块包括以下硬件块中的任意一者或多者:逆量化、逆变换、解块滤波器、sao。

使用前述技术中的任意技术来编码的视频可以通过使用任意合适的有线或无线传输媒介来传送,和/或可以记录在任意合适的非临时性数字存储媒介上。

虽然上面的特征和元件是以特定组合来描述的,但是本领域技术人员可以理解每个特征或元件可以单独使用或者与其他特征和元件以任意组合使用。另外,这里描述的方法可以在结合在计算机可读介质中的计算机程序、软件、和/或固件中实施,以便由计算机或处理器执行。计算机可读介质的示例包括电信号(通过有线或无线连接发送)和计算机可读存储介质。计算机可读存储介质的示例包括但不限于只读存储器(rom)、随机存取存储器(ram)、寄存器、高速缓冲存储器、半导体存储器装置、磁介质(诸如内部硬盘和可移动磁盘)、磁光介质、和光学介质,诸如cd-rom磁盘和数字多功能磁盘(dvd)。与软件相关联的处理器可以用于实现射频收发信机,以在wtru、ue、终端、基站、rnc或任意主机中使用。

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