首页> 中国专利> 根据单个输入产生多个代码转换输出的一种方法和系统

根据单个输入产生多个代码转换输出的一种方法和系统

摘要

用于根据单个输入来产生多个代码转换输出的一种方法和系统。开始一个具有第二属性的第一代码转换会话(810),其中所述第一代码转换会话包括多个视频处理操作。开始一个具有第二属性的第二代码转换会话(820)。产生与该第一代码转换会话的至少一个视频处理操作有关的中间数据(840)。执行该第二代码转换会话(860),其中该第二代码转换会话至少部分地基于该中间数据。

著录项

  • 公开/公告号CN101049025A

    专利类型发明专利

  • 公开/公告日2007-10-03

    原文格式PDF

  • 申请/专利权人 惠普开发有限公司;

    申请/专利号CN200580036994.1

  • 发明设计人 B·沈;M·特洛特;

    申请日2005-10-27

  • 分类号H04N7/26;H04N7/50;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人刘春元

  • 地址 美国德克萨斯州

  • 入库时间 2023-12-17 19:16:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-12-17

    授权

    授权

  • 2007-11-28

    实质审查的生效

    实质审查的生效

  • 2007-10-03

    公开

    公开

说明书

技术领域

本发明的实施例涉及数据代码转换领域。本发明的实施例尤其涉及用于根据单个输入产生多个代码转换输出的一种方法和系统。

背景技术

便携式电子装置,比如蜂窝电话、个人数字助理(PDA)、和膝上型计算机越来越多地能够向用户提供视频内容。通常,该视频内容来自一个直播源或一个广播源,并被无线地传输到该便携式电子装置来进行显示。由于典型的便携式电子装置的典型屏幕尺寸和比特率格式,该视频内容被匹配以适合接收的便携式电子装置的装置属性和网络属性。用于匹配视频内容以适合大批网络和客户装置的一种方法是代码转换。代码转换对媒体数据进行匹配,以通过调节诸如屏幕尺寸输出和带宽的装置属性和网络属性来以不同的格式观看。本质上,代码转换根据观看装置的特性来调节视频。

由于大量不同类型的便携式电子装置,典型地需要为视频被传输到的每种类型的电子装置来对视频进行代码转换。当前,一个典型的代码转换器为每种类型的观看装置开始一个不同的代码转换会话。尽管该代码转换器从同一源来代码转换视频,但是每个代码转换会话都独立地执行。不同的代码转换会话具有不同的计算负荷。比如,一种类型的装置可能需要一比特率的缩减,而一个第二装置类型可能需要屏幕分辨率缩减,这需要较大的计算负荷。此外,这种代码转换会话可能提供非常类似的视频输出,在同一输入视频数据上执行很多相同的视频处理操作。

在所述的直播视频代码转换或广播代码转换的情况下,其中客户以很多不同的装置/连接容量来请求一个视频源,该源需要被代码转换为多种类型的视频输出。使用分立的代码转换会话来把视频数据单独地代码转换为多个输出的当前技术由于在单独的代码转换会话中执行冗余的操作而浪费了计算容量。此外,当前技术可能不能满足代码转换业务的伸缩性要求。

发明内容

描述了本发明的多个实施例、用于根据单个输入来产生多个代码转换输出的一种方法和系统。具有第一属性的一个第一代码转换会话被开始,其中该第一代码转换会话包括多个视频处理操作。具有第二属性的一个第二代码转换会话被开始。与该第一代码转换会话的至少一个视频处理操作有关的中间数据被生成。该第二代码转换会话被执行,其中该第二代码转换会话至少部分地基于该中间数据。

附图说明

被结合并构成本说明书的一部分的附图示出了本发明的实施例,并连同下列说明一起来解释本发明的原理:

图1示出了根据本发明一个实施例的一种多输出代码转换系统的框图。

图2示出了根据本发明一个实施例的一种代码转换处理的示例解码和编码操作的框图。

图3A示出了根据本发明一个实施例的二代码转换维的二维图形表示。

图3B示出了根据本发明一个实施例的三代码转换维的三维图形表示。

图4示出了根据本发明一个实施例的在一个多输出代码转换处理中离散余弦变换(DCT)的示例渐进再利用的框图。

图5示出了根据本发明一个实施例的在一个多输出代码转换处理中速率控制信息的示例渐进再利用的框图。

图6示出了根据本发明一个实施例的在一个多输出代码转换处理中量化信息的示例渐进再处理的框图。

图7示出了根据本发明一个实施例的在一个多输出代码转换处理中在偏差修正中差错帧信息的示例渐进再利用的框图。

图8示出了根据本发明一个实施例的用于根据单个输入产生多代码转换输出的处理流程图。

具体实施方式

现在将详细参照本发明的多个实施例,其例子在附图中示出。虽然本发明将结合这些实施例来进行描述,但是会理解为不会把本发明局限于这些实施例。相反,本发明将会涵盖在按照所附权利要求书所定义的本发明精神和范围之中所能包括的选择、变化和等同。而且,在本发明的下列描述中,为了对本发明有彻底的了解而提出了许多特定的详细资料。在其他情况下,公知的方法、过程、部件、和电路没有详细地描述,以免不必要地使本发明的观点不分明。

本发明的观点可以在一个计算机系统中实施,该计算机系统一般包括用于处理信息和指令的一个处理器、用于存储信息和指令的随机存取(易失的)存储器(RAM)、用于存储静态信息和指令的只读(非易失的)存储器(ROM)、用于存储信息和指令的诸如磁盘或光盘的一个数据存储装置和盘驱动器、用于向计算机用户显示信息的诸如显示装置(比如监视器)的一个可选用户输出装置、用于向处理器传输信息和命令选择的包括字母数字和功能键(比如键盘)的一个可选用户输入装置、用于向处理器传输用户输入信息和命令选择的诸如光标控制装置(比如鼠标)的一个可选用户输入装置。

图1示出了根据本发明一个实施例的一种多输出代码转换系统100的框图。多输出代码转换系统100通过在多个代码转换会话中再利用元数据、也即这里的中间数据而从一个视频输入有效地产生多个代码转换视频输出。多输出代码转换系统100包括视频源105、代码转换器110、和存储器115,以用于产生第一输出120和第二输出125。应理解多输出代码转换系统100可以根据所述单个视频源105来产生任意数目的输出,比如第三输出130。还应理解多输出代码转换系统100可以在一个单独的计算机系统中或者在分布式计算机网络的计算机系统中实施。

视频源105向代码转换器110提供输入视频内容。在一个实施例中,视频源105是一个直播源,比如一个直播的体育事件或直播的新闻会议。在另一实施例中,视频源105是一个广播源,比如一个电视节目或电影。应理解视频源105可以是提供具有设定起始点的视频的任何视频源,比如是一个存储的源或一个广播源。

代码转换器110被配置,以根据与一个特定类型的装置有关的属性来对从视频源105接收的输入视频内容进行代码转换。代码转换器110从具有特定属性的一个装置接收一个视频内容请求。代码转换器110根据与该请求有关的属性来执行多个视频处理操作118,以产生一个输出视频。该属性(也即这里的代码转换维)包括对该相关装置的特定视频输入请求进行描述的信息,其包括但不局限于:视频格式、屏幕尺寸、帧速率、和比特率。应理解该属性还可能是部分地基于网络属性,比如网络带宽。

在一个实施例中,代码转换器110接收与具有第一属性的一个第一装置有关的一个第一视频内容请求,并开始一个第一代码转换会话来把该输入视频代码转换为用于在具有第一属性的一个第一装置上观看的一种格式。该第一代码转换会话包括多个视频处理操作118,来用于把该输入流代码转换为适于在该第一装置上观看的一个输出流。代码转换器110还可以操作以响应于与具有第二属性的一个第二装置有关的一个第二视频内容请求来开始一个第二代码转换会话。该第二代码转换会话至少部分地基于与该第一代码转换会话有关的中间数据(比如元数据)。

在一个实施例中,多输出代码转换系统100还包括存储器115,该存储器存储与第一代码转换会话的至少一个所述视频处理操作有关的中间数据。在一个实施例中,存储器115是耦合到代码转换器110上的随机存取(易失的)存储器(RAM)。应理解存储器115可以是允许快速存储和读数据的任何类型的计算机存储器(比如闪存)。应理解多输出代码转换系统可以不用存储器115来运行。比如,在诸如现场可编程门阵列(FPGA)或数字信号处理器(DSP)的一种硬件实施中,该中间数据不用明确地存储就可以被生成并被再利用。

图2示出了根据本发明一个实施例的一种代码转换处理200的示例解码和编码操作的框图。代码转换处理200包括一个编码处理(比如块202至212)和一个解码处理(比如块230至244),其中间具有代码转换操作220。这些块每个都代表了在一个示例代码转换处理中所使用的视频处理操作。应理解所示的这些块是示例性的,并且代码转换处理200可以包括不同的块、以及更少的或更多的块,这取决于代码转换处理200所使用的视频编码标准。通常,对于可以用于对运动补偿和DCT编码视频流进行代码转换的元数据被识别。本发明的实施例可以使用一种运动图象专家组(MPEG)标准(比如MPEG-1或MPEG-4)、一种H.26x标准、或其他使用运动补偿或DCT编码的标准。

代码转换处理200的每个块为有关的视频处理操作产生元数据(比如中间数据)。该元数据可以存储在一个存储器(比如图1的存储器115)中。代码转换处理200的解码部分包括多个视频处理操作,以用于产生不同的可以被存储并在另一代码转换处理中进行再利用的元数据。可以通过以下的视频处理操作而被产生并被存储的所述元数据包括:

·可变长度解码(VLD)-序列等级信息,比如输入视频的屏幕尺寸、输入视频比特率;图像等级信息,比如图像编码类型、每图像的比特数目;宏块等级信息,比如宏块编码类型、运动矢量、编码块样式(CBP)、和量化系数;以及块等级信息,比如量化DCT系数的游程长度对。

·游程长度解码(RLD)-在一个N×N阵列中的量化DCT系数,其中NxN是该转换块的尺寸(比如对于H.264格式N=4,否则N=8)。

·逆量化(Q-1)-在一个N×N阵列中的DCT系数。

·逆变换(T-1)-在一个N×N阵列中的像素(或剩余)值。

·运动补偿(M-1)-在帧缓冲中的YUV颜色空间像素值(根据该帧是否被中间编码该块是可选的)。

·逆颜色变换(C-1)-在该帧缓冲中的红绿蓝(RGB)颜色空间像素值)。

代码转换处理200的编码部分还包括多个视频处理操作,来用于产生可以在另一代码转换处理中被存储并被再利用的不同元数据。可以由以下视频处理操作来产生并被存储的所述元数据包括颜色变换(C)、运动补偿(M)、变换(T)、游程长度编码(RLE)、和可变长度编码(VLE)。可以由以下视频处理操作来产生并被存储的所述元数据的其他例子包括:

·量化(Q)-在一个N×N阵列中的量化DCT系数(在操作之后);和CBP。

·空间活动(SA)-在一个宏块阵列中的空间活动值(比如,给定一个N×M帧尺寸,那么宏块阵列的尺寸是N/16乘M/16)。

·速率控制(RC)-在一个宏块阵列中的量化参数。

应理解,上述的视频处理操作和相应的元数据在解码和编码部分都是示例性的,并可能包括额外的元数据。此外,上述的视频处理操作对元数据进行存储,因为对有关的元数据进行再利用被认为是尤其有用的。然而,还可能有如图7中所述的额外的视频处理操作(比如偏差修正和误差累积)。

比如,一个第一代码转换会话执行了代码转换处理200的所有视频处理块,并存储了每个块的元数据。具有不同的目标格式的一个第二代码转换会话可以有选择地使用在第一代码转换会话的解码部分所产生的元数据,来输入到第二代码转换会话的编码部分以产生一个不同的输出。

本发明的实施例被提供用于在多个代码转换会话中对中间数据进行再利用,从而降低了在代码转换器上的计算需求(比如图1的多输出代码转换系统100)。在代码转换会话中所产生的中间数据被存储在存储器中。其他代码转换会话可以访问并重新获得该中间数据。为了有效地存储和再利用中间数据,希望适当地选择存储哪个中间数据。

图3A示出了根据本发明一个实施例的二代码转换维的二维图形表示。一个栅格点(比如一个处理点)代表一个复合的代码转换操作。一个第一操作a可以缩减屏幕尺寸一个因数2,并缩减比特率一个因数2。第二操作b可以缩减屏幕尺寸一个因数4,并缩减比特率一个因数4。该第二操作可以根据操作a的结果来渐进地实现。

该第三操作c缩减屏幕尺寸一个因数8,并缩减比特率一个因数3。操作c当对操作a的比特率缩减部分进行再利用时,可以对操作b的结果的屏幕尺寸缩减部分进行再利用。操作c由于操作b的结果具有较低的比特率而不能对操作b的比特率缩减部分进行再利用。而且,在一个实施例中,虽然操作c可以使用操作a的屏幕尺寸缩减部分,但是操作c使用操作b的屏幕尺寸缩减部分,这是因为它产生比使用操作a要小的计算负荷。

加入另一维,比如帧速率缩减,把该处理空间变成一个三维处理空间。图3B示出了根据本发明一个实施例的三代码转换维的三维图形表示。一个点(比如一个处理点)代表一个复合代码转换操作。采用在图3A中所述的相同的原理。通常,一个操作可以根据不需要较大缩减的另一操作的结果来渐进地实现。同样,一个操作基于最小计算需求的原因而选择另一操作的操作部分,把其结果用于代码转换中。

还可能有利的是有选择地确定存储哪些中间数据。比如,对于比特率缩减,在最小目标比特率等级上与量化结果(比如CBP)有关的信息不能被再利用;因此,就不需要存储。对于屏幕尺寸缩减,在最小缩减等级上的DCT数据不能由其他任何代码转换会话来进行再利用,并同样不被存储。通常,对于远离原点的处理点,较少的元数据被存储(比如在图3A的处理点d)。

应理解,一个多输出代码转换系统(比如图1的多输出代码转换系统100)的一个代码转换会话可以渐进地再利用来自其他任何代码转换会话的元数据。在一个实施例中,请求被接收的顺序是不重要的。比如,对一个较早的请求进行响应而开始的一个代码转换会话可以对响应于一个较晚请求而开始的一个代码转换会话所产生的中间数据进行再利用。当该较晚的请求被接收时,该多输出代码转换系统调整该代码转换会话,使得较晚开始的代码转换会话存储元数据,以由较早开始的代码转换会话来使用。不用对用户进行中断就进行这种调整。

图4、5、6和7包括了在计算瓶颈上对元数据的渐进再利用的例子。这些例子包括从左到右进行渐进的多输出代码转换处理。

图4示出了根据本发明一个实施例的在一个多输出代码转换处理400中DCT信息的示例渐进再利用的框图。DCT信息的再利用被提供用于渐进的屏幕尺寸缩减。多输出代码转换处理400接收了要对输入视频按比例缩减一个因数2的请求402,并开始一个第一代码转换会话410。要对输入视频按比例缩减一个因数4的一个第二请求422被接收,并开始一个第二代码转换操作420。

第一代码转换操作的与按比例缩减操作(块404)有关的元数据406可以在第二代码转换操作中被再利用。块404产生被按比例缩减一个因数2的视频数据的中间数据(D2),该中间数据被存储。第二代码转换操作420从块404读出被存储的元数据,并执行一个附加的因数为2的按比例缩减。不需要在块424之前执行这个操作,因此在该代码转换器上降低了计算负荷。此外,执行一个因数为2的按比例缩减比因数为2的按比例缩减的操作成本更低。

继续多输出代码转换处理400的例子,要按比例缩减因数4、并进一步改变比特率的一个第三请求422被接收。响应于第三请求442而开始的第三代码转换会话读出与块424有关的元数据426,并把元数据426输入到块444,以通过使用一个不同的量化系数来改变比特率。在块444之前执行的所有操作被节省,从而减低该代码转换器上的计算负荷。

图5示出了根据本发明一个实施例的在一个多输出代码转换处理500中速率控制信息的示例渐进再利用的框图。速率控制(RC)视频处理操作使用从源帧所计算的空间活动(SA),以确定量化系数的分配。在多输出代码转换处理500中,请求502被接收,以用于根据块504的量化系数来匹配比特率,并从而开始代码转换会话510。第二请求522被接收,以用于根据块524的另一量化系数Q2来匹配比特率,并从而开始第二代码转换会话520。

在代码转换处理510的量化操作块504之前,元数据506由第二代码转换处理520进行再利用。元数据506被直接输入到块504中以用于根据Q2来匹配比特率。此外,在块512的空间活动处理处所产生的元数据508在第二代码转换处理520中被再利用,并被直接输入到块526中。如图所示,对于一个多输出代码转换器,空间活动可以被再利用于其他会话。比如,为比特率缩减代码转换(比如代码转换会话510)所计算的空间活动可以由一个代码转换(比如第二代码转换会话520)再利用于另一比特率缩减因数。

图6示出了根据本发明一个实施例的在一个多输出代码转换处理600中量化信息的示例渐进再利用的框图。来自宏块等级的元数据表示在一个宏块中的块是否被编码。比如,在具有低比特率的帧中可以不对块进行编码,因为帧之间的差别可能非常小。在MPEG语法中这种编码被称作编码块样式(CBP)。

多输出代码转换处理600接收请求602,以根据块604的按比例缩减因数D2来缩减屏幕尺寸,并根据块606的量化系数Q来缩减比特率。响应于请求602,开始代码转换会话610。第二请求622被接收,以把屏幕尺寸缩减请求602的同一按比例缩减因数D2,并把比特率缩减块624的量化系数Q2。响应于请求622,开始第二代码转换会话620。

第二代码转换会话630对在块606所产生的元数据608进行再利用。元数据608包括被按比例缩减的和比特率缩减的帧、以及CBP信息。元数据608可以被输入到块624中以进一步量化。然而,如果在一比特率缩减代码转换中这些块没有被编码(比如这些块的所有系数都为零),那么不要任何操作就可以实现一个更严格的比特率缩减代码转换(这导致粗糙的量化)。另外,由于量化结果总是为零,所以不需要严格的量化。这表明该量化系数不需要改变,这导致在量化系数计算中的节省以及在输出流的比特预算中的节省。因此,如果该CBP等于零,那么元数据608就可以直接输入到块628中,因为块624和626的处理将产生为零的结果。通过不执行不必要的操作,第二代码转换会话620的计算负荷被进一步缩减。

图7示出了根据本发明一个实施例的在一个多输出代码转换处理700中在偏差修正中差错帧信息的示例渐进再利用的框图。偏差修正典型地需要重建像素域信息,使得可以产生一个差错帧,这使由每一帧代码转换所产生的误差被累积。请求702被接收,以用于缩减比特率,以及第二请求722被接收,以用于进一步缩减比特率。

第二代码转换会话720对在块704处产生的元数据708进行再利用,并把元数据708输入到块724中。此外,图7示出,如果第二代码转换会话720代表了一个更严格的速率缩减代码转换并且相应块的CBP为零,那么由第一代码转换会话710的块706的误差累积(EA)操作所产生的差错帧可以由第二代码转换会话720在块724的偏差修正(DC)操作中被再利用。

应理解的是,这可以扩展到其中在偏差修正中需要运动补偿(M-1)的其他类型的代码转换。由于运动补偿是代码转换会话中计算强度最大的任务之一,所以通过差错帧的再利用所造成的计算节省是比较显著的。组合的多输出代码转换系统将重建的像素帧缓冲以YUV格式进行存储,如此使得同样需要偏差修正的其他代码转换会话也可以再利用该缓冲。速率缩减和屏幕尺寸缩减代码转换典型地需要偏差修正。

图8示出了根据本发明一个实施例的用于基于一个输出来产生多个代码转换输出的一个处理800的流程图。在一个实施例中,处理800通过处理器和电部件(比如一个计算机系统)在计算机可读以及计算机可执行指令的控制之下而被执行,比如图1的多输出代码转换系统100。尽管在处理800中公开了特定的步骤,但是这些步骤只是示例。也即,本发明的实施例还很适合于实施其他不同的步骤或图8中所示步骤的变化。

在处理800的步骤810处,开始与具有第一属性的一个第一装置有关的一个第一代码转换会话,其中该第一代码转换会话包括多个视频处理操作。在步骤820处,开始具有第二属性的一个第二装置有关的一个第二代码转换会话。在一个实施例中,该第二属性中的至少一个是一个相应第一属性的渐进缩减。在一个实施例中,该第一属性包括一个第一屏幕尺寸和一个第一比特率,该第二属性包括一个第二屏幕尺寸和一个第二比特率。

在步骤830处,确定要存储该第一代码转换会话的哪些中间数据。在一个实施例中,与一个第一属性向一个第二属性的渐进缩减有关的中间数据被存储。在步骤840处,与第一代码转换会话的至少一个视频处理操作有关的至少一个中间数据被产生。在步骤850处,该中间数据被存储。应理解步骤850是可选的。在步骤860处,该第二代码转换会话被执行,其中该第二代码转换会话至少部分地基于该中间数据。

在一个实施例中,该第一属性与一个第一按比例缩减因数的一个屏幕尺寸缩减有关,并且其中相应的第二属性与一个第二按比例缩减因数的一个屏幕尺寸缩减有关,其中该第二按比例缩减因数提供了比该第一按比例缩减因数大的一个屏幕尺寸缩减。在一个实施例中,该中间数据包括根据该第一按比例缩减因数的一个屏幕尺寸缩减操作的一个结果。

在另一实施例中,该第一属性与一个第一比特率缩减因数的一个比特率缩减有关,并且其中相应的第二属性与一个第二比特率缩减因数的一个比特率缩减有关,其中该第二比特率缩减因数提供了比该第一比特率缩减因数大的一个比特率缩减。在一个实施例中,该中间数据包括基于该第一比特率缩减因数的一个比特率缩减操作的一个结果。在一个实施例中,该中间数据还包括一个编码块样式。在一个实施例中,该第二代码转换会话的执行还包括确定该编码块样式是否基本等于零,并且,如果该编码块样式基本等于零,那么就不对该中间数据执行偏差修正和误差累积。

在另一实施例中,该第一属性与一个第一按比例缩减因数的一个屏幕尺寸缩减和一个第一比特率缩减因数的一个比特率缩减有关,并且相应的第二属性与一个第一按比例缩减因数的一个屏幕尺寸缩减和一个第二比特率缩减因数的一个比特率缩减有关,其中该第二比特率缩减因数提供了比该第一比特率缩减因数大的一个比特率缩减。在一个实施例中,该中间数据包括基于该第一比特率缩减因数的一个比特率缩减操作的一个结果以及一个编码块样式。在一个实施例中,该第二代码转换会话的执行还包括确定该编码块样式是否基本等于零,并且,如果该编码块样式基本等于零,那么就不执行对该中间数据的量化。

所述本发明的不同实施例提供了一个组合的视频代码转换方法和系统,其中在给定单个输入以及有多输出请求的情况下可以有效地产生多个输出。多个输出可以以多个格式、多个帧速率、多个比特率、以及多个屏幕尺寸来产生。此外,多个输出也可以以优化的方式利用必需的最少数量的计算资源来产生。

本发明的实施例从而描述了用于根据单个输入来产生多个代码转换输出的一种方法和系统。虽然在特定实施例中对本发明进行了描述,但是应理解,本发明不应理解为局限于这些实施例,而是应根据权利要求来解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号