用于在显示流压缩中量化参数的适应性计算的设备及方法与流程

文档序号:15743149发布日期:2018-10-23 22:38阅读:169来源:国知局
用于在显示流压缩中量化参数的适应性计算的设备及方法与流程

本发明涉及视频译码及压缩的领域,且特定来说,涉及用于经由显示链路发射的的视频的压缩。



背景技术:

数字视频性能可并入到广泛范围的显示器中,包含数字电视、个人数字助理(PDA)、膝上型计算机、台式监视器、数字摄影机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置及其类似者。显示链路用于将显示器连接到适合的源装置。显示链路的带宽要求与显示器的分辨率成比例,且因此,高分辨率显示器要求大带宽显示链路。一些显示链路不具有支持高分辨率显示器的带宽。视频压缩可用于降低带宽需求,使得较低带宽显示链路可用于将数字视频提供到高分辨率显示器。



技术实现要素:

本发明的系统、方法及装置各具有若干创新方面,其中无单一者单独负责本文中所公开的合乎需要的属性。

在一个方面中,提供一种用于确定视频信息的显示流压缩中的最大量化参数(QP)值的方法。所述方法包括确定用于对视频信息块进行译码的缓冲器单元中可用的位的数目。所述方法进一步包括确定基于对视频信息的先前块进行译码所耗费的位的数目而推导的复杂性值。所述方法进一步包括基于所述缓冲器单元中可用的位的所述数目及/或基于所述经确定复杂性值,确定用于当前块的所述最大QP值的调整值。

在一些实施例中,提供一种用于对视频信息进行译码的设备。所述设备包括经配置以存储经译码视频信息的缓冲器单元。所述设备进一步包括经配置以确定所述缓冲器单元的缓冲器充满度的硬件处理器,所述缓冲器充满度指示所述缓冲器单元中当前经占据的位的数目与所述缓冲器单元的当前容量之间的比。所述硬件处理器经进一步配置以确定初始最大量化参数(QP)值。所述硬件处理器经进一步配置以至少部分地基于所述缓冲器单元的所述经确定缓冲器充满度来确定调整值。所述硬件处理器经进一步配置以使用所述经确定调整值来调整所述初始最大QP值,其中所述经调整最大QP值指定可用以对所述视频信息的当前块进行译码的最大QP值。所述硬件处理器经进一步配置以根据QP值可不超出所述经调整最大QP值的限制,基于所述QP值对视频信息的所述当前块进行译码以形成用于显示或发射的视频数据位流。

在一些实施例中,提供一种用于对视频信息进行译码的方法。所述方法包括确定经配置以存储经译码视频信息的缓冲器单元的缓冲器充满度,所述缓冲器充满度指示所述缓冲器单元中当前经占据的位的数目与所述缓冲器单元的当前容量之间的比。所述方法进一步包括确定初始最大量化参数(QP)值。所述方法进一步包括至少部分地基于所述缓冲器单元的所述经确定缓冲器充满度来确定调整值。所述方法进一步包括使用所述经确定调整值来调整所述初始最大QP值,其中所述经调整最大QP值指定可用以对所述视频信息的当前块进行译码的最大QP值。所述方法进一步包括根据QP值可不超出所述经调整最大QP值的限制,基于所述QP值对视频信息的所述当前块进行译码以形成用于显示或发射的视频数据位流。

在一些实施例中,提供一种用于对视频信息进行译码的设备。所述设备包括用于存储经译码视频信息的缓冲器装置。所述设备进一步包括用于确定所述缓冲器装置的缓冲器充满度的装置,所述缓冲器充满度指示所述缓冲器装置中当前经占据的位的数目与所述缓冲器装置的当前容量之间的比。所述设备进一步包括用于确定初始最大量化参数(QP)值的装置。所述设备进一步包括用于至少部分地基于所述缓冲器装置的所述经确定缓冲器充满度来确定调整值的装置。所述设备进一步包括用于使用所述经确定调整值来调整所述初始最大QP值的装置,其中所述经调整最大QP值指定可用以对所述视频信息的当前块进行译码的最大QP值。所述设备进一步包括用于根据QP值可不超出所述经调整最大QP值的限制,基于所述QP值对视频信息的所述当前块进行译码以形成用于显示或发射的视频数据位流的装置。

附图说明

图1A为说明可利用根据本发明中描述的方面的技术的示范性视频编码及解码系统的框图。

图1B为说明可执行根据本发明中描述的方面的技术的另一示范性视频编码及解码系统的框图。

图2A为说明可实施根据本发明中描述的方面的技术的示范性视频编码器的框图。

图2B为说明可实施根据本发明中描述的方面的技术的示范性视频解码器的框图。

图3展示使用增量大小单元-可变长度译码(DSU-VLC)的视频数据的示范性译码的功能框图。

图4说明根据一些实施例的将给定P×Q视频数据块的样本分割为多个样本向量(群组)的实例。

图5展示说明通过使用K阈值将diffBits分段到K+1范围来确定QpAdj的示范性方法的曲线。

图6展示说明随diffBits而变的增量Qp对于默认方法及方法-P1的关系的曲线。

图7展示根据一些实施例的说明随diffBits而变的增量Qp对于默认方法、方法-Q1及方法-Q2的关系的曲线。

图8A说明具有低复杂性图像数据及高复杂性图像数据的混合的示范性图像。

图8B及图8C分别说明示范性QP映射,其映射可通过编码器用于对图8A的图像的不同空间区域进行译码的QP值,其中最大QP值是固定的或经动态调整的。

图9展示用于针对不同范围的缓冲器充满度(BF)挑选偏移增量值的示范性方案的曲线。

图10说明用于针对不同范围的缓冲器充满度(BF)挑选偏移增量值的示范性方案的曲线。

图11展示用于调整对视频数据块进行译码的最大QP值的示范性过程的流程图。

具体实施方式

大体来说,本发明涉及改进视频压缩技术(例如用以压缩显示流的那些技术)的方法。更特定来说,本发明涉及用于经由选择用于计算QP调整值的合适的技术而改进量化参数(QP)的更新的系统及方法。

虽然某些实施例在显示流压缩(DSC)标准的情况下在本文中进行描述,但本文中公开的系统与方法可适用于任何合适的视频译码标准。举例来说,本文中公开的实施例可适用于以下标准中的一或多个:国际电信联盟(ITU)电信标准化部门(ITU-T)H.261、国际标准化组织/国际电工委员会(ISO/IEC)动画专业团体-1(MPEG-1)Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual、ITU-T H.264(也称为ISO/IEC MPEG-4AVC)、高效视频译码(HEVC),及对此些标准的任何扩展。本文中所描述的技术可特别适用于合并缓冲器模型的标准或译码技术。在各种实施例中,可利用恒定位速率(CBR)或可变位速率(VBR)缓冲器模型。此外,本发明中描述的技术可变为将来开发的标准的部分。换句话说,本发明中描述的技术可适用于先前开发的视频译码标准、当前正在开发的视频译码标准及即将出现的视频译码标准。

通过视频电子装置标准协会(VESA)最近定案的3:1显示流压缩(DSC)v1.0解决方案的产生不足以驱动未来移动市场(尤其)对于高分辨率显示器(例如4K)的要求。因此,为解决未来需求,VESA发布需要技术(CfT)以便发展以4:1及更高的压缩比率为目标的下一代DSC解决方案。

大体来说,DSC译码器提供具低成本、具固定速率的视觉无损压缩。所述译码器是以基于块的方法(块大小P×Q)为基础进行设计且包括众多译码模式。举例来说,针对每一块的可用译码选项为变换(例如,DCT、Hadamard)模式、块预测模式、DPCM模式、图案模式、中点预测(MPP)模式及中点预测后降(MPPF)模式。若干译码模式被用于译码器中以便有效地压缩不同类型的内容或图像。举例来说,可通过图案模式有效地压缩本文图像,而可通过变换模式有效地捕捉天然图像。

每一块可基于速率-控制机构从多个译码模式挑选一个译码模式,其中所述速率-控制机构旨在通过考虑模式的速率及失真两者为每一块选择最佳模式。所述速率-控制机构通过缓冲器模型支持,且为编解码器的设计要求,即,缓冲器(例如,缓冲器单元)从不处于下溢(缓冲器中少于零个位)或上溢(缓冲器大小增大超过设定的最大大小)的状态中。

视频译码方法可通过使用QP调整值更新先前所计算的QP值而计算QP值。可基于前一块与当前块之间的差(例如,对前一块进行译码所需的位与其中对当前块进行译码的目标数目个位之间的差)来计算QP调整值。

然而,由常规技术确定的QP调整值可导致译码的低效率或可在某些情况下产生可注意到的伪影。举例来说,用于确定QP调整值的常规的技术可不足够主动以用于从图像的平坦区域到复杂区域的过渡(例如,QP调整值可小于将导致更好的译码效率而无可注意到的伪影的更合乎需要的QP调整值)。平坦及复杂区域的概念将在下文更详细地描述。

另外,当缓冲器的充满度在空阈值或全阈值内时,用于计算QP调整值的常规的技术可太主动,以导致通过解码器重构建的图像中的伪影。举例来说,通过常规的技术所计算的QP调整值可大于将遮蔽伪影以不在经重构建图像中可注意到的更合乎需要的QP调整值。

因此,本发明的方面是针对解决至少上文所指示的问题。在某些方面中,此可经由检测或确定可与上述所指示的问题相关联的条件,及在所检测到的条件下应用用于计算QP调整值的一或多个替代技术来实现。

视频译码标准

例如视频图像、TV图像、静态图像或由视频记录器或计算机产生的图像的数字图像可包含依水平线及竖直线布置的像素或样本。单个图像中的像素的数目通常为数万个。每一像素通常含有明度及色度信息。在不压缩的情况下,待从图像编码器传送到图像解码器的信息的绝对数量将致使实时图像发射不切实际。为了减少待发射的信息的量,已开发多种不同压缩方法,例如JPEG、MPEG及H.263标准。

视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IECMPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual、ITU-T H.264(也称为ISO/IECMPEG-4AVC),以及包含此些标准的扩展的HEVC。

另外,视频译码标准(即DSC)已由VESA开发。DSC标准为可压缩视频以用于经由显示链路发射的视频压缩标准。随着显示的分辨率增大,视频数据驱动显示器所需的带宽相应地增大。一些显示链路可不具有将视频数据的所有发射到此类分辨率的显示器的带宽。因此,DSC标准规定用于在显示链路上的可互操作的、视觉上无损的压缩的压缩标准。

DSC标准与其它视频译码标准(例如,H.264及HEVC)不同。DSC包含帧内压缩,但不包含帧间压缩,意谓时间信息可不被DSC标准用于对所述视频数据进行译码。相比来说,其它视频译码标准可在其视频译码技术中使用帧间压缩。

视频译码系统

在下文中参考随附图式更完整地描述新颖系统、设备及方法的各种方面。然而,本发明可以许多不同形式来体现,且不应将其解释为限于贯穿本发明所呈现的任何特定结构或功能。实情为,提供此些方面,使得本发明将为透彻且完整的,且将向所属领域的技术人员充分传达本发明的范围。基于本文中的教示,所属领域的技术人员应了解,本发明的范围打算涵盖本文所公开的新颖系统、设备及方法的任何方面,不管是独立于本发明的任何其它方面实施还是与本发明的任何其它方面组合地实施。举例来说,可使用本文中所阐述的任何数目的方面来实施设备或可使用本文中所阐述的任何数目个方面来实践方法。另外,本发明的范围打算涵盖使用除本文中所阐明的本发明的各种方面之外的或不同于本文中所阐明的本发明的各种方面的其它结构、功能性或结构与功能性来实践的此设备或方法。应理解,可通过权利要求书的一或多个要素来体现本文中所公开的任何方面。

尽管本文中描述特定方面,但此些方面的许多变化及排列属于本发明的范围。尽管提及了优选方面的一些益处及优点,但本发明的范围不欲限于特定益处、用途或目标。实情为,本发明的方面打算广泛适用于不同无线技术、系统配置、网络及发射协议,其中的一些在诸图中及在优选方面的以下描述中借助于实例加以说明。实施方式及图式仅对本发明进行说明而非限制,本发明的范围由随附权利要求书及其等效内容界定。

附图对实例进行说明。由附图中的参考数字指示的元件对应于在以下描述中由相同参考数字指示的元件。在本发明中,具有以序数词(例如,“第一”、“第二”、“第三”等)开始的名称的元件不一定暗示所述元件具有特定顺序。相反地,此些序数词仅用以指相同或类似类型的不同元件。

图1A是说明可利用根据本发明中描述的方面的技术的示范性视频译码系统10的框图。如本文描述所使用,术语“视频译码器”或“译码器”一般指视频编码器及视频解码器两者。在本发明中,术语“视频译码”或“译码”一般可指视频编码及视频解码。除视频编码器及视频解码器之外,本申请案中描述的方面可扩展到其它相关装置,例如,转码器(例如,可对位流进行解码且对另一位流重新编码的装置)及中间框(例如,可修改、变换及/或另外操纵位流的装置)。

如图1A中所展示,视频译码系统10包含产生在稍后时间由目的地装置14解码的经编码视频数据的源装置12。在图1A的实例中,源装置12及目的地装置14构成单独装置。然而,应注意,源装置12与目的地装置14可在同一装置上或为同一装置的部分,如在图1B的实例中所展示。

再次参考图1A,源装置12及目的地装置14可分别包括广泛范围的装置中的任一个,包含台式计算机、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、电话手机(例如,所谓的“智能型”电话)、所谓的“智能型”平板、电视、摄像机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机、视频流式发射装置、可由实体(例如,人、动物及/或另一可控的装置)穿戴的(或可以可拆卸方式附接的)装置(例如,眼用佩戴品及/或穿戴式计算机)、可用于、摄取或放置于实体内的装置或设备及/或类似者。在各种实施例中,源装置12及目的地装置14可经装备以用于无线通信。

目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在图1A的实例中,链路16可包括使源装置12能够实时将经编码视频数据发射到目的地装置14的通信媒体。经编码视频数据可根据通信标准(例如,无线通信协议)来调制,且被发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个物理发射线。通信媒体可形成基于包的网络(例如,局域网、广域网或例如因特网的全域网络)的部分。通信媒体可包含路由器、交换器、基站或任何其它可用于促进从源装置12到目的地装置14的通信的设备。

在图1A的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些情况下,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。在源装置12中,视频源18可包含例如视频捕捉装置(例如,摄像机)、含有先前所捕捉视频的视频存档、用以从视频内容提供者接收视频的视频馈入接口,及/或用于将计算机图形数据产生为源视频的计算机图形系统的源,或此些源的组合。作为一个实例,如果视频源18为摄像机,那么源装置12及目的地装置14可形成所谓的“摄影机电话”或“视频电话”,如在图1B的实例中所说明。然而,本发明中所描述的技术可大体上适用于视频译码,且可应用于无线及/或有线应用。

可由视频编码器20对所捕捉、预先捕捉或计算机产生的视频进行编码。经编码视频数据可经由源装置12的输出接口22发射到目的地装置14。还可(或替代地)将经编码视频数据存储到存储装置31上以供稍后由目的地装置14或其它装置存取以用于解码及/或播放。图1A及1B中说明的视频编码器20可包括图2A中说明的视频编码器20或本文所描述的任何其它视频编码器。

在图1A的实例中,目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些状况下,输入接口28可包含接收器及/或调制解调器。目的地装置14的输入接口28可经由链路16及/或从存储装置31接收经编码视频数据。经由链路16传达或在存储装置31上提供的经编码视频数据可包含由视频编码器20产生以由视频解码器(例如,视频解码器30)用于解码视频数据的各种语法元素。发射于通信媒体上、存储于存储媒体上,或存储于文件服务器的经编码视频数据内可包含此些语法元素。图1A及1B中说明的视频解码器30可包括图2B中说明的视频解码器30或本文所描述的任何其它视频解码器。

显示装置32可与目的地装置14集成或在所述目的地装置外部。在一些实例中,目的地装置14可包含集成显示装置,且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示装置32向用户显示经解码视频数据,且可包括多种显示装置中的任一个,例如,液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。

在相关方面中,图1B展示实例视频译码系统10',其中源装置12及目的地装置14在装置11上或为其部分。装置11可为电话手机,例如“智能型”电话或其类似者。装置11可包含与源装置12及目的地装置14操作性通信的处理器/控制器装置13(任选地呈现)。图1B的视频译码系统10'及其组件或者类似于图1A的视频译码系统10及其组件。

视频编码器20及视频解码器30可根据视频压缩标准(例如,DSC)来操作。替代地,视频编码器20及视频解码器30可根据其它专有标准或行业标准(例如,ITU-T H.264标准,替代地被称作MPEG-4,第10部分,AVC,HEVC)或此类标准的扩展而操作。然而,本发明的技术并不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2及ITU-T H.263。

虽未在图1A及1B的实例中展示,但视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当MUX-DEMUX单元或其它硬件及软件以处置在共同数据流或分开的数据流中的音频及视频两者的编码。如果适用,那么在一些实例中,MUX-DEMUX单元可符合ITU H.223多路复用器协议或其它协议,例如用户数据报协议(UDP)。

视频编码器20及视频解码器30各自可实施为多种合适编码器电路中的任一个,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分以软件实施时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器执行指令以执行本发明的技术。视频编码器20及视频解码器30中的每一个可包含在一或多个编码器或解码器中,编码器或解码器中的任一个可集成为相应装置中的组合编码器/解码器的部分。

视频译码过程

如以上简要地提及,视频编码器20对视频数据进行编码。视频数据可包括一或多个图片。图片中的每一个为形成视频的部分的静态图像。在一些情况下,图片可被称作视频“帧”。当视频编码器20对视频数据进行编码时,视频编码器20可产生位流。位流可包含形成视频数据的经译码表示的一连串位。位流可包含经译码图片及相关联的数据。经译码图片为图片的经译码表示。

为产生位流,视频编码器20可对视频数据中的每一图片执行编码操作。当视频编码器20对图片执行编码操作时,视频编码器20可产生一系列经译码图片及相关联的数据。相关联的数据可包含译码参数(例如,QP)的集合。为产生经译码图片,视频编码器20可将图片分割成相等大小的视频块。视频块可为样本的二维阵列。译码参数可定义视频数据的每一块的译码选项(例如,译码模式)。译码选项可经选择以便达成所要的率失真性能。

在一些实例中,视频编码器20可将图片分割成多个切片。切片中的每一个可包含图像(例如,帧)中的空间不同区域,其可在无需来自所述图像或帧中的剩余区域的信息的情况下独立地解码。每一图像或视频帧可在单个切片中编码或每一图像或视频帧可在若干切片中编码。在DSC中,经分配以编码每一切片的目标位可大体上恒定。作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操作。当视频编码器20对切片执行编码操作时,视频编码器20可产生与切片相关联的经编码数据。与切片相关联的经编码数据可被称作“经译码切片”。

DSC视频编码器

图2A为说明可实施根据本发明中描述的方面的技术的视频编码器20的实例的框图。视频编码器20可经配置以执行本发明的技术中的一些或全部。在一些实例中,本发明中描述的技术可在视频编码器20的各种组件之间共享。在一些实例中,另外或替代地,处理器(未展示)可经配置以执行本发明中描述的技术中的一些或全部。

出于解释的目的,本发明在DSC译码的情况中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。

在图2A的实例中,视频编码器20包含多个功能组件。视频编码器20的功能组件包含色彩空间转换器105、缓冲器110、平度检测器115、速率控制器120、预测器、量化器及重构建器组件125、行缓冲器130、索引色彩历史135、熵编码器140、子流多路复用器145及速率缓冲器150。在其它实例中,视频编码器20可包含更多、更少或不同的功能组件。

色彩空间转换器105可将输入色彩空间转换成用于译码实施方案的色彩空间。举例来说,在一个示范性实施例中,输入视频数据的色彩空间为红、绿及蓝(RGB)色彩空间,且译码以明度Y、绿色色度Cg及橙色色度Co(YCgCo)色彩空间实施。色彩空间转换可由包含对视频数据转移及添加的方法执行。应注意,可处理其它色彩空间的输入视频数据,且还可执行转换到其它色彩空间。

在相关方面中,视频编码器20可包含缓冲器110、行缓冲器130及/或速率缓冲器150。举例来说,缓冲器110可在缓冲器110'由视频编码器20的其它部分使用之前保持经色彩空间转换的视频数据。在另一实例中,视频数据可存储于RGB色彩空间中,且可按需要执行色彩空间转换,因为经色彩空间转换的数据可需要较多位。

速率缓冲器150可充当视频编码器20中的速率控制机构的一部分,其下文将结合速率控制器120更详细地描述。对每一块进行编码所耗费的位可大体上基于块的性质而高度变化。速率缓冲器150可平缓经压缩视频中的速率变化。在一些实施例中,使用CBR缓冲器模型或可操作模式,其中以恒定位速率从缓冲器获得位。在其它实施例中,可使用VBR缓冲器模型或可操作模式,其中以变量(非恒定位速率)从缓冲器获得位。在一些实施例中,如果视频编码器20将过多位添加到位流(例如,以高于从缓冲器获得位的速率的速率),那么速率缓冲器150可上溢。另一方面,视频编码器20还可需要添加足够位以便防止速率缓冲器150的下溢。

在视频解码器侧,可以恒定位速率将位添加到视频解码器30的速率缓冲器155(见下文更详细地描述的图2B),且视频解码器30可去除用于每一块的可变数目个位。为了确保恰当的解码,视频解码器30的速率缓冲器155不应在经压缩位流的解码期间“下溢”或“上溢”。

在一些实施例中,缓冲器充满度(BF)可基于表示当前在缓冲器中的位数目的值BufferCurrentSize及表示速率缓冲器150的大小的值BufferMaxSize(即,可在任何时间点存储于速率缓冲器150中的最大位数目)来定义。BF可计算为:

BF=((BufferCurrentSize*100)/BufferMaxSize)

应注意,上文计算BF的方法仅为示范性的,且所述BF可视特定实施或内容而以任何数目个不同方式来计算。

平度检测器115可检测从视频数据中的复杂(即,非平坦)区域到视频数据中的平坦(即,简单或均匀的)区域的变化,及/或反之亦然。术语“复杂”及“平坦”将在本文中用以大体上指代视频编码器20编码视频数据的各别区域的难度。因此,本文所使用的术语复杂将视频数据的区域大体上描述为视频编码器20编码起来复杂,且可(例如)包含纹理化的视频数据、高空间频率及/或编码起来复杂的其它特征。本文所使用的术语平坦将视频数据的区域大体上描述为视频编码器20编码起来简单,且可(例如)包含视频数据中的平滑梯度、低空间频率及/或编码起来简单的其它特征。从复杂区域到平坦区域的过渡可由视频编码器20使用以减小经编码视频数据中的量化伪影。具体来说,速率控制器120及预测器、量化器及重构建器组件125可减小当从复杂区域到平坦区域的过渡被识别时的此类量化伪影。类似地,从平坦到复杂区域的过渡可由视频编码器20使用以增加QP以便减小所预期的对当前块进行译码所需的速率。

速率控制器120确定译码参数(例如QP)的集合。QP可由速率控制器120基于速率缓冲器150的缓冲器充满度及视频数据的图像活动(例如,从复杂区域到平坦区域的过渡或平坦区域到复杂区域的过渡)来调整以便将确保速率缓冲器150不上溢或下溢的目标位速率的图片质量。速率控制器120还选择用于视频数据的每一块的特定译码选项(例如,特定模式)以便实现最优速率-失真性能。速率控制器120将经重构建图像的失真最小化以使得其满足位速率约束条件(即,符合目标位速率中的整体实际译码速率)。因此,速率控制器120的一个目的是确定译码参数(例如,QP、译码模式等)的集合以满足对速率的瞬时及平均约束同时最大化速率-失真性能。

预测器、量化器及重构建器组件125可执行视频编码器20的至少三个编码操作。预测器、量化器及重构建器组件125可在多个不同模式中执行预测。一个实例预测模式是中值适应性预测的经修改版本。中值适应性预测可通过无损JPEG标准(JPEG-LS)实施。可由预测器、量化器及重构建器组件125执行的中值适应性预测经修改版本可允许三个连续样本值的平行预测。另一实例预测模式为块预测。在块预测中,从上方排中或同一排中左边的先前经重构建像素预测样本。在一些实施例中,视频编码器20及视频解码器30皆可对经重构建像素执行相同搜索以确定块预测使用,且因此在块预测模式中不需要发送位。在其它实施例中,视频编码器20可在位流中执行搜索及信号块预测向量,使得视频解码器30不必执行单独搜索。还可实施中点预测模式,其中使用组件范围的中点来预测样本。中点预测模式可启用即使最差情况样本中的经压缩视频所需的位数目的限定。

预测器、量化器及重构建器组件125还执行量化。举例来说,可经由可使用移位器实施的2幂量化器执行量化。应注意,可代替2幂量化器实施其它量化技术。由预测器、量化器及重构建器组件125执行的量化可基于由速率控制器120确定的QP。最终,预测器、量化器及重构建器组件125还执行包含将经反量化的残余添加到经预测值及确保结果不超出样本值的有效范围的重构建。

应注意,上文所描述的由预测器、量化器及重构建器组件125执行的预测、量化及重构建的实例方法仅为说明性的,且可实施其它方法。还应注意,预测器、量化器及重构建器组件125可包含用于执行预测、量化及/或重构建的子组件。应进一步注意,可由若干单独编码器组件代替预测器、量化器及重构建器组件125执行预测、量化及/或重构建。

行缓冲器130保持从预测器、量化器及重构建器组件125的输出以使得预测器、量化器及重构建器组件125及索引色彩历史135可使用经缓冲的视频数据。索引色彩历史135存储最近使用的像素值。此些最近使用的像素值可直接由视频编码器20经由专用语法参考。

熵编码器140基于索引色彩历史135及平度检测器115所识别的平度转变来对从预测器、量化器及重构建器组件125接收的预测残余及任何其它数据(例如,预测器、量化器及重构建器组件125所识别的索引)进行编码。在一些实例中,熵编码器140可每时脉每子流编码器对三个样本进行编码。子流多路复用器145可基于无标头包多路复用方案来多路复用位流。此允许视频解码器30并行运行三个熵解码器,从而促进每时脉三个像素的解码。子流多路复用器145可使包次序优化以使得包可由视频解码器30有效地解码。应注意,可实施不同的熵译码方法,可促进每时脉2幂像素(例如,2像素/时脉或4像素/时脉)的解码。

DSC视频解码器

图2B是说明可实施根据本发明中描述的方面的技术的视频解码器30的实例的框图。视频解码器30可经配置以执行本发明的技术中的一些或全部。在一些实例中,本发明中描述的技术可在视频编码器30的各种组件当中共享。在一些实例中,另外或替代地,处理器(未展示)可经配置以执行本发明中描述的技术中的一些或全部。

出于解释的目的,本发明在DSC译码的情况中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。

在图2B的实例中,视频解码器30包含多个功能组件。视频解码器30的功能组件包含速率缓冲器155、子流解多路复用器160、熵解码器165、速率控制器170、预测器、量化器及重构建器组件175、索引色彩历史180、行缓冲器185及色彩空间转换器190。所说明的视频解码器30的组件类似于上文结合图2A中的视频编码器20所描述的对应组件。由此,视频解码器30的组件中的每一个可以与上文所描述的视频编码器20的对应组件类似的方式操作。

量化参数(QP)

如上文所论述,编码器20的预测器、量化器及重构建器组件125可执行可在视频数据块中引入失真的量化。可通过块的量化参数(QP)控制失真的量。举例来说,编码器20可将QP用于块,以确定用于量化所述块的视频数据的色彩分量值的量化步长。在一些实施例中,替代编码器20存储每一QP的量化步长,编码器20可指定随QP而变化的缩放矩阵。可从缩放矩阵推导每一QP的量化步长,其中推导值可不必为二幂,(例如)推导值也可为非二幂。

在DSC测试模型的一些实施例中,明度道的相应最小及最大QP针对8bpc被设定成16及56。用于每一明度QP,可存在可在运行中推导或从查找表推断的相关联色度QP。

跳过模式

如果给定视频数据块中的单个组件的所有值为零,那么编码器20可使用跳过模式对块进行有效译码。在跳过模式译码的一些实施例中,编码器20可发信可通过解码器30读取的1位旗标,指示当前块使用跳过模式译码(如果所有值为零)或并非处于跳过模式中(如果块中的至少一值为非零)。

增量大小单元-可变长度译码

图3展示使用增量大小单元-可变长度译码对视频数据进行译码的实例(DSU-VLC)。在一些实施例中,编码器20可使用DSU-VLC处理器304来将K长度样本向量302的经量化残余值(也被称作“群组”)译码成经译码位序列306。所述经译码位序列306可包括首码308及尾码310,其中尾码310包括多个尾码部件。DSU-VLC处理器304可对应于图2A中所说明的熵编码器140。如本文所使用,样本可指单个色彩分量中的值,(例如)针对RGB 444,每一像素具有三个样本。

首码308指示尾码310的尾码部件中的每一个的残余值的大小(例如,位的长度)(所述大小表示为B个位)。在一些实施例中,首码308可具有可变长度且使用一元码进行译码。尾码310指示样本向量302中的所有样本的实际残余值(例如,尾码310的每一尾码部件可对应于样本向量302的样本)。编码器20可对样本向量302中的所有K个残余值进行译码,以使用特定格式(例如,二的补数)且将相同数目个位(例如,B个位)用于每一残余值来形成尾码310。

作为一实例,如果样本向量302包括具有值[1,-2,-1,0]的4个样本,那么编码器20可需要B=2个位来使用二的补数表示来对样本向量302的每一样本进行译码。就此而论,首码308可具有值001,其表示值B=2的一元码。尾码310可包括具有值[01,10,11,00]的尾码部件,其分别表示样本向量302中使用B=2个位进行译码的样本值中的每一个。通过对首码308进行解码(通常在单一时脉循环中完成),解码器30可能够并行地对尾码310的所有4个样本进行解码。

DSC中的熵译码

图4说明根据一些实施例的将给定P×Q视频数据块的样本分割为多个样本向量(群组)的实例。如图4中所说明,块402可为包括16个样本的2×8块。块402的每一样本可对应于视频数据的特定色彩分量的经量化残差值,所述视频数据对应于块402。在使用DSU-VLC处理器304对样本进行译码之前,编码器20可将样本分割成多个样本向量。举例来说,图4说明块402的16个样本,所述块被分割成各包括4个样本的四个样本向量404(例如,样本向量404A、404B、404C及404D)。DSU-VLC处理器304可对样本向量404A-404D进行译码,以产生各自具有首码及尾码(例如,如图3中所说明)的码(图中未示)。如上文所描述,解码器30(如图2B中所说明)可能够并行对所述码中的每一个的首码及尾码进行解码,从而允许解码器30每时脉循环解码4个样本。

通过使用编码器20将块402的样本分割为群组,解码器30在对经译码的群组进行解码时可达成每时脉多个样本的处理量。虽然图4说明块402的样本被均匀地分割为样本向量404,但应理解,编码器20可能均匀地或不均匀地将样本块分割为N个样本向量。在均匀分组方法中,所有N个样本向量404将具有均等数目的样本。另一方面,当使用不均匀分组方法时,每一样本向量404中的样本的数目可不同。

在一些实施例中,块402的分割均匀或是不均匀可基于与块402相关联的译码模式。举例来说,编码器20可在块预测及DPCM模式中使用均匀分组方法,而在变换模式中使用不均匀分组方法。

QP计算

在一些实施例中,速率控制器120可推导或计算当前视频数据块的QP(表示为currQP)。用于计算QP的技术公开于2015年4月13日申请的现今作为公开案第US2015/0296206号予以公开的美国申请案第14/685,430号中,所述申请案以全文引用的方式并入本文中。如其中所描述,速率控制器120可使用以下方程式,基于视频数据的先前块(例如,按照译码次序的视频数据的先前块)的QP推导当前块的QP(currQP):

currQP=prevQP+QpAdj*(diffBits>0?1:-1),

其中prevQP为与先前块相关联的QP,且diffBits表示previousBlockBits与targetBits之间的差,且QpAdj为基于diffBits的量值所计算的QP偏移值。previousBlockBits对应于用以对先前块进行译码的若干位,而targetBits对应于用于对当前块进行编码的目标数目个位。

如以上方程式中可见,当previousBlockBits>targetBits时,diffBits为正的,且速率控制器120通过将偏移QpAdj与prevQP相加来推导当前块QP。换句话说,不允许QP值在与prevQP进行比较时减小。当previousBlockBits<targetBits时,diffBits为负的,且不允许currQP在与prevQP进行比较时增大。

图5展示说明基于diffBits的值确定QpAdj的示范性方法的曲线。更特定来说,图5的图表展示表示从0起且在方向502上增大的diffBits的值的水平轴。diffBits的值使用k个阈值(例如,阈值1、阈值2、阈值3…阈值k)被分段成k+1个范围,其中k为整数值。举例来说,如图5中所说明的“范围1”可对应于介于0与“阈值1”之间的diffBits值,而“范围2”对应于介于“阈值1”与“阈值2”之间的diffBits值,“范围3”对应于介于“阈值2”与“阈值3”之间的diffBits值,诸如此类,直到“范围k+1”对应于大于“阈值k”的diffBits值为止。

diffBits范围(例如,范围1、范围2…范围k+1)中的每一个可与特定QpAdj值(例如,QpAdj1、QpAdj2…QpAdjk+1)相关联。值QpAdj1到QpAdjk+1可随范围增大而增大(例如,QpAdj1≤QpAdj2≤QpAdj3…≤QpAdjk+1)。就此而论,在一些实施例中,速率控制器120可计算随diffBits而变的偏移值QpAdj,其方式为使得QpAdj随着diffBits的量值增大而单调增大。

在另一方面,当diffBits<=0时(图中未示),diffBits的绝对值可使用j个阈值分类到j+1个范围,其中j对应于整数值。另外,特定QpAdj值可与每一范围相关联。在一些实施例中,与j+1范围中的每一个相关联的QpAdj值可随diffBits的绝对值增大而增大。在本文所使用的,此计算QpAdj的方法被称作“默认方法”。

此外,在一些实施例中,速率控制器120可基于速率缓冲器150的状态调整currQP(也在下文称作缓冲器150),以便防止缓冲器150的下溢及上溢。可依据缓冲器充满度BF表示缓冲器150的状态,所述缓冲器充满度测量当前存储于缓冲器150中的位数目与可存储于缓冲器150中的位的总数目。举例来说,在一些实施例中,当BF超过某一阈值(例如,P1)时,速率控制器120可通过将currQP递增固定偏移(例如,p1)来调整currQP的值,使得currQP+=p1。在另一方面,当BF降低到某一阈值(例如,Q1)之下时,速率控制器120可通过递减固定偏移(例如,q1)来调整currQP,使得currQP-=q1。在一些实施例中,代替单个阈值P1(或Q1),速率控制器120可基于多个缓冲器充满度阈值调整currQP,其中每一缓冲器充满度阈值可与不同对应偏移值(针对其调整currQP)相关联。

在一些实施例中,速率控制器120可基于当前视频数据块是否与平坦区域或从复杂区域到平坦区域的过渡相关联,进一步确定currQP值。举例来说,平度检测器115可确定如出现在视频数据块内的从复杂区域到平坦区域的过渡,或确定视频数据块包括平坦区域。响应于通过平度检测器115的确定,速率控制器120可将currQP设定为预定值。

DSC中的QP更新模式

在DSC中,可基于缓冲器150的缓冲器充满度,通过速率控制器120使用各种模式来更新当前视频数据块的QP。举例来说,在一些实施例中,当缓冲器150的缓冲器充满度降低到某一阈值之下或超过阈值时,代替使用默认方法来计算QpAdj,可通过速率控制器120使用各种方法来计算QpAdj以供确定currQP。

缓冲器超过阈值限制

如上文所论述,在一些实施例中,速率控制器120可视缓冲器150的缓冲器充满度的量而定,以不同方式计算QpAdj的值。举例来说,在一些实施例中,速率控制器120可维持多个阈值[P1,P2,…Pn],其可对应于以单调减小次序布置的n个阈值。另外,速率控制器120可维持多个相应方法[方法-P1,方法-P2…方法-Pn],其可用以计算QpAdj。速率控制器120可基于缓冲器150的缓冲器充满度与多个阈值之间的关系选择计算QpAdj的特定方法。举例来说,在一些实施例中:

If(缓冲器充满度>=P1)

使用方法-P1计算QpAdj;

else if(缓冲器充满度>=P2)

使用方法-P2计算QpAdj;

else if(缓冲器充满度>=Pn)

使用方法-Pn计算QpAdj;

在一些实施例中,当diffBits>0时,对于diffBits的给定值,使用方法-P1计算的QpAdj的值>=使用方法-P2计算的QpAdj值>=…使用方法-Pn计算的QpAdj值>=使用默认方法计算的QpAdj值。

在另一方面,当diffBits<0时,使用方法-P1计算的QpAdj值<=使用方法-P2计算的QpAdj值<=…使用方法-Pn计算的QpAdj值<=使用默认方法计算的QpAdj值。换句话说,根据一些实施例,如通过速率控制器120所计算,缓冲器150愈全,currQP的值可愈高。

图6展示说明随diffBits而变的增量Qp对于默认方法及方法-P1的关系的曲线(例如,对应于缓冲器充满度的阈值量)。如本文所使用,增量QP通常指代currQP不同于PrevQP的程度。举例来说,增量QP可被定义为QpAdj*(diffBits>0?1:-1)。换句话说,QpAdj可考虑增量QP的绝对值。在一些实施例中,增量QP将在diffBits具有正值时为正,且在diffBits具有负值时为负。

图6的曲线展示对应于diffBits的值的x轴,及对应于增量QP的值的y轴。所述曲线展示响应于当缓冲器150的缓冲器充满度小于P1阈值时的对应于如通过速率控制器120使用默认函数所确定的增量QP的第一较低曲线602。另外,曲线展示对应于如通过速率控制器120使用方法-P1所确定的增量QP的第二较高曲线604,其在缓冲器150的缓冲器充满度符合或超过P1阈值但低于P2阈值时使用。第一较低曲线602及第二较高曲线604可大体上呈步阶函数的形式。

如图6的曲线中所说明,对于大于0的diffBits给定值,如通过速率控制器120使用方法-P1所计算的QpAdj的值将大于或等于如使用默认方法所计算的QpAdj的值。在另一方面,对于diffBits<=0,如使用方法-P1所计算的QpAdj的值(其为增量QP的绝对值)将小于使用默认方法所计算的QpAdj的值。换句话说,对于diffBits的给定值,相比在缓冲器150的缓冲器充满度未超出P1时,增量QP(且因此currQP)在缓冲器充满度超过阈值量P1时将通常较高。

缓冲器降低到阈值限制之下

在一些实施例中,速率控制器120可基于缓冲器150的缓冲器充满度低于一或多个阈值,使用不同方法计算QpAdj的值(且因此currQP)。举例来说,在一些实施例中,速率控制器120可维持按单调递增次序布置的m个阈值[Q1,Q2,…Qm]及通过速率控制器120用以计算QpAdj的相应方法[方法-Q1、方法-Q2、…方法-Qm]。举例来说,在一些实施例中,速率控制器120可基于以下选择用于计算QpAdj的特定方法:

If(缓冲器充满度<=Q1)

使用方法-Q1计算QpAdj;

else if(缓冲器充满度<=Q2)

使用方法-Q2计算QpAdj;

else if(缓冲器充满度<=Qm)

使用方法-Qm计算QpAdj;

在一些实施例中,对于diffBits的给定值>0,使用默认方法所计算的QpAdj值>=使用方法-Q1所计算的QpAdj值>=…使用方法-Q2所计算的QpAdj值>=使用方法-Qm所计算的QpAdj值。在另一方面,对于diffBits的给定值<=0,使用默认方法所计算的QpAdj值<=使用方法-Q1所计算的QpAdj值<=…使用方法-Q2所计算的QpAdj值<=使用方法-Qm所计算的QpAdj值。换句话说,根据一些实施例,缓冲器150的缓冲器充满度愈小,如通过速率控制器120所计算,currQP的值可愈小。

图7展示根据一些实施例的说明随diffBits而变的增量Qp对于默认方法、方法-Q1及方法-Q2的关系的曲线。如同图6中,图7中所说明的曲线展示对应于diffBits的值的x轴及对应于增量QP的值的y轴。曲线展示对应于如使用默认函数确定的增量QP的第一较高曲线702(说明为实线),其在缓冲器150的缓冲器充满度大于Q1阈值时使用。曲线进一步展示第二中间曲线704(说明为虚线)及第三较低曲线706(说明为点线),其分别对应于使用方法-Q1及方法-Q2确定的增量QP。如上文所论述,速率控制器120可在缓冲器150的缓冲器充满度介于Q1阈值与Q2阈值之间时使用方法-Q1计算QpAdj(且因此增量QP)。速率控制器可在缓冲器充满度介于Q2阈值与Q3阈值之间时使用方法Q2计算增量QP。类似于图6,曲线702、704及706中的每一个可大体上呈步阶函数的形状。

如图7的曲线中所说明,对于大于0的diffBits的给定值,如通过速率控制器120使用方法-Q1所计算的QpAdj的值将小于或等于使用默认方法所计算的QpAdj的值,且大于或等于使用方法-Q2所计算的QpAdj的值。在另一方面,对于diffBits<=0,如使用方法-Q1所计算的QpAdj的值(其为增量QP的绝对值)将小于或等于如使用默认方法所计算的QpAdj的值,且大于或等于使用方法-Q2所计算的QpAdj的值。换句话说,对于diffBits的给定值,相比在缓冲器150的缓冲器充满度高于阈值量Q1时,增量QP(且因此currQP)在缓冲器充满度低于阈值量Q1时将通常较高。

缓冲器充满度计算

在一些实施例中,为能够基于缓冲器150的状态调整当前视频数据块的QP值(currQP),可能需要速率控制器120能够确定缓冲器150的精确缓冲器充满度(BF)值。在一些实施例中,可在编码器20对视频数据块进行编码时调整缓冲器150中可用的最大数目个位。举例来说,缓冲器150的大小可在切片中的一些固定数目个块进行译码之后以恒定速率线性减小,以此方式使得在切片末端,缓冲器150的大小(例如,在切片末端可包括于缓冲器150中的最大数目个位)可表示为maxBufferBitsAtSliceEnd。就此而论,在视频数据的给定切片末端,缓冲器150的BF在BufferCurrentSize=maxBufferBitsAtSliceEnd的情况下是100%的。

缓冲器150的大小在特定时间下可表示为bufAdjSize,且缓冲器150的大小在切片中的视频数据块进行译码时减小的速率可表示为bufferRateReductionPerBlock。就此而论,速率控制器120可将缓冲器150的BF计算为,

BF=(((BufferCurrentSize*100)+(bufAdjSize>>1))/bufAdjSize)(1)

其中,bufferAdjSize=BufferMaxSize-偏移,偏移=((bufferRateReductionPerBlock)*(numBlocksCoded-numBlocksTh))。如本文所使用,numBlocksCoded可表示到目前为止切片中通过编码器20译码的块的数目,且numBlocksTh可对应于可通过编码器20配置的阈值参数。

在一些实施例中,缓冲器150可根据经译码视频数据块线性调整其大小。在一些实施例中,缓冲器150根据块调整其大小的速率可计算为bufferRateReductionPerBlock=diffSize/(TotalnumberofBlocksInSlice-numBlocksTh),其中diffSize=BufferMaxSize-maxBufferBitsAtSliceEnd,或缓冲器150的最大大小与缓冲器150在切片末端的最大大小之间的总差。2015年8月6日申请的美国申请案第14/820,404号(其以全文引用的方式并入本文中)描述一种经描述用以计算缓冲器充满度(BF)的方法。

在一些实施例中,速率控制器210可基于上文方程式(1)经由硬件及/或软件计算缓冲器150的缓冲器充满度。然而,方程式(1)包含除法运算,方程式(1)中的分母值取决于当前块在切片中的位置而改变,使得计算可能昂贵。2016年3月8日申请的美国申请案第62/305,314号中提议一种用以计算缓冲器充满度的替代性方法,所述申请案以全文引用的方式并入本文中。在一些实施例中,偏移值在方程式(1)中从分母移动到分子,使得分母从bufAdjSize变化成BufferMaxSize。因为BufferMaxSize不管当前块在切片中的位置而保持恒定,所以所得方程式可对于速率控制器120来说更加易于计算。就此而论,方程式(1)可修改为

BF=(((BufferCurrentSize+offset)*100)+(BufferMaxSize>>1))/BufferMaxSize)(2)

方程式(2)中的偏移值可如上文所描述以相同方式计算。由于方程式(2)中的分母在整个切片上为恒定值,因此速率控制器120可在方程式(2)中预计算分母,所述分母可存储为编解码器的参数集(例如,作为查找表(LUT)或其它数据结构)。

设定最大QP值

在一些实施例中,速率控制器120可在计算当前视频数据块的QP值时强加最大QP值。最大QP值(也被称作阈值QP值)可充当指示对视频数据进行译码时的量化损耗或失真的可接受量的上限。举例来说,在一些实施例中,速率控制器120可使用上文描述的技术中的任一个计算当前视频数据块的currQP值。速率控制器120可接着将所计算的currQP与最大QP值进行比较。如果所计算的currQP超过最大QP值,那么速率控制器120可将currQP设定为小于或等于最大QP值。

在一些实施例中,通过速率控制器120强加的最大QP可设定成预定义固定值。然而,将最大QP设定成单个固定值可能并非对所有类型的视频内容起到有效作用。在一些实施例中,速率控制器120强加固定最大QP值可能在不必要高QP值时人工地抬升视频数据块的QP值。举例来说,在当缓冲器150接近于空的情况下,可能需要速率控制器120强加较低的最大QP值。此可减少归因于量化的损耗或失真,且通过增大编码器20用以对视频数据块进行译码的位的数目而防止缓冲器150排空。在另一方面,如果缓冲器150接近于满,那么可需要较高的经强加的最大QP值,以便通过减少编码器20用以对视频数据块进行译码的位的数目而防止潜在的上溢。

在一些实施例中,缓冲器150接收且存储由编码器20编码的经译码视频数据,且将经译码视频数据输出到视频数据位流。就此而论,在任何给定时间,缓冲器150的若干位可由经译码视频数据(例如,已通过编码器20译码但尚未输出到视频数据位流的视频数据)占据。如上文所论述,缓冲器150的缓冲器充满度可指示缓冲器150中当前所占据的位的数目与缓冲器150的当前容量的比。缓冲器150的缓冲器充满度可基于由编码器20用以对先前视频数据块进行译码的若干位与存储于缓冲器150中的经译码视频数据被输出到位流的速率之间的关系而变化。

在一些实施例中,编码器20使用固定速率编解码器对视频数据进行译码,从而缓冲器150经配置以特定(例如,恒定)速率输出视频数据的位以形成视频数据位流。举例来说,在编码器能够对视频数据块进行译码的时段期间,缓冲器150可经配置将固定数目个位输出到位流。因此,如果编码器20平均使用多于固定数目个位对视频数据块进行译码,那么缓冲器150可开始填充(例如,增大缓冲器充满度)且可能上溢。在另一方面,如果编码器20平均使用小于固定数目个位对视频数据块进行译码,那么缓冲器150可减小缓冲器充满度且可能排空。

在一些实施例中,速率控制器120可经配置以“在运行中”调整最大QP值(例如,在操作过程中)。通过能够在操作过程中动态地调整最大QP值,编码器20可能够使用较小的平均QP值对视频数据进行译码(经由量化产生较小损耗),同时保证速率缓冲器150不会上溢或排空。

图8A说明具有低复杂性图像数据及高复杂性图像数据的混合的示范性图像800。举例来说,如图8A中所说明,图像800具有大体上平坦的背景802(低复杂性)及复杂前景804(高复杂性)。

图8B说明QP值映射810,其使用固定最大QP值展示可通过编码器20用于对图像800中的不同空间区域进行译码的QP值。QP值映射810可含有对应于图像800的空间区域的较亮区域812,其中编码器20使用较高QP值对与那些区域相关联的视频数据块进行译码。另外,QP值映射810的较暗区域814对应于其中编码器20使用较低QP值对图像800的区域进行译码的图像800的空间区域。举例来说,QP值映射810的较亮区域812可对应于图像800的复杂前景804,且可通过编码器20使用较高QP值译码,导致大量的量化损耗。在另一方面,QP值映射810的较暗区域814可对应于图像800的大体上平坦的背景802,其中编码器20使用较低QP值对视频数据进行译码。

图8C说明另一QP值映射820,其展示可通过编码器20用于对图像800的不同空间区域进行译码的QP值,其中编码器20能够动态地调整最大QP值。如图8C中所说明,通过动态地调整最大QP值,所述图像上的平均QP值可降低,从而可能改进图像质量且减少失真。举例来说,相比在使用固定最大QP值时(例如,如图8B中所说明),通过编码器20用于对图像的区域822(其对应于QP值映射810的区域812)进行译码的QP值可在编码器20能够动态地调整最大QP值时较低。

在一些实施例中,最大QP可指仅仅对应于明度道的值,或可指明度道及色度道两者。替代地,最大QP可指主要最大QP值,其中可从所述值计算或推断相应明度及色度最大QP值(例如,从查找表(LUT)或其它数据结构)。

在一些实施例中,速率控制器120可基于缓冲器150中的若干位调整最大QP(例如,经测量为缓冲器150的缓冲器充满度)。在一些实施例中,速率控制器120可基于经先前译码视频数据块的复杂性信息(例如,复杂性值)计算最大QP。举例来说,如果经先前译码视频数据块具有高复杂性值,那么速率控制器120可将最大QP值调整为较高值,从而可使用较少位对后续视频数据块进行译码。在另一方面,如果经先前译码视频数据块具有低复杂性值,那么速率控制器120可将最大QP值调整为较低值,从而可使用较大数目个位对后续视频数据块进行译码。在一些实施例中,速率控制器120可基于一或多个经先前译码视频数据块的复杂性值是否符合一或多个阈值的确定,确定调整最大QP值以供对当前视频数据块进行译码的量。在一些实施例中,复杂性信息可通过平度检测器115计算。

在一些实施例中,可使用变换(例如,Hadamard、DCT及/或其类似者)从视频数据块推导所述块的复杂性值。在一些实施例中,可基于对块进行译码所耗费的位的数目及块的相关联QP值及模式信息(例如,用以对块进行译码的译码模式)推导所述块的复杂性值。

在一些实施例中,可从缓冲器150的缓冲器充满度推断一或多个经先前译码视频数据块的复杂性值。举例来说,在一些实施例中,当缓冲器150的缓冲器充满度很高(例如,缓冲器150几乎为满)时,可推断所述一或多个经先前译码块具有高复杂性值。在另一方面,当缓冲器150的缓冲器充满度很低时,可推断所述一或多个经先前译码块具有低复杂性值。

在一些实施例中,速率控制器120可使用缓冲器150的状态(例如,缓冲器充满度)及经先前译码块的复杂性值两者来调整最大QP值。

根据一些实施例,maxFixedQp可表示通过编码器20维持的默认最大QP值(例如,预定值),而maxCalQp可表示经调整最大QP值(例如,通过速率控制器120调整)。δ指示用以调整maxFixedQp以确定maxCalQp的偏移值(也被称作调整值)。即,经调整最大QP可计算为maxCalQp=maxFixedQp-δ。在一些实施例中,仅基于缓冲器150的缓冲器充满度(BF)确定δ。在另一实施中,速率控制器120可组合BF及一或多个经先前译码块的复杂性值两者以推导δ偏移值。

在一些实施例中,当BF介于第一较小阈值(Sn)与第二较大阈值(Lm),使得Sn<BF<Lm时,速率控制器120可使用默认非零正偏移值δ=δdefault>0来计算maxCalQp。举例来说,代替使用较高的maxFixedQp值,速率控制器120将maxFixedQp减小固定偏移以确定较低值maxCalQp,其可用以对切片中的连续块进行编码(例如,用以对切片中的连续块进行编码的QP值可通过较低maxCalQp而非较高maxFixedQp来限制。

如上文所论述,缓冲器150的缓冲器充满度可受通过编码器20用以对视频数据块进行译码的位的数目影响。举例来说,当编码器20正使用平均数目个位对视频数据块进行译码时,缓冲器150的充满度可保持大体上恒定。在另一方面,当编码器20正使用小于平均数目个位对视频数据块进行译码时,缓冲器150的充满度可开始减小。当编码器20正使用多于平均数目个位对视频数据块进行译码时,缓冲器150的充满度可增大。

在一些实施例中,当所计算的maxCalQp足够低,从而编码器20使用大于平均数目个位对连续视频数据块中的视觉信息(例如,归因于连续块中的纹理化/复杂视觉信息)进行有效译码时,缓冲器150的缓冲器充满度可增大超出阈值Lm。当缓冲器充满度超过阈值Lm时,速率控制器120可减小δdefault的值,且使用经减小的偏移值推导新的maxCalQp,以供编码器20对下一连续视频数据块进行译码。就此而论,maxCalQp将变得较高,从而允许编码器20用较高QP值对视频数据块进行编码。如果此新的最大值导致经进一步增大的缓冲器充满度,那么经减小的偏移值进一步减小。速率控制器120可重复连续减小偏移值且计算maxCalQp直到缓冲器充满度小于预定阈值的步骤,以便防止缓冲器150溢位。在某些情况下,可允许负偏移以防止缓冲器上溢。

在另一方面,当maxCalQp导致缓冲器充满度减小超出阈值Sn时(例如,归因于maxCalQp足够高使得编码器20使用小于平均数目个位对连续视频数据块中的视觉信息进行译码),速率控制器120可增大偏移值,从而产生较低maxCalQp值。较低maxCalQp值可导致编码器20使用较低QP值(且因此平均使用较高数目个位)对视频数据块进行译码。在一些实施例中,偏移值可在缓冲器充满度减小为低于阈值Sn时不变。

图9展示用于针对不同范围的缓冲器充满度(BF)挑选偏移增量值的示范性方案的曲线。在一些实施例中,速率控制器120可基于多个不同缓冲器充满度阈值调整用于确定maxCalQp的偏移δ。图9说明对应于缓冲器150的缓冲器充满度值的水平轴,其范围介于轴线左侧上的最小值(Min BF)到轴线右侧上的最大值(Max BF)。多个阈值经定位沿着水平轴,包含n个较小缓冲器值[S1,S2,…Sn]及m个较大缓冲器值[L1,L2,…Lm]。阈值经布置使得S1≤,S2≤,…≤Sn且L1≥,L2≥,…≥Lm≥Sn。

每一对邻近阈值[S1,S2,…Sn]及[L1,L2,…Lm]可界定与可通过速率控制器120使用以供确定maxCalQp的特定偏移值相关联的缓冲器充满度范围。举例来说,介于Sn与Lm之间的缓冲器充满度值的范围可与默认偏移值δdefault相关联。由邻近较小阈值[S1,S2,…Sn]界定的每一范围可与相应偏移值[δ″1,δ″2,…,δ″n]相关联,其中δ″1≥δ″2≥…≥δ″n≥δdefault。举例来说,如图9中所说明,偏移值δ″1与介于Min BF与S1之间的BF值范围相关联,而偏移值δ″n与介于Sn-1与Sn之间的BF值范围相关联。

另外,由邻近较大阈值界定的每一范围[L1,L2,…Lm]可与相应偏移值[δ′1,δ′2,…,δ′m]相关联,其中δ′1≤δ′2≤…≤δ′m≤δdefault。举例来说,如图9中所说明,偏移值δ′1与介于L1与Max BF之间的BF值范围相关联,而偏移值δ′m与介于Lm与Lm-1之间的BF值范围相关联。

在一些实施例中,速率控制器120可基于以下伪码,计算用于基于缓冲器150的缓冲器充满度BF调整最大QP的偏移值δ:

δ=δdefault;

if(BF>=L1)

δ=δ′1;

else if(BF>=L2)

δ=δ′2;

else if(BF>=Lm)

δ=δ′m;

If(BF<=S1)

δ=δ″1;

else if(BF<=S2)

δ=δ″2;

else if(BF<=Sn)

δ=δ″n;

如上文所论述,速率控制器120可使用偏移值δ将最大QP值调整为maxCalQp=maxFixedQp-δ。在上文实施中,“小于及等于”的指示可精确地由“小于”替换。类似地,“大于及等于”的指示可精确地由“大于”替换。在一些实施例中,n及m可相同或可不相同。

就此而论,如上文图9中所描述,当缓冲器150的缓冲器充满度低(例如,低于Sn)时,速率控制器120可将偏移δ的值设定为高于δdefault的值,从而产生较低maxCalQp。就此而论,编码器20可使用较大数目个位对连续视频数据块进行译码,从而可能增大缓冲器150的充满度。

在另一方面,当缓冲器150的缓冲器充满度高(例如,超过Lm)时,速率控制器120可将偏移δ的值设定为低于δdefault的值,从而产生较高maxCalQp。就此而论,编码器20可使用较小数目个位对连续视频数据块进行译码,从而可能减小缓冲器150的充满度。

[在一些实施例中,缓冲器阈值[L1,L2,…Lm]及/或[S1,S2,…Sn]可针对明度及色度分量两者相同。在另一实施中,其可针对明度及色度分量不同。在另一实例中,每一缓冲器阈值的偏移值δ可针对明度及色度分量为相同或不同的。

阈值[L1,L2,…Lm]可能为或可能并非为如上文所论述用以确定QP模式[Q1,Q2,…Qm]的相同的m个阈值。类似地,阈值[S1,S2,…Sn]可能为或可能并非为用以确定QP模式[P1,P2,…Pn]的相同的n个阈值。

在一些实施例中,代替基于一或多个缓冲器充满度阈值确定用于调整最大QP的偏移增量值,速率控制器120可基于预定函数或方程式从缓冲器150的当前缓冲器充满度(BF)确定偏移增量值。

在一些实施例中,可周期性地确定用以调整最大QP的偏移增量值(例如,在某些时间间隔,在已对某一数目个块进行译码之后,及/或其类似者)。举例来说,速率控制器120可基于缓冲器150的当前缓冲器充满度,确定用于调整有待通过编码器20译码的每一视频数据块的最大QP的偏移增量值。

此处公开的技术可仅在编码器20处应用。举例来说,编码器20可确定用于调整最大QP的偏移值,且将经确定偏移发信到解码器30(例如,作为经由链路16发射到解码器30的经译码视频数据位流的部分)。在另一替代例中,此处提议的技术可应用于编码器20及解码器30两者。在一些实施例中,其中本文中所提议的技术在应用于编码器20及解码器30两者之后,编码器20无需将偏移值发信到解码器30。

实例实施例

图10说明用于针对不同范围的缓冲器充满度(BF)挑选偏移增量值的示范性方案的曲线。图10中所说明的曲线类似于图9中所说明的,其中缓冲器150的缓冲器充满度值展示于范围介于轴线左侧上的最小BF(Min BF)到轴线右侧上的最大BF(Max BF)的水平轴上。在一些实施例中,表示于轴线上的BF值可对应于百分比值。举例来说,MinBF可对应于0%,而Max BF可对应于100%。另外,如在图9中,图10的曲线展示经定位沿着水平轴的多个阈值。在图10中所说明的方案中,速率控制器120可维持n=2个较小阈值[S1,S2],其具有值[12,24](展示于水平轴左侧上),及m=2个较大阈值[L1,L2],其具有值[88,76](展示于水平轴右侧上)。

沿表示缓冲器充满度的水平轴的每一对邻近阈值可对应于可通过速率控制器120使用以供调整最大QP的特定偏移值。举例来说,当缓冲器150的缓冲器充满度介于24%与76%之间时,速率控制器120可将最大QP调整偏移δdefault=4。当缓冲器充满度介于76%与88%之间时,偏移可为δ′2=2。当缓冲器充满度高于88%时,速率控制器120可使用偏移δ′1=0。

在另一方面,在图9中所说明的实施例中,偏移值可并非随缓冲器充满度减小低于阈值24而减小。举例来说,可分别对应于低于12及介于12与24之间的缓冲器充满度范围的偏移δ″1及δ″2两者可均对应于值4。阈值[L1,L2]及[S1,S2]可针对明度道及色度道两者为相同的。

基于图片参数调整到最大QP

在一些实施例中,速率控制器120可基于与待译码视频数据相关联的一或多个图片参数(例如,源位深度、压缩位速率及/或其类似者)进一步调整最大QP。举例来说,在一些实施例中,用于视频数据的源位深度的默认值可为(例如)每分量8个位。在此情况下,最大QP可如下进行调整:

maxQp=maxQp+((bitDepth-8)<<a)

其中参数a可经调谐(例如,参数a可通过速率控制器120修改)。举例来说,在高级DSC(A-DSC)中,可使用默认值a=2。

应理解,在其它实施例中,可基于源位深度的默认值的变化而修改上文用于最大QP的方程式。举例来说,方程式可如下进行修改,其中参数bd可指示默认位深度值(例如,每分量的默认位数目)。

maxQp=maxQp+((bitDepth-bd)<<a)

在一些实施例中,速率控制器120可基于压缩位速率值调整最大QP。在其它实施例中,速率控制器120可基于位深度或压缩位速率中的至少一个调整最大QP。

在一些实施例中,默认压缩位速率可为6bpp(8bpc源内容4:1压缩)。在A-DSC编解码器中,可使用m个分率位定义压缩位速率,意谓着压缩位速率6bpp将以内部方式存储于编解码器中作为(6<<m)。举例来说,当m=4时,经内部存储的值可为6<<4=96。

在一些实施例中,在假定默认压缩位速率等于6bpp的情况下,对于具有低于6bpp的值的压缩位速率,速率控制器120可如下调整最大QP:

maxQp=maxQp+(((96-bpp)>>m)<<b0)

相反地,对于高于6bpp的位速率,速率控制器120可如下调整最大QP:

maxQp=maxQp-(((bpp-96)>>m)<<b1)

其中b0及b1可对应于用于按比例调整共计为maxQp的偏移的预定固定值。在一些实施例中,m、b0及b1的值可为m=4、b0=3、b1=2。应理解,在其它实施例中,可基于默认压缩位速率值的变化修改上文用于最大QP的方程式。

在源位深度及压缩位速率两者不同于其默认值(例如,分别为8bpc及6bpp)的一些实施例中,速率控制器120可如下将最大QP调整两次(可无需按次序):

●基于源位深度修改最大QP。

●基于压缩位速率进一步修改最大QP。

在一些实施例中,在基于图片参数调整最大QP之后,通过译码器使用先前章节中描述的技术(例如,基于缓冲器150的缓冲器充满度),速率控制器120可在运行中进一步动态地调整最大QP。举例来说,在一些实施例中,速率控制器120可最初基于例如源位深度及压缩位速率的图片参数调整最大QP值。可出于在运行中基于缓冲器150的缓冲器充满度调整最大QP值的目的,将经调整最大QP值用作maxFixedQp值。

过程流程

图11展示用于调整对视频数据块进行译码的最大QP值的示范性过程的流程图。在块1102处,速率控制器120可确定默认最大QP值。在一些实施例中,最大QP值可为预定值。

在块1104处,速率控制器120可基于一或多个图片参数调整最大QP值。在一些实施例中,图片参数可对应于源位深度或压缩位速率。在一些实施例中,速率控制器120可首先基于源位深度,且接着基于压缩位速率调整最大QP值。在一些实施例中,速率控制器120可仅基于源位深度或仅基于压缩位速率调整最大QP值。在一些实施例中,如果源位深度或压缩位速率偏离默认值,那么速率控制器120仅仅基于源位深度或压缩位速率调整最大QP值。在一些实施例中,经调整最大QP值可被称为maxFixedQp。

在块1106处,速率控制器120可接收缓冲器150的缓冲器充满度的量的指示。在块1108处,速率控制器可基于缓冲器的缓冲器充满度确定最大QP偏移。在一些实施例中,速率控制器120将缓冲器充满度值与一或多个阈值进行比较以确定偏移值。举例来说,所述一或多个阈值可界定一或多个缓冲器充满度范围,其中不同偏移值可与不同缓冲器充满度范围相关联。在块1110处,速率控制器120可基于经调整最大QP(例如,如在块1104处确定的maxFixedQp)及经确定偏移值而确定最大QP值。举例来说,速率控制器120可确定最大QP值maxCalQp作为maxFixedQp与经确定偏移值之间的差。经确定最大QP值随后由编码器20用于对视频数据块进行译码。

在一些实施例中,块1106到1110可随编码器20对连续视频数据块进行译码而重复。举例来说,在一些实施例中,速率控制器120可在周期性间隔中(例如,在某些时间间隔中,或在已对某一数目个块进行译码之后)接收缓冲器充满度的指示(块1106)。速率控制器120可接着确定有待通过编码器20用于对后续视频数据块进行译码的新偏移及最大QP值(块1108、1110)。此回路可重复,直到编码器20已对所有视频数据块进行译码为止。

通过基于缓冲器充满度动态地调整用以对视频数据块进行译码的最大QP值,速率控制器120可能限制用以对视频数据块进行译码的最大QP值,同时防止缓冲器150排空或溢位。举例来说,通过在缓冲器充满度低(例如,低于某些阈值)时增大偏移值(且因此减小最大QP值),编码器20可相比其已另外使用的QP值,使用较小QP值对视频数据块进行编码,从而减少量化损耗且防止缓冲器排空。

可使用多种不同技术及技艺中的任何者来表示本文中公开的信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示在整个以上描述中可参考的数据、指令、命令、信息、信号、位、符号及芯片。

结合本文中所公开的实施例而描述的各种说明性逻辑块及算法步骤可被实施为电子硬件、计算机软件或两者的组合。为了清晰地说明硬件与软件的此可互换性,上文已大体按其功能性描述了各种说明性组件、块及步骤。此功能性被实施为硬件抑或软件取决于特定应用及强加于整个系统上的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此些实施决策不应被解译为致使对本发明的范围的偏离。

本文所描述的技术可以硬件、软件、固件或其任何组合来实施。此类技术可以多种装置中的任一个实施,例如,通用计算机、无线通信装置手机、或集成电路装置,所述装置具有包含无线通信装置手机、汽车、电气设备、可穿戴的及/或其它装置中的应用的多个用途。可将描述为装置或组件的任何特征一起实施于集成式逻辑装置中或分开来实施为离散但可互操作的逻辑装置。如果以软件实施,那么所述技术可至少部分由包括程序码的计算机可读数据存储媒体实现,所述程序码包含在经执行时执行上文所描述的方法中的一或多个的指令。计算机可读数据存储媒体可形成计算机程序产品的部分,计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如,随机存取存储器(RAM),例如,同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体,及其类似者。所述技术另外或替代地可至少部分由计算机可读通信媒体实现,所述计算机可读通信媒体携载或传达呈指令或数据结构的形式且可由计算机存取、读取及/或执行的程序码,例如,传播的信号或波。

程序码可由可包含一或多个处理器的处理器执行,例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。此处理器可经配置以执行本发明中所描述的技术中的任一个。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,(例如)DSP与微处理器的组合,多个微处理器,一或多个微处理器结合DSP核心,或任何其它此配置。因此,如本文中所使用的术语“处理器”可指代前述结构、前述结构的任何组合或适合于实施本文中描述的技术的任何其它结构或设备中的任一个。此外,在一些方面中,本文中所描述的功能性可提供于经配置用于编码及解码的专用软件或硬件内,或并入于组合式视频编码器-解码器(编码解码器)中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。

本发明的技术可在多种装置或设备中实施,所述装置或设备包括无线手机、集成电路(IC)或IC集合(例如,芯片组)。在本发明中描述各种组件或单元以强调经配置以执行所公开技术的装置的功能方面,但未必需要通过不同硬件单元实现。实情为,如上文所描述,可将各种单元组合于编解码器硬件单元中,或通过互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合而结合合适软件及/或固件来提供所述单元。

虽然已结合各种不同实施例描述了前文,但可在不脱离本发明的教示的情况下将来自一个实施例的特征或元件与其它实施例组合。然而,相应实施例之间的特征的组合不必限于此。已描述了本发明的各种实施例。此些及其它实施例是在以下权利要求书的范围内。

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