本地宏块信息缓冲器的制作方法

文档序号:7933387阅读:113来源:国知局
专利名称:本地宏块信息缓冲器的制作方法
本地宏块信息缓冲器本申请是申请号为2005800^959. 0、申请日为2005年12月15日、发明名称为“本
地宏块信息缓冲器”的中国专利申请的分案申请。
背景技术
媒体播放器可以将运动图像输出到显示设备。例如,媒体播放器可以获得本地存储的图像信息或者从媒体服务器接收图像信息流(例如,内容提供商可以通过电缆或者卫星网络将包括高清晰度图像帧的流传输到电视、机顶盒或者数字视频录像机)。一些情况下,对图像信息进行编码,以减少表示图像所用的数据量。例如,图像可以被分成更小的图像部分,例如宏块,从而使得对于一个图像部分编码的信息不必对于另一图像部分重复 (例如,因为相邻图像部分可能经常有类似的颜色、亮度、和/或运动特性)。因此,在对特定图像部分进行解码时,媒体播放器中的解码引擎可以本地存储和访问关于多个相邻图像部分的信息。这种方案可能需要很大的本地存储空间量,否则就难于实现。


图1是媒体系统的框图;图2示出了被分割为宏块的显示;图3是其中宏块信息存储于外部存储单元和本地缓冲器中的系统的框图;图4是示出根据一些实施例的方法的流程图;图5是根据一些实施例的,其中宏块信息存储在外部存储单元和本地缓冲器中的系统300的框图;图6是示出根据一些实施例的预取等待时间(pre-fetch latency)的时序框图7是根据一些实施例的,其中宏块自适应帧/场编码信息存储在外部存储单元和本地缓冲器中的系统的框图;图8示出了根据一些实施例的宏块、宏块分区和子宏块;以及图9是根据一些实施例的系统的框图。
具体实施例方式媒体播放器可以接收图像信息,解码该信息,并向显示设备输出信号。例如,数字视频录像机(DVR)可以获得本地存储的图像信息,或者,机顶盒可以从远程设备接收图像信息流(例如,内容提供商可以通过电缆或者卫星网络将包含高清晰度图像帧的流传输到机顶盒)。图1是媒体系统100的框图,包括媒体服务器100,该系统包括通过通信网络130 给远程媒体服务器120提供图像信息的媒体服务器110。在发射机116将数据作为图像信息流发射之前,编码器114可以减少用于表示图像内容112的数据的量。如这里所用的,可以根据多个不同协议中的任何一种,对信息进行编码和/或解码。例如,可以根据国际电信联盟-电信标准化部门(ITU-T)推荐的题为"Advanced Video Coding for Generic Audiovisual Services (用于通用音视步页
4服务的先进视频编码)"O004)的H.沈4,或者国际标准化组织(ISO)/国际工程联合会 (IEC)运动图像专家组(MPEG)的题为"Advanced Video Coding (Part 10)(先进视频编码(第10部分))"O004)的标准,来处理图像信息。作为其它的例子,可以根据ISO/ IEC 的编号为 14496、题为〃 MPEG-4 Information Technology-Coding of Audio-Visual Objects (MPEG-4信息技术-音频视频对象编码)"Q001)的文档,或者由IS0/IEC的编号为 13818-1、题为"Information Technology-Generic Coding of Moving Pictures and Associated Audio ^formation(信息技术-运动图像及其相关音频信息的通用编码)“Q000)的文档所定义的MPEG2协议,来处理图像信息。作为其它的例子,可以根据Microsoft Windows Media Video 9 (MSWMV9)信息或运动图像和电视工程师协会(SMPTE)视频编解码器1 (VC-I)信息,来处理图像信息。接收到的图像流可以包含与图像的多个部分相关的信息(例如参数值),并且与那些部分相关的信息可以存储在输出引擎1 或解码器外部的存储单元122中。需要注意,针对一个图像部分所编码的信息可以对另一个图像部分再次使用。因此,输出引擎1 可以将关于多个相邻部分的信息从外部存储单元122传送到基于块的本地参数缓冲器或高速缓冲存储器126中。然后,输出引擎IM可以从本地缓冲器1 访问这些信息,以重建或解码每个图像部分。根据一些实施例,本地缓冲器124与输出引擎IM形成在同一管芯 (die)上。例如,考虑到H. 264图像信息。如图2所示,显示图像200可以被分割成多个“宏块”210组成的阵列。每个宏块可表示一个16x16个图像样本或像素的组。而且,该阵列可以包含行,每行有例如120个宏块210。输出引擎IM可以从顶部行开始,在宏块210的多个行上,从左至右对宏块210进行解码。当完成一行后,输出引擎1 可以开始对下一行的第一宏块210进行解码。需要注意,可能已经使用关于相邻宏块的信息对关于一个宏块210的信息进行编码(例如,因为多个相邻宏块210可能经常会有相似的特性)。因此,当对特定的宏块210 进行解码和/或解压缩时,关于该宏块210的信息可以使用来自一个或多个相邻块的预测值推导出来。在一些情况下,从单个相邻块的参数中推导出预测参数,而在另一些情况下则从与多个相邻块相关的参数推导出来。具体而言,考虑图2所示的宏块“*”。为了对宏块*进行解码,输出引擎IM可以使用先前为相邻宏块A、B、C、和/或D确定的参数值来为宏块*确定预测参数值。可以在图像信息流中接收到预测参数值和实际参数值之间的差异,并且输出引擎1 可以使用预测参数值和此差异来产生实际的参数值。然后,可使用实际参数值产生表示原始图像内容 112的输出(也可在为后面的相邻宏块确定实际参数值时使用)。为了有效地解码宏块210,输出引擎IM可以将关于正在进行解码的宏块和一个或多个相邻宏块的信息从外部存储单元122传送到本地缓冲器126。例如,图3是系统300 的框图,其中宏块信息存储在外部存储单元310和本地缓冲器320中。图3中每个方块可以表示例如包含特定宏块的参考数据或参数的宏块缓冲器。在一些情况下,可以将至少相当于一行的宏块信息(如图3阴影区域所示)从外部存储单元310传送到本地缓冲器320。 因此,输出引擎可以使用本地存储的、与宏块A、D、B、和/或C相关的信息来解码宏块*。可用此方法处理的信息的例子包括X方向运动矢量、Y方向运动矢量、帧内预测模式数据、和/或参考帧索引列表。在宏块*被解码之后,输出引擎可以开始解码宏块*右边的宏块(而宏块*现在将成为宏块A,宏块B将成为宏块D,等等)。这种方案可能需要大量的片上存储空间(on-die storage space),否则就难于实现。例如,考虑含有1920x1080个图像样本的高分辨率图像。如果每个宏块为一个16x16 个图像样本的组,则一行宏块的数量为1920/16 = 120。这样,本地存储器可能需要存储与 120个宏块以及当前被解码的宏块、总共为121个宏块相关的信息。假定每个宏块与256比特的信息相关,则本地缓冲器需要存储121x256比特,或约31千比特(Kbits)数据。在一些情况下,例如当输出引擎1 与片上系统(SoC)设计相关时,难于实现在本地存储这样数量的信息。图4为示出根据一些实施例的方法的流程图。该方法可以与例如图1的媒体播放器120相关。这里描述的流程图不一定意味着动作的固定顺序,可以以任何切合实际的顺序执行实施例。注意,这里描述的任何方法可以由硬件、软件(包括微代码)、固件或这些手段的任意组合来执行。例如,存储介质可以在其上存储指令,当机器执行该指令时,引起根据这里描述的任何实施例的执行。在402,表示图像的多行宏块存储在外部存储单元中。该外部存储单元可以包含, 例如媒体播放器的双倍数据速率(DDR)同步动态随机存取存储器(SDRAM)单元。然后,在404,将一组宏块从外部存储单元传送到本地缓冲器,并且该宏块组可以包含少于一行的宏块。本地缓冲器可以是例如与输出引擎相关联的片上缓冲器。例如,图 5为系统500的框图,其中根据一些实施例,宏块信息存储在外部存储单元510和本地缓冲器520中。在此例子中,宏块信息可以与图像自适应帧/场(PAFF)H. 264编码相关。具体而言,外部存储单元510存储与多行运动图像宏块相关的信息。本地缓冲器 520可以设置在解码器中,并且存储少于相当于一行的信息。在图5所示例子中,本地缓冲器520存储关于下面所示的参数(i)当前正在解码的宏块O、(ii)构建当前宏块所需的相邻块(八』、。、和1))、和(iii)四个附加的宏块。再次参考图4,然后,在406,基于本地缓冲器中的信息对当前宏块*进行解码,以产生图像信号。本地缓冲器520可以是,例如循环缓冲器(circular buffer),而缓冲器管理器可以安排新的信息取代旧的信息(例如,在不再需要旧的信息后)。例如,在宏块*被解码之后,将不再需要宏块A和D (而在构建下一宏块期间,宏块B将变为宏块D,宏块*将变为宏块A,并且宏块C将变为宏块B)。需要注意,当宏块*位于一行的末尾附近时,可以在本地缓冲器520中存储从下一行开始处的附加宏块。本地缓冲器中存储的附加宏块的数量(例如,除宏块*外,当前正在使用的宏块A、 B、C、和D)可以取决于与外部存储单元510相关的等待时间。例如,图6是示出根据一些实施例的预取等待时间的时序框图600。具体而言,在启动从外部存储单元610预取附加宏块的时刻和完成该预取的时刻之间存在等待时间(例如,而且该信息在本地缓冲器620中可用)。需要注意,在操作期间实际的预取等待时间可以变化(例如,由于带宽或其它因素), 并且可以基于例如最大预期等待时间来选取值L。可存储在本地缓冲器620中的附加宏块的数量可以基于L和对每个宏块进行解码所需的时间。例如,如果在L期间可以解码四个宏块,则可以将四个附加宏块存储在本地缓冲器620中。这样,在将要对当前宏块进行解码时,在本地存储器620中可以存在四个附加宏块。此时,可以启动新宏块的新预取。到本地缓冲器620中的当前宏块被解码的时刻,该新的宏块将会可用(并且可以启动另一预取)。根据另一实施例,可以预取批量宏块以确保在本地存储器620中至少有合适数量的附加宏块可用。再次考虑有1920x1080个图像样本、每个宏块为一个16x16个图像样本的组(例如,每行有120个宏块)的高分辨率图像。此外,假定在预取等待时间L期间可解码4个宏块。这样,本地存储器620可以存储当前被解码宏块、构建当前宏块所需的四个相邻宏块、 以及四个附加宏块(总共九个宏块的)的参数。如果再次假定每个宏块与256个比特信息相关,则本地缓冲器620将需要存储9x256比特或约为2. 3千比特的数据(与对于图3所描述的31千比特相比)。虽然关于PAFF帧已经描述了一些实施例,但是注意,这些实施例可以与宏块自适应帧/场(MBAFF)编码实施方案相关,该实施方案中可处理多对垂直相邻的宏块。例如,图 7是系统700的框图,其中根据一些实施例将MBAFF编码信息存储在外部存储单元710和本地缓冲器720中。虚线将可以同时构建的多对垂直相邻宏块分开。需要注意,与PAFF实施方案(例如,图5所示)相比,可以在本地缓冲器720中存储两倍的信息。此外,虽然关于宏块描述了一些实施例,但是实施例也可与其它类型的图像部分相关。例如,图8示出了显示800。在此情况下,显示800的基本上类似的部分(例如,背景区域)可以作为多个宏块810进行编码。然而,包含更多详细图像信息的其它部分可以进一步被分割成宏块分区820和子宏块830。此外,随着图像改变,显示800可以以不同方式分割。根据一些实施例,本地存储器中的信息可以与宏块、宏块分区、和/或子宏块相关。 如这里所用的,术语“宏块”可以指任意的图像部分,包括有标准H. 264宏块、宏块分区、子宏块和/或由另一标准定义的部分。图9是根据一些实施例的系统900的框图。该系统900可以与例如数字显示设备, 电视机(如高清晰电视(HDTV)单元)、DVR、游戏控制台、个人计算机(PC)或膝上型电脑、 和/或机顶盒(例如,电缆或卫星解码器)相关。系统900包含数字存储设备910,诸如DDR SDRAM器件,以及与H. 264解码器930 相关联的缓冲器920,H. 264解码器930可以根据这里所描述的任意实施例来工作。例如, 数据存储设备910可以存储与多行运动图像宏块相关的信息。缓冲器920和H. 264解码器 930可以包含集成电路(IC),而缓冲器920可以存储从数据存储设备910接收的一组宏块的信息,其中该宏块组包含少于一行的宏块。然后,该H. 264解码器930可以根据缓冲器920 中的信息(包含与相邻宏块相关的参数),产生图像信号。根据一些实施例,输出端H.沈4 解码器930产生通过数字输出940提供给显示设备(图9中没有示出)的信息。此外,该系统900还可以包括输入接口(图9中没有示出),以接收与下列中至少一个相关的信号 (i)H. 264 信息、(ii)MPEG 2 信息、或(iii)MPEG 4 信息。以下阐述各种附加的实施例。这里并不是构成要所有可行实施例的定义,且本领域技术人员将理解许多其它的实施例也是可行的。此外,虽然为清楚起见简短描述以下实施例,但本领域技术人员可以理解,如果需要,将怎样对上面的描述做出任何改变以适应这些及其它实施例和应用。例如,虽然描述了单个输出引擎或解码器,但是实施例可以与多个输出引擎或解码器相关联(而且可提供多个或共享本地缓冲器)。此外,虽然这里使用了特定图像处理协议和网络作为例子(例如,H. 264和 MPEG4),但可以结合任何其它类型的图像处理协议或网络,诸如数字地面电视广播(DTTB) 和社区接入电视(CATV)系统来使用实施例。这里所描述的若干实施例仅为阐述之目的。本领域技术人员通过这些描述可知, 也可以实现其它实施例,所述其他实施例的修改或改变仅由权利要求所限定。
权利要求
1.一种用于解码宏块的方法,包括在存储单元中存储表示图像的一行或多行宏块信息;将与一组宏块相关的信息从所述存储单元传送至缓冲器,所述宏块组包含少于一行的宏块,所述宏块组包括(i)要解码的当前宏块、(ii)解码当前宏块所需使用的相邻宏块以及(iii)附加宏块,其中所述附加宏块的数量至少部分地基于与所述存储单元相关的等待时间,并且其中,附加宏块的数量是零或更多;以及基于所述缓冲器中的信息对宏块进行解码,以产生图像信号。
2.如权利要求1所述的方法,其中,所述解码是基于与正在被解码的宏块相关的信息以及与至少一个相邻宏块相关的信息的。
3.如权利要求1所述的方法,其中,所述缓冲器包含循环片上缓冲器。
4.如权利要求1所述的方法,其中,所述存储单元包含双倍数据速率同步动态随机存取存储单元。
5.如权利要求1所述的方法,其中,所述组中的宏块数量与所述存储单元的等待时间相关。
6.如权利要求1所述的方法,其中,所述多行宏块与下列至少一个相关(i)图像自适应帧/场编码或(ii)宏块自适应帧/场编码。
7.如权利要求1所述的方法,其中,所述宏块与下列至少一个相关(i)H.264信息、 (ii)运动图像专家组2信息、(iii)运动图像专家组4信息、(iv)Microsoft Windows Media Video 9信息、或(ν)运动图像和电视工程师协会视频编解码器1信息。
8.如权利要求1所述的方法,其中,所述解码由下列至少一个执行(i)数字显示设备、 (ii)电视机、(iii)数字视频录像机、(iv)游戏设备、(ν)个人计算机、或(vi)机顶盒。
9.如权利要求1所述的方法,其中,所述存储器包括外部存储器。
10.一种用于解码图像的装置,包括用于在存储单元中存储表示图像的多行宏块信息的模块;用于将与一组宏块相关的信息从所述存储单元传送至缓冲器的模块,所述宏块组包含少于一行的宏块,所述宏块组包括(i)要解码的当前宏块、(ii)解码当前宏块所需使用的相邻宏块以及(iii)附加宏块,其中所述附加宏块的数量至少部分地基于与所述存储单元相关的等待时间,并且其中,附加宏块的数量是零或更多;以及用于基于所述缓冲器中的信息对宏块进行解码以产生图像信号的模块。
11.如权利要求10所述的装置,其中,所述解码是基于与正在被解码的宏块相关的信息以及与至少一个相邻宏块相关的信息的。
12.如权利要求10所述的装置,其中,所述缓冲器包含循环片上缓冲器。
13.如权利要求10所述的装置,其中,所述存储单元包含双倍数据速率同步动态随机存取存储单元。
14.如权利要求10所述的装置,其中,所述组中的宏块数量与所述存储单元的等待时间相关。
15.如权利要求10所述的装置,其中,所述多行宏块与下列至少一个相关(i)图像自适应帧/场编码、或(ii)宏块自适应帧/场编码。
16.如权利要求10所述的装置,其中,所述宏块与下列至少一个相关(i)H.264信息、(ii)运动图像专家组2信息、(iii)运动图像专家组4信息、(iv)Microsoft Windows Media Video 9信息、或(ν)运动图像和电视工程师协会视频编解码器1信息。
17.如权利要求10所述的装置,其中,所述解码由下列至少一个执行(i)数字显示设备、( )电视机、(iii)数字视频录像机、(iv)游戏设备、(ν)个人计算机、或(vi)机顶盒。
18.如权利要求10所述的装置,其中,所述存储器包括外部存储器。
全文摘要
根据一些实施例,外部存储单元存储表示图像的多行宏块。可将包括少于一行宏块的一组宏块从外部存储单元传送至本地缓冲器。然后可基于本地缓冲器中的信息对宏块进行解码,以产生图像信号。
文档编号H04N7/26GK102438139SQ201110304589
公开日2012年5月2日 申请日期2005年12月15日 优先权日2004年12月16日
发明者M·哈克, R·萨克塞纳 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1