图像处理装置的制作方法

文档序号:7573241阅读:141来源:国知局
专利名称:图像处理装置的制作方法
技术领域
本发明涉及适用于图像信息的解码处理的图像处理装置。
众所周知,取ISO/IEC的工作小组的名称而被叫做MPEG(Motion Picture Experts Group)的国际标准是一种有关活动图像数据的压缩和恢复的国际标准。再现活动图像数据所用的MPEG解码器的主要构成部分为由可变长码解码器(Variable Length DecorderVLD)、逆量化器(Inverse QuantizerIQ)、逆离散余弦变换器(InverseDiscrete Cosine TransformerIDCT)以及动作补偿器(MotionCompensatorMC)构成的数据处理部。MPEG解码器也需要多个帧容量的存贮器以供动作补偿或隔行变换用。
MPEG的一大特征是使用在时间上处于前面的图像及后面的图像这两个帧以供动作补偿时参照用。但是,如果对所有的图像都使用动作补偿就会出现传输错误、特殊重现等问题,为了避免这些问题,引进了I(Intra-coded,帧内编码)图像、P(Predictive-coded,预测编码)图像以及B(Bidirectionally predictive-coded,双向预测编码)图像。I图像即编码类型为I的图像完全不参照别的图像。P图像即编码类型为P的图像只由在时间上处于前面的帧补偿其动作。B图像即编码类型为B的图像由在时间上处于前面的和后面的帧双向补偿其动作。此外,B图像不会用作其他帧解码时的参照帧。
首先,对各编码类型的预测情况进行说明。假设输入图像的位元流按I0、P3、B1、B2的顺序供给到MPEG解码器。P3由I0补偿其动作B1。由I0和P3补偿其动作,B2由I0和P3补偿其动作。按I0、B1、B2、P3的顺序显示。由此可知,因为在MPEG解码器中,解码的顺序和显示的顺序不一致,所以必须改变MPEG解码器中的顺序。另外,对B1和B2进行解码时,一定需要IO和P3这两帧图像数据,于是就需要能够存贮两帧图像的帧存贮器以供动作补偿时参照用。因此,MPEG解码器需要两帧存贮容量以供动作补偿时参照用。
其次,对MPEG的以像素单位的解码顺序和以像素为单位输出图像的顺序进行说明。在电视等设备中,像素的输出是按以下顺序进行的;开始只输出偶数行,然后再只输出奇数行,隔行从左上方到右下方进行。只由偶数行组成的部分称为前半场,只由奇数行组成的部分称为后半场。隔行输出可以先将前半场从左上方到右下方输出,然后再将后半场从左上方到右下方输出,按此顺序进行。
对2维图像数据来说,在空间上处于相近位置上的数据一般被认为彼此相关性很高,但在隔行输出的情况下,如果将处于前半场的某一行为例,其上一行则处于后半场。也就是说,上一行的像素虽在空间上很近,但在时间上离得较远。于是,在动作激烈的情况下,则会有与上一行像素的相关性相比,与在时间上相近的上第2行的相关性较高的情形。基于这种情况,MPEG采用帧构造和场构造两大种类顺序作为以像素为单位的解码顺序。
再者,按MPEG,以16×16像素为一个被称为宏块的基本单位进行解码。宏块按从左到右的顺序被解码,例如,一个图像的最上边一行中的最右边的像素被包括在该画面的最右边的宏块之内。于是,最右边的宏块解码结束时,其结果是,16行数据被解码了。由此按MPEG,16行数据的解码操作几乎同时结束。
在帧构造的情况下,1帧图像的数据本身构成纵向16像素、横向16像素的宏块,以这种宏块为单位进行解码。因此,前半场和后半场几乎同时得到解码。但,由于解码顺序与图像输出的顺序完全不同,所以必须变换顺序。
在场构造的情况下,将图像帧分割成前半场和后半场,在各场分别构成纵向16像素、横向16像素的宏块,以这种宏块为单位进行解码。此时,1宏块或仅属于前半场或仅属于后半场,因此,前半场的数据全部得到解码之后,才对后半场的数据开始进行解码。在这种情况下,虽然与图像输出的顺序几乎相同,但是,由于解码是以宏块为单位进行的,所以解码的顺序与图像输出的顺序不完全一样。
图像输出是按先前半场,后后半场的顺序进行的。以前半场的最后8行开始输出时的情况为例做一下分析,在该最后8行开始输出之前,该图像帧的最后16行的宏块必须得到解码。因为该图像的最后宏块得到解码之后,最后8行内的最右边的16像素的值才能被确定。也就是说,这时,后半场和前半场的解码都必须结束。另外,此时以后,必须按顺序输出前半场的8行和全部后半场,但该数据已经得到解码。因此,如果不把该前半场的8行和后半场的全部数据存贮到帧存贮器内,在输出之前这些数据就会消失,因而得不到图像输出。所以,就需要能够存贮后半场的全部数据和前半场的8行数据的具有约半帧容量的帧存贮器。
综上所述,为进行动作补偿需要2帧容量的存贮器,为对B图像进行隔行变换还需要大约半帧容量的存贮器。即,至少一共需要约2.5帧容量的存贮器。
在石渡俊一等所著的“ MPEG2解码器LSI的开发-高效率的存贮器分配”(1994年电子情报通信学会春季大会讲演论文集,C-659,1994年3月)一文中,记载有使用1.5帧容量的存贮器以实现B图像的隔行变换的MPEG解码器的实例。此外,在高畠明彦明等所著的“MPEG2视频解码器LSI内的DRAM接口”(1995年电子情报通信学会综合大会讲演论文集,C-586,1995年3月)一文中,记载着使用1帧容量的存贮器以实现B图像的隔行变换的MPEG解码器的实例。
因为上述以往的两种MPEG解码器需要1.0-1.5帧容量的存贮器以供B图像的隔行变换用,因此存在有MPEG解码器成本高的问题。但在原理上,如上所述,为了进行隔行变换具有大约半帧容量的存贮器就足够了,因此还有改善的余地。
本发明的目的在于减少MPEG解码器所具有的帧存贮器的容量,且高效率地利用该帧存贮器。
为了达到该目的,本发明从以下两点入手,即图像输出结束后,B图像就不再用了;通过输入图像的附加信息部分(首标)的分析,就能预测正处于解码中的宏块区域什么时候被输出。
具体来说,本发明的构成为在具有帧存贮器的图像处理装置中,上述帧存贮器由分别具有图像的半帧容量的5个块和其容量比该5个块的每一个都小的1个附加块构成,首先从上述5个块中所选出的4个块用于存贮动作补偿时参照所用的I和/或P图像,用剩下的1个块和上述附加块来构成用于B图像的隔行变换的1个数据存贮器,然后上述B图像所用的数据存贮器由上述4个块中的1个和上述附加块重新构成。因此,用约有2.5帧容量的存贮器不仅能够实现B图像的隔行变换而且还能实现对所有类型图像的动作补偿。并且,本发明还具有以下优点,即在I和/或P图像连续出现3幅以上的情况下,数据存贮器不为B图像所用,所以构成该数据存贮器的一部分的1个块就能用于存贮I和/或P图像。
上述5个块的每一个和上述附加块分别分解成具有规定容量的多个槽。而且,本发明所涉及的图像处理装置所采用的构成为还具有存贮槽号所用的槽管理存贮器和用该槽管理存贮器所存贮的槽号来控制上述数据存贮器的写入和读出的控制器。上述控制器为了读出数据存贮器,将对该数据存贮器进行写入时所用过的槽号写入槽管理存贮器。因此,对该数据存贮器进行写入时,就能更新槽管理存贮器的内容以使数据存贮器按正确的槽顺序被读出。这样一来,由于在该数据存贮器中的某一个槽被读出之后立即能对该槽进行写入,因此用约半帧容量的存贮器就能实现B图像的隔行变换。


图1是本发明所涉及的MPEG解码器的具体示例方框图。
图2是图1中的帧存贮器的内部结构概念图。
图3是图2中的一个存贮器块的内部结构概念图。
图4是图2中的附加存贮器块的内部结构概念图。
图5是图1中的位元流分析部的内部结构示例方框图。
图6是图1中的图像输出部的内部结构示例方框图。
图7是图1中的图像输出部的概略动作示倒图。
图8是图1中的控制部的内部结构示例方框图。
图9是图1中的MPEG解码器的概略动作示例图。
图10是图1中的MPEG解码器的详细动作示例图。
图11上接图10。
图12上接图11。
图13上接图12。
图14上接图13。
图15上接图14。
图16是图8中的槽管理存贮器的更新过程示例图。
图17上接图16。
图18是图2中的附加块由2个附加槽构成时的相当于图16的示例图。
图19是图2中的附加块由1个附加槽构成时的相当于图16的示例图。
下面,参照各图来说明为实现活动图像数据的实时再生处理所需要的MPEG解码器的实施例。
图1是与本发明有关的MPEG解码器的构成示例图。图1所示的MPEG解码器10由以下各部分组成存贮约2.5帧图像数据的帧存贮器11、分析输入位元流IN所需的位元流分析部12、供给图像输出信号OUT及中断信号NITR的图像输出部13以及响应于中断信号INTR并向位元流分析部12供给起动信号INIT的控制部14。在图1中,15是数据总线,16是地址总线,17是寄存贮器总线。位元流分析部12除了具有分析输入位元流IN中的首标的功能之外,还具有将宏块解码并将该结果写入帧存贮器11的功能。这两个功能是通过来自控制部14的起动信号INIT而被起动的。帧存贮器11则用于存贮动作补偿时参照用的图像及隔行变换。图像输出部13将重新构成的图像数据从帧存贮器11读出,然后,提供按隔行顺序的图像输出信号OUT。该图像输出信号OUT一连接到显示器上,就能看到被解码的活动图像。并且,图像输出部13与图像输出同步地将中断信号INTR送给控制部14。通过寄存器总线17,控制部14能分别读出并设定位元流分析部12以及图像输出部13的内部寄存器的值。
图2示出了帧存贮器11的大体构成,图3和图4示出其详细构成。如图2所示,帧存贮器11由场号为0到4的5个块20、21、22、23、24和一个附加块25构成。并且,其中的一个块20如图3所示由槽号为0到N-1的N个槽构成。例如,在NTSC(National Television SystemCommittee)制图像中;N是30。各槽具有存贮8行图像的记忆容量。即,一个块20能存贮240行的数据,即,NTSC图像的1场(半帧)数据。其他4个块21、22、23、24也分别由N个槽构成。附加块25如图4所示由槽号为N到N+2的3个附加槽构成。
帧存贮器11以槽为单位来管理。该管理单位的1个槽(即8行)相当于宏块的纵向尺寸(16行)的一半,这是对应于帧构造、场构造这两咱构造的最适当的单位。具体来说,由场号和槽号来指定一个槽。例如,块20中的第一个槽由场号0和槽号0来指定。附加块25中的第一个槽由场号0和槽号N来指定。附加块25中的该槽也可以由场号1和槽号N来指定。
上述5个块20、21、22、23、24中的4个块用于存贮动作补偿参照用的图像,剩下的1个块及附加块25用于B图像的隔行变换。在以下的说明中,将用于B图像的槽数,即N+3,用Sn来表示。例如,I图像的前半场被存贮在0号场内的0到N-1号槽中,该I图像的后半场被存贮在1号场内的0到N-1号槽中,P图像的前半场被存贮在2号场内的0到N-1号槽中,而且该P图像的后半场则被存贮在3号场内的0到N-1号槽中。此时,按该前半场的开始的8行存贮于该前半场所属场内的0号槽,下一个8行存贮于1号槽的顺序进行存贮。B图像将被存贮于比方说4号场的0到Sn-1号槽中。此时,带有N到N+2的槽号的3个附加槽被使用。但是,哪个槽存贮前半场则随着图像结构是帧构造还是场构造而变化。此外,在初始状态下,预设的图像数据已写入帧存贮器11的各个场内。例如,已写入相当于黑色的数据。于是,在输出解码结果的图像之前,一直输出预设的图像。
图5示出图1中的位元流分析部12的内部构成。位元流分析部12由首标分析部31、VLD(可变长解码器)32、IQ(逆量化器)33、IDCT(逆离散余弦变换器)34、MC(动作补偿器)35以及内部寄存器36构成。内部寄存器36备有以下10个寄存器,即编码类型寄存器 CTYR;结构寄存器 STRR;前半场用前面参照场寄存器 T-FRFR;后半场用前面参照场寄存器 B-FRFR;
前半场用后面参照场寄存器 T-BRFR;后半场用后面参照场寄存器 B-BRFR;前半场用写入场寄存器 T-WFDR;后半场用写入场寄存器 B-WFDR;第1写入槽寄存器WSR1;及第2写入槽寄存器WSR2。
编码类型寄存器CTYR是存贮输入图像的编码类型所用的寄存器。结构寄存器STRR是表示输入图像的结构是帧构造还是场构造的寄存器。4个参照场寄存器T-FRFR、B-FRFR、T-BRFR以及B-BRFR是用于指定场号的寄存器、该场号表示帧存贮器11中的动作补偿参照用图像的存贮位置。2个写入场寄存器T-WFDR和B WFDR用于指定帧存贮器11中的写入场的号码。第1和第2写入槽寄存器WSR1及WSR2用于指定帧存贮器11中的写入槽的号码。
通过来自控制部14的起动信号INIT来起动首标分析部31或者VL32。首标分析部31起动之后,就对输入位流IN中的图像首标信息进行解码,分别把图像的编码类型写入内部寄存器36中的编码类寄存器CTYR中,把图像结构写入结构寄存器STRR中。VLD32起动之后,接到VLD32的输出,IQ33、IDCT34及MC35依次起动,16行图像数据的解码结果通过数据总线15被写入帧存贮器11中。该16行数据,在横向720像素的情况下,相当于45宏块。其中,MC35具有以下的作用进行动作补偿,制作最后的图像数据,且把重新构成的数据写入帧存贮器11中。VLD32为补偿动作而将动作向量MV送给MC35。此外,帧存贮器11的槽由地址总线16上的地址来指定。
位元流分析部12中,只有MC35与存贮器管理有关系。为了进行动作补偿,MC35必须知道预测用图像被存贮在帧存贮器11中的哪个位置。因此,使用前半场用前面参照场寄存器T_FRFR、后半场用前面参照场寄存器B_FRFR、前半场用后面参照场寄存器T_BRFR以及后半场用后面参照场寄存器B_BRFR。例如,供前面参照用的数据中的前半场部分存贮在由前半场用前面参照场寄存器T_FRFR指定的场的0号到N-1号槽中。
为决定重新构成的图像数据应该写入哪个槽,使用前半场用写入场寄存器T_WFDR、后半场用写入场寄存器B_WFDR、第1写入槽寄存器WSR1、第2写入槽寄存器WSR2以及结构寄存器STRR。具体来说,按下述办法来决定写入位置。在帧构造的情况下,将前半场8行写入由前半场用写入场寄存器T_WFDR的场号和第1写入槽寄存器WSR1的槽号所指定的槽中,将后半场8行写入由后半场用写入场寄存器B_WFDR的场号和第2写入槽寄存器WSR2的槽号所指定的槽中。在场构造的情况下,对于前半场(开始的半帧),将上部8行写入由前半场用写入场寄存器T_WFDR的场号和第1写入槽寄存器WSR1的槽号所指定的槽中,将下部8行写入由前半场用写入场寄存器T_WFDR的场号和第2写入槽寄存器WSR2的槽号所指定的槽中。对于后半场(其后的半帧),将上部8行写入由后半场用写入场寄存器B_WFDR的场号和第1写入槽寄存器WSR1的槽号所指定的槽中,将下部8行写入由后半场用写入场寄存器B_WFDR的场号和第2写入槽寄存器WSR2的槽号所指定的槽中。按照以上的顺序,不会现出前半场和后半场混在同一个槽中的现象。还有,内部寄存器36中的与存贮器管理有关的寄存器通过寄存器总线17由控制部14来设定。
图6示出图1中的图像输出部13的内部结构。图像输出部13由定时发生部41、读出部42和内部寄存器43构成。内部寄存器43具备有以下4个寄存器,即读出场寄存器 RFDR;读出槽寄存器 RSLR;输出行寄存器 ORWR;输出奇偶寄存器 OPYR。
读出场寄存器RFDR指定帧存贮器11中的读出场的号码。读出槽寄存器RSLR指定帧存贮器11中的读出槽的号码。输出行寄存器ORWR表示正在输出的行所处的1个场中的位置。输出奇偶寄存器OPYR表示正在输出的场是前半场还是后半场。
图7所示的是图像输出部13的概略动作。输出的1个周期是由垂直消隐期间(VB)、前半场输出期间、垂直消隐期间以及后半场输出期间构成的。例如,在NTSC的情况下,1秒钟进行30个周期的输出。定时发生部41生成定时信号TMNG以使图像输出部13按一定的周期进行动作,并且每有8行画面输出时,便往控制部14送入中断信号INTR。如图7(a)所示,中断信号INTR在各场的输出开始时发生一次,然后每8行输出结束时发生一次。读出部42与定时发生部41所生成的定时信号TMNG同步地将所指定的槽按扫描顺序读出并提供图像输出信号OUT。读出槽是由内部寄存器43内的读出场寄存器RFDR与读出槽寄存器RSLR的组合来指定的。这些读出槽设定用的寄存器,在有中断信号发生时,则通过寄存器总线17由控制部14来设定。进而,定时发生部41使内部寄存器43中的输出行寄存器ORWR和输出奇偶寄存器OPYR发生如下变化。即,如图7(b)所示,在各场开始输出而中断信号还没发生这一瞬间,其后的状态是前半场输出的话,输出奇偶寄存器OPYR的数值为“0”,其后的状态是后半场输出的话,则为“1”。如图7(c)所示,在开始输出而中断信号还发生这一瞬间,输出行寄存器ORWR的数值为“0”,以后在8行结束而中断开始之前,其值逐次地连续加1。
图8是表示图1的控制部14的内部结构的方块图。控制部14由控制器51、工作区存贮器52以及程序存贮器53构成。工作区存贮器52具备有槽管理存贮器SCM及以下12个工作区,即前半场用前面参照场工作区 T_FRFW;后半场用前面参照场工作区 B_FRFW;前半场用后面参照场工作区 T_BRFW;后半场用后面参照场工作区 B_BRFW;解码行号工作区 DRNW;解码类型工作区 DTYW;输出类型工作区 OTYW;解码结构工作区 DSTW;前半场用输出场工作区 T_OFDW;后半场用输出场工作区 B_OFDW;写入槽用指示器 WSLP;以及读出槽用指示器 RSLP。
4个参照场工作区T_FRFW、B_FRFW、T_BRFW及B_BRFW分别与位元流分析部12中的4个参照场寄存器T_FRFR、B_FRFR、T_BRFR及B_BRFR相对应,用于指定表示帧存贮器11中的动作补偿参照用图像的存贮位置的场号。解码行号工作区DRNW用于存贮行号,该行号表示解码工作区已经进行到1帧中的哪个部分。例如,对第1个16行进行解码时,行号为“0”,对第2个16行进行解码时,行号为“1”,行号就这样继续增加。解码类型工作区DTYW用于表示正在进行解码的图像的解码类型。输出类型工作区OTYW用于表示正在进行输出的图像解码类型是否是B,由于解码类型B具有与其他类型不同的存贮管理方式,因此,它被用于识别解码类型是否是B。解码结构工作区DSTW用于表示正在进行解码的图像构造是帧构造还是场构造,并会影响到设定写入槽或存取槽管理存贮器SCM。两个输出场工作区T_OFDW和B_OFDW用于示出输出图像区的场号。写入槽用指示器WSLP及读出槽用指示器RSLP这两个工作区,如下所述,用于编码类型为B时的存贮器管理,而且,总是保持用来表示槽管理存贮器SCM之中的字的地址。
工作区存贮器52中的槽管理存贮器SCM的地址为0到Sn-1的各字中存贮有从0到Sn-1逐个加1的初始值。这些初始值是依次指定对最先到来的编码类型B的图像进行解码时所使用的写入槽号的值。在初始状态下,工作区存贮器52中的10个工作区被预置为T_FRFW=0B_FRFW=1T_BRFW=2B_BRFW=3DTYW=IOTYW=IPT_FODW=0B_OFDW=1WSLP=0
RSLP=Sn控制器51依次执行写在程序存贮器53中的指令INST。首先,控制器51执行通常程序。这样,位元流分析部12中的内部寄存器36得以设定。然后,从图像输出部13送来中断信号INTR时,控制器51就移动到中断服务程序。这样,图像输出部13中的内部寄存器43就被设定好了。
控制部14通过执行通常程序来控制位元流分析部12。详细执行情况如以下步骤1.1到1.14所述。
步骤1.1起动首标分析部31。与此同时,首标分析部31分别设定内部寄存器36中的编码类型寄存器CTYR和结构寄存器STRR的值。
步骤1.2将编码类型寄存器CTYR的值写入解码类型工作区DTYW中。
步骤1.3将结构寄存器STRR的值写入解码结构工作区DSTW中。
步骤1.4在解码类型工作区DTYW为“I”或“P”,且输出类型工作区OTYW为“IP”时,按以下的办法来决定为指定各写入场所用的第1及第2场号。即,首先选择4个参照场工作区T_FRFW、B_FRFW、T_BRFW和B_BRFW中的任何一个也不包括的场号。譬如,在这些工作区里已经写入0、1、2、3的值时,选择4,如果写入有2、3、4、0这些值的话,则选择1。然后,将所选择的场号作为第1场号,并将前半场用前面参照场工作区T_FRFW的值作为第2场号。
步骤1.5在解码类型工作区DTYW为“I”或者“P”,且输出类型工作区OTYW为“B”时,将前半场用前面参照场工作区T_FRFW的值作为第1场号,并将后半场用前面参照场工作区B_FRFW的值作为第2场号。
步骤1.6在解码类型工作区DTYW为“I”或者“P”时,更新4个参照场工作区T_FRFW、B_FRFW、T_BRFW和B_BRFW。具体说来,分别将前半场用后面参照场工作区T_BRFW的值写入前半场用前面参照场工作区T_FRFW中,将后半场用后面参照场工作区B_BRFW的值写入后半场用前面参照场工作区B_FRFW中,将上述所决定的第1场号写入前半场用后面参照场工作区T_BRFW中,并将上述所决定的第2场号写入后半场用后面参照场工作区B_BRFW中。
步骤1.7将动作补偿时参照所用的场设定于位元流分析部12的内部寄存器36之中。具体说来,分别将前半场用前面参照场工作区T_FRFW的值写入前半场用前面参照场寄存器T_FRFR中,将后半场用前面参照场工作区B_FRFW的值写入后半场用前面参照场寄存器B_FRFR中,将前半场用后面参照场工作区T_BRFW之值写入前半场用后面参照场寄存器T_BRFR中,并将后半场用后面参照场工作区B_BRFW之值写入后半场用后面参照场寄存器B_BRFR中。
步骤1.8将写入所用的场设定于位元流分析部12的内部寄存器36之中。具体来说,在解码类型工作区DTYW为“I”或者“P”时,分别将前半场用后面参照场寄存器T_BRFR的值写入前半场用写入场寄存器T_WFDR中,并将后半场用后面参照场寄存器B_BRFR的值写入后半场用写入场寄存器B_WFDR中。另外,在解码类型工作区DTYW为“B”时,选择不包括在4个参照场寄存器T_FRFR、B_FRFR、T_BRFR和B_BRFR中的任何一个的场号,而且,将所选择的场号写入前半场用写入场寄存器T_WFDR及后半场用写入场寄存器B_WFDR中。
步骤1.9将“0”写入解码行号工作区DRNW中。
步骤1.10设定写入槽。就该写入槽设定的步骤,以下再详加说明。
步骤1.11使位元流分析部12进行16行宏块的解码工作区。
步骤1.121帧的解码结束后,返回步骤1.1。
步骤1.13使解码行号工作区DRNW的值增加1。
步骤1.14返回步骤1.10进行下面16行的宏块的解码。
另外,控制部14通过中断服务程序的执行来控制图像输出部13。具体来说,进行这样的动作首先判断所输出的图像是不是B图像,决定读出场号,然后决定槽号。如果正在处于对I图像或者P图像进行解码时,输出在这之前已解码的图像即可,这正好是用于前面参照的图像。B图像从其解码开始时晚半帧而被输出。因此,在输出下一帧之际,如果处于B图像的解码期间,输出该B图像即可。详细地说,每有中断信号发生时,执行下述步骤2.1到2.6。
步骤2.1在输出行寄存器ORWR为“ 0”且输出奇偶寄存器OPYR为“0(即,前半场的输出开始)”的情况下,将解码类型工作区DTW的值写入输出类型工作区OTYW中。输出类型工作区OTYW意味着下一个应输出的图像的编码类型是否是B。具体来说,解码类型工作区DTYW为“I”或者“P”时,将“IP”写入输出类型工作区OTYW中,解码类型工作区DTYW为“B”时,则将“ B”写入输出类型工作区OTYW中。
步骤2.2在输出行寄存器ORWR为“0”、输出奇偶寄存器OPYR为“ 0(即,前半场的输出开始)”、且输出类型工作区OTYW为“IP”时,分别将半用前面参照场工作区T_FRFW的值写入前半场用输出场工作区T_OFDW中,将后半场用前面参照场工作区B_FRFW的值写入后半场用输出场工作区B_OFDW中。此时,前面参照所用的图像是在它之前已解码过的I图像或者P图像。这样,在I图像或者P图像处于解码中时,就输出在它以前被解码过的图像。
步骤2.3在输出行寄存器ORWR为“0”、输出奇偶寄存器OPYR为“0”(即,前半场的输出开始)、且输出类型工作区OTYW为“ B”的情况下,选择4个参照场工作区T_FRFW、B_FRFW、T_BRFW、B_BRFW中的任何一个也不包括的场,然后,将所选择的场号写和前半场用输出场工作区T_OFDW以及后半场用输出场工作区B_OFDW中。帧存贮器11中所写入的编码类型为B图像的场应该既不是前面预测用场也不是后面预测用场。
步骤2.4将已决定的前半场用输出场工作区T_OFDW和后半场用输出场工作区B_OFDW的值设定于图像输出部13之中。具体来说,在输出奇偶寄存器OPYR为“0(即下一次输出为前半场)”时,将前半场用输出场工作区T_OFDW的场号设定于图像输出部13的读出场寄存器RFDR之中。另外,输出奇偶寄存器OPYR为“1(即下一次输出为后半场)”时,将后半场用输出场工作区B_OFDW的场号设定于图像输出部13的读出场寄存器RFDR之中。
步骤2.5设定读出槽。就该读出槽的设定步骤以后再详加说明。
步骤2.6结束中断处理。
在此,就图9进行说明。图9示出图1所示的MPEG解码器10的概略动作,即写入场和读出场的一个处理过程。图9中,假设按I0,P1,P4,B2,B3,P5的顺序,将输入位元流IN输给位元流分析部12。此外,I0、P4等标记,前面的I、P、B这样的英文字母表示编码类型,后面的数字表示图像显示(输出)的顺序。
在图像I0的解码期间,即期间1开始的时候,输出类型工作区OTYW的值为“IP”。所以,这期间,按步骤1.4和步骤1.6及期间0的初始值来将4个参照场工作区T_FRFW、B_FRFW、T_BRFW、B_BRFW的值分别更新为2、3、4、0。然后,将前半场用后面参照场工作区T_BRFW的值(即4)作为前半场用写入场的号码,并将后半场用后面参照场工作区B_BRFW的值(即0)作为后半场用写入场的号码。由此,将图像I0写入帧存贮器11里的4号和0号场中。
在图像P1的解码期间,即期间2,按步骤1.4和步骤1.6,将4个参照场工作区T_FRFW、B_FRFW、T_BRFW、B_BRFW的值分别更新为4、0、1、2。然后,将前半场用后面参场工作区T_BRFW的值(即1)作为前半场用写入场的号码,并将后半场用后面参照场工作区B_BRFW的值(即2)作为后半场用写入场的号码。由此,通过参照前面的4号场和0号场中的图像I0而被动作补偿的图像P1被写入1号和2号场中。
在图像P4的解码期间,即期间3,按步骤1.4和步骤1.6,将4个参照场工作区T_FRFW、B_FRFW、T_BRFW、B_BRFW的值分别更新为1、2、3、4。然后,将前半场用后面参照场工作区T_BRFW的值,即3,作为前半场用写入场的号码,并将后半场用后面参照场工作区B_BRFW的值,即4,作为后半场用写入场的号码。由此,通过参照前面的1号场和2号场中的图像P1而被动作补偿的图像P4被写入3号和4号场中。
在图像B2的解码期间,即期间4,对4个参照场工作区T_FRFW、B_FRFW、T_BRFW、B_BRFW不做任何更新,而将这4个参照场工作区中的任何一个也不包含的场号,即0,作为前半场用及后半场用写入场的号码。由此,将通过了动作补偿的图像B2写入帧存贮器11中的0号场及3个附加槽中。此时,1号场和2号场中的图像P1供前面参照用,3号场和4号场中的图像P4供后面参照用。
在图像B3的解码期间,即期间5,也不更新T_FRFW、B_FRFW、T_BRFW、B_RFW这4个参照场工作区。将这4个参照场工作区中的任何一个也不包含的场号(即0)作为前半场用及后半场用写入场的号码。由此,将通过了动作补偿的图像B3写入0号场及3个附加槽中。此时,1号场和2号场中的图像P1供前面参照用,3号场和4号场中的图像P4供后面参照用。
在图像P5的解码期间,即期间6开始的时候,输出类型工作区OTYW的值为“B”。所以,这期间,按步骤1.5和步骤1.6,将4个参照场工作区T_FRFW、B_FRFW、T_BRFW、B_BRFW的值分别更新为3、4、1、2。然后,将前半场用后面参照场工作区T_BRFW的值(即1)作为前半场用写入场的号码,并将后半场用后面参照场工作区B_BRFW的值(即2)作为后半场用写入场的号码。由此,将通过了动作补偿的图像P5写入1号和2号场中。此时,3号场和4号场中的图像P4供前面参照用。
另一方面,如在图7(b)中所说明的那样,在各场开始输出时的中断信号即将发生这一瞬间,其后为输出前半场时,图像输出部13里的输出奇偶寄存器OPYR的值就变为“0”,其后为输出后半场时,其值就变为“1”。也就是说,在前半场开始输出的时候,输出奇偶寄存器OPYR的值从“1”变为“0”。图9示出了前半场用输出场工作区T_OFDW及后半场用输出场工作区B_OFDW与该输出奇偶寄存器OPYR的值从“1”变为“0”同步地得以更新的情况。
具体来说,在期间2的后半期开始的时候,按照步骤2.2采用两个前面参照场工作区T_FRFW及B_FRFW的值,将两个输出场工作区T_OFDW及B_OFDW的值分别更新为4及0。因此,在期间2的后半期,存贮于帧存贮器11中的4号场内的图像10的前半场被输出,在期间3的前半期,存贮于0号场内的图象I0的后半场被输出。
在期间3的后半期开始的时候,按照步骤2.2将两个输出场工作区T_OFDW及B_OFDW的值分别更新为1及2。因此,在期间3的后半期,存贮于1号场内的图像P1的前半场被输出,在期间4的前半期,存贮于2号场内的图像P1的后半场被输出。
在期间4的后半期开始的时候,按照步骤2.3将4个参照场工作区T_FRFW、B_FWFW、T_BRFW、B_BRFW中的任何一个也不包括的场号,即0,写入两个输出场工作区T_OFDW及B_OFDW中。因此,图像B2从其解码开始晚半帧的时间开始输出,在期间4的后半期,图像B2的前半场被输出,在期间5的前半期,图像B2的后半场被输出。
在期间5的后半期开始的时候,也按照步骤2.3将4个参照场工作区T_FRFW、B_FRFW、T_BRFW、B_BRFW中的任何一个也不包括的场号(即0)写入两个输出场工作区T_OFDW及B_OFDW中。因此,图像B3从其解码开始晚半帧的时间开始输出,在期间5的后半期,图像B3的前半场被输出,在期间6的前半期,图像B3的后半场被输出。
在期间6的后半期开始的时候,按照步骤2.2采用两个前面参照场工作区T_FRFW及B_FRFW的值,将两个输出场工作区T_OFDW及B_OFDW的值分别更新为3及4。因此,在期间6的后半期,存贮于3号场内的图像P4的前半场被输出,而在下一期间的前半期,存贮于4号场内的9图像P4的后半场被输出。
如上所示,图9示出按I0、P1、B2、B3、P4的顺序能够得到输出图像的情况。并且,从图9可以得知在期间2的后半期从4号场读出图像I0的前半场之后,马上在期间3的前半期图像P4的后半场被写到该4号场了。总之,帧存贮器11中的场得到了有效地利用。此外,从期间4后半期开始到期间5后半期结束这一期间,虽然将编码类型为B的图像同时写入0号场和3个附加槽中又同时从它们中读出,但是通过以下所说明的槽管理办法,就不会出现什么问题了。
下面对步骤1.10所涉及的写入槽的设定步骤进行详细的说明。概括的说,控制部14将位元流分析部12中的第1和第2写入槽寄存器WSR1和WSR2设定好,并一直等到一定的条件个备之后为止。
首先,对于第1和第2写入槽寄存器WSR1和WSR2的设定步骤进行说明。解码类型工作区DTYW为“I”或“P”且解码结构工作区DSTW指定帧构造时,将解码行号工作区DRNW的值写入第1和第2写入槽寄存器WSR1、WSR2中。解码类型工作区DTYW为“I”或“P”且解码结构工作区DSTW指定场构造时,分别将〔解码行号工作区DRNW的值〕×2写入第1写入槽寄存器WSR1中,将〔解码行号工作区DRNW的值〕×2+1写入第2写入槽寄存器WSR2中。但是,在DRNW×2≥N的情况下,就分别将DRNW×2改为DRNW×2-N,将DRNW×2+1改为DRNW×2+1-N。按照以上设定,解码类型工作区DTYW为“I”或“P”时,不管是帧结构还是场结构,将前半场写入由前半场用写入场寄存器B_WFDR所指定的场内,将后半场写入由后半场用写入场寄存器B_WFDR所指定的场内。在各场中,按第1个8行写入0号槽,第2个8行写入1号槽这样的顺序将所有的行写入各槽中。
解码类型工作区DTYW为“B”时,控制部14通过执行下述3.1到3.7的步骤以设定第1和第2写入槽寄存器WSR1和WSR2。
步骤3.1从槽管理存贮器SCM中的由写入槽用指示器WSLP所指示的地址的字中取出第1槽号X。
步骤3.2从槽管理存贮器SCM中的第2个地址的字中取出第2槽号Y。
步骤3.3将第1槽号X写入第1写入槽寄存器WSR1中。
步骤3.4将第2槽号Y写入第2写入槽寄存器WSR2中。
步骤3.5为了给读出槽寄存器RSLR的设定做好准备,将第1槽号X写入槽管理存贮器SCM中。具体来说,解码结构工作区DSTW指定帧构造时,将第1槽号X写入到槽管理存贮器SCM中的由〔写入槽用指示器WSLP的值〕+Sn-〔解码行号工作区DRNW的值〕所指示的地址的字中。解码结构工作区DSTW指定场构造时,将第1槽号X写入到槽管理存贮器SCM中的由〔写入槽用指示器WSLP的值〕+Sn所指示的地址的字中。
步骤3.6同样,为了给读出槽寄存器RSLR的设定做好准备,将第2槽号Y写入槽管理存贮器SCM中。具体来说,解码结构工作区DSTW指定帧构造时,将第2槽号Y写入到槽管理存贮器SCM中的由〔写入槽用指示器WSLP的值〕+Sn-〔解码行号工作区DRNW的值〕+N所指示的地址的字中。解码结构工作区DSTW指定场构造时,将第2槽号Y写入到槽管理存贮器SCM中的由〔写入槽用指示器WSLP的值〕+Sn+1所指示的地址的字中。
步骤3.7给写入槽用指示器WSLP的值加2。
控制部14给位元流分析部12中的第1及第2写入槽寄存器WSR1及WSR2做好设定,并一直等到下述4个条件中的任何一个被满足时为止。这是为了避免在从某一个槽中读出数据之前,向该槽内进行写入的情形发生而需要的。
条件1解码类型工作区DTYW为“I”或“ P”,前半场用输出场工作区T_OFDW的值与前半场用后面参照场工作区T_BRFW的值不同,后半场用输出场工作区B_OFDW的值与后半场用后面参照场工作区B_BRFW的值也不同。在该条件满足了的情况下,因为将要进行写入的场的输出已经结束,所以能够进行向该场的写入。
条件2解码类型工作区DTYW为“I”或者“P”,解码结构工作区DSTW指示帧构造,而且输出行寄存器ORWR的值大于解码行号工作区DRNW的值。在该条件满足了的情况下,由于槽号比输出行寄存器ORWR的值小的槽已经结束了输出,所以能够进行写入。
条件3解码类型工作区DTYW为“I”或者“P”,解码结构工作区DSTW指示场构造,而且正在处于前半场的解码期间。在对编码类型I或者P的图像进行解码时,至少剩有1个能够使用的场。可以向该场写入前半场,所以能够进行写入。
条件4解码类型工作区DTYW为“B”,而且读出槽用指示器RSLP的值等于或者大于写入槽用指示器WSLP的值。如下所述,存贮于槽管理存贮器SCM中的由读出槽用指示器RSLP所指示的地址内的槽号则是正在进行输出的槽号。因此,槽号比该号码小的槽应该已经完全被读出,所以能够进行写入。
下面,对步骤2.5所涉及的读出槽的设定步骤详加说明。输出类型工作区OTYW为“IP”时,控制部14只要将图像输出部13的输出行寄存器ORWR的值设定于该图像输出部13中的读出槽寄存器RSLR内即可。当编码类型I或者P的图像输出时,读出场内的读出槽号按从0到1的顺序逐次加1即可。另外,输出行寄存器ORWR内的输出行号也按从0到1的顺序逐次加1。因此,将输出行寄存器ORWR的值设定于读出槽寄存器RSLR内即可。
输出类型工作区OTYW为“B”时,控制部14通过按下述4.1到4.3的步骤所进行的简单处理来设定读出槽寄存器RSLR。这是上述步骤3.5和3.6所示的事先处理的成果。此外,每有8行输出时,读出槽用指示器RSLP的值就增加1。
步骤4.1从槽管理存贮器SCM中的由读出槽用指示器RSLP所指示的地址的字中取出槽号Z。
步骤4.2将槽号Z写入读出槽寄存器RSLR中。
步骤4.3使读出槽用指示器RSLP的值增加1。
图10-图17示出图1中的MPEG解码器10的详细动作例。图10-图15示出各种寄存器的更新过程,图16和图17示出槽管理存贮器SCM的更新过程。图10-图17和图9一样假设按I0、P1、P4、B2、P5的顺序将输入位元流IN输给位元流分析部12。再假设其中的图像P1、P4、B2、P5具有帧构造,图像I0、B3具有场构造。为了简化说明,假定N=6,且Sn=9。进一步假设16行的解码所用的时间与16行输出所用的相同,并且,垂直消隐期间不进行解码。
在图10-图15中,标号为从0到71的各期间与8行图像的输出期间相对应,而且按I0,P1,B2,B3,P4的顺序进行输出(显示)。各帧开始解码的时间即前半场(OPYR=0)最后8行的输出开始时间。解码结构工作区DSTW栏的“FR”表示帧结构,“FD”表示场结构。这里,以图12中的期间24为例进行说明,后半场用写入场寄存器B-WFDR的值及读出场寄存器RFDR的值都是4,也就是说,在4号场中会发生将数据同时写入和读出的情况。但是,在期间24读出槽寄存器RSLR的值已经达到5,并且第1和第2写入槽寄存器WSR1、WSR2的值都是0,因此不会发生什么问题。另外,43到59的各期间,前半场用写入场寄存器T_WFDR、后半场用写入场寄存器B_WFDR以及读出场寄存器RFDR的值都是0。也就是说,将编码类型为B的图像同时写入0号场和3个附加槽中又同时从它们中读出。但是,从43到59的任一期间,第1写入槽寄存器WSR1、第2写入槽寄存器WSR2以及读出槽寄存器RSLR的值各不相同,因此不会产生什么问题。
图16和图17示出了和以下设定步骤有关的槽管理存贮器SCM的更新过程,步骤为解码类型工作区DTYW为“B”时的写入槽设定步骤(步骤3.1-3.7)和输出类型工作区OTYW为“B”时的读出槽设定步骤(步骤4.1-4.3)。在图16和图17中,各行表示槽管理存贮器SCM的字,各列与图像的8行输出期间相对应着。如图16中的最左端列所示,从0到8逐个大1的初始值被存贮到槽管理存贮器SCM中的地址为0到8的各字内。写入槽用指示器WSLP的初始值是0,读出槽用指示器RSLP的初始值是9。另外,假设槽管理存贮器SCM具有存贮20个字的容量。
图16中左起第2及第3列对应于具有帧结构的图像B2的第1个16行的解码期间,即图13中的期间36和37。在这些期间内,从槽管理存贮器SCM中的写入槽用指示器WSLP所指示的地址(地址0)的字中取出槽号0,并从下一个地址(地址1)的字中取出槽号1,然后将槽号0写入第1写入槽寄存器WSR1中,将槽号1写入第2写入槽寄存器WSR2中。此时,按照步骤3.5和步骤3.6,为了给读出槽寄存器RSLR的设定做好准备,将槽号0写入槽管理存贮器SCM中的地址9的字内,将槽号1写入地址15的字内。然后,给写入槽用指示器WSLP的值加2。
图16中左起第9列对应于图像B2的前半场的第1个8行的输出期间,即图13中的期间43。在这期间内,从槽管理存贮器SCM中的读出槽用指示器RSLP所指示的地址(地址9)的字中取出槽号0,然后将槽号0写入读出槽寄存器RSLR中。该槽号0是在半帧期间以前,已写入到槽管理存贮器SCM内的号码。然后,给读出槽用指示器RSLP的值加1。
图16中左起第14及第15列对应于具有场结构的图像B3的第1个16行的解码期间,即图14中的期间48及49。在这些期间内,从槽管理存贮器SCM中的写入槽用指示器WSLP所指示的地址(地址12)的字中取出槽号6,从下一个地址(地址13)的字中取出槽号8,然后将槽号6写入第1写入槽寄存器WSR1中,将槽号8写入第2写入槽寄存器WSR2中。此时,按照步骤3.5和步骤3.6,为给读出槽寄存器RSLR的设定做好准备,将槽号6写入槽管理存贮器SCM中的地址1的字内,将槽号8写入地址2的字内。然后,给写入槽用指示器WSLP的值加2。
图17中左起第5列对应于图像B3的前半场的第1个8行的输出期间,即图14中的期间55。在这期间内,从槽管理存贮器SCM中的读出槽用指示器RSLP所指示的地址(地址1)的字中取出槽号6,然后将槽号6写入读出槽寄存器RSLR中。该槽号6是在半帧期间以前,已写入到槽管理存贮器SCM内的号码。然后,给读出槽用指示器RSLP的值加1。
另外,在图16和图17中,无论哪个期间,带有符号“R”的字(用于设定读出槽的1个字)所属的地址始终大于带有符号“W”的字(用于设定写入槽的2个字)所属的地址。从而,可以保证写入对象的槽即是读出已经结束的槽。再者,即使在达到了高速解码,16行的解码期间变得比16行的输出期间短的情况下,控制部14仍然会等到上述条件4被满足为止,所以不会出现问题。
综上所述,若采用图1的MPEG解码器10的话,在垂直消隐期间内不对输入位元流IN进行解码的条件下,因为用分别具有1个场的容量的5个存贮器块20、21、22、23、24之中的1个和3个附加槽25能够实现B图像的隔行变换,因此帧存贮器11的容量可以削减到约2.5帧。
此外,附加槽的数量能够减少。图18表示了使用N+2个槽以实现B图像的隔行变换的情形(N=6)。但图18中右起第5列所要求的解码速度是其它列的2倍。图19表示了使用N+1个槽以实现B图像的隔行变换的情形(N=6)。但图19中右起第5列要求在水平消隐期间内结束16行图像的解码。因此,用N+3个槽来实现B图像的隔行变换即可,即使在这种情况下借助于具有16兆存贮容量的1个存贮芯片也能实现MPEG2所需的全部存贮功能。
权利要求
1.一种具有帧存贮器的图像处理装置,其特征在于上述帧存贮器由分别具有图像的半帧容量的5个块和其容量比该5个块的每一个都小的1个附加块构成;首先,从上述5个块中所选择的4个块用于存贮动作补偿时参照所用的I和/或P图像,用剩下的1个块和上述附加块来构成用于B图像的隔行变换的1个数据存贮器;然后,上述B图像所用的数据存贮器由上述4个块中的1个块和上述附加块重新构成。
2.如权利要求1所述的图像处理装置,其特征在于将上述5个块的每一个和上述附加块分别分解成具有规定容量的多个槽;上述图像处理装置还包括存贮槽号所用的槽管理存贮器;和使用上述槽管理存贮器所存贮的槽号来控制上述数据存贮器的写入和读出的控制器;为了读出上述数据存贮器,上述控制器将对上棕数据存贮器进行写入时所用过的槽号写入上述槽管理存贮器。
3.如权利要求2所述的图像处理装置,其特征在于该图像处理装置还包括写入槽用指示器和读出槽用指示器,上述写入槽用指示器用来指定对上述数据存贮器进行写入时所用的槽号在上述槽管理存贮器内的存贮位置;上述读出槽用指示器用来指定对上述数据存贮器进行读出时所用的槽号在上述槽管理存贮器内的存贮位置,上述写入槽用指示器和上述读出槽用指示器被更新以便在上述数据存贮器中的某一个槽被读出之后,立即能对该槽进行写入。
4.如权利要求2所述的图像处理装置,其特征在于上述数据存贮器中的各槽具有相当于解码处理单位行数的一半行数的数据单位容量。
5.如权利要求4所述的图像处理装置,其特征在于上述控制器使用两个槽号来控制上述数据存贮器的写入。
6.如权利要求4所述的图像处理装置,其特征在于在上述B图像具有帧构造的情况下,上述控制器使用两个槽号来控制上述数据存贮器的写入,以使构成上述B图像的前半场和后半场的各数据单位都被写入上述数据存贮器。
7.如权利要求6所述的图像处理装置,其特征在于上述控制器将上述两个槽号按读出槽用指示器从上述前半场数据的读出到上述后半场数据的读出的变化量分开并向上述槽管理存贮器中写入。
8.如权利要求4所述的图像处理装置,其特征在于在上述B图像具有场构造的情况下,上述控制器使用两个槽号来控制上述数据存贮器的写入,以使构成上述B图像的上半及下半数据单位分别被写入上述数据存贮器。
9.如权利要求8所述的图像处理装置,其特征在于上述控制器将两个槽号分别写入上述槽管理存贮器,以使读出槽用指示器能够连续读出上述上半及下半场数据。
10.如权利要求2所述的图像处理装置,其特征在于该图像处理装置还具有写入槽用指示器和读出槽用指示器,上述写入槽用指示器用于指定对上述数据存贮器进行写入时所用的槽号在上述槽管理存贮器内的存贮位置;上述读出槽用指示器用于指定对上述数据存贮器进行读出时所用的槽号在上述槽管理存贮器内的存贮位置,上述控制器控制上述写入槽用指示器的值始终小于上述读出槽用指示器的值。
11.一种图像处理装置,其特征在于包括数据存贮器、槽管理存贮器以及控制器,其中上述数据存贮器具有多个槽;上述槽管理存贮器用于存贮槽号;上述控制器使用存贮在上述槽管理存贮器中的槽号来控制上述数据存贮器的写入和读出,上述控制器对上述数据存贮器的写入和读出进行控制,以使在上述数据存贮器中的某一个槽被读出之后,立即向该槽进行写入,并在所给定的该写入时间的前半期间内能够读出其他槽。
12.如权利要求11所述的图像处理装置,其特征在于该图像处理装置还包括帧存贮器,该帧存贮器由分别具有图像的半帧容量的5个块和其容量比该5个块的每一个都小的1个附加块构成;首先,从上述5个块中所选择的4个块用于存贮动作补偿时参照所用的I和/或P图像,用剩下的1个块和上述附加块来构成用于B图像的隔行变换的上述数据存贮器;然后,上述B图像所用的数据存贮器由上述4个块中的1个块和上述附加块重新构成。
全文摘要
本发明为一种图像处理装置,设置具有分别由N个槽所组成的5个场和3个附加槽的帧存贮器。各槽具有能够存贮8行图像的容量。5个场中的任意4个存贮供动作补偿用的参照帧。剩下的1个和3个附加槽供B图像的隔行变换用。控制部设置有槽管理存贮器、写入槽用指示器以及读出槽用指示器,为使图像输出部按正确的槽顺序读出帧存贮器中的图像,在由位元流分析部向帧存贮器进行写入时,槽管理存贮器的内容被更新。
文档编号H04N7/26GK1175029SQ9711770
公开日1998年3月4日 申请日期1997年8月21日 优先权日1996年8月22日
发明者渡部彰启, 宫越英司 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1