用于提供复杂度平衡熵编码的方法和装置的制作方法

文档序号:7885007阅读:170来源:国知局
专利名称:用于提供复杂度平衡熵编码的方法和装置的制作方法
技术领域
各种实现方式主要地涉及电子设备视频编码和解码技术,并且更具体地涉及一种用于提供复杂度平衡熵编码的方法和装置。
背景技术
现代通信时代已经带来有线和无线网络的巨大扩张。计算机网络、电视网络和电话网络正在经历消费者需求所激发的前所未有的技术扩张。无线和移动联网技术已经在提供信息传送的更多灵活性和即时性之时解决有关消费者需求。当前和将来的联网技术继续通过扩展移动电子设备的能力而又保持这样的设备的成本和尺寸相对较低来促进信息传送的简单性和用户的便利性。由于移动电子设备的无所不在性质,所以所有年龄和教育水平的人士现在利用移动终端以与其他个人或者联系人通信、接收服务和/或共享信息、媒体和其它内容。因此,移动设备也正在变成用户用来相互通信和消费内容的流行机制。虽然移动电子设备关于获取和表现内容、实现通信和提供服务的能力继续提高,但是这样的设备为移动并且市场驱使希望保持这样的设备相对小这样的事实不可避免地引入关于电池寿命和处理资源限制的挑战。尽管电池寿命继续提高,但是复杂度和处理负荷扩张步伐继续急进。因此,将移动电子设备大量用于上文描述的服务和功能可能通快速消耗电池功率并且最终迫使用户对电池频繁再充电或者限制它们的使用,这使用户体验降级。因而,为了增加用户满意度,希望以可能最高效方式维持高能力水平。

发明内容
因此提供一种用于实现在视频编码和解码区域中提供高效处理的方法、装置和计算机程序产品。在一个示例性实施方式中,可以运用复杂度平衡熵编码以便在保持就复杂度而言的成本相对低之时提供关于视频编码和解码的高能力水平。


已经采用一般性的措词描述了各种实施方式,现在将参照未必按比例绘制的以下附图:图1是可以运用一个示例性实施方式的移动终端的示意框图;图2是根据一个示例性实施方式的无线通信系统的示意框图;图3图示了根据一个示例性实施方式的用于提供复杂度增强的熵编码的装置的框图;图4图示了如下图形,该图形示出一个示例性实施方式所提供的复杂度与比特率的关系;图5是根据一个示例性实施方式的用于提供复杂度平衡熵编码的另一示例性方法的流程图6图示了与示例性编码过程关联的结构;图7图示了示例性解码过程的结构;以及图8图示了如下图形,该图形示出用于常规编码器的复杂度与比特率的关系。
具体实施例方式现在下文将参照其中示出一些、但是并非所有实施方式的附图更完全地描述一些实施方式。实际上,各种实施方式可以用许多不同形式来实现而不应被解释为限于这里阐述的实施方式;相反,提供这些实施方式使得本公开内容将满足适用的法律要求。相似标号全篇指代相似单元。如这里所用,术语“数据”、“内容”、“信息”和相似术语可以可互换地使用,以指代能够根据实施方式发送、接收和/或存储的数据。因此,使用任何这样的术语不应视为限制各种实施方式的精神实质和范围。此外,如这里所用,术语“电路”指代(a)仅硬件的电路实现方式(例如在模拟电路和/或数字电路中的实现方式);(b)电路与计算机程序产品的组合,该计算机程序产品包括一个或者多个计算机可读存储器上存储的软件和/或固件指令,这些计算机可读存储器一起工作以使装置执行这里描述的一个或者多个功能;以及(C)如下电路,比如微处理器或者微处理器的一部分,即使软件或者固件在物理上不存在,这些电路仍然需要该软件或者固件用于操作。“电路”的这一定义适用于这里、包括在任何权利要求中对这一术语的所有使用。作为又一示例,如这里所用,术语“电路”也包括如下实现方式,该实现方式包括一个或者多个处理器和/或其部分以及附带软件和/或固件。作为另一示例,如这里所用,“电路”也例如包括基带集成电路或者用于移动电话的应用处理器集成电路或者在服务器、蜂窝网络设备、其它网络设备和/或其它计算设备中的相似集成电路。如这里定义的那样,指代非瞬态物理存储介质(例如易失性或者非易失性存储器设备)的“计算机可读存储介质”可以区别于指代电磁信号的“计算机可读传输介质”。可以在移动终端上运用一些实施方式以便更高效地执行视频编码和解码。然而,可以可替换地在包括固定终端的其它电子设备上实现示例性实施方式。这样,虽然复杂度减少的视频编码和解码可以结合在资源受约束的环境(例如移动终端)中的操作特别有用,但是应当理解这样的复杂度减少也可以在其中资源不受约束的其它环境中有用。视频编解码器通常包括编码器和解码器。可以将编码器运用于将视频输入变换成适合于存储和/或传输的压缩表示。可以将解码器运用于将压缩的视频表示解压回成可查看形式。在许多情形中,编码器从原视频序列丢弃一些信息以便以更紧凑形式(例如在更低比特率)表示视频。典型的混合视频编解码器(例如ITU-T H.263和H.264)可以在两个阶段中对视频信息进行编码。在第一阶段中,可以例如通过运动补偿(例如发现和指示先前编码的视频帧之一中的与正在编码的块密切对应的区域)或者通过空间手段(例如使用在将以指定方式编码的块周围的像素值)来预测某个画面区域(或者“块”)中的像素值。在第二阶段中,对预测误差(即在预测的像素块与原像素块之间的差值)编码。第二阶段通常包括使用指定的变换(例如离散余弦变换(DCT)或者其变体)来变换像素值的差值、量化系数并且对量化的系数熵编码。通过改变量化过程的保真度,编码器可以控制在像素表示的准确性(画面质量)与所得编码视频表示的大小(文件大小或者传输比特率)之间的平衡。例如,在图6中图示了与上文描述的编码过程关联的结构。典型的解码器通过应用与编码器相似的用于形成像素块的预测表示的预测手段(例如使用由编码器创建的并且在压缩表示中存储的运动或者空间信息)并且应用预测误差解码来重建输出视频。预测误差解码可以是预测误差编码的逆操作,该逆操作在空间像素域中恢复量化的预测误差信号。在应用预测和预测误差解码之后,解码器可以合计预测和预测误差信号(例如像素值)以形成输出视频帧。解码器(和编码器)也可以在传递输出视频用于显示和/或存储它作为用于视频序列中的即将到来的帧的预测参考之前应用附加滤波以提高它的质量。在图7中图示与上文描述的解码过程关联的结构。在典型的视频编解码器中,用与每个运动补偿图像块关联的运动矢量指示运动信息。每个运动矢量表示待编码(在编码器侧中)或者解码(在解码器侧中)的画面中的图像块和先前编码或者解码的画面之一中的预测源块的移位。为了有效地表示运动矢量,通常关于块专属预测运动矢量对运动矢量差分编码。在典型的视频编解码器中,以预定义方式、比如通过计算相邻块的编码或者解码运动矢量的中值来创建预测的运动矢量。在典型的视频编解码器中,首先用变换内核(比如DCT)对运动补偿之后的预测残值进行变换,然后对其进行编码,因为在残值之中可能有一些相关性。因此,变换可以在一些情况下帮助减少这一相关性并且提供更高效的编码。典型的视频编码器利用拉格朗日成本函数以发现最优编码模式(例如所需宏块模式和关联运动矢量)。这一种类的成本函数使用加权矢量λ以将由于有损编码方法所致的(确切或者估计)图像失真与为了表示图像区域中的像素值而需要的(确切或者估计)信息量联系在一起:C=D+ λ R(式 I)其中C是待最小化的拉格朗日成本,D是在考虑模式和运动矢量时的图像失真(例如均方误差),并且R是为了表 示所需数据以在解码器中重建图像块而需要的位数(包括用于表示候选运动矢量的数据量)。许多视频编解码器定义将在不同使用情况下使用的编码工具(“简档”)子集。这一方式具有的益处在于允许不同设备实施最适合于预计使用和在实施平台上的可用资源的编码工具。这一方式的缺点在于可能损失在编解码器的不同简档之间的互操作性。通用的视频编解码器,比如H.264/AVC,在该标准的不同简档中定义具有不同计算要求的编码工具。这一定义可能造成如下情形,其中相同标准的实现方式如果它们支持标准的不同简档则可能未必相互互操作。在H.264/AVC中具有多个简档的一个重要原因是该标准的熵编码部分,其中一些简档仅支持低复杂度的基于上下文自适应可变长度编码的方式(CAVLC),而一些其它简档也支持上下文自适应二进制算术编码方式(CABAC)。CABAC支持不是低复杂度简档的实现方式所必需的,因为CABAC方法的计算要求作为所利用的比特率的函数大量增加。CABAC方式中的DCT变换系数的编码和解码可能在现实实现方式中引起问题,因为该操作的计算要求如图8中所示作为视频比特率的函数显著增加。本发明的一些实施方式可以提供如下编码策略的实施,该编码策略在统一熵编码设计中利用可变长度编码和算术编码。可变长度编码方面可以操作用于保持复杂度相对低,而算术编码方面可以帮助维持相对高的编码效率。一些示例性实施方式的统一熵编码设计可以运用关于针对不同 语法元素定义的两个定义的类别操作的单个熵编码介质。这样,通过对语法元素不同地分类,可以对不同符号类别不同地操作以便以更低复杂度的实现方式实现相对更高的效率。作为一个示例性实施方式的图1图示了将受益于各种实施方式的移动终端10的框图。然而应当理解,如图所示和下文描述的移动终端10仅举例说明可以从各种实施方式中受益的一个类型的设备、因此不应视为限制实施方式的范围。这样,许多类型的移动终端、比如便携数字助理(PDA)、移动电话、寻呼机、移动电视、游戏设备、膝上型计算机、相机、视频记录器、音频/视频播放器、无线电、定位设备(例如全球定位系统(GPS)设备)或者前述示例性的任何组合以及其它类型的语音和文字通信系统可以容易运用各种实施方式。移动终端10可以包括与发射器14和接收器16可操作的通信的一个天线12 (或者多个天线12)。移动终端10还可以包括分别向发射器14提供信号和从接收器16接收信号的装置(比如控制器20)或者其它处理设备。信号包括根据适用蜂窝系统的空中接口标准的信令信息并且也包括用户话音、接收的数据和/或用户生成的数据。就这一点而言,移动终端10能够用一个或者多个空中接口标准、通信协议、调制类型和接入类型操作。举例而言,移动终端10能够根据多个第一代、第二代、第三代和/或第四代通信协议等中的任何通信协议操作。例如移动终端10可以能够根据第二代(2G)无线通信协议IS-136 (时分多址(TDMA))、GSM (全球移动通信系统)和IS-95 (码分多址(CDMA))或者根据第三代(3G)无线通信标准、比如通用移动电信系统(UMTS)、CDMA2000、宽带CDMA (WCDMA)和时分同步CDMA (TD-SCDMA)、根据3.9G无线通信协议、比如E-UTRAN、根据第四代(4G)无线通信协议等操作。作为备选(或者附加地),移动终端10可以能够根据非蜂窝通信机制操作。例如,移动终端10可以能够根据无线局域网(WLAN)或者下文结合图2描述的其它通信网络通信。在一些实施方式中,控制器20可以包括为了实施移动终端10的音频和逻辑功能而需要的电路。例如,控制器20可以包括数字信号处理器设备、微处理器设备以及各种模数转换器、数模转换器和其它支持电路。在这些设备之间根据它们的相应能力分配移动终端10的控制和信号处理功能。控制器20因此也可以包括用于在调制和传输之前对消息和数据卷积编码和交织的功能。控制器20还可以包括内部音码器并且可以包括内部数据调制器。另外,控制器20可以包括用于操作可以在存储器中存储的一个或者多个软件程序的功能。例如,控制器20可以能够操作连通程序、比如常规Web浏览器。连接性程序然后可以允许移动终端10例如根据无线应用协议(WAP)、超文本传送协议(HTTP)等传输和接收Web内容、比如基于位置的内容和/或其它网页内容。移动终端10也可以包括用户接口,该用户接口包括都耦合到控制器20的输出设备,比如常规耳机或者扬声器24、振铃器22、麦克风26、显示器28以及用户输入接口。允许移动终端10接收数据的用户输入接口可以包括允许移动终端10接收数据的多个设备中的任何设备,比如小键盘30、触摸显示器(未示出)或者其它输入设备。在包括小键盘30的实施方式中,小键盘30可以包括常规键(0-9)和有关键(#、*)以及用于操作移动终端100的其它硬键和软键。可替换地,小键盘30可以包括常规QWERTY小键盘布置。小键盘30也可以包括具有关联功能的各种软键。附加地或者可替换地,移动终端10可以包括接口设备,比如操纵杆或者其它用户输入接口。移动终端10还包括用于电池34,比如振动电池包,该电池用于向为了操作移动终端10而需要的各种电路供电以及可选地提供机械振动作为可检测输出。
移动终端10还可以包括用户识别模块(UH038。UIM38通常是具有内置处理器的存储器设备。ΠΜ38可以例如包括用户识别模块(SM)、通用集成电路卡(UICC)、通用用户识别模块(USM)、可拆卸用户识别模块(R-UM)等。UIM38通常存储与移动用户有关的信元。除了 ΠΜ38之外,移动终端10可以配备有存储器。例如移动终端10可以包括易失性存储器40,比如易失性随机存取存储器(RAM),该易失性存储器包括用于暂时存储数据的高速缓存区域。移动终端10也可以包括可以被嵌入的和/或可以可拆卸的其它非易失性存储器42。存储器可以存储移动终端10用来实施移动终端10的功能的多条信息和数据中的任何信息和数据。例如,存储器可以包括能够唯一地标识移动终端10的标识符,比如国际移动设备标识αΜΕΙ)代码。在一些实施方式中,移动终端10还可以包括用于执行视频编码和解码操作的视频编码器/解码器48。视频编码器/解码器48可以被配置为通过将视频输入变换成压缩的视频数据来对数据编码和通过将压缩的视频数据转换回成可查看形式来对数据解码。图2是根据一个示例性实施方式的无线通信系统的示意性框图。现在参照图2,提供将从各种实施方式中受益的一种类型的系统的图示。如图2中所示,根据一个示例性实施方式的系统包括通信设备(例如移动终端10)并且在一些情况下也包括可以各自能够与网络50通信的附加通信设备。系统的通信设备可以能够经由网络50与网络设备通信或者相互通信。在一个示例性实施方式中,网络50包括能够经由对应的有线和/或无线接口相互通信的各种不同节点、设备或者功能的汇集。这样,图2的图示应当理解为系统的某些单元的总览的示例而不是系统或者网络50的囊括或者详细视图。虽然并非必需,但是在一些实施方式中,网络50可以能够支持根据多个第一代(1G)、第二代(2G)、2.5G、第三代(3G)、
3.5G、3.9G、第四代(4G)移动通信协议、长期演进(LTE)等中的任何一个或者多个协议的通 目。一个或者多个通信终端(比如移动终端10)和其它通信设备能够经由网络50相互通信并且各自可以包括用于向基站点传输信号和从基础站点接收信号的一个或者多个天线,该基础站点可以例如是作为一个或者多个蜂窝或者移动网络的一部分的基站或者是可以耦合到数据网络、比如局域网(LAN)、城域网(MAN)和/或广域网(WAN)(比如因特网)的接入点。其它设备、比如处理设备或者单元(例如个人计算机、服务器计算机等)又可以经由网络50耦合到移动终端10。通过将移动终端10和其它设备直接或者间接连接到网络50,可以使移动终端10和其它设备能够例如根据包括超文本传送协议(HTTP)等的许多通信协议相互通信和/或与网络通信以由此分别实现移动终端和其它通信设备的各种通信或者其它功能。另外,虽然在图2中未示出,但是移动终端10可以例如根据射频(RF)、蓝牙(BT)、红外(IR)或者多个不 同是有线或者无线通信技术中的任何通信技术通信,这些通信技术包括LAN、无线LAN (WLAN)、全球微波接入互操作性(胃1獻乂)、11 1、超宽带(而8)、1让代6技术等。这样,可以使移动终端10能够通过许多不同接入机制中的任何接入机制与网络50和其它通信设备通信。例如可以支持移动接入介质、比如宽带码分多址(W-CDMA)、CDMA2000、全球移动通信系统(GSM)、通用分组无线电服务(GPRS)等以及无线接入机制、比如WLAN、WiMAX等和固定接入机制、比如数字用户线(DSL)、线缆调制解调器、以太网等。
图3图示了可以在移动终端10处被用来主控或者以别的方式促进一个示例性实施方式的操作的装置的框图。现在将参照图3描述一个示例性实施方式,在该图中显示用于提供复杂度平衡熵编码的装置的某些单元。可以例如在移动终端10上运用图3的装置。然而可以可替换地在多种其它移动和固定设备(如比如上文列举的设备中的任何设备)上实现该装置。另外应当注意,下文描述的设备或者单元可以并非必需,因此可以在某些实施方式中被省略。 现在参照图3,提供了用于提供复杂度平衡熵编码的装置。该装置可以包括处理器70、用户接口 72、通信接口 74和存储器设备76或者以别的方式与处理器70、用户接口 72、通信接口 74和存储器设备76通信。在一些实施方式中,处理器70 (和/或辅助处理器70或者以别的方式与处理器70关联的协处理器或者任何其它处理电路)可以经由用于在装置的部件之间传递信息的总线与存储器设备76通信。存储器设备76可以例如包括一个或者多个易失性和/或非易失性存储器。换言之,例如存储器设备76可以是包括门的电子存储设备(例如计算机可读存储介质),这些门被配置为存储机器(例如计算设备、比如处理器70)可取回的数据(位)。存储器设备76可以被配置为存储用于使装置能够根据本发明的一个示例性实施方式执行各种功能的信息、数据、应用、指令等。例如存储器设备76可以被配置为缓冲用于由处理器70处理的输入数据。附加地或者可替换地,存储器设备76可以被配置为存储用于由处理器70执行的指令。在一些实施方式中,该装置可以是被配置为运用本发明的一个示例性实施方式的移动终端(例如移动终端10)或者固定通信设备或者计算设备。然而,在一些实施方式中,可以将该装置实现为芯片或者芯片集。换言之,该装置可以包括一个或者多个物理封装(例如芯片),该物理封装包括结构组件(例如基板)上的材料、部件和/或接线。结构组件可以提供用于在其上包括的部件电路的物理强度、尺寸节约和/或电互作用限制。该装置因此可以在一些情况下被配置为在单个芯片上实施本发明的一个实施方式或者实施为“片上系统”。这样,在一些情况下,芯片或者芯片集可以构成用于执行用于提供这里描述的功能的一个或者多个操作的装置。可以采用多个不同方式实现处理器70。例如,可以实现处理器70为各种处理装置,比如协同处理器、微处理器、控制器、数字信号处理器(DSP)、有或者无附带DSP的处理单元或者各种其它处理电路中的一个或者多个处理装置,这些其它处理电路包括集成电路、如比如ASIC (专用集成电路)、FPGA (现场可编程门阵列)、微控制器单元(MCU)、硬件加速器、专用计算机芯片等中的一个或者多个处理装置。这样,处理器70可以包括被配置为独立执行的一个或者多个处理核。多核处理器可以在单个物理封装内实现多处理。附加地或者替选地,处理器70可以包括经由总线串接被配置为实现独立执行指令、流水线和/或多线程的一个或者多个处理器。在一个示例性实施方式中,处理器70可以被配置为执行存储器设备76中存储的或者处理器70以别的方式可访问的指令。可替换地或者附加地,处理器70可以被配置为执行硬编码功能。这样,无论是通过硬件还是软件方法或者通过其组合来配置,处理器70可以代表(例如在电路中物理地实现的)如下实体,该实体能够在被相应地配置之时根据本发明的一个实施方式执行操作。因此例如当实现处理器70为ASIC、FPGA等时,处理器70可以是用于进行这里描述的操作的、具体配置的硬件。可替换地,作为另一示例,当实现处理器70为软件指令的执行器时,指令可以具体配置处理器70以在执行指令时执行这里描述的算法和/或操作。然而在一些情况下,处理器70可以是具体设备(例如移动终端或者网络设备)的处理器,该设备被适配用于通过如下指令进一步配置处理器70来运用本发明的一个实施方式,这些指令用于执行这里描述的算法和/或操作。处理器70可以包括被配置为支持处理器70的操作的时钟、算术逻辑单元(ALU)和逻辑门以及其它部件。同时,通信接口 74可以是在硬件、软件或者硬件与软件的组合中实现的任何装置,比如设备或者电路,该装置被配置为从/向与装置通信的网络和/或任何其它设备或者模块接收和/或传输数据。就这一点而言,通信接口 74可以例如包括用于实现与无线通信网络通信的一个天线(或者多个天线)以及支持硬件和/或软件。在一些环境中,通信接口74可以可替换地支持或者也支持有线通信。这样,例如通信接口 74可以包括用于支持经由线缆、数字用户线(DSL)、通用串行总线(USB)或者其它机制的通信调制解调器和/或其它硬件/软件。用户接口 72可以与处理器70通信以接收对在用户接口 72的用户输入的指示和/或向用户提供可听、可视、机械或者其它输出。这样,用户接口 72可以例如包括键盘、鼠标、操纵杆、显不器、触屏、软键、麦克风、扬声器或者其它输入/输出机制。就这一点而言,例如处理器70可以包括被配置为控制用户接口的诸如扬声器、振铃器、麦克风、显示器等一个或者多个单元的至少一些功能的用户接口电路。处理器70和/或包括处理器70的用户接口电路可以被配置为通过在处理器70可访问的存储器(例如存储器设备76等)上存储的计算机程序指令(例如软件和/或固件)控制用户接口的一个或者多个元素的一个或者多个功倉泛。在一个示例性实施方式中,处理器70可以被实现为、包括或者控制熵编码引擎80和分类器82。这样,在一些实施方式中,处理器70可以视为引起、指引或者控制如这里描述的分别归于熵编码引擎80和分类器82的各种功能的执行或者出现。熵编码引擎80和分类器82可以各自为任何如下装置,比如设备或者电路,该装置根据软件操作或者以别的方式在硬件或者硬件与软件的组合中被实现(例如处理器70在软件控制之下操作、实现处理器70为被具体配置用于执行这里描述的操作ASIC或者FPGA或者其组合),由此配置该设备或者电路以分别执行如这里描述的熵编码引擎80和分类器82的对应功能。因此,在其中运用软件的示例中,执行软件的设备或者电路(例如在一个示例中为处理器70)形成与这样的装置关联的结构。分类器82可以被配置为将可以在给定的位流(例如与正在处理的视频内容关联的位流)中出现的语法元素划分成类别。在一个示例性实施方式中,第一类别包括相对不频繁出现的符号,并且第二类别包括相对频繁出现的符号。因而,例如可以针对符号定义阈值出现频率,并且可以确定预计比阈值频率更频繁出现的那些符号在第二类别中,而可以确定预计比阈值频率更少频繁出现的那些符号在第一类别中。在一些情况下,可以基于在特定系统中允许的最高比特率的符号出现频率确定阈值频率。这样,在第一类别中的符号可以不仅仅甚至以允许的最高比特率相对不频繁地出现。同时,第二类别可以包括出现率随着视频位流的总比特率增加而显著增加的符号。在分类器82已经完成分类之后,熵编码引擎80可以基于分类器82定义的类别执行运用不同处理的二值化和/或熵编码操作。例如,对于第一类别,可以使用选择的二值化技术(例如CABAC或者Pipe/V2V (可变长度到可变长度)方式)来实现二值化,继而为具有可变二进制概率的上下文更新和熵编码。用于第二类别中的符号的语法可以模仿传统可变长度编码并且可以通过以用于二进制O和I 二者的百分之五十概率为目标二值化符号来执行。对于残值系数的情况,可以与游程长度编码、继而为霍夫曼编码或者使用一些其它更高级方法来生成二值化的符号。在以用于二进制O和I的目标概率对符号进行二值化之后,可以针对所得二进制数绕过上下文更新级。然后用百分之五十概率执行熵编码。在一些示例中,可以针对CABAC引擎实施绕过编码模式以实现熵编码。对于解码,一些示例性实施方式可以使用与运用的编码机制对应的过程来处理第一类别符号。例如,如果使用与CABAC或者Pipe/V2V有关的方式来执行编码,则可以针对第一类别符号实施用于每个方式的对应解码方式。同时,属于第二类别的语法元素可以运用与第一类别符号相同的第二编码引擎(例如熵编码引擎80)而不同在于可以关于这些符号的解码运用静态百分之五十二进制概率(例如通过运用CABAC引擎的绕过编码模式)。由于未针对属于第二类别的语法元素执行上下文更新操作,所以可以减少针对编解码器(例如视频编码器/解码器48)采取的编码/解码操作的总计算要求。就这一点而言,例如总计算要求可以在某些限制内,这些限制可以保持复杂度相对低而又仍然针对给定的复杂度限制实现相对高的压缩性能。这样,在一些情况下,第一类别编码可以被构造用于提供相对高的效率,而第二类别编码可以被构造用于提供更低复杂度(例如通过绕过上下文更新)。为了构造第一类别,可以将与四元树编码结构、变换和预测单位有关的信息与如下信息一起考虑,这些信息与预测有关、比如预测模式、运动矢量数据和帧内预测数据。第二类别构造可以考虑残值变换系数数据。虽然可以根据如上文描述的复杂度平衡熵编码对给定的位流的每个语法元素进行编码和解码,但是一个示例性实施方式的方法和装置可以根据复杂度平衡熵编码对一些语法元素编码并且根据其它编码方案(比如算术编码方案)对其它语法元素编码。因此,如果希望这样则可以与算术或者其它编码方案联合或者组合利用本发明的一个示例性实施方式的复杂度平衡熵编码。可以在视频编码器/解码器48处提供分类器82和熵编码引擎80的实例。可替换地,分类器82和熵编码引擎80的实例可以被分离地提供,但是可以可用于辅助视频编码器/解码器48的视频编码和解码操作。在一些操作模式中,可以二值化量化的DCT系数,并且可以利用与用于其余数据的熵编码机制相同的熵编码机制(例如熵编码引擎80)来用相等概率(例如用于二进制O的百分之五十和用于二进制I的百分之五十)对所得二进制数编码。可以通过任何选择的机制(例如在H.264/AVC中的CABAC)对数据编码。在例如与CABAC的二值化比较时,可以以所得二进制数具有相等概率为目标不同地执行DCT系数的二值化。因而在向DCT系数所产生的二进制数分配相等概率时,可以完全绕过上下文自适应算术编码的最复杂部分(例如更新用于不同二进制上下文的概率)。这可以使与对应符号的熵编码关联的计算复杂度少得多地依赖于比特率并且甚至在相对高速率允许实现低复杂度的操作。图4图示了用于一个示例性实施方式的复杂度与比特率的关系的示例。虚线90可以指示用于低复杂度的操作模式的所需最大水平。如图4中所示,通过运用对语法元素分类、然后对每个类别不同地编码以减少复杂度的一个示例性实施方式,通过在针对一些符号绕过用于DCT系数数据的概率估计之时利用上下文自适应算法编码来将如DCT系数数目指示的计算复杂度保持于所需最大水平以下。这样,图4与如图8中所示的用于仅利用上下文自适应算术编码的常规系统的、作为视频比特率的函数的计算复杂度形成对照。在图8中,DCT系数的数目随着比特率增加至如下点而更高并且线性地增加,在该点处超过用于低复杂度的操作模式的所需最大复杂度水平(同样是虚线90所示)。可以用各种不同方式实施本发明的示例性实施方式。作为示例,可以利用针对DCT系数编码定义的码字或者经由其它机制来实现数据符号的二值化。也可以运用不同上下文自适应熵编码机制(例如CABAC、Pipe/V2V等)。也可以针对具有恒定概率的低复杂度的处理对不同数据单位分类。在一些情况下,可以定义低复杂度的处理类别中的恒定概率为相等概率(如上文描述的那样)。然而,在一些备选实施方式中,可以定义概率使得用不相等概率对一个或者多个二进制数进行编码。用于低复杂度的处理和高复杂度的处理的数据分类可以根据不同变量、比如比特率而变化。在一些实施方式中,可以以块、分片、画面或者序列级别,发送语法元素的分类。在一些情况下,也可以以块、分片、画面或者序列级别,发送关于是否将用高效率或者低效率熵编码对对应语法元素熵编码的指示。本发明的一些实施方式因此可以实现控制视频编解码器的复杂度而又仍然在不同计算复杂度要求之下实现相对高的压缩效率水平。就这一点,通过基于语法元素的相对出现频率对它们分类,可以关于较不频繁出现的符号执行更复杂操作,并且可以关于较为频繁出现的符号简化或者省略复杂操作。图5是根据本发明的一个示例性实施方式的方法和程序产品的流程图。将理解,与包括一个或者多个计算机程序指令的软件的执行关联的各种装置、比如硬件、固件、处理器、电路和/或其它设备可以实施流程图的每块和在流程图中的块组合。例如,计算机程序指令可以实现上文描述的过程中的一个或者多个过程。就这一点而言,实现上文描述的过程的计算机程序指令可以由用户终端的存储器设备存储并且由用户终端中的处理器执行。如将理解的那样,可以向计算机或者其它可编程装置(例如硬件)上加载任何这样的计算机程序指令以产生机器,从而在计算机或者其它可编程装置上执行的指令创建用于实施在流程图的块中指定的功能的装置。也可以在非瞬态计算机可读存储器中存储这些计算机程序指令,该存储器可以指引计算机或者其它可编程装置以特定方式工作,从而在计算机可读存储器中存储的指令产生实施在流程图的块中指定的功能的制造品。计算机程序指令也可以被加载到计算机或者其它可编程装置上以使一系列操作在计算机或者其它可编程装置上执行以产生计算机实施的过程,从而在计算机或者其它可编程装置上执行的指令实施在流程图的块中指定的功能。因而,流程图的块支持用于执行指定功能的装置的组合和用于执行指定功能的操作的组合。也将理解,流程图的一个或者多个块和在流程图中的块组合可以由执行指定功能的基于专用硬件的计算机系统实施或者由专用硬件与计算机指令的组合实施。就这一点而言,如图5中所示的根据本发明的一个实施方式的一种方法可以包括:在操作110基于视频内容的语法元素在视频内容中的出现频率对语法元素进行分类。分类可以包括定义至少第一符号类别和第二符号类别。该方法还可以包括在操作120响应于上下文更新执行与第一类别对应的符号的熵编码并且在操作130在与第二类别对应的符号的熵编码之前绕过上下文更新。
在一些实施方式中,可以如上文描述的那样修改或者进一步增强上述操作中的某些操作。另外,在一些实施方式中,也可以包括附加可选操作(在图5中用虚线示出这些附加可选操作的示例)。应当理解,下文描述的每个修改、可选添加或者增强可以独自或者在与这里描述的特征之中的任何其它特征的组合中与上述操作包含在一起。就这一点而言,例如该方法还可以包括在操作125在绕过上下文更新之前执行以预定概率为目标的符号二值化。在一个示例性实施方式中,执行以预定概率为目标的符号二值化可以包括执行以用于每个二进制数的均匀或者不均匀概率为目标的二值化。该方法还可以包括在操作140处以块、分片、画面或者序列级别,发送用于语法元素的高效率或者低复杂度的熵编码。在一些情况下,该方法可以附加地或者可替换地包括在操作100处以块、分片、画面或者序列级别,发送语法元素的分类。在一个示例性实施方式中,对语法元素分类可以包括将具有在阈值以下的出现频率的符号分类为第一类别符号并且将具有在阈值以上的出现频率的符号分类为第二类别符号。在一个示例性实施方式中,执行与第一类别对应的符号的熵编码还可以包括在二值化数据符号之后执行熵编码。在一个示例性实施方式中,用于执行上述图5的方法的一种设备可以包括被配置为执行上文描述的操作(100-140)中的一些或者每个操作的处理器(例如处理器70)。处理器可以例如被配置为通过执行硬件实施的逻辑功能、执行存储的指令或者执行用于执行每个操作的算法来执行操作(100-140)。可替换地,该设备可以包括用于执行上文描述的操作中的每个操作的装置。就这一点而言,根据一个示例性实施方式,用于执行操作100-140的装置的示例可以包括例如分类器82和熵编码引擎80中的相应装置。附加地或者可替换地,至少借助处理器70可以被配置为控制分类器82和熵编码引擎80或者甚至被实现为分类器82和熵编码引擎80这样的事实,处理器70和/或用于如上文描述的那样执行指令或者执行用于处理信息的算法的设备或者电路也可以形成用于执行操作100-140的示例性
>j-U ρ α
装直。 根据一个示例性实施方式的装置的示例可以包括至少一个处理器和包括计算机程序代码的至少一个存储器。至少一个存储器和计算机程序代码可以被配置为与至少一个处理器一起使该装置执行操作100-140 (具有或者不具有在任何组合中的上文描述的修改和增强)。根据一个示例性实施方式的一种计算机程序产品的示例可以包括至少一个计算机可读存储介质,该至少一个计算机可读存储介质具有在其中存储的计算机可执行程序代码部分。计算机可执行程序代码部分可以包括用于执行操作100-140 (有或者无在任何组合中的上文描述的修改和增强)的程序代码指令。受益于前文描述和相关附图中呈现的教导,这些发明所涉及的领域中的技术人员将想到这里阐述的本发明的许多修改和其它实施方式。因此将理解,本发明将不限于公开的具体实施方式
,并且修改和其它实施方式旨在于包含于所附权利要求的范围内。另外,虽然前文描述和关联附图在单元和/或功能的某些示例性组合的背景中描述一些示例性实施方式,但是应当理解,备选实施方式可以提供单元和/或功能的不同组合而未脱离所附权利要求的范围。就这一点而言,例如如可以在一些所附权利要求中阐述的那样也设想与上文明确描述的单元和/或功能组合不同的单元和/或功能组合。虽然这里运用具体术语,但是仅在通用和描述意义上而并非出于限制的目的来使用它们。
权利要求
1.一种方法,包括: 基于视频内容的多个语法元素在所述视频内容中的出现频率将所述语法元素分类为第一类别和第二类别; 对与所述第一类别的语法元素对应并且已经进行过上下文更新的符号进行熵编码;以及 对与所述第二类别的语法元素对应并且已经绕过上下文更新的符号进行熵编码。
2.根据权利要求1所述的方法,还包括使得以块、分片、画面或者序列级别,发送所述语法元素的分类。
3.根据权利要求1或者2所述的方法,还包括在绕过所述上下文更新之前,执行与所述第二类别的语法元素对应的所述符号的二值化。
4.根据权利要求3所述的方法,其中执行二值化包括执行二值化以便将预定概率作为目标。
5.根据权利要求1-4中的任一项权利要求所述的方法,还包括使得以块、分片、画面或者序列级别,发送所述熵编码的指示。
6.根据权利要求1-5中的任一项权利要求所述的方法,其中对所述多个语法元素进行分类包括基于所述语法元素的所述出现频率与预定义阈值的关系对所述多个语法元素进行分类。
7.根据权利要求1-6中的任一项权利要求所述的方法,还包括在对与所述第一类别的语法元素对应的所述符号进行熵编码之前,执行与所述第一类别的语法元素对应的所述符号的二值化。
8.一种装置,包括至少一个处理器和包括计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置为与所述处理器一起使所述装置至少: 基于视频内容的多个语法元素在所述视频内容中的出现频率将所述语法元素分类为第一类别和第二类别; 对与所述第一类别的语法元素对应并且已经进行过上下文更新的符号进行熵编码;以及 对与所述第二类别的语法元素对应并且已经绕过上下文更新的符号进行熵编码。
9.根据权利要求8所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述处理器一起使所述装置使得以块、分片、画面或者序列级别,发送所述语法元素的分类。
10.根据权利要求8或者9所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述处理器一起使所述装置在绕过所述上下文更新之前,执行与所述第二类别的语法元素对应的符号的二值化。
11.根据权利要求10所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述处理器一起使所述装置通过执行二值化以便将预定概率作为目标来执行二值化。
12.根据权利要求8-11中的任一项权利要求所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述处理器一起使所述装置使得以块、分片、画面或者序列级别,发送所述熵编码的指示。
13.根据权利要求8-12中的任一项权利要求所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述处理器一起使所述装置通过基于所述语法元素的所述出现频率与预定义阈值的关系对所述多个语法元素进行分类来对所述多个语法元素进行分类。
14.根据权利要求8-13中的任一项权利要求所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述处理器一起使所述装置在对与所述第一类别的语法元素对应的符号进行熵编码之前,执行与所述第一类别的语法元素对应的所述符号的二值化。
15.一种计算机程序产品,包括至少一个非瞬态计算机可读存储介质,所述至少一个非瞬态计算机可读存储介质中存储有计算机可执行程序代码指令,所述计算机可执行程序代码指令包括用于执行以下操作的程序代码指令: 基于视频内容的多个语法元素在所述视频内容中的出现频率将所述语法元素分类为第一类别和第二类别; 对与所述第一类别的语法元素对应并且已经进行过上下文更新的符号进行熵编码;以及 对与所述第二类别的语法元素对应并且已经绕过上下文更新的符号进行熵编码。
16.根据权利要求15所述的计算机程序产品,其中所述计算机可执行程序代码指令还包括用于使得以块、分片、画面或者序列级别,发送所述语法元素的分类的程序代码指令。
17.根据权利要求15或者16所述的计算机程序产品,其中所述计算机可执行程序代码指令还包括用于在绕过所述上下文更新之前,执行与所述第二类别的语法元素对应的符号的二值化的程序代码指令。
18.根据权利要求17所述的计算机程序产品,其中用于执行二值化的程序代码指令包括用于执行二值化以便将预定概率作为目标的程序代码指令。
19.根据权利要求15-18中的任一项权利要求所述的计算机程序产品,其中所述计算机可执行程序代码指令还包括用于使得以块、分片、画面或者序列级别,发送所述熵编码的指示的程序代码指令。
20.根据权利要求15-19中的任一项权利要求所述的计算机程序产品,其中用于对所述多个语法元素进行分类的所述程序代码指令包括用于基于所述语法元素的所述出现频率与预定义阈值的关系对所述多个语法元素进行分类的程序代码指令。
21.根据权利要求15-20中的任一项权利要求所述的计算机程序产品,其中所述计算机可执行程序代码指令还包括用于在对与所述第一类别的语法元素对应的所述符号进行熵编码之前,执行与所述第一类别的语法元素对应的所述符号的二值化的程序代码指令。
22.—种设备,包括: 用于基于视频内容的多个语法元素在所述视频内容中的出现频率将所述语法元素分类为第一类别和第二类别的装置; 用于对与所述第一类别的语法元素对应并且已经进行过上下文更新的符号进行熵编码的装置;以及 用于对与所述第二类别的语法元素对应并且已经绕过上下文更新的符号进行熵编码的装置。
23.根据权利要求22所述的设备,还包括用于使得以块、分片、画面或者序列级别,发送所述语法元素的分类的装置。
24.根据权利要求22或者23所述的设备,还包括用于在绕过所述上下文更新之前执行与所述第二类别的语法元素对应的所述符号的二值化的装置。
25.根据权利要求24所述的设备,其中用于执行二值化的装置包括用于执行二值化以便将预定概率作为目标的装置。
26.根据权利要求22-25中的任一项权利要求所述的设备,还包括用于使得以块、分片、画面或者序列级别,发送所述熵编码的指示的装置。
27.根据权利要求22-26中的任一项权利要求所述的设备,其中用于对所述多个语法元素进行分类的装置包括用于基于所述语法元素的所述出现频率与预定义阈值的关系对所述多个语法元素进行分类的 装置。
28.根据权利要求22-27中的任一项权利要求所述的设备,还包括用于在对与所述第一类别的语法元素对应的所述符号进行熵编码之前执行与所述第一类别的语法元素对应的所述符号的二值化的装置。
全文摘要
提供一种用于实现通过运用复杂度平衡熵编码以便通过以成本有效方式提供关于视频编码和解码的高能力级别来在视频编码和解码区域中提供高效处理的方法、装置和计算机程序产品。一种方法包括基于视频内容的多个语法元素在视频内容中的出现频率将语法元素分类为第一类别和第二类别。该方法也对与第一类别的语法元素对应并且已经进行过上下文更新的符号进行熵编码。另外,该方法对与第二类别的语法元素对应并且已经绕过上下文更新的符号进行熵编码。也提供一种对应装置和计算机程序产品。
文档编号H04N7/26GK103181167SQ201180043883
公开日2013年6月26日 申请日期2011年7月27日 优先权日2010年7月28日
发明者J·莱内玛, K·雨居尔, A·O·阿拉皮罗 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1