内容自适应的高精度宏块速率控制的制作方法

文档序号:7978664阅读:297来源:国知局
内容自适应的高精度宏块速率控制的制作方法
【专利摘要】方法和系统可以包括一种装置,所述装置具有用于为与视频信号相关联的比特流分配宏块比特预算集合的硬件逻辑单元。所述硬件逻辑单元还可以在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小。在一个例子中,所述硬件逻辑单元根据所述宏块比特预算集合来调整所述比特流的一个或多个量化参数。
【专利说明】内容自适应的高精度宏块速率控制
【背景技术】
[0001]传统的速率控制算法可以被设计为通过使用用于在视频比特流的帧和/或图片层级上执行量化参数(QP)调整的硬件逻辑单元来实现目标视频比特速率。当存在场景变化或内容切换时,由于与场景变化相关联的内容复杂度改变,可能面临压缩的视频比特速率的急剧上升或下降。虽然一种方法可以是在第二次编码中使用新的QP来对视频帧进行重新编码,但这样的解决方案会造成对于诸如视频会议之类的实时应用来说可能是不可接受的延迟。
【专利附图】

【附图说明】
[0002]通过阅读下面的说明书和所附的权利要求书,并且通过引用下面的附图,对于本领域技术人员来说,本发明的实施例的各个优点将变得显而易见,其中:
[0003]图1是根据实施例的对视频信号进行编码的方法的例子的流程图;
[0004]图2是根据实施例的宏块比特预算集合的例子的绘图;
[0005]图3是根据实施例的、使用区域来实现宏块比特预算集合的方法的例子的流程图;
[0006]图4是根据实施例的计算平台的例子的框图;
[0007]图5是根据实施例的、具有导航控制器的系统的例子的框图;
[0008]图6是根据实施例的、具有小外形规格的系统的例子的框图。
【具体实施方式】
[0009]实施例可以涉及一种计算机实现的方法,其中,宏块比特预算集合被分配用于与视频信号相关联的比特流。所述方法还可以规定:在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小。
[0010]实施例也可以包括一种装置,所述装置具有用于为与视频信号相关联的比特流分配宏块比特预算集合的硬件逻辑单元。所述硬件逻辑单元还可以在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小。
[0011]此外,实施例可以包括一种具有图形处理器的系统,所述图形处理器具有用于为与视频信号相关联的比特流分配宏块比特预算集合的硬件逻辑。所述硬件逻辑还可以在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小。在一个例子中,所述系统还包括耦合至所述图形处理器的硬驱动器。
[0012]其它实施例可以包括一种计算机实现的方法,其中,基于宏块像素方差、总体高频幅度、残余误差以及先前经编码的比特数量中的至少一项来确定针对与视频信号相关联的比特流的宏块复杂度。所述方法还可以规定:基于静态位置、所述比特流的内容以及外部动态输入中的至少一项来确定所述比特流的重要区域。可以基于所述宏块复杂度和所述重要区域来为所述比特流分配宏块比特预算集合。所述方法可以包括:生成宏块大小估计以确定所述比特流的累计(running)比特和,其中,可以在所述累计比特和与所述宏块比特预算集合之间执行比较。此外,所述方法可以规定:基于所述比较来选择更新策略,以及在一次性编码配置中基于所选择的更新策略来控制所述比特流的帧大小。
[0013]现在转到图1,示出了对视频信号进行编码(例如,压缩)的方法10。方法10可以在使用诸如(举例来说)专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术、或其任意组合之类的电路技术的多种多样的计算系统的固定功能硬件中来实现。示出的处理框12规定:为与视频信号相关联的比特流分配宏块比特预算集合。如将更为详细地所讨论的,在一次性编码配置中,可以基于宏块复杂度信息、重要区域信息等等来分配所述宏块比特预算集合。此外,所述宏块比特预算集合可以包括:一个或多个预算,所述一个或多个预算可用于在宏块层级上跟踪并控制所述经编码的比特流的帧大小。具体地说,在框14,在所述一次性编码配置中可以基于所述宏块比特预算集合来控制所述比特流的帧大小。
[0014]图2示出了用于实现针对与视频比特流相对应的运行比特和18的宏块比特预算集合16(16a-16e)的一种方法。累计比特和18可以表示包含诸如视频会议内容之类的实时内容的视频信号的经编码的/经压缩的比特的累积数量。在示出的例子中,比特预算16随着经处理的宏块数量增加而增加,其中,目标宏块比特预算16a表示在时间上所预算的编码比特的目标数量。此外,最大宏块比特预算16b可以表示在时间上所预算的编码比特的最大数量,而最小宏块比特预算16c可以表示在时间上所预算的编码比特的最小数量。在示出的例子中,宏块比特预算集合16还包括:在目标宏块比特预算16a与最大宏块比特预算16b之间的上限平均16d,以及在目标宏块比特预算16a与最小宏块比特预算16c之间的下限平均16e。取决于状况,可以使用其它宏块比特预算。
[0015]如将更为详细地所讨论的,宏块比特预算集合16可以定义一个或多个区域20、
22、24,所述一个或多个区域20、22、24可以用于选择针对所述比特流的更新策略。所选择的更新策略可以包括例如一个或多个量化参数(QP)调整、离散余弦变换(DCT)系数调整等等。通常,DCT系数可以使得能够在频域上对视频信号进行监视、分析以及控制,其中,视频编码系统的QP可以建立步长大小,以便将DCT系数与有限的步长集合相关联。因此,大的QP值可以表示相对大的步长,其大致接近于空间变换,使得可以仅通过几个系数来捕获大部分的信号。另一方面,小的QP值可以更准确地接近于空间频谱,但是以更多的比特为代价。
[0016]在示出的例子中,区域20位于离目标宏块比特预算16a最近之处,区域24位于离目标宏块比特预算16a最远之处,而区域22设置在相应的区域20与24之间。因此,如果累计比特和18从区域20转换至区域22中,则可以选择更新策略以便在逐宏块的基础上抑制帧大小的增长。例如,对这种转换的响应可以是将QP简单地增加某一小量。
[0017]类似地,如果累计比特和18从区域22转换至区域24中,则可以选择甚至更激进的更新策略(例如,“应急(panic)”模式)。例如,对这种转换的响应可以是将QP设置为最大值或者将除了零频率(例如,DC)项以外的所有的变换系数清零。可以使用诸如箝位频率系数(例如,将高频系数限制在特定范围内以避免长码)以及将高频系数清零(例如,在已经满足了固定数量的非零/AC系数之后)之类的其它数据缩减技术。事实上,在极端情况下,可以将所有的频率(例如,AC)系数清零,使得仅DC系数保留。这种方法可以替换具有平坦均值的宏块,其需要相对少的比特数量以便对比特流进行编码。[0018]另一方面,当累计比特和18从区域24通过区域22转换至区域20中时,可以逐渐地选择允许更多比特的更新策略并且将其应用于比特流。因此,响应于这种转换,可以中断前面提及的数据缩减技术和/或可以减小QP。
[0019]工作原理概沭
[0020]在一个例子中,比特打包模块可以生成针对所打包的每一个宏块的大小(例如,字节)估计。此外,用户可以指定每宏块的目标大小和最大大小,其中,这些信号(例如,实际、目标、最大)的累计和可以创建用于标识何时QP调整是必需的“曲线”(见图2)。可以根据目标信号和最大信号由量化速率控制模块对称地生成再三条曲线(例如,upper_midpt,lower_midpt、sum_min)。目标信号和最大信号的值可以由用户指定并且可以决定这些曲线的形状。
[0021]例如,在sum_actual和sum_target之间的差异(例如,“bytediff ”)可以标识在目标大小与实际大小之间的误差余量。在当前的bytediff与先前计算的bytediff之间的差异可以表示该余量在时间上的变化速率,其中,该速率的符号可以用于标识校正是否正趋向适当的方向(例如,向bytediff = O)。
[0022]QPmod
[0023]每一个宏块可以具有请求的QP (其可以跨宏块而改变或者保持恒定)。可以将修改参数(例如,“QPmod”)添加至所请求的QP,其中,当目标被欠预测时,QPmod将是正的,而当目标被过度预测时,QPmod将是负的。此外,当内部计数器(例如,“向上”和“向下”)达到跳变点(例如,“增长”和“缩减”)时,可以递增或递减QPmod。对于所处理的每一个MB,并且基于在哪一个区域中值sum_aCtual下降,可以将各种数量的点添加至任一个计数器。如果向上计数器超过增长点,则可以递增QPmod,然而如果向下计数器超过缩减点,则可以递减QPmod。
[0024]为了抑制在相同方向上的重复的变化的效应,可以实现针对该方向的阻力(resistance)的增大和针对反方向的阻力的减小(例如增长_阻力”和“收缩_阻力”)。可以将这一阻力添加至增长点或收缩点,这随后需要更多的点来解扣(trip)在该方向上的下一个校正。
[0025]此外,用户可以指定保护频带,所述保护频带限制了可以对QPmod进行修改的量。例如,可以将 QPmo d 限制在“ QPmax_p o s_mo d ” 与“ -QPmax_n e g_mo d_ab s ” 之间。
[0026]触发
[0027]在一个例子中,速率控制模块仅在其被触发时开始修改QPmod。因此,可以存在三种级别的触发..“总是(always) ”、“温和(gentle) ”、以及“宽松(loose)”。总是级别可以表示:一旦参数“sum_actual”达到区域20, RC将是活动的。一旦sum_actual达到区域22,温和级别可以触发速率控制。此外,当sum_aCtual达到区域24时,宽松级别可以进行等待以触发速率控制。
[0028]一旦sum_actual开始在一系列宏块上跟踪sum_target,速率控制模块可以停用(例如,触发=false)。具体地说,可以在宏块窗口上监视针对bytediff的变化速率的符号。当在所述窗口上的这些符号的和落入容限值时(例如,称作‘稳态’),可以将触发重置为 false。
[0029]应急[0030]当启用时,每当SUm_actUal达到区域24时,可以发生应急模式,并且其可以保持如此直至sum_actual达到区域20。当应急时,所有的宏块可以利用QP = MB (n).QP+QPmax_pos_mod来进行量化,箝位至诸如51之类的值。
[0031]用户控制
[0032]通过允许用户定义各个关键参数可以实现相当大的灵活性。例如,在每宏块层级,目标值和最大值可以被指定,并且其可以创建将与sum_actUal相比较的各种形状的曲线。
[0033]此外,在每片层级,用户可以指定禁用触发所需要的触发灵敏度和容限。此外,用户可以启用应急检测。
[0034]除了其它事项以外,分配给区域20、22、24中的每一个区域的点值可以向用户公开,以便考虑针对过度预测和欠预测的非对称的控制。此外,用户可以指定增长点和收缩点的初始值连同当调用校正时所应用的阻力值。QPmod的最大值和最小值也可以向用户公开。
[0035]现在转到图3,示出了用于使用区域来实现宏块比特预算集合的方法26。方法26可以在使用诸如(举例来说)ASIC、CMOS或TTL技术、或其任意组合之类的电路技术的多种多样的计算系统的固定功能硬件中来实现。示出的处理框28规定:估计对当前宏块进行编码所需要的比特数量,其中,所述估计可能考虑宏块的复杂度、宏块是否是重要区域的部分等等。例如,宏块复杂度的确定可以基于像素方差、总体闻频幅度(例如,在DCT系数之间)、残余误差、先前经编码的比特数量等。如果基于统计使用例如SAD(绝对差异的和)或MSE (均方差)来预先定义残余误差,贝U可以如下生成相关函数,Estimate_Bits[k]=Statistics_Function (Residual_Error [k]);针对第 k 个 MB。
[0036]此外,重要区域的确定可以基于静态位置(例如,显示器的中心)、比特流的内容(例如,人脸、运动对象等)、外部动态输入(例如,由实时眼睛跟踪设备提供的数据)等等。对此,可以将宏块重要性的加权函数赋值为在O与I之间的分数权重,
[0037]Importance [k];针对第 k 个 MB。
[0038]如已经提到的,在框30,可以将当前宏块比特预算集合添加至先前的预算和。因此,在框30,可以将针对当前宏块的目标比特预算添加至先前的目标比特预算的和,可以将针对当前宏块的最大比特预算添加至先前的最大比特预算的和等等,以获得如已经讨论的宏块比特预算集合。示出的框32规定:将所估计的、对当前宏块进行编码所需要的比特数量添加至总的实际帧大小,以便获得总体估计的帧大小(例如,累计比特和)。对于最大比特预算、最小比特预算和其它比特预算可以重复相同的情况。在框34,然后可以将总体估计的帧大小与所述宏块比特预算集合相比较,其中,所述比较可以使得能够识别已经讨论的、诸如区域20、22、24(图2)之类的预算区域。
[0039]如果在框36确定当前区域不同于先前区域,则在框40增大计数器之前,可以在框38重置计数器。如果当前区域与先前区域相同,则可以在框40执行计数器增大而不用重置计数器。对此,计数器可以用于防止过快地作出QP和/或DCT系数调整。因此,仅当在框42确定计数器已经超过预先定义的阈值,示出的方法26才在框44执行区域特定的QP更新。这种滞后功能可以显著地改善系统性能。在框46可以对宏块比特流进行打包,其中,经打包的比特流可以用于确定实际的帧大小。
[0040]现在转到图4,示出了平台56,其中,平台56可以是移动平台,诸如膝上型计算机、移动互联网设备(MID)、个人数字助理(PDA)、媒体播放器、成像设备等等、诸如智能电话、智能平板等等的任何智能设备、或其任意组合。平台56也可以是固定平台,诸如个人计算机(PC)、服务器、工作站、智能TV等等。示出的平台56包括:中央处理单元(CPU,例如,主处理器)58,CPU 58具有提供对系统存储器60的访问的集成存储器控制器(iMC) 62,系统存储器60可以包括例如双倍数据速率(DDR)同步动态RAM(SDRAM,例如,DDR3SDRAM JEDEC标准JESD79-3C,2008年4月)模块。可以将系统存储器60的模块合并入例如单列直插式存储器模块(SIMM)、双列直插式存储器模块(DIMM)、小型DMM (SODIMM)等等。CPU 58还可以具有一个或多个驱动64和/或处理器核(未示出),其中每一个核可以是功能齐全的,其具有指令提取单元、指令解码器、一级(LI)缓存、执行单元等等。CPU 58可以替代地经由前侧总线或使平台56中的组件中的每一个组件互连的点对点结构与iMC 62的芯片外变型(也被称作北桥)通信。CPU 58还可以执行诸如Microsoft Windows、Linux、或Mac (Macintosh)OS之类的操作系统(OS) 66。
[0041]示出的CPU 58经由集线器总线与平台控制器集线器(PCH) 68 (也被称作南桥)通信。iMC 62/CPU 58和PCH 68有时被称为芯片组。CPU 58还可以通过PCH 68经由网络端口(未示出)可操作地连接至网络(未示出)。显示器70 (例如,触摸屏、LCD、LED显示器)也可以与PCH 68通信,以便允许用户查看来自平台56的图像和/或视频。示出的PCH 58还耦合至存储装置,所述存储装置可以包括硬驱动器76、R0M、光盘、闪存(未示出)等等。
[0042]示出的平台56还包括耦合至专用图形存储器80的专用图形处理单元(GPU) 78。专用图形存储器80可以包括例如GDDR(图形DDR)或DDRSDRAM模块,或适用于支持图形呈现的任何其它存储器技术。GPU 78和图形存储器80可以安装于图形/视频卡上,其中,GPU 78可以经由诸如PCI Express图形(PEG,例如,外设组件互连/PCI Express xl6图形150W-ATX规范1.0, PCI特别兴趣小组)总线或加速图形端口(例如,AGP V3.0接口规范,2002年9月)总线之类的图形总线与CPU 58通信。图形卡可以集成至系统主板上、集成入主CPU 58管芯、配置为主板上的分立板卡等。GPU 78还可以执行一个或多个驱动82,并且可以包括用于存储指令和其它数据的内部缓存84。
[0043]示出的GPU 78包括硬件逻辑单元86,硬件逻辑单元86被配置为:为与视频信号相关联的比特流分配宏块比特预算集合,以及在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小。在一个例子中,硬件逻辑单元86根据所述宏块比特预算集合来调整所述比特流的多个量化参数中的一个量化参数。
[0044]图5示出了系统700的实施例。在实施例中,系统700可以是媒体系统,尽管系统700不受限于该上下文。例如,可以将系统700合并入个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能手机、智能平板或智能电视机)、移动互联网设备(MID)、消息传送设备、数据通信设备等等。
[0045]在实施例中,系统700包括耦合至显示器720的平台702。平台702可以从诸如内容服务设备730或内容分发设备740或其它类似的内容源之类的内容设备接收内容。包括一个或多个导航特征的导航控制器750可以用于与例如平台702和/或显示器720进行交互。以下更详细地描述这些组件中的每一个组件。
[0046]在实施例中,平台702可以包括芯片组705、处理器710、存储器712、存储装置714、图形子系统715、应用716和/或无线电台718的任意组合。芯片组705可以在处理器710、存储器712、存储装置714、图形子系统715、应用716和/或无线电台718之间提供互相通信。例如,芯片组705可以包括能够提供与存储装置714的互相通信的存储装置适配器(未描绘)。
[0047]处理器710可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、兼容x86指令集的处理器、多核、或任何其它微处理器或中央处理单元(CPU)。在实施例中,处理器710可以包括双核处理器、双核移动处理器等等。
[0048]存储器712可以实现为易失性存储设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。
[0049]存储装置714可以实现为非易失性储存设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附带的存储设备、闪存、电池支持的SDRAM(同步DRAM)、和/或网络可存取的存储设备。在实施例中,例如,当包括多个硬驱动器时,存储装置714可以包括用于提高针对有价值的数字媒体的存储性能增强性保护的技术。
[0050]图形子系统715可以执行对诸如静止图像或视频的处理以便显示。例如,图形子系统715可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以用于通信地耦合图形子系统715和显示器720。例如,所述接口可以是高清晰度多媒体接口、显示端口、无线HDMIjP /或兼容无线HD的技术中的任何一种。图形子系统715可以集成入处理器710或芯片组705。图形子系统715可以是通信地耦合至芯片组705的独立板卡。
[0051]本文所描述的图形和/或视频处理技术可以在各种硬件架构中实现。例如,图形和/或视频功能可以集成于芯片组内。或者,可以使用分立的图形和/或视频处理器。举另一个实施例,图形和/或视频功能可以由通用处理器(包括多核处理器)来实现。在另外的实施例中,所述功能可以在消费电子设备中实现。
[0052]无线电台718可以包括能够使用各种适当的无线通信技术来发送和接收信号的一个或多个无线电台。这些技术可以涉及跨越一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、以及卫星网络。在跨越这些网络进行通信时,无线电台718可以根据任何版本中的一个或多个适用标准来操作。
[0053]在实施例中,显示器720可以包括任何电视机类型的监视器或显示器。显示器720可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视机的设备、和/或电视机。显示器720可以是数字的和/或模拟的。在实施例中,显示器720可以是全息显示器。此外,显示器720可以是可接收视觉投影的透射表面。这种投影可以传达各种形式的信息、图像、和/或对象。例如,这种投影可以是用于移动增强现实(MAR)应用的视觉重叠。在一个或多个软件应用716的控制下,平台702可以在显示器720上显示用户界面722。
[0054]在实施例中,例如,内容服务设备730可以由任何国家的、国际的和/或独立服务主持(host)并且因此经由互联网可存取至平台702。内容服务设备730可以耦合至平台702和/或显示器720。平台702和/或内容服务设备730可以耦合至网络760以便向网络760传送以及从网络760传送(例如,发送和/或接收)媒体信息。内容分发设备740还可以耦合至平台702和/或显示器720。
[0055]在实施例中,内容服务设备730可以包括:有线电视盒、个人计算机、网络、电话、能够传送数字信息和/或内容的、支持互联网的设备或电器、以及能够经由网络760或直接地在内容供应商与平台702和/显示器720之间单向地或双向地传送内容的任何其它类似的设备。将意识到的是,可以经由网络760单向地和/或双向地向系统700中的组件中的任何一个和内容供应商传送内容以及从系统700中的组件中的任何一个和内容供应商传送内容。内容的例子可以包括任何媒体信息,其包括例如视频、音乐、医疗和游戏信息等等。
[0056]内容服务设备730接收诸如包括媒体信息、数字信息、和/或其它内容的有线电视节目之类的内容。内容供应商的例子可以包括任何有线电视或卫星电视或无线电或互联网内容供应商。所提供的例子并不意味着要限制本发明的实施例。
[0057]在实施例中,平台702可以从具有一个或多个导航特征的导航控制器750接收控制信号。例如,控制器750的导航特征可以用于与用户界面722进行交互。在实施例中,导航控制器750可以是定点设备,定点设备可以是容许用户将空间(例如,连续的和多维度的)数据输入计算机的计算机硬件组件(具体地说,人工接口设备)。诸如图形用户界面(GUI)、以及电视机和监视器之类的许多系统允许用户使用物理手势来控制并且向计算机或电视机提供数据。
[0058]控制器750的导航特征的移动可以通过指针、光标、焦点环、或显示在显示器上的其它可视指示符的移动而回显在显示器(例如,显示器720)上。例如,在软件应用716的控制下,可以将位于导航控制器750上的导航特征例如映射到在用户界面722上显示的虚拟导航特征。在实施例中,控制器750可以不是单独的组件,而是集成入平台702和/或显示器720。然而,实施例并不受限于在本文所示出或所描述的上下文中的元件。
[0059]在实施例中,驱动器(未示出)可以包括用于使得用户能够立即打开和关闭平台702的技术,类似于电视机,例如,当启用时,在初始启动之后,触碰按钮。当平台“关闭”时,程序逻辑单元可以允许平台702向媒体适配器或其它内容服务设备730或内容分发设备740流式传输内容。此外,芯片组705可以包括例如对5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动可以包括集成的图形平台的图形驱动。在实施例中,图形驱动可以包括外设组件互连(PCI)Express图形卡。
[0060]在各个实施例中,可以集成在系统700中所示出的组件中的任意一个或多个组件。例如,可以集成平台702和内容服务设备730,或者可以集成平台702和内容分发设备740,或者例如可以集成平台702、内容服务设备730、以及内容分发设备740。在各个实施例中,平台702和显示器720可以是集成单元。例如,可以集成显示器720和内容服务设备730,或者可以集成显示器720和内容分发设备740。这些例子并不意味着要限制本发明。
[0061]在各个实施例中,系统700可以实现为无线系统、有线系统、或两者的组合。当实现为无线系统时,系统700可以包括适用于通过无线共享介质进行通信的组件和接口,例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑单元等等。无线共享介质的例子可以包括无线频谱的部分,例如RF频谱等等。当实现为有线系统时,系统700可以包括适用于通过有线通信介质进行通信的组件和接口,例如输入/输出(I/O)适配器、用于将I/O适配器与相对应的有线通信介质相连接的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等等。有线通信介质的例子可以包括:电线、电缆、金属导线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
[0062]平台702可以建立一个或多个逻辑单元或物理信道以传送信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示旨在用于用户的内容的任何数据。内容的例子可以包括例如来自语音对话、视频会议、流式传输视频、电子邮件(“电邮”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音对话的数据可以是例如语音信息、静默时段、背景噪声、舒适噪声、音调等等。控制信息可以是指表示旨在用于自动系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统来路由媒体信息,或指示节点以预先确定的方式来处理媒体信息。然而,实施例并不受限于图5中所示出或所描述的元件或上下文。
[0063]如上文所描述的,系统700可以以变化的物理样式或外形规格来体现。图6示出了其中可以体现系统700的小外形规格设备800的实施例。在实施例中,例如,设备800可以实现为具有无线能力的移动计算设备。移动计算设备可以是指具有处理系统和移动电源或移动电力供应(例如,诸如一个或多个电池)的任何设备。
[0064]如上文所描述的,移动计算设备的例子可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板或智能电视机)、移动互联网设备(MID)、消息传送设备、数据通信设备等等。
[0065]移动计算设备的例子还可以包括被布置为由人穿戴的计算机,诸如腕计算机、手指计算机、指环计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋子计算机、衣服计算机、以及其它可穿戴的计算机。在实施例中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以通过举例的方式利用实现为智能电话的移动计算设备来描述一些实施例,但是可以意识到的是,其它实施例也可以使用其它无线移动计算设备来实现。实施例不受限于该上下文。
[0066]如图6中所不出的,设备800可以包含壳体802、显不器804、输入/输出(I/O)设备806、以及天线808。设备800还可以包括导航特征812。显示器804可以包括用于显示适合于移动计算设备的信息的任何适当的显示单元。I/O设备806可以包括用于向移动计算设备中输入信息的任何适当的I/O设备。I/O设备806的例子可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、往复式开关、麦克风、扬声器、语音识别设备和软件等等。信息也可以通过麦克风输入至设备800中。可以通过语音识别设备将这样的信息数字化。实施例不受限于该上下文。
[0067]各个实施例可以使用硬件元件、软件元件、或两者的组合来实现。硬件元件的例子可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻、电容、电感等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的例子可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接□、应用程序接□ (API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定实施例是否使用硬件元件和/或软件元件来实现可以根据任意数量的因素而变化,例如期望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束。
[0068]至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性的指令来实现,所述代表性的指令表示处理器内的各种逻辑单元,所述代表性的指令在由机器读取时使机器制造用于执行本文所描述的技术的逻辑单元。被称作“IP核”的这样的表示可以存储在有形的、机器可读介质上,并且提供给各个客户或制造设施,以加载至实际制造逻辑单元或处理器的制造机器中。
[0069]本发明的实施例适用于与所有类型的半导体集成电路(“1C”)芯片的使用。这些IC芯片的例子包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等等。此外,在一些附图中,利用线来表示信号导线。一些可以不同,以指示更多的构成信号路径,可以具有数字标记,以指示若干个构成信号路径,和/或可以在一个或多个末端具有箭头,以指示主要的信息流方向。然后,这不应当解释为限制性的方式。更确切地说,这样的添加细节可以结合一个或多个示例性的实施例用来促进对电路更容易的理解。任何所表示的信号线,不论是否具有附加信息,可以实际包括一个或多个信号,所述一个或多个信号可以在多个方向上行进并且可以用任何适当类型的信号方案来实现,例如用差分对实现的数字或模拟线、光纤线和/或单端线。
[0070]可能已经给出了示例性大小/模型/值/范围,尽管本发明的实施例不受限于与之相同。当制造技术(例如,光刻)随着时间成熟,预期可以制造较小尺寸的器件。此外,出于简化说明和讨论,并且为了不模糊本发明的实施例的某些方面,公知的至IC芯片和其它组件的电源/接地连接可以在或可以不在图内示出。此外,布置可以以框图的形式示出,以便避免模糊本发明的实施例,并且还鉴于针对这种框图布置的实现的细节高度依赖于实施例将被实现于其内的平台的事实,即这样的细节应当在本领域技术人员的应知范围内。在对具体细节(例如,电路)进行阐述以便描述本发明的示例性实施例的情况下,对于本领域技术人员来说应当显而易见的是,本发明的实施例可以不用这些具体细节或用这些具体细节的变型来加以实施。因此所述描述应被认为是说明性的而不是限制性的。
[0071]一些实施例可以例如使用机器或有形的计算机可读介质或制品来实现,所述有形的计算机可读介质或制品可以存储指令或指令集合,所述指令或指令集合如果由机器执行,可以使机器执行根据实施例的方法和/或操作。这样的机器可以包括例如任何适当的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等等,并且其可以使用硬件和/或软件的任何适当的组合来实现。机器可读介质或制品可以包括例如任何适当类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,例如存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、压缩盘只读存储器(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、光盘、磁性介质、磁光介质、可移动存储卡或盘、各种类型的数字多功能盘(DVD)、磁带、盒式磁带等等。指令可以包括任何适当类型的代码,例如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码、经加密的代码等等,这些代码使用任何适当的高级、低级、面向对象、可视的、编译的和/或解释的编程语言来实现。
[0072]除非明确声明,否则可以意识到的是,诸如“处理”、“计算”、“运算”、“确定”等等之类的术语是指计算机或计算系统或类似的电子计算设备的动作和/或处理,其将在计算系统的寄存器和/或存储器内被表示为物理量(例如,电子)的数据操纵和/或变换为在计算系统的存储器、寄存器或其它此类信息存储、传输或显示设备内被类似地表示为物理量的其它数据。实施例不受限于该上下文。[0073]术语“耦合”在本文中可以用于指代在所讨论的组件之间的任何类型的关系,直接的或间接的,并且可以应用于电的、机械的、流体的、光学的、电磁的、机电的或其它的连接。此外,术语“第一”、“第二”等等在本文中可以仅用于方便讨论,并且除非另外指明,否则其不传递任何特定的时间或顺序上的意义。
[0074]通过前述描述本领域技术人员将意识到,本发明的实施例的宽泛技术可以以各种形式实现。因此,尽管已经结合其特定的例子描述了本发明的实施例,但是本发明的实施例的真实范围不应当这样受限制,因为在研究附图、说明书和下面的权利要求书后,其它修改对于本领域普通技术人员来说将变得显而易见。
【权利要求】
1.一种计算机实现的方法,包括: 基于宏块像素方差、总体高频幅度、残余误差以及先前经编码的比特数量中的至少一项来确定针对与视频信号相关联的比特流的宏块复杂度; 基于静态位置、所述比特流的内容以及外部动态输入中的至少一项来确定所述比特流的重要区域; 基于所述宏块复杂度和所述重要区域来为所述比特流分配宏块比特预算集合; 生成宏块大小估计以确定所述比特流的累计比特和; 在所述累计比特和与所述宏块比特预算集合之间执行比较; 基于所述比较来选择更新策略;以及 在一次性编码配置中基于所选择的更新策略来控制所述比特流的帧大小。
2.根据权利要求1所述的方法,其中,所述宏块比特预算集合包括:目标宏块比特预算、最小宏块比特预算以及最大宏块比特预算。
3.根据权利要求2所述的方法,其中,所述宏块比特预算集合还包括:在所述目标宏块比特预算与所述最大宏块比特预算之间的上限平均,以及在所述目标宏块比特预算与所述最小宏块比特预算之间的下限平均。
4.根据权利要求1所 述的方法,其中,所选择的更新策略包括量化参数调整和离散余弦变换系数调整中的至少一项。
5.一种装置,包括: 硬件逻辑单元,用于: 为与视频信号相关联的比特流分配宏块比特预算集合;以及 在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小。
6.根据权利要求5所述的装置,其中,所述硬件逻辑单元用于: 确定所述比特流的累计比特和; 在所述累计比特和与所述宏块比特预算集合之间执行比较;以及基于所述比较来选择更新策略,其中,基于所选择的更新策略来控制所述比特流的所述帧大小。
7.根据权利要求6所述的装置,其中,所选择的更新策略包括量化参数调整和离散余弦变换系数调整中的至少一项。
8.根据权利要求7所述的装置,其中,所述硬件逻辑单元用于生成宏块大小估计。
9.根据权利要求5所述的装置,其中,所述宏块比特预算集合包括:目标宏块比特预算、最小宏块比特预算以及最大宏块比特预算。
10.根据权利要求9所述的装置,其中,所述宏块比特预算集合还包括:在所述目标宏块比特预算与所述最大宏块比特预算之间的上限平均,以及在所述目标宏块比特预算与所述最小宏块比特预算之间的下限平均。
11.根据权利要求5所述的装置,其中,所述硬件逻辑单元用于基于宏块像素方差、总体高频幅度、残余误差以及先前经编码的比特数量中的至少一项来确定针对所述比特流的宏块复杂度,以及其中,基于所述宏块复杂度来分配所述宏块比特预算集合。
12.根据权利要求5所述的装置,其中,所述硬件逻辑单元用于基于静态位置、所述比特流的内容以及外部动态输入中的至少一项来确定所述比特流的重要区域,以及其中,基于所述重要区域来分配所述宏块比特预算集合。
13.—种系统,包括: 图形处理器,其包括硬件逻辑单元,所述硬件逻辑单元用于: 为与视频信号相关联的比特流分配宏块比特预算集合;以及 在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小;以及 耦合至所述图形处理器的硬驱动器。
14.根据权利要求13所述的系统,其中,所述硬件逻辑单元用于: 确定所述比特流的累计比特和; 在所述累计比特和与所述宏块比特预算集合之间执行比较;以及基于所述比较来选择更新策略,其中,基于所选择的更新策略来控制所述比特流的所述帧大小。
15.根据权利要求14所述的系统,其中,所选择的更新策略包括量化参数调整和离散余弦变换系数调整中的至少一项。
16.根据权利要求14所述的系统,其中,所述硬件逻辑单元用于生成宏块大小估计。
17.根据权利要求13所述的系统,其中,所述宏块比特预算集合包括:目标宏块比特预算、最小宏块比特预算以及最大宏块比特预算。
18.根据权利要求17所述的系统,其中,所述宏块比特预算集合还包括:在所述目标宏块比特预算与所述最大宏块比特预算之间的上限平均,以及在所述目标宏块比特预算与所述最小宏块比特预算之间的下限平均。
19.根据权利要求13所述的系统,其中,所述硬件逻辑单元用于基于宏块像素方差、总体高频幅度、残余误差以及先前经编码的比特数量中的至少一项来确定针对所述比特流的宏块复杂度,以及其中,基于所述宏块复杂度来分配所述宏块比特预算集合。
20.根据权利要求13所述的系统,其中,所述硬件逻辑单元用于基于静态位置、所述比特流的内容以及外部动态输入中的至少一项来确定所述比特流的重要区域,以及其中,基于所述重要区域来分配所述宏块比特预算集合。
21.—种计算机实现的方法,包括: 为与视频信号相关联的比特流分配宏块比特预算集合;以及 在一次性编码配置中基于所述宏块比特预算集合来控制所述比特流的帧大小。
22.根据权利要求21所述的方法,还包括: 确定所述比特流的累计比特和; 在所述累计比特和与所述宏块比特预算集合之间执行比较;以及基于所述比较来选择更新策略,其中,基于所选择的更新策略来控制所述比特流的所述帧大小。
23.根据权利要求22所述的方法,其中,所选择的更新策略包括量化参数调整和离散余弦变换系数调整中的至少一项。
24.根据权利要求22所述的方法,其中,确定所述累计比特和包括:生成宏块大小估计。
25.根据权利要求21所述的方法,其中,所述宏块比特预算集合包括:目标宏块比特预算、最小宏块比特预算以及最大宏块比特预算。
26.根据权利要求25所述的方法,其中,所述宏块比特预算集合还包括:在所述目标宏块比特预算与所述最大宏块比特预算之间的上限平均,以及在所述目标宏块比特预算与所述最小宏块比特预算之间的下限平均。
27.根据权利要求21所述的方法,还包括:基于宏块像素方差、总体高频幅度、残余误差以及先前经编码的比特数量中的至少一项来确定针对所述比特流的宏块复杂度,以及其中,基于所述宏块复杂度来分配所述宏块比特预算集合。
28.根据权利要求21所述的方法,还包括:基于静态位置、所述比特流的内容以及外部动态输入中的至少一项来 确定所述比特流的重要区域,以及其中,基于所述重要区域来分配所述宏块比特预算集合。
29.根据权利要求21所述的方法,其中,硬件逻辑单元用于分配所述宏块比特预算集合以及控制所述帧大小。
【文档编号】H04N19/18GK104012090SQ201180075822
【公开日】2014年8月27日 申请日期:2011年12月23日 优先权日:2011年12月23日
【发明者】N·路, J·M·霍兰, H·江 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1