帧间预测编码、译码装置的制作方法

文档序号:6606437阅读:144来源:国知局
专利名称:帧间预测编码、译码装置的制作方法
技术领域
本发明涉及帧间预测译码装置,特别是可以适用于数字广播或有线电视等、或电视电话或电视会议等的图像通信装置的帧间预测译码装置。
背景技术
为了将图像信号数字化后直接传输及存储,对于普通的电视(TV)信号,需要100Mbps以上的传输线或存储媒体,对于高清晰度TV(HDTV),需要1Gbps左右的传输线或存储媒体。因此,削减图像信号的冗长度、将图像的信息量减少到1/10-1/100左右的高效率编码研究正在兴起。其典型的代表有国际标准化组织(ISO)已将其标准化的I SO/IEC 11172-2(92.11通称为MPEGI)及其扩展即ISO/IEC CD13818-2(93.11通称为MPEG2)。下面,将MPEG1和MPEG2合称为MPEG,以MPEG为中心说明先有的技术。关于其详细情况,由于在上述ISO/I EC11172-2和ISO/IEC CD 13818-2中有详细的说明,所以,在本说明中只说明其概况。
图1是包括MPEG1,2在内的先有的编码装置的框图。输入的数字图像2暂时存储到缓冲器3内后,分割为由称为宏块的亮度信号16像素×16像素、色差信号R-Y 8×8像素、B-Y 8×8像素构成的处理单位。各宏块由运动补偿(MC)和离散余弦变换(DCT)电路4求出与将画面的移动修正过的预测信号的差分后,进行离散余弦变换,可以得到频率成分的一种即DCT系数8。DCT的运算按进一步将宏块的亮度信号一分为四的块(颜色及亮度均为8像素×8行)单位进行。进行DCT系数8和MC/DCT处理时得到的运动矢量9等附加信息输入可变长编码(VLC)电路5,分别按照预先规定的顺序变换为规定的编码,输入编码缓冲器6。以和外部的传输机器或存储装置的读出速度一致的速度从编码缓冲器中读出编码7。由编码缓冲器按一定周期计算编码量,将发生编码量10通知给编码量控制电路212。由编码量控制电路调节量子化步长尺寸213,以使编码量成为指定的值,并将这些控制信息通知给MC/DCT电路4。
图2是以上所示的先有例的MC/DCT电路4的详细图。在说明图2之前,先利用图3说明MPEG1,2中的运动补偿动作。在MPEG1和MPEG2中,是将TV的画面分为I图像、P图像、B图像这3种图像后进行编码的。I图像是将画面分割为宏块及块后对这些块直接进行DCT的编码方法。因此,与下面说明的P、B图像不同,I图像的信息可以单独再生1个画面。另一方面,P、B图像是根据事先已编码的画面作成预测图像,对与预测图像的差分进行DCT后进行编码的。
图3是用于说明B图像的预测图像生成的方法的图。在图3中,前方参照画面和后方参照画面是预先进行过编码的图像,前方参照画面在时间上位于现有进行编码的编码画面之前,后方参照画面在时间上位于其后。当对编码画面的1个编码宏块生成预测图像时,在前方、及后方参照画面的相同位置的周边,搜索与编码宏块最类似的部分,生成预测宏块。将画面内的编码宏块的位置与预测宏块的位置的差分称为运动矢量。对于预测信号的生成方法,有使用前方参照画面的预测宏块的前方预测、使用后方参照画面的预测宏块的后方预测、对这2个预测信号按每个像素求平均的内插预测和使预测信号都成为相同的固定值(128)的帧内预测。通常,在这4个预测模式中选择预测误差功率最小的作为预测信号。对于P图像,只能使用前方预测和帧内预测,禁止使用后方预测和内插预测。在MPEG2中,对于P图像,追加了将2个前方预测信号按每个像素求平均的预测(双原始预测)。
对于前方参照画面和后方参照画面,只使用I图像和P图像,在一组前方及后方参照画面之间不存在别的I图像和P图像,即只能连续地存在B图像。另外,还允许完全不存在B图像。I图像、P图像的间隔可以任意设定,但是,多数取为相隔3个画面以下的固定值。另外,I图像作为随机存取的基点或错误时的复归点使用,其间隔可以任意设定。通常,以小于0.5秒的间隔固定地插入I图像,即,多数为相隔12或15帧的情况。在MPEG中,对于这些I图像的周期及I和P图像的周期的描述分别使用N和M的符号。例如,当取N=12,M=3时,各帧以“BBIBBPBBPBBP”的周期进行编码。在实际进行编码时,第3个I图像的帧最先进行编码,接着是第1,第2帧,然后是第6个P图像的帧,并且按照第4,第5帧的顺序进行编码。并且,例如,第6个P图像的帧根据第3个I图像的帧进行预测,第4帧根据第3个I图像的帧和第6个P图像的帧进行预测。
现在再回到图2,进行先有的MC/DCT电路4的说明。输入的数字图像信号11输给图像存储器201,改排为上面说明的编码顺序。另一方面,同时输给动检测电路12,在与已编码并存储在参照图像存储器200内的参照图像信号202之间,检测每个宏块的运动矢量。这时,将由图像存储器201延迟过的图像信号214同时输入运动检测电路12,根据参照图像数据202检测后方预测的矢量。由图像存储器201延迟指定时间的信号作为编码图像信号203输入运动补偿电路13。与此同时,运动补偿电路13根据由动检测电路12检测的运动矢量9,从参照图像存储器200内读出参照图像信号202,作为预测信号,对于I图像,不读出该参照图像信号,使用固定值。由运动补偿电路将编码信号203与参照图像信号202按每个对应的像素求差分,生成差分图像信号204,该差分图像信号204由DCT电路205变换为DCT系数,然后,由量子化电路206按照预先设定的量子化步长尺寸213进行量子化。经过量子化的DCT系数8与运动矢量9一起供给可变长编码电路5。进行编码的图像为B图像时,经过M/DCT电路的处理即告结束,但是,若为I或P图像时,为了后面的图像,必须进行参照图像信号的再生处理。经过量子化的DCT系数8由反量子化电路207按照和量子化时相同的量子化步长尺寸进行反量子化处理,其结果由反DCT电路208进行DCT的反变换。经过反变换的再生差分图像信号209由加法电路210与将该块的参照图像信号202延迟指定时间后的信号相加,便可得到再生图像信号211。再生图像信号211存储到参照图像存储器200内,在进行后面的画面的编码时作为参照图像信号使用。
由图像译码装置进行译码后,通过进行从反量子化电路207到向参照图像存储器200内的存储的处理,便可再生出图像。
图4是图像存储器201、参照图像存储器200和动检测电路12的详细图。图4的动作进行图5的时间流程图所示的动作。图4和图5与M从1-3的情况对应。即,与从没有B图像的模式(M=1)到B图像每次连续输入2个画面的模式(M=3)的情况对应。下面,以M=3的情况为中心说明其动作。输入图像为P图像时,即图5的帧号为3、6、9时,在矢量检测电路450-1内,在与存储在参照图像存储器200内的3帧前的参照图像之间进行运动矢量检测。在参照图像存储器200内具有前方及后方2个参照图像用的2个帧存储器410和411,由选择电路412按照M帧周期进行切换,以使前方参照图像信号与参照图像信号202-1对应,使后方参照图像信号与202-2对应。经过运动检测处理之后的图像,进行编码处理。即,由帧存储器401延迟约1帧时间的信号由选择电路405选择,作为编码图像信号203输出。经过编码及再生的图像信号211写入并存储到参照图像存储器内2个帧存储器410及411中存储着更早的参照信号的一个帧存储器内。通过使编码处理的开始时刻比在同一时间带内进行的运动检测处理开始时刻提早若干时间,便可在运动检测处理时刻将画面开头部分的参照图像信号预先存储到该帧存储器410或411内。
输入图像为I图像时,不进行矢量检测,和P图像一样,延迟1帧后作为编码图像信号203输出。
输入图像为B图像时,首先,在输入时和P图像一样,检测相对于前方参照图像的运动矢量。延迟的帧数与M值相当,由选择电路406切换M=2和M=3的情况。在M=1时,由于不存在B图像,所以,不需要进行后方预测。经过后方预测的运动检测处理的图像,立即进行编码处理。即,由帧存储器403或404延迟约1帧时间的信号由选择电路405根据M值选择后,作为编码图像信号203输出。
由矢量检测电路450-1,2从参照信号202-1或202-2中检索与输入的信号11或214最类似的部分,并将这时的矢量值作为451-1,2输出。输出的信号集中到总线内,作为运动矢量信号9输出。
简单地说明运动矢量检测电路的动作内容示于图6,其动作时间图示于图7。图6是从6(=W)×V(V大于3)个参照画面中检索图7的下部所示的那样与2×2像素的编码块最类似的部分的例子。在图6中,检索开始时,开关603选择输入信号11或214。输入信号11或214如图7所示的那样,在参照信号0、1、6、7的时刻输入A、B、C、D的像素数据,在延迟电路604-1-3中,分别各延迟1个时钟。同时,在存储到RAM 603、输入作为检测单位的4像素之后,切换开关603,按8像素周期周期性地输入4个输入信号。在8像素周期中不存在数据的期间,不论是什么值都没有关系。另一方面,在输入信号的输入开始的同时,将参照图像中检索范围的数据作为参照信号202输入,这些信号输入检测电路601-1-8,进行类似性检测。输入各检测电路的数据,参照信号都是相同的数据,输入信号分别输各延迟1个时钟的数据。结果,如图7所示的那样,从输入开始经过8个时钟时,从各检测电路分别输出与位置各1像素不同的部分的类似度614。由于该类似度的输出只是在1个时钟内的某1检测电路输出,最小值选择电路602通过对1个时钟各逐次进行最小值判断,可以检测出最类似的矢量。在类似度614中,也包括与参照画面的画面两端的边界相关的块(例如,由图7下部的序号5、6、11、12的像素构成的块),所以,最小值选择电路602进行将与这样的边界相关连的块除外的处理。检测电路601的内部由差分电路610求两个信号的差分后,由绝对值电路611取绝对值,然后与寄存器613内存储的累积值614相加。在4像素的最初像素相加之前,通过将寄存器613清除为0,在4个时钟之后,累积值614就成为表示与该部分的类似度的值。在图6和图7中,为了使说明容易理解,将通常按16×16像素单位进行的动矢量检测简化为2×2像素单位。在图6的电路中,进行16×16像素单位的检测时,通过增加检测电路数(约为参照画面的宽度W×16个)便可与之对应。为了减少该检测电路数,已知的方法是省略与和参照画面的左右边界部相关连的部分对应的检测器,使用(W-16)×16个检测电路进行矢量检索的方法。另外,已知的还有不是间歇式地输入输入信号,而是连续地输入,在电路内部延迟的方法。
以上,是先有的图像编码电路的概况。它们的处理量与单位时间内输入的像素数成正比。因此,在通常的TV信号中,由于是大约15M像素/秒的输入像素数,所以,必须以大约70ns进行每1像素的处理。通常,在大约4μs或16μs的时间内按8×8像素或16×16像素单位进行一个处理,通过按流水线方式进行这些处理实现该条件。另一方面,在HDTV信号中,必须进行通常的TV信号的大约4倍到5倍的处理。在上述流水线处理中,需要非常高速动作的运算元件,装置的成本将提高,电路规模也增大。因此,在HDTV中,也可将画面分割为多个小画面,对各画面分配多个小编码电路,进行并行处理。
图8是先有的分割处理的图像编码装置。输入图像信号2由图像分割电路801分割为图例的4个信号805-1,2,3,4,分别由4个小编码装置1-1,2,3,4进行编码,从而可以得到代码806-1,2,3,4,代码806-1,2,3,4由代码组合电路803组合为1个代码7。这时,小编码装置的结构可以直接使用图1的结构。画面的分割方式有将画面按数条扫描线单位(例如将1画面的1024条扫描线进行各256条扫描线的4等份分割)进行分割的方法以及将画面进行纵横4等份分割的方法等。
图9是图8中的图像分割电路801的详细图。输入的图像信号1根据输出与图像的位置对应的切换信号903的切换控制电路902的指示,由开关901传输4个信号中的某个图像信号。
图10是图8中的代码组合电路803的详细图。由各小编码电路生成的代码806存储到先进先出存储器(FIFO)1001内。另一方面,FIFO的读出在该图像的代码存储结束之后开始。读出的代码1011通过开关1003作为代码7输出。该图像的代码从FIFO 1001-1中输出结束后,输出结束信号1010-1,接收到结束信号的切换控制电路1002使FIFO 1001-1的读出结束,使FIFO 1001-2的读出开始。与此同时,将开关1004切换为输出1011-2一侧。以后,同样按照预先规定的顺序,顺序读出4个FIFO后,再次从FIFO 1001-1开始进行下一帧的代码的读出。
在上述先有的分割处理的图像编码装置中,存在以下2个课题。第1个课题是,由于进行分割处理的各小编码电路是分别独立地进行编码处理的,所以,在区域的边界附近不能充分利用画面间的相关性进行编码,与使用1个编码电路进行编码的情况相比,编码效率降低。特别是在使用运动补偿帧间预测的方式中,由于不能使用其他区域的图像作为预测图像,编码效率的恶化特别大。
第2个课题是,由于各小编码电路分别独立地进行编码处理,所以,只能在各小编码电路内调节发生代码量。因此,例如当在某一部分发生大量的信息量时,分割给担当对该部分进行编码的小编码电路以后的处理担当部分的代码量将减少,从而画面质量将降低,特别是在与周边区域的边界部分,恶化更明显。

发明内容
本发明就是为解决上述课题而提出的,其目的是提供一种小型、廉价的帧间预测编码装置、帧间预测译码装置、运动矢量检测装置、可变长译码电路和代码量预测装置。
本发明的帧间预测编码装置包括将输入图像分割为多个区域的分割装置;通过对上述各区域的数据进行运动补偿帧间预测编码而生成代码的多个编码装置;对所述多个编码装置生成的代码进行整理的整理装置,以及对与所述编码装置邻接的编码装置的参考图像进行存取的存取装置。
本发明的帧间预测译码装置包括将输入的代码串分割为与被预先分割的区域对应的代码的分割装置;对所述被分割后的代码串进行运动补偿帧间预测译码处理、生成再生图像的多个译码装置;把所述多个译码装置输出的再生图像合成为一个画面的图像合成装置,以及对与所述译码装置邻接的译码装置的参考图像进行存取的存取装置。
本发明的又一种帧间预测编码装置包括将输入图像分割为多个块的分割装置;计算所述多个块中每一个运动矢量的计算装置;用得到的上述运动矢量进行运动补偿帧间预测、生成预测误差信号的生成装置;存储多个块的所述运动矢量和DCT系数的存储装置;以及从所述存储装置读出所述运动矢量和所述DCT系数的可变长编码装置。
本发明的运动矢量检测装置,由输入编码图像的块信号的输入装置、输入参考图像的输入装置、使参考图像延迟的多个延迟装置、测量编码图像块和延迟参考图像块的相似性的多个第一检测装置、比较所述第一检测装置测量出的相似性、并记录呈现最小相似性的那个检测装置的位置的记录装置和根据所述记录下来的位置计算运动矢量的计算装置构成,其特征在于还包括N个累加器,用于取出由所述多个第一检测装置输入的编码块信号和参考信号的差分信号的绝对值、计算该差分信号绝对值的累加值;转换装置,用于根据所述编码块信号的空间位置把所述差分信号的绝对值提供给所述多个累加器中的任一个;第二检测装置,用于计算所述N个累加器的输出的总和,输出N个累加结果及其总和,以及计算装置,逐个比较分别与多个第二检测装置测得的相似性对应的输出、根据呈现最小相似性的所述第二检测装置的位置计算运动矢量。
本发明的又一种运动矢量检测装置的特征在于所述块信号由16个水平象素和16个垂直象素构成;所述N等于4;以及所述转换装置将所述块信号转换成垂直二等分和水平二等分的各有8个水平象素和8个垂直象素的象素单元。
本发明的可变长译码电路的特征在于包括抽取输入的代码串开始的指定位数的抽取装置;计算指定值从所述抽取的位串的指定位的位置开始、连续出现的连续数的计数装置;从跟在与所述连续数相当的位之后的位串、生成指定长度的位数串的生成装置,以及用所述连续数和上述后续的位数串生成检索表的索引的生成装置,其中,使用该索引指示的检索表内的值对与所述代码串相当的可变长代码进行译码。
本发明的一种代码量预测装置的特征在于包括将输入的图像分割为块的分割装置;检测每一个所述被分割的块的运动矢量、算出其预测误差的计算装置,以及以画面为单位把所述算出的预测误差累积起来的累积装置,其中,从对于多个画面的所述累积值和分配给该多个画面的总代码量、预测对该多个画面中的一个的发生代码量。
本发明的又一种代码量预测装置的特征在于包括将输入的图像分割为N个块的分割装置;检测每一个所述分割出的块的运动矢量、算出其预测误差的计算装置;以及以画面为单位累积所述算出的预测误差的累积装置;其中,根据在对画面内的第i个块编码时积累得出的预测误差值和直到第i个块为止的预测误差值的总和以及分配给该图像的总代码量、预测第i个块的发生代码量。
通过使在各小编码装置内具有重复的区域部分,在区域边界附近也可以利用画面内及画面间的像素间的相关性,与单一的编码装置相比,可以防止编码效率降低。另外,通过通知发生的信息量,可以把暂时发生的大量的信息量引起的画面质量的恶化分散到很广的范围,从而可以使画面质量恶化不明显。
按照本发明,由于几乎不降低图像的编码效率便可实现电路各处的动作速度的低速化,所以,可以实现装置的小型化,且价格低廉。
本发明的优点还在于根据普通的技术即可明白本发明的如下说明和对替代装置的详细描述。
本发明采用相关的框图进行说明,目的只在于详细说明本发明及其替代装置,但是并不限于这些框图。


图1是说明先有的编码的装置的图。
图2是先有的MC/DCT电路的说明图。
图3是运动补偿帧间预测的动作说明图。
图4是先有的图像存储器、参照图像存储器和动检测电路的结构,图5是图4的运动检测电路的动作时间流程图。
图6是先有的运动矢量检测电路。
图7是图6的运动矢量检测电路的动作时间流程图。
图8是利用先有的图像分割处理的图像编码装置。
图9是先有的分割电路图。
图10是先有的代码合成电路图。
图11是本发明的图像编码装置的结构图。
图12是本发明的小编码电路的结构图。
图13是本发明的共有存储器电路的结构图。
图14是本发明的存储器管理电路的结构图。
图15A,B是本发明的存储器管理方式的说明图。
图16是本发明的MC/DCT电路的结构图。
图17是本发明的图像译码装置的结构图。
图18是本发明的代码分割电路的结构图。
图19是本发明的小编码电路的结构图。
图20是本发明的图像合成电路的结构图。
图21是小编码电路的其他结构图。
图22是MC/DCT电路的其他结构图。
图23是图22的帧存储器电路的结构图。
图24是图22的运动检测电路的结构图。
图25是图24的运动矢量检测电路的结构图。
图26A、B、C是图25的运动矢量检测电路的其他结构图。
图27是图11的图像编码装置的其他结构图。
图28是图27的小编码电路的其他结构图。
图29是图28的代码控制电路的结构图。
图30是设置代码量调整电路的小编码电路的结构图。
图31是设置代码量调整电路的小编码电路的其他结构图。
图32是图30的代码量调整电路的结构图。
图33是图23、24的帧存储器电路和动检测电路的其他结构图。
图34是图33的帧存储器电路和运动检测电路的动作时间流程图。
图35是图22的运动补偿电路的结构图。
图36A,B,C是图35的运动补偿电路的动作说明图。
图37是图35的半像素电路的结构图。
图38是具有代码量控制电路的小编码电路的结构图。
图39是图38的具有代码量控制电路的小编码电路的其他结构图。
图40是图11的共有存储器电路的其他结构图。
图41是图11的共有存储器电路的其他结构图。
图42是生成预测图像的简化法的说明图。
图43是本发明的图像编码译码装置的说明图。
图44是图11的编码装置的其他结构图。
图45是图44的小编码电路的结构图。
图46是图45的小共有存储器的结构图。
图47是图25的运动矢量检测电路的其它结构图。
图48A、B、C是图47的运动矢量检测动作的说明图。
具体实施例方式
图11是使用本发明的实施例。图11是在图8的图像编码装置中应用本发明的例子。图中,示于1100的部分是本发明的部分,其他部分和图8的功能相同,所以,说明从略,下面以1100的部分为中心进行说明。
小编码装置1101将输入的图像信号805进行编码后输出代码806,具有2种保存编码处理使用的画面的存储器。一种是存储编码图像的存储器,与各小编码装置的处理区域对应;另一种是存储参照图像的存储器,是与比各小编码装置的处理区域更广的相邻的区域和重复的区域对应的存储器。和先有情况一样,在各小编码装置1101内具有编码图像的存储器,在共有存储器电路1102内具有参照存储器。从小编码装置1101向共有存储器电路1102内的存取,使用存取信号1103和读出信号1104。
图12是小编码电路1101的详细图。小编码电路1101的动作和图1的编码装置1几乎完全相同,不同的是在MC/DCT电路1201内增加了向共有存储器电路1102的写入信号1103和读出信号1104。在图12的小编码电路内,作为重复区域分配预测图像存储器。通过将预测图像分配给重复区域,还可以根据是先有该区域外的部分进行动补偿的预测,从而可以获得和单一编码处理装置时相同的编码效率。
图13是共有存储器1102的详细图。写入通过信号1103-1104进行,读出使用信号1104-1-4直接对存储器进行存取。从各小编码电路输入的写入信号1103-1-4输给存储器管理电路1301。写入信号1103是使对存储器的控制信号与数据并行的信号串,例如,顺序传输写入开头地址、写入数据数、写入数据串。写入数据数约为64像素(8像素×8行块数据)或256像素(16像素×16行)或384像素(6个8像素×8行信号宏块数据)是适当的,将2维数据利用预先确定的扫描法变换为一维信号后进行传输。写入数据数为8像素或16像素的一维数据也可以。另外,在分割后的小画面的编码开始时传输表示画面开头的信号和表示画面大小的信号,然后,只按照编码顺序传输数据,也可以利用按照预先确定的存取顺序进行写入的方法。存储器管理电路1301利用写入地址判断相应的存储器,向存储器存取信号1310-1-4相应部分输出信号,写入存储器1303或存储器1304内。使用将输入的一维数据变换为原的二维数据的地址进行写入。
另一方面,读出时利用读出信号1104对存储器1303或1304进行存取。读出信号1104电读出地址线和数据线构成,可以和写入相互独立地进行读出。
图14是存储器管理电路1301的详细图。输入的写入信号1103中,地址部分通过开关1401存储到地址FIFO 1402内,数据部分存储到数据FIFO 1403内。存储的地址和数据利用开关1404和开关1407进行选择,同时写入相应的存储器内。这时,地址数据由地址变换电路1405变换为各小编码电路使用的地址。当利用写入信号1103--1-4进行的写入在时间上相重时,相重的信号中只写1个,其他信号的写入延迟到最初的写入结束之后进行,当FIFO有可能发生溢出时,就通知给相应的小编码电路,中止输入数据。
图15A,B是存储器管理电路的地址变换的例子,图15A,B是将水平1920像素、垂直1024行的画面4等分分割的例。在MPEG等图像编码方式中,为了对每个亮度信号16像素×16行进行处理,分割的区域的大小最好水平垂直都是16的倍数的矩形。但是,关于包含画面的右端或下端的区域,也可以不是16的倍数。另外,在处理将隔行扫描图像的2个场按每1行合成后形成的帧的编码装置中,区域的垂直方向的像素数在帧图像上最好是32的倍数。图15A的分割例子是按水平4等分分割的例子,图15B的分割例子是水平垂直分别2等分分割的例子。都是在与连接边界的相邻区域之间从边界开始具有128行或128像素的共有区域的例子。在以后的说明中,认为由2维地址指定存储器,只要未特别指定,就将垂直地址简单地称为地址。
对于图15A的分割例子,在将画面每隔256条扫描线进行分割的编码装置中,对于各存储器1303及1304,实际装配的是垂直方向512条扫描线的存储器,不论哪个小编码电路都存储着对地址0-255进行编码处理的区域,在地址256-511内存储着共有区域。在第1存储器例如1304-1中将扫描线256-383存储在垂直地址256-383内,在存储器1304-2中,将区域1的扫描线128-255存储在垂直地址384-511内,将区域3的扫描线512-639存储在垂直地址256-383内。因此,例如扫描线240的数据在写入存储器1304-1的地址240内的同时,写入存储器1304-2的地址496(240+256)内。另外,扫描线300的数据在写入存储器1304-2的地址44(300-256)的同时写入存储器1304-1的地址300(300-256+256)内。通常,分割为各为P条扫描线的小区域,对于连接边界的1个相邻区域,共有Q条扫描线的数据时,各存储器的垂直地址必须为P+2Q。若用符号/表示除法运算后舍去小数点以下的处理,用符号%表示其余的计算,扫描线Y的数据写入区域n(=Y/P)的地址Y(=Y%P、0≤y≤P-1),当y<Q时,与区域(n-1)共有,存储到区域(n-1)的存储器的地址(y+p),当y≥P-Q时,与区域(n+1)共有,存储到区域(n+1)的存储器的地址(y-(P-Q)+P+Q=y+2Q),上述计算在地址变换电路1405内进行,可以利用固定值的加减运算实现。特别是像P=256、Q=128那样,在P为2的幂次方、Q为其1/2的例子中,如上述例子所示的那样,加减运算仅靠位操作就可以实现,减小电路规模的效果很大。当P为2幂次方、Q小于其1/2时,通过分配和Q为P的1/2时相同的地址,也可以仅靠位操作进行运算。这时,在地址的中途存在不进行存取的区域,但是,对于该区域不论分配实际的存储器元件与否都可以。
在图15B的分割例子中,将画面分割为960×512像素的4个小画面。这时,编码的区域存储到存储器的地址0-511,在地址512以后存储共有区域的数据。在存储器1304-1的例子中,将区域3的960像素×128行(扫描线512-639行)存储到地址512-639;将区域2的128像素×512行(扫描线0-511行)的垂直、水平地址交换后的数据存储到地址640-767;将区域4的128像素×128行(扫描线512-639行)存储到地址768-960。写入时,例如区域1-4都共有的部分的数据同时写入存储器1304-1-4内。在地址变换电路1405中,进行以上的地址变换扫描。在水平垂分割中,与水平分割相比,地址变换电路1405稍许复杂一些。另一方面,当实现相同的共有范围(距离边界相同像素数的范围)时,各存储器1303、1304的容量减少。在图15A,B的例子中,变为3/4的容量。上述说明是以亮度信号为例进行的,但是,对于颜色信号或亮度信号与颜色信号都可以适用。
从图11-图15A,B的说明,是将画面的分割数取为4进行的,但是,显然,也可以适用于画面的分割数是4以外的某个值。当分割数增多时,由于每个小编码装置的处理量减少,所以,可以使用更低处理能力的电路,相反,利用相同处理能力的电路可以对更大面积的图像进行编码。但是,当1个小图像编码装置对某一画面编码结束之后为了开始进行下一个画面的编码,必须等到具有共有区域的所有的小编码装置的处理结束。例如,在水平分割的情况下,在区域1的信号输入结束的时刻,小编码装置1101-1开始进行处理,在区域2输入结束的时刻,小编码装置1101-1开始进行处理,具有使处理开始时间按每个小编码装置偏移的方法可以使延迟减小,从而可以使延迟修正用的缓冲器容量也减少的优点。在这样的方法中,小编码装置1101-1为了开始进行下一个编码,如果不等到小编码装置1101-2的处理结束,同样,小编码装置1101-2必须等到小编码装置1101-3结束,小编码装置1101-3必须等到小编码装置1101-4结束。换言之,就是在输入前一个小编码装置的画面之前,必须使编码处理结束。结果,各小编码装置实际进行编码处理的时间成为3/4,若以总体的处理量为1时,各小编码装置的处理能力不是1/4,而变为1/3(=1/4*4/3)。当增加分割数进而增加共有的区域的小编码装置数量,若不等到相应的所有小编码装置结束,便不能开始进行下一个画面的编码。因此,当增加分割数,从而共有的区域扩大时,也不一定会降低各小编码装置的处理能力。图像编码的处理单位,对于亮度信号为16×16像素的点,动矢量的检索范围约为-15-+15,由于可以补偿大部分动矢量,所以,共有区域的扫描线数取为距离边界为16行(边界的上下32行由2个区域所共有)最合适。但是,由于垂直方向的画面的相关性不太强,所以,即使将共有区域取为8行,对画面质量的影响也很小。共有区域小于16行时,小述等待编码开始的时间的影响很小。
通常,由于水平方向的画面的相关性比较强,所以,在水平方向将全部像素作为相同区域进行处理可以提高编码效率。小编码装置的数和分割区域的数也可以不一致。当小编码装置的数少时,处理结束后的小编码装置就对同一画面的其他区域进行编码。小编码装置的数多时,可以减少每个小编码装置的处理,但是,实际上由于如果前一画面的编码未结束,就不能开始进行下面的编码,所以,在共有区域约为16行的例子中,设区域分割数为R,则小编码装置的处理能力必须为1/(R-1)。但是,像B图像那样,对于其他画面的预测不使用的画面的编码,利用1/R的处理能力就可以对应。
以上共有存储器的写入操作具有如下效果。在各小编码装置1101中,由于可以存取相邻的小编码装置的参照图像,所以,动补偿的范围可以取为和单一编码装置时一样,从而可以弥补分割编码方式的缺点。通过同时写入共有区域,每单位时间内向存储器的写入次数变为和使用单一编化装置时相同的次数。因此,存储器管理电路及存储器可以采用和使用单一编码装置时相同的动作速度的电路及元件,特别是不必使用高速元件和复杂的电路。
图16是图12有MC/DCT电路1201的详细图。MC/DCT电路的全体动作和先有的MC/DCT电路4基本上相同,所以,说明从略。在图16的MC/DCT电路1201中,与图2的参照图像存储器200相当的部分设在外部的共有存储器电路1102中的是涉及本发明的部分。因此,增加了写入信号1103和读出信号1104。除了这部分外,MC/DCT电路1201与MC/DCT电路4完全相同。
这样,应用本发明的图像编码装置800便可保持着与单一编码装置相同的编码效率,通过将画面分割为4等份,各小编码装置的处理量变为约1/3-1/4,仅使用低速元件就可以进行编码处理。结果,可以实现低速小规模或低速低成本,从而可以实现整个装置的小型化或低成本化或两者兼而有之。另外,作为小编码装置1101进行处理器等的软件处理时,本发明的效果很大。利用现在的处理器的能力,难于用单一的处理器对普通的TV信号进行编码。另一方面,只要利用软件处理可以实现编码处理,除了可以很容易进行处理方法的改进以及与新编码方式对应外,还可以减少装置的开发及维修的时间和麻烦。通过应用本发明,可以发挥软件处理的优点,并且可以获得与使用单一硬件的编码效率相同的效率。这时,各小编码装置1101标有固定的序号,只要根据该序号设定编码区域位置和地址变换方法等,就可以使所有的小编码装置采用相同的结构,利用硬件处理实现时,可以提高装置的基板或LSI等的生产效率和检查效率;利用软件实现时,除了提高上述生产效率外,还可以减少执行软件的传输时间和麻烦。
图17是应用本发明的第2实施例。在图17中,将本发明应用于图像译码装置1700。图像译码装置1700是输入由图像编码装置1或800等生成的代码串、再生出原来的图像的装置。输入代码串7输给代码分割电路1701,分割为与预先分割的区域对应的代码1710-1-4。分割的代码1710输入小译码装置1702,再生出图像1702。再生的图像1702-1-4在图像合成电路1703中合成为1副图像2。
图18是代码分割电路1701的详细图。输入的代码7在标题检测电路1802中检测并分析其标题部分,检查是画面上哪个位置的编码。切换控制电路1803根据该位置信息1811利用控制信号1810切换开关1801。
图19是译码电路1702的详细图。输入的代码171-0暂时存储到代码缓冲器1901内后,利用可变长译码电路1902进行读出和译码。译码的结果、差分图像的DCT系数8和动矢量9等译码信息输入MC/iMCT电路1903。在MC/iDCT电路1903中,对DCT系数8进行反量子化处理之后,利用DCT反变换(iDCT)再生出差分图像。另一方面,根据共有存储器电路1102内存储的参照图像利用读出信号1713生成利用动矢量9等信息所示的预测图像,与再生的差分图像相加。如前面所述,这些处理和从图3的反量子化207到向参照图像存储器200内的存储的处理相同。通过这一操作,可以得到再生图像。再生图像存储到输出缓冲器1904内,与显示同步地读出,并在TV的画面上进行显示。同时,通过写入信号1712存储到共有存储器电路1102内。
图20是图像合成电路1703的详细图。切换控制电路2002监视显示时刻,利用开关2001选择与显示部分对应的区域的再生图像信号1711-1-4,读出像素数据,向输出图像信号2输出。
以上,是本发明如图27那样也可以应用于图像译码装置。以往,进行分割处理的译码装置,只要不是禁止根据其他小区域进行预则的特殊符号,就不能再生图像。通过应用本发明,便可不受此限制,并且和编码装置的情况一样,还可以获得减小电路规模的效果。另外,和编码装置的情况一样,特别是进行软件处理时,其效果更大。图像的分割方式,水平分割时,垂直方向的行数必须是16的倍数,在隔行扫描的图像的情况下,必须是32的倍数。
下面,说明上述2个实施例的变形例子。显而易见,以下的变形例子或者以下变形例的组合都包括在本发明中。
图21是小编码电路1101的变形例。在图21的编码电路中,在MC/DCT电路4与可变长译码电路5之间,设置暂时存储DCT系数8和动矢量9等信息的缓冲器2101。MC/DCT电路4的处理如前面说明的那样成为与像素数成正比的处理量,所以,希望利用硬件实现在预先固定的确定的时间内进行1个处理单位(8×8块的处理或宏块的处理)的处理。另一方面,可变长编码电路5的处理量与发生的代码量有关,与上述每1处理单位的处理量不同。当对这种性质不同的2个处理进行流水线处理时,例如,如果可变长编码的处理时间比MC/DCT处理的时间长,即使MC/DCT的1处理单位的处理已结束,可变长编码的相应处理还未结束,MC/DCT电路4存在等待下一次的处理开始的问题。作为解决的措施,已知有2种方法,一种是使用高速可变长编码电路的方法,以使在MC/DCT电路4的1处理单位时间内使可变长编码电路5的相应的处理结束;另一种方法是使MC/DCT电路4的处理高速化,以使即使发生可变长编码处理的等待时间,也可以在规定的时间内进行规定的处理。不论哪一种方法,由于都需要高速处理电路,所以,对装置的低成本及小型化不适合。像图21那样,通过设置缓冲器2101,可以吸收MC/DCT和可变长编码两种处理的处理量的不均衡,从而两个电路都可以利用低速进行处理。缓冲器的容量最好是最大可以存储1个画面的信息的容量,即可以存储与1个画面的像素数相同数量的DCT系数和运动矢量信息等,但是,实际上具有1个画面的像素数的大约1/2-1/4的容量也就够了。在实际动作时,在预先确定的数量的DCT系数输入到缓冲器1201内的时刻,就使可变长编码电路5开始进行处理。另外,如果本发明与图11所示的实施例进行组合后使用,还可以进一步减小电路规模,即使应用于使用单一的小编码电路的图像编码装置,也可以获得同等程度的减小电路规模的效果。
图22是图16的MC/DCT电路1201的变形例。与图16不同的第1点,是将延迟后的输入图像2210输入运动检测电路2203,而不是参照图像1104。通常,由于参照图像和与其对应的输入图像的差别很小,所以,对于本来使用参照图像1104进行运运检测的地方,可以使用使输入图像延迟后的信号2210进行运动检测。在图22的实施例中,为了吸收利用参照图像的检测与利用输入图像的检测的误差,在运动补偿电路2202内进行使用参照图像的小范围的运动检测。
图23是图22中的帧存储器电路2201的详细图。以往,如图4所示的那样,使用存储输入图像11的存储器2301、2302代替输入参照图像211的存储器410,411。存储器2301,2302需要在各小区域内加上共有区域的部分的容量,存储的像素数比其他存储器401-404多。这可以通过预先使整个画面的图像数据进入信号11内,由存储器401、2301、2302只写入需要的部分而实现。输入的图像由选择电路2303将2210-1改排为前方预测用的信号、将2210-2改排为后方预测用的信号后输出。
在图16的实施例中,利用图22和图23的处理,可以大幅度地减少进行运动检测时参照图像的读出次数。参照图像在前面的图像编码和局部的译码结束之后到对相应的部分进行编码的期间,必须进行读出和动检测。因此,要求高速地读出和大量的数据传输。通过使用输入图像代替参照图像进行动检测,可以减少读出信号1104的信号线数和实现共有存储电路1102的读出电路的低速化以及存储器元件1303,1304的低速化,从而可以减小电路规模和降低电路成本。虽然如果不是在参照图像写入之后就不能进行动检测处理,但是,由于可以与参照图像的写入独立地进行动检测,所以,可以提高电路结构的自由度,并且可以进一步减小电路规模,降低成本。另外,可以将帧存储器2201和运动检测电路12与图像编码装置分离开,在时间上或空间上或在这两方面都另外进行处理。其有这种功能的图像编码装置或图像编码方法也包含在本发明中。具体地讲,就是在脱机状态下进行图像的排列及运动矢量的检测和存储,通过与编码装置的动作连动地利用信号线203和9输入存储的图像和运动矢量数据,可以实现本发明。显而易见,这些变形例也可以应用于使用单一的编码电路的图像编码装置。如果与图11所示的实施例组合后使用,可以获得更高的效果。即,在图11中,编码装置部分以输入的像素速率的数分之一的处理速率而动作,但是,共有存储器电路1102要求与输入的图像的像素速度成正比的处理速率。通过应用图22的发明,可以利用小编码装置内的低速处理进行该处理速率高的位置的一部分处理,从而可以实现整个装置的小型化。
图24是图22的动检测电路203的详细图。与图4的电路的不同点是与隔行扫描的图像对应。输入隔行扫描图像时,分离为将1个16像素×16行的宏块保持其原形而检测的矢量2410和分离为只有奇数行的16像素×8行以及只有偶数行的16像素×8行后分别检测的矢量2411,2412这3种矢量从1个运动矢量检测电路2401输出。输出的矢量分别存储到缓冲器2402,2403,2404内,通过信号9读出。在动检测电路2203内,设置有前方预测用的动检测电路2401-1和后方预测用的运动检测电路2401-2。另一方面,当输入非隔行扫描图像即场图像等的顺序扫描图像时,将1个16像素×16行的宏块保持其原形而检测的矢量2410和分离为宏块的上半部的16像素×16行和下半部的16像素×16行后分别检测的矢量2411,2412这3种矢量从1个运动矢量检测电路2401输出。利用这些功能,便可使用有限的电路规模对具有各种扫描结构的图像实现高的预测效率。
图25是图24的运动矢量检测电路2401的详细图。其整体动作与图6、图7所示的电路相同。检测单位是16×16像素,但是,检测电路的数量如在先有例中说明的那样随检测范围而异,所以通用地采用N个。本发明的特征在于各检测电路2501内部的信号处理为2个系统,最小值选择电路2503,2504,2505为3个。在检测电路2501内,计算宏块的各像素的差分值的绝对值和,利用开关2550将由绝对值电路611计算的差分的绝对值在加法器612和以器2551中切换输出对象。若根据奇数行和偶数行进行该切换方法,则可实现与上述隔行扫描信号对应的运动矢量检测;若按上部8行和了8行进行切换,则可实现16×8像素的运动矢量检测。加法器612和2551的加法计算结果分别存储到寄存器613和2552内。在1个宏块即256像素的运算结束的时刻,偶数行或上部8行的差分值存储到寄存器613内,奇数行或下部8行的差分值存储到寄存器2512内。由加法器2553对这2个差分值进行加法运算,便可得到整个宏块的差分值2511。将这3个差分值输入各自对应的最小值选择电路2503,2504,2505,只要在各最小值选择电路内独立地选择了最小值,在所有的处理结束的时刻便可得到与整个宏块对应的矢量2410、与奇数行或上部8行对应的矢量2412和与偶数行或下部8行对应的矢量2411这3个矢量。在图25中,通过改变开关2550的切换方式,便可很容易地实现上面说明过的分割以外的分割方法,例如宏块的左右分割等。另外,这些动作与检索范围及检测单位的大小无关,并且,在运动矢量检测电路的先有例的项目中所述的检测方法的变形例全部可以应用。
另外,如果增加分割加法器2551及寄存器2552的信号处理系统和最小值检测电路的数量,并且使用与其对应的开关2550和加法器2553,就可以增加1个宏块的分割数量。例如,如图26A所示的那样,如果使用开关2601将误差信号分割为4个系统等,切换开关2601以使左上部8×8像素成为累积加法器2560-1、右上部8×8像素成为累积加法器2560-2、左下部8×8像素成为累积加法器2560-3和右下部8×8像素成为累积加法器2560-4,则如图的右边所示的那样,便可用1个电路同时检测宏块内的4个8×8的块单位的矢量和1个16×16的矢量共计5个矢量。另外,如图26B所示的那样,通过设置对累积加法结果2610-1,2进行加法运算的加法器2603和对累积加法结果2610-3,4进行加法运算的加法器2604,并使用这些加法运算结果,除了图26A的例子外,还可求出重新将宏块按上下分割为2个单位的运动矢量。图26C是使用2个开关2605,2606进行误差信号的分割的例子。通过改变开关2605,2606的切换方法,便可进行例如利用图的右边所示的不同的2个分割法分割1个宏块的单位的运动矢量检测。这里,通过比较累积加法信号2601-1,2的最小值之和与累积加法信号2601-3,4的最小值的和,便可从这2个分割法中选择最佳的方法。利用这些变形例子,只略增大电路规模,便可求多种分割法的运动矢量,从而可以提高图像的预测效率。在图26A,B中,取开关2601的输出数为3或5以上的值Ns个,使用与其相同的Ns个累积加法电路2560进行Ns个区域单位的运动矢量检测的方法或电路也包含在本发明内。另外,除了开关2605,2606外,通过设置1个以上的开关,使总共Ms个开关采用相互不同的切换方法,来检测与Ms个分割方法对应的运动矢量和最佳的分割方法的方法或电路也包括在本发明内。进而,将它们进行组合而检测分割为Ns个区域的Ms个方法的各动矢量和最佳的分割方法的方法或电路也包括在本发明内外,Ms个分割方法中区域的分割数也可以不相同。
图27是图11的编码电路800的变形例子。与图11不同的地方是在各小编码电路2701-1-4之间增加了通知代码量控制的信息的信号线2710-2715。利用这些信号线得到其他小编码电路的代码量控制信息后,进行与其相应的代码量控制,可以防止由于暂时发生大量的代码而使1个小编码电路编码的画面质量显著地恶化,相反,可以防止由于代码发生很少,而比周边区域的画面质量显著提高。设小编码装置的数量为C时,可以认为各小编码电路间的通知的组合最多为C*(C-1)条信号线。但是,画面质量显著不同的是2个区域的边界部分,所以,如果只通知在画面上担当连接边界的区域的小编码电路间的代码量控制的信息,便可减少信号线条数,从而可以减小电路规模。在水平分割的例子中,设小编码装置的数量为C时,使用2*(C-1)条信号线可以获得与C*(C-1)条信号线时基本上相同的效果。另外,即使只通知担当画面上的距离小于一定值的区域的小编码电路间的代码量控制的信息,也可以获得和上述一样的效果。
图28是图27的编码电路2701-2的详细图。和其他编码电路2701-1,3,4进行基本上相同的动作。现在正在进行编码的画面的代码量通过信号线10输入代码控制电路2801。在代码控制电路2801中将预先确定的值与发生代码量进行比较,如果发生代码量大,就向减少代码量的方向控制,如果发生代码量少,就向增加代码量的方向控制。即,将与预先确定的值与发生代码量之差对应的值作为代码量控制信息向信号线2711,2713输出,通知给相邻的小编码电路。另一方面,从相邻的小编码电路通过信号线2710,2712输入的代码量控制信息加到上述代码量10上进行控制。
图29是图28的编码控制电路2801的详细图。将由相邻的小编码电路通知的代码量控制信息2710,2712分别由系数电路2902,2901乘以K2倍,K1倍后与现在正在编码的画面的代码量10进行加法运算。然后求出加法运算的结果2910与预先设定的代码量2915的差分。如果该差分值2911的绝对值大于一定值,控制电路2907就通过控制线2912,2913控制系数电路2906,2908的系数值K3,K4,并将差分值2911的K3倍及K4倍的值分别作为代码量控制信息2711,2713向相邻小编码电路输出。另一方面,差分信息2911与根据现在的量子化步长尺寸和系数K3,K4以及画面内的位置信息等计算的控制信息2914组合,利用预先确定的计算方法可以得到并输出量子化步长尺寸213。这里,K1,K2,K3,K4都是小于1、大于0的值,最好K3+K4也小于1大于0。另外,还控制K3,K4,以使代码量控制信息不会在2个相邻的小编码电路之间发生往复振荡,以及当信号2710的值为大的正数时信号2711不会成为大的正值,当信号2712的值为大的正数时信号2713不会成为大的正值,同样,当信号2710的值为绝对值大的负数时信号2711不会成绝对值大的负值,当信号2712的值为绝对值大的负数时信号2713不会成为绝对值大的负值。作为具体的数值例子,可以举出K1=1,K2=1,K3+K4=0.25等。
通过将信号2713的输出系统由延迟电路2907进行延迟,吸收小编码电路2702-2与2702-3的处理开始时刻的时间差,可以在画面上从基本上相同的水平位置进行控制。相反,在信号2711到达的时刻,由于小编码电路2701-1已结束该水平位置的编码处理,所以,作为控制的对象的位置便在画面上偏移向右边。
图30是小编码电路1101的变形例子,与图12的电路的不同之处是设置了代码调整电路3001。另外,图31是小编码电路1001的另一变形例子,与图30的电路的不同之处在于设置代码调整电路3101的位置。图30,图31的代码调整电路3001,3101具有操作从可变长编码电路5输出的代码3010使之成为指定的代码量的功能。代码量的设定从编码装置外部进行,例如,通过设定1帧的代码量的最大值和从某一帧到另外一帧间的代码量的值而进行。代码量的调整主要利用前面说明过的代码量控制电路212等进行。但是,难于正确地进行控制,并且将产生某种程度的代码量的误差。代码调整电路3001,3101调整该误差,进行高精度的代码量的控制。
图32是代码量调整电路3001的详细图。输入的代码3010顺序输入移位电路3201。在移位电路3201中,在输入指定的位数的时刻将输入的信号按并行代码3210进行输出。利用表3202判断并行代码3210的哪一部分为可变长代码的分界点,并输出该位数3211和表示一系列代码串的分界代码的信号3212。例如,设可变长代码为10、11、010、011、0010、0011这6种(A-F),代码0001为分界信号(z),则表3202的内容具有4位的输入值,与各输入值对应地预先设定以下的输出值。
表3202的设定例1
输入值 输出值(位数) 输出值(分界代码)A 10XX 2 0B 11XX 2 0C 010X 3 0D 011X 3 0E 0010 4 0F 0011 4 0Z 0001 3 10011 4 0(未使用)其中,输入值用2进制数表示,符号X表示即可以是0,也可以是1。即,输入值01X表示为输入值010和011这两种值。另外,分界代码输出为1时,表示代码为分界代码。在本例中,输入的代码3010从输入值的3位(左侧)开始填写。从表3202输出的位数3211输入移位电路3201,数据只移位位数3211的位数。这时,如果需要,可以输入代码3010。另一方面,并行代码3210和与其对应的位数3211分别输入并存储到代码FIFO 3203和代码长度FIFO 3204内。其中,不论实际的代码长度(位数3211)如何,在代码FIFO 3203内,都有存储着并行代码3210的全部位数,即,在上述表的例子中,存储着4位。另一方面,当该代码为分界代码时,使通过表示分界代码的信号线3212通知给控制电路3205。在通常的情况下,代码FIFO 3203和代码长度FIFO 3204存储的信号在指定的时刻向信号线3213和3214输出,由并/串变换电路3206根据代码3213和代码长度3214再生出可变长代码串3011,其中,控制电路3205根据分界代码的位置控制并/串变换电路3206,进行代码的增加及删除的调整,以便其成为指定的代码量。下面,给出调整的例子。
发生的信息为“AEADzAABz”时,输入代码成为“10 0010 10011 0001 10 10 11 0001”共25位。代码串表示左侧为开头即先传输的值。为了容易看,在代码的分界部分插入空白代码。但是,实际上是输入连续的代码串。这时,代码按照表3202进行分离,下面的数据顺序输入代码FIFO 3203和代码长度FIFO 3204。
代码FIFO 代码长度FIFO (分界代码)110112(A) 0200104(E) 0310012(A) 0401103(D) 0500014(z) 1610102(A) 0710112(A) 0811002(B) 0900014(z) 1其中,通过删除分界代码的前1个代码来减少代码量。即,删除第4个信息D和第8个信息B。结果,输出的可变长代码串3011就成为“10 0010 10 0001 1010 0001”共20位。通常,如果减少代码,就会使再生的信号质量变差。并且,当质量恶化的图像作为预测图像使用时,由于编码装置的预测图像和译码装置的预测图像会因该质量恶化而有若干不同,所以,该质量恶化还会波及以后的画面。因此,通过对以下的情况优先进行代码删除,可以将图像恶化在视觉上抑制到最小限度。(1)B图像的DCT系数;(2)振幅小的DCT系数(即+1,-1的情况);(3)高频率的DCT系数。
另外,不删除代码,而通过置换为代码字长短的代码也可以获得同样的效果。例如,可以通过使高频率的DCT系数或直流成分的振幅减小1个电平而实现。
为了增加代码量,可以通过用并/串变换电路3206在译码装置中插入译码不使用的挤入代码而实现。例如,在MPEG的情况下,有在表示代码同步的起始代码之前插入8的倍数个0位的方法。另外,通过置换为表示相同信息并且代码字长更长的代码,也可以获得同样的效果。例如,在MPEG的情况下,将2位-17位的可变长代码分配给一部分DCT系数,同时,也可以分配20位或28位的固定长代码。因此,通常,通过将作为小于17位的可变长代码而编码的DCT系数置换为20位或28位的固定长代码,可以增加代码量。在该代码的增加处理中,不会直接使图像质量恶化。
通过组合这些代码量的增减的调整处理,可以微调为指定的代码量。代码调整电路3001,3101在可变长编码电路5中也可以与编码同时进行。另外,代码FIFO 3203和代码长度FIFO 3204也可以是移位寄存器、缓冲器和环形缓冲器。
代码调整电路3101的结构和代码调整电路3001基本上相同。不同之处是在图30中通知代码缓冲器6通知的代码发生量10的功能。由于在代码缓冲器的输出之后进行代码量的调整,所以,在1画面的编码结束并将代码全部存储到缓冲器6内,发生代码量成为已知之后,便可进行代码量的调整。因此,可以进行1画面单位等比较大的单位的高精度的调整。
通过进行这种代码量的高精度的调整,可以进行将代码串中的一部分置换为别的代码的操作。即,在电视的数字广播中,相当于在某一图像的广播中将广告或临时新闻等插入到其一部分之中的情况。在这样的置换操作中,如果被置换的部分与置换成的部分的代码量不同,则在译码装置中暂时存储代码的缓冲器1901将发生上溢或下溢,从而导致图像质量恶化。利用本发明的高精度的代码量调整,便可防止发生这种恶化或者将恶化的概率抑制到最小限度。
前面所示的表3202利用下面的变形例子,可以减少其数据容量。即,将并行代码3201分离为与其开头连续的代码0的个数和排列在最早的代码1之后的代码进行输入。在上述代码的例子中,由于与开头连续的0的个数最多为3个,排在最早的代码1之后的代码长度最多为1位,所以,表的数据种类与上述设定例1的情况(16种4位)相比,可以减少一半,成为8种3位。这时,在移位电路中需要和与开头连续的0的个数相等的计量电路。下面,给出按照本变形例的表3202的设定例子。在输入值一项中,左半部2位表示代码0的连续个数的2进制数,右边的1位表示排在最早出现的代码1之后的代码。
表3202的设定例2输入值 输出值(位数)输出值(分界代码)A 000(10XX) 2 0B 001(11XX) 2 0C 010(010X) 3 0D 011(011X) 3 0
E100(0010) 40F101(0011) 40Z11X(0001) 31(---0000) 10(未使用)在该表的设定例中,为了对“0000”的代码进行译码,必须使表示0的连续个数的位再增加1位,但是,在MPEG等中,全部由0构成的代码有可能会与同步代码混同,通常是禁止的,所以没有问题。本变形例越设定与开头连续的0的连续个数长的代码,表的数据数减少的效果越大。例如,由于除了最末尾的代码位外,MPEG的DCT系数的可变长代码最长有16位的代码,所以,必须有2的16次方(65536)个表数据。但是,与该代码的开头连续的代码0的个数最多为11个(4位),排在最早出现的代码1之后的代码长度最多为5位,所以,总共为9位,即使用2的9次方(512)个表数据就够了,从而可以将表尺寸减小为1/128。通过减小表尺寸,可以减小例如实现大规模集成电路(LSI)化时的芯片尺寸,从而可以降低LSI制造成本,实现表存取的高速化,所以,可以利用相同的电路规模实现更高速的处理,或者在相同的处理速度下可以采用更小型、价格低的电路结构。
图32所示的移动电路3201和表3203的电路结构也可以应用于译码装置的可变长译码电路。这时,表3203的结构既可以应用设定例1,也可以应用设定例2,如果应用设定例2,可以获得与在上述代码量调整电路的说明部分所示的相同的效果。应用本发明的可变长译码电路既可以应用于由多个小译码电路1702构成的译码装置,也可以应用于由单一的译码电路构成的译码装置。
图33是图23的帧存储器电路2201和图24的运动检测电路2203的变形例。本变形例的特征在于使图23的帧存储器电路2201和图24的运动检测电路12成为存储场单位的图像,这样,只与帧单位的编码处理对应的电路就变成也可以与场单位的编码处理对应了。具体地说,就是由于在构成1帧的2场之间可以进行预测处理,所以,在运动矢量大的图像编码时也可以实现和通常的图像时大约相同的编码效率。在动检测电路2203中,通过与后面所述的图35的动补偿电路组合应用,如图25的运动矢量检测电路那样,即使不使用检测场/帧两种矢量的检测电路,也可以使用先有的图6那样的运动矢量检测电路检测场/帧单位的运动矢量。另外,由于对每1帧进行动检测,所以,检测单位可以为16×8像素,使用帧单位检测时的一半就够了。因此,运动矢量检测电路450内的检测电路数可以使一半即N/2个进行检测,从而运动矢量检测电路的电路规模可以减小为约一半。
图33的动作与图23的动作基本上相同。在图33中,将图23的各存储器401-404和参照图像用的存储器2301,2302分割为2个,分别存储数据量为一半的场图像。进行编码处理的图像与图23的情况一样,由选择电路405进行选择,处理1帧中哪一场,使用开关3301或开关3302或开关3303进行选择。对图像按帧单位进行编码时,这些开关例如按每一行进行切换,按场单位进行编码时,将各开关设定为下侧(401-2、403-2、404-2的输出一侧)。另一方面,参照用的图像存储到存储器2301、2302内,根据图34所示的时间控制选择电路3304。信号线3350、3354输出构成帧的2场中时间上位于前方的场(场A)的参照图像,信号线3351输出位于后方的场(场B)的参照图像。这些参照图像的切换时间如图34所示的那样,在I图像或P图像(图中用粗线包围输入信号的图像)输入结束的时刻进行切换。但是,信号线3350在从输入结束延迟1场时间后进行切换。这些参照信号都由动检测电路2203检测运动矢量量,但是,运动矢量检测电路3321主要检测场A的参照图象的后方预测矢量,运动矢量检测电路3322主要检测场B的参照图像的后方预测矢量,运动矢量检测电路3323检测场A的参照图像前方预测矢量,运动矢量检测电路3324检测场B的参照图像的前方预测矢量。另外,运动矢量检测电路3321利用帧存储器电路2201内的选择电路3306暂时地切换信号,也可以应用于P图像内的场间预测,即将场6A作为参照图像、将场6B作为输入图像的前方预测矢量(图34中的*符号)。检测的矢量分别存储到缓冲器3325-3328内,作为临时的运动矢量2211从后面的运动补偿电路读出。
图35是图22的运动补偿电路2202的详细图。在运动补偿电路2202中,根据运动检测电路2203检测的临时动矢量2211从帧预测/场预测中确定最佳的预测方法和最佳的矢量9,并输出差分图像信号2212。同时,也进行半像素精度的运动矢量检测。下面,使用图36A,B,C说明确定最佳的预测方法的例子。
图36A是说明按每场进行编码时的预测方法的选择法的图。图中的圆圈符号表示1条扫描线(水平方向的像素串),纵方向与画面的垂直方向对应,横方向与时间轴对应。图示是场中只取出包含相同的宏块中的4行进行描述的,由于采用隔行扫描的结构,所以,第1场和第2场成为在垂直方向只错开半行的结构。图中,示出了4场的图像,左侧的2场表示参照图像(参照A,参照B)的场,右侧表示进行编码的图像(代码A,代码B)的场,右侧2场、左侧2场分别是在时间上连续的场,但是参照场和编码场不一定连续。但在本图中省略了参照与编码场之间的场。图中的箭头表示由图33的动检测电路检测的动矢量的垂直分量。本来应在对应的所有扫描线间标上箭头(图中,每条代码扫描线应标上2-3条,共计为16-24条),但是,在本图中,为了容易看,选择其中的代表,标在容易看位置。因此,例如图中标着fA0的预测的矢量,从标为参照A的场的第1条扫描线画到标为代码A的场的第1条扫描线,但是,实际上方向和大小相同的箭头分别在第2-4条扫描线间也存在,只是省略了这3条。图中箭头旁边附加的3字符的符号,第1个字符表示前方预测矢量(f)或后方预测矢量(b);第2个字符表示第1参照场(A)或第2参照场(B);最后1个字符表示预测的种类(参照→代码AO,参照→代码B1,代码A→代码B2)。即,头2个字符的4种组合与图33的运动矢量的缓冲器3325-3328对应,最后一个字符表示存储到缓冲器内的顺序。在每1场的编码中,代码A的场进行编码时,使用矢量fA0从参照A场或使用矢量fBO从参照B场的预测中选择预测误差小的进行编码。同样,在代码B的场进行编码时,使用矢量fA2从代码A场(在场单位的编码中,代码A场的编码结束之后成为代码A场的新的参照场)或使用矢量fB1从参照B场的预测中选择预测误差小的进行编码。这些处理在按场单位编码的B图像中也相同。但是,在B图像的前方预测中,由于不能进行代码A→代码B的预测,所以,使用矢量fA1取代矢量fA2。在进行后方预测时,使用将前方预测时的矢量的符号f置换为b的矢量,同样可以进行。这些场单位编码时的预测,都是将16×8像素单位的预测作为基准的。即,是将16×16的宏块分割为上下两部分的预测,每1个宏块需要2个动矢量。这2个运动矢量的值相同时,可以置换为16×16像素单位的预测。图中和以后将使用矢量fA0根据参照A场生成的预测图像表述为R(A,fA0)。
在按帧单位的编码中,主要使用帧单位的预测和分割为2场的预测。在一般的图像中,由于静止部分及水平方向的动作较多,所以,图中水平的矢量(参照A→代码A,参照B→代码B)多,这些包含在帧单位的预测中。另一方面,在除此以外的动作中,根据时间上相近的场的预测即根据参照B的预测增多,这些包含在场单位的预测中。因此,利用帧单位的预测和根据参照B的预测可以复盖大部分动作。帧单位的前方(P,B图像)预测时的矢量使用fA0或fB1。在理想的情况下,这2个矢量的值相同。但是,实际上也有若干不同的情况。因此,生成与2个矢量fA0,fB1对应的帧预测信号,选择预测误差小的。在选择之后,检测根据参照B的场预测信号的预测误差,选择三者中最佳的。帧单位的后方预测时,使用将前方预测时的矢量的符号f置换为b的矢量,同样可以进行。但是,场预测时使用矢量bA0,bA1根据参照A场生成预测信号。
现在再返回到图35,控制电路3510根据输入的矢量2211(上述fA0等)将4种图36右边中央的表所示的参照图像信号存储到4个存储器3502-3504内。信号存储时,存储将由运动矢量所示的部分16×8像素和其左右1像素、上下2像素组合后的18×12像素。图36A,B,C的右侧的表中,用或表示的信号使用矢量检测时误差小的。图36B的情况,是将矢量检测时的误差信号与矢量值一起存储到缓冲器3327等内,当矢量fA0的误差小于矢量fB1的误差时,将R(B,fA0)存储到存储器3503内,矢量fB1的误差小时,将R(A,fB1)存储到存储器3503内。从存储器3502-3504存储的信号中同时读出需要的信号,由预测信号电路3505生成2种预测信号3520,3521。预测信号3520是帧预测信号(图36A,B,C的预测信号框内的第一或第2预测信号),预测信号3521是场预测信号(图36A,B,C的预测信号框内的3预测信号)。预测信号3520,3521输入半像素电路3507-1-9,生成矢量2211的±0.5像素范围的半像预测信号3530-1-9和3531-1-9。这些信号由检测器3506-1-9取出编码图像信号203和每个像素的差分,计算16×8像素全体的误差功率3551和3552。最小值选择电路3554选择误差功率3551,3552中小的,将选择信息和误差功率输给信号线3523-1。最小值选择电路3508将各检测器3506-1-9的输出3523-1-9的误差功率进行比较,选择最小的。选择结果作为预测的模式和半像素单位的动矢量向信号线9输出。另一方面,各半像素预测信号3530-1-9和3531-1-9以及编码图像信号203存储到选择差分电路3509内,选择误差最小的预测信号,按每个像素作为差分图像信号2212而输出。
预测信号生成电路3505从存储器3502-3504内顺序读出图36图B,C右端所示的预测信号组(符号|两侧所示的组),按每1行(18像素)而输出。图36A,B,C右端所示的预测信号组中,第1组和第2组表示帧预测信号,第3组表示场预测信号。如前面所述的那样,第1组和第2组根据动矢量检测时误差的大小只使用其中的某1组。
图37是半像素电路3507的详细图。输入的帧预测信号3520由延迟电路3710和3701-3708延迟指定的时间后,由平均值电路3709计算其一部分的平均值,输出半像素帧预测信号3530。75像素输入结束时刻的各信号线3720a-i、A-I和块的位置关系如下帧预测信号场预测信号zzzz…zIHGx…xihgx…xxxxx…xfedx…xFEDx…xcbax…xxxxx…xxxxCBAa-i、A-I分别表示信号线3720a-i、A-I保持着该位置的像素,x表示保持在延迟电路内,z表示已经废弃。在75像素输入结束的时刻,输入编码图像信号202。即,编码图像信号的第1像素与由前面的动矢量的e或E所示的位置的像素对应。按照半像素信号的生成法,例如与编码图像信号的第1像素对应的预测信号值当半像素的矢量为(-0.5,-0.5)时,在帧预测中成为(i+h+f+e+2)/4,在场预测中成为(I+H+F+E+2)/4;当半像素的矢量为(0、+0.5)时,在帧预测中成为(e+b+1)/2,在场预测中成为(E+B+1)/2;当半像素的矢量为(0、0)时,在帧预测中成为e,在场预测中成为E。这里,符号/表示将除法运算结果四舍五入取整数的操作,a-i,A-I分别表示信号线372a-i、A-I的值。在平均值电路3709、3719中求平均值的方法都随各电路3507-1-9而异。例如,在平均值电路3709中,进行如下计算。
检测电路 对应矢量计算3507-1 (-0.5,-0.5) (i+h+f+e+2)/43507-2 (-0.5,-0) (h+e+1)/23507-3 (-0.5,+0.5) (g+h+d+e+2)/43507-4 (0,-0.5) (f+e+1)/23507-5 (0,0) e3507-6 (0,-0.5) (e+d+1)/23507-7 (+0.5,-0.5) (c+b+f+e+2/43507-8 (+0.5,0) (e+b+1)/23507-9 (+0.5,+0.5) (e+d+b+a+2/4场预测信号同样也由延迟电路3711-3718延迟指定的时间后,由平均值电路3719计算其一部分的平均值,输出半像素帧预测信号3531。平均值的求法都随各电路3507-1-9而异。其中,延迟电路3713,3716是36像素的延迟;延迟电路3703,3706,3710是18像素的延迟;除此以外的延迟电路是1像素的延迟。以上,是按帧单位进行编码的情况,按场单位进行编码时,将2个场预测信号输入3520,3521,进行与帧预测一样的计算。这时,从外部进行设定,以便延迟电路3710,3713,3716分别成为0像素、18像素、18像素的延迟,即,以使半像素电路3507的上半部和下半部进行相同的处理。
图38是代码量控制电路的实施例。与先有的代码量控制电路不同的地方是将运动矢量检测时使用的各误差信号3810存储到代码量存储器3801内,用于进行代码量控制。如已说明过的那样,运动矢量的检测在编码之前进行。因此,如果根据这时产生的各部分的误差的大小进行画面内的发生信息量的偏移的预测,就可以进行高精度的代码量控制。另外,由于可以将较多的代码分配给信息量多的地方,所以,还具有使画面的画面质量保持一定的效果。具体地说,就是与每个指定的小区域的差分之和成正比地将代码分配给该小区域。即,设第i个小区域的误差值为Er(i)、到第i个小区域为止的误差值的累积值为SEr(i)、区域数为n、分配给1画面的代码量为B,则将到进行编码为止的部分的误差值之和与全画面的误差值之和SER(n)的比值即SEr(i)/SEr(n)通过信号线3811通知给代码量控制电路3803。在代码量控制电路内,将B*SEr(i)/SEr(n)与实际发生的代码量进行比较,如果发生代码量一方多,就控制使画面质量变粗糙,如果发生代码量一方少,就控制使画面质量变精细,以使之成为分配的代码量。上述说明是以画面内的小区域间的代码量的分配法为例进行的,但是,也可以适用于数个画面(例如P图像和与其前面连续的B图像)中画面间的代码量的分配法。另外,当全画面的误差值之和大于一定值时,将该画面作为I图像进行编码的控制方法也包含在本发明中。上述说明是以动矢量检测时使用的每个像素的差分的绝对值之和作为误差值为前提进行的。但是,也可以使用动矢量检测时别的类似度的评价值例如每个像素的差分的平方和或者利用阿达玛罗变换或DCT变换等将差分信号进行正交变换后的信号的绝对值之和等作为评价值。由于这些评价值更接近于实际发生的代码量,所以,可以获得精度更高的代码量控制。另外,使用上述每个像素的差分的绝对值之和或将上述评价值变换后的值例如进行求平方及取对数处理等处理后的值,也可以获得提高控制精度的效果。另外,既可以应用于将图像进行分割处理的编码装置,也可以应用于由单一的编码电路构成的编码装置。
图39是图38的代码量控制电路的变形例子。和图38的实施例不同的地方是代码量控制用的存储器有2套,其中的一套可以从外部与输入图像对应地设定。在图38的实施例中,画面内的画面质量控制为一定。但是,实际上使一部分的画面质量更高将会感到整个画面的画面质量提高了,另外,对于编码者有意识地提高画面的一部分的画面质量也是有用的。这时,将代码分配的权重系数3910输入代码分配修正用存储器3901内,在代码量控制电路3902内,对读出的系数3911进行加权后确定量化步长尺寸。将画面分割为几个小区域时,将与各小区域对应的代码分配的权重系数存储到代码分配修正存储器3901内。例如,每1小区域具有8位的存储器,设存储在存储器内的值为W(0-255)时,使量化的值暂时成为W/128倍。
代码分配的权重系数3911的输入,既可以在编码开始时一次设定,也可以按每1画面进行设定。按每1画面设定,可以获得更精细的修正。相反,将输入的代码分配的权重系数的信息量将增加。例如,对于1920像素×1024行×30Hz的图像,对16×16像素输入8位的系数时,就成为约1.8Mbps的传输速率。用于降低代码分配的权重系数的传输速率的以下的变形例也包括在本发明中。
(1)扩展代码分配的权重系数对应的区域或减少系数的位数。例如,对64×16像素分配4位的系数时,传输速率就成为1/8。小区域的形状可以是任意的,但是,按宏块单位设定可以进行正确的修正,采用连续处理的L个宏块的形状(水平16×L像素、垂直16像素)时,对代码分配修正用存储器3901不进行随机地存取也可以,所以,可以减少存储器的地址电路。另外,应用于水平分割的编码装置时,也可以不具有多余的代码分配修正用存储器。
(2)将代码分配的权重系数向预先确定的帧数(Nw帧)输入1次。这样,传输速率就成为1/Nw。
(3)将权重系数编码后进行传输,在代码分配修正用存储器3901进行输入时,译码后再输入。例如,当相同的权重系数连续时,传输与该系数值连续的个数。设连续数的最大值为255个(8位),每次系数值变化时发生16位的信息。设每1宏块行(在上述例中,为1920×16像素)平均有10次的变化点,传输速率约为300Kbps,成为1/6。如果对连续数使用霍夫曼代码等可变长进行编码处理或用可变长代码对系数值的变化差分值进行编码处理等,则可进一步降低传输速率。但是,在该变形例中,由于每1画面的权重系数的代码量可变,所以,必须进行通知传输开始、结束等控制。
(4)传输描述数帧的权重系数的分配的代码,在代码分配修正用存储器3901输出时将该代码展开,得到所希望的系数值。下面,给出分布的描述的例子。该例子是使3帧相同的系数值连续之后,由于画面向右移动,所以,系数值也向右偏移的例子。( )表示与( )内的标明的处理对应的代码。
(传输1画面系数值)(第1系数值)(第2系数值)…(最后1个系数值)(使用和前1画面相同的系数)(使用和前1画面相同的系数)(使用前画面左边相邻的系数)(画面左端第1系数值)(画面左端第2系数值)……(画面左端最后1个系数值)……通过将上面这样的编码处理与上述(3)的变形例组合,可以进一步降低传输速率。另一方面,虽然代码的分析处理变得复杂,但是,只要设置微处理器或数字信号处理器等,利用软件进行处理,增加很少的硬件就可以实现。另外,既可以应用于将图像进行分割处理的编码装置也可以应用于由单一的编码电路构成的编码装置。
图40是图13所示的共有存储器电路1102的变形例子。在图13中,具有2套与各小编码或译码装置对应的存储器,分为读出用和写入用,但在图40中读出和写入使用1个存储器1303进行。通过进行这样的处理,虽然存储器管理电路4001的电路规模略微增大,但是存储器1303的数量可以减半。存储器元件由于其集成度很高,所以,将把1画面分割成4等分的图像大小的图像(1920像素×256行×8位+相应的颜色信号,约为6M位)存储到1个元件内是完全可能的,并且,存储到1个元件内也可以减小电路规模。
在存储器管理电路4001内增加了存储器的读出功能。存储器的读出处理与写入处理一样,利用信号线1104设定读出块的开头像素的地址等,设定之后,将所希望的像素连续地或间歇式地向信号线1104的数据线输出。读出地址的设定,也可以设定宏块的顺号、宏块内的块的顺号及该宏块的运动矢量来取代开头像素的地址。
图40的共有存储器电路,由于存储器的存取次数为2倍,并且在设定读出之后到输出相应的像素数据之前的时间有若干延迟,所以,本变形例应用于存取次数比较少的译码电路(图17)时特别有效。
图41是图40的变形例,图40的存储器1301-1~4合并为1个存储器4101。因此,存储器管理电路4102利用1条总线4110进行所有的小编码电路或小译码电路的存储器的存取。在存储器管理电路4102内部,FIFO或缓冲存储器与各地址输入线连接,在该FIFO或缓冲存储器内设定地址的时刻对存储器4101的指定地址进行存取。基本上在同一时刻进行几个地址设定时,对这些设定标上顺序,按顺序进行处理。为了标上顺序,可以有如下方法,即从较早时刻写入的地址开始进行处理的方法,以及确认FIFO或缓冲存储器有无按照预先确定的顺序进行设定,对已作了设定的进行处理的方法等。后者具有可以自由地设定存取的优先顺序,但是,有时优先顺序位低的设定之后到进行数据处理之间的等待时间将增长。
在使用图40、图41的变形例的译码电路中,根据存储器的存取次数最多的情况决定存储器的存取速度。例如,在前面说明过的MPEG中,在进行B图像的内插预测时,存储器的存取次数最大,每1像素为4次(预测图像读入2次,再生图像写入1次,显示读出1次)。另外,虽然省略了说明,但是,在MPEG2中采用的双原始预测也和B图像一样,需要进行4次存取。对于1920×256×30Hz×1.5(颜色信号部分)的图像,约为22M像素/秒,所以,需要进行88M像素/秒的存取。现在,大容量的存储器的存取速度约为30-40ns,所以,通过1次存取2像素(16位),便可实现88M像素/秒的存取。但是,这时必须将存取的辅助操作限制到最小限度,所以,电路结构将变得复杂,从而电路规模将增大。另外,实际上由于1画面内的预测全部是内插预测或双原始预测的情况几乎没有,所以,平均的存取次数更少。因此,按照存储器的存取次数比88M像数/秒少的值设计电路,当存取处理次数超过或有可能超过指定的次数时,通过附加利用简化处理进行内插预测或双原始预测的电路,可以减小小译码电路和整个译码装置的电路规模。作为内插预测或双原始预测的简化处理,如图42所示的那样,通过将以往求2像素的平均的预测值使用其中的某1像素置换而实现。这时,向存储器的存取次数,每1像素成为3次。图42(1)表示先有的内插预测或双原始预测的内插处理,图42(2)~(4)表示简化处理,只读出图中标以圆圈符号或黑圆点符号的像素。利用这些简化处理而再生的图像的画面质量会稍许变差,但是,由于将与两种预测类似的图像的平均值作为预测图像,进行简化处理的块数在概率上非常少,所以,再生图像的恶化通常几乎看不出来。另一方面,简化处理的效果是可以实现上面说明过的电路的小型化。或者反过来讲,使用和先有相同的电路,可以使用更低速的存储器。使用低速存储器时,除了可以降低电路成本外,还可以使用最前端的大容量存储器(通常,与更高速的存储器相比,存取速度慢),也有减小电路规模的效果。在(2)的简化处理1中,通过将只使用一种预测图像的译码模式强制地从例如内插预测切换为前方预测,可以将电路的增大抑制到最小限度。另一方面,在(3)的简化处理2中,由于按每行切换预测图像,所以,可以在预测图像中反映出2种预测图像的特征。通常,2种预测图像几乎是相同的,在标准化的规定中,允许任意图像的组合。即使2个图像不同,简化处理2也可以将简化处理引起的画面质量恶化抑制到最小限度。简化处理2也包括按垂直方向分割的方法。(4)的简化处理3是在简化处理2上加上水平方向的变化,由于简化处理引起的误差的频率成分不论垂直方向还是水平方向都是高频成分,所以,人的视觉难以感觉到,具有感到画面质量恶化很小的效果。此外,(5)的简化处理4是在简化处理2中,在使用预测图像2的像素的地方根据预测图像1的周边的像素生成空间内插的像素,在该空间的内插像素与预测图像2的像素之间进行平均值处理,生成预测图像。这时,预测图像生成的电路结构略微复杂,但是,对处理速度影响最大的向存储器的存取频度与其他简化处理相同。而简化处理引起的画面质量的恶化可以比其他简化处理时抑制得更小。图中,在空间内插像素作成时,虽然边界的像素不使用空间内插像素,但是,使用块外的像素生成空间内插像素的方法和以块内在空间上位置靠近的像素作为空间内插像素的方法也包括在本发明中。另外,简化处理4是以简化处理2为基础进行的,但是,将空间像素内插的方法应用于简化处理3也可以获得同样的效果。
本发明对于上述说明以外的任何像素数的图像都可以应用,并且可以获得电路小型化的效果。另外,不限于进行图像分割的译码装置,也可适用于具有单一的译码电路的图像译码装置,并具有相同的效果。
图40、图41所示的电路结构和控制方法可以应用于图像编码装置。
图43是应用本发明的图像编码译码装置的实施例。根据画面上的相应位置分割图像信号和代码,进行编码和译码处理。输入图像信号2-1和输入代码7-1由代码/图像分割电路4301按照图像、代码各自独立的定时分割为4个,通过信号线4310-1-4输入编码译码电路4301-1-4。在信号线4310-1-4中,图像信号和代码信号在空间上是重叠的。小编码译码电路4301-1-4对输入的图像信号进行编码处理,对代码进行译码处理。这些处理和已说明过的小编码电路1101及小译码电路1702相同。编码或译码的结果由图像/代码合成电路4303按照代码、再生图像各自独立的定时进行合成,得到输出代码7-2和再生图像信号2-2。
编码译码中的参照图像,存储在共有存储器4304内,使用存取信号4312和读出信号4313进行存取。这些存取信号4312和读出信号4313在小编码装置和小译码装置中既可以在空间上重叠也可以在时间上重叠。共有存储器电路4303内部的存储器数可以是分别与小编码电路及小译码电路对应地各1个存储器,共计8个独立的存储器结构;也可以是对应的小编码电路及小译码电路各1个存储器,共计4个独立的存储器结构;也可以是小编码电路1个存储器、小译码电路1个存储器共计2个独立的存储器结构;或者是1个存储器结构。如果减少独立的存储器数,电路规模便减小,相反,对1个小编码电路或小译码电路的存取速度将变慢,或者需要非常高速的存储器元件。存储器结构和存取用的信号的重叠方法可以分别独立,也可以全部组合。
图44是图11所示的图像编码装置的变形例。图44的变形例不仅可以适用于编码装置,而且也可以适用于译码装置和编码译码装置。
图44将图11的共有存储器电路1102分散地设置在各小编码电路4401内。因此,共有的部分的图像信息通过信号线4410-4415传输,存储到各小编码电路内的共有存储器内。在图44中,共有信息是只设定在小编码电路4401-1和2、2和3、3和4之间的例子。
图45是小编码电路4401-2的详细图。小共有存储器电路4501除了设置的位置与图12的小编码电路1101不同外,其动作与图12的小编码电路1101相同。小共有存储器电路4501除了存储相同的小编码电路4401局部再生的参照图像1103外,还以共有图像的小编码电路接收共有图像信号4411,4413,并存储到与参照图像1103相同的存储器内。另一方面,在参照图像11-3中,在其他小编码电路中作为共有图像使用的信号向共有图像信号4410或4412输出,传输给相应的小编码电路。小编码电路4401-3的结构和小编码电路4401-2基本上相同,与共有图像信号4410-4413的部分不同的信号线连接。另外,小编码电路4401-1、4的共有图像信号线的数量从4条变为2条。
图46是图45的小共有存储器电路4501的详细图。参照图像信号1103和共有图像信号4410,4413输入存储器管理电路4601,存储到存储器管理电路4601内的缓冲存储器内或FIFO内。当数据输入缓冲存储器或FIFO内时,存储器管理电路4601就将该数据写入到存储器1303或1304的相应的位置。另一方面,存储器1303或1304的读出通过信号线1104和图13所示的共有存储器电路一样进行。
参照图像信号1103也输入传输开关4604,如果输入的信号是共有的部分的信号,传输开关就向共有图像信号4410或4412输出,传输给相应的小编码电路。
按照上述图44-图46的变形例,可以利用和图11相同的编码处理速度达到相同的编码效率。另外,通过将在图11中集中在共有存储器电路1102内的信号线进行分散,可以减少总体的信号线数。例如,设每个小编码电路的存取信号1103的信号线为数据8条,控制2条,读出信号1104的信号线为数据8条,地址10条,控制4条,则共有存储器电路1102的输入信号线数共为128条。另一方面,在图44的变形例中,设共有图像信号4410-4413的信号线分别为数据8条,控制2条,则共计为60条,减少为一半以下。另外,信号线的集中程度也与在图11中共有存储器电路一处有128条的情况相反,在变形例中成为40条。通过减少信号线的集中,当将图像编码装置800集成为1个LSI(大规模集成电路)时,信号线的排列容易,芯片尺寸也可以减小。将小图像编码电路和共有存储器电路分别集成为1个LSI时,还可以避免由于共有存储器电路的LSI的引线数增加而引起成本上升。另外,将编码电路和共有存储器电路分别制作在1个基板上,利用接续器及电缆等将它们连接时,可以减少接续器或电缆数。在将图像进行水平分割时,本变形例减少信号线条数的效果特别大。另外,分割数越多,减少信号线条线的效果越大。
图47是图25的运动矢量检测电路2401的变形例。通过以运动矢量检测电路2401为中心设置其周边电路,扩展运动矢量的检测范围。在说明图47的详细情况之前,先利用图48A,B,C说明其动作的概况。图48A,B,C表示运动检测使用的宏块的顺序和位置。第1例的上部为编码图像的宏块串,下部是参照图像的宏块串。1个四边形与1个宏块(16×16像素)对应,由256像素构成,从图左边的宏块开始顺序输入,进行处理。在图25的运动矢量检测电路的说明中,假定各像素是从上面的像素开始沿水平方向扫描而输入的,但在本变形例中,是从左侧的像素开始垂直地扫描而输入的。这只是将图25的电路的动作的垂直地址(位置)与水平地址(位置)进行了交换,各动作完全相同。
在第1例的图48A中,参照宏块1A,1B,1C与代码宏块1的输入对应地输入,使用1A,1B,1C,2A,2B,2C检索代码宏块1的动矢量。对于代码宏块2,使用参照宏块1A,1B,1C,2A,2B,2C,3A,3B,3C,其中,1A,1B,1C,2A,2B,2C保持着前面的代码宏块1的处理时输入的像素,只输入新的3A,3B,3C的像素。
代码宏块2和参照宏块1B在位置上对应,检索水平垂直±16像素(仅第1宏块为水平0-+16)的范围。通常,与参照宏块2B的位置的像素的类似性最高时,规定为运动矢量(0,0),在读出参照像素的地址加上固定的偏移值,也可以以(0,0)以外的点为中心进行检索。例如,在水平及垂直地址加上(8,1)的偏移值,就可以检索水平-8-+24和垂直-15-+17的范围。在第1例中,图示的参照图像的各宏块的顺序和画面上的宏块的位置一致。
图48B的例子是使上述偏移值按每个宏块变化的情况。例如,对于偏码宏块2,使用参照宏块1A′,1B′,1C′,2A′,2B′,2C′,3A,3B,3C,由于1A′等是与1A,1B,1C,2A,2B,2C不同位置的像素,所以,必须再次读出。结果,当使参照图像的读出速度与第1例相同时,处理速度成为1/3。
图48C的例子是使偏移值按每4宏块改变的例子。这个例子与图47的电路相当。在第3例中,与第1例相比,处理量成为2/3,但是,如果使改变偏移值的单位成为8宏块,则处理量成为8/10,如果使改变偏移值的单位成为16宏块,则处理量成为16/18,与例1相近。
现在再加到图47进行说明。当输入的参照图像11(例如,图48C的3A-C)或214输入矢量检测电路2401时,便同时存储到存储器4701-1,2,3中的任1个之内(例如4701-1)。另一方面,与此同时,在前面的例子中,从存储器4701-2,3内读出存储的像素的数据(例如图48C的1A-C,2A-C),与输入参照图像11或214(例如图48C的3A-C)同时输入矢量检测电路2401。另一方面,编码图像202(例如,图48C的宏块2)由延迟电路4708延迟指定的时间(在图48A,B,C的例子中,为1宏块的时间)后,输入矢量检测电路2401,求出矢量。在求出的3个(帧,奇数场,偶数场)矢量2410,2411,2412输出的同时,分别输入加法器4702,4704,4706。由这些加法器与存储在存储器4703,4705,4707内的同一编码画面的别的宏块的矢量值加法结果4714,4715,4716按水平及垂直分量进行加法运算,然后再次分别存储到存储器4703,4705,4707内。控制电路4750将画面内的宏块分割为几个组,在存储器4703,4705,4707内按各组设置区域,将矢量值的相加结果存储到这些区域内。处理中的宏块属于某一组时,控制电路4750输出相应的存储器的地址4713,将同一组内的所有宏块的矢量值按水平及垂直分量相加。控制电路4750在各组最后一个宏块处理结束时读出这些相加结果4710,4711,4712。将这些相加结果除以组内的宏块数,便可得到各组的平均矢量。对于同一编码画面,从下一个连续的画面开始进行矢量检索时,将这些平均矢量作为各组的偏移值。在生成参照图像地址4761时,控制电路4750可以通过将该宏块所属的组的平均矢量作为偏移值加上去而实现。编码图像地址4762和通常的处理时一样,通过顺序读出编码图像的宏块而生成地址。
对于同一编码画面,从下一个连续的画面开始进行矢量检测时,通过将这些平均矢量作为各组的偏移值,即使缩小对1画面的矢量检索范围,也可以求出较宽范围的矢量。具体地说,就是当按I、B、B、D的顺序进行编码时,通过根据最开始的I图像求第1B图像的矢量,然后将求出的矢量的每1组的平均矢量作为偏移值和根据I图像求第2B图像的矢量并将第2B图像的矢量作为偏移值以及根据I图像求P图像的矢量的操作,对于P图像可以追踪1次矢量检索范围的水平垂直各3倍范围的活动。
画面内各组的形状是自由的,可以是分散的,但是,如在图48C的例子中说明的那样,最好在水平方向上几个宏块是连续的。具体地说,就是在水平方向大于8,从电路结构和存储器的读出速度角度考虑,最好是画面上水平宏块数(44或45)的整数分之一或2的幂次方。具体说来就是8或9或11或16宏块中的某一数与垂直1-4宏块中的某一数的组合。
组内的宏块数是2的幂次方时,平均矢量的计算可以利用移位操作,在电路方面也是有利的。当不是2的幂次方时,也可以用大于该数的2的幂次方相除。例如,当1个组为水平8宏块、垂直3宏块时,每1组就是24宏块,计算平均值时也可以用32相除。这时,得到的平均矢量为正确的平均矢量的3/4的值,检索范围也是3/4(在前面例子的P图像中,为3*3/4=2.25倍的范围),具有可以减小组内的不规则移动等对矢量的影响的效果,在实际编码时,运动矢量的代码量减少,有时也会获得高质量的画面。
在上面的说明中,假定组没有重复现象,但是,也可以使组相互有重复。但是,必须预先确定作为偏移值而使用的平均矢量是使用哪一组的平均值。作为组重复的例子,例如使用同一偏移值的组有水平8宏块、垂直1宏块、以及平均值计算使用的组为水平8宏块、垂直3宏块(上下1宏块)等。通过进行这样的重复,可以提高编移值的矢量的精度,从而可以提高编码效率。计算平均矢量时,也可以使用加权平均值,在上述重复块的例子中,上下块的矢量也可以按1/2的权重进行计算。另外,例如,在上述例子的重复块的处理中,存储器4703、4705、4707的读出速度和加法器4702、4704、4706的处理需要3倍的处理速度。
按照本发明,由于几乎不降低图像的编码效率便可实现电路各处的动作速度低速化,所以,可以实现小型化、价格低的图像编码装置或图像译码装置或图像编码译码装置。
权利要求
1.一种帧间预测编码装置,其特征在于包括将输入图像分割为多个区域的分割装置;通过对上述各区域的数据进行运动补偿帧间预测编码而生成代码的多个编码装置;对所述多个编码装置生成的代码进行整理的整理装置,以及对与所述编码装置邻接的编码装置的参考图像进行存取的存取装置。
2.一种帧间预测译码装置,其特征在于包括将输入的代码串分割为与被预先分割的区域对应的代码的分割装置;对所述被分割后的代码串进行运动补偿帧间预测译码处理、生成再生图像的多个译码装置;把所述多个译码装置输出的再生图像合成为一个画面的图像合成装置,以及对与所述译码装置邻接的译码装置的参考图像进行存取的存取装置。
3.一种帧间预测编码装置,其特征在于包括将输入图像分割为多个块的分割装置;计算所述多个块中每一个运动矢量的计算装置;用得到的上述运动矢量进行运动补偿帧间预测、生成预测误差信号的生成装置;存储多个块的所述运动矢量和DCT系数的存储装置;以及从所述存储装置读出所述运动矢量和所述DCT系数的可变长编码装置。
4.一种运动矢量检测装置,由输入编码图像的块信号的输入装置、输入参考图像的输入装置、使参考图像延迟的多个延迟装置、测量编码图像块和延迟参考图像块的相似性的多个第一检测装置、比较所述第一检测装置测量出的相似性、并记录呈现最小相似性的那个检测装置的位置的记录装置和根据所述记录下来的位置计算运动矢量的计算装置构成,其特征在于还包括N个累加器,用于取出由所述多个第一检测装置输入的编码块信号和参考信号的差分信号的绝对值、计算该差分信号绝对值的累加值;转换装置,用于根据所述编码块信号的空间位置把所述差分信号的绝对值提供给所述多个累加器中的任一个;第二检测装置,用于计算所述N个累加器的输出的总和,输出N个累加结果及其总和,以及计算装置,逐个比较分别与多个第二检测装置测得的相似性对应的输出、根据呈现最小相似性的所述第二检测装置的位置计算运动矢量。
5.如权利要求4所述的运动矢量检测装置,其特征在于所述块信号由16个水平象素和16个垂直象素构成;所述N等于4;以及所述转换装置将所述块信号转换成垂直二等分和水平二等分的各有8个水平象素和8个垂直象素的象素单元。
6.一种帧间预测编码装置,其特征在于使用如权利要求4或5所述的运动矢量检测装置。
7.一种可变长译码电路,其特征在于包括抽取输入的代码串开始的指定位数的抽取装置;计算指定值从所述抽取的位串的指定位的位置开始、连续出现的连续数的计数装置;从跟在与所述连续数相当的位之后的位串、生成指定长度的位数串的生成装置,以及用所述连续数和上述后续的位数串生成检索表的索引的生成装置,其中,使用该索引指示的检索表内的值对与所述代码串相当的可变长代码进行译码。
8.一种代码量预测装置,其特征在于包括将输入的图像分割为块的分割装置;检测每一个所述被分割的块的运动矢量、算出其预测误差的计算装置,以及以画面为单位把所述算出的预测误差累积起来的累积装置,其中,从对于多个画面的所述累积值和分配给该多个画面的总代码量、预测对该多个画面中的一个的发生代码量。
9.一种代码量预测装置,其特征在于包括将输入的图像分割为N个块的分割装置;检测每一个所述分割出的块的运动矢量、算出其预测误差的计算装置;以及以画面为单位累积所述算出的预测误差的累积装置;其中,根据在对画面内的第i个块编码时积累得出的预测误差值和直到第i个块为止的预测误差值的总和以及分配给该图像的总代码量、预测第i个块的发生代码量。
10.一种帧间预测编码装置,其特征在于具有权利要求8或9所述的代码量预测装置。
全文摘要
一种帧间预测编码装置包括将输入图像分割为多个区域的分割装置;通过对上述各区域的数据进行运动补偿帧间预测编码而生成代码的多个编码装置;对所述多个编码装置生成的代码进行整理的整理装置,以及对与所述编码装置邻接的编码装置的参考图像进行存取的存取装置。一种帧间预测译码装置包括将输入的代码串分割为与被预先分割的区域对应的代码的分割装置;对所述被分割后的代码串进行运动补偿帧间预测译码处理、生成再生图像的多个译码装置;把所述多个译码装置输出的再生图像合成为一个画面的图像合成装置,以及对与所述译码装置邻接的译码装置的参考图像进行存取的存取装置。
文档编号G06T9/00GK1520188SQ0216040
公开日2004年8月11日 申请日期1995年7月21日 优先权日1994年7月22日
发明者木村淳一, 三, 木下泰三 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1