基于预处理误差数据来选择性地旁路帧内预测编码的制作方法

文档序号:11532832阅读:206来源:国知局
基于预处理误差数据来选择性地旁路帧内预测编码的制造方法与工艺



背景技术:

视频编码器可以用于在传输和/或存储之前对视频信号进行压缩,以便减少视频信号的带宽和/或存储器空间要求。例如,hevc(高效率视频编码(例如h.265seriesh:audiovisualandmultimediasystems,infrastructureofaudiovisualservices-codingofmovingvideo,itu电信标准化部门,2013年4月))可以将视频信号的每个帧划分为64x64像素元素/像素编码块(cb),递归地判断是将编码块处理为64x64编码单元(cu)还是将编码块切分为更小的编码单元(例如32x32、16x16等),并且选择试图使压缩代价(例如压缩比率、编码时间)最小化的编码模式。

编码模式通常可以是以来自其它帧的数据(例如运动矢量)为参考的帧间预测模式,或者以来自当前帧内的数据(例如邻近像素)为参考的帧内预测模式。当视频的场景尚未从先前帧改变得很多时,帧间预测可能是有效的。另一方面,当在当前帧中的场景已经从先前帧改变时,帧内预测可能是更有效的。判断是否切分编码块可以包括:递归地将帧内预测编码级和帧间预测编码级都应用于编码单元,以便基于这两种编码模式之间的相对压缩代价来确定适当的单元大小。然而,在每一轮切分判断时将帧内预测编码级应用于编码单元可能会不必要地增加编码时间,尤其是对于场景改变不是频繁的并且帧内预测不太可能被选择作为编码模式的视频信号来说。

附图说明

通过阅读以下说明书和所附权利要求并且通过参照附图,实施例的各个优点对于本领域技术人员将变得显而易见,在附图中:

图1是根据实施例的编码处理的示例的框图;

图2是根据实施例的选择性地旁路帧内预测编码级的方法的示例的流程图;

图3是根据实施例的逻辑架构的示例的框图;

图4是根据实施例的系统的示例的框图;

图5是根据实施例的具有导航控制器的系统的示例的框图;以及

图6是根据实施例的具有小形数(formfactor)的系统的示例的框图。

具体实施方式

图1示出用于媒体信号(例如视频信号、多媒体信号等)的编码处理,其中,预处理误差数据10用于关于递归切分判断14和/或编码模式选择16,选择性地旁路帧内预测编码级12。递归切分判断14通常可以包括:确定是将媒体信号帧的编码块24(例如64x64)处理为64x64编码单元还是将编码块24切分为更小的编码单元26(例如32x32、16x16、8x8等)。因此,所示的编码块24可以被编码为大小64x64的单个编码单元(cu),或者被切分为大小32x32的四个更小的cu。对于每个32x32cu,可以进行同一判断——即,是按原样对cu进行编码(即32x32)还是将其切分为大小16x16的四个更小的cu。在所示的示例中,最小cu大小是8x8。编码模式选择16通常可以包括:为考虑中的编码单元,在帧内预测编码模式与帧间预测编码模式之间进行选择。

因此,旁路帧内预测编码级12可以产生优化的编码路径20,该路径仅包含帧间预测编码级18,比包含帧内预测编码级12和帧间预测编码级18二者的标准编码路径22耗时少。实际上,帧内预测编码级12可能包括:在每一轮递归切分分析时检查多个(例如三十五个)不同帧内预测模式,这可能占据总编码时间中的相当量(例如30-50%)。因此,优化后的编码路径20可以使得媒体信号能够更快速地被压缩,而不显著增加编码比特的数量(例如,不会不利地影响压缩比率)。这种方法对于场景改变不是频繁的并且帧内预测不太可能被选择作为编码模式的媒体信号是特别有用的。

如将更详细讨论的,预处理误差数据10可以包括通过例如图形处理器的视频运动估计(vme)跳过和帧内检查(sic,其中,不执行跳过检查)功能所确定的帧内预测误差,其中,帧内预测误差可以是每16x16编码单元的单个绝对差之和(sad)值。如将更详细讨论的那样,sad值可以从16x16编码单元大小按比例放大(scaleup)或缩小(scaledown),以对应于正处理的编码单元的大小。单个sad值可以量化在编码单元的帧内预测预处理期间所遇到的误差量。

预处理误差数据10还可以包括通过例如(以整数像素精度)识别当前帧相对于参考帧的运动矢量的矢量定位器以及(例如以1/4像素精度)细化运动矢量以获得帧间预测误差的矢量修改器所确定的帧间预测误差。运动矢量通常可以提供关于媒体信号内的内容的定向移动信息。在一个示例中,矢量定位器是vme整数运动估计(ime)功能,矢量修改器是vme分数和双向预测细化(fbr,其中,不执行双向预测细化)功能,其中,帧间预测误差也可以是单个sad值。此外,vme功能可以是图形处理器的相对快的并且功率高效的固定功能组件,使得对编码时间的影响是最小的。

图2示出选择性地旁路帧内预测编码级的方法30。方法30可以实现为可执行软件中的模块,作为存储器(例如随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、固件、闪存等)的机器可读或计算机可读存储介质中所存储的一组逻辑指令,可以实现为可配置逻辑(例如可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld))中的模块,可以使用电路技术(例如专用集成电路(asic)、互补金属氧化物半导体(cmos)或晶体管-晶体管逻辑(ttl)技术)实现为固定功能逻辑硬件中的模块,或者其任何组合。在一个示例中,方法30实现于包括图形处理器(例如图形处理单元/gpu)和主处理器(例如中央处理单元/cpu)的混合编码方案中。

所示的处理方框32在图形处理器上为视频帧的编码单元确定帧内预测误差。方框34可以至少部分地基于帧内预测误差来在主处理器上确定是否旁路帧内预测编码级。在所示的示例中,在方框36,还为视频帧的编码单元确定帧间预测误差,其中,在方框34处的确定步骤可以考虑帧内预测误差和帧间预测误差二者。预处理级的最终结果可以是具有可比较的sad值的两个数组——每个16x16块一个:

intrasad[帧高度/16][帧宽度/16]

intersad[帧高度/16][帧宽度/16]

例如,方框34可以包括:确定帧内预测误差与帧间预测误差的比率(例如intrasad/intersad)。因此,如果该比率超过特定阈值,则所示的方框34旁路帧内预测编码级,并且仅在帧间预测编码级中处理编码单元(在方框40处)。否则,方框34可以确保除了帧间预测编码级(在方框40处)之外,还在帧内预测编码级中处理编码单元(在方框38处)。

方框34还可以包括:将帧内预测误差和帧间预测误差映射到不同大小化的编码单元。例如,对于编码单元大小nxn和左上像素坐标(x,y),这里,n=4、8、16、32或64,x≥0,x<帧宽度,y≥0,y<帧高度,编码单元可以被映射到16x16块,使得它覆盖一个、四个或十六个16x16块。然后,可以从intrasad数组和intersad数组中取得那些块的值。如果编码单元覆盖多于一个16x16块,则可以将对应的sad值求和。以下是可以进行该操作的伪代码的示例。

intrasad=0

intersad=0

for(y=0;y<(n+15)/16;y++){

for(x=0;x<(n+15)/16;x++){

intrasad_acc=intrasad_acc+intrasad[y/16+y][x/16+x]

intersad_acc=intersad_acc+intersad[y/16+y][x/16+x]

}

)

可以基于帧间预测编码级(如果没有被旁路,则还基于帧内预测编码级)的结果,在方框42进行递归切分判断,其中,如果确定较小的编码单元大小是适当的,则所示的方框44进行切分(例如,将64x64编码单元转换为四个32x32编码单元),并且主处理器编码器可以重复方框34处的确定步骤。如果所示的方框42确定切分不是适当的,则可以在方框46进行编码模式选择。如上所述,编码模式选择可以包括:在帧内预测编码模式与帧间预测编码模式之间进行选择。

图3示出包括具有图形处理器52和主处理器54的逻辑架构的半导体管芯50。所示的逻辑架构使用混合编码方案对媒体信号(例如视频和/或多媒体内容)进行压缩。图形处理器52可以包括帧内预测预处理器56,用于为视频帧的编码单元确定帧内预测误差(例如sad值),其中,主处理器54可以包括具有帧内预测编码级58a的编码器58(58a-58d)。编码器58可以至少部分地基于帧内预测误差,关于递归切分判断或编码模式选择中的一个或多个而选择性地旁路帧内预测编码级58a。在所示的示例中,当帧内预测编码级58a被旁路时,仅编码器58的帧间预测编码级58b被用于对编码单元进行编码。

在一个示例中,图形处理器52还包括帧间预测预处理器60(60a、60b),用于为编码单元确定帧间预测误差(例如sad值),其中,可以进一步基于帧间预测误差来选择性地旁路帧内预测编码级58a。在此情况下,编码器58还可以包括比率监测器58c,其确定帧内预测误差与帧间预测误差的比率,其中,如果该比率超过阈值(例如1.5),则可以旁路帧内预测编码级58a。此外,帧间预测预处理器60可以包括:矢量定位器60a,用于识别这些帧相对于参考帧的运动矢量;以及矢量修改器60b,用于细化运动矢量,以获得帧间预测误差。如上所述,帧内预测误差和帧间预测误差可以包括sad值。在一个示例中,预处理器56、60实现为固定功能vme模块。此外,编码器58还可以包括单元大小调整器58d,用于将帧内预测误差和帧间预测误差映射到不同大小化的编码单元。

现在参照图4,示出计算系统62,其中,系统62可以是移动平台(例如膝上型设备、移动互联网设备(mid)、个人数字助理(pda)、媒体播放器、成像设备、可穿戴计算机等)、任何智能设备(例如智能电话、智能平板、智能tv(电视)等)或其任何组合的一部分。系统62也可以是固定平台(例如个人计算机(pc)、服务器、工作站等)的一部分。所示的系统62包括半导体管芯50,其具有带集成存储器控制器(imc,未示出)的主处理器54,imc提供对系统存储器64的存取,系统存储器64可以包括例如双数据率(ddr)同步动态随机存取存储器(sdram(例如ddr3sdramjedec标准jesd79-3c,2008年4月))模块。系统存储器64的模块可以例如被合并到单列直插存储器模块(simm)、双列直插存储器模块(dimm)、小外形dimm(sodimm)等中。

主处理器54还可以包括一个或多个处理器内核(未示出),其中,每个内核可以完全通过取指单元、指令解码器、一级(li)缓存、执行单元等运作。替换地,主处理器54可以经由将系统62中的每一个组件互连的前端总线或点对点构造与imc的片外变形(又称为北桥)进行通信。主处理器54也可以执行操作系统(os,未示出)。

所示的主处理器54经由总线与输入/输出(io)模块66(又称为南桥)进行通信。imc/主处理器54和io模块66有时称为芯片组。主处理器54也可以可操作地通过io模块66和网络控制器68经由网络端口连接到网络(未示出)。因此,网络控制器68可以提供平台外的通信功能,以用于各种目的,例如,有线通信或无线通信,包括但不限于蜂窝电话(例如宽带码分多址、w-cdma(全球移动通信系统/umts)、cdma2000(is-856/is-2000)等)、wi-fi(无线保真,例如电气与电子工程师协会/ieee802.11,2007年版本)、蓝牙(例如ieee802.15.1-2005、无线个域网)、wimax(例如ieee802.16-2004)、全球定位系统(gps)、扩频(例如900mhz)以及其它射频(rf)电话目的。io模块66也可以与显示器70进行通信,以提供视频、图像和其它内容的视觉输出/呈现。网络控制器68可以与io模块66进行通信,以提供对用户接口设备(未示出)(例如键盘、鼠标等)的支持,以便允许用户与系统62进行交互并且从系统62感知信息。

io模块66也可以具有内部控制器(未示出),例如usb(通用串行总线,例如usb规范2.0、usb开发者论坛)控制器、串行ata(sata(例如sata修订版3.0规范,2009年5月27日、sata国际组织/sata-io))控制器、高清晰度音频控制器,以及其它控制器。所示的io模块66还耦合到一个或多个大容量存储设备72,其可以包括硬盘驱动器、只读存储器(rom)、光盘、闪存等。

所示的系统62还包括图形处理器52,其连同主处理器54和io模块66一起集成到半导体管芯50中(例如,在片上系统/soc配置中)。替换地,图形处理器52可以耦合到专用图形存储器(未示出),其中,专用图形存储器可以包括例如gddr(图形ddr)或ddrsdram模块或适合于支持图形渲染的任何其它存储器技术。图形处理器52和图形存储器也可以安装在图形/视频卡上,其中,图形处理器52可以经由图形总线(例如pci高速图形(peg,例如外设组件互连/pci高速x16图形150w-atx规范1.0,pci特殊兴趣小组)总线或加速图形端口(例如agpv3.0接口规范,2002年9月)总线)与主处理器54进行通信。图形卡和/或图形处理器52可以集成到系统主板上,被配置作为主板上的分立式卡,等。

大容量存储设备72可以被配置为:存储与媒体信号关联的一个或多个视频帧。如上所述,图形处理器52可以包括帧内预测预处理器,用于为视频帧的编码单元确定帧内预测误差。此外,主处理器54可以包括具有帧内预测编码级的编码器,其中,编码器至少部分地基于帧内预测误差,关于递归切分判断或编码模式选择中的一个或多个而选择性地旁路帧内预测编码级。在一个示例中,图形处理器还包括帧间预测预处理器,用于为编码单元确定帧间预测误差。在此情况下,可以进一步基于帧间预测误差来选择性地旁路帧内预测编码级。

图5示出系统700的实施例。在实施例中,系统700可以是媒体系统,但是系统700不限于该情形。例如,系统700可以合并到个人计算机(pc)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视、智能设备(例如智能电话、智能平板或智能电视)、移动互联网设备(mid)、传信设备、数据通信设备等中。

在实施例中,系统700包括平台702,其耦合到呈现视觉内容的显示器720。平台702可以从内容设备(例如内容服务设备730或内容传送设备740或其它类似内容源)接收视频比特流内容。包括一个或多个导航特征的导航控制器750可以用于与例如平台702和/或显示器720进行交互。以下更详细地描述这些组件中的每一个。

在实施例中,平台702可以包括芯片组705、处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电装置718(例如网络控制器)的任何组合。芯片组705可以提供处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电装置718之间的相互通信。例如,芯片组705可以包括能够提供与存储714的相互通信的存储适配器(未描绘)。

处理器710可以实现为复杂指令集计算机(cisc)或精简指令集计算机(risc)处理器、x86指令集兼容处理器、多核或任何其它微处理器,或者中央处理单元(cpu)。在实施例中,处理器710可以包括双核处理器、双核移动处理器等。

存储器712可以实现为易失性存储器设备,例如但不限于随机存取存储器(ram)、动态随机存取存储器(dram)或静态ram(sram)。

存储714可以实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池备份sdram(同步dram)和/或网络可访问的存储设备。在实施例中,例如,存储714可以包括用于当包括多个硬盘驱动器时为有价值的数字媒体增加存储性能增强保护的技术。

图形子系统715可以执行对图像(例如静止图像或视频)的处理,以便进行显示。例如,图形子系统715可以是图形处理单元(gpu)或视觉处理单元(vpu)。因此,图形子系统715可以包括已经讨论的图形处理器52(图3)。此外,处理器710可以被配置为:包括已经讨论的主处理器54(图3)。模拟或数字接口可以用于以通信方式耦合图形子系统715和显示器720。例如,接口可以是高清晰度多媒体接口(hdmi)、mipi(移动产业处理器接口)、wigig(无线吉比特联盟)、显示端口、无线hdmi和/或无线hd顺应技术中的任一种。图形子系统715可以集成到处理器710或芯片组705中。图形子系统715可以是以通信方式耦合到芯片组705的单机卡。

在此所描述的图形和/或视频处理技术可以实现于各种硬件架构中。例如,图形和/或视频功能可以集成在芯片组内。替换地,可以使用分立式图形和/或视频处理器。作为又一实施例,可以通过通用处理器(包括多核处理器)来实现图形和/或视频功能。在另一实施例中,可以在消费者电子设备中实现这些功能。

无线电装置718可以是包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置的网络控制器。这些技术可以涉及跨越一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(wlan)、无线个域网(wpan)、无线城域网(wman)、蜂窝网络以及卫星网络。在跨越这些网络的通信中,无线电装置718可以根据任何版本的一个或多个适用标准来操作。

在实施例中,显示器720可以包括任何电视类型的监视器或显示器。显示器720可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类电视的设备,和/或电视。显示器720可以是数字的和/或模拟的。在实施例中,显示器720可以是全息显示器。此外,显示器720可以是可以接收视觉投影的透明表面。这些投影可以传送各种形式的信息、图像和/或对象。例如,这些投影可以是用于移动增强现实(mar)应用的视觉覆盖。在一个或多个软件应用716的控制下,平台702可以在显示器720上显示用户界面722。

在实施例中,例如,内容服务设备730可以受任何国家服务、国际服务和/或独立服务主管,并且因此可经由互联网对平台702进行访问。内容服务设备730可以耦合到平台702或显示器720。平台702和/或内容服务设备730可以耦合到网络760,以将媒体信息传递(例如,发送和/或接收)出入网络760。内容传送设备740也可以耦合到平台702和/或显示器720。

在实施例中,内容服务设备730可以包括有线电视盒、个人计算机、网络、电话、启用互联网的设备或能够传送数字信息和/或内容的电器,以及能够经由网络760或以直接方式在内容提供商与平台702和/或显示器720之间单向地或双向地传递内容的任何其它类似设备。应理解,内容可以经由网络760单向地和/或双向地传递出入系统700中的任一组件以及内容提供商。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

内容服务设备730接收内容,例如包括媒体信息、数字信息和/或其它内容的有线电视节目。内容提供商的示例可以包括任何有线或卫星电视、或无线电、或互联网内容提供商。所提供的示例并非意图限制实施例。

在实施例中,平台702可以从具有一个或多个导航特征的导航控制器750接收控制信号。例如,控制器750的导航特征可以用于与用户界面722进行交互。在实施例中,导航控制器750可以是定点设备,其可以是允许用户将空间(例如连续和多维)数据输入到计算机中的计算机硬件组件(具体地说,人机接口设备)。很多系统(例如图形用户接口(gui)以及电视和监视器)允许用户使用物理手势控制数据并将其提供给计算机或电视。

控制器750的导航特征的移动可以通过显示器上所显示的指针、光标、聚焦环或其它视觉指示符的移动而得以反映在显示器(例如显示器720)上。例如,在软件应用716的控制下,位于导航控制器750上的导航特征可以被映射为用户界面722上所显示的虚拟导航特征。在实施例中,控制器750可以不是单独的组件,而是集成到平台702和/或显示器720中。然而,实施例不限于在此所示或所描述的要素或情形。

在实施例中,驱动器(未示出)可以包括例如当启用时使用户能够在初始引导之后通过触摸按钮即刻打开和关闭平台702(比如电视)的技术。当平台被“关闭”时,程序逻辑可以允许平台702将内容流送到媒体适配器或其它内容服务设备730或内容传送设备740。此外,芯片组705可以包括例如关于5.1环绕声音音频和/或高清晰度7.1环绕声音音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在实施例中,图形驱动器可以包括外设组件互连(pci)高速图形卡。

在各个实施例中,系统700中所示的任何一个或多个组件可以是集成的。例如,平台702和内容服务设备730可以是集成的,或者平台702和内容传送设备740可以是集成的,或者平台702、内容服务设备730和内容传送设备740可以是集成的。在各个实施例中,平台702和显示器720可以是集成单元。例如,显示器720和内容服务设备730可以是集成的,或者显示器720和内容传送设备740可以是集成的。这些示例并非意图限制实施例。

在各个实施例中,系统700可以实现为无线系统、有线系统或二者的组合。当实现为无线系统时,系统700可以包括适合于通过无线共享介质进行通信的组件和接口,例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等。无线共享介质的示例可以包括无线频谱(例如rf频谱等)的一部分。当实现为有线系统时,系统700可以包括适合于通过有线通信介质进行通信的组件和接口,例如输入/输出(i/o)适配器、用于将i/o适配器与对应的有线通信介质连接的物理连接器、网络接口卡(nic)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括导线、线缆、金属引线、印制电路板(pcb)、背板、开关构造、半导体材料、双绞线导线、同轴线缆、光纤等。

平台702可以建立一个或多个逻辑或物理信道,以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以指代表示意图用于用户的内容的任何数据。内容的示例可以包括例如来自语音转换、视频会议、流送视频、电子邮件(“email”)消息、语音邮件消息、文字数字符号、图形、图像、视频、文本等的数据。来自语音转换的数据可以是例如话音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指代表示意图用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于将媒体信息路由通过系统,或吩咐节点以预定方式处理媒体信息。然而,实施例不限于图5中所示或所描述的要素或情形。

如上所述,可以按变化的物理风格或形数来体现系统700。图6示出可以体现系统700的小形数设备800的实施例。在实施例中,例如,设备800可以实现为具有无线能力的移动计算设备。移动计算设备可以指代具有处理系统和移动功率源或电源(例如,一个或多个电池)的任何设备。

如上所述,移动计算设备的示例可以包括个人计算机(pc)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视、智能设备(例如智能电话、智能平板或智能电视)、移动互联网设备(mid)、传信设备、数据通信设备等。

移动计算设备的示例还可以包括被布置为人所穿戴的计算机(例如腕部计算机、手指计算机、耳环计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、衣物计算机以及其它可穿戴计算机)。在实施例中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然可以通过示例的方式,以实现为智能电话的移动计算设备来描述一些实施例,但是可以理解,同样可以使用其它无线移动计算设备来实现其它实施例。实施例并非限于在该上下文中。

如图6所示,设备800可以包括外壳802、显示器804、输入/输出(i/o)设备806以及天线808。设备800也可以包括导航特征812。显示器804可以包括用于显示适合于移动计算设备的信息的任何合适的显示单元。i/o设备806可以包括任何合适的i/o设备,以用于将信息输入移动计算设备中。i/o设备806的示例可以包括字母数字键盘、数字键区、触摸板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等。信息也可以通过麦克风的方式输入到设备800中。这种信息可以由语音识别设备来数字化。实施例并非限于该上下文中。

附录和示例:

示例1可以包括一种用于对媒体信号进行编码的系统,包括:大容量存储设备,用于:存储与媒体信号关联的视频帧;图形处理器,包括帧间预测预处理器,用于:为所述视频帧的编码单元确定帧内预测误差;和主处理器,包括具有帧内预测编码级的编码器,所述编码器用于:至少部分地基于所述帧内预测误差,关于递归切分判断或编码模式选择中的一个或多个而选择性地旁路所述帧内预测编码级。

示例2可以包括如示例1所述的系统,其中,所述图形处理器还包括帧间预测预处理器,用于:为所述编码单元确定帧间预测误差,并且其中,还基于所述帧间预测误差来选择性地旁路所述帧内预测编码级。

示例3可以包括如示例2所述的系统,其中,所述主处理器还包括比率监测器,用于:确定所述帧内预测误差与所述帧间预测误差的比率,并且其中,如果所述比率超过阈值,则旁路所述帧内预测编码级。

示例4可以包括如示例2所述的系统,其中,所述帧内预测误差和所述帧间预测误差包括绝对差之和(sad)值。

示例5可以包括如示例2所述的系统,其中,所述帧间预测预处理器包括:矢量定位器,用于:识别所述帧相对于参考帧的运动矢量;和矢量修改器,用于:细化所述运动矢量,以获得所述帧间预测误差。

示例6可以包括如示例2至5中任一项所述的系统,其中,所述编码器包括单元大小调整器,用于:将所述帧内预测误差和所述帧间预测误差映射到不同大小化的编码单元。

示例7可以包括一种减少编码时间的方法,包括:在图形处理器上,为视频帧的编码单元确定帧内预测误差;以及在主处理器上,至少部分地基于所述帧内预测误差,关于递归切分判断或编码模式选择中的一个或多个而选择性地旁路帧内预测编码级。

示例8可以包括如示例7所述的方法,还包括:在所述图形处理器上,为所述编码单元确定帧间预测误差,其中,还基于所述帧间预测误差来选择性地旁路所述帧内预测编码级。

示例9可以包括如示例8所述的方法,还包括:确定所述帧内预测误差与所述帧间预测误差的比率,其中,如果所述比率超过阈值,则旁路所述帧内预测编码级。

示例10可以包括如示例8所述的方法,其中,所述帧内预测误差和所述帧间预测误差包括绝对差之和(sad)值。

示例11可以包括如示例8所述的方法,其中,确定所述帧间预测误差包括:识别所述帧相对于参考帧的运动矢量;以及细化所述运动矢量,以获得帧间预测误差。

示例12可以包括如示例8至11中任一项所述的方法,还包括:在所述主处理器上,将所述帧内预测误差和所述帧间预测误差映射到不同大小化的编码单元。

示例13可以包括至少一种计算机可读存储介质,包括一组指令,所述指令当由包括图形处理器和主处理器的计算系统执行时使所述计算系统:在所述图形处理器上,为视频帧的编码单元确定帧内预测误差;以及在所述主处理器上,至少部分地基于所述帧内预测误差,关于递归切分判断或编码模式选择中的一个或多个而选择性地旁路帧内预测编码级。

示例14可以包括如示例13所述的至少一种计算机可读存储介质,其中,所述指令当被执行时使所述计算系统:在所述图形处理器上,为所述编码单元确定帧间预测误差,并且其中,还基于所述帧间预测误差来选择性地旁路所述帧内预测编码级。

示例15可以包括如示例14所述的至少一种计算机可读存储介质,其中,所述指令当被执行时使所述计算系统:确定所述帧内预测误差与所述帧间预测误差的比率,并且其中,如果所述比率超过阈值,则旁路所述帧内预测编码级。

示例16可以包括如示例14所述的至少一种计算机可读存储介质,其中,所述帧内预测误差和所述帧间预测误差包括绝对差之和(sad)值。

示例17可以包括如示例14所述的至少一种计算机可读存储介质,其中,所述指令当被执行时进一步使所述计算系统:识别所述帧相对于参考帧的运动矢量;以及细化所述运动矢量,以获得所述帧间预测误差。

示例18可以包括如示例14至17中任一项所述的至少一种计算机可读存储介质,其中,所述指令当被执行时使所述计算系统:在所述主处理器上,将所述帧内预测误差和所述帧间预测误差映射到不同大小化的编码单元。

示例19可以包括一种用于减少编码时间的装置,包括:图形处理器,包括帧内预测预处理器,用于:为视频帧的编码单元确定帧内预测误差;和主处理器,包括具有帧内预测编码级的编码器,所述编码器用于:至少部分地基于所述帧内预测误差,关于递归切分判断或编码模式选择中的一个或多个而选择性地旁路所述帧内预测编码级。

示例20可以包括如示例19所述的装置,其中,所述图形处理器还包括帧间预测预处理器,用于:为所述编码单元确定帧间预测误差,并且其中,还基于所述帧间预测误差来选择性地旁路所述帧内预测编码级。

示例21可以包括如示例20所述的装置,其中,所述主处理器还包括比率监测器,用于:确定所述帧内预测误差与所述帧间预测误差的比率,并且其中,如果所述比率超过阈值,则旁路所述帧内预测编码级。

示例22可以包括如示例20所述的装置,其中,所述帧内预测误差和所述帧间预测误差包括绝对差之和(sad)值。

示例23可以包括如示例20所述的装置,其中,所述帧间预测预处理器包括:矢量定位器,用于:识别所述帧相对于参考帧的运动矢量;和矢量修改器,用于:细化所述运动矢量,以获得所述帧间预测误差。

示例24可以包括如示例20至23中任一项所述的装置,其中,所述编码器包括单元大小调整器,用于:将所述帧内预测误差和所述帧间预测误差映射到不同大小化的编码单元。

示例25可以包括一种用于减少编码时间的装置,包括:用于执行如示例7至12中任一项所述的方法的模块。

在此所描述的技术可以因此为不太可能被帧内预测编码的那些编码单元(cu)移除帧内预测编码级。在一个示例中,图形处理器上的预先存在的vme功能用于在帧编码之前执行对每个帧的相对快速的预处理。然后,预处理的结果可以由主处理器编码器用来关于特定块判断彻底检查帧内预测是否是适当的。完全跳过帧内预测编码级可以显著减少编码时间。

可以使用硬件元件、软件元件或二者的组合来实现各个实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现实施例可以根据任何数量的因素(例如期望的计算速率、功率等级、热量容限、处理周期预算、输入数据率、存储器资源、数据总线速度以及其它设计或性能约束)而变化。

可以通过表示处理器内的各个逻辑的机器可读介质上所存储的代表性指令来实现至少一个实施例的一个或多个方面,所述指令当由机器读取时使机器产生执行在此所描述的技术的逻辑。称为“ip核”的这些表示可以存储在有形机器可读介质上并且提供给各个消费者或制造场所,以加载到实际上生成逻辑或处理器的制造机器中。

实施例可应用于与所有类型的半导体集成电路(“ic”)芯片一起使用。这些ic芯片的示例包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(pla)、存储器芯片、网络芯片等。此外,在一些附图中,以线条来表示信号导体线路。一些可以是不同的以指示更多构成信号路径,具有标号以指示构成信号路径,和/或在一个或多个端处具有箭头以指示主要信息流方向。然而,不应以限制的方式来理解该情况。相反,可以结合一个或多个示例性实施例来使用这种添加的细节,以有助于更容易地理解电路。任何所表示的信号线路,无论是否具有附加信息,都可以实际上包括可以在多个方向上行进并且可以通过任何合适类型的信号方案(例如通过差分对、光纤线路和/或单端线路所实现的数字线路或模拟线路)实现的一个或多个信号。

已经给出了示例大小/模型/值/范围,但是实施例不限于此。由于制造技术(例如光刻)随着时间变得成熟,因此期待可以制造更小大小的器件。此外,在附图内可能或可能没有示出至ic芯片和其它组件的公知电源/接地连接,以简化说明和讨论,并且不掩盖实施例的特定方面。此外,可以通过框图形式示出布置,这是为了避免掩盖实施例,并且也鉴于以下事实:关于这些框图布置的实现方式的细节高度依赖于将实现实施例的平台(即,这些细节是本领域技术人员熟知的)。在为了描述示例实施例而阐述特定细节(例如电路)的情况下,对本领域技术人员应当显而易见的是,可以在没有这些特定细节的情况下,或者用这些特定细节的变形,来实现实施例。因此,这些描述看作是说明性而非限制性的。

可以例如使用机器或有形计算机可读介质或制造品来实现一些实施例,介质或制造品可以存储指令或指令集,指令或指令集如果由机器执行则可以使机器执行根据实施例的方法和/或操作。这种机器可以包括例如任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并且可以使用硬件和/或软件的任何合适的组合来实现。机器可读介质或制造品可以包括例如任何合适类型的存储器单元、存储器设备、存储器制造品、存储器介质、存储设备、存储制造品、存储介质和/或存储单元,例如存储器、可移除或不可移除介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、压缩盘只读存储器(cd-rom)、可记录压缩盘(cd-r)、可重写压缩盘(cd-rw)、光盘、磁介质、磁光介质、可移除存储器卡或盘、各种类型的数字多功能盘(dvd)、带、盒等。指令可以包括使用任何合适的高级语言、低级语言、面向对象语言、可视语言、编译语言和/或解释编程语言实现的任何合适类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等。

除非另外具体声明,否则应理解,诸如“处理”、“计算”、“运算”、“确定”等的术语指代计算机或计算系统或类似电子计算设备的动作和/或处理,它们将表示为计算系统的寄存器和/或存储器内的物理量(例如电子)的数据操控和/或转换为类似地表示为计算系统的存储器、寄存器或其它这类信息存储、传输或显示设备内的物理量的其它数据。实施例并非限于该上下文中。

术语“耦合”可以在此用于指代考虑中的各组件之间的任何类型的关系(直接或间接),并且可以应用于电气连接、机械连接、流体连接、光连接、电磁连接、机电连接或其它连接。此外,术语“第一”、“第二”等可以在此仅用于有助于讨论,并且不含有特定时间或先后意义,除非另外声明。

根据前面的描述,本领域技术人员应理解,可以通过各种形式来实现实施例的广泛技术。因此,虽然已经结合实施例的特定示例描述了实施例,但是实施例的真实范围并非受限于此,因为在研究附图、说明书和所附权利要求之后,其它修改对于本领域技术人员将变得显而易见。

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