通过直接离散余弦变换映射改变分辨率的设备和方法

文档序号:7572056阅读:99来源:国知局
专利名称:通过直接离散余弦变换映射改变分辨率的设备和方法
技术领域
本发明涉及一种在空间频率域中直接将编码信号中的原始转换系数映射成新的转换系数以改变编码信号中的采样数的处理器,尤其涉及通过把原始离散余弦变换系数直接映射成新的离散余弦变换系数而改变编码图像(例如以MPEG-2编码的视频信号)的分辨率。
在美国,已经推出一种标准,用于对高清晰度电视信号进行数字化编码。该标准的一部分在本质上与MPEG-2标准相同,后者由国际标准化组织(ISO)的动态图画专家组(MPEG)推出。一本国际标准(IS)出版物对该标准进行了说明,它的名字叫做《信息技术——动态图画及相关音频通用编码,推荐H.626》(“Information Technology-GenericCoding of Moving Pictures and Associated Audio,Recommendation H.626”),ISO/IEC 13818-2,1995(E)。可以从ISO得到该出版物,在此我们将其结合于此以为讲解MPEG-2数字视频编码标准的参考。
MPEG-2标准实际上是几种不同的标准。MPEG-2中定义了几种不同的概要文件,每种都对应不同复杂程度的编码图像。对每一种概要文件都定义了不同的程度,分别对应不同的图像分辨率。其中一个MPEG-2标准——主概要文件-主程度(MP@ML)——用于对视频信号编码,使其适应现有的电视标准(即NTSC和PAL);另一种标准——主概要文件-高程度(MP@HL)——用于对高清晰度电视图像进行编码。
按照MP@HL标准编码的图像每帧将有1152条扫描线,每线有1920个像素。而MP@ML标准则将最大图像定义成每线720个像素,每帧567线。在美国,用于HDTV的高清晰度电视标准是MP@HL标准的一个子集,其每帧为1080线,每线1920个像素,在这种帧大小下,最大帧速率为每秒30帧。
MPEG-2标准定义了一种复杂的语法,它包含一个数据和控制信息的混合体。有些控制信息能使信号具有几种不同的格式,以便落入被该标准范围内。这些格式定义出的图像的每条扫描线具有不同数目的图形元素(像素)、每帧(场)中具有可变数目的扫描线,以及每秒具有可变数目的帧(场)数。另外,MPEG-2主概要文件的语法定义了压缩MPEG-2位流,它代表位于六个层中的一系列图像,这些层分别是序列层、图形组层、图形层、切片层、宏块层和块层。除了块层以外,其他每个层都由控制信息引入。最后一点,其他控制信息(也叫辅助信息,例如帧型、宏块模式、图像运动向量、系数之字形模式及反量子化信息)遍布于整个编码位流中。
高清晰度电视系统(HDTV)的实现应该与现有系统(例如NTSC和PAL)相兼容。同样,要想有效地接受数字图像,HDTV解码器必须能够产生与MP@HL标准或MP@ML标准相应的图像,从而为现有收发器提供兼容性。例如,高清晰度电视的解码器应该能够按照MP@HL标准从MP@ML编码的信号中产生图像,或者按照MP@ML标准从MP@HL编码的信号中产生图像。
另外,使用新型的高清晰度监视器的收发器(能显示由MP@HL产生的图像)可能会因为价格过高而让某些客户不敢问津。因此,HDTV解码器(能按照MP@HL或MP@ML标准产生图像)要能使用更新的廉价接受器,这些接受器带有视频监视器,能提供比MP@ML高但比MP@HL低的分辨率。带有此类监视器的电视机还应能显示由MP@HL信号产生的图像,尽管只需在较低的分辨率上。
使用现有技术,解码器可能会利用插值电路在像素域对信号进行插值或削减处理,从而将图像分辨率从MP@HL降至MP@ML。以这些传统方式处理MP@HL编码图像以生成MP@ML信号,要将MP@HL编码图像从空间频率域转换成像素域,经插值处理后生成较低分辨率的图像,然后将其转换回空间频率域。这种处理方式将有悖于在客户电视接受器上使用解码器,因为价格是其中的主要因素。必须有额外的电路对信号进行解码、插值处理或削减,然后再编码。另外在解码和编码的过程中,由于降低了编码信号的分辨率,可能会给图像带来无谓的人为干扰。
另一种方法是使用这样一个解码器,它在解码之前先选择输入高清晰度电视位流的一个部分,正如《具有高清晰度电视解码功能的SDTV接受器》(SDTV RECEIVERS WITH HDTV DECODING CAPABILITY)中所述。该论文作者是Jill Boyce等人,写于1995年2月,并于1995年5月18日在ACATS技术分小组会议(the ACATS Technical SubgroupMeeting)上宣读。该论文中讲述的解码器运用了多项技术来降低标准电视接受器的成本和复杂性。一个预分析器检查输入位流并除去不大重要的编码元素和离散余弦变换(DCT)系数,这些元素包括高频离散余弦变换系数。然后将编码元素从空间频率域转换成像素域中的像素,再对这些像素进行下采样处理以生成低分辨率图像的像素。
还有其他一些系统也能运用不同的技术对图像进行编码。例如,傅立叶变换与Z变换已经用于对空间频率域进行编码。《(电视工程手册》(Television Engineering Handbook)18.3页讲述了其中一个系统,该书作者是K.Blair Benson,写于1992年,在此将其结合于此作为讲解数字图像编码的参考。该系统运用傅立叶变换对图像编码。类似MPEG标准,该系统可用于对不同分辨率的图像进行编码。因此,对于这些系统而言,同样需要在高、低分辨率图像之间进行变换,以便给不同的接受器提供兼容性。
根据本发明实施例的设备在空间频率域中进行操作,将图像分辨率从第一图像分辨率转换为第二图像分辨率。第一组转换值代表具有第一图像分辨率的图像,它在空间频率域中被映射成第二图像分辨率,后者代表具有第二图像分辨率的图像。该设备包含存储好的预计算值,它们是第一组转换值和第二组转换值之间的映射系数值。这些预计算值从内存中检索,并能在空间频率域中直接将第一组转换值映射成第二组转换值。


图1是本发明的典型实施例中离散余弦变换转换设备的方框图。
图2(a)和2(b)是图1所示离散余弦变换转换器140工作的流程图。
图3(a)是数据结构图,显示了六个宏块。
图3(b)是数据结构图,显示图3(a)中一个宏块的内容。
图3(c)是数据结构图,显示由图3(a)中六个宏块产生的、经转换的宏块CMB。
图4是数据结构表,显示像素域中六个宏块映射成一个宏块。
图5(a)和5(b)是图表,显示MPEG扫描模式0和MPEG扫描模式1的格式。
图5(c)是图表,显示反向之字形扫描后离散余弦变换系数格式。该扫描由图6中的反向之字形扫描存储器120来完成。
图6是,根据本发明典型实施例的解码设备的方框图。
图7是根据显示本发明的另一典型实施例的用于MPEG-2位流下转换电路方框图。
图8是流程图,显示图7中MPEG-2位流下转换电路如何工作。
图9(a)和9(b)是数据结构图,显示图7中步骤700、800、810、和820的运行情况。
图10是数据结构图,显示切片中宏块的组成。
图11(a)和11(b)是数据结构图,显示4∶2∶0块格式以帧离散余弦变换编码的亮度宏块结构及以场离散余弦变换编码的亮度宏块结构。
在本发明的典型实施例中改变图像分辨率是通过在空间频率域中将原始图像的离散余弦变换系数值F′i′j′(u′v′)映射成经转换的系数值Fij(u,v)实现的。因此,原始的离散余弦变换系数值F′i′j′(u′,v′)不必在像素域进行削减或插值处理转换为像素域的像素以增大或降低图像的分辨率。于是也不必再使用额外电路去把系数转换成像素以便对像素进行削减和插值处理、以及将处理完的像素转换回离散余弦变换系数值。
在变换域中将原始离散余弦变换系数值F′i′j′(u′,v′)转换为经转换的离散余弦变换系数值Fij(u,v)是可行的,因为在变换前后,图形中的空间像素有对应关系,这种变换是把不同的分辨率上的离散余弦变换系数值翻译成一个对应关系。用于其他变换方法(包括傅立叶变换和Z-变换)的空间频率域中的变换值也能够被转换为经转换的变换值,因为在变换前后时间域中的值也有对应关系,这种变换是把不同的分辨率上的变换值翻译成一个对应关系。
原始离散余弦变换系数值F′i′j′(u′,v′)定义了一个带有第一分辨率的图像,它们的生成是利用N点二维离散余弦变换把图像中的像素转换为离散余弦变换系数值。N点二维离散余弦变换由以下的方程(1)定义Fi′j′(u′,v′)=2N·c(u′)c(v′)Σm=0N-1Σn=0N-1f′i′j′(m,n)cos(2m+1)u′π2Ncos(2n+1)v′π2N---(1)]]>F′i′j′(u′,v′)是第j′个块和第i′个宏块的初始离散余弦变换系数值,其中u′和v′是空间频率域中的坐标,u′,v′=0、1、2……N-1;f′i′j′(m,n)是图像中的像素值,其中m和n是像素域中的空间坐标,m、n=0、……N-1;c(u′)和c(v′)是变换系数值,由方程(2)定义c(i)={1otherwise(1/2)fori=0---(2)]]>反过来,图像的像素值f′i′j′(m,n)也能从原始的离散余弦变换系数值F′i′j′(u′,v′)中得到,方法是使用N点反向离散余弦变换(IDCT)。N点IDCT定义在方程(3)中f′i′j′(m,n)=2NΣu′=0N-1Σv′=0N-1c(u′)c(v′)F′i′j′(u′,v′)cos(2m+1)u′π2Ncos(2n+1)v′π2N---(3)]]>图像的分辨率能够通过对像素域中的像素值f′i′j′(m,n)进行插值或削减来增大或减小。例如,经转换的像素值f′i′j′(x,y)能从原始的像素值f′i′j′(m,n)中得到,方法是对像素域中原始图像的像素进行线性叠加,如方程(4)所示fij(x,y)=Σi′Σf′Σm=0N-1Σn=0N-1αi′,j′,m,ni,j,x,y·f′i′j′(m,n)---(4)]]>α是在原始像素值f′i′j′(m,n)和转换后的像素值fij(x,y)之间的转换系数。由转换后的像素值fij(x,y)定义的图象与由原始像素值f′i′j′(m,n)定义的图象的分辨率不同。
经转换的离散余弦变换系数值Fij(u,v)能从经转换的像素值fij(x,y)中通过以下方程得到Fij(u,v)=2N·c(u)c(v)Σx=0N-1Σy=0N-1fij(x,y)cos(2x+1)uπ2Ncos(2y+1)vπ2N---(5)]]>Fij(u,v)是第j个块和第i个宏块中的经转换的离散余弦变换系数值,其中u和v是经转换图像中空间频率域的坐标,u,v=0、……N-1;fij(x,y)是经转换的像素值,其中x、y是经转换图像的像素域的空间坐标,x,y=0、……N-1。原始像素值f′i′j′(m,n)与经转换离散余弦变换系数值Fij(u,v)的对应关系示于方程(6)中,其中方程(5)被重写,即用方程(4)的右边代替经转换的像素值fij(x,y)。Fij(u,v)=2N·c(u)c(v)·]]>Σx=0N-1Σy=0N-1(Σi′Σj′Σm=0N-1Σn=0N-1αi′,j′,m,ni,j,x,y·f′i′j′(m,n))cos(2x+1)uπ2Ncos(2y+1)vπ2N----(6)]]>由于原始像素值f′i′j′(m,n)能用原始离散余弦变换系数值F′i′j′(u′,v′)来表示(如方程(3)所示),经转换的离散余弦变换系数值Fij(u,v)就能用原始离散余弦变换系数值F′i′j′(u′,v′)来表示。方程(7)对此加以了证明,其中方程(3)右边被替代成方程(6)中原始像素值f′i′j′(m,n)。Fij(u,v)=4N2·c(u)c(v).]]>Σi′Σj′Σu′=0N-1Σv′=0N-1Σx=0N-1Σy=0N-1Σm=0N-1Σn=0N-1αi′,j′,m,ni,j,x,ycos[(2x+1)uπ2N]cos[(2y+1)vπ2N].]]>cos[(2m+1)u′π2N]cos[(2n+1)v′π2N]·c(u′)c(v′)F′i′j′(u′,v′)----(7)]]>把方程(7)重写能得出方程(8)和(9)Fij(u,v)=Σi′Σj′Σu′=0N-1Σv′=0N-1PCVi′,j′,u′,v′i,j,u,v·F′i′j′(u′,v′)---(8)]]>其中PCVi′,j′,u′,v′i,j,u,v=4N2·c(u)c(v)c(u′)c(v′)·]]>Σx=0N-1Σy=0N=1Σm=0N-1Σn=0N-1αi′j′,m,ni,j,x,ycos(2x+1)uπ2Ncos(2y+1)vπ2N·]]>cos(2m+1)u′π2Ncos(2n+1)v′π2π]]>m和n是像素域中原始像素值f′i′j′(m,n)的空间坐标,m,n=0,……,N;x和y是经转换的像素值fij(x,y)在像素域中的空间坐标,x,y=0,……,N-1;u′和v′是原始离散余弦变换系数值F′i′j′(u′,v′)在空间频率域中的坐标,u′,v′=0,1,2,……N-1;u和v是经转换的离散余弦变换系数值Fij(u,v)在空间频率域中的坐标,u,v=0,1,2,……N-1;α是转换系数。
转换系数α的典型值列在表1-6中,用于将6个宏块(以三乘二宏块排列)转换成一个宏块,如下文所述。由于方程(9)中每个值——x、y、m、n、u、v、u′、v′、和α——都是已知常量,预计算值PCV能通过方程(9)得出,而不管原始离散余弦变换系数值F′i′j′(u′,v′)(待转换)是多少。计算预计算值PCV与原始离散余弦变换系数值F′i′j′(u′,v′)及经转换的离散余弦变换系数值Fij(u,v)无关。预计算值PCV用于将任何原始离散余弦变换系数值F′i′j′(u′,v′)转换成经转换的系数值Fij(u,v),为得是将六个宏块(按三乘二排列)转换成一个经转换的宏块。
如上文所述,经转换的离散余弦变换系数值Fij(u,v)与具有不同分辨率的图像相对应,而非原始离散余弦变换系数值F′i′j′(u′,v′)所代表的图像。因此,通过将原始离散余弦变换系数值F′i′j′(u′,v′)映射成经转换的离散余弦变换系数值Fij(u,v)就可以改变图像的分辨率。这样就无需使用额外电路将原始离散余弦变换系数值F′i′j′(u′,v′)转换成像素值并执行插值和削减处理,也无需使用电路将像素值转换回经转换的离散余弦变换系数值Fij(u,v)以完成处理。另外,转换图像的处理时间也缩短了,因为免去了以下步骤将离散余弦变换系数转换成像素值、处理像素值、再将处理过的像素值转换回离散余弦变换系数。最后,经过这种方式转换的图像比那种先转换到像素域、再经插值处理、然后再转换回空间频率域的图像少了人为干扰因素。
图1显示了一个离散余弦变换转换设备的整体结构,作为本发明的典型实施例,它在空间频率域中将原始离散余弦变换系数值F′i′j′(u′,v′)映射成经转换的离散余弦变换系数值Fij(u,v)。该离散余弦变换转换设备5可以减少或增加原始离散余弦变换系数值F′i′j′(u′,v′)的数量。
如图1所示,原始离散余弦变换系数值F′i′j′(u′,v′)所代表的编码图像数据存储在存储器10中。编码图像数据是按MP@HL或MP@ML编码的图像。原始离散余弦变换系数值F′i′j′(u′,v′)排列在宏块中,没有经过量子化。原始离散余弦变换系数值F′i′j′(u′,v ′)被提供给离散余弦变换转换器140,该转换器能将原始离散余弦变换系数值F′i′j′(u′,v′)映射成转换的离散余弦变换系数值Fij(u,v),后者代表降低或提高了分辨率的图像。举例来说,当输入位流从MP@HL转换成MP@ML,离散余弦变换系数数量减少;当输入位流从MP@ML转换成MP@HL时,离散余弦变换系数数量增加。经转换的离散余弦变换系数存储在存储器30中。下面对离散余弦变换转换器140作详细的说明。
离散余弦变换转换器140响应控制信号CS2将原始离散余弦变换系数值F′i′j′(u′,v′)映射成经转换后的离散余弦变换系数值Fij(u,v)。控制信号CS2指定了如何改变图像的分辨率,即将一幅1920×1080的隔行图像转换成640×540的隔行图像。响应控制信号CS2,原始离散余弦变换系数值F′i′j′(u′,v′)从存储器10中被检索出来;响应选择信号SS1,预计算值PCV被从存储器40中检索出来。存储器40可以是随机存储器,也可以是只读存储器。
如上文所述,预计算值PCV能够独立于原始离散余弦变换系数值F′i′j′(u′,v′)而被计算出来。在把原始离散余弦变换系数值F′i′j′(u′,v′)转换成经转换的离散余弦变换系数值Fij(u,v)之前把预计算值PCV保存在存储器40中。预计算值PCV从存储器40中检索出来,如下面所说明的。如方程(8)所述,原始离散余弦变换系数值F′i′j′(u′,v′)乘以相应的预计算值PCV,再求和,就能在空间频率域中得出经转换的预计算值Fij(u,v)。
下面结合图2-4详细讲解离散余弦变换转换器140。首先,在图2(a)所示的步骤200处,离散余弦变换转换器140响应控制信号CS2被设置以便在空间频率域中转换原始离散余弦变换系数值F′i′j′(u′,v′)。控制信号CS2指定了如何改变待转换图像的分辨率。
原始离散余弦变换系数值F′i′j′(u′,v′)包含在宏块中。图3(a)是一个数据结构图,显示了MB0-MB5六个宏块,它们组成了待转换图像的一部分。如图3(b)所示,每个宏块(MB0-MB5)都由六个块组成四个亮度块b0-b3和两个色度块b4-b5。该格式在MPEG-2标准中被当作4∶2∶0。
如图5(c)所示,b0-b5的每个块都包含64个离散余弦变换系数,每个被分配了一个地址值z1,介于0到63之间。替换之,地址值可由原始离散余弦变换系数值F′i′j′(u′,v′)的空间坐标u′、v′来指定。每个经转换的离散余弦变换系数值Fij(u,v)同样也包含64个离散余弦变换系数,每一个被分配了一个地址值z,介于0到63之间。通过指定原始离散余弦变换系数值的地址值z1、第j个块(它包含原始离散余弦变换系数值)、及第i个宏块(它包含第j个块),原始离散余弦变换系数值能够从存储器10中检索出。
图3(a)中的宏块的转换示于图4中,其中,像素域中像素代表图象,它被排列成宏块MB0-MB5,其中宏块的格式是帧格式。原始像素值f′i′j′(m,n)位于每个索引300处,而且经转换的像素值f′ij(u,v)位于每个索引310处,该索引具有填充的圆。在图4中,原始图像是1920×1080像素,而经转换的图像是640×540像素。原始图像在水平上被有效地削减至三分之一,在垂直方向上被有效地削减至二分之一,从而产生分辨率为640×540像素的图像。确定水平和垂直方向的有效削减因子是通过响应控制信号CS2来完成的。在存储器40中有一套相应的预计算值PCV与每套水平和垂直削减因子αi,j,x,yi′,j′,m,n相对应。正如上文所述,预计算值PCV是通过方程(9)计算出来的,它被保存在存储器40相应的位置,如图1所示。
接着,在图2(a)所示的步骤210处,预计算值从存储器40中取出,并提供给离散余弦变换转换器140。根据宏块、块、原始离散余弦变换系数值及经转换的离散余弦变换系数值的地址值从存储器40中将预计算值PCV挑选出。预计算值保存在存储器40由地址信号SS1指定的一个地址处。地址信号SS1提供预计算值PCV的地址,从而将第i个原始宏块的第j个块的第z1个离散余弦变换系数值转换成经转换的宏块的第j个块的第z个离散余弦变换系数值。z1是原始离散余弦变换系数值的地址值,z是经转换的离散余弦变换系数值的地址值。
然后,在步骤220,按照方程(8)利用原始离散余弦变换系数值F′i′j′(u′,v′)和预计算值PCV生成经转换的离散余弦变换系数值Fij(u,v)。下面的表0是典型的C代码,它利用原始离散余弦变换系数值F′i′j′(u′,v′)和预计算值PCV确定经转换的离散余弦变换系数值Fij(u,v)。在表1中,各值是这样定义的j表示经转换的宏块中第j个块;z经转换的宏块中第j个块的第z个离散余弦变换系数值;i1表示原始宏块中第i个宏块;j1表示第i个原始宏块中第j个块;z1表示第i个原始宏块中第j个块的第z1个离散余弦变换系数值;map[j][z][i1][j1][z1]表示预计算值PCV,用于(1)经转换的宏块的第j个块的第z个离散余弦变换系数值与(2)第i个原始宏块的第j个块的第z1个离散余弦变换系数值之间的转换;mb_old表示原始宏块MB0-MB5;mb_new表示经转换的宏块;以及dclip()表示剪裁[-2048,2048]区域内的离散余弦变换系数值。表1<pre listing-type="program-listing"><![CDATA[dct_mapping(mb_old,mb_new)short mb_old[6][6][64]; /*6输入MB*/short mb new[6][64];/*1新输出MB*/{ register double sum; int j,j1,j1,z,z1; int x,y; /*Y,亮度*/ for(j=0;j<4;j++) {/*4个DCT块*/for(z=0;z<64;z++) { /*8×8输出DCT每个块的系数*/sum=0for(i1=0;i1<6;I1++) { /*6输入MB*/for(j1=0;j1<4;j1++) { /*4个DCT块*/for(z1=0;z1<64;z1++) { /*8×8DCT 系数*/ sum+=(map[j][z][i1][j1][z1]*mb_old[i1][j1][z1]); }} } mb_new[j][z]=dclip(sum); } } /*色度Cr和Cb*/ for(j=4;j<6;j++) { /*每个Cr和Cb 都有一个块*/ for(z=0;z<64;z++) { /*8×8输出DCT每个块的系数*/sum=0;for(i1=0;i1<6;i1++) { /*6输入MB*/ for(z1=0;z1<64;z1++){/*8×8输出DCT 每个块的系数*/ sum+=(mapC[z][i1][z1]*mb_old[i1][z1]); }}mb_new[j][z]=dclip(sum); } }}]]></pre>步骤210和220及表1中的代码可参照图2(b)中的流程图加以解释。首先,在步骤410处决定生成哪个经转换的离散余弦变换系数值Fij(u,v)。为将6个宏块转换成一个宏块,要产生64个经转换的离散余弦变换系数值。经转换的离散余弦变换系数值按顺序生成,第一个经转换的离散余弦变换系数值被分配的地址值为0,最后一个地址值为63。于是在步骤415,值Ftemp被置为0。
然后在步骤420,一原始离散余弦变换系数值F′i′j′(u′,v′)从如图1所示的存储器10中取出。图1的离散余弦变换转换器140为每个存在存储器40中的原始离散余弦变换系数值F′i′j′(u′,v′)保留一个地址。地址由地址值z1、块值j1以及原始离散余弦变换系数值F′i′j′(u′,v′)的宏块值i1指定。地址值z1标记原始离散余弦变换系数值F′i′j′(u′,v′)之一,值j1指定从哪个块检索原始离散余弦变换系数值F′i′j′(u′,v′),值i1指定从哪个宏块检索原始离散余弦变换系数值F′i′j′(u′,v′)。用于从存储器40中检索原始离散余弦变换系数值F′i′j′(u′,v′)的地址由离散余弦变换转换器140产生。
离散余弦变换转换器140根据方程(8)指定的原始离散余弦变换系数值F′i′j′(u′,v′)确定检索哪个原始离散余弦变换系数值F′i′j′(u′,v′),并用其计算下一个经转换的离散余弦变换系数值Fij(u,v),后者在步骤410确定。
例如在上文表1的代码中,经转换的宏块的亮度块产生于每个原始六宏块中的每个离散余弦变换系数值F′i′j′(u′,v′)。原始离散余弦变换系数值F′i′j′(u′,v′)按顺序从第一原始宏块的第一个块中检索出来,即每次重复步骤420,下一个按顺序排列的原始离散余弦变换系数值就被检索出。一旦所有的原始离散余弦变换系数值F′i′j′(u′,v′)都从第一个块中检索出,就开始从第一个宏块的下一个块中检索它们。一旦所有的原始离散余弦变换系数值F′i′j′(u′,v′)都被从第一个宏块中检索出,就开始从下一个宏块的第一个块中检索它们。这个步骤将被重复执行,直到每个宏块中的原始离散余弦变换系数值F′i′j′(u′,v′)都被检索出。
下一步,在步骤440,离散余弦变换转换器从存储器40中挑出预计算值PCV。如表1中代码所示,值z、j、z1、j1和i1也同样用于确定哪个预计算值PCV需要从存储器40中检索出。如上文所述,存储器中存有一个预计算值PCV,它用于在经转换的宏块中第j个块的第z个经转换离散余弦变换系数和第i1个宏块中第j1个块的第z1个原始离散余弦变换系数之间进行映射。预计算值是利用下面表1-6中的值α按上文所述的步骤在方程(9)中算出。
表2包含的值α用于转换亮度块b0,表3包含的值α用于转换亮度块b1,表4包含的值α用于转换亮度块b2,表5包含的值α用于转换亮度块b3,表6包含的值α用于转换色度块b4,表7包含的值α用于转换色度块b5。预计算值PCV产生于表1-6中的值α。
表2&alpha;0,0,3x,2y0,0,x,y=1]]>x<3,y<4,偶数&alpha;0,0,3x,2y-10,0x,y=12]]>x<3,y<4,奇数&alpha;0,0,3x,2y+10,0,x,y=12]]>x<3,y<4,奇数&alpha;0,1.3(x-3)+1.2y0,0,x,y=1]]>3<=x<6,y<4,偶数&alpha;0,1.3(x-3)+1.2y-10,0,x,y=12]]>3<=x<6,y<4,奇数&alpha;0,1.3(x-3)+1.2y+10,0,x,y=12]]>3<=x<6,y<4,奇数&alpha;1,0.3(x-6)+2.2y0,0,x,y=1]]>x>=6,y<4,偶数&alpha;1,0.3(x-6)+2.2y-10,0,x,y=12]]>x>=6,y<4,奇数&alpha;1,0.3(x-6)+2.2y+10,0,x,y=12]]>x>=6,y<4,奇数&alpha;0,2,3x,2(y-4)0,0,x,y=1]]>x<3,y>=4,偶数&alpha;0,2,3x,2(y-4)-10,0,x,y,=12]]>x<3,y>=4,奇数&alpha;0,2,3x,2(y-4)+10,0,x,y=12]]>x<3,y>=4,奇数&alpha;0,3,3(x-3)+1,2(y-4)0,0,x,y=1]]>3<=x<6,y>=4,偶数&alpha;0,3,3(x-3)+1,2(y-4)-10,0,x,y=12]]>3<=x<6,y>=4,奇数&alpha;0,3,3(x-3)+1,2(y-4)+10,0,x,y=12]]>3<=x<6,y>=4,奇数&alpha;1,2,3(x-6)+2,2(y-4)0,0,x,y=1]]>x>=6,y>=4,偶数&alpha;1,2,3(x-6)+2,2(y-4)-10,0,x,y=12]]>x>=6,y>=4,奇数&alpha;1,2,3(x-6)+2,2(y-4)+10,0,x,y=12]]>x>=6,y>=4,奇数表3&alpha;1,1,3x,2y0,1,x,y=1]]>x<3,y>=4,偶数&alpha;1,1,3x,2y-10,1,x,y=12]]>x>3,y>=4,奇数&alpha;1,1,3x,2y+10,1,x,y=12]]>x>3,y>=4,奇数&alpha;2,0,3(x-3)+1,2y0,1,x,y=1]]>3<=x<6,y>=4,偶数&alpha;2,0,3(x-3)+1,2y-10,1,x,y=12]]>3<=x<6,y>=4,奇数&alpha;2,0,3(x-3)+1,2y+10,1,x,y=12]]>3<=x<6,y>=4,奇数&alpha;2,1,3(x-6)+2,2y0,1,x,y=1]]>x>=6,y>=4,偶数&alpha;2,1,3(x-6)+2,2y-10,1,x,y=12]]>x>=6,y>=4,奇数&alpha;2,1,3(x-6)+2,2y+10,1,x,y=12]]>x>=6,y>=4,奇数&alpha;1,3,3x,2(y-4)0,1,x,y=1]]>x<3,y>=4,偶数&alpha;1,3,3x,2(y-4)-10,1,x,y=12]]>x>3,y>=4,奇数&alpha;1,3,3x,2(y-4)+10,1,x,y=12]]>x>3,y>=4,奇数&alpha;2,2,3(x-3)+1,2(y-4)0,1,x,y=1]]>3<=x<6,y>=4,偶数&alpha;2,2,3(x-3)+1,2(y-4)-10,1,x,y=12]]>3<=x<6,y>=4,奇数&alpha;2,2,3(x-3)+1,2(y-4)+10,1,x,y=12]]>3<=x<6,y>=4,奇数&alpha;2,3,3(x-6)+2,2(y-4)0,1,x,y=1]]>x>=6,y>=4,偶数&alpha;2,3,3(x-6)+2,2(y-4)-10,1,x,y=12]]>x>=6,y>=4,奇数&alpha;2,3,3(x-6)+2,2(y-4)+10,1,x,y=12]]>x>=6,y>=4,奇数表4&alpha;3,0,3x,2y0,2,x,y=1]]>x<3,y<4,偶数&alpha;3,0,3x,2y-10,2,x,y=12]]>x<3,y<4,奇数&alpha;3,0,3x,2y+10,2,x,y=12]]>x<3,y<4,奇数&alpha;3,1,3(x-3)+1,2y0,2,x,y=1]]>3<=x<6,y<4,偶数&alpha;3,1,3(x-3)+1,2y-10,2,x,y=12]]>3<=x<6,y<4,奇数&alpha;3,1,3(x-3)+1,2y+10,2,x,y=12]]>3<=x<6,y<4,奇数&alpha;4,0,3(x-6)+2,2y0,2,x,y=1]]>x>=6,y<4,偶数&alpha;4,0,3(x-6)+2,2y-10,2,x,y=12]]>x>=6,y<4,奇数&alpha;4,0,3(x-6)+2,2y+10,2,x,y=12]]>x>=6,y<4,奇数&alpha;3,2,3x,2(y-4)=10,2,x,y]]>x<3,y>=4,偶数&alpha;3,2,3x,2(y-4)-10,2,x,y=12]]>x<3,y>=4,奇数&alpha;3,2,3x,2(y-4)+10,2,x,y=12]]>x<3,y>=4,奇数&alpha;3,3,3(x-3)+1,2(y-4)0,2,x,y=1]]>3<=x<6,y>=4,偶数&alpha;3,3,3(x-3)+1,2(y-4)-10,2,x,y=12]]>3<=x<6,y>=4,奇数&alpha;3,3,3(x-3)+1,2(y-4)+10,2,x,y=12]]>3<=x<6,y>=4,奇数&alpha;4,2,3(x-6)+2,2(y-4)0,2,x,y=1]]>x>=6,y>=4,偶数&alpha;4,2,3(x-6)+2,2(y-4)-10,2,x,y=12]]>x>=6,y>=4,奇数&alpha;4,2,3(x-6)+2,2(y-4)+10,2,x,y=12]]>x>=6,y>=4,奇数表5&alpha;4,1,3x,2y0,3,x,y=1]]>x<3,y<4,偶数&alpha;4,1,3x,2y-10,3,x,y=12]]>x<3,y<4,奇数&alpha;4,1,3x,2y+10,3,x,y=12]]>x<3,y<4,奇数&alpha;5,0,3(x-3)+1,2y0,3,x,y=1]]>3<=x<6,y<4,偶数&alpha;5,0,3(x-3)+1,2y-10,3,x,y=12]]>3<=x<6,y<4,奇数&alpha;5,0,3(x-3)+1,2y+10,3,x,y=12]]>3<=x<6,y<4,奇数&alpha;5,1,3(x-6)+2,2y0,3,x,y=1]]>x>=6,y<4,偶数&alpha;5,1,3(x-6)+2,2y-10,5,x,y=12]]>x>=6,y<4,奇数&alpha;5,1,3(x-6)+2,2y+10,5,x,y=12]]>x>=6,y<4,奇数&alpha;4,2,3x,2(y-4)0,3,x,y=1]]>x<3,y>=4,偶数&alpha;4,2,3x,2(y-4)-10,3,x,y=12]]>x>3,y>=4,奇数&alpha;4,2,3x,2(y-4)+10,3,x,y=12]]>x>3,y>=4,奇数&alpha;5,2,3(x-3)+1,2(y-4)0,3,x,y=1]]>3<=x<6,y>=4,偶数&alpha;5,2,3(x-3)+1,2(y-4)-10,3,x,y=12]]>3<=x<6,y>=4,奇数&alpha;5,2,3(x-3)+1,2(y-4)+10,3,x,y=12]]>3<=x<6,y>=4,奇数&alpha;5,3,3(x-6)+2,2(y-4)0,3,x,y=1]]>x>=6,y>=4,偶数&alpha;5,3,3(x-6)+2,2(y-4)-10,3,x,y=12]]>x>=6,y>=4,奇数&alpha;5,3,3(x-6)+2,2(y-4)+10,3,x,y=12]]>x>=6,y>=4,奇数表6&alpha;0,4,3x,2y0,4,x,y=1]]>x<3,y<4,偶数&alpha;0,4,3x,2y-10,4,x,y=12]]>x<3,y<4,奇数&alpha;0,4,3x,2y+10,4,x,y=12]]>x<3,y<4,奇数&alpha;1,4,3(x-3)+1,2y0,4,x,y=1]]>3<=x<6,y<4,偶数&alpha;1,4,3(x-3)+1,2y-10,4,x,y=12]]>3<=x<6,y<4,奇数&alpha;1,4,3(x-3)+1,2y+10,4,x,y=12]]>3<=x<6,y<4,奇数&alpha;2,4,3(x-6)+2,2y0,4,x,y=1]]>x>=6,y<4,偶数&alpha;2,4,3(x-6)+2,2y-10,4,x,y=12]]>x>=6,y<4,奇数&alpha;2,4,3(x-6)+2,2y+10,4,x,y=12]]>x>=6,y<4,奇数&alpha;3,4,3x,2(y-4)0,4,x,y=1]]>x<3,y>=4,偶数&alpha;3,4,3x,2(y-4)-10,4,x,y=12]]>x<3,y>=4,奇数&alpha;3,4,3x,2(y-4)+10,4,x,y=12]]>x<3,y>=4,奇数&alpha;4,4,3(x-3)+1,2(y-4)0,4,x,y=1]]>3<=x<6,y>=4,偶数&alpha;4,4,3(x-3)+1,2(y-4)-10,4,x,y=12]]>3<=x<6,y>=4,奇数&alpha;4,4,3(x-3)+1,2(y-4)-10,4,x,y=12]]>3<=x<6,y>=4,奇数&alpha;5,4,3(x-6)+2,2(y-4)0,4,x,y=1]]>x>=6,y>=4,偶数&alpha;5,4,3(x-6)+2,2(y-4)0,4,x,y=12]]>x>=6,y>=4,奇数&alpha;5,4,3(x-6)+2,2(y-4)+10,4,x,y=12]]>x>=6,y>=4,奇数表7&alpha;0,5,3x,2y0,5,x,y=1]]>x<3,y<4,偶数&alpha;0,5,3x,2y-10,5,x,y=12]]>x<3,y<4,奇数&alpha;0,5,3x,2y+10,5,x,y=12]]>x<3,y<4,奇数&alpha;1,5,3(x-3)+1,2y0,5,x,y=1]]>3<=x<6,y<4,偶数&alpha;1,5,3(x-3)+1,2y-10,5,x,y=12]]>3<=x<6,y<4,奇数&alpha;1,5,3(x-3)+1,2y+10,5,x,y=12]]>3<=x<6,y<4,奇数&alpha;2,5,3(x-6)+2,2y0,5,x,y=1]]>x>=6,y<4,偶数&alpha;2,5,3(x-6)+2,2y-10,5,x,y=12]]>x>=6,y<4,奇数&alpha;2,5,3(x-6)+2,2y+10,5,x,y=12]]>x>=6,y<4,奇数&alpha;3,5,3x,2(y-4)0,5,x,y=1]]>x<3,y>=4,偶数&alpha;3,5,3x,2(y-4)-10,5,x,y=12]]>x<3,y>=4,奇数&alpha;3,5,3x,2(y-4)+10,5,x,y=12]]>x>3,y>=4,奇数&alpha;4,5,3(x-3)+1,2(y-4)0,5,x,y=1]]>3<=x<6,y>=4,偶数&alpha;4,5,3(x-3)+1,2(y-4)-10,5,x,y=12]]>3<=x<6,y>=4,奇数&alpha;4,5,3(x-3)+1,2(y-4)+10,5,x,y=12]]>3<=x<6,y>=4,奇数&alpha;5,5,3(x-6)+2,2(y-4)0,5,x,y=1]]>x>=6,y>=4,偶数&alpha;5,5,3(x-6)+2,2(y-4)-10,5,x,y=12]]>x>=6,y>=4,奇数&alpha;5,5,3(x-6)+2,2(y-4)+10,5,x,y=12]]>x>=6,y>=4,奇数预计算值PCV通过表2至表7的值α计算得出,用于离散余弦变换系数值的帧对帧转换。图11(a)和图11(b)分别显示4∶2∶0块格式中以帧离散余弦变换编码的亮度宏块结构和以场离散余弦变换编码的亮度宏块结构。在帧编码的宏块中,b0-b3每个块都由两个场交替组成。在场编码的宏块中,b0-b3每个块都由其中一个场中的线组成。每种格式的色度宏块都以帧格式组成。预计算值用于将一组帧编码的宏块转换成单个帧编码的宏块。预计算值同样可用于将一组场编码的宏块转换成单个场编码的宏块。使用预计算值进行同一类型帧对帧或场对场转换的好处在于可以减小用于保存系数的存储器的规模。
另外,预计算值PCV能通过离散余弦变换转换器140由值α中求出。下面的表8是一段伪码,可以从值α求出预计算值。
表810 ifx<=N-1 theny=020 ify<=N-1 thenm=030 ifm<=N-1 thenn=040 ifn<=N-1 thenTMP=&alpha;[i][j][m][n]&CenterDot;cos(2x+1)u&pi;2N&CenterDot;cos(2y+1)v&pi;2N&CenterDot;]]>cos(2m+1)u&prime;&pi;2N&CenterDot;cos(2n+1)v&prime;&pi;2N]]>PCV=PCV+TMPn=n+1goto 40else m=m+1;goto 30else y=y+1;goto 20
else x=x+1else end在该实施例中,值α保存在存储器40中。值α从存储器40中检索出,预计算值PCV通过表8中的伪码用转换器140求出。
然后在步骤460,可以计算出一个临时值Ftemp,方法是先将检索出的原始离散余弦变换系数值与预计算值PCV相乘求积,再将此积与前一个临时值Ftemp相加求和即可。因为经转换的离散余弦变换系数值Fij(u,v)可以由若干原始离散余弦变换系数值F′i′j′(u′,v′)求出,所以如果还需使用原始离散余弦变换系数值F′i′j′(u′,v′)生成经转换的离散余弦变换系数值Fij(u,v)的话,就可以在步骤470确定它。如果还需要更多的原始离散余弦变换系数值F′i′j′(u′,v′),将重复执行步骤420。否则,在步骤480处,经转换的离散余弦变换系数值Fij(u,v)就被设置成与Ftemp相等。然后在步骤490,将确定是否要生成更多的经转换宏块的经转换的离散余弦变换系数值Fij(u,v)。如果需要生成更多的经转换的离散余弦变换系数值Fij(u,v),步骤410将重复执行。
因此,在空间频率域中可以用原始离散余弦变换系数值F′i′j′(u′v′)快速生成经转换的离散余弦变换系数值Fij(u,v),且无需将离散余弦变换系数值转换成像素值。
上文所述的是本发明的典型实施例,尽管它探讨了使用直接离散余弦变换映射来有效地削减或插值处理MPEG编码信号,但是直接映射系数值可以运用到任何需要在象素域中对信号进行消减和插值处理的系统中,处理的方式是在空间频率域中直接映射由变换系数表示的信号。
图6示出了包含离散余弦变换转换器140的解码器的总体组成。该解码器根据本发明的另一典型实施例,将原始离散余弦变换系数值F′i′j′(u′,v′)映射成转换过的离散余弦变换系数值Fij(u,v)。如图6所示,输入位流IBS被运用到可变长度解码器(VLD)100上。例如,该输入位流是一个MP@HL编码的位流。VLD 100解码输入位流IBS,产生成块的量子化离散余弦变换系数值QDCT。量子化的离散余弦变换系数值QDCT被提供给记录系数值的反相之字形扫描存储器110。
采用上文所述的参考MPEG-2规格指定的格式,每次提供一个宏块中的离散余弦变换系数值。图5(a)和5(b)示出了两种不同的之字形扫描模式模式0和模式1。它们均为MPEG-2规格所使用。在反相之字形扫描存储器110中,扫描方式的类型被检测且离散余弦变换系数值如图5(c)中所示被重新安排。
接下来,离散余弦变换系数值被提供给滤波器120。滤波器120是一个低通滤波器,当图像的分辨率降低时沿对角线截断宏块,以删除图像的高频成分。控制器160提供控制信号CS1,决定滤波器120是否起作用。滤波器120用于防止混淆现象发生。当从较低分辨率的图像产生较高分辨率的图像时,滤波器120并不为宏块滤波。
然后,离散余弦变换系数值在反相量子化器130中被反量子化。反量子化的系数值,也就是原始离散余弦变换系数值F′i′j′(u′v′),被储存在存储器10中。存储器10、离散余弦变换转换器140以及存储器30和40的操作情况如上文所述的第一个典型实施例所示。控制器160为离散余弦变换转换器140提供控制信号CS2。控制信号CS2和上文所述的第一个典型实施例中的控制信号CS2相同。
图7是本发明的另一个典型实施例,用于指示MPEG-2的位流如何通过转换电路。在本实施例中,除了通过离散余弦变换映射改变图像的分辨率,也产生目的图像的新的标题信息和运动向量。在图7所示的典型实施例中,原始运动向量被伸缩,在原始图像中从宏块中会产生适当的运动向量以便为其他分辨率的图像中的新宏块产生运动向量。
MPEG-2主概要文件(Main Profile)的基本语法将压缩过的MPEG-2位流定义为五种层的图像序列。这五种层分别为序列层,图形组层,图形层,切片层,和宏块层。每个层都由控制信息被引入序列标题(SH)用于序列层,图形组标题(GOPH)用于图形组层,图形标题(PH)用于图形层,切片标题(SLH)用于切片层,宏块层标题(MBH)用于宏块层。最后,其他控制信息,又叫辅助信息(例如帧形、宏块模式、图像运动向量、系数之字形模式和反量子化信息),分布于整个编码位流中。
如图7中所示,包含层及其控制信息的输入位流IBS被施加到可变长度解码器(VLD)605上。例如,该输入位流是一个MP@HL编码位流。VLD 605解码输入位流IBS,产生多个量子化的离散余弦变换系数值。另外,VLD 605通过进行反相之字形扫描对记录量子化的系数值进行重新排序。量子化的离散余弦变换系数值QDCT被提供给滤波器120。VLD 605也为第一个转换器610提供序列标题SH,为组合器670提供图形组标题GOPH,为第二个转换器620提供图形标题PH,为第三个转换器630提供切片标题SLH,为第四个转换器640提供宏块层标题MBH。
第一转换器610、第二转换器620和第三转换器630分别对下列标题进行了细微、多数情况下固定的数值改变序列标题SH、图形组标题GOPH、图形标题PH和切片标题SLH,分别与分辨率的改变相对应。以下的表9提供了典型的伪码,作为转换的结果用于改变标题信息。
表9<pre listing-type="program-listing"><![CDATA[  slice() {  /*切片头处理无改变*/   slice start codeif(vertical_size>2800)  slice_vertical_position_extension  if(<sequence_scalable_extension()是   当前的比特流>){   if(scalable_mode=“data partioning”)  priority_breakpoint  }  quantizer_scale_code  if(nextbits()=‘1’){   intra_slice_flag   intra_slice   reserved_bits   while(nextbits()=‘1’){   extra_bit_slice /*值为0*/   extra_information_slice  }  }  extra_bit_slice /*值为1*/  slice_modulo=slice_no%M;  if(slice_modulo!=M-1){   do{   macroblock();   inverse_quantize();   inverse_DCT();   save_MB_information_slice(slice_modulo,mb);  }while(nextbits!=′000 0000 0000 0000      0000 0000′);  }  else{/*最后M个切片*/   do{  macroblock();  inverse_quantize();inverse_dct();  mb_modulo=mb%N;  save_MB_information_MB(mb_modulo); if(mb_modulo=N-1){ encode_output(); }  }while(nextbits!=′000 0000 0000 0000   0000 0000′); }  next_start_code(); }     /*其中,mb=从切片头开始     的宏的计数值*/save_MB_information_slice(slice_modulo,mb) { save macroblock informations at slice_moduloand mb. there are(M-1)slices of macroblock information.}  /*  其中,  macroblock information={   macroblock_modes={macroblock   type,   frame/file motion   type,dct_type},  quandtizer_scale,  motion_vectors,  coded block pattern,  DCT coefficients  }*/save_MB_information_MB(mb_modulo) {   保存宏块信息到mb modulo.   共有N个宏块信息。  }]]></pre>序列标题SH、图形组标题GOPH、图形标题PH和切片标题SLH根据大小转换因子改变。该因子被指定用于输入位流IBS表示的图像。这些标题的格式在参考MPEG-2标准中的6.2和6.3中指定。转换器610-640根据标题控制信号HCS修改SH、GOPH、PH、SLH。HCS指定了输入图像分辨率与输出图像分辨率之间的变化。
因为已经进行了大量的处理以产生不同分辨率的图像,所以在原始图像中随宏块一同提供的运动向量经过消减和插值处理后一般还需要进行修正。宏块是否有运动向量取决于宏块是内编码或非内编码。如果使用单帧的信息进行编码,宏块就是内编码(I型编码)的。如果使用以往参照场或帧中的动态补偿推算(P型编码)或者使用过去和/或将来的参照场或帧的动态补偿推算(B型编码)进行编码,就是非内编码。
根据上文对应于图1所述,原始离散余弦变换系数值Fi′j′(u ′,v′)被反相量子化器130反量子化,并映射为经离散余弦变换转换器140转换过的离散余弦变换系数值Fij(u,v)。离散余弦变换转换器600的运作方式与离散余弦变换转换器140相同,将原始离散余弦变换系数值转换为经转换的离散余弦变换系数值。离散余弦变换转换器600执行的附加操作(如下文所述)。另外,离散余弦变换转换器600还包括存储预计算值PCV、原始离散余弦变换系数经转换的离散余弦变换系数的存储器。
原始离散余弦变换系数值Fi′j′(u′,v′)被提供给离散余弦变换转换器600,以产生转换过的宏块CMB。在本发明的典型实施例中,由分辨率为1920×1024的输入图像的两个竖直的宏块和三个水平宏块定义的区域用于产生其分辨率为640×540的编码输出图像单个宏块。与该图形的整个宽度对应的输入图像部分被存储下来。该部分包括一个或多个切片,每个切片都是一系列表示图像的16根一组的连续水平线的连续宏块。例如,对于一个MP@HL编码信号来说,一行240个连续的宏块与一幅图像的整行相对应。
例如,图3(a)中的宏块MB0-MB2和MB3-MB5在图10中显示时,分别包含在切片A与B中。当产生经转换的宏块时,切片A中的宏块MB0-MB2被储存在离散余弦变换转换器600的存储器中(未显示)。切片B中的宏块MB3-MB5被提供并存储在存储器中,用于与宏块MB0-MB2相组合。后者从存储器中取出以产生图3(c)中所示经转换的宏块CMB。
除了在经转换的宏块CMB中产生经转换的离散余弦变换系数值Fij(u,v),离散余弦变换转换器600也响应宏块的运动参数处理的宏块。图8中详细说明了对宏块进行处理以产生经转换宏块的运动参数的电路运作情况。
如图8所示,在步骤700处,离散余弦变换转换器600决定宏块是内编码的还是非内编码的。如图4中的范例所示,六个宏块MB0-MB5被转换成一个宏块CMB。换句话说,包含六个宏块MB0-MB5)的图形的分辨率从每帧1920×640变为了每帧640×540。另外,这六个宏块MB0-MB5中的每一个都可以是内编码的或非内编码的宏块。因此,必须确定基于原始六个宏块MB0-MB5的经转换宏块是内编码的还是非内编码的。离散余弦变换转换器600采用了多数表决原则,利用原始宏块(MB0-MB6)确定经转换的宏块是非内编码的还是内编码的。
例如,如图3(a)中所示,如果四个原始宏块MB0、MB1、MB2、和MB4是非内编码的,而另两个原始宏块MB3、MB5是内编码的。那么,经转换的宏块是非内编码的。另外,如果四个原始宏块MB0、MB1、MB2、MB4是内编码的,而另两个原始宏块MB3、MB5是非内编码的。那么,经转换的宏块就是内编码的。如果三个原始宏块MB0、MB1、MB4是非内编码的,而另三个原始宏块MB2、MB3、MB5是内编码的。那么,由发明者决定经转换的宏块编码类型是非内编码的。
再回到图8,如果在步骤700处经转换的宏块CMB已确定为内编码宏块,那么,在步骤710处确定原始宏块MB0-MB5中哪些是内编码的,哪些是非内编码的。在非内编码的原始宏块如宏块MB3和MB5中,取原始离散余弦变换系数值的平均值作为平均离散余弦变换系数值。然后,在步骤720处,非内编码宏块中的每一个原始离散余弦变换系数值F′i′j′(u′,v′)被平均离散余弦变换系数值所替换。例如,产生宏块MB3中的原始离散余弦变换系数值F′i′j′(u′,v′)的离散余弦变换平均值,并用其替换宏块MB3中的每一个原始离散余弦变换系数值F′i′j′(u′,v′)。在步骤720之后或步骤710之后,执行步骤730。
在步骤730处,确定宏块MB0-MB5是场的格式还是帧的格式。在步骤740处,如果已确定宏块MB0-MB5是场的格式,那么宏块MB0-MB5转换成帧的格式。宏块的格式转换使得每一个宏块能以相同的格式被处理。这就简化了系统的操作。在可选实施例中,宏块MB0-MB5可以由帧的格式转换为场的格式。如下文所述,它们可以场的格式而非帧格式被处理。
对每一个用于产生经转换的宏块CMB的原始宏块MB0-MB5,执行适当的步骤710、720、730和740。例如,原始宏块MB0是场格式,并被内编码。于是,宏块MB0被处理的顺序是首先710,然后是730。如果下一个宏块MB1是场格式而且是非内编码的,那么宏块MB1被处理的顺序是710,720,730,740。另外的原始宏块MB2-MB5中的每一个要根据原始宏块MB0-MB5中的每一个的格式和编码方式分别进行适当处理。
然后,在步骤750处,原始宏块MB0-MB5中的离散余弦变换系数被映射成经转换的离散余弦变换系数值Fij(u,v)。在步骤750处进行的映射和图2(a)和2(b)中说明的相同。在步骤760,转换后宏块的量子化伸缩因子Q_scale基于图像分辨率的改变获得。
再回到图7,由离散余弦变换转换器600提供的经转换的离散余弦变换系数Fij(u,v)被量子化器650根据离散余弦变换转换器600产生的量子化伸缩因子Q_scale量子化。如图8所示,在步骤760处确定的量子化伸缩因子Q_scale和在步骤700处确定的转换后宏块CMB的编码类型被提供给第四个转换器640。宏块标题MB被第四个转换器640使用转换后宏块的编码类型以及量子化伸缩因子Q_scale进行修正。最后,对量子化了的转换后离散余弦变换系数进行可变长度编码。
另一种情况是,如图8所示,如果在步骤700处就确定了转换后宏块是非内编码的,那么,如图9(a)和9(b)所示,原始宏块MB0-MB5在步骤700、800、810、820处被处理。如图9(a)中所示,对于步骤700,所有的宏块900和上文所述一样被考虑,以确定经转换的宏块是否是内编码的。在如图8中所示步骤800处,确定转换后宏块是非内编码类型。在步骤800处,因为多数表决推算类型是B型,所以P类型的MB被放弃。如图9(a)中所示,只有非内编码的宏块910被用于确定编码类型。如步骤700中所述,多数表决原则被用于确定编码类型。在图9(a)中,多数表决编码类型是B型。因此,经转换的宏块CMB被编码为B型。然后,在如图8中所示和图9(a)中所说明的步骤810处,仅有B型宏块920用于确定运动决定类型场推算或帧推算。在步骤810处,会放弃一个B型块,因为它使用了基于帧的推算方式,而其他块使用的是基于场的推算方式。
在场推算中,使用来自一个或多个以前已解码的场中的数据,对每个场独立进行推算。帧推算为来自一个或多个开始时已解码的帧中的帧进行推算。相应地,基于步骤800处选择的原始宏块的场格式和帧格式,为经转换的宏块CMB选择场推算或帧推算。多数表决原则用于选择场推算或帧推算。如图9(a)中所示,因为原始宏块MB0、MB2、MB4占多数并使用场推算编码,所以在步骤810处选择场推算方式。最后,在步骤820,使用剩余宏块930选择转换后宏块的运动向量。如图8中所示步骤800和810,多数表决原则被用于选择运动向量。
如果没有可以确定推算类型的多数的情况下,推算类型的选择按以下顺序由先到后双向推算、前推算,以及后推算。例如,如果只剩两个宏块用于选择推算类型,并且一个使用双向编码,另一个使用前编码,那么经转换的宏块选择的推算类型是双向推算。
如果没有可以确定运动类型的多数的情况下,转化后的宏块选择的运动类型是帧类型。如果没有可以确定运动向量的多数的情况下,如图8所示,在步骤820处被处理的第一个宏块的第一个运动向量会成为转换后宏块CMB的选择运动向量。
图9(b)是另一个数据结构图,说明的是响应不同的输入宏块MB0-MB5在图8中的步骤700、800、810、820的运作情况。在图9(b)中,多数宏块采用非内编码。如图8中所示,非内编码宏块MB0-MB4在步骤800使用,以确定推算类型P型编码。然后,如图8中所示和图9(b)中说明,在步骤810处,只有P型编码的宏块MB1、MB2、MB3用于确定运动决定类型为帧推算。最后,在步骤820处,转换后宏块的运动向量通过使用帧推算P型宏块MB1与MB3选择。
接下来,如图8中所示的步骤830处,对原始宏块MB0-MB5的每一个确定原始宏块MB0-MB5是否有与转换后宏块CMB相同的推算类型、运动类型和运动向量。每一个拥有不同推算类型、运动类型、和运动向量的原始宏块MB0-MB5在步骤860处将剩余原始系数值设为零。否则,接下来在步骤840处决定原始宏块是帧格式还是场格式。然后,在步骤750处,一旦在步骤850处将宏块转换成帧格式,或者如果宏块已经是帧格式,离散余弦变换映射在步骤750处进行如上文所述。
当图像的分辨率提高时,宏块的数目也增多。在这种情况下,同样的方法也用于选择转换后宏块的内编码或非内编码的编码方式、运动类型、推算、类型以及运动向量。转换后宏块的离散余弦变换系数通过以下方式产生直接映射原始宏块的离散余弦变换系数以增加离散余弦变换系数的数目。
接下来,在步骤760,量子化伸缩Q_scale因子的取得是通过对用于产生转换后宏块CMB的原始宏块MB0-MB5的量子化伸缩因子平均值实现的。图7中所示量子化器650将量子化伸缩因子Q_scale因子运用到经转换的离散余弦变换系数上以产生量子化的离散余弦变换系数值QDCT′。
接下来,图7所示的转换器640为经转换的量子化系数值QDCT′产生一个经转换的宏块标题。图8中显示了以下内容来自步骤700的内编码或非内编码宏块类型决定、来自步骤800的推算类型决定、来自步骤810的运动类型决定和来自步骤820的运动向量。这些来自离散余弦变换转换器600的内容被提供给转换器640。量子化器650提供Q-scale因子。如表9中所示,转换器640使用显示在图8中来自步骤700的内编码/非内编码宏块类型决定、来自步骤800的推算类型决定、来自步骤810的运动类型决定和来自步骤820的运动向量、以及量子化伸缩因子Q_scale产生经转换的宏块标题。
如图7中所示,序列标题SH、图形组标题GOPH、图形标题PH、切片标题SLH和宏块层标题MBH在组合器670处与来自VLC660的可变长度编码信号组合起来,产生一个输出位流OBS。例如,输出位流是一个MPEG-2MP@ML编码信号。
尽管在上述特定的实施例中已对本发明进行了说明和描述,本发明并不局限在所示的细节内。另外,在权利要求的范畴和本发明的精神实质内,可实现细节的多种变化。
权利要求
1.一种将图像的第一分辨率变换成第二分辨率的设备,其中,多个第一空间频率系数值对应于具有所述第一分辨率的图像,多个第二空间频率系数值对应于具有所述第二分辨率的图像,该设备特征在于包括用于储存多个预计算值的存储器装置,所述多个预计算值决定图像的所述第一分辨率到所述第二分辨率的变化;以及通过在空间频率域中将所述多个第一空间频率系数值映射到所述多个第二空间频率系数值上以直接转换图像分辨率的转换器装置,该装置包括(a)将所述预计算值与所述多个第一空间频率系数值组合在一起以产生处理后的值的装置;以及(b)将所述处理后的值组合在一起以至少产生一个第二空间频率系数值的装置。
2.根据权利要求1所述的设备,其中所述的转换器的装置还包括将一个预计算值与一个空间频率系数值相乘的装置;将另一个预计算值与一个空间频率系数值相乘的装置;以及将相乘所得的值加在一起产生一个第二空间频率系数值的装置。
3.根据权利要求1所述的设备,其中所述的转换器装置包括将第一个第一预计算值与第一个第一空间频率系数值相乘以产生第一个中间值的装置;将第二个第一预计算值与第二个第一空间频率系数值相乘以产生第二个中间值的装置;以及将所述第一个和第二个中间值组合在一起产生一个第二空间频率系数值的装置。
4.根据权利要求1所述的设备,其中所述的转换器装置从所述存储器装置中获得所述预计算值。
5.根据权利要求1所述的设备,其中所述多个第一空间频率系数值与所述多个第二空间频率系数值都是离散余弦变换系数。
6.根据权利要求5所述的设备,其中所述多个第一空间频率系数值以成块的宏块方式安排,所述多个第二空间频率系数值以经转换的宏块的转换后块的方式安排,其中一个预计算值被用来将第i1个宏块的第j1个块的第z1个离散余弦变换系数值映射成第i个转换后宏块的第j个转换后块的第个离散余弦变换系数值,其中,z1,j1,il,z,j,和i是整数。
7.根据权利要求5所述的设备,其中所述具有第一分辨率的图像由MPEG主概要文件和包括多个第一空间频率系数值的高级信号表示,所述具有第二分辨率的图像由所述MPEG主概要文件和包括多个第二空间频率系数值的主级信号表示,转换器装置用于将所述MPEG主概要文件和所述高级信号转换成MPEG主概要文件和主级信号。
8.根据权利要求5所述的设备,其中所述具有第一分辨率的图像由MPEG主概要文件和包括所述多个第一空间频率系数值的主级信号表示,所述具有第二分辨率的图像由所述MPEG主概要文件和包括所述多个第二空间频率系数值的高级信号表示,转换器装置用于将所述MPEG主概要文件和所述高级信号转换成MPEG主概要文件和主级信号。
9.根据权利要求1所述的设备,其中所述多个第一空间频率系数值包括与所述图像中的空间高频成分相对应的高频空间频率系数值,本设备还包括滤波器装置,用于通过去除高频空间频率系数值的方式删去图像中的空间高频成分。
10.根据权利要求1所述的设备,其中所述预计算值表示空间频率域中的转换系数组合,从而转换在象素域中相当于相应象素插值的所述多个第一空间频率系数值。
11.用于对MPEG编码的图像进行解码和改变编码图像分辨率的解码器,其特征在于包括可变长度解码装置,用于接收和解码包含离散余弦变换值的输入信号,该离散余弦变换值定义了图像的第一分辨率;用于将所述离散余弦变换值反量子化的反量子化装置;以及储存多个预计算值的存储器装置,所述多个预计算值决定编码的图像从第一分辨率到的第二分辨率改变;通过在空间频率域中将离散余弦变换系数值映射到多个经转换的系数值上,从而直接转换编码图像分辨率的转换器装置,该转换装置包括(a)将所述预计算值与离散余弦变换系数值组合起来以产生处理后的值的装置;以及(b)将所述处理后的值组合在一起以产生至少一个经转换的系数值的装置。
12.一种将图像的分辨率从第一分辨率变换成第二分辨率的方法,其中,多个第一空间频率系数值与具有所述第一分辨率的图像对应,第二空间频率系数值与具有所述第二分辨率的图像对应,该方法的特征在于包括以下步骤(a)储存多个预计算值,所述多个预计算值决定从所述第一分辨率转换成所述第二分辨率的过程中图像分辨率的变化;以及(b)通过在所述空间频率域中将所述第一空间频率系数值映射到所述第二空间频率系数值上的方式直接转换所述图像的分辨率,步骤(b)中包括以下步骤将所述预计算值应用到所述第一空间频率系数值上以产生处理后的值;以及将所述处理后的值组合起来至少产生一个第二空间频率系数值。
13.根据权利要求12所述的方法,其中所述步骤(b)包括以下步骤将第一个第一预计算值与第一个第一空间频率系数值相乘以产生第一个中间值;将第二个第一预计算值与第二个第一空间频率系数值相乘以产生第二个中间值;以及将所述第一个中间值与第二个中间值组合起来产生一个第二空间频率系数值。
14.根据权利要求12所述的方法,其中所述第一空间频率系数值和第二空间频率系数值都是离散余弦变换系数。
15.根据权利要求12所述的方法,其中所述预计算值表示所述空间频率域中的转换系数的组合,用于转换在象素域中相当于相应象素插值的第一空间频率系数值。
全文摘要
一种在空间频率域中进行运算以便将图像的第一分辨率变换为第二分辨率的设备。在空间频率域中,第一组变换值被映射成第二组变换值。前者表示采用第一种图像分辨率的图像,后者表示采用第二种图像分辨率的图像。该设备包括已被储存的预计算值,它们是介于第一组变换值和第二组变换值之间的映射系数值。预计算值从存储器中获得并被用于在空间频率域中将第一组变换值直接变换为第二组变换值。
文档编号H04N7/26GK1182331SQ9710049
公开日1998年5月20日 申请日期1997年1月29日 优先权日1996年1月29日
发明者金和永 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1