发明内容
本发明的目的是提供一种运动图像的编码方法和装置,其用块内编码和块间编码进行用于运动图像的压缩编码,所述本发明的运动图像编码方法和装置能够依据其使用,在保持适当的编码效率和适当的图像质量的条件下减少基准图像存储器的容量,以降低运动图像编码装置的成本。
本发明提供了一种运动图像编码方法,用于编码一种运动图像,其中对形成当前图像的一个预定区域的每个宏块进行块内编码处理,在块内编码中,把图像数据进行正交变换,然后将在正交变换后的图像数据进行量化和可变长度编码,和对其进行块间编码处理,在块间编码中,检测当前图像相对于基准图像的一个运动矢量,使用运动矢量为基准图像进行运动补偿,把在当前图像与运动补偿之后的基准图像之间的差值数据进行正交变换,然后将正交变换之后的差值数据进行量化和可变长度编码,并且为了存储,为了实现块间编码,在基准图像存储器中通过逆量化和逆正交变换所述量化后的图像数据或者量化后的差值数据而生成紧接在当前图像之后的图像帧的基准图像,所述的方法包括以下步骤:在编码当前图像(第N帧)之前的一帧图像(第M帧,M≤N-1)时,在一个图像帧中块间编码宏块的最大数目范围内,确定进行块内编码或者块间编码的一宏块的位置。
根据上述方法,在编码当前图像之前的一幅图像时,不需要通过确定进行块内编码或者块间编码的一宏块的位置来准备好在当前图像帧中所有宏块的基准图像。因此,能够减少基准图像存储器的容量。
此外,仅将在下一图像帧的基准图像中确定其位置是进行块间编码的宏块存储在基准图像存储器中。
根据上述方法,可以实现对存储在基准图像存储器中的基准图像宏块的限制。因此,能够减少基准图像存储器的容量。
此外,进行块间编码的宏块的最大数目低于构成一图像帧宏块的数目。
根据上述方法,可以依据宏块的最大数目相应减少存储器容量。
此外,基于基准图像存储器的可用容量适当地确定进行块间编码宏块的最大数目。
根据上述方法,由于进行块间编码的宏块的最大数目是依据在另一个存储器中提供的可变长度区域的大小来设定和可由基准图像存储器得到,所以在可得到的区域较大的情况下,进行块间编码的宏块的数目也可以实质上相等于构成一图像帧的所有宏块的总数。因此,依据使用装置的状态能够动态地实现最大的编码效率。
此外,正交变换是一次离散余弦变换(DCT),并且可变长度编码是赫夫曼编码。
此外,在对第(N-1)帧或者其之前帧的一个图像进行编码时,基于对图像信息和编码数量至少其中之一的估算,来确定在第N帧中进行块内编码或者块间编码的一宏块的位置。
根据上述方法,由于编码的宏块位置是基于图像信息和在编码中的编码数量而确定的,所以其能够提高编码效率和图像质量。
此外,在第N帧中进行块内编码或者块间编码的一宏块的位置是通过外部在第(N-1)帧中或者在其之前帧中确定的。
根据上述方法,由于块内编码或者块间编码是通过外部指令而进行的,所以可以依据一种运动图像的类型来确定编码。
此外,基于在编码宏块正好处于确定要在第(N-1)帧中或者其之前帧进行块间编码的宏块相同位置时,发出的停止块间编码的指令对宏块进行块内编码。
根据上述方法,即使在前一帧中确定要进行块间编码,也可以根据需要停止块间编码,并通过在当前帧中再次确定编码方式来确定适用于运动图像的编码。
此外,在编码第(N-1)帧时,基于对第(N-2)帧中的图像信息和所有宏块的总编码量至少其中之一的估算,来确定在第N帧中进行块内编码或者块间编码的宏块位置。
根据上述方法,由于可以在编码第(N-1)帧的过程中作出与整个图像帧处理有关的确定,例如,在编码第(N-1)帧的过程中可以确定在此后的第N帧中进行块内编码的宏块位置和在此后的第N帧中进行块间编码的宏块位置的切换,所以可以通过,例如在作为编码第(N-2)帧的结果而判定其所有编码数量过量情况下,就此能够提高编码效率。
此外,基于在第(N-1)帧中对图像信息和每个宏块编码数量至少其中之一的估算,确定在第N帧中进行块内编码或者块间编码的宏块位置。
根据上述方法,由于可以基于在编码第(N-1)帧过程中的图像信息和编码每个宏块的量,确定在下一帧中进行块内编码或者块间编码的宏块位置。因此,就此可以提高编码效率。
此外,将进行块内编码或者块间编码的宏块设置成具有交错排列模式的形式。
根据上述方法,能够减少在编码过程中编码数量的偏差。
此外,在将待编码的宏块确定为进行块间编码,和将等于或多于一预定数量且邻近于待编码宏块的宏块确定为进行块内编码的情况下,采用零作为运动矢量对待编码的宏块进行块间编码。
根据上述方法,因为在为相邻的所有或者多个宏块进行块内编码的情况下,在相邻的宏块位置中仅存在少量的基准图像或者不存在基准图像而导致运动检测和运动补偿的精确度大大下降,所以认为停止运动补偿的功能具有很小的效果。然后,可以通过使用运动矢量为零矢量的块间编码来简化块间编码。例如,可以使进行块间编码的宏块与以具有交错排列模式的形式设置的进行块间编码的宏块位置相对应。
此外,在块间编码中,选择是否执行运动补偿。
根据上述方法,例如,在由固定的监视摄像机拍摄具有少量运动的对象的情况下,禁止使用运动补偿功能,并且可以通过使用运动矢量为零矢量的块间编码来简化块间编码。
此外,保持存储在基准图像存储器中的宏块的位置信息。
此外,在根据处于第(N-1)帧中进行块间编码的宏块相同位置的宏块和其基准图像的宏块之间的差值计算得出的估算函数值大于一预定阈值的情况下,对处于第(N-1)帧中进行块间编码的宏块相同位置的宏块在第N帧中进行块内编码。
根据上述方法,考虑到在性能函数值大于预定阈值的情况下宏块的运动较大(运动是困难的),和估计到,在对下一帧中的宏块位置连续进行块间编码的情况下,因运动检测误差而使编码的数量增加,可以判定即使代之以进行通常被认为是在编码效率上比块间编码更不令人满意的块内编码的情况下,在编码效率方面也没有大的差别,并且通过对在该宏块位置中的宏块进行块内编码就可以提高图像质量。即使断定在基准图像存储器中没有记录额外的区域,基准图像存储器也能够具有一个可以代之以进行块内编码的额外的量,并且可以通过产生一个用于对在另一个宏块位置中的宏块使用块间编码的额外区域来综合地提高编码效率。
此外,在存储于基准图像存储器中的宏块数目等于进行块间编码的宏块的最大数目的情况下,在下一图像帧中对位于一后续宏块中的一宏块进行块内编码。
根据上述方法,可以控制在基准图像存储器中可能存储的宏块的数目。
此外,在对处于第(N-1)帧中进行块间编码的宏块相同位置的宏块进行连续块间编码的频率大于一预定阈值的情况下,在第N帧中,对处于在第(N-1)帧中进行块间编码的宏块相同位置的宏块进行块内编码。
根据上述方法,在基于差值编码的块间编码在相同的宏块位置中是连续的情况下,当在通信中的误差重叠时,恢复是困难的,可以通过每几帧应用一次块内编码的方法来提高防止出现误差的能力。
此外,在基于邻近于在第(N-1)帧中进行块内编码的块间编码宏块和其基准图像之间的差值计算得出的估算函数值小于预定阈值的情况下,和在存储在基准图像存储器中的宏块数目小于在基准图像存储器中可能存储的宏块的最大数目的情况下,对处于第(N-1)帧中进行块内编码的宏块相同位置的宏块在第N帧中进行块间编码。
根据上述方法,考虑到在性能函数值小于预定阈值的情况下,当前状态是一种接近于一种其中宏块的运动较小的静态图像的状态,出于对空间相关性的考虑,与这些宏块相邻的并且进行块内编码的宏块的运动也可能较小,可以断定由于时间相关性的原因在下一帧中的运动也会较小,可以通过对在下一帧中该宏块位置中的宏块使用块间编码来提高编码效率。
此外,在第(N-1)帧中进行块内编码的宏块的编码数量大于一预定阈值和存储在基准图像存储器中的宏块的数目小于在基准图像存储器中可能存储的宏块的最大数目的情况下,对处于第(N-1)帧中进行块内编码的宏块相同位置的宏块在第N帧中进行块间编码。
根据上述方法,由于断定,在考虑到时间相关性的情况下,对处于进行块内编码的宏块位置中的宏块也进行块内编码时,可能会使编码效率变差,和断定在下一帧中块内编码在编码效率方面会不令人满意,所以可以通过在下一帧中对在该宏块位置中的宏块使用块间编码来提高编码效率。
此外,在处于第(N-1)帧中进行块内编码的宏块相同位置的宏块的进行连续块内编码的频率大于一预定阈值,且存储在基准图像存储器中的宏块的数目小于基准图像存储器中可能存储的宏块的最大数目的情况下,在第N帧中,对处于第(N-1)帧中进行块内编码的宏块相同位置的宏块进行块间编码。
根据上述方法,在进行块间编码的宏块之间不相邻的情况下,尽管可以确定对一宏块位置连续进行块内编码,块内编码相比于块间编码通常不能达到令人満意的编码效率,所以可以通过每几帧使用一次块间编码来提高编码效率。
此外,在第(N-1)帧中提供了进行块内编码的一个目标区域的运动信息;在第N帧中,对处于被估计为是在第N帧中的目标区域的宏块相同位置的宏块进行块内编码;并且在第N帧中,对在所述宏块周围的一宏块进行块间编码。
根据上述方法,基于目标区域和运动信息对摄影目标进行用于评价图像质量的块内编码,对该目标的周围进行用于评价编码效率的块间编码,并且这个区域能够依据在下一帧中目标的运动而移动,可以实现集中于摄影目标之上的高效编码。
此外,在编码一个运动图像的情况下,其中该运动图像的图像帧由数目等于或者小于块间编码的宏块的最大数目的宏块构成,为一宏块中的所有位置生成一个基准图像的宏块,并且将其存储在基准图像存储器中;而且,在编码一个运动图像的情况下,其中该运动图像的图像帧由数目超过块间编码的宏块的最大数目的宏块构成,仅仅为确定进行块间编码的一宏块的位置生成一个基准图像的宏块,并且将其存储在基准图像存储器中。
根据上述方法,通过一个简单的系统可以对多种图像尺寸的运动图像进行编码。例如,在CIF图像的情况下,由于对进行块间编码的宏块的数目没有限制,并允许正常的运动图像编码,所以在进行块间编码的宏块的最大数目为400,而且设置了相应的基准图像存储器的情况下,CIF图像中的宏块的数目为396;而在VGA图像的情况下,对进行块间编码的宏块的数目进行了限制,并允许运动图像编码,其宏块的数目为1200,所以通过简单的系统可以对两种图像尺寸的运动图像进行编码,以降低基准图像存储器的成本。
此外,在宏块的每个位置处保持块间编码的频率;并且在开始时,从位于块间编码的频率较大的位置处的一宏块起,按顺序对宏块进行块间编码。
根据上述方法,通过对先前位于在初始化时频繁进行块间编码的宏块位置中的宏块进行块间编码,可以使后续的图像质量和编码效率达到令人满意的效果。例如,在图像来自一固定监控摄像机的情况下,由于预先向在其中运动较小的宏块位置中的一宏块分配了块间编码,所以在恢复了编码活动之后提高了编码效率。
此外,选择是否保持块间编码的频率以及选择是否使预先进行的块间编码从位于块间编码的频率较大的一宏块位置处的一个宏块起按顺序进行块间编码。
根据上述方法,例如在使用一固定监控摄像机的情况下,可以选择保持块间编码的频率和块间编码的在前分配,从而能够通过向频繁进行块间编码的宏块位置中的宏块预先分配块间编码来提高图像质量和编码效率。而在使用移动摄像机的情况下,由于这些功能不是有效的,所以需通过不进行选择的编码方法使依据应用的编码成为可能。
此外,在第(N-1)帧中进行块间编码的所有宏块的编码数量之总和超过一个用于检测场景改变的预定阈值的情况下,在第N帧中对所有宏块执行块内编码。
根据上述方法,由于当发生场景改变时,块间编码的效率变差了,而且编码的数量增加了,所以能够通过检测场景改变和在发生场景改变时对在所有宏块位置中的宏块使用块内编码,把在下一帧中进行块内编码或者块间编码的宏块位置设置成交错排列,进而能够提高后续的编码效率。
本发明提供了一种运动图像编码方法,用于编码一种运动图像,其中对形成当前图像的一个预定区域的每个宏块进行块内编码处理,在块内编码中,把图像数据进行正交变换,然后将在正交变换后的图像数据进行量化和可变长度编码,和对其进行块间编码处理,在块间编码中,检测当前图像相对于基准图像的一个运动矢量,使用运动矢量为基准图像执行运动补偿,把在当前图像和运动补偿之后的基准图像之间的差值数据进行正交变换,然后将正交变换之后的差值数据进行量化和可变长度编码,并且为了存储,为了实现块间编码,在基准图像存储器中通过逆量化和逆正交变换所述量化后的图像数据或者量化后的差值数据而生成紧接在当前图像之后的图像帧的基准图像,所述的方法包括以下步骤:以一预定模式确定进行块内编码或者块间编码的一宏块的位置。
根据上述方法,在为下一帧中进行块内编码或者块间编码的一宏块位置给定一个初始值的情况下,例如,在定期地或者在场景改变时对所有宏块进行块内编码的情况下,通过给定适当的宏块位置的模式,可以减少在编码中的编码数量的偏差,且能够提高编码效率。
此外,预定模式是一种其中进行块间编码的宏块以交错格式排列的模式。
根据上述方法,通过提供其中进行块间编码的宏块位置以交错排列表示的模式为初始值,使在编码中的编码数量的偏差最小化。
此外,预定模式是一种其中进行块间编码的宏块以格子格式排列的模式。
根据上述方法,通过提供其中进行块间编码的宏块位置以格子排列表示的模式为初始值,可以减少在编码中的编码数量的偏差,并且由于增加了在编码中用于运动检测的机会,所以能够提高编码效率。
本发明提供了一种运动图像编码装置,具有:
编码装置,用于编码一个运动图像,形成当前图像的一个预定区域的每个宏块以进行块内编码处理,在块内编码中,把图像数据进行正交变换,然后将在正交变换后的图像数据进行量化和可变长度编码,和对其进行块间编码处理,在块间编码中,检测当前图像相对于基准图像的一个运动矢量,使用运动矢量为基准图像执行运动补偿,把在当前图像和运动补偿之后的基准图像之间的差值数据进行正交变换,然后将正交变换之后的差值数据进行量化和可变长度编码,以及,
一基准图像存储器,为了实现块间编码,用于存储通过逆量化和逆正交变换量化之后的图像数据或者量化之后的差值数据而生成紧接在当前图像之后的图像帧的一基准图像,
其包括:一确定装置,用于对当前图像(第N帧)之前的一个图像(第M帧,M≤N-1)进行编码时,在一图像帧中块间编码的宏块的最大数目的范围内,确定进行块内编码或者块间编码的一宏块的位置。
根据上述装置,在编码当前图像之前的一幅图像时,不需要通过确定进行块内编码或者块间编码的宏块位置来准备好在当前帧中所有宏块的基准图像,因此能够减少基准图像存储器的容量。
此外,该基准图像存储器仅存储在下一图像帧的基准图像中确定其位置是进行块间编码的宏块。
根据上述装置,可以限制存储在该基准图像存储器中的基准图像的宏块,因此,能够减少基准图像存储器的容量。
此外,基准图像存储器具有比为构成一图像帧的所有宏块存储一个基准图像所要求的容量更小的容量。
此外,地址管理装置,用于依据基准图像存储器的地址,管理存储在基准图像存储器中的基准图像中的一宏块的位置。
此外,宏块数目计数装置,用于计算存储在基准图像存储器中的一个基准图像中的宏块的数目。
此外,在存储在基准图像存储器中的宏块数目等于进行块间编码的宏块的最大数目的情况下,确定装置确定对在下一图像帧中位于一后续宏块中的一宏块进行块内编码。
根据上述装置,能够管理允许存储在基准图像存储器中的宏块的数目。
此外,函数值计算装置,用于进行计算估算函数值,其是根据处于进行块间编码的宏块相同位置的一宏块和存储在基准图像存储器中的一基准图像中的一宏块之间的差值来进行计算的。
此外,当估算函数值大于一预定阈值的情况下,该确定装置确定在下一图像帧中对处于进行块间编码的宏块相同位置一宏块进行块内编码。
根据上述装置,考虑到在性能函数值大于预定阈值的情况下,宏块的运动是大的(运动是困难的),和估计到在对下一帧中宏块位置连续进行块间编码的情况下,因运动检测错误而使编码的数量增加,可以断定即使代之以进行通常被认为是在编码效率上比块间编码更不令人满意的块内编码的情况下,在编码效率方面也没有大的差别,并通过对在该宏块位置中的宏块进行块内编码,就可以提高图像质量。即使断定在基准图像存储器中没有记录额外的区域,基准图像存储器也能够具有一个可以代之以进行块内编码的额外量,并且可以通过产生一个用于对在另一个宏块位置中的宏块使用块间编码的额外区域来综合地提高编码效率。
此外,块间编码频率计数装置,用于统计在一宏块的每个位置连续块间编码的频率。
此外,该确定装置,用于确定在下一图像帧中对位于连续块间编码的频率等于一预定阈值的位置处的一宏块进行块内编码。
根据上述装置,在基于差值编码的块间编码在相同的宏块位置中是连续的情况下,当在通信中的误差重叠时,恢复是困难的,所以可以通过每几帧应用一次块内编码来提高防止出现误差的能力。
此外,块内编码频率计数装置,用于统计在一宏块的每个位置中连续块内编码的频率。
此外,当存储在基准图像存储器中的宏块的数目小于基准图像存储器中可以存储的宏块的最大数目的情况下,该确定装置确定在下一图像帧中对位于连续块内编码的频率等于一预定阈值的位置处的一宏块进行块间编码。
根据上述装置,由于块内编码相比于块间编码通常不能达到令人满意的编码效率,在进行块间编码的宏块外围之间不相邻的情况下,尽管可以确定对一宏块位置连续进行块内编码,其也不能达到令人満意的编码效率,所以可以通过每几帧使用一次块间编码来提高编码效率。
此外,该编码装置采用零作为运动矢量,对相邻于所有或者一预定数目之上的进行块内编码的宏块的宏块进行块间编码。
根据上述装置,例如,当由固定的监控摄像机拍摄几乎不运动的对象的情况下,可以通过禁止运动补偿功能和以零运动矢量进行块间编码来简化块间编码。
本发明提供了一种半导体集成电路,其包括上述的运动图像编码装置。
根据上述集成电路,其通过在半导体集成电路中构造可以减少容量的基准图像存储器,可以减少芯片中的端子数量、使基准图像存储器中的衬底小型化、减少在衰减器和加速处理速度之间的能量损耗。
具体实施方式
参见这些附图,下面将说明本发明的实施例。在下列实施例中使用的阈值是用于说明的值,并非用来限制本发明。在下面的实施例中,也可以针对正交变换使用其它的正交变换技术来代替其中的DCT,而且也可以为针对变长度编码使用其它可变长度编码技术来代替赫夫曼编码。
第一实施例
图1是一个方框图,显示了对应本发明第一实施例的一个运动图像编码装置的结构。在图1中,与在如图30所示的常规运动图像编码装置中的部分相同的部分使用了相同的附图标记。
如图1所示,附图标记101表示图像输入单元,103表示执行正交变换的DCT单元,104表示量化器,105表示执行可变长度编码的赫夫曼编码器,106表示逆量化器,107表示执行逆正交变换的逆DCT单元,108表示基准图像存储器,109表示运动补偿器,110表示运动检测器,而111表示存储器控制器。
在存储器控制器111中,在一图像帧中进行块间编码的最大宏块数目被设置为一个比形成一图像帧的宏块数目小的值,并且在设置的最大宏块设置数目的范围内,确定在下一帧中进行块间编码的宏块位置。因此,并不要求基准图像存储器是一个用于记录整个一图像帧的基准图像的帧存储器,而是能够被配置为具有用于进行块间编码的最大宏块数目所需要的容量。
在图1中,存储器控制器111执行记录控制,用于仅仅记录,在基准图像存储器108中下一帧进行块间编码的宏块,上述状态由一个开关函数(SW)示意性地表示。
图2是一个示意图,用于说明在这个实施例中在基准图像存储器上的记录控制。在图2中的运动图像由通用中间格式(CIF)(宏块:22×18块)图像构成,进行块内编码的宏块与进行块间编码的宏块的比率是50%比50%,在一帧(一屏)的左侧上显示了由进行块内编码的宏块位置组成的布局,而在该帧(该屏)的右侧上显示了由进行块间编码的宏块位置组成的布局。
由于在下一帧中只有在进行块间编码的宏块位置中的一组基准图像宏块203被记录在基准图像存储器108中,所以基准图像存储器108的容量能够被减小到等于能够记录在所有宏块位置中的基准图像的常规帧存储器204的容量的一半容量。
参见图2,下面将描述运动图像编码的一个具体例子。在第一帧中,为所有宏块执行块内编码。在这时,一个基准图像被记录到基准图像存储器108中,然而,就在第二帧中进行块内编码的宏块位置中的该宏块组201来说,基准图像宏块没有被记录,而就在第二帧中进行块间编码的宏块位置中的一组宏块202来说,生成并且记录一组基准图像宏块203。
在下一个第二帧中,就在进行块内编码的一宏块位置中的一组宏块来说,重复与在第一帧中相似的编码;就在进行块间编码的一宏块位置中的一组宏块205来说,读取被记录到基准图像存储器108中的该基准图像宏块组203,由运动检测器110执行运动检测,使用在运动检测中获得的运动矢量由运动补偿器109执行运动补偿,并且生成一个预测性图像中的宏块。
接下来,获得在当前图像中的宏块和进行运动补偿的预测性图像中的宏块之间的差值,由DCT单元103、量化器104和赫夫曼编码器105编码该差值数据,并且获得块间编码数据。
此外,在量化之后的差值宏块数据被本地解码,为在第三帧中进行块间编码的宏块生成基准图像宏块,并且将其记录到基准图像存储器108中。被记录到基准图像存储器108中的基准图像宏块数据被记录在每个宏块中的同一地址。即,由于每次处理时在相同的位置中重写基准图像宏块,所以基准图像存储器108的容量总是固定的。
此外通过在第三帧中和在后续的帧中也重复与在第二帧中相似的操作、以及执行后续的编码,执行如图2中所示的运动图像编码,以便为在该帧左侧上的宏块执行块内编码,为在右侧上的宏块执行块间编码。
在如图2所示的实施例中,为了说明起见,在屏幕的左侧和右侧布置了块内编码宏块位置和块间编码宏块位置。这个实施例不局限于在屏幕的左和右侧或是上和下侧、以及两个部分。然而,当划分区域的数目增加时,运动检测的范围变窄了,运动检测的精确度可能变差了,而且此外存储器控制也是复杂的。
依据这个实施例,能够通过仅仅在基准图像存储器中记录在在下一帧中进行块间编码的一宏块位置中的基准图像宏块,来减小基准图像存储器的容量,并且能够实现一个低成本的运动图像编码系统。
第二实施例
图3是一个方框图,显示了对应本发明第二实施例的一个运动图像编码装置的结构。如图3所示,与图1所示的对应第一实施例的运动图像编码装置中相同的部分使用了相同的附图标记。
在这个实施例的运动图像编码装置中,从外部指定了进行块内编码的宏块位置和进行块间编码的宏块位置的布置。在图3中,除了如图1所示的结构之外,从外部向存储器控制器111输入一个块间编码指令信号301。
由于当如图2所示进行块内编码的一宏块位置和进行块间编码的一宏块位置在屏幕上固定时取决于摄影的图像,存在编码效率变坏的情况,所以在这个实施例中用户判断一个摄影的图像,进而从外部设置一宏块位置的编码划分区域。
图4是一个示意图,用于说明在这个实施例中在基准图像存储器上的记录控制。如图4所示,在第(N-1)帧中,在该帧的左侧上显示了进行块内编码的一组宏块401,在右侧上显示了进行块间编码的一组宏块402,并且把在为其在第(N-1)帧中执行块间编码的一宏块位置中的一组基准图像宏块405记录到基准图像存储器108中。
假定在第(N-1)帧中的编码处理之前,从外部输入块间编码指令信号301,并且用于改变以便使在第N帧中进行块间编码的一宏块位置位于一帧的左侧、而进行块内编码的一宏块位置位于右侧的一条指令被传输到存储器控制器111。
首先,在第(N-1)帧中的编码处理中,使用被记录到基准图像存储器108中的该基准图像宏块组405编码进行块间编码的该宏块组402。接下来,编码进行块内编码的该宏块组401。
之所以预先对进行块间编码的一宏块的执行编码,是因为在第(N-1)帧中进行块内编码的一宏块位置等于在第N帧中进行块间编码的一宏块位置,所以需要把在在第N帧中进行块间编码的一宏块位置中的一组基准图像宏块406记录到基准图像存储器108中。
即,通过预先使用被记录到基准图像存储器108中的该基准图像宏块组405、和在它上重写用于在第N帧中块间编码的该基准图像宏块组406,基准图像存储器108的容量是固定的而不会增加。
如果获得一种适当的用于停止块间编码的条件,也可能使用第(N-1)帧中被记录到基准图像存储器108中的基准图像宏块,确定最终在第N帧中是执行块间编码还是执行块内编码。
依据这个实施例,由于用户能够经由外部指定进行块间编码的一宏块位置和进行块内编码的一宏块位置,所以依据摄影场景进行运动图像编码是允许的。在此时,由于在第一实施例中仅仅在基准图像存储器中写入将在下一帧中使用的基准图像宏块,所以能够减少基准图像存储器的容量。
第三实施例
图5是一个方框图,显示了对应本发明第三实施例的一个运动图像编码装置的结构。在图5中,与图1所示的对应第一实施例的运动图像编码装置中相同的部分使用了相同的附图标记。
在这个实施例中的运动图像编码装置中,基于在一图像帧中的编码数量确定进行块内编码或者块间编码的一宏块位置。在图5中,除了如图1所示的结构之外,还提供了一个用于统计在一图像帧中的编码数量的编码数量计数器501,并且从外部输入一个编码数量阈值502。
图6是一个示意图,用于说明在这个实施例中在基准图像存储器上的记录控制。如图6所示,假定在第(N-1)帧中,进行块内编码的一组宏块601位于一帧的左侧上,而进行块间编码的一组宏块602位于右侧上,并且把在进行块间编码的一宏块位置中的一组基准图像宏块603记录到基准图像存储器108中。就编码顺序来说,与第二实施例相同,预先对进行块间编码的该宏块组602编码,接下来对进行块内编码的该宏块组601编码。
在对第(N-1)帧编码之前,编码数量的编码数量阈值502被输入到编码数量计数器501,而且在第(N-1)帧中进行块间编码的该宏块组602中的编码数量总和小于编码数量阈值的情况下,存储器控制器111进行控制,以使在第N帧中进行块内编码的一宏块位置位于一帧的左侧,而进行块间编码的一宏块位置位于右侧,象在第(N-1)帧那样,如在图6中的例1所示。
即,编码进行块间编码的该宏块组602,它的本地解码数据作为一组基准图像宏块609,通过重写在该基准图像宏块组603上本地解码数据而被记录到基准图像存储器108中,同时,依据基于阈值所获得的确定结果,进行块内编码的该宏块组601的本地解码数据不被记录到基准图像存储器108中。
这样,只有在第N帧中进行块间编码的该宏块组608中的该基准图像宏块组609被记录到基准图像存储器108中。因此,能够在第N帧中使用该基准图像宏块组609为该宏块组608执行块间编码。它意味着能够在期望的编码数量内执行在一个场景中的图像编码,其中进行块间编码的编码数量的总和小于编码数量阈值。
接下来,当第(N-1)帧中进行块间编码的该宏块组602中的编码数量的总和大于编码数量阈值的情况下,存储器控制器111进行控制,以便使第N帧具有与在第(N-1)帧中相反的布置,如图6中的例2所示,即进行块间编码的一宏块位置位于该帧的左侧,而进行块内编码的一宏块位置位于右侧。
即,编码进行块间编码的该宏块组602,并且它的本地解码的数据作为该基准图像宏块组609通过重写该基准图像宏块组603上的本地解码的数据,记录到基准图像存储器108中,然而,由于依据基于阈值获得的确定结果改变了一宏块位置的编码划分区域的布置,所以通过在该基准图像宏块组609上重写接下来进行块内编码的该宏块组601的本地解码数据作为该基准图像宏块组606,该本地解码数据被记录到基准图像存储器108中。
因此,仅有在第N帧中进行块间编码的该宏块组604中的该基准图像宏块组606被记录到基准图像存储器108中。因此,能够在第N帧中使用该基准图像宏块组606为该宏块组604执行块间编码。
进行块间编码的编码数量的总和大于编码数量阈值的原因是:在场景中一幅图像中的运动是快速的,而且由于由运动检测匹配精确度变坏所引起的错误而使编码的数量增加了,并且能够断定即使执行了块内编码,编码效率也不会变坏。作为替代,通过向进行块内编码的另一个宏块位置应用块间编码,可以综合地改进编码效率。由于通过提供阈值由存储器控制器选择了在编码效率方面令人满意的布置,所以不要求用户象在第二实施例中那样每次场景改变时指定编码布局。
依据这个实施例,基于在一图像帧中编码数量总和判断的最优化编码布局是自动的,并且能够提高编码效率。此外,象在第一和第二实施例中那样,仅有在下一帧中使用的基准图像宏块被写入到基准图像存储器中,并且能够减少基准图像存储器的容量。
第四实施例
由于象在第一到第三实施例中那样,屏幕仅仅被分为如图4和6所示的宏块位置的编码划分区域,所以产生了屏幕上的编码效率偏差。在第四实施例中,采用被认为是不存在编码效率偏差的一种模式作为进行块内编码和块间编码的一宏块位置。
图7是一个方框图,显示了等同于本发明第四实施例的一个运动图像编码装置的结构。在图7中,与在如图1所示的等同于第一实施例的运动图像编码装置中的部分相同的部分使用了相同的附图标记。
图8是一个示意图,用于说明在这个实施例中的运动图像编码控制。在如图8所示的实施例中,假定一图像帧由16个宏块形成,如显示了一宏块位置(一宏块地址)的801所示,并且提供了以交错排列模式的形式,进行块内编码或者块间编码的一宏块位置,如802所示。
由于要求通过以上述简单划分模式之外的一种模式布置一宏块位置的编码划分区域来管理被记录到基准图像存储器108中的一基准图像中的一宏块位置,所以在等同于如图7所示的这个实施例的运动图像编码装置中,提供了一个宏块地址管理器701,用于记录被记录到基准图像存储器108中的基准图像中的宏块位置,以便使宏块位置能够与基准图像存储器的地址形成对比。因此,通过指定基准图像中的一宏块位置来允许访问基准图像存储器108。
此外,由于编码效率变差取决于当在一种诸如交错排列模式中其一宏块位置的编码划分区域是在固定状态下的后续场景,所以在图7中提供了一个如图5所示的编码数量计数器501,用于统计在一图像帧中的编码数量,以检测编码效率的变坏,并且从外部输入一个编码数量阈值502。因此,在由编码数量计数器501统计的编码数量大于编码数量阈值502的情况下,存储器控制器111进行控制,以使诸如交错排列模式倒置。
由编码数量计数器501统计的编码数量和编码数量阈值502是基于在一图像帧中的编码数量的总和。
当如图8所示在第(N-2)帧802中宏块位置的编码划分区域交错时,按顺序从宏块位置1到16对宏块编码。
假定在第(N-2)帧中进行图像编码的结果,由编码数量计数器501合计的一个图像帧的编码数量总和大于编码数量阈值502。然而,由于基准图像803被记录到基准图像存储器108中用于在第(N-1)帧中进行块间编码,所以即使判定在第(N-2)帧中的编码数量的总和大,存储器控制器111也不在第(N-1)帧中倒置交错的编码划分区域。
然后,在第(N-1)帧804中,与在第(N-2)帧802中类似的编码划分区域执行编码,并且把基于进行块内编码的宏块而生成的基准图像宏块记录到基准图像存储器108中,以作为在第N帧806中进行块间编码的一个基准图像805。然后,宏块位置中的编码划分区域被倒置了,并且被改变成如在第N帧806中所示的交错排列。
由于这一结果,能够依据通过倒置宏块位置的交错排列中的编码划分区域而获得的模式,在第N帧806中使用基准图像805执行编码,并且能够实现依据场景的改变在编码效率方面获得令人满意的编码。
在这个实施例中,通过以Z字形排列进行块内编码和块间编码的宏块位置,用于运动检测的基准图像宏块和在外围中的基准图像宏块被成Z字形地记录下来。因此,由于以宏块为单位运动检测精确度大大地恶化了,所以,以一宏块中的像素为单位执行运动检测。
然而,由于在以一宏块中像素为单位的运动检测中超过一个宏块的运动检测是被禁止的,所以对其中快速运动的一个图像来说运动检测精确度会极大地恶化。然后,即使运动检测和运动补偿被停止,而且运动矢量被固定为零失量以简化运动图像编码,也不会因此产生大的差异。
图9是一个方框图,显示了其中简化了运动图像编码的、等同于如图7所示的第四个实施例的运动图像编码装置的简化结构。在图9中,从如图7所示的结构中除去了运动补偿器109和运动检测器110。例如,当在其屏幕小的移动设备中交错排列被采用作为宏块位置的编码划分区域的情况下,能够减少装置的成本,并且通过简化的结构保持实用的编码效率。
依据这个实施例,能够通过以诸如交错排列的模式排列进行块内编码和块间编码的宏块位置来消除在屏幕上的编码效率偏差,通过进一步执行控制允许最优化编码布局,确定编码数量并且倒置宏块位置中的编码划分区域,从而提高编码效率。
如上描述了该交错排列被用作进行块内编码和块间编码的宏块位置模式的情况,然而,不仅在以该实施例相同模式继续被使用的情况下,而且在确定依据屏幕信息和每个宏块的编码数量是否将在后续帧中执行任意个编码的情况下,使用这样一种模式都是有效的,并且改变了进行块内编码和块间编码的宏块位置。
例如,在为所有宏块定期执行块内编码的情况下,通过提供宏块位置的适当编码划分区域作为在下一帧中进行块内编码和块间编码的宏块位置的初始值,减少了在编码中的编码数量偏差,并且能够提高编码效率。
图10显示了进行块内编码和块间编码的宏块位置中的初始化模式的一个例子。如图10所示,在这个实施例中模式1001具有交错排列,基准图像存储器的容量能够被减小为一个用于记录整个图像帧基准图像的帧存储器的一半,而且可以最多地减少屏幕上编码数量的偏差;然而,有一个缺点是,由于基准图像宏块是以Z字形被记录的,所以就外围宏块来说只有对角线基准图像宏块能够被涉及,并且运动检测的精确度变差了。
如图10所示的模式1002是一种格子类型,并且由于横向和纵向有多个相邻的基准图像宏块,所以允许在宏块之间的运动检测,并且提高了运动检测的精确度;然而,由于进行块间编码的宏块增加了,所以基准图像存储器的容量不能被减小到用于记录整个图像帧基准图像的帧存储器的一半。
如图10所示,模式1003到模式1006是在第一实施例中描述的分割类型,基准图像存储器的容量能够被减小到用于记录整个图像帧基准图像的帧存储器的一半,并且该简单模式使得用于记录基准图像的存储器控制容易,然而,除特定图像的情况之外,屏幕上编码数量的偏差增加了。
如图10所示,模式1007和模式1008是一种条纹类型,基准图像存储器的容量能够被减小到用于记录整个图像帧基准图像的帧存储器的一半,并且提高了沿条纹方向运动检测的精确度;然而,与交错类型和格子类型相比,屏幕上编码数量的偏差较大。
如图10所示,模式1009是一种中央高图像质量类型,其中对屏幕中央区进行块内编码,并且屏幕中央区的图像质量是令人满意的;然而,基准图像存储器的容量不能被减小到用于记录整个图像帧基准图像的帧存储器的一半,并且除特定图像的情况之外,屏幕编码数量的偏差增加了。
第五实施例
在第四实施例中的技术,可以用于一种在下述情况下对在下一帧中执行块内编码和块间编码的宏块位置进行初始化的方法,所述的情况是指在一个图像帧中的编码数量超过一个阈值,特别是定期地或者通过场景改变对所有宏块进行块内编码的情况,在为下一帧初始化编码划分区域模式时交错排列是有效的。
第五实施例是该第四实施例被实施的例子,在编码数量极其不正常的情况下,基于一图像帧中编码数量的观察结果,状态被检测为场景改变,在检测到场景改变的情况下,对所有宏块进行块内编码,并且把交错排列用于对下一帧的编码划分区域模式。
图11是一个方框图,显示了等同于本发明第五实施例的一个运动图像编码装置的结构。在图11中,与在第一实施例中如图1所示运动图像编码装置中的、以及在第四实施例中如图7所示运动图像编码装置中的相同部分使用了相同的附图标记。
在如图11所示的结构中,从外部输入到编码数量计数器501的场景改变阈值1101,以及从外部输入到存储器控制器111的场景改变信号1102被添加到如图7所示的结构中。
图12是一个示意图,用于说明在这个实施例中进行编码控制运动图像。在如图12所示的这个实施例中,一图像帧应当由如帧1201中所示的16个宏块形成,其中帧1201显示了一宏块位置(宏块地址)。
在第(N-1)帧1202执行正常编码的情况下,依据每个宏块位置中块内编码和块间编码的划分区域执行编码,生成一基准图像1203,并且把它记录到一基准图像存储器108中,并且处理进入到第N帧1204。在图12中,显示了确定在下一帧中进行编码的每个宏块的情况,其将在随后第六实施例中进行描述,并且对被确定在第(N-1)帧1202中进行块内编码的一宏块位置6进行块间编码。
假定在第(N-1)帧中发生了场景改变,检测到由编码数量计数器501观察的编码数量总和超过了场景改变阈值1101,或者从外部传送场景改变信号1102。在这种情况下,由于即使在第N帧中使用了被记录到基准图像存储器108中的基准图像1203也不能使编码效率令人满意,所以决定忽略记录的基准图像1203,并且在第N帧中对所有宏块进行块内编码。
在其中决定对所有宏块进行块内编码的第N帧1205中,交错排列被采用作为用于下一个第(N+1)帧的编码区域划分模式,对所有宏块进行块内编码,为在交错排列中进行块间编码的宏块位置生成一个基准图像1206,并且把它记录到基准图像存储器108中。
在第(N+1)帧1207中,其中进行块间编码的宏块位置被包含在交错排列中,使用记录到基准图像存储器108中的基准图像1206执行编码,处理过程被返回到正常的编码处理,其中确定在下一帧中进行编码的每个宏块,生成一个基准图像1208,并且处理进行到第(N+2)帧1209。
在这个实施例中,是选择交错排列作为有效编码区域划分模式的初始值。然而,针对摄影运动图像的不同属性,选择另一种模式可能是更为有效的,所以依据用途选择一种提高编码效率的适当模式是所希望的。
第六实施例
在第四和第五实施例中,通过使用具有交错排列的编码区域划分模式以及进行运动图像编码来消除屏幕上编码效率的偏差。然而,依据场景通过仅仅使用相同的编码区域划分模式以及其倒置模式都是不能提高编码效率的。
在第六实施例中,在第N帧中通过基于图像帧信息来判断确定在第N帧中进行块内编码和块间编码的每个宏块以及每一宏块中的编码数量,提高了编码效率。
图13是一个方框图,显示了等同于本发明第六实施例的一个运动图像编码装置的结构。在图13中,与在第一实施例中如图1所示的运动图像编码装置中的、以及在第七实施例中如图7所示的运动图像编码装置中的相同部分使用了相同的附图标记。
在如图13所示的结构中,块间宏块数目计数器1301、差值比较器1302、分别输入到差值比较器1302的差值阈值1(1303)和差值阈值2(1304)、连续块间编码频率计数器1305、输入到连续块间编码频率计数器1305的阈值1306、连续块内编码频率计数器1307和输入到连续块内编码频率计数器1307的阈值1308被添加到如图7所示的结构中。
在本发明中,等同于仅仅一个在下一帧中进行块间编码的宏块位置的一个基准图像被记录到基准图像存储器108中。然而,在这个实施例,由于在下一帧中进行编码的每个宏块位置都要被确定,所以记录到基准图像存储器108中基准图像的数目和它的宏块位置(它的宏块地址)改变了。
因此,除了一个用于管理相关于记录在基准图像存储器108中宏块位置的宏块地址管理器701之外,还提供了块间宏块数目计数器1301,以管理在当前图像帧中用于记录在基准图像存储器108中基准图像宏块的数目。
一种使用这些管理基准图像宏块数目的方法如下。就块间宏块数目计数器1301来说,可以使用一种即可向上统计(+1)又可向下统计(-1)的双向计数器,并且当用于该容量的基准图像宏块被记录到基准图像存储器108中时,设置计数值为零。
在下一帧中当块间编码为如下情况时,执行向下统计(-1),所述情况是对在一个为其在当前图像帧中执行块内编码的宏块位置中的一宏块进行块间编码;在下一帧中当块内编码为如下情况时,执行向上统计(+1),所述情况是对在一个为其在当前图像帧中执行块间编码的宏块位置中的一宏块进行块内编码;而在编码划分区域不变的情况下,其计数值不变。
存储器控制器进行控制以便使块间宏块数目计数器1301如上所述那样被控制,仅仅在计数值为+1或更多的情况下,能够在下一帧中为在一个在当前图像帧中进行块内编码的宏块位置中的一宏块执行块间编码,并且基准图像宏块能够被记录到该基准图像存储器108中。
即,在一个新宏块位置中的基准图像宏块可以仅仅记录在通过减少基准图像存储器中记录基准图像的宏块而生成的记录空间中。如上所述,在当前图像帧中通过控制记录到基准图像存储器108中基准图像的宏块数目按宏块位置的顺序执行编码,在此情况下,记录到基准图像存储器108中基准图像的宏块数目能够被控制,以便使进行块间编码的宏块位置没有偏差。
在与此相对比的一种方法中,当在当前图像帧中按宏块位置顺序执行编码时,独立于当前图像帧中的编码区域划分,仅仅由块间宏块数目计数器1301统计决定为其在下一帧中执行块间编码的宏块的数目,并且,当计数值达到进行块间编码的最大宏块数目且基准图像存储器充满的情况下,决定在下一图像帧中为在一个在当前图像帧中随后被编码的宏块位置中的一宏块执行块内编码。
在这种方法中,控制是简单的。然而,取决于图像的情况,在进行块内编码和块间编码的宏块位置中可能存在偏差。
通过获得在当前图像帧进行块间编码的宏块和基准图像宏块之间的差值,或者基于该差值计算性能函数值和发送性能函数值和差值阈值的比较结果到存储器控制器111,差值比较器1302确定在下一帧中在每个宏块位置的编码方法。性能函数值等于例如差值绝对值的总和。
连续块间编码频率计数器1305统计在每个宏块位置连续块间编码的频率,而连续块内编码频率计数器1307统计在每个宏块位置连续块内编码的频率。这些用于宏块位置数目的计数器不需要另行准备,这些计数器能够通过用于宏块位置数目的存储器和加法器来实现,并且也可以通过存储器控制器111内部提供。
图14到19是示意图,用于说明在这个实施例中的运动图像编码控制。在如这些图所示的这个实施例中,一图像帧由如帧1401中所示的16个宏块形成,其中帧1401显示了一宏块位置(一宏块地址)。
在图14到16中,显示了一个例子,其作为替代在第N帧中为在一个在第(N-1)帧中进行块间编码的宏块位置中的一宏块执行块内编码。在图17到19中,显示了一个例子,其作为替代在第N帧中为在一个在第(N-1)帧中进行块内编码的宏块位置中的一宏块执行块间编码,并且在整个图像帧中综合地提高了编码效率。
在如图14所示的例1中,在第N帧中,也为在该第(N-1)帧1402中通常进行块间编码的宏块位置中的一宏块执行块间编码,为在当前图像中进行块间编码的一宏块生成一个基准图像1403,并且将其记录到基准图像存储器108中。在此时,通过使用差值比较器1302计算在当前图像帧进行块间编码的一宏块和其基准图像宏块之间的差值,从而每个宏块获得在1404中所示的差值(被采用作为性能函数值的差值绝对值之总和)。
假定与差值相比的差值阈值(1303)为50,在第(N-1)帧1402中从在宏块位置1中的一宏块开始按顺序执行编码,并且获得在进行块间编码的一宏块位置10中的差值90。由于作为在差值比较器1302中比较的结果差值大于差值阈值1,所以作为替代在第N帧1405中对在宏块位置10中的一宏块进行块内编码。
在这时,由于块间宏块数目计数器1301向上统计(+1)并且指示在基准图像存储器108中产生了记录空间,所以产生了一个可占用的机会,其用于作为替代在第N帧中为在对后续第(N-1)帧执行块内编码的另一个宏块位置中的一宏块执行块间编码。
象在例1中那样,块间编码宏块的差值大于差值阈值1的事实意味着在一宏块位置中的运动是大的,并且由于运动检测误差较大,而且当进行块间编码时在编码之后的编码数量可能增加,所以能够估计,即使作为替代为一宏块位置执行了其中编码数量通常大于块间编码的块内编码,编码数量也不会大大地增加。
由于在基准图像存储器108中能够产生空闲空间,以便如上所述作为替代通过向在下一帧中与一个基准图像宏块具有大差值的一个块间编码宏块应用块内编码而为另一个块内编码宏块执行块间编码,所以能够提高在整个图像帧中的编码效率。
在如图15所示的例2中,在第N帧中为在一个为其在第(N-1)帧1502中执行块间编码的宏块位置中的一宏块执行块间编码,为在当前图像中进行块间编码的一宏块生成一个基准图像1503,并且将其记录到基准图像存储器108中。在此时,通过使用差值比较器1302计算在当前图像帧的一个块间编码宏块和其基准图像宏块之间的差值,每个宏块获得如1504中所示的差值。
假定与差值相比的差值阈值1(1303)为50,在第(N-1)帧1502中从在宏块位置1中的一宏块开始按顺序执行编码,并且获得在进行块间编码的一宏块位置15中的差值49。由于作为在差值比较器1302中比较的结果尽管该差值小于该差值阈值但是该差值接近于该差值阈值,并且在此时块间宏块数目计数器1301的计数值为零,所以作为替代在第N帧1505中为在一宏块位置10中的一宏块执行块内编码。
在此时,由于块间宏块数目计数器1301向上统计(+1)并且指示在基准图像存储器108中产生了记录空间,所以产生了可以被占用的机会,其可作为替代在第N帧中对在为后续第(N-1)帧执行块内编码的另一个宏块位置中的一宏块进行块间编码。
尽管与基准图像宏块的差值小于该差值阈值1,但该差值接近于差值阈值且断定在基准图像存储器中没有记录空间,在此情况下,能够在基准图像存储器108中产生空闲空间。为了与例1中同样的理由,该空闲空间能够作为替代通过在下一帧中向一块间编码宏块应用块内编码来为另一个块内编码宏块执行块间编码,从而提高了在整个图像帧中的编码效率。
在如图16所示的例3中,在第N帧中,也为在一个对第(N-1)帧1602正常执行块间编码的宏块位置中的一宏块执行块间编码,为在当前图像中进行块间编码的一宏块生成一个基准图像1603,并且将其记录到基准图像存储器108中。在此时,就一个块间编码宏块来说,通过连续块间编码频率计数器1305统计可获得每个宏块位置连续块间编码的频率,如1604所示。
假定与连续块间编码频率相比的阈值1306为5,在第(N-1)帧1602中从在一宏块位置1中的一宏块开始按顺序执行编码,并且当对在进行块间编码的一宏块位置10中的一宏块完成编码时,连续块间编码的频率达到5。由于连续块间编码的频率达到阈值1306,所以作为替代在第N帧1605中为在宏块位置10中的宏块执行块内编码。
由于在块间编码中利用时间冗余执行编码,所以当前图像与基准图像之间的差值被编码,然而,在通信中当在编码数据上误差重叠时,由于差值被编码,所以恢复是困难的。因此,每隔几帧为一宏块执行不使用差值的块内编码,该宏块是在一个连续执行块间编码的宏块位置中的宏块,以此来提高防止出现误差的能力。
在这时,由于块间宏块数目计数器1301向上统计(+1)并且指示在基准图像存储器108中产生了记录空间,所以产生了可被占用的机会,其可作为替代在第N帧中为在对后续第(N-1)帧进行块内编码的另一个宏块位置中的一宏块执行块间编码。因此,能够提高在整个图像帧中的编码效率。
在如图17所示的例4中,在第N帧中,还为在一个对第(N-1)帧1702正常进行块间编码的宏块位置中的一宏块执行块间编码,在第N帧中,还为在一个对第(N-1)帧进行块内编码的宏块位置中的一宏块执行块内编码,为在当前图像中进行块间编码的一宏块生成一个基准图像1703,并且将其记录到基准图像存储器108中。在此时,通过使用差值比较器1302计算在当前图像帧进行块间编码的一宏块与其基准图像之间的差值,从而获得每个宏块位置的差值,如1704中所示。
假定与该差值相比较的差值阈值2(1303)为15,而且按顺序从在宏块位置1中的一宏块开始到在对第(N-1)帧1702进行块内编码的宏块位置6中的一宏块执行编码。此外,假定在编码开始之前,由块间宏块数目计数器1301统计的计数值为正(+),而且在基准图像存储器108中有记录空间。
在这时,已经完成了对在宏块位置2和宏块位置5中宏块的块间编码,其中宏块位置2和宏块位置5分别接近于宏块位置6,并且分别进行了块间编码,而且由于相应的差值8和10小于差值阈值2,所以作为替代在第N帧1705中对在宏块位置6中一宏块进行块间编码。
此外,根据进行块内编码的宏块位置6中宏块的编码数据而生成其基准图像宏块,并且将其记录到基准图像存储器108中。因此,块间宏块数目计数器1301向下统计(-1),并且减少了在该基准图像存储器108中的一个记录空间。
由于能够断定,考虑到与周围宏块的空间相关性,与周围宏块基准图像的差值小的一个块内编码宏块的运动小,并且即使在下一帧中执行块间编码运动检测错误也小,所以在基准图像存储器有记录空间的情况下,通过作为替代在下一帧中向在一宏块位置中的一宏块应用块间编码,能够提高编码效率。
在如图18所示的例5中,在第N帧中,还为在一个对第(N-1)帧1802正常进行块间编码的宏块位置中的一宏块执行块间编码,在第N帧中,还为在一个进行块内编码的宏块位置中的一宏块执行块内编码,为当前图像进行块间编码的一宏块生成一个基准图像1803,并且将其记录到该基准图像存储器108中。在此时,通过编码数量计数器501统计块内编码后的编码数量,获得每个宏块的编码数量,如1804中所示。
假定与块内编码后编码数量相比较的编码数量阈值502为50,而且按顺序从在宏块位置1中的宏块开始到在第(N-1)帧1802中进行块内编码的宏块位置6中的宏块执行编码。此外,假定在编码开始之前,由块间宏块数目计数器1301统计的计数值为正(+),而且在该基准图像存储器108中有记录空间。
在此时,由于宏块位置6的编码数量为70并且大于编码数量阈值,所以作为替代在第N帧1805中对宏块位置6的宏块进行块间编码。此外,根据在进行块内编码的宏块位置6中宏块的编码数据生成一个基准图像宏块,并且将其记录到基准图像存储器108中。因此,块间宏块数目计数器1301向下统计(-1),并且减少了在该基准图像存储器108中的一个记录空间。
考虑到时间相关性,对一个被断定块内编码的编码效率不令人满意的宏块位置中的宏块进行块内编码时,可以断定在下一帧中其编码效率也可能是不令人满意的。因此,期望能通过在下一帧中对在宏块位置中的宏块应用块间编码来提高编码效率。
在如图19所示的例6中,在第N帧中,还为在一个第(N-1)帧1902正常进行块间编码的宏块位置中的一宏块执行块间编码,在第N帧中,还为在一个进行块内编码的宏块位置中的一宏块执行块内编码,为当前图像进行块间编码的一宏块生成一个基准图像1903,并且将其记录到该基准图像存储器108中。在此时,就一个进行块内编码的宏块来说,通过连续块内编码频率计数器1307统计可以获得每个宏块位置连续块内编码的频率,如1904所示。
假定与连续块内编码频率相比较的阈值1308为5,在第(N-1)帧1902中从在宏块位置1中的一宏块开始按顺序执行编码,并且当对进行块内编码的宏块位置6完成编码时,连续块内编码的频率达到5。此外,假定在编码开始之前,块间宏块数目计数器1301的计数值为正(+),而且在该基准图像存储器108中有记录空间。
在此时,由于连续块间编码的频率达到阈值1308,所以作为替代在第N帧1905中对宏块位置6的宏块进行块间编码。此外,根据在进行块内编码的宏块位置6中宏块的编码数据生成一个基准图像宏块,并且将其记录到该基准图像存储器108中。因此,块间宏块数目计数器1301向下统计(-1),并且减少了在该基准图像存储器108中的一个记录空间。
在块内编码的编码数量等于或者小于一个编码数量阈值,并且进行块间编码的宏块外围不相邻的情况下,即使进行了如例4和5中所示的方法,也可以连续地对在该宏块位置中的宏块进行块内编码。然后,能够通过监控连续块内编码的频率以及进行控制以便使通常被认为其编码效率不令人满意的块内编码不是以某个或多个频率连续,来提高编码效率。
第七实施例
在这个实施例中,对在监控摄像机中摄影的一个目标进行用于评价图像质量的块内编码,而对该目标的周围进行用于评价编码效率的块间编码。在下一帧中,根据情况,对周围宏块进行块间编码,其意味着能够提高编码效率。以使从外部来规范目标区域成为可能。
图20是一个方框图,显示了等同于本发明第七个实施例的一个运动图像编码装置的结构。在图20中,与在如图1所示等同于第一实施例的运动图像编码装置中的、与如图13所示等同于第六实施例的运动图像编码装置中的相同部分使用了相同的附图标记。如图20所示,附图标记2001表示一个用于从外部输入目标的运动信息的信号。
图21到25是示意图,用于说明在这个实施例中的运动图像编码控制。在这些附图说明的这个实施例中,帧2101显示了一个宏块位置(一个宏块地址),由30个宏块(横向6块×纵向5块)形成一图像帧。基准图像存储器108具有足以记录18个基准图像宏块的容量。
假定在第(N-1)帧2102中,将进行块内编码的一个目标区域设为在中央的一组12个宏块(宏块位置是8到11、14到17、20到23),而且将在该目标区域周围进行块间编码的宏块位置中18个基准图像宏块记录到基准图像存储器108中,如在基准图像2103中所示。
图22是一个示意图,用于说明在编码第(N-1)帧2102中根据从外部输入目标的运动信息2001断定目标向上移动一个宏块的情况下,其运动图像编码控制。
由于估计在第N帧中目标如显示一个宏块位置(一个宏块地址)的2201所示那样移动,所以在编码第(N-1)帧2102过程中首先决定作为替代在第N帧2202中对宏块位置2到5的宏块进行块内编码,并且宏块位置2到5的基准图像宏块不被记录到该基准图像存储器108中。
接下来,决定作为替代在第N帧2202中对宏块位置20到23的宏块进行块间编码,并且将宏块位置20到23的基准图像宏块记录到记录空间中,在该记录空间中没有宏块位置2到5的基准图像宏块被记录到该基准图像存储器108中。
以上一起描述了相同类型的处理过程,然而,实际上,按宏块位置顺序执行编码,并且利用进行块间编码的宏块的正常处理和上述处理一起为第N帧准备基准图像2203。在编码第(N-1)帧2102过程中,在第N帧2202中的数字表示块间宏块数字计数器1301统计的计数值的变化。如何进行控制以便使计数值不为负是已知的。
在第N帧中,就该目标区域周围之外的宏块位置25到30的宏块来说,可以通过如第N帧2202中所示块内编码来获得在基准图像存储器中的空闲空间。
图23是一个示意图,用于说明,在编码第(N-1)帧2102过程中,在根据从外部输入目标的运动信息2001断定目标向左移动一个宏块的情况下,其运动图像编码控制。
由于估计在第N帧中目标如显示一个宏块位置(一个宏块地址)的2301所示那样移动,所以在编码第(N-1)帧2102过程中首先决定作为替代在第N帧2302中对宏块位置7、13、19的宏块进行块内编码,并且宏块位置7、13、19的基准图像宏块不被记录到该基准图像存储器108中。
接下来,决定作为替代在第N帧2302中对宏块位置11、17、23中宏块进行块间编码,并且将宏块位置11、17、23的基准图像宏块记录到记录空闲空间中,该空闲空间是因为在宏块位置7、13、19中的基准图像宏块没有被记录到该基准图像存储器108中。
以上一起描述了相同类型的处理过程,然而,实际上,按宏块位置顺序执行编码,并且通过进行块间编码的宏块的正常处理和上述处理为第N帧准备基准图像2303。在编码第(N-1)帧2102过程中,在第N帧2302中的数字表示块间宏块数字计数器1301统计的计数值的变化。在这种情况下,如何进行控制以便使计数值不为负也是已知的。
在第N帧中,就目标区域周围之外宏块位置6、12、18、24、30中宏块来说,通过如第N帧2302中所示的块内编码,可以在该基准图像存储器中准备空闲空间。
图24是一个示意图,用于说明,在编码第(N-1)帧2102的过程中,在根据从外部输入的目标运动信息2001断定目标向下移动一个宏块的情况下,其运动图像编码控制。
由于估计在第N帧中目标如显示一个宏块位置(一个宏块地址)的2401所示那样移动,所以在编码第(N-1)帧2102过程中首先决定作为替代在第N帧2402中对目标区域周围之外宏块位置1到6的宏块进行块内编码,并且宏块位置1到6中基准图像宏块不被记录到基准图像存储器108中。
接下来,决定作为替代在第N帧2402中对在宏块位置8到11的宏块进行块间编码,并且将宏块位置8到11中基准图像宏块记录到记录空闲空间中,该空闲空间是因为没有宏块位置1到6中基准图像宏块被记录到基准图像存储器108中。
此外,决定作为替代在第N帧2402中对宏块位置26到29中宏块进行块内编码,并且宏块位置26到29中基准图像宏块不被记录到该基准图像存储器108中。
以上一起决定了相同类型的处理,然而,实际上,按宏块位置顺序执行编码,并且通过对进行块间编码的宏块正常处理和上述处理来为第N帧准备基准图像2403。在编码第(N-1)帧2102过程中,在第N帧2302中的数字表示块间宏块数字计数器1301统计的计数值的变化。在这种情况下,进行控制以便使计数值不为负也是已知的。
图25是一个示意图,用于说明,在编码第(N-1)帧2102中,在根据从外部输入的目标运动信息2001断定目标向右移动一个宏块的情况下,其运动图像编码控制。
由于估计在第N帧中目标如显示一个宏块位置(一个宏块地址)2501所示那样移动,所以在编码第(N-1)帧2102过程中首先决定作为替代在第N帧2502中对宏块位置1、7、13、19、25中宏块进行块内编码,并且宏块位置1、7、13、19、25中基准图像宏块不被记录到该基准图像存储器108中。
接下来,决定作为替代在第N帧2502中对宏块位置8、14、20中宏块进行块间编码,并且将宏块位置8、14、20中基准图像宏块记录到记录空闲空间中,该记录空闲空间是因为宏块位置1、7、13、19、25中基准图像宏块没有被记录到该基准图像存储器108中。
此外,决定作为替代在第N帧2502中对宏块位置12、18、24中宏块进行块内编码,并且宏块位置12、18、24中没有基准图像宏块被记录到该基准图像存储器108中。
以上一起描述了相同类型的处理,然而,实际上,按宏块位置顺序执行编码,并且通过对进行块间编码的宏块正常处理和上述处理来为第N帧准备基准图像2503。在编码第(N-1)帧2102过程中,在第N帧2502中的数字表示块间宏块数字计数器1301统计的计数值的变化。在这种情况下,如何进行控制以便使计数值不为负也是已知的。
依据这个实施例,对一个将摄影目标评价图像质量和在该目标周围评价编码效率的运动图像进行编码是可行的。通过以如上所述的向上、向下、向右和向左四个移动模式的组合执行编码,也允许当目标以对角线移动时的运动图像编码。
第八实施例
在这个实施例中,依据先有技术为以在基准图像存储器容量内的图像尺寸的图像执行运动图像编码,并且就以大于基准图像存储器容量的图像尺寸的图像来说,通过限制在一图像帧中进行块间编码的最大宏块数目和使用相同的基准图像存储器执行运动图像编码,允许了其图像尺寸自由的运动图像编码。
图26是一个方框图,显示了等同于本发明第八个实施例的一个运动图像编码装置的结构。在图26中,与在如图1所示并且等同于第一实施例的运动图像编码装置中相同部分,使用了相同的附图标记。如图26所示,附图标记2601表示一个用于从外部输入图像尺寸信息到存储器控制器111的信号。
图27是一个说明性的图,用于说明在这个实施例中的运动图像编码控制。在图27中,显示了用于使用一个能够记录400个基准图像宏块的基准图像存储器108来运动图像编码一个CIF图像2701和运动图像编码一个VGA图像2703的实施例。该实施例是一个用于说明的例子,并且没有指定图像尺寸。
由于在由图像尺寸信息2601指定CIF图像尺寸的情况下能够为CIF图像2701中的所有宏块(396块)执行块间编码,所以执行其中在一图像帧中进行块间编码的最大宏块数目没有限制的常规运动图像编码。
由于在由图像尺寸信息2601指定VGA图像尺寸的情况下如VGA图像2703所示宏块数目为1200,所以如一VGA图像帧2704所示为每三个宏块执行一次块间编码,为其它宏块执行块内编码,并且通过在基准图像存储器108中仅仅记录在为其在下一帧中执行块间编码的宏块位置中的基准图像宏块,允许了运动图像编码。
依据这个实施例,通过依据图像尺寸信息控制进行块间编码的宏块的比率,允许使用同一个基准图像存储器进行多种图像尺寸的运动图像编码。
第九实施例
如在第四实施例中所描述的那样,考虑到当基准图像小或者相邻的宏块位置不存在基准图像的情况下,该运动检测的精确度和运动补偿极大地恶化,暂停运动补偿功能效果很小,因此,揭示了一个运动图像编码装置的结构,其简化了运动图像编码,如图9所示。
在这个实施例中,通过进行控制以使除了上述方法之外还可选择暂停运动补偿功能,依据摄影的运动图像情况提高能源节省和处理效率。
图28是一个方框图,显示了等同于本发明第九实施例的运动图像编码装置的结构。在图28中,与在如图1所示并且等同于第一实施例的运动图像编码装置中相同部分使用了相同的附图标记。
在图28中,输入到运动补偿器109和运动检测器110的运动补偿暂停指令信号2801被增加到该结构中,如图1所示。在发出运动补偿暂停指令信号2801的情况下,运动补偿器109和运动检测器110暂停该操作,并且在块间编码的情况下,直接提供一基准图像,来作为一基于与当前图像的差值的预测性图像。
因此,即使依据来自外部的暂停指令暂停运动补偿器109和运动检测器110,也允许运动图像编码,并且能够通过暂停一个不必要的电路来减少能量消耗。
第十实施例
这个实施例的目的是将记录过去在每个宏块位置块间编码的频率作为历史记录,以便在重新启动过程中初始化每个设置时,参考该频率决定每个宏块位置的编码区域划分,并且提高图像质量和编码效率。
图29是一个方框图,显示了等同于本发明第十个实施例的一种运动图像编码装置的结构。在图29中,与在如图1所示并且等同于第一实施例的运动图像编码装置中的、与如图7所示并且等同于第四实施例的运动图像编码装置中的相同部分使用了相同的附图标记。
在如图29所示的结构中,提供了一种块间编码频率计数器2901,以统计和记录过去在每个宏块位置块间编码的频率。在重新启动过程中初始化每个设置时,存储器控制器111参考块间编码频率计数器2901,并且决定对在按照顺序更频繁编码的宏块位置中的宏块预先执行块间编码。
如图29所示,一图像帧由显示了一宏块位置(一宏块地址)的2902所示的30个宏块形成,并且2903显示了被记录到块间编码频率计数器2901中的在每个宏块位置块间编码的频率。
当重新启动该运动图像编码装置时,对重新启动后第一帧中所有宏块进行块内编码。就编码过程中确定的第二帧中宏块位置的编码区域划分来说,参考了在每个宏块位置块间编码2903的频率,并且当基准图像记录存储器108的容量等于一图像帧容量的一半时,选择在其中块间编码更频繁的宏块位置中的15个宏块,并且确定进行块间编码的宏块位置。因此,能够提高在刚激活之后继第二帧以后帧中的图像质量和编码效率。
在监控摄像机固定在外部的情况下,尽管在移动摄像机中这种方法的效果较小,但是由于存在其中运动经常较大的宏块位置和其中运动经常较小的宏块位置,常常对运动经常较小的宏块位置中一宏块进行块间编码,并且由于对这种宏块位置中宏块应用块间编码是频繁的,所以能够预期得到令人满意的效果。
在固定的外部监控摄像机中这种方法是特别有效的,然而,在诸如配置有摄像机的移动电话之类的移动摄像机中,由于图像的时间相关性的改变较大,所以这种方法的效果是不能预计的。因此,期望该运动图像编码装置配置有一个用于选择是否进行这个功能和是否存储块间编码频率的功能。
如上所述,依据上述实施例,不要求通过确定宏块位置来准备在当前帧中的所有宏块的基准图像,该宏块位置是用于在对当前图像之前的图像编码时进行块内编码或者块间编码,能够减小基准图像存储器的容量,并且能够减少运动图像编码装置的成本。