在编码数据流中的最优功率使用.pdf

上传人:00062****4422 文档编号:1017949 上传时间:2018-03-26 格式:PDF 页数:13 大小:680.01KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910223588.6

申请日:

2009.11.24

公开号:

CN101742311A

公开日:

2010.06.16

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04N 7/26申请公布日:20100616|||实质审查的生效IPC(主分类):H04N 7/26申请日:20091124|||公开

IPC分类号:

H04N7/26

主分类号:

H04N7/26

申请人:

辉达公司

发明人:

沙闪克·加格; 维纳亚克·贾亚拉姆·波尔; 苏曼库玛·戴; 马尼士·加特沙克尔·班迪; 哈瑞克瑞莎娜·玛达迪·雷迪; 玛尼德拉·奈斯·巴尔黑

地址:

美国加利福尼亚州

优先权:

2008.11.24 US 12/277,287

专利代理机构:

北京市磐华律师事务所 11336

代理人:

董巍;顾珊

PDF下载: PDF下载
内容摘要

根据本发明的一个方面提供的编码器基于相应持续时间段中的可用功率量使用不同的编码技术。由于这种使用不同编码技术的能力,使得可以最优地利用功率。根据相应时间段内的可用功率量,通过在编码技术之间进行动态地切换以进一步提高优化。在实施例中,每种编码技术在相应精度水平下估计运动矢量(从而消耗相应的功率水平),并且选择精度水平以响应可用功率预算。可以关断期望精度水平不需要的电路。

权利要求书

1: 一种设备包括: 编码器,用以对数据流进行编码;以及 功率管理模块,用以指示可用功率量, 其中所述编码器被设计为如果所述量超过阈值则使用第一编码技术对所述数据流进行编码,否则使用第二编码技术进行编码。
2: 根据权利要求1所述的设备,其中所述功率管理模块被设计为在相应的时间点中指示可用功率量的序列, 其中所述数据流包括数字值序列, 其中所述编码器响应接收的每一个所述序列量以选择所述第一编码技术或所述第二编码技术,并根据选定的编码技术对所述的数字值序列的相应子集进行编码。
3: 根据权利要求2所述的设备,其中所述第一编码技术相比所述第二编码技术需要更多功率以对相同量的数字值进行编码,由此当所述可用功率量更多时选择需要更多功率的所述第一编码技术。
4: 根据权利要求3所述的设备,其中所述编码器包括分别执行所述第一编码技术和所述第二编码技术的第一模块和第二模块,其中当选择所述第二编码技术时可操作的关断所述第一模块,当选择所述第一编码技术时可操作的接通所述第一模块。
5: 根据权利要求4所述的设备,其中所述数字值序列表示图像帧序列,其中所述第一模块被设计为在第一分辨率下的连续图像帧之间进行运动估计,所述第二模块被设计为在第二分辨率下的连续图像帧之间进行运动估计,其中所述第一分辨率高于所述第二分辨率。
6: 根据权利要求5所述的设备,其中所述第一分辨率等于图像帧的像素的一部分,所述第二分辨率等于图像帧的一个像素。
7: 根据权利要求6所述的设备,进一步包括软件驱动器,用以接收所述可用功率量、选择所述第一编码技术或所述第二编码技术,以及关断所述第一模块和所述第二模块之一。
8: 根据权利要求7所述的设备,进一步包括中央处理器(CPU)和存储器,基于从电源处接收的功率以及所述CPU和所述存储器的功率需求,所述功率管理模块计算所述可用功率量。
9: 根据权利要求7所述的设备,其中所述第二编码技术进一步包括; 丢弃中间图像帧;以及 调整速率控制参数以在期望的比特率下提供输出。
10: 一种编码数字值序列的编码器,所述编码器包括: 第一模块,基于第一编码技术执行编码操作; 第二模块,基于第二编码技术执行编码操作; 驱动器,接收可用功率量,如果所述量超过阈值则确定使用所述第一编码技术对所述数据流进行编码,否则使用所述第二编码技术进行编码, 如果要使用所述第二编码技术对所述数字值序列进行编码,则所述驱动器关断所述第一模块,如果要使用所述第一编码技术对所述数字值序列进行编码,则所述驱动器关断所述第二模块。
11: 根据权利要求10所述的编码器,其中所述驱动器被设计为在相应时刻接收可用功 率量的序列, 其中所述数据流包括所述数字值序列, 其中所述驱动器响应接收的每一个所述序列量以选择所述第一编码技术或所述第二编码技术,并根据选定的编码技术对所述的数字值序列的相应子集进行编码。
12: 根据权利要求11所述的编码器,其中所述第一编码技术相比所述第二编码技术需要更多功率以对相同量的数字值进行编码,因此当所述可用功率量更多时选择需要更多功率的所述第一编码技术。
13: 根据权利要求12所述的编码器,其中所述数字值序列表示图像帧序列,其中所述第一模块被设计为在第一分辨率下的连续图像帧之间进行运动估计,所述第二模块被设计为在第二分辨率下的连续图像帧之间进行运动估计,其中所述第一分辨率高于所述第二分辨率。
14: 根据权利要求13所述的编码器,其中所述第一分辨率等于图像帧的像素的一部分,所述第二分辨率等于图像帧的一个像素。
15: 根据权利要求14所述的编码器,其中根据H.264标准对所述图像帧进行编码。
16: 一种处理数字数据流的方法,所述方法包括: 接收可用功率量的指示; 如果所述量超过阈值则选择第一编码技术,否则选择第二编码技术;以及 根据所述选定的编码技术对所述数字比特流进行编码。
17: 根据权利要求16所述的方法,其中所述接收步骤在相应的时刻接收可用功率量的序列, 其中所述数据流包括数字值序列, 其中所述选择步骤响应接收的每一个所述序列量以选择所述第一编码技术或第二编码技术,以及 所述编码步骤根据选定的编码技术对所述数字值序列的相应子集进行编码。
18: 根据权利要求17所述的方法,其中第一编码技术相比所述第二编码技术需要更多功率以对相同量的数字值进行编码,其中当所述可用功率量更多时选择需要更多功率的所述第一编码技术。
19: 根据权利要求18所述的方法,其中使用多个部件执行所述编码操作,所述方法进一步包括接通或关断所述多个部件中的一些。
20: 根据权利要求19所述的方法,其中所述多个部件的每一个被设计为在相应精度下执行运动估计。

说明书


在编码数据流中的最优功率使用

    【技术领域】

    本公开涉及信号处理,更具体地涉及在编码数据流中最优的功率使用。

    背景技术

    编码总体上是指将数字值序列(例如,以数据流)从一种格式转换成另一种格式。如相关现有技术中公知的,编码一般需要进行诸如压缩、应用转换等任务。同样如相关现有技术中公知的,解码总体上是指对已编码的数据进行处理以恢复出尽可能接近原始的数据流。

    一般来讲,使用特定的编码技术进行编码,其后使用相应的解码技术恢复出原始数据流。通过处理逻辑定义编码技术(对源数据流的数字值序列进行一组定义的数学运算)。

    由于不同的处理逻辑,使得不同的编码技术可以要求不同的处理资源以潜在地获得不同的质量(例如,通过一个或多个压缩级别、数据损失度、精度水平等进行测量)。反过来,处理资源确定所需的功率量。

    总体上期望在编码数据流的同时最优地使用功率。

    【附图说明】

    以下将参考简要描述的附图说明本发明的实施例。

    图1是示出了可以实现本发明的一些方面的实例设备的细节的框图。

    图2是示出了在本发明的实施例中最优使用功率的方式的流程图。

    图3是示出了一个实施例的视频编码器中的细节的框图。

    图4是根据本发明的实施例,示出了在示例性的运动估计计算期间相关像素位置的框图。

    图5是根据本发明的实施例,示出了基于可用功率的编码技术动态选择的状态图。

    图6是根据本发明的实施例,示出了用于不同可用功率量的不同编码技术的表格。

    在附图中,相似的附图标记大体上表示相同的、功能性相似的、和/或结构性相似的元件。相应附图标记中最左端的数字表示元件首次出现的附图编号。

    【具体实施方式】

    1、概述

    根据本发明的一个方面提供的编码器基于相应持续时间段内的可用功率量使用不同的编码技术。由于这种使用不同编码技术的能力,使得可以最优地利用功率。

    根据本发明的另一个方面,根据相应持续时间段内的可用功率量,通过在编码技术之间进行动态地切换以进一步提高优化。

    在实施例中,每种编码技术在相应精度水平下(从而消耗相应的功率水平)估计运动矢量,并且选择精度水平以响应可用功率预算。可以关断不满足期望精度水平的电路。

    以下参考示出的实例说明本发明的一些方面。但是,相关领域中的技术人员应该意识到的是,可以在不具有一个或多个具体细节的情况下或在利用其他方法、部件、材料等的情况下实施本发明。在其他实例中,为了避免混淆本发明的特征,不再详细示出公知的结构、材料、或操作。另外,虽然为了精简此处只说明了一些组合方式,但是可以以多种组合方式实施说明的特征/方面。

    2、实例设备

    图1是示出了实现本发明的一些方面的实例设备100的细节地框图。虽然通过阅读本公开,对于相关领域的技术人员来讲显而易见的是,在其他设备中可以实现其特征,但是此处该设备对应于一种手持摄像机。所示设备包括用户应用程序110、软件驱动器120、照相机130、视频编码器140、中央处理器(CPU)150、存储器160、外部接口170、功率管理模块180以及电源190。

    虽然分开示出这些模块,但是CPU 150执行构成了用户应用程序110和软件驱动器120的多种软件指令。一般来讲,CPU 150执行存储器160中的指令以提供相应的功能。

    外部接口170可以包括输入部件(例如,键盘、指示设备、触摸屏、按钮、USB输入等)和输出部件(例如,显示器、扬声器),可以使用这些部件来提供不同的用户接口。可以通过已知的方式,经由软件驱动器120将接收到的输入提供给用户应用程序110。相似地,也可以通过已知的方式,经由软件驱动器120使得用户应用程序110可以将输出数据(用于显示/可听见的再现)提供给外部接口170。

    当通过CPU 150执行时,每一个用户应用程序110提供一组相应的功能(例如,看电影,捕捉视频,播放歌曲等)。即使本发明的特征可以用在其他不同的应用环境中,但以下仍以在压缩格式下捕捉视频信号来说明示出的实例。响应用户通过外部接口170提供的一组适当的输入来启动该视频捕捉。

    功率管理模块180从电源190上接收功率,并被设计为用以估计不同部件(例如,CPU 150、存储器160)的当前功率需求。功率管理模块180还可以跟踪在系统上执行的每一个用户应用程序110(例如,编码、解码、网络浏览)的功率需求。基于这种估计(或者其他方面),功率管理模块180可以为视频编码器140计算可用功率量。一般来讲,所有部件消耗的功率之和需要少于电源190提供的功率水平。基于这种一般性要求,可以计算编码器140的可用功率。

    软件驱动器120可以包括与每一部件130/140/150/160/170以及180接口的相应的驱动器。这样,当用户请求视频捕捉时,相应的软件驱动器可以在路径123上向照相机130发送捕捉请求。作为响应,软件驱动器120可以在路径132上接收代表捕捉到的图像/图片帧序列的数据流。数据流可以被送往视频编码器140进行编码。已编码的数据可以被接收,然后送到CPU 150进行进一步的处理(例如,存储在二级存储器中或传送到外部设备)。

    编码器140对从软件驱动器120上接收到的数据进行编码。在编码期间,可以如以下说明的实例那样最优地使用功率。

    3、编码技术

    图2是示出了在本发明的一个实施例中的编码技术的流程图。以下将仅参考图1示意性的说明本流程图。但是,可以在其他环境中以及为其他类型的数据(例如,音频)实施不同的特征。通过阅读此处的公开,对于相关领域的技术人员来讲显而易见的是,还可以在不背离本发明一些方面的范围和精神的情况下,在其他环境的可选实施例中,执行不同顺序的步骤。该流程图开始于步骤201,控制传递到步骤210。

    在步骤210中,软件驱动器120接收输入数据流和用于编码操作的可用功率量。输入数据流包括代表关注信息的数字值序列。在图1所示的情况中,数字值可以代表由照相机130捕获的帧序列。功率量可以用于与编码器140的实施相一致的任意持续时间段(例如,持续一段时间除非之后发生变化)。

    在步骤220中,软件驱动器120选择要求少于或等于可用功率量的信号处理技术。例如,如果可用功率很低(例如,当前时间点下的功率源190对应于电池,而不是来自公用事业公司的外部电源的源),则可以选择低质量(假设其需要消耗较少功率的资源)的编码技术。

    在步骤240中,软件驱动器120使用选定的信号处理技术对输入数据流进行编码。可以理解的是,通过信号处理技术的实现(通过硬件、软件和固件的相应结合)来确定资源需求。这样,通过指示功率量,可以最优地使用合计可用功率。流程图结束于步骤299。

    当相对于单一实例中编码技术的选择说明上述流程图的同时,应该理解的是,随着适用于具体的环境中,此处的特征可以被重复多次。另外,可以使用不同的方法来实现相应的编码技术。以下说明示出这些特征的实现实例。

    4、实例实现

    图3是示出了本发明的实施例中的编码器一部分细节的框图。所示框图包括驱动器310,整像素运动估计(ME)320,半像素ME 330,四分之一像素ME 340和逻辑模块380。以下进一步详细说明每一个模块。

    驱动器310可以响应软件驱动器120中的一个驱动器或可替换地在视频编码器140中实现。一般来讲,驱动器310接收可用功率量并仅打开/关闭期望的运动估计模块。另外,驱动器310与以编码为目的而操作的特定估计模块通信,以便逻辑模块380可以基于仅来自操作性(未关断)部件的可用数据执行其余的编码操作。

    逻辑模块380表示所有编码操作(“其余操作”)而不是仅由模块320/330/340实现的运动估计操作。其余操作基于相应环境中使用的特定编码算法和输入/输出格式。应该理解的是,基于打开/关闭模块320/330和340中的哪些模块,逻辑模块380可以利用不同数量的可用的运动估计(在相应的精度下)来实现。逻辑模块380的实现对于相关领域中的技术人员来讲是显而易见的。

    如现有技术中公知的,整像素运动估计(ME)320在两个连续的图像帧(或其部分)之间以整像素值为精度进行运动估计。例如,整像素ME 320可以将第二/当前图像帧置于距离在该序列中接收的第一/上一个帧一个像素的位置处,并计算该差异。

    图4中的位置410A到410H示出了相对整像素位置的实例。随着输出至逻辑模块380,提供每一位置(例如8个位置)的计算估计。为了以期望的速度实现运动估计,可以使用任意已知的技术实现整像素ME 320,并相应地可以消耗每帧X的功率量。

    半像素ME 330在两个连续帧(或其部分)之间以半个像素的距离为精度进行运动估计。例如,半像素ME 330可以将第二图像帧置于距离在该序列中接收的相应的第一帧半个像素的位置处。

    图4中的位置420A到420H示出了相对半个像素位置的实例。提供每一位置(例如8个位置)的计算估计作为路径142上的输出。为了以期望的速度实现运动估计,可以使用任意已知的技术实现半像素ME 320,并相应地可以消耗每帧Y的功率量。

    相似地,四分之一像素ME 340在两个连续图像帧之间以四分之一个像素值为精度进行运动估计。图4中的位置430A到430H示出了相对四分之一个像素位置的实例。为了以期望的速度实现运动估计,可以使用任意已知的技术实现四分之一像素ME 340,并相应地可以消耗每帧Z的功率量。

    驱动器310基于接收到的功率预算控制整像素ME 320、半像素ME330和四分之一像素ME 340的操作。接收到的功率预算(可用功率量)可以指示用于实现编码操作/运动估计的可用功率。驱动器还可以保持整像素ME 320、半像素ME 330和四分之一像素ME 340的功率需求的细节。

    在一个实施例中,假设逻辑模块380中的计算可以忽略,当用于编码的可用功率等于或大于(X+Y+Z;其中X=用于整像素的功率,Y=用于半像素的功率,且Z=用于四分之一像素的功率)时,驱动器310可以打开整像素ME 320、半像素ME 330和四分之一像素ME 340(例如第一编码技术)。这样,在更多数量的相对位置(这种情况下为24个)处实现运动估计。相应地,逻辑模块380可以为24个位置中的每一个接收估计后的数值(表示两个连续帧之间的匹配度),选择24个位置中最匹配的一个用以压缩当前处理的图像帧。由于为了编码考虑了子像素水平上更多的位置,因此这样编码的帧(数字值序列)产生了高质量(较少信息损失)的编码信号。

    作为替换,当用于编码的可用功率大于X+Y且小于X+Y+Z时,驱动器310可以仅打开整像素ME 320和半像素ME 330(第二编码技术的实例)。这样,在相对较少数量的相对位置(这种情况下为16个)处实现运动估计。相应地,在16个位置中(由逻辑模块380)选择最匹配的,以便对提供中等质量的编码信号的帧进行编码。

    相似地,当可用功率小于X+Y且大于X时,驱动器310可以仅打开整像素ME 320。这样,在8个相对位置处实现运动估计。相应地,在8个位置中选择最匹配的,以便对提供低质量的编码信号的帧进行编码。

    在备选实施例中,驱动器310可以分别针对可用功率量X、Y、Z选择整像素ME 320、半像素ME 330和四分之一像素ME 340之一。

    综上所述,可以理解的是,可以在潜在地编码每一个连续图像帧时最优地使用功率。如以下所述的实例,可以动态地调整功率消耗。

    5、编码技术的动态选择

    图5是示出了在本发明的一个实施例的可用功率的基础上处理(编码/解码)技术的动态选择的状态图。所示状态图包括状态“查询用以功率预算的功率管理模块”510、高质量520、中等质量530、低质量540,以及“低质量和帧丢弃”550。将在以下更进一步详细的说明每一个状态和相应的转换。

    用以功率预算状态510的查询PM表示编码器300的初始状态。在这种状态下,驱动器120/310查询功率管理系统(PM)180的可用功率以编码数据流。驱动器120/310接收可用功率512、513和514的值并分别将编码器的状态改变到高质量520、中等质量530和低质量540。这种改变需要接通/关断相应运动估计模块并将其通信至逻辑模块380。

    在高质量状态520、中等质量状态530和低质量状态540的每一个中,视频编码器140操作以分别产生高质量、中等质量、和低质量(低质量具有更多信息损失)的编码信号。例如,参考图3的说明,功率512、513和514可以分别表示X+Y+Z、X+Y、和X的值。

    相应地,状态高质量520代表整像素ME 320,亚像素ME 330和四分之一像素ME 340正被打开。相似地,中状态530和低状态540分别表示当整像素ME 320和亚像素ME 330都被打开以及仅当整像素ME 320被打开时的状态。

    在“低质量和帧丢弃”550状态下,操作视频编码器140以丢弃帧从而减小帧速率到小于期望值,使得在可用功率量内实现编码。由于帧的丢弃,编码链中存在的每一模块的功率使用可以随着每个丢弃的帧而下降。

    但是,丢弃帧会导致以期望比特率输出的编码器的比特率发生变化(减小)。如相关领域中公知的,比特率的这种下降可以通过调整速率控制参数(RC)来补偿。例如,每帧平均比特(一般由比特控制(RC)参数进行分类)由比特率/帧速率给定并编入视频编码器(例如逻辑模块380)。

    当丢弃帧以保持目标比特率时,编码器可以调整RC参数。另外,帧的丢弃提供更多的比特预算以编码帧。这样,在一个实施例中,已编码的帧的主观质量不会急剧下降。而且,可以通过I-slices/帧和/或更多的Intra刷新编码宏块来提高已编码序列的质量。

    另外,驱动器310/120可以定期接收功率分配(可用性)。在编码操作阶段由于一个或多个用户应用程序的启动/结束,可以改变先前分配的功率。相应地,基于可用功率的降低(功率-)或增加(功率+)使得驱动器可以改变编码器的状态。转换532、543和554表示由于可用功率(用于编码)增加(+)而产生的转换,转换523、534和545表示由于可用功率降低(-)而产生的转换。这样,可用功率相应的增加或降低引发了这些转换。

    对于相关领域中的技术人员来讲显而易见的是,可以基于环境的具体要求确定转换的选择。例如,如果在编码过程中可用功率降低至小于X+Y+Z,则驱动器310可以将编码器的操作从高质量切换到中等质量。

    根据上述说明,以下参考H.264编码器说明编码技术的功率动态选择的实现方式。

    6、实例H.264编码器

    图6示出了H.264编码器在720p分辨率(图像尺寸为1280x720)下的编码技术与相应的功率需求细节的列表的表格。列610列出了编码技术,列620表示编码一帧数据所需要的时钟周期数量,列630表示完成30fps(帧每秒)吞吐量的时钟周期的频率,列640表示用30fps执行相应编码技术所需的功率。

    在该示出的实例中,行650表示低质量编码技术的细节,行660表示中等编码技术的细节,行670表示高质量编码技术的细节。根据H.264标准实现低、中、高质量的编码技术。图示进一步假定,在视频编码器140于每一质量水平上耗费的功率逐渐增加的同时,整个视频编码过程耗费值为332mW的恒定功率(例如,在结合模块140一起操作以对视频信号进行编码的同时,由所有模块130、150、160、170耗费的功率)。

    以标准锂离子4000mWh电池和在单电池充电至少5个小时的设备期望寿命(运行任意数量的应用程序)来继续说明实施例。这样,功率管理模块180将任意时间点上汲取的最大功率限制为800mW(4000mwh/5)。

    如果在720p的分辨率下启动视频编码应用程序时,设备已经运行且消耗了400mW,软件驱动器120(根据状态510)查询功率管理(PM)模块180发现仅400mW(转变513的例子)可用,则由于所示的中等质量仅需要399mW,所以设置中等质量(状态530)用于编码。

    这样,从上述描述中,可以理解的是,可以选择编码技术以对应于可用功率,那么可以最优化地使用功率。

    除此之外,虽然描述了运动估计模块320/330/340的关断或接通作为最优化使用功率的方法,但是对于相关领域的技术人员来将显而易见的是,可以在编码器中使用其他技术(例如,即使仅以软件实现,也可以只禁用一部分电路,使用要求降低计算量的方法)以降低功耗而不背离本发明的一些方面的范围和精神。

    相似地,虽然根据视频数据的处理提供了以上说明,但应该理解的是,可以用这些特征确定其他类型的信号数据(例如,音频)。

    7、结论

    在以上说明本发明的各种实施例的同时,应该理解的是,这些实施例仅通过实例而非限制性的方式提出。因此,不应该通过上述示例性实施例限制本发明的宽度和范围,但应该仅根据权利要求及其等同限定。

    进一步的,以下摘要的目的是使得美国专利和商标局以及公众,特别是不熟悉专利或法律术语和措辞的本领域的科学家、工程师和从业者可以从本申请的技术公开的本质和性质的粗略描述中做出快速地决定。摘要不会以任何方式对本发明的范围进行限制。

在编码数据流中的最优功率使用.pdf_第1页
第1页 / 共13页
在编码数据流中的最优功率使用.pdf_第2页
第2页 / 共13页
在编码数据流中的最优功率使用.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《在编码数据流中的最优功率使用.pdf》由会员分享,可在线阅读,更多相关《在编码数据流中的最优功率使用.pdf(13页珍藏版)》请在专利查询网上搜索。

根据本发明的一个方面提供的编码器基于相应持续时间段中的可用功率量使用不同的编码技术。由于这种使用不同编码技术的能力,使得可以最优地利用功率。根据相应时间段内的可用功率量,通过在编码技术之间进行动态地切换以进一步提高优化。在实施例中,每种编码技术在相应精度水平下估计运动矢量(从而消耗相应的功率水平),并且选择精度水平以响应可用功率预算。可以关断期望精度水平不需要的电路。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1