用于显示流压缩(DSC)的平度检测的系统及方法与流程

文档序号:11852787阅读:1737来源:国知局
用于显示流压缩(DSC)的平度检测的系统及方法与流程

本发明涉及视频译码和压缩的领域,且确切地说,涉及用于在显示链路上发射的视频压缩,例如,显示流压缩(DSC)。



背景技术:

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

其它人已试着利用对像素数据的图像压缩。然而,此类方案有时并不是视觉上无损的,或可能在常规显示装置中实施起来困难且昂贵。

视频电子学标准协会(VESA)已开发了显示流压缩(DSC)作为用于显示链路视频压缩的标准。显示链路视频压缩技术(例如,DSC)应尤其提供视觉上无损的图片质量(即,足够好以致用户不会知道压缩有效)。显示链路视频压缩技术还应提供用常规硬件实时实施起来简单且廉价的方案。



技术实现要素:

本发明的系统、方法及装置各自具有若干创新方面,其中没有单个方面单独负责本文所揭示的合乎需要的属性。

一方面,用于译码视频数据的方法包括:确定用于所述视频数据的前一块的第一复杂度值、用于所述视频数据的当前块的第二复杂度值及用于所述视频数据的下一块的第三复杂度值,所述第一复杂度值、所述第二复杂度值及所述第三复杂度值表示所述视频数据的所述前一块、所述当前块及所述下一块中的对应一者的纹理或空间频率中的至少一者;至少部分地基于所述第一复杂度值、所述第二复杂度值及所述第三复杂度值确定所述当前块是否包含从复杂区域到平坦区域的过渡,其中复杂区域具有满足或超过复杂度阈值的复杂度值且平坦区域具有小于所述复杂度阈值的复杂度值;及至少部分地基于对于所述当前块是否包含从复杂区域到平坦区域的所述过渡的确定来译码所述视频数据。

在另一方面,用于译码视频数据的装置包括:存储器,其经配置以存储所述视频数据;及处理器,其与所述存储器通信且经配置以:确定用于所述视频数据的前一块的第一复杂度值、用于所述视频数据的当前块的第二复杂度值及用于所述视频数据的下一块的第三复杂度值,所述第一复杂度值、所述第二复杂度值及所述第三复杂度值表示所述视频数据的所述前一块、所述当前块及所述下一块中的对应一者的纹理或空间频率中的至少一者;至少部分地基于所述第一复杂度值、所述第二复杂度值及所述第三复杂度值确定所述当前块是否包含从复杂区域到平坦区域的过渡,其中复杂区域具有满足或超过复杂度阈值的复杂度值且平坦区域具有小于所述复杂度阈值的复杂度值;及至少部分地基于对于所述当前块是否包含从复合区域到平坦区域的所述过渡的确定来译码所述视频数据。

在又一方面中,设备包括:用于确定用于视频数据的前一块的第一复杂度值、用于所述视频数据的当前块的第二复杂度值及用于所述视频数据的下一块的第三复杂度值的装置,所述第一复杂度值、所述第二复杂度值及所述第三复杂度值表示所述视频数据的所述前一块、所述当前块及所述下一块中的对应一者的纹理或空间频率中的至少一者;及用于至少部分地基于所述第一复杂度值、所述第二复杂度值及所述第三复杂度值确定所述当前块是否包含从复杂区域到平坦区域的过渡的装置,其中复杂区域具有满足或超过复杂度阈值的复杂度值且平坦区域具有小于所述复杂度阈值的复杂度值。

在另一方面中,非瞬时性计算机可读存储介质具有存储于其上的指令,所述指令在执行时使装置的处理器进行以下操作:确定用于视频数据的前一块的第一复杂度值、用于视频数据的当前块的第二复杂度值及用于视频数据的下一块的第三复杂度值,所述第一复杂度值、所述第二复杂度值及所述第三复杂度值表示所述视频数据的前一块、当前块及下一块中的对应一者的纹理或空间频率中的至少一者;及至少部分地基于所述第一复杂度值、所述第二复杂度值及所述第三复杂度值确定所述当前块是否包含从复杂区域到平坦区域的过渡,其中复杂区域具有满足或超过复杂度阈值的复杂度值且平坦区域具有小于所述复杂度阈值的复杂度值。

附图说明

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

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

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

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

图3是说明用于根据本发明中描述的方面的平度检测方法中的多个像素的实例的框图。

图4为说明可执行根据本发明中描述的方面的技术的平度检测器的实例的框图。

图5是说明用于根据本发明中描述的方面的平度检测方法的流程图。

具体实施方式

一般来说,本发明涉及在视频压缩技术(例如显示流压缩(DSC))背景下的视频数据的平度检测方法。更具体地,本发明涉及用于识别视频数据内的过渡块的系统和方法,在所述过渡块内发生从视频数据的复杂区域到视频数据的平坦区域的过渡。

虽然本文中在DSC标准的背景下描述某些实施例,但所属领域的技术人员将了解,本文中揭示的系统和方法可适用于任何合适的视频译码标准。举例来说,本文中揭示的实施例可适用于以下标准中的一或多个:国际电信联盟(ITU)电信标准化部门(ITU-T)H.261、国际标准化组织/国际电工委员会(ISO/IEC)动画专家组-1(MPEG-1)Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(也称为ISO/IEC MPEG-4 AVC)和高效率视频译码(HEVC)和此类标准的扩展。并且,本发明中描述的技术可变为将来开发的标准的一部分。换句话说,本发明中描述的技术可适用于先前开发的视频译码标准、当前正在开发的视频译码标准和即将到来的视频译码标准。

DSC标准包含检测视频数据从复杂区域到平坦区域和从平坦区域到复杂区域的过渡。DSC可使用视频数据平度的此类过渡来确定用于译码视频数据的译码参数。部分地确定这些译码参数,以使得压缩视频满足DSC标准的带宽要求,同时最小化视频的失真。

视频压缩技术(例如DSC)可包含平度检测以便检测从视频数据的复杂区域到视频数据的平坦区域的过渡。在一些平度检测方法中,经由位流中的相关联参数发信号通知每一视频数据群组或视频数据块,所述相关联参数定义所述群组是“复杂的”还是“平坦的”,且此外,当发信号通知为平坦的时,发信号通知关于所述群组是略平坦还是极平坦的平坦度类型。因此,发信信息可增加包含于经压缩视频数据中的数据。此外,这些平度检测技术可基于考虑(例如,前一像素、当前像素群组和/或下一像素群组)下的像素的最大值和最小值。因此,这些平度检测技术可未对较大群组或块尺寸进行良好缩放,因为最大值和最小值可未捕获关于(例如)所述群组内的局部变化的信息,并因此可并未充分表示群组的平度。

因此,本发明的至少一个方面涉及平度检测方法,其包含对于视频数据的前一块、当前块和下一块中的每一者的复杂度计算。可基于前一块、当前块和下一块的复杂度确定当前块的平度。例如,平度可为当前块的纹理和/或空间频率的度量。因此,可有可能缩放块大小,同时充分捕获关于块中的局部变化的信息。此外,可识别其中发生从复杂区域到平坦区域的过渡的过渡块。

视频译码标准

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

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

另外,视频译码标准(即,DSC)已由VESA开发。DSC标准为可压缩视频以在显示链路上发射的视频压缩标准。随着显示器的分辨率增大,驱动显示器需要的视频数据的带宽对应地增大。一些显示链路可不具有所述带宽以将所有视频数据发射到此类分辨率的显示器。因此,DSC标准指定用于通过显示链路的可互操作、视觉无损压缩的压缩标准。DSC 1.0标准由VESA公布于2014年。当前考虑对于DSC的进一步推进。

DSC标准不同于其它视频译码标准,例如,H.264和HEVC。DSC包含帧内压缩,但不包含帧间压缩,意味着时间信息可不由DSC标准在译码视频数据时使用。相比之下,其它视频译码标准可在其视频译码技术中采用帧间压缩。

视频译码系统

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

尽管本文描述了特定方面,但这些方面的许多变化及排列落在本发明的范围内。尽管提及了优选态样之一些益处及优点,但本发明之范畴不既定限于特定益处、用途或目标。相反,本发明的方面既定广泛地适用于不同无线技术、系统配置、网络及发射协议,其中的一些是借助于实例而在图中以及在优选方面的以下描述中说明。具体实施方式和图式仅说明本发明,而不是限制由所附权利要求书和其等效物定义的本发明的范围。

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

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

如图1A中所展示,视频译码系统10包含源装置12,其产生在稍后时间待由目的地装置14解码的经编码视频数据。在图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的视频解码器在解码视频数据时使用。此类语法元素可与在通信媒体上发射、存储于存储媒体上或存储文件服务器的经编码视频数据包含在一起。

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

在相关方面中,图1B展示实例视频译码系统10',其中源装置12和目的地装置14在装置11上或为装置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可在由视频编码器20的其它部分使用经色彩空间转换的视频数据之前保持经色彩空间转换的视频数据。在另一实例中,视频数据可存储于RGB色彩空间中,且色彩空间转换可按需要执行,因为经色彩空间转换的数据可需要更多位。

速率缓冲器150可充当视频编码器20中的速率控制机构的部分,这将在下文结合速率控制器120更详细地描述。在编码每一块上花费的位可基于块的性质而基本上高度地变化。速率缓冲器150可使经压缩视频的速率变化平稳。在一些实施例中,使用恒定位速率(CBR)缓冲器模型,其中以恒定位速率从缓冲器取出位。在CBR缓冲器模型中,如果视频编码器20将过多的位添加到位流,那么速率缓冲器150可溢出。另一方面,视频编码器20必须添加足够位以便防止速率缓冲器150的下溢。

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

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

BF=((BufferCurrentSize*100)/BufferMaxSize)

平度检测器115可检测视频数据中的复杂(即,非平坦)区到视频数据中的平坦(即,简单或均匀)区的改变。术语“复杂”和“平坦”将在本文中用以大体指代视频编码器20编码视频数据的相应区域的困难。因此,如本文中使用的术语“复杂”将视频数据的区域大体描述为视频编码器20编码起来复杂或困难,且可(例如)包含纹理化的视频数据、高空间频率和/或编码起来复杂的其它特征。举例来说,当编码视频数据的区域需要的位数大于阈值时,可将所述区域确定为复杂区域。如本文中使用的术语“平坦”将视频数据的区域大体描述为视频编码器20编码起来简单,且可(例如)包含视频数据中的平滑梯度、低空间频率和/或编码起来简单的其它特征。举例来说,当编码视频数据的区域需要的位数小于阈值时,可将所述区域确定为平坦区域。

然而,取决于实施方案,对于给定区域复杂或平坦的确定也可基于所使用的编码标准、视频编码器20中包含的具体硬件、待编码的视频数据的类型等来确定。另外,视频数据区域的某些性质可影响需要多少位来编码区域,例如,高纹理和/或高空间频率区域可比较低纹理和/或较低空间频率区域需要多的位来编码。类似地,与视频数据的更结构化区域相比,包括随机噪声的区域可需要大量位来编码。因此,在某些实施方案中,可通过将纹理和/或空间频率的度量(例如,复杂度值)与复杂度阈值比较来将视频数据的区域识别为复杂和/或平坦区域。复杂与平坦区域之间的过渡可由视频编码器20用以减少经编码视频数据中的量化伪影。具体地,当识别到从复杂到平坦区域的过渡时,速率控制器120和预测器、量化器和重建器组件125可减少此类量化伪影。下文提供平度检测及其各种实施例的更详细描述。

速率控制器120判定一组译码参数,例如,QP。QP可由速率控制器120基于速率缓冲器150的缓冲器满度和视频数据的图像活动来调整,以便最大化针对目标位速率的图片质量,这确保速率缓冲器150不溢出或下溢。速率控制器120还选择用于视频数据的每一块的特定译码选项(例如,特定模式),以便达成最优速率-失真性能。速率控制器120最小化经重建图像的失真,以使得失真满足位速率约束,即总体实际译码速率适合目标位速率。

预测器、量化器和重建器组件125可执行视频编码器20的至少三个编码操作。预测器、量化器和重建器组件125可以许多不同模式执行预测。一个实例预测模式为中值自适应预测的修改型式。中值自适应预测可由无损JPEG标准(JPEG-LS)实施。可由预测器、量化器和重建器组件125执行的中值自适应预测的修改型式可允许三个连续样本值的并行预测。另一实例预测模式为块预测。在块预测中,从先前重构建的像素向左预测样本。视频编码器20和视频解码器30可都对重构建的像素执行相同搜索以确定块预测使用,并因此不需要在块预测模式中发送位。也可实施中点预测模式,其中使用组件范围的中点预测样本。中点预测模式可在甚至最坏情况样本中实现对于经压缩视频需要的位数的界限。

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

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

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

熵编码器140基于索引的色彩历史135和由平度检测器115识别的平度过渡编码从预测器、量化器和重建器组件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的对应组件的方式操作。

DSC中的切片

如上所指出,切片大体指代可在不使用来自图像或帧中的其余区域中的信息的情况下独立解码的在所述图像或帧中的空间上截然不同的区域。每一图像或视频帧可在单一切片中编码,或图像或视频帧可在若干切片中编码。在DSC中,被分派以编码每一切片的目标位可基本上恒定。

平度检测

一种用于平度检测的技术可涉及识别从复杂区域到平坦区域的过渡。在一些实施方案中,可由速率控制器120执行的速率控制算法包含至少部分地基于前一块的位速率选择当前块的QP值。当前一块的位速率高于先前编码块的平均位率(例如,由于高活动性)时,速率控制算法增加当前块的QP值以便维持位率约束并还防止速率缓冲器150溢出。因此,当多个连续经先前编码块高度复杂时,当前块的QP值可达到极高值。当平坦区域紧接在复杂区域之后时,如果以高QP编码平坦区域,则可注意到视觉伪影。因此,可能需要识别从视频数据的复杂区域到视频数据的平坦区域的这种过渡,以使得可使用低QP值执行平坦区域的编码。

在一些实施方案中,针对超群(例如,4个连续群组/块)内的每一群组或块(例如,3个像素)执行平度确定。可执行两个平度检查以确定可为“不平”、“略平”或“极平”的平度类型。因此,对于和在先前实例中一样具有4个群组的大小的每一超群,可存在四个平度指示,一个用于每一群组/块。每一平度指示可指示(例如)对应群组-块不平、略平或极平。在一些实施例中,可将略平块确定为与极平块相比编码起来更复杂或困难或与不平区域相比编码起来更简单的视频数据区域。例如,当纹理和/或空间频率的表示(例如,复杂度值)大于第一阈值并小于第二阈值时,可将视频数据的区域确定为略平区域。

图3说明用于参与根据实例的当前像素群组的平度确定的像素。参考图3,展示多个像素205至235。图3中展示当前像素群组,其包含像素210、215及220。像素205为位于当前群组之前的像素。换句话说,像素205构成前一像素。像素225、230及235定位在当前群组之后。换句话说,像素225、230及235构成接下来的像素。

第一平度检查可包含两种测试。在对于极平类型的平度的第一种测试中,在包含前一像素205和当前群组的像素210、215及220的四个样本中确定每一色彩分量的最小值和最大值。如果任何色彩分量的最大值与最小值之间的差大于(2<<(bitsPerComponent-8)),其中<<是逐位左移运算子,那么对于极平的第一种测试未通过。如果任何色彩分量的最大值与最小值之间的差不大于(2<<(bitsPerComponent-8)),那么第一种测试通过,例如,确定当前像素群组具有极平类型的平度。

在一些实施例中,当第一种测试通过时,不进行第二种测试。在其它实施例中,执行第二种测试而不管第一测试是否通过或第一种测试何时未通过。在对于略平类型的平度的第二种测试中,如果在包含前一像素205和当像素210、215及220的四个样本中的任何色彩分量的最大值与最小值之间的差大于阈值,那么对于略平的第二种测试未通过。如果任何色彩分离的最大值与最小值之间的差不大于阈值,那么第二种测试通过,例如,将当前像素群组确定为具有略平类型的平度。在某些实施方案中,基于QP计算用于第二种测试中的阈值。

如果第一平度检查中的上述第一种和第二种测试未通过,那么对当前群组中的像素和后三个像素(例如,对于像素210至235)执行第二种平度检查。在第二种平度检查期间,计算像素210至235的最小值和最大值并针对像素210至235执行在第一种平度检查中所执行的相同的两种测试。

最终,基于伪码中所展示的以下程序将超群中的每一当前群组(例如,像素210、215及220)分类为平坦的、略平的或不平的:

如果前一超群具有平度指示,那么将prevIsFlat的值初始化为1;否则将prevIsFlat的值初始化为0。如果超群内的群组经选择为平坦的或略平的,那么将超群的旗标(标示为flatness_flag)设置为1,并在位流中将对应群组与相关联平度类型一起发信号通知。如果无群组经选择为平坦的或略平的,那么将超群的flatness_flag设置为0。最后,如果发现当前群组为平坦或略平的,则速率控制器120可调整当前群组的QP值。

可存在大量与上述平度检测方法相关联的大量限制。例如,这些方法可需要对当前块或群组是平坦的还是不平的明确信令,并可进一步需要在当前块或群组为平坦的时发信号通知平度的类型,即极平或略平。当实施上述平度检测方法时,这种明确信令所需的位可限制可达成的压缩。

此外,上述平度检测方法可不针对大群组或块大小的平度检测缩放(即,当群组/块中的像素的数目相对大时)。这是因为较大群组或块的最小值和最大值可表示更极端值且可未能捕获群组内的局部空间变化。

图4为说明根据一个实施例的平度检测器115的框图。平度检测器115可包含三个复杂度计算器332、324及326、最大值计算器330及过渡检测器340。复杂度计算器332、324及326分别计算对应块的复杂度。由复杂度计算器332、324及326计算的复杂度值可分别表示对应块的纹理和/或空间频率。平度检测器115可基于前一块305和下一块315确定是否在当前块310中发生从不平区域到平坦区域的过渡。虽然取决于实施例将平度检测器115说明为包含多个单独块,但可将块一起或以各种组合来组合和/或实施。

如图4中所展示,通过相应的复杂度计算器322、324及326计算当前块305、下一块310及前一块315的复杂度。当前块305、下一块310及前一块315的复杂度在下文将分别标示为Ccur、Cnext、Cprev。最大值计算器330计算迄今为止在当前线或切片中识别的最大复杂度Cmax。过渡检测器340基于计算的复杂度值Ccur、Cnext、Cprev及Cmax识别从复杂区域到平坦区域的过渡。在某些实施方案中,在编码线或切片中的第一块时,用Ccur与Cnext之间的最大值初始化Cmax。在编码每一个块之后,基于Cmax与Cnext之间的最大值更新Cmax值。最终,至少部分地基于是否在当前块310中已由过渡检测器340识别到从复杂区域到平坦区域的过渡来计算当前块310的QP值。在一些实施方案中,当已在当前块310中识别到从复杂区域到平坦区域的过渡时,将QP值设置为相对低的值。

在一个实施方案中,最大值计算器330针对切片中的每一线独立地计算Cmax值。即,对于每一新线中的第一块,最大值计算器330用Ccur与Cnext之间的最大值初始化Cmax并进一步基于Cmax及Cnext的最大值更新Cmax

现将更详细描述根据示范性实施例的对于所选块的复杂度计算(即,由复杂度计算器322、324及326针对相应的前一块305、当前块310及下一块315所执行的计算)。通过首先向所选块应用特定变换及随后对变换系数的绝对值或绝对平方值求和来计算所选块的复杂度值。在某些实施方案中,仅使用明度通道计算复杂度值,且在其它实施方案中使用明度通道和色度通道两者计算复杂度值。在一个示范性实施例中,应用于所选块的变换为离散余弦变换(DCT)或哈达码(Hadamard)变换。在另一个实例中,可基于用以译码块的位数和相应的QP值来导出复杂度值。在另一个实例中,可基于原始块与经预测块之间的残余能量导出复杂度值。

在另一个示范性实施例中,通过向所选块应用变换而产生的变换系数的子集用于计算绝对和或绝对平方和。在此实施例中,并非块中的所有变化系数都用于计算绝对和或绝对平方和。

在另一个示范性实施例中,将每一变换系数乘以权重且应用到变换系数的权重可彼此不同。在此实施例中,计算经加权系数的绝对值或绝对平方值。

在另一示范性实施例中,在计算变换系数之前将色彩变换应用于块。

在另一实施例中,对于每一色彩通道,对相应变换系数的子集的绝对或平方值求和并对最终和进行归一化。在此实施例中,将所有色彩通道的归一化和加在一起以产生复杂度值。在一个实施方案中,归一化包含将积累值除以所选块中的像素的数目。在另一个实施方案中,在将积累值除以所选块中的像素的数目之前,将偏移值与积累值相加以便将积累值舍入最接近的整数。例如,偏移值可为块中的像素数目除以2。应注意,可组合对于复杂度计算的上述实施例或方法中的一或多个。

在另一实施例中,对于每一色彩通道,对相应变换系数的子集的绝对或平方值求和并对最终和进行归一化。可将每一色彩通道的归一化和乘以对应权重。可将经加权的归一化和加在一起以导出复杂度值。在一个实施方案中,输入视频数据在RGB色彩空间中且色彩空间转换器105将输入视频数据转换为YCgCo色彩空间。在此实施方案中,Y通道的权重可为(例如)1,且色度通道Co及Cg的权重中的每一者可为(例如)0.5。

如上文所描述,过渡检测器340识别是否在当前块310中发生从复杂区域到平坦区域的过渡。在某些实施例中,至少部分地基于以下各者由过渡检测器340识别从复杂区域到平坦区域的过渡:(i)当下一块315为平坦的时所满足的第一条件;及(ii)当前以块305为复杂的时所满足的第二条件。下文详细描述说明何时满足条件(i)及(ii)的多个实施方案。当满足两个条件(i)及(ii)时,速率控制器120将当前块310的QP值调整为相对低的值。否则,如果条件中的任一个未通过,那么速率控制器120不会基于平度检测器115的输出来调整当前块310的QP值。

在示范性实施例中,过渡检测器340将确定在以下条件为真时满足条件(i):

((CCur-Cnext)>Cmax*T1)&&(Cnext<T2*Cmax),

其中T1及T2为可配置的阈值参数。

在一个实施方案中,用大于或等于条件检查(即,((CCur-Cnext)≥Cmax*T1)&&(Cnext<T2*Cmax))来替换((CCur-Cnext)>Cmax*T1)中的大于条件检查。

在另一个实施方案中,用小于或等于条件检查(即,(Cnext≤T2*Cmax))替换(Cnext<T2*Cmax)中的小于条件检查。

在另一个实施方案中,使用以下条件((CCur-Cnext)≥Cmax*T1)&&(Cnext≤T2*Cmax)确定是否满足条件(i)。

在另一个示范性实施例中,如果以下条件为真,那么满足所述条件(i):

Cnext<CCur*T,

其中T为可配置阈值参数。

在一个实施方案中,使用条件检查Cnext≤CCur*T代替以上条件检查来看是否满足条件(i)。

在另一个示范性实施例中,如果以下条件为真,那么满足所述条件(ii):

(Cprev>Cmax*T3),

其中T3为可配置的阈值参数。

在一个实施方案中,用大于且等于条件检查(即,(Cprev≥Cmax*T3))来替换(Cprev>Cmax*T3)中的大于条件检查。

在另一个示范性实施例中,如果Cprev>T4,则满足条件(ii),其中T4为可配置参数。

在一个实施方案中,用大于且等于条件检查(即,Cprev≥T4)替换大于条件检查Cprev>T4

在又一实施例中,基于以下算法评估条件(ii):

对于j=1至n

此处,A=[a1、a2、…、an],B=[b1、b2、…、bn],其中针对从1至n的j的所有值,aj及bj为可配置阈值。此外,‘n’表示正整数。在以上算法中,一旦发现满足条件(ii),即通过中断终止算法。

在一个实施方案中,将n设置为1,且因此将一个阈值用于A与B中的每一者中。

在一个实施方案中,用小于条件检查(即,(Cnext<A[j]))替换小于或等于条件检查(Cnext≤A[j])。在另一个实施方案中,用大于或等于条件检查(即,Cprev≥B[j])替换大于条件检查Cprev>B[j]。

在一个实施方案中,阈值a1、a2、…、an处于单调递增次序。在一个实施方案中,阈值b1、b2、…、bn处于单调递增次序。

在另一个实施方案中,组合条件检查Cprev>T4与以上算法以确定是否满足条件(ii)。

在一个实施方案中,首先进行以上算法中的步骤以检查是否满足条件(ii)。如果在完成此算法中的步骤后未满足条件(ii),那么进行条件检查Cprev>T4

在一个实施方案中,如果Cmax值较大或大于或等于可配置的阈值T4,那么检查条件(i)及(ii)。即,如果满足条件(Cmax>=T4),那么检查用于检测从不平区域到平坦区域的过渡的条件(i)及(ii)。否则,如果不满足条件(Cmax>=T4),那么不检查两个条件(i)及(ii)且不调整QP值。在一个实施方案中,用严格的大于条件检查(即,(Cmax>T4))替换大于或等于条件检查。

用于识别从视频数据中的复杂区域到平坦区域的过渡的实例流程图

参考图5,将描述用于识别从视频数据中的复杂区域到平坦区域的过渡的实例程序。图5为说明根据本发明的实施例的用于译码视视频数据的方法400的流程图。图5中所说明的步骤可由视频编码器(例如,图2A中的视频编码器20)或其一或多个组件执行。为方便起见,将方法400描述为由视频译码器(也简称为译码器)执行,所述视频译码器可为视频编码器20或另一组件。

方法400开始于框401处。在框405处,译码器确定用于视频数据的前一块的第一复杂度值、用于视频数据的当前块的第二复杂度值及用于视频数据的下一块的第三复杂度值。第一、第二及第三复杂度值表示视频数据的前一块、当前块及下一块中的对应一者的纹理和/或空间频率。在一些实施例中,可通过经由向前一块、当前块及下一块中的对应一者应用变换而产生多个变换系数来计算第一、第二和第三复杂度值中的每一者。在这些实施例中,经由对变换系数的绝对值或绝对平方值求和来确定对应于前一块、当前块及下一块的复杂度值中的每一者。

在框410处,译码器基于第一、第二和第三复杂度值确定当前块是否包含从复杂区域到平坦区域的过渡。复杂区域具有符合或超过复杂度阈值的复杂度值且平坦区域具有小于复杂度阈值的复杂度值。在一些实施例中,译码器进一步确定用于视频数据的当前切片的最大复杂度值。译码器还至少部分地基于第三复杂度值确定是否满足第一条件并至少部分地基于第一复杂度值确定是否满足第二条件,以便确定当前块是否包含从复杂区域的过渡。在框415处,译码器至少部分地基于对于当前块是否包含从复杂区域到平坦区域的过渡的确定来译码视频数据。所述方法在框420处结束。

在方法400中,可去除图5中所展示的一或多个框和/或可交换执行方法的次序。在一些实施例中,可将额外块添加至方法400。本发明的实施例不限于图5展示的实例或不受到图5中展示的实例限制,且可在不脱离本发明的精神的情况下实施其它变化。

其它考虑

可使用多种不同技术和技艺中的任一者来表示本文中所揭示的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。

结合本文揭示的实施例所描述的各种说明性逻辑块、电路及算法步骤可实施为电子硬件、计算机软件,或两者的组合。为清楚说明硬件与软体的此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块和步骤。此功能性是实施为硬件还是软件取决于特定应用及应用于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起偏离本发明的范围。

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

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

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

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

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