用于确定用于显示流压缩的缓冲器满度的系统和方法与流程

文档序号:11162255阅读:538来源:国知局
用于确定用于显示流压缩的缓冲器满度的系统和方法与制造工艺

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



背景技术:

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

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

视频电子标准协会(VESA)已开发了显示流压缩(DSC)作为用于显示链路视频压缩的标准。例如DSC的显示链路视频压缩技术应(尤其)提供视觉无损的图片质量(即,图片具有质量等级,使得用户不能断定压缩为作用中的)。显示链路视频压缩技术还应提供用常规硬件实时实施起来简单且廉价的方案。



技术实现要素:

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

在一个方面中,提供一种显示链路视频压缩的方法,其包括:对视频数据的切片内的块进行译码,所述切片包括所述视频数据的一或多个块;将对应于所述块的位存储在缓冲器中;确定指示所述块在所述切片内的位置的信息;以及至少部分地基于所述块在所述切片内的所述位置而确定所述缓冲器的满度。

在另一方面,一种用于显示链路视频压缩的设备包括:处理器,其经配置以对视频数据的切片的块进行译码,所述切片包括所述视频数据的一或多个块;缓冲器,其经配置以存储对应于所述块的位;以及操作性地耦合到所述视频译码装置和所述缓冲器的处理器。所述处理器进一步经配置以确定指示所述块在所述切片内的位置的信息,且至少部分地基于所述块在所述切片内的所述位置而确定所述缓冲器的满度。

在另一方面,一种非暂时性计算机可读存储媒体含有指令,所述指令在执行时致使装置的处理器:对视频数据的切片内的块进行译码,所述切片包括一或多个视频数据块;将对应于所述块的位存储在缓冲器中;确定指示所述块在所述切片内的位置的信息;以及至少部分地基于所述块在所述切片内的所述位置而确定所述缓冲器的满度。

在另一方面,提供一种视频译码装置,其包含:用于对视频数据的切片内的块进行译码的装置,所述切片包括所述视频数据的一或多个块;用于将对应于所述块的位存储在缓冲器中的装置;用于确定指示所述块在所述切片内的位置的信息的装置;以及用于至少部分地基于所述块在所述切片内的所述位置而确定所述缓冲器的满度的装置。

附图说明

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

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

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

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

图3是展示用于对数据切片进行编码的示范性过程的曲线图。

图4说明用于在切片的编码期间调整缓冲器满度(BF)的示范性技术。

图5是说明用于在缓冲器处提供恒定位速率(CBR)输出的实例方法的流程图。

具体实施方式

一般来说,本发明涉及改进视频压缩技术(例如在显示链路视频压缩中使用的那些技术)的方法。更具体来说,本发明涉及用于提供缓冲器(例如,速率缓冲器)的恒定位速率(CBR)输出和/或输入以用于显示链路视频压缩的系统和方法。

在常规显示器技术中,作为显示链路视频压缩的实例的由视频电子标准协会(VESA)的显示流压缩(DSC)v1.0解决方案提供的3:1压缩可能不足以驱动未来的移动市场要求,尤其是对于与例如4K分辨率(也被称作4K)等高分辨率显示器相关联的要求。因此,为了满足未来需求,期望开发用于并入到例如下一代DSC标准中的提供4:1压缩和更高压缩的方法。

在此上下文中,期望在确定DSC方法的性能中管理速率控制。速率控制的一个目的是确定满足速率的瞬时和平均约束且同时最大化速率失真性能的例如量化参数(QP)等译码参数的集合、译码模式等等。

编码每一视频数据块所耗费的位(即,用以编码的位)可大体上基于所述块的性质(例如,大小、位数目等)而变化。因此,缓冲器可用作速率控制机构的部分以便使输出位流中的速率变化平滑。在CBR缓冲器模型中,在有线物理链路上的数据发射期间可以恒定速率从缓冲器移除位。在此缓冲器模型中,如果编码器相对于从缓冲器移除的位添加太多的位,那么缓冲器中的位数目可能超过缓冲器的容量,从而造成上溢。另一方面,编码器应当在足够速率添加位以便防止下溢。在解码器侧上,位以恒定速率添加到缓冲器,且解码器针对每一块移除可变的位数目。为了确保恰当解码,在经压缩位流的解码期间缓冲器应当在任一点都不下溢或上溢。

假设变量BufferCurrentSize表示当前存储在缓冲器内的位数目,且变量BufferMaxSize表示缓冲器的大小(即,容量),即可存储在缓冲器中的总体最大位数目。缓冲器的“满度”(也被称作缓冲器满度(BF))可如下方等式1中所示而计算。BF表示在特定时间点正用于位的存储的缓冲器的容量的百分比。

BF=((BufferCurrentSize*100)/BufferMaxSize) (等式1)

或者使用:

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

然而,在某些实施例中,需要在视频数据切片的结束(即,在译码所述切片中的所有块之后)在缓冲器中含有(即,存储)的位数目小于BufferMaxSize。假设变量maxBufferBitsAtSliceEnd表示在切片结束时缓冲器中的所需最大位数目。在一实例中,为了防止下溢和/或上溢,在切片结束时缓冲器中的位数目等于可能小于BufferMaxSize的maxBufferBitsAtSliceEnd可为最优的。在此类实施例中,在切片结束时在计算BF中将使用maxBufferBitsAtSliceEnd代替BufferMaxSize,且上述等式1和/或2将不是最优的。

在此类实施例中,需要取决于(即,基于)切片内的给定块的译码位置而调整BF。更精确地,在对切片中的某个固定数目(即,预定或可配置数目)的块进行译码之后BF在恒定速率线性地减小,其方式为使得在切片结束时,如果BufferCurrentSize=maxBufferBitsAtSliceEnd则BF是100%。

虽然本文中在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),以及此类标准的任何扩展。并且,本发明中描述的技术可变为将来开发的标准的一部分。换句话说,本发明中描述的技术可适用于先前开发的视频译码标准、当前正在开发的视频译码标准及即将出现的视频译码标准。

视频译码标准

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

视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、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。

此外,视频译码标准(即,DSC)已由VESA开发。DSC标准为可压缩视频以供经由显示链路传输的视频压缩标准。随着显示器的分辨率增大,驱动显示器需要的视频数据的带宽对应地增大。针对此类分辨率,一些显示链路可能不具有带宽来将所有视频数据传输到显示器。因此,DSC标准指定用于通过显示链路的可互操作、视觉无损压缩的压缩标准。

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

视频译码系统

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

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

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

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

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

再次参考图1A,源装置12和目的地装置14可分别包括广泛范围的装置(也被称作视频译码装置)中的任一者,包含桌上型计算机、笔记本(例如,膝上型计算机)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、所谓的“智能”平板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似物。在各种实施例中,源装置12和目的地装置14可经装备以用于无线通信(即,经配置以经由无线通信进行通信)。

视频译码系统10的视频译码装置12、14可经配置以经由无线网络和无线电技术进行通信,例如无线广域网(WWAN)(例如,蜂窝式)和/或无线局域网(WLAN)载波。术语“网络”和“系统”通常可互换使用。视频译码装置12、14中的每一者可为用户设备(UE)、无线装置、终端、移动台、订户单元等。

WWAN载波可包含(例如)无线通信网络,例如码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)、正交FDMA(OFDMA)、单载波FDMA(SC-FDMA)和其它网络。CDMA系统可实施例如通用地面无线电接入(UTRA)、CDMA2000等无线电技术。UTRA包含宽带CDMA(WCDMA)和CDMA的其它变体。CDMA2000涵盖IS-2000、IS-95和IS-856标准。TDMA网络可以实施无线电技术,例如全球移动通信系统(GSM)。OFDMA网络可实施例如演进型UTRA(E-UTRA)、超移动宽带(UMB)、IEEE 802.11(Wi-Fi)、IEEE802.16(WiMAX)、IEEE 802.20、Flash-OFDMA等无线电技术。UTRA和E-UTRA是通用移动电信系统(UMTS)的部分。3GPP长期演进(LTE)和LTE高级(LTE-A)为UMTS的使用E-UTRA的新版本。UTRA、E-UTRA、UMTS、LTE、LTE-A及GSM描述于来自名为“第三代合作伙伴计划”(3GPP)的组织的文献中。CDMA2000和UMB描述于来自名为“第三代合作伙伴计划2”(3GPP2)的组织的文献中。

视频译码系统10的视频译码装置12、14还可根据例如IEEE 802.11标准等一或多个标准经由WLAN基站彼此通信,包含例如这些修正:802.11a-1999(通常称为“802.11a”)、802.11b-1999(通常称为“802.11b”)、802.11g-2003(通常称为“802.11g”)等。

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

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

视频编码器20和视频解码器30可根据视频压缩标准(例如,DSC)操作。替代地,视频编码器20和视频解码器30可根据其它专有或行业标准而操作,例如替代地称为MPEG-4第10部分AVC的ITU-TH.264标准、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对视频数据(例如,视频译码层(VCL)数据和/或非VCL数据)进行编码时,视频编码器20可产生位流。位流可包含形成视频数据的经译码表示的位序列。位流可包含经译码图片和相关联的数据。经译码的图片是图片的经译码的表示。VCL数据可包含经译码图片数据(即,与经译码图片的样本相关联的信息),且非VCL数据可包含与一或多个经译码图片相关联的控制信息(例如,参数集和/或补充增强信息)。

为了产生位流,视频编码器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从缓冲器取出位。在CBR缓冲器模型中,如果视频编码器20将过多的位添加到位流,那么速率缓冲器150可上溢。另一方面,视频编码器20必须添加足够位以便防止速率缓冲器150的下溢。

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

如上文所论述,可基于表示当前在缓冲器中的位数目的值BufferCurrentSize和表示速率缓冲器150的大小(即,在任一时间点可存储在速率缓冲器150中的最大位数目)的BufferMaxSize来定义BF。可根据上方等式1或2计算BF,但下文描述用于计算BF的进一步方法。

平度检测器115可检测视频数据中的复杂(即,非平坦)区到视频数据中的平坦(即,简单或均匀)区的改变。术语“复杂”和“平坦”将在本文中用以大体指视频编码器20编码视频数据的相应区域的困难。因此,如本文中使用的术语“复杂”将视频数据的区域大体描述为视频编码器20编码起来复杂,且可(例如)包含纹理化的视频数据、高空间频率和/或编码起来复杂的其它特征。如本文中使用的术语“平坦”将视频数据的区域大体描述为视频编码器20编码起来简单,且可(例如)包含视频数据中的平滑梯度、低空间频率和/或编码起来简单的其它特征。复杂与平坦区域之间的过渡可由视频编码器20用以减少经编码视频数据中的量化假象。具体来说,当识别到从复杂到平坦区域的过渡时,速率控制器120和预测器、量化器和重构器组件125可减少此类量化假象。

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

预测器、量化器和重构器组件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的对应组件的方式操作。

DSC中的切片

如上所指出,切片大体指可在不使用来自图像或帧中的区域中的其余者的信息的情况下独立地解码的在所述图像或帧中的空间上截然不同的区域。可在单个切片中编码每一图像或视频帧,或可在数个切片中编码每一图像或视频帧。在DSC中,经分配以编码每一切片的位数目可基本上恒定。切片可由多个块构成。

速率控制缓冲器

图3是展示用于对数据切片进行编码的示范性过程的曲线图。参考图3,垂直轴线305表示当前存储在速率缓冲器(例如,在图2A中的视频编码器20上的速率缓冲器150,或在图2B中的视频解码器30的速率缓冲器155)中的位数目,且水平轴线310表示时间。图3展示视频数据的第一切片315和视频数据的第二切片320的编码。第二切片320说明为定位于第一切片315下方仅为了展示在第一切片315的编码和第二切片320的编码期间发生的时间重叠,且并不希望指示第二切片320中的位数目小于第一切片315中的位数目。

为了说明性目的,将参考在图2A中的视频编码器20的速率缓冲器150描述本发明的各方面;然而将理解,这些方面也适用于图2B的视频解码器30或其组件,包含但不限于速率缓冲器155。

应注意速率缓冲器150可能够保持(即,存储)仅有限的位数目。如上文所论述,变量BufferMaxSize可表示速率缓冲器的总体容量。然而,为了防止速率缓冲器150处的下溢和/或上溢,将速率缓冲器150限制于比BufferMaxSize低的位数目是有利的。因此,可针对速率缓冲器150界定临时最大位层级(由变量tempBufferMaxSize和maxBufferBitsAtSliceEnd表示)以反映速率缓冲器150的所需容量。

在325,第一切片315的编码开始。在编码期间,位可存储在速率缓冲器150中,且先前存储到速率缓冲器150的位可从速率缓冲器150移除。举例来说,可发射(例如,由源装置12在链路16上)从速率缓冲器150移除的位。因此,由于将位存储到速率缓冲器150和/或从速率缓冲器150移除位的操作,速率缓冲器150中的总位数目可能在各种时间点增加和/或减小。在一些情况下,位可分组在一起用于编码、发射等。举例来说,位可作为像素(例如,每像素六个位)或块(例如,针对2x8块大小每块96位,其中每像素6位)而发射。

在330,所存储位的发射开始。发射可在延迟初始编码延迟周期之后开始,图3中指示为Init_enc_delay。Init_enc_delay可以块或像素来测量,且可为所选和/或固定值或可针对每一切片计算。在实施例中,Init_enc_delay可基于maxBufferBitsAtSliceEnd。举例来说,如果maxBufferBitsAtSliceEnd是4128且Init_enc_delay是以块来测量,那么Init_enc_delay可为4128除以每块的目标位数目(例如,96)。这可完成以使得在第一切片315已完全经解码之后缓冲器150可从第一切片315发射剩余块。

继续参考图3,在335,可完成第一切片315的编码。即,在335,缓冲器150中的位数目应当等于maxBufferBitsAtSliceEnd。举例来说,如果maxBufferBitsAtSliceEnd是4128,那么当第一切片315的编码完成时,缓冲器150中的位数目在事件335处应当等于4128。在340,第一切片315的发射完成。如图3中所展示,用于第一切片315的编码的结束335可对应于用于第二切片320的编码的开始,而用于第一切片315的发射的结束340对应于用于第二切片320的发射的开始350。Init_enc_delay可选择为使第一切片315的结束事件(例如,编码和发射的结束)与第二切片320的开始事件(例如,编码和发射的开始)对准。即,用于第二切片320的Init_enc_delay周期可对应于用于第一切片315的清空周期Flush_time。

在实施例中,可在Init_enc_delay之后以恒定速率从缓冲器150移除位。通过这样做,可确保在切片结束时缓冲器150中的位数目等于maxBufferBitsAtSliceEnd。此外,可在Flush_time期间以恒定速率从缓冲器150移除位。在第二切片320的Init_enc_delay周期结束之后从缓冲器150移除来自第二切片320的压缩块。

BF计算

假定maxBufferBitsAtSliceEnd小于BufferMaxSize,基于切片的多少已经编码而调整BF计算是有利的。图4说明用于在切片的译码期间调整BF的示范性方法。为了说明性目的,将参考在图2A中的视频编码器20的速率缓冲器150描述图4;然而将理解,图4的组件也适用于图2B的视频解码器30或其组件,包含但不限于速率缓冲器155。

为了计算BF,可界定变量tempBufferMaxSize,其指示在切片的特定点用于缓冲器150的临时最大位数目。举例来说,在切片结束时,tempBufferMaxSize等于maxBufferBitsAtSliceEnd。又一变量Offset指示在给定时间点BufferMaxSize的多少不可用。

图4中的曲线图展示沿着其垂直轴线的偏移405以及切片中的每一块沿着其水平轴线的位置(即,数目)。因为块可能按次序经译码,所以每一个别块的位置可等效于经译码的块的数目(下文为numBlocksCoded)。举例来说,numBlocksCoded的值的范围可为从0到切片中的块的总数,表示为NT(即,#blocksInSlice)。在实施例中,可在调整BF之前译码某一数目的块,表示为NP。即,虽然numBlocksCoded小于或等于NP,但偏移405等于零且tempBufferMaxSize等于BufferMaxSize,如在420指示。在实施例中,NP可提供阈值位置,以使得具有处于或低于NP的位置的块可具有等于BufferMaxSize的tempBufferMaxSize,而具有高于NP的位置的块可具有小于BufferMaxSize的tempBufferMaxSize。如图4中所展示,tempBufferMaxSize的值可随着高于NP的每一后续块线性地减小。即,具有在NP之后的位置的块可具有唯一相应tempBufferMaxSize,其大于切片中的任何后续块的tempBufferMaxSize。换句话说,具有在NP之后的位置的块可具有等于可调整值的tempBufferMaxSize,所述可调整值针对NP与NT之间的每一块递减,如图4中所说明。

继续参考图4,示范性切片中的块的总数目表示为NT。因此,当numBlocksCoded等于NT时,tempBufferMaxSize应当等于maxBufferBitsAtSliceEnd;换句话说,偏移405应当等于MaxBufferSize减maxBufferBitsAtSliceEnd。举例来说,如果maxBufferBitsAtSliceEnd是4128,那么tempBufferMaxSize在NT应当等于4128且偏移405应当等于MaxBufferSize减4128,如在426指示。

为了实现此情况,可在numBlocksCoded=NP与numBlocksCoded=NT之间以表示为BR的恒定速率调整tempBufferMaxSize和偏移405。NP与NT之间的差在图3中表示为NR。BR形成点(numBlocksCoded=NP,偏移=0)与(numBlocksCoded=NT,偏移=bufferMaxSize减maxBufferBitsAtSliceEnd)之间的线。举例来说,如果maxBufferBitsAtSliceEnd是4128,那么BR可经界定为(maxBufferSize-4128)/NR。沿着BR的示范性点的偏移405和tempBufferMaxSize的值在422和424说明。

以此方式,沿着BR的点可提供切片的个别块的对应tempBufferMaxSize。对应tempBufferMaxSize接着可用以计算切片中的每一块的个别BF。在实施例中,切片中的块可基于其在切片内的位置而界定。

在实施例中,上方等式1和2可用以针对切片内定位在处于或低于NP的块计算BF。举例来说,对于等于2的NP,可针对第一和第二块根据等式1和2计算BF。对于任何剩余块,可通过用tempBufferMaxSize代替等式1和/或2中的BufferMaxSize而计算BF。即,可使用下式计算BF:

BF=((BufferCurrentSize*100)/tempBufferMaxSize) (等式3)

或者使用:

BF=(((BufferCurrentSize*100)+(tempBufferMaxSize>>1))/tempBufferMaxSize) (等式4)

并且,可使用下式计算tempBufferMaxSize:

tempBufferMaxSize=BufferMaxSize–偏移 (等式5),

其中

偏移=BR*(numBlocksCoded-NP+1) (等式6)

且其中

BR=(BufferMaxSize-tempBufferMaxSize)/(numBlocksCoded-NP) (等式7)

总之,以下示范性代码可以用于计算BF:

用于提供CBR的实例流程图

参考图5,将描述用于确定缓冲器(例如,在图2A中的视频编码器20上的速率缓冲器150,或在图2B中的视频解码器30的速率缓冲器155)处的缓冲器满度的实例程序。为了说明性目的,将参考在图2A中的视频编码器20的速率缓冲器150描述图5的步骤。然而,图5中所说明的步骤可由视频编码器(例如,图2A中的视频编码器20)、视频解码器(例如,图2B中的视频解码器30)或其组件执行。为方便起见,将方法500描述为由视频编解码器(还简称为译码器)执行,所述视频编解码器可为视频编码器20、视频解码器30或另一组件。

方法500开始于框501。在框505处,过程500可涉及对数据切片内的数据块进行译码。在实施例中,译码可由处理器执行。如上文所描述,切片可为在不使用来自图像或帧中的区域中的其余者的信息的情况下独立地解码的在所述图像或帧中的空间上截然不同的区域。切片可由一或多个块和/或像素构成。

在框510处,过程500可涉及将对应于所述块的一或多个位存储在速率缓冲器150中。举例来说,块可经压缩且对应位可临时存储在速率缓冲器150中。在实施例中,个别位可在经译码之后添加到缓冲器150。在一替代实施例中,可同时将多个位添加到缓冲器150。

在框515处,过程500可涉及确定指示所述一或多个块相对于切片中的其它块的位置的信息。举例来说,可确定给定块是第三经译码块,且此块可经界定为所述切片的第三块。通过确定块的位置,可确定切片中经先前译码块的数目和/或切片中尚待译码的块的数目。在实施例中,确定指示所述位置的信息可由处理器执行。

在框520处,过程500可涉及确定在一或多个块位置处的BF。此确定可以用于速率控制。举例来说,参考图4,块的定位可指示与所述块相关联的沿着BR的点。为了确定此情况,可能必须知道可以用于计算BR的maxBufferBitsAtSliceEnd。沿着BR的相关联位置可指示块的对应tempBufferMaxSize。随后,可通过将BufferCurrentSize除以块的tempBufferMaxSize而计算BF。在实施例中,确定BF可由处理器执行。过程500在框525处结束。

在实施例中,可将tempBufferMaxSize调整整数值c。举例来说,可使用下式计算tempBufferMaxSize:

tempBufferMaxSize=BufferMaxSize-(BR*(numBlocksCoded-NP+c)) (等式8)

在一个实例中,c可等于0、1、-1或任何其它整数值。在另一实施例中,可将BR调整整数值d。举例来说,可使用下式计算BR

BR=(BufferMaxSize-maxBufferBitsAtSliceEnd)/(NT-NP+d) (等式9)

其中d可等于0、1、-1或任何其它整数值。也可以对上方等式的其它变量做出类似调整。

其它考虑

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

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

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

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

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

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

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