CN1243393A - 移动矢量测量方法及记录媒体、移动检测装置及方法 - Google Patents
移动矢量测量方法及记录媒体、移动检测装置及方法 Download PDFInfo
- Publication number
- CN1243393A CN1243393A CN 99110395 CN99110395A CN1243393A CN 1243393 A CN1243393 A CN 1243393A CN 99110395 CN99110395 CN 99110395 CN 99110395 A CN99110395 A CN 99110395A CN 1243393 A CN1243393 A CN 1243393A
- Authority
- CN
- China
- Prior art keywords
- image
- pixel
- image block
- piece
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明揭示了一种移动矢量计算方法,它包含步骤(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;(d)正交变换参照图像块的像素数据和当前图像块的像素数据;以及(e)获得参照图像块的正交变换数据与当前图像的每个块的正交变换数据之间的偏差。
Description
本发明涉及一种移动矢量计算方法,适于利用软件处理进行对应于例如MPEG(移动图像专家组)2的方法的编码处理。本发明还涉及其上记录有移动矢量计算程序的记录媒体。
MPEG2作为一种对图像的高效压缩方法是公知的。在MPEG2方法中,利用移动补偿预测编码方法和DCT(离散余弦变换)方法对视频信号进行压缩和编码。
在MPEG2方法中,发送三种类型的图像,它们是I(内)图像、P(预测)图像和B(双向预测)图像。对于I图像,用相同帧的象素进行DCT编码处理。对于P图像,参照I图像或已编码的图像,利用移动补偿预测处理进行DCT编码处理。对于B图像,参照I图像或B图像前后的P图像,利用移动预测处理进行DCT编码处理。
对于P图像或B图像,可以对每个宏块进行内编码处理。换句话说,利用内编码处理可以对该图像进行有效的压缩。因此,在这种情况下,进行内编码处理。
图1是传统MPEG2编码器的结构的例子框图。参照图1,把分量数字视频信号提供给输入端101。分量数字视频信号由亮度信号Y和色差信号Cb和Cr组成。把输入端101的数字视频信号通过移动矢量检测电路103提供给帧存储器102。帧存储器102临时存储该数字视频信号。帧存储器102的存储容量至少足以存储当前图像、前一参照图像和后一参照图像这三帧图像。
移动矢量检测电路103利用帧存储器102中存储的数据获得参照图像与当前图像之间的移动矢量。为每个宏块获得移动矢量MV。每个宏块由例如(16×16)象素组成。把获得的移动矢量MV提供给可变长度码编码电路108和移动补偿电路115。移动矢量检测电路103把偏差(residual)的信息e提供给检测设置电路104。该偏差信息e是借助于移动矢量检测电路103与移动矢量MV一起获得的。
把帧存储器102的输出信号通过移动矢量检测电路103提供给开关电路105的端子105A。此外,把帧存储器102的输出信号提供给减法电路106和减法电电路107的输出信号提供给开关电路105的端子105C。
开关电路105对应于从模式设置电路104接收到的模式设置信号改变编码模式。换句话说,在帧内编码模式时,开关电路105选择端子105A。在前向预测编码模式时,开关电路105选择端子105B。在双向预测编码模式时,开关电路105选择端子105C。
当发送I图像时,进行帧内预测编码处理。此时,开关电路105选择端子105A。帧存储器102输出当前帧图像数据。把当前帧图像数据通过开关电路105提供给DCT电路106。
例如,DCT电路106把时间域的每个(8×8)像素块的视频信号转换成频率域的频谱数据。对频谱数据进行锯齿扫描,从低频分量向高频分量读取(即从DC分量开始)。把DCT电路106的输出信号提供给量化电路107。
相应于从发送缓冲器109接收的输出比特率的信息对量化电路107设置量化比例。量化电路107相应于量化比例对从DCT电路106接收到的频谱数据进行量化。因此,可以使输出比特流的比特率保持恒定。
把量化电路107的输出信号提供给可变长度码编码电路108和反量化电路110。可变长度编码电路108对(从量化电路107接收到的)频谱数据、移动矢量、量化尺度和预测模式以可变长度码进行编码。
可变长度码编码电路108输出已编码的比特流。把已编码的比特流暂时存储到发送缓冲器109中。对应于所需要的比特率,从发送缓冲器109中读取数据流。
如上所述,把量化电路107的输出信号提供给反量化电路110。把反量化电路110的输出信号提供给IDCT电路112。在I图像的情况下,利用同一帧的像素进行DCT处理。因此,反量化电路110和IDCT电路112形成原始图像。把一幅图像的数字视频数据通过加法电路113提供给图像帧存储器114。把存储在存储器114内的数据用作下一P图像或B图像的参照帧数据。
当发送P图像时,用参照帧进行前向预测编码处理。此时,开关电路105选择端子105B。帧存储器102输出当前帧的数字视频信号。把帧存储器102的输出信号提供给减法电路108。
帧存储器114存储参照帧的数据。移动补偿电路115补偿该参照帧数据的移动,并把得到的数据提供给减法电路106。减法电路106获得当前帧数据与已经过移动补偿的参照帧数据之间的差值。把该差值数据通过开关电路105提供给DCT电路106。
DCT电路106对差值数据进行DCT处理。即,DCT电路106把差值数据变换成频谱数据。把DCT电路106的输出信号提供给量化电路107。量化电路107对从DCT电路106接收到的频谱数据进行量化。
把量化电路107的输出信号提供给可变长度码编码电路108和反量化电路110。可变长度码编码电路108对(从量化电路107接收到的)频谱数据、移动矢量、量化尺度和预测模式用可变长度码进行编码。
可变长度码编码电路108输出已编码的比特流。已编码的比特流暂时存储在发送缓冲器109中。对应于所需要的比特率,从传送缓冲器109中读取数据流。从输出端111获得该数据流。
把量化电路107的输出信号提供给反量化电路110。把反量化电路110的输出信号提供给IDCT电路112。在P图像的情况下,对参照帧的数据与当前图像的数据之间的差值进行DCT处理。因此,量化电路110和IDCT电路112获得参照帧数据与当前图像数据之间的差值。把该差值数据提供给加法电路113。
帧存储器114把参照图像数据通过移动补偿电路115提供给加法电路113。加法电路113把差值数据加到参照图像数据上。把加法电路113的输出信号作为下一参照帧的数据存储到帧存储器114中。
当发送B图像时,用前一参照帧和后一参照帧,进行双向预测编码处理。在这种情况下,开关电路105选择端子105C。帧存储器102输出当前帧的数字视频信号。把帧存储器102的输出信号提供给减法电路107。
帧存储器114存储前一参照帧的数据和后一参照帧的数据。移动补偿电路115对两个参照帧的数据进行移动补偿。把移动补偿电路115的输出信号提供给减法电路107。减法电路107获得当前帧的数据、前一参照帧的数据与已经过移动补偿的后一参照帧的数据之间的差值。把该差值数据通过开关电路105提供给DCT电路106。
DCT电路106对该差值数据进行DCT处理。换句话说,DCT电路106把该差值数据变换成频谱数据。把DCT电路106的输出信号提供给量化电路107。量化电路107对从DCT电路106接收到的频谱数据进行量化。
把量化电路107的输出信号提供给可变长度码编码电路和反量化电路110。可变长度码编码电路108对(从量化电路107接收到的)频谱数据、移动矢量、量化比例和预测模式用可变长度码进行编码。
可变长度码编码电路108输出已编码的比特流。比特流暂时存储在发送缓冲器109中。发送缓冲器109读出对应于所需要的比特率的数据流。从输出端111获得该数据流。
近年来,由于CPU(中央处理单元)的处理速度变得很快,大存储容量的存储器也变得便宜,所以可以用软件来进行上述的MPEG2编码。
然而,在MPEG2编码处理时,需要计算移动矢量的处理。由块匹配过程来获得移动矢量。换句话说,从参照帧中取得与从要处理的当前帧分割成的块同样大小和同样原点的块。当在预定的搜索区域内移动参照帧的块时,获得参照帧的块的像素与当前帧的相关块的像素之间的差值的绝对值之和,作为偏差。获得偏差最小的参照帧的块。由于块匹配处理需要许多计算步骤,所以用软件难以进行MPEG2编码处理。
换句话说,当获得如图2所示的当前帧401的块CBLK的移动矢量时,在对应于块CBLK的参照帧402的块RBLK周边上定义搜索区域SA,作为原点。从搜索区域SA取出参照帧的块RBLK。获得参照块RBLK的(16×16)像素与当前块CBLK的(16×16)像素之间的差值。获得这些差值的绝对值之和作为偏差。在预定搜索区域SA内移动参照帧402的声RBLK。在搜索区域SA的块RBLK的每个位置上,获得块RBLK的像素与当前帧401的块CBLK的像素之间的差值。获得这些差值的绝对值的和,作为偏差。比较获得的和。把偏差最小的块当作匹配块。利用该匹配块获得移动矢量。
为了利用块匹配过程检测移动矢量,当每个块由(16×16)像素组成时,为了获得像素的差值,需要进行16×16=256次减法运算。为了获得这些差值的绝对值的和,需要进行256次加法运算。
当借助于在预定搜索区域内以一个像素步卡移动参照块来检测移动矢量时,应当获得偏差的次数对应于搜索区域中的像素数。因此,当在预定搜索区域中以一个像素步卡移动一个块来获得偏差,并用具有最小偏差的块的位置检测移动矢量时,计算步骤量变得极其巨大。因此,难以用软件进行MPEG2编码。
为了高速搜索移动矢量,可以考虑两种方案。作为第一种方案,每当进行块匹配处理时,减少计算步骤量。作为第二种方案,减少搜索区域中块匹配处理的次数。
作为第一种方案的一个例子,当计算参照帧的块的像素与当前帧的相关块的像素之间的差值的绝对值的和时,把该和与预定阈值进行比较。当该和大于预定阈值时,终止处理。
由于移动矢量是通过获得参照帧的块的像素与当前帧的相关块的像素之间的差值的绝对值的和的最小值来获得的,因此,当该和超过预定阈值时,该和不会成为最小值。因此,继续进行该处理是毫无意义的。因而,当该和大于预定阈值时,就中断该处理。结果,可以减少计算步数,高速检测移动矢量。
然而,在这种情况下,难以指定这样一个阈值。当该阈值太小时,在所有点上都将中断该处理。因此,不能正确检测到移动矢量。相反,当该阈值太大时,由于不中断处理,所以没有改善处理效率。
为了减少块匹配处理的计算步数,有一种变稀参照帧的像素和当前帧的像素的方法是格子化(checkerwise)。在这种情况下,计算这些差值的绝对值的和的计算步数可以减半。
然而,当把这些块变稀成格子时,由于像素数据的连续性丢失,所以不能使用MMX指令。由于MMX指令可以使多个连续数据片在同一时刻能够处理,所以近年来的个人计算机都装备有能处理MMX功能的CPU。由于块匹配处理获得了像素之间差值的绝对值之和,所以用MMX指令可以高速地进行块匹配处理。然而,当把块的像素变稀成格子时,由于丢失了像素数据的连续性,所以不能使用MMX指令。因此,即使块的像素变稀成格子,从而减少块匹配处理的次数,也不能显著地缩短处理时间。对于传统的对移动图像的图像数据进行编码的移动图像编码装置,对每个(8×8)像素的块可以进行移动补偿帧间预测处理和DCT(离散余弦变换)组合的混合编码处理。
移动图像编码装置检测相邻帧间的移动矢量,用检测到的移动矢量移动补偿移动图像,以减少编码数据量。
传统移动图像编码装置以各种方式检测图像的移动。当检测到图像移动时,有时比较相邻帧相关位置上的宏块。当比较宏块时,图像的移动方向是未知的。因此,用亮度值的较小差值对宏块搜索相邻帧的相关位置周围的预定区域。
当拍摄移动图像的摄像机固定在一预定位置上,而目标正在移动时,目标的移动方向在整个图像的每个位置上都是变化的。因此,搜索起始点周围的宏块。当目标的移动较大时,它可能偏离搜索区域。在这种情况下,进行帧内编码处理而不用帧间编码处理。
在传统的移动图像编码装置中,已提出了一种分层搜索方法,来减少检测图像移动的计算步数。在这种方法中,检测图像的移动,用多个宏块来检测一个移动矢量。为了获得每个宏块的移动矢量,使用多个宏块的移动矢量。
然而,在这种移动图像编码装置中,在预定区域内搜索宏块,以检测差值较小的宏块。因此,当处理一个移动较大的目标时,必须加大搜索区域。因此,检测图像移动所必需的处理时间指数增长。
在这种移动图像编码装置中,当目标的移动较大时,(对同一帧的宏块)进行帧内编码处理,而不(对多个帧的宏块)进行帧间编码处理。在这种情况下,当拍摄的图像的移动超出预定搜索区域时,如果对所有宏块进行帧内编码处理,则就增加了计算步数。因此,装置的负荷变大。这种状况发生在如果整个图像移动超出了搜索区域而目标是拍摄全景的情况下。
在获得多个宏块的移动矢量的移动图像编码装置中,当图像移动幅度较大而超出屏幕时,不能检测到移动矢量。因此,不能检测到多个宏块的移动矢量。
图3示出了一种传统的移动图像编码装置的结构的例子,它用移动补偿帧间预测处理与DCT(离散余弦变换)处理组合的混合编码处理对移动图像的图像数据进行编码。
在图3中,把输入MB(宏块)信号S11提供给端子501。把移动矢量信号MV作为宏块MB一个接一个地提供给端子502。输入MB信号S511和移动矢量信号MV提供给移动补偿电路503。
移动补偿电路503有一个内部图像存储器。从对应于移动矢量信号MV的图像存储器中一个接一个地读取预测图像信号(下文称作预测MB信号),作为宏块MB。移动补偿电路503输出信号S512,该信号就是从移动矢量信号MV获得的预测MB信号。
计算装置504一个一个地把加信号的输入MB信号S511与作为减信号的宏块MB的信号S512相加。因此,计算装置504计算得到输入MB信号与信号S512之间的差值,输出该差值作为预测偏差MB信号S513。
把该预测偏差MB信号S513提供给DCT电路505。DCT电路505对预测偏差MB信号S513的每个(8×8)像素的块进行两维DCT处理,并输出DCT系数。把DCT系数提供给量化电路506。
量化电路506量化对应于从端子507接收到的量化比例mQ的DCT系数、从移动补偿电路503接收到的预测MB信号的绝对值之差以及绝对值和平均值之差,并输出偏差信号,作为量化信号。
把从量化电路506接收到的量化信号和对与其对应的移动矢量MV提供给可变长度码编码(VLC)电路508。可变长度码编码电路508用对应于MPEG语法的可变长度码对量化信号和移动矢量MV进行编码。
把可变长度码编码电路508的输出信号提供给缓冲存储器509。缓冲存储器509平滑短时间内产生的从可变长度码编码电路508接收到的数据的比特数的波动,并以所要的比特率输出编码比特流。端子501输出从缓冲存储器509接收到的编码比特流。
把从量化电路506接收到的量化信号和量化比例提供给反量化电路511。反量化电路511对应于量化比例对量化信号进行反量化。把反量化电路511的输出信号提供给反DCT电路512。反DCT电路512对从反量化电路511接收到的信号进行反DCT处理,把得到的信号输出给计算装置513,作为预测偏差MB信号S515。
计算装置513也接收提供给计算装置504的预测MB信号S512。计算装置513把预测偏差MB信号S515与预测MB信号S512相加,输出局部编码图像信号。该图像信号与接收方(解码方)的输出信号相同。
传统移动图像编码装置对从端子501接收到的所有图像都进行DCT处理和量化处理。这种移动图像编码装置在对图像数据进行DCT处理和量化处理以及完成DCT系数的所有计算步骤之后确定要编码的图像的每个宏块的DCT系数是否出现。
然而,由于这种移动图像编码装置即使它们的DCT系数最终变为“0”,也要对所有宏块进行计算步骤,所以所有不必要的计算步骤也进行了。
此外,由于传统移动图像编码装置仅在进行了所有计算步骤之后确定宏块的所有DCT系数是否为“0”,所以必须进行所有的计算步骤。
本发明就是根据上述的观点作出的。
本发明的第一目的是为了减少检测移动矢量的块匹配处理的计算步数,以高速度检测它。
本发明的第二目的是提供一种移动矢量计算方法和其上记录有其程序的记录媒体,该移动矢量计算方法可以使预定搜索区域内的块匹配处理的次数减少,以提高处理速率,并有效地使用MMX指令。
本发明的第三目的是提供一种移动检测装置和移动检测方法,它可以检测在整个屏幕上大幅度移动的图像的移动矢量。
本发明的第四目的是提供一种图像编码装置和图像编码方法,它可以缩短DCT系数最终为“0”的图像的编码处理时间。
本发明的第一个方面是移动矢量计算方法,包含下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图象的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;(d)正交变换参照图像块的像素数据和当前图像块的像素数据;以及(e)获得参照图像块的正交变换数据与当前图像的每个块的正交变换数据之间的偏差。
本发明的第二方面是一种其上记录有移动矢量计算程序的记录媒体,移动矢量计算程序使具有该记录媒体的系统进行下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图象的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;(d)正交变换参照图像块的像素数据和当前图像块的像素数据;以及(e)获得参照图像块的正交变换数据与当前图像的每个块的正交变换数据之间的偏差。
本发明的第三方面是一种移动矢量计算方法,包含下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像的块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;(d)在计算参照图像块的像素与当前图像块的像素之间的偏差时,把获得的偏差与预定阈值进行比较;(e)当该偏差大于预定阈值时,停止计算移动矢量;以及(f)对应于图像特征设置预定阈值的初始值。
本发明的第四方面是一种其上记录有移动矢量计算程序的记录媒体,该移动矢量计算程序使具有该记录媒体的系统进行下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图象的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;(d)在计算参照图像块的像素与当前图像块的像素之间的偏差时,把获得的偏差与预定阈值进行比较;(e)当该偏差大于预定阈值时,停止计算移动矢量;以及(f)对应于图像特征设置预定阈值的初始值。
本发明的第五方面是一种移动检测装置,包含:取出装置,从图像中取出多个宏块;第一移动检测装置,检测所述取出装置取出的多个宏块的每个块的移动矢量;移动计算装置,用所述第一活动检测装置检测到的各宏块的移动矢量计算整个图像的移动矢量;以及第二移动检测装置,用所述活动计算装置计算得到的移动矢量计算每个宏块的移动矢量。
本发明的第六方面是一种活动检测方法,包含下列步骤:(a)从图像中取出多个宏块;(b)检测取出的多个宏块的每个块的移动矢量;(c)用检测到的各宏块的移动矢量计算整个图像的移动矢量;以及(d)用计算得到的移动矢量计算每个宏块的移动矢量。
本发明的第七方面是一种图像编码装置,包含:移动检测装置,检测输入图像数据的预定像素块的移动矢量,产生移动偏差信息;判断装置,把从所述移动检测装置接收到的移动偏差信息与一预定值进行比较,产生判断结果;图像数据处理装置,对图像数据进行预定的处理,该预定处理是编码处理所需要的;编码装置,对图像数据进行编码;以及控制装置,对应于所述判断装置的判断结果,跳过所述图像数据处理装置进行的预定处理,使所述编码装置进行所述编码处理。
本发明的第八方面是一种图像编码方法,包含下列步骤:(a)检测输入图像数据的预定像素块的移动矢量,产生移动偏差信息;(b)把移动偏差信息与一预定值进行比较,产生判断结果;(c)对图像数据进行预定的处理,该预定处理是编码处理所需要的;以及(d)对应于确定结果,跳过预定处理,使对图像数据进行编码处理。
本发明的第九方面是一种移动矢量计算方法,包含下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动该参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;(d)同时取出当前图像的N个像素和参照图像的N个像素,其中N为整数;(e)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到存储器中;以及(f)该从存储器中读出当前图像块的像素和参照图像块的像素,作为连续数据,以获得偏差。
本发明的第十方面是一种其上记录了移动矢量计算程序的记录媒体,该移动矢量计算方法使具有该记录媒体的系统进行下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图象的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;(d)同时取出当前图像的N个像素和参照图像的N个像素,其中N为整数;(e)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到存储器中;以及(f)从存储器中读出当前图像块的像素和参照图像块的像素,作为连续数据,以获得偏差。
本发明的第十一方面是一种移动矢量计算方法,包含下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图象的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算粗略移动矢量;(d)当在步骤(c)获深的粗略移动矢量的附近中移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(e)根据参照图像检测偏差最小的块,以检测精细移动矢量;(f)把当前图像的像素与参照图像的像素存储到第一存储器中;(g)同时取出当前图像的N个像素和参照图像的N个像素,其中N为整数;以及(h)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到第二存储器中,其中步骤(c)是利用存储在第二存储器中的作为连续数据的当前图像的N个像素和参照图像的N个像素进行的,步骤(e)是利用存储在第一存储器中的当前图像的像素和参照图像的像素进行的。
本发明的第十二方面是一种其上记录有移动矢量计算程序的记录媒体,该移动矢量计算程序使具有该记录媒体的系统进行下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算粗略移动矢量;(d)当在步骤(c)获得的粗略移动矢量的附近中移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(e)根据参照图像检测偏差最小的块,以检测精细移动矢量;(f)把当前图像的像素与参照图像的像素存储到第一存储器中;(g)同时取出当前图像的N个像素和参照图像的N个像素,其中N为整数;以及(h)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到第二存储器中,其中步骤(c)是利用存储在第二存储器中的作为连续数据的当前图像的N个像素和参照图像的N个像素进行的,步骤(e)是利用存储在第一存储器中的当前图像的像素和参照图像的像素进行的。
本发明的第十三方面是一种移动矢量计算方法,包含下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图象的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;以及(d)把参照图像块的外形像素与当前图像块的外形像素比较,获得它们之间的偏差。
本发明的第十四方面是一种其上记录有移动矢量计算程序的记录媒体,该移动矢量计算程序使具有该记录媒体的系统进行下列步骤:(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;(c)从参照图像中检测偏差最小的块,以计算移动矢量;以及(d)把参照图像块的外形像素与当前图像块的外形像素比较,获得它们之间的偏差。
本发明的这些和其它目的、特征和优点通过下面如附图所示的最佳实施例的详细描述将变得更明显。
图1是传统MPEG2编码器的结构框图;
图2是解释块匹配处理的示意图;
图3是传统移动图像编码装置的结构示意图;
图4是根据本发明数据处理装置的结构的例子框图;
图5是解释MPEG2编码处理的流程图;
图6是解释根据本发明在移动矢量计算过程中当前帧的块的处理的示意图;
图7是解释根据本发明在移动矢量计算过程中当前帧的块的处理的示意图;
图8是解释根据本发明在移动矢量计算过程中当前帧的块的处理的示意图;
图9是解释锯齿扫描处理的示意图;
图10是解释根据本发明在移动矢量计算过程中参照帧的块的处理的示意图;
图11是解释根据本发明在移动矢量计算过程中参照帧的块的处理的示意图;
图12是解释根据本发明在移动矢量计算过程中参照帧的块的处理的示意图;
图13确定是进行帧内编码处理还是帧间编码处理的函数曲线图;
图14确定是进行帧内编码处理还是帧间编码处理的函数曲线图;
图15是解释根据本发明的移动矢量计算处理的流程图;
图16是解释根据本发明的移动矢量计算处理的流程图;
图17是解释格子化变稀处理的示意图;
图18A、18B和18C是解释格子化数据作为连续数据的布置的示意图;
图19A和19B是解释根据本发明的MPEG2编码器的编码处理的示意图;
图20是解释根据本发明的MPEG2编码器的编码处理的存储器结构的示意图;
图21是解释根据本发明的MPEG2编码器的编码处理的时序图;
图22是解释根据本发明的MPEG2编码器的移动矢量计算处理的流程图;
图23解释根据本发明的MPEG2编码器的移动矢量计算处理的流程图;
图24是解释根据本发明的MPEG2编码器的移动矢量计算处理的流程图;
图25是解释本发明一个实施例的示意图;
图26是解释本发明一个实施例的流程图;
图27是根据本发明图像编码装置的结构例子的框图;
图28是解释图像编码装置的全程矢量检测部分中所用的宏块提取处理的示意图;
图29是解释把一幅图像分割成多个区域,并获得全程矢量的处理的示意图,该处理通过图像编码装置的全程矢量检测部分来进行;
图30是解释图像编码装置的移动检测处理的流程图;
图31是根据本发明图像编码装置的结构框图;
图32是解释根据本发明的图像编码装置的编码处理的流程图。
下面参照附图描述本发明的实施例。图4是一个示意图,示出按照本发明的第一个实施例数据处理装置的结构。
参照图4,标号1是一个CPU(中央处理单元)。标号2是ROM(只读存储器)。标号3是RAM(随机存储器)。该CPU1、ROM2和RAM3连到处理器总线4。
CPU1可以是如具有MMX功能的处理器。MMX功能允许高速完成运动图形的重演过程,图形的编辑过程,声音合成过程等等。借助于使用SIMD(SingleInsturction Multiple Data-单指令多数据)技术的MMX指令,可以在同一时刻对连续的数据完成同样的过程。
ROM2储存自举程序。RAM3是作为工作区的主要存储器。RAM的推荐容量是例如64MB或更多。
CPU1连到桥接线路5。该桥接线路5连到处理器总线4。该桥接线路5连到PCI(外围组件互连)总线6。桥接线路5连接CPU1,处理器总线4和PCI总线6。
PCI总线6连到一个IDE(Integrated Device Electronics-综合设备电子)控制器7,一个SCSI(Small Compnter System Interface-小型计算机系统接口)控制器8,一个圆形加速器9和一个IEEE(电子电气工程协会)1394控制器10。
IDE控制器7连到如硬盘或光盘(CD)驱动器那样的存储设备11。SCSI控制器8连到如硬盘或光盘驱动器那样的存储设备12。SCSI控制器也连到如图象扫描仪那样的外围单元和一个存储设备。图形加速器连到显示器13。IEEE1394控制器10连到如数字VCR(Video Cassette Recorder-视频盒式记录器)那样的数字声频视频单元。
PCI总线6通过桥接线路14连到ISA(Industrial Standard Architecture-工业标准构架)总线15。桥接线路14连到PCI总线6和ISA总线15。ISA总线15连到一个输入设备控制器16,一个软盘控制器17,一个并门控制器18和一个RS232C控制器19。
输入设备控制器18连到如键盘和鼠标那样的输入设备20。软盘控制器17连到软盘驱动器21。打印机或类似设备能连接到并门控制器18。调制解调器或类似设备所连接到RS232C控制器19。
在初始状态,起动存储在ROM2中的自举程序以完成初始设置。然后访问存储设备11或12。读出存在存储设备11或12中的操作系统。操作系统驻留在作为主存储器的RAM3。随后起动操作系统。在操作系统的控制下执行各种处理过程。
在该例中使用PCI总线和ISA总线。然而,按照本发明能使用USB(UniversalSerial Bus-通用串行总线)。键盘、鼠标或类似设备所接到USB上。
当图4所示的数据处理装置完成MPEG2编码过程时,执行完成MPEG2编码过程的应用程序。该应用程序作为执行程序储存在如IDE硬盘的存储设备11或如SCSI硬盘的存储设备12。当执行该应用程序时,它被读入到RAM3,继而由CPU执行。
该完成MPEG2编码过程的应用程序可以预装在如IDE硬盘的存储设备11或如SCSI硬盘的存储设备12。另外,CD-ROM(光盘)或软盘可按可执行格式或压缩格式提供用于完成MPEG2编码过程的应用程序。用户可以将伴存在CD-ROM或软盘上的程序安装到如IDE硬盘的存储设备11或如SCSI硬盘的存储设备12。作为另一种方法,该应用程序可以通过通信线下载。
当执行完成MPEG2编码过程的应用程序时,按预测方式对数字视频数据完成运动向量计算过程,DCT计算过程,量化过程和可变长度码编码过程。该数字视频数据按MPEG2方式压缩。在这一方面,RAM3被用作工作区域。借助于CPU1的功能完成对那些过程的计算操作。数字视频数据从外部数字VCR或连接到IEEE1394控制器10的类似设备输入。输出数据记录在硬盘驱动器或连接到SCSI控制器8或IDE控制器7的类似设备中。
图5是一个流程图,示出该程序的MPEG2编码过程。
如图5所示,输入多帧的数字视频数据。该数字视频数据被缓存至RAM3中(步骤S1)。借助一个块匹配过程计算运动向量(步骤S2)。在块匹配处理中可以使用轮廓(Contour)的块像素。
判断该预测方式是否为I图像,P图像或B图像(步骤S3)。若在步骤S3中判断,预测模式是I图像,对同一帧的每个(8×8)像素的块完成DCT过程(步骤S4)。所获得的系数数据被量化(步骤S5)且然后用可变码编码(步骤S6)。该结果数据作为参考图像数据存入RAM3(步骤S7)。
若在步骤S3中判断,预测模式是P图像,从RAM3中读出提前(forward)参照图像的数据(步骤S8)。该参照图像是对应于在步骤S2计算的运动向量的运动补偿(motion-compensated)(步骤S9)。因此,得到当前图形的数据与具有运动补偿的参照图像的数据之间的差(步骤S10)。获得的数据量化(步骤S11)且用可变长码编码(步骤S12)。结果数据作为参照图像数据存入RAM3(步骤S13)。
若在步骤S3中判断,预测模式是B图像,从RAM3中读出双向参照图像数据(步骤S14)。相应于在步骤S2中计算的运动向量,参照图像是运动补偿的(步骤S15)。得到当前图形的数据与具有运动补偿的参照图像的数据之间的差。对于当前图形的数据与参照图像的数据之间的差完成DCT过程(步骤S16)。获得的数据被量化(步骤S17)且用可变长码编码(步骤S18)。
在图5的步骤S2计算的运动向量以如下方式完成。从参照中提取出大小和原点与待处理的当前帧中分割出的块相同的块。当参照帧的块在一个预定的搜索区域运动时,参照帧的块的像素与当前帧的相应块的像素的差值的绝对值之和作为一个偏差值(Residual)而得到。获得具有最小偏差值的参照帧的块。该块匹配过程需要许多计算步骤。
因此,按本发明,块匹配过程是借助于块的正交转换数据和比较块来完成。作为正交转换过程的一个例子使用哈达玛特转换方法。
换言之,如图6所示,获得当前帧的(16×16)像素的块CBLK的数据电CD1、CD2,…,和CD256。如图7所示,当前帧的(16×16)像素的块CBLK被分割成4个块TBLK_C1到TBLK_C4,每个由(8×8)像素组成。如图8所示,4个块TBLK_C1到TBLK_C4被正交地转换到谱数据片TCD1-1到TCD-64,TCD2-1到TCD2-64,TCD3-1到TCD3-64,和TCD4-1到TCD-64。4块TBLK_C1到TBLK_C4的数据电借助地图9中所示的锯齿形扫描方法以较低空间频率数据片(Lower spatial frequency data pieces)的次序获得。
类似地如图10所示,获得一个参照帧的(16×16)像素的块RBLK的数据片RD1,RD2,…和RD245。如图11所示,该参照帧被分成4块TBLK1到TBLK_R4。如图12所示,4块被正交地转换成谱数据TRD1-1到TRD1-64,TRD2-1到TRD2-64,TRD3-1到TRD3-64和TRD4-1到TRD4-64。4块TBLK_R1到TBLK_R4的数据片借助于如图9所示的锯齿形扫描方法以较低空间频率数据片的次序获得。
当正交转换视频信号时,能量集中于低频数据。因此,高频数据几乎不存在。结果,当4块TBLK_C4到TBLK_C4的数据片借助于锯齿形扫描方法获得时,数据片的数目限于预定的值。在本例中,获得的数据片的值限于10。然而,按照本发明所获得的数据片的数据可以是其他值。类似地,当该参照帧的4块TBLK_R1到TBLK_R4的数据片借助于锯齿形扫描获得时,所获得的数据片的数目限于预定值。在本例中,所获得的数据片的数目限止。
换言之,例如从当前帧的4块TBLK_C1到TBLK_C4获得10个数据片(用图8中的黑点标出)。类似地,例如从该参照帧的4块TBLK_R1到TBLK_R4获得10个数据电(用图12中的黑点标出)。从该当前帧的4块TBLK_C1到TBLK_C4获得的数据片和从该参照帧的4块TBLK_R1到TBLK_R4获得的数据片之间的差的绝对值之和作为偏差值得到。
在块匹配过程中,因为一块的数据被正交地转换且数据片的数目限于预定值,计算步骤能大大地减少。因此计算速度得到改善。
换言之,如上所述1块分成4块。4块被正交的转换(例如用哈达马特转换方法)。每个正交转换块的数据片的数目限于10。在此条件下完成块匹配过程。在此情况下,因为数据片的数限于10且1块分成4块,在块匹配过程中为获得偏差值的计算步数是40。相反,当块匹配过程用(16×16)像素组成的块来完成,计算步数变成16×16=256。因此,当用正交转换的一块获得偏差值时,计算步数能大大减少。
在这种情况,需使用如哈达马特转换方法那样的正交转换方法。然而,哈达马特方法能用简单的如加、减那样的算术运算来完成。因此,计算步骤不会大大地增加。
在MPEG2编码过程中,当前帧的图形用作下一个参照帧的图形。因此,当前帧的一个图形的块的正交转换数据被储存时,已能用作为一个参照帧的数据。
当搜索运动向量时,搜索区相互交叠。在交叠区需要同样的正交转换数据。因此,对于一个参照帧的块,储存逐个像素移动的正交转换数据。在这种情况,当搜索区交叠时,该储存的数据能被使用。
在上述例子中,作为正交转换方法使用哈达马特转换方法。然而,按照本发明,能使用例如DCT转换方法或FFT(快速付里叶变换)。
在上述例子中,一个(16×16)像素的块分成4块,每个由(8×8)像素组成。该4个分割的块被正交地转换。另外,一个(16×16)像素的块可以直接被正交的鞑换。然而,当1块分成4块且4块被正交的转换时,转换算法变得简单。此外,能使用通用的正交转换线路和算法。
下面将描述本发明的第二个实施例。按照第二个实施例,在块匹配计算循环中间,当前帧的一个块的像素与参照帧的相应块的像素之际的差的绝对值之和与一个预定的阈值进行比较。当该和等于或大于预定的阈值,过程终止。因此,计算步数能减少。结果,运动向量能被快速地检测。
阈值是按照平均离散绝对值(mean discrete absolute values-MAD)之和以及在原点的偏差AD(0,0)指定的。于是,因为阈值是动态地指定的,该过程能有效地完成。
在P图像和B图像的情况,帧内(intra-frame)编码过程可以对每个宏块完成(在图5中,为简单起见在P图像和B图像情况,帧间(inter-frame)编码过程用一个参照帧来完成)。换言之,该帧间编码过程能比帧内编码过程更有效地压缩图形。然而,在包含许多DC组件或有大运动(即,当前帧的一块的像素和参照帧的相应块的像素之间差值的绝对值之和是大的)的图形的情况,帧内编码过程能比帧间编码过程更有效地压缩图形。当帧内编码过程被完成时,因为不需要运动向量计算过程,运动向量的不精确是可允许的。
若当前帧的一个块的像素与一个参照帧的相应块的像素的差的绝对值之和等于或大于该预定的阈值,该过程终止。然而,若对阈值指定一个大的值,过程在中间终止的概率变得很高。相反,若对阈值指定一个小的值,运动向量被检测到不精确的概率变得很高。然而,当帧内编码过程被完成,因为不需要运动向量计算过程,运动向量的不精确是可以允许的。因此,当在帧内编码过程中获得的偏差值用作阈值时,该过程的效率得到改善。
当P图像和B图像被编码时,帧内编码过程按照该MAD的值和被检测运动向量的偏差值AD(X,Y)来完成。
MAD是一个帧的像素的值与平均值之差的绝对值之和。MAD如下式获得
MAD表示图形的一个块的图案的复杂性。因此,当一个图案是简单时,MAD的值是小的。相反,当一个图案复杂时,MAD的值是大的。
因此,使用图13示出的函数可确定应该完成帧内编码过程还是帧间编码过程。在图13中,水平轴表示在一个运动向量位置上偏差AD(X,Y)的值而垂直轴表示MAD值。在图13中,当MAD值和运动向量位置上的偏差(X,Y)的值均在AR1区域中,完成帧内编码过程。当它们均在AR2区域中,完成帧间编码过程。当MAD值小时,因为当前块的图案简单,此函数表示完成帧内编码过程。当在运动向量位置上偏差AD(X,Y)的值小,此函数表示完成帧间编码过程而不是帧内编码过程。
在块匹配过程中间,当前帧的一块的像素与一个参照帧的相应块的像素的差的绝对值之和与预定的阈值进行比较。当其和等于或大于该阈值,过程终止。此外,对应于图13和图14中示出的,MAD值和在原点偏差AD(0,0)的值的函数确定完成帧内编码过程或帧间编码过程。另外,还确定是否完成运动补偿。作为确定的结果,指定阈值的初始值。因此,一个运动向量被有效地计算。图15是表示那样过程的流程图。
因为在块匹配过程中初始指定的阈值不总是小的,当开始检测到运动向量时,该阈值是用MAD的值和在原点的偏差AD(0,0)的值得到的。在对同一块的下一个块匹配过程中,使用初始阈值或得到的不论多小的和值。因此,该过程能有效地完成。
在图15中,开始设置一个参照帧的一个块的搜索区域(步骤S21)。然后得到MAD的值(步骤S22)。得到在原点的差AD(0,0)的值(步骤S23)。对应于MAD的值和在原点的偏差AD(0,0)的值,设置ADmin的初始值(步骤S24)。
ADmin的值表示已得到偏差的最小值。ADmin的初始值成为当前帧的一个块的像素与参照帧的相应块的像素之间差值的绝对值之和的阈值的初始值。根据按照图13和14的函数确定的完成帧内编码过程或完成帧间编码过程以及是否完成运动补偿过程,ADmin的值动态地设置。
在步骤S24设置ADmin的初值以后,选搜索区的右上位置用于第一个块匹配过程(步骤S25)。对于在初始位置的块,完成块匹配过程(步骤S26)。
在块匹配过程中间,当前帧的一个块的像素和参照帧的相应块的像素之间的差值的绝对值之和与预定的阈值相比较。当其和等于或大于该阈值时过程终止。在初始完成块匹配过程时,在步骤S24得到的ADmin的初始值用作为阈值。图16是表示该块匹配过程的流程图。
参照图16,在块匹配过程(步骤S26)中初始设置像素位置(步骤S41)。初始设置偏差AD的值(步骤S42)。用参照帧的像素和当前帧的像素之间的差的绝对值之和得到一个偏差(步骤S43)。在块区域过程的中间,判断参照帧的像素和当前帧的像素之间差值的绝对值之和是否超过ADmin的值(步骤S44)。当在S44步骤判断的结果是肯定的(即,该和超过ADmin的值)。块匹配过程终止。流程回到主程序。当在步骤S44判断的结果是否定的(即,该和不超ADmin的的值),则判断该块匹配过程是否已对所有的像素做过(步骤S45)。若在步骤S45判断的结果是否定的(即,该块匹配过程尚未对所有的像素做过),则流程返回到步骤S43。在步骤S43,继续计算参照帧的像素和当前帧的像素之间差的绝对值之和。若在步骤S45的判断结果是肯定(即,该块匹配过程已经对所有像素完成),该块匹配过程终止。然后,流程回到主程序。
如上所述,在块匹配过程中步骤S44判断AD的值是超过ADmin的值。若步骤44的判断结果是肯定(即,AD的值超过ADmin的值),流程回到主程序。因此,ADmin的值变成阈值。在块匹配过程的中间,当前帧的一个块的像素和参照帧的相应块的像素之间的差的绝对值之和与该阈值进行比较。当该和超过预定的阈值,块匹配过程终止。因此,计算步骤减少。结果,运动向量能高速地被检测。
此外,相应于MAD的值和原点的偏差AD(0,0)的值设置用作初始阈值的ADmin的值。若一个偏差值表示,完成帧内编码过程,因为不需要运动向量,该运动向量的不精确性是允许的。因为该阈值是运态变化的,当一个偏差超过一个值,在该值上不需要运动向量,则块匹配过程终止的概率变得很高。于是计算步数进一步减少。
在图15中,在块匹配过程中获得的AD的值与已经得到的最小值ADmin比较(步骤S27)。若在步骤S27判断的结果是肯定(即,AD的值小于最小值ADmin),当前的和AD用作最小值ADmin的(步骤S28)。AD的值作为运动向量MV被记录(步骤S29)。然后处理下一块(步骤S30)。然后判断是否最后的块已被处理(步骤S31)。若在步骤S31的判断结果是否定(即,最后的块尚未被处理),流程返回到步骤S26。在步骤S26对下一个块完成块匹配过程。
如图16所示,在块匹配过程中间,当前帧的一个块的像素和参照帧的相应块的像素之间差的绝对值之和与预定的阈值进行比较。若该和等于或大于该预定阈值,该过程终止。该ADmin的值用作阈值。
在步骤S27中,在块匹配过程中获得的AD的值与已经得到的ADmin的值进行比较。当在步骤S27判断的结果是肯定(即,该AD的值小于当明的最小值ADmin),则该AD值成为ADmin的值。因此,若得到的AD的值大于ADmin的值,下一个阈值与初始阈值相同。若AD的值小于ADmin的值,下一个阈值成为AD的最小值。因为在图16示出的块匹配过程中,若偏差超过ADmin的值,过程终止。
然后,从步骤S26到步骤S31之间的循环重复进行。获得当前帧的一个块的像素与参照帧的相应块的像素之间差值的绝对值之和的最小值。在步骤S31中判断,是否最后的块已被处理。若在步骤S31的判断结果是肯定(即,最后块已被处理),则该最小值ADmin成为运动向量MV。该结果被储存(步骤S32)。
在上述例子中,阈值的初始值是对应MAD的值和在原点的偏差AD(X,Y)诉值指定的。然后,按照本发明,可以对应MAD的值和在原点的偏差AD(X,Y)中的一个来指定阈值。
如图17所示,在本发明的第三实施例中,块匹配过程是借助于参照帧的一个块的格子化变稀像素和当前帧的相应块的像素完成的。
参照图17,参照帧的块31由(16×16)像素组成。从块31的格子化得到(8×16)的像素。类似地,当前帧32由(16×16)像素组成。从块32的格子化得到(8×16)的像素。
这里,格子化的当前帧和参考帧的像素作为连续的数据存入存储器(RAM3的一个预定区),使块匹配过程能用MMX指令有效地完成。
换言之,如图18A所示当前帧的像素和参照帧的像素被格子化。如图18B所示,变稀的格子化的像素重新安排成连续的数据。如图18C所示,变稀格子化的像素存入存储器的连续地址中。
当参照帧的像素与当前帧的像素作为连续数据存入存储器时,因为块匹配过程用MMX指令完成,该过程高速地完成。
当变稀格子化的当前帧的像素和参照帧的像素作为连续数据存入存储器时,因为同时搜索2个像素,很容易完成对数搜索过程,其中MMX指令也适用。
在对数搜索过程中,最小偏差的点在搜索区粗略地搜索。然后,围绕粗略搜索点再精细地搜索最小偏差的点。
当格子化的当前帧的像素和参照帧的像素作为连续数据存入存储器时,对数搜索过程以下面方式完成。
准备2个存储器,第一个存储器储存当前帧的所有像素和参照帧的所有像素,第二个存储器(或存储区)储存已格子化作为连续数据的当前帧的像素与参照帧的像素。使用第二存储器,在两个像素步卡粗略地搜索运动向量。在粗略检测运动向量以后,使用第一个存储在已得到的点像素附近用像素精细地搜索运动向量。这样能精确地检测运动向量。
如图19A所示,每帧的图形数据片,例如F1,F2,F3,F4,F5,F6,F7等等被输入。输入图形数据片地,F2,F3,F4,F5,F6,F7等等以I,B,B,P,B,B和P图像的次序编码成MPEG2的图形数据片P1,P2,P3,P4,P5,P6,P7等等。
如图20所示,在这样为了得到运动向量的编码过程中,工作区域RAM3具有存储区21A到21F和存储区22A到22C。存储区21A到21F伴存一个帧的所有像素。存储区22A到22C储存已格子化作为连续数据的一个帧的像素。
当图形数据片F1,F2,F3等如图21所示那样地输入时,每帧的图形数据电被存入存储区21A到21F。此外,从图形数据片逐个格子化得到像素。最终的像素安排到连续地址并作为图形数据片f1,f2,f3等存入存储区22A到22C。
换言之,在时间点T1,图形数据片F1存入存储区21A。在时间点T2,图形数据片F2存入存储区21B。在时间点T3,图形数据片F3存入存储区21C。在时间点T4,图形数据片F4存入存储区21D。
在时间点T4,从图形数据片F1逐个格子化得到像素。该图形数据片f1安排到连续地址中存入存储区22A。从图形数据片F4逐个格子化得到像素。该图形数据片安排到连续地址存入存储区22B。
在时间点T5,图形数据电存入存储区21E。从图形数据片F2逐个格子化得到像素。该图形数据片安排到连续地址中存入存储区22C。
在时间点T6,图形数据片F6存入存储区21F。从图形数据片F3逐个格子化得到像素。该数形数据片f3安排到连续地址中存入存储区22C。
在时间点T7,图形数据片F7存入存储区21A。从图形数据F7逐个格子化得到像素。该图形数据片f7安排到连续地址中存入存储区22A。
如图21所示,每帧的图形数据片被存入存储区21A到21F。此外,从图形数据片逐个格子化得到像素。图形数据片安排到连续地址中存入存储区22A到22C。
用储存在存储区21A到21F的图形数据片F1,F2,F3等和储存在存储区22A到22C的图形数据片f1,f2,f3等就得到了运动向量。一个运动向量以2个像素步卡在预合的搜索区中搜索。一个运动向量在搜索点附近逐个像素地进行搜索。换言之,运动向量借助于对数搜索过程获得。
因为图形数据片P1是I图像,它能从时间点T1到时间T3编码。
在时间点T4,作为P图像的图形数据片P4被编码。得到图形数据P4的运动向量。对此图形数据片P4,图形数据片F1被用作参照帧,图形数据片F4被用作当前帧。在此情况,在粗略搜索过程中(以2个像素步卡),使用作为参照帧的块存在存储区22A的图形数据片f1。作为当前帧的块使用储存在存储区22B的图形数据片F4。在精细搜索过程中(以1个像素步卡),作为参照帧的块使用存在存储区21A的图形数据片F1。作为当前帧的块,使用储存在存储区21D中的图形数据片F4。
在时间点T5,作为B图像的图形数据片P2被编码。得到图形数据片P2的运动向量。对图形数据片P2,作为参照帧使用图形数据片F1和F4。作为当前帧,使用图形数据片F2。在此情况,在粗略搜索过程中(以2个像素步卡),使用储存在存储区22A的图形数据片f1和储存在存储区22B的图形数据片f4。使为当前帧的块,使用储存在存储区22C的图形数据片f2。在精细搜索过程中(以1个像素步卡),作为参照帧的块使用储存在存储区21A的图形数据片F1和储存在存储区21D的图形数据片F4。作为当前帧的块,使用储存在存储区21B的图形数据片F2。
在时间点T6,作为B图像的图形数据片P3被编码。得到图P3的运动向量。对图形数据片P3,作为参照帧使用图形数据片F1和F4。作为当前帧,使用图形数据片F3。与此情况下,在粗略搜索过程中,(以2个像素步卡),作为参照帧的块使用储存在存储区22A的图形数据片f1和储存在存储区22B的图形数据片f4。作为当前帧的块,使用储存在存储区22C的图形数据片f3。在精细搜索过程中(以1个像素步卡),作为参照帧的块使用储存在存储区21A的图形数据片F1和储存在存储区21D的图形数据F4。作为当前帧的块,使用储存在存储区21C的图形数据片F3。
在时间点T7,编码作为P图像的图形数据片P7。得到图P7的运动向量。对于图形数据片P7,作为一个参照帧使用图形数据片F4。作为当前帧使用图形数据片F7。在此情况下,在粗略搜索过程中(以2个像素步卡),作为参照帧的块使用储存在存储区22B的图形数据片f4。作为当前帧的块,使用储存在存储区22A的图形数据片f7。在精细搜索过程中(以1个像素步卡)作为参照帧的块使用储存在存储区21D的图形数据区f4。作为当前帧的块,使用储存在存储区21A的图形数据片F7。
下面,类似地在时间点T8,得到作为B图像的图形数据片P5的运动向量。在时间点T9,得到作为B图像的图形数据片P6的运动向量。
图22是一个流程图,表示用于计算运动向量的对数搜索过程。在图22中储存输入图形数据。从参照帧与当前帧逐个格子化地抽出像素。变细格子化的像素作为连续的数据被排列到及储存(步骤S121)。
以后,判断是否所以图形的块已被处理(步骤S122)。
若在步骤S122的判断结果是否定(即,该图形的所有块尚未被处理),而该块在一个预定搜索区以2个像素步卡运动,搜索一个运动向量(步骤S123)。
在检测到一个运动向量以后,当该块在检测到的运动向量附近逐个像素地运动时,搜索到一个运动向量(步骤S124)。
检测到的结果被储存(步骤S125)。然后,处理下一个块(步骤S126)。然后,流程回到步骤S122。若在步骤S122的判断结果是否定(即所有块尚未被处理),相似的过程重复。于是,得到下一个块的运动向量。在得到图形的最后块的运动向量之后,因为在步骤S122的判断结果是肯定,处理完成。
图23是一个流程图,表示在图22中的步骤S123的粗略搜索过程(在2个像素步卡)。在精略搜索过程中(在2个像素步卡),当前帧的像素和参照帧的像素被格子化地抽出。被抽出的像素作为连续的数据存入存储器。
在图23中设置搜索区的起始点(步骤S131)。垂直搜索起始位置复位到上端(步骤S132)。在垂直方向判断是否检测到下端(步骤S133)。若在步骤S133的判断结果是否定(即,尚未检测到下端)则水平位置复位到左端(步骤S134)。
然后,判断是否检测到搜索区的右端(步骤S135)。若在步骤135的判断结果是否定(即,尚未检测到搜索区的右端),则对格子化(8×16)像素的块完成块匹配过程且得到一个偏差值(步骤136)。
在这里,判断该偏差AD的值是否小于已得到的最小值ADmin(步骤S137)。若在步骤S137的判断结果是肯定(即,该偏差AD的值小于最小值ADmin),则该偏差AD的值成为最小值ADmin。此外,该运动向量VT是当前位置(步骤S138)。然后,移动2个像素的水平位置(步骤S139)。当前帧的像素和参照帧的像素被格子化的抽出,且作为连续数据存入存储器。因此,当水平位置移动2个像素,在存储器中地址只移动1个位置。
若在步骤S137的判断结果是否定(即,该偏差AD的值不小于最小值ADmin),则流程进行步骤S139。在步骤S139,水平位置移动2个像素。然后流程返回到步骤S135。
在步骤S135判断是否检测到搜索区的右端。若在步骤S135的判断结果是否定(即,搜索区的右端尚未检测到),则类似的步骤重复。于是,当该块移动到右边,得到偏差。最小偏差作为最ADmin储存。
若在步骤S135的判断结果是肯定(即,已经检测到搜索区的右端),则该块垂直移动2个像素(步骤S140)。然后,流程回到步骤S133。完成相似的过程。
若在步骤S133的判断结果是肯定(即,已检测到搜索区的低端),则该结果作为运动向量MV被储存(步骤S141)。该运动向量MV成为精细搜索过程的一个参考点。
图24是一张流程图,表示在图22中步骤S24的精细搜索过程。在精细搜索过程中,使用储存当前帧的所有像素和参照帧的所有像素的存储器。
在图24中,起点被设置在图23中步骤S141获得的参考点的左上方(步骤S151)。垂直搜索起始位置复位到上端(步骤S152)。然后,判断是否已经检测到搜索区的下端(步骤S153)。若在步骤S153的判断结果是否定(即,尚未检测到下端),则水平位置复位到左端(步骤S154)。
然后,判断是否已检测到搜索区的右端(步骤S155)。若在步骤S155的判断结果是否定(即,尚未检测到搜索区的右端),则对一个(16×16)像素的块完成块匹配过程且得到一个偏差(步骤156)。
然后,判断该偏差AD的值是否小于已获得的最小值ADmin(步骤S157)。若步骤S157的判断结果是肯定(即,该偏差的值小于最小值ADmin),则偏差AD的值成为最小值ADmin(步骤S158)。该运动向量MV是当明位置。水平位置移动1个像素(步骤S159)。
若在步骤S157判断的结果是否定(即,偏差AD的值不小于最小值ADmin),则流程进到步骤S159。在步骤S159,水平位置移动1个像素。然后,流程回到步骤S155。
在步骤S155,判断是否已检测到搜索区的右端。若在步骤S155的判断结果是否定(即,尚未检测到搜索区的右端),类似的过程重复执行。于是,当该块从搜索区的左边运动到右边,得到偏差值。已获得的最小偏差作为最小值ADmin储存。
若在步骤S155判断的结果是肯定(即,已检测到搜索区的右端),该块在垂直方向移动1个像素(步骤要60)。然后,流程返回到S153,完成相似的过程。
若在步骤S153的判断结果是肯定(即,已检测到搜索区的下端),则得到运动向量VM,且过程完成。
在上述例子中,参照帧的像素和当前端的像素被格子化的抽出。但是,按照本发明,变稀的步骤与变稀的方法不限于上述例子中所述的那样。
在上述例子中,当完成对数搜索过程时,在粗略搜索过程中储存对每个样本变稀的像素的存储器中,地址对每个位置移动,以便在2个像素步卡搜索一个运动向量。另外,借助于在一个时刻移动2个位置的地址,能在一个时刻完成4个像素的搜索过程。类似地,借助于在一个时刻移动3个位置的地址,能在一个时刻完成6个像素的搜索过程。在上述例子中,对数搜索过程在一个时刻以2个像素步卡完成粗略搜索过程而以1个像素步卡完成精细搜索过程。另外,对数搜索过程能以多个阶段完成。
按照本发明,参照帧的像素和当前帧的像素被格子化变稀,来完成块匹配过程。在这里,当前帧的像素和参照帧的像素作为连续数据存入存储器中。因此,在完成快匹配过程时,因为能有效地使用MMX指令,过程能高速地完成。
此外,应准备储存当前帧的像素和参照帧的像素的第一存储器和储存格子化变稀的当前帧的像素和参照帧像素的第二存储器。使用第二存储器以2个像素步卡完成粗略搜索过程。在这种情况,因为已被变稀格子化的当前帧的像素和参照帧的像素作为连续数据储存在第二存储器中,当该参照帧的块在第二存储器中对每个位置移动时,以2个像素步卡搜索运动向量。在以2个像素步卡的粗略搜索过程中获得运动向量以后,使用第一存储器在粗略搜索过程中得到的点附近以1个像素步卡完成精细搜索过程。
因此,当已格子化的当前帧的像素和参照帧的像素作为连续数据储存,因为以2个像素步卡搜索运动向量,对数搜索过程能容易地完成,且适用MMX指令。
如图5的步骤S2,借助于块匹配过程完成运动向计算过程。在块匹配过程中,借助于块匹配过程获得运动向量。换言之,与从当前帧划分待处理的块有相同尺寸及相同原点的块从一个参照帧中抽出。当该参照帧的块在预定搜索区移动时,得到该参照帧的块的像素和当前帧的块的像素的差的绝对值之和,以此作为偏差。得到具有最小偏差的该参照帧的块。传统地,偏差是作为当前帧的块的像素和参照帧的像素的差的绝对值之和。但是,因为计算步骤巨大,运动向量的计算不能以高速完成。
因此,按照本发明的第四个实施例,借助于计算当前帧的块的外形的像素与参照帧的相应块的外形的像素的差的绝对值之和得到偏差。
换言之,在图25中,参照帧的一个块由(16×16)像素组成。类似地,当前帧的一个块由(16×16)像素组成。该参照帧的每个像素的值用P(Hr,Vr)标记。类似地当前帧的每个像素的值用P(Hc,Vc)标记。得到该参照帧的块的上外形像素P(Hr,Vr)到P(Hr+15,Vr)与当前帧的相应块的上外形像素P(Hc,Vc)到P(Hc+15,Vc)之差的绝对值之和作为偏差。得到该参照帧的块的右外形像素P(Hr,Vr+1)到P(Hr,Vr+14)与当前帧的相应块的外形像素P(Hc,Vc+1)到P(Hc,Vc+14)之差的绝对值之和作为偏差。计算该参照帧的块的右外形像素P(Hr+15,Vr+1)到P(Hr+15,Vr+14)与当前帧的相应块的右外形像素P(Hc+15,Vr+1)之差的绝对值之和作为偏差。得到该参照帧的块的下外形象P(Hr,Vr+15)到P(Hr+15,Vr+15)与当前帧的相应块的下外形像素P(Hc,Vc+15)到P(Hc+15,Vr+15)之差的绝对值之和作为外形。
图26是示出用于得到当前帧的块的轮廓像素和参照帧相关块的轮廓像素之间差值的绝对值的总和的处理,以便得到一个偏差。
参照图26,累积值AD的值初始化为“0”(步骤S221)。此后,对当前帧的像素的水平位置Hc和垂直位置Vc,以及参照帧像素的水平位置Hr和垂直位置Vr初始化(步骤S222)。偏移O初始化为“0”(步骤S223)。
得到参照帧的像素P(Hr+O,Vr)的值与当前帧的像素P(Hc+O,Vc)的值之间差值的绝对值,作为累积值AD(步骤S224)。此后,偏移O增加(S225)。此后,确定偏移O是否小于16(步骤S226)。当在步骤S226确定结果是Yes(即偏移O小于16)时,流程返回步骤S224。
在从步骤S224到步骤S226的循环中,得到参照帧的块的上轮廓像素P(Hr,Vr)到P(Hr+15,Vr)与当前帧相关块的上轮廓像素P(Hc,Vc)到P(Hc+15,Vc)之间的差值的绝对值的总和。
换句话说,由于偏移O在步骤S223初始化为“0”,故参照帧块的左上像素P(Hr,Vr)的值与当前帧相关块的左上像素P(Hc,Vc)的值之间的差值的绝对值,作为累积值AD。
此后,在步骤S225增加了偏移O。由此,得到参照帧的块的像素P(Hr+1,Vr)的值与当前帧相关的块的像素P(Hc+1,Vc)的值之间的差值的绝对值,并加到累积值AD。循环中的步骤重复,直到偏移O为“15”。然后,得到参照帧的块的上轮廓像素P(Hr,Vr)到P(Hr+15,Vr)的上轮廓像素和当前帧相关的块的上轮廓像素P(Hc,Vc)到P(Hc+15,Vc)之间的差值绝对值的总和。
由此,在从步骤S224到S226的循环中,得到当前帧的块的上轮廓像素与参照帧相关块的上轮廓像素之间差值绝对值的总和。此后在步骤S226确定偏移O是否是“16”。当在步骤S226确定的结果是No(即偏移O是“16”)时,由于已经检测到块的右端,故偏移O初始化为“1”。(在步骤S227)。
此后得到参照帧的块的像素P(Hr,Vr+O)的值与当前帧的相关块的像素P(Hc,Vc+O)的值之间的差值。得到参照帧块的像素P(Hr+15,Vr+O)的值与当前帧相关块的像素P(Hc+15,Vc+O)的值之间的差值。得到这些绝对值的总和,作为累积值AD(在步骤S228)。此后,偏移O增加(在步骤S229)。此后,确定偏移O是否小于“15”(步骤S230)。当在步骤S230确定的结果是Yes(即偏移O小于“15”)时,流程返回步骤S228。
在从步骤S228到S230的循环中,得到参照帧的块的左轮廓像素P(Hr,Vr+1)到P(Hr,Vr+14)与当前帧相关块的左轮廓像素P(Hc,Vc+1)到P(Hc,Vc+14)的左轮廓像素之间的差值绝对值的总和。另外,得到参照帧的块的右轮廓像素P(Hr+15,Vr+1)与当前帧相关块右轮廓像素P(Hc+15,Vc+1)到P(Hc+15,Vc+14)之间的差值绝对值的总和。
此后在步骤S230确定偏移O是否是“15”。当在步骤S230确定是No(即偏移O是“15”)时,由于已经检测到块的下端,故偏移O初始化为“0”(步骤S231)。
下面,得到参照帧的块的像素P(Hr+O,Vr+15)与当前帧相关块的像素P(Hc+O,Vc+15)之间的差值绝对值,作为累积值AD(在步骤S232)。此后,偏移O增加(在步骤S233)。此后确定偏移O是否小于“16”。当在步骤S234确定的结果是Yes(即偏移O小于“16”)时,流程返回步骤S232。
在从步骤S232到S234的循环中,得到参照帧的块的下轮廓像素P(Hr,Vr+15)到P(Hr+15,Vr+15)与当前帧相关块的下轮廓像素P(Hc,Vc+15)到P(Hc+15,Vc+15)之间的差值绝对值的总和。当在步骤S234确定的结果是No(即偏移O是“16”)时,由于已经检测到块右端,故过程结束。
在从步骤S224到S226的循环中,得到当前帧块的上轮廓像素与参照帧相关块的上轮廓像素之间的差值绝对值的总和。在从步骤S228到S230的循环中,得到当前帧的块左轮廓像素与参照帧相关块左轮廓像素之间差值绝对值的总和。另外,得到当前帧的块右轮廓像素与参照帧相关块右轮廓像素之间差值绝对值的总和。在从步骤S232到S234的循环中,得到当前帧的块下轮廓像素与参照帧相关块下轮廓像素之间的差值绝对值的总和。由此,得到当前帧的块四侧轮廓像素与参照帧相关块四侧轮廓像素之间差值绝对值的总和。
由此,当得到当前帧块的轮廓像素与参照帧相关块轮廓像素之间的差值绝对值的总和时,得到偏差的计算步骤的数量可以大大减小。结果,可以高速地执行块匹配处理。换句话说,当块的尺寸是(16×16)像素时,为了计算一个块的所有像素,需要256次减法。相比之下,为了计算轮廓像素,只需要60次减法。另外,由于不使轮廓像素变稀,可以以一个像素的精度得到移动矢量。
下面,将描述根据本发明的第五实施例的图像编码设备。
图27示出根据本发明的第五实施例的图像编码设备401的结构。参照图27,图像编码设备(由401标记)具有帧缓冲器202、移动检测部分203、偏差信息产生部分204、全程矢量检测部分205以及控制部分206。图像数据输入到帧缓冲器202。移动检测部分203检测储存在帧缓冲器202中的图像数据的移动分量。偏差信息产生部分204产生移动偏差信息AD。全程矢量检测部分205检测整个图片的移动矢量。控制部分206将用于编码处理的参数等输出到设备的各个部分。
帧缓冲器202从外部设备输入图像数据,并一帧一帧地存储图像数据。帧缓冲器202在控制部分206控制下,按预定的时序将图像数据输出到移动检测部分203、偏差信息产生部分204、全程矢量检测部分205和计算部分207。
全程矢量检测部分205取样图像数据(从帧缓冲器202接收到),作为多个宏偏差,并检测整个宏块的移动矢量。换句话说,由于全程矢量检测部分205得到所有宏块的移动矢量,全程矢量检测部分205得到整个图像的移动矢量(即全程矢量),并将检测到的全程矢量提供给移动检测部分203。
实际上,如图28所示,全程矢量检测部分205在一个图片的不同位置抽取多个宏块,并检测抽取的宏块的一个移动矢量。在这一点上,全程矢量检测部分205将每一个抽取的宏块的移动矢量提供给评价函数,以得到全程矢量。全程矢量检测部分205将一函数表示式用作评价函数,该表达式计算抽取的宏块的移动矢量的平均值,以得到全程矢量。
或者,全程矢量检测部分205可以检测多个相邻的宏块,以得到全程矢量。换句话说,全程矢量检测部分205可以得到,具有每一个(16×16)像素的宏块的或每一个例如(32×32)像素的小区域的全程矢量。
作为另一个方法,如图29所示,全程矢量检测部分205可以得到区域A、B和C的全程矢量,一个屏幕就被垂直地分为区域A、B和C。由此,当区域A是山的图片(它已经摄像为远距离图片),而区域C是花的图片(它已经被摄像为近距离图片),并且区域A和C区域已经摄全景,即使一个屏幕具有两个相互移动的图片,可以得到用于各个区域的全程矢量。每一个区域可以相互重叠。
移动检测部分203检测存储在帧缓冲器202中的图像数据的每一个宏块(由16×16像素构成)的移动矢量MV。移动检测部分203将参照帧的宏块与从帧缓冲器202读出的宏块模式匹配,并检测移动矢量MV。移动检测部分203将检测到的移动矢量MV提供给偏差信息产生部分204以及控制部分206。在这一点,移动检测部分203由从全程矢量检测部分205接收到的全程矢量产生移动矢量MV。换句话说,当移动检测部分203模式匹配在预定搜索区域中的每一个宏块时,移动检测部分203用全程矢量的偏移改变搜索区域中的每一个宏块,并得到移动矢量MV。移动检测部分203改变搜索区域相应于全程移动矢量的中心位置,以模式匹配每一个宏块。
偏差信息产生部分204从移动检测部分203接收到移动矢量MV。另外,偏差信息产生部分204从帧缓冲器202接收到图像数据的每一个宏块。使用移动矢量MV和图像数据,偏差信息产生部分204得到移动分量之间差值绝对值的总和,作为偏差信息AD,并将该偏差信息AD提供给控制部分206。
控制部分206用从移动检测部分203接收到的移动矢量MV,以及从偏差信息产生部分204接收到的移动偏差信息AD,为编码处理确定宏块的类型。控制部分206相应于例如图像类型,确定当前宏块是否是中间宏块(inter-macro block)或是内部宏块(intra-macro block)。中间宏块是由移动矢量MV进行移动补偿,并使用偏差编码的宏块。相比之下,内部宏块是单纯编码而无移动分量的宏块。
控制部分206产生控制信息,使开关217和218相应于确定的宏块类型运行。另外,控制部分206将从移动检测部分203接收到的移动矢量MV提供给移动位移补偿部分216。
图象编码设备201还具有计算部分207、DCT处理部分208、量化处理部分209、可变长度代码编码部分210和缓冲器211。计算部分207从帧缓冲器202接收图像信号。DCT处理部分208为图像数据完成DCT(离散余弦变换)处理。量化处理部分209对从DCT处理部分208接收到的DCT系数进行量化。可变长度代码编码部分210用可变长度代码压缩从量化处理部分209接收到的DCT系数。缓冲器211存储从可变长度代码编码部分210接收到的图像数据。
DCT处理部分208为从计算部分207接收到的图像数据的每一个(8×8)像素的宏块执行二维DCT处理。DT处理部分208将DCT系数提供给量化处理部分209。
量化处理部分209用相应于每一个宏块的量化比例对从DCT处理部分208接收到的DCT系数量化。量化处理部分209将量化的DCT系数提供给可变长度代码编码部分210和反量化处理部分212。
可变长度代码编码部分210从量化处理部分209接收到DCT系数,并从控制部分206接收到移动矢量MV。有了这样的信息,可变长度代码编码部分210执行编码处理。可变长度代码编码部分210用相应于MPEG语法的可变长度代码执行编码处理,并执行标题处理、代码产生处理等,以产生图像数据。可变长度代码编码部分210将编码的图像数据提供给缓冲器211。
缓冲器211存储从可变长度代码编码部分210接收到的图像数据,并在控制部分206的控制下,在预定时间以比特流输出图像数据。
另外,图像编码设备201还具有反量化处理部分212、反DCT处理部分213、计算单位214、缓冲器215和移动补偿部分216。反量化处理部分212对量化处理部分209接收到的DCT系数反量化。反的DCT处理部分213对从反量化处理部分212接收到的DCT系数反向执行DCT处理。计算单元214从反DCT处理部分213接收图像数据。缓冲器215存储图像数据。移动补偿部分216对从缓冲器215接收到的图像数据进行移动补偿。
反量化处理部分212对从量化处理部分209接收到的DCT系数反量化。反量化处理部分212用量化比例对从量化处理部分209接收到的数据反量化,并将得到的DCT系数提供给反DCT处理部分213。
反DCT处理部分213对从反量化处理部分212接收到的DCT系数反执行DCT处理,并将得到的DCT系数提供给计算单位214。计算单位214接收已经在反DCT处理部分213中处理过的图像数据。另外,计算单位214通过开关217接收图像数据(已经过移动补偿)。计算单位214将移动补偿部分的图像数据和从反的DCT处理部分213接收到的图像数据相加,并将最终数据提供给缓冲器215。
缓冲器215从计算单位214接收图像数据的每一个宏块,并存储图像数据。当移动补偿部分216移动补偿图象数据时,从缓冲器215读出预测的图像数据。
移动补偿部分216相应于移动矢量MV从缓冲器215读出预测图像数据的每一个宏块。
当图像编码设备201产生I(内部)图像时,处在帧缓冲器202中的图像数据的每一个宏块通过计算单位207,提供给DCT处理部分208和量化处理部分209。DCT处理部分208为图像数据的每一个宏块执行DCT处理。量化处理部分209对从DCT处理部分208接收到的图像数据量化。可变长度代码编码部分210用可变长度代码对从量化处理部分209接收到的图像数据编码,并通过缓冲器211,以比特流输出得到的数据。得到的已经由量化处理部分209和可变长度代码编码部分210处理过的信号通过反量化处理部分212和反DCT处理部分213复原成图像数据,并暂时存储到缓冲器215。
当图像编码设备201产生P(预测)图像时,移动检测部分203检测存储在帧缓冲器202中的图像数据的移动分量,以产生移动矢量MV。另外,偏差信息产生部分204产生偏差信息AD。移动矢量MV通过控制部分206提供给移动补偿部分216。移动补偿部分216对存储在缓冲器215内的图像数据移动补偿(当产生I图像时,图像数据存储在缓冲器215内)。这样,移动补偿部分216产生了预测数据。移动补偿216对每一个宏块进行移动补偿。开关217和218相应于从控制部分206接收到的开关控制信号关闭。计算单位207从存储在帧缓冲器202中的图像数据中减去从移动补偿216接收到的预测图像数据。DCT处理部分208和量化处理部分209执行上述处理。可变长度代码编码部分210对图像数据编码,并通过缓冲器211以比特流输出得到的数据。
当图像编码设备201产生B图像象(双向预测)时,移动补偿部分216对存储在缓冲器215的以前帧的图像数据以及下一帧的图像数据进行移动补偿,以产生预定图像数据。计算单位207从存储在帧缓冲器202中的图像数据减去预测图像数据。DCT处理部分208和量化处理部分209执行上述处理。可变长度代码编码部分210用可变长度代码对从计算单位207接收到的数据编码,并通过缓冲器211以比特流输出得到的数据。
图30是示出用于检测移动矢量MV的处理的流程图。该处理由图像编码设备201执行。
参照图30,在步骤S301,将一帧的图像数据输入到帧缓冲器202。在图30所示的处理中,在步骤S302到S304,检测全程矢量。在步骤S305,移动检测部分203产生每一个宏块的移动矢量MV。
在步骤S302,全程矢量检测部分205输入存储在帧缓冲器202中的每一个帧的图像数据,并从图像数据中抽取多个宏块,如图28所示。在步骤S302,如图29所示,一个屏幕另一分为多个区域,并可以从那里抽取多个宏块。
在步骤303,全程矢量检测部分205检测在步骤S302检测的每一个宏块的移动矢量。
在步骤S304,全程矢量检测部分205将每一个宏块的移动矢量应用到评价函数,以产生全程矢量。全程矢量检测部分205计算宏块的移动矢量的平均值客,并产生全程矢量。
在步骤S305,移动检测部分203接收每一个图像数据的宏块,用在步骤S304检测的全程矢量模式匹配每一个宏块,并检测每一个宏块的移动矢量。在这一点,移动检测部分203相应于全程矢量变化搜索区域的中心位置,并模式匹配每一个宏块。
在步骤S306,移动检测部分203相应于步骤S305得到的检测的结果,检测每一个宏块的移动矢量MV,并将每一个宏块的移动矢量VM提供给偏差信息产生部分204和控制部分206。
在图像编码设备201中,在移动检测部分203产生每一个宏块的移动矢量MV前,全程矢量检测部分205检测全程矢量,它表示整个图像的一个移动矢量。这样,移动检测部分203不需要检测广泛区域中每一个宏块的移动矢量MV。结果,用于检测移动矢量MV的处理可以通过较少的计算步数执行。换句话说,在图像编码设备201中,即使移动的图像摄全景,也不必使全程矢量检测部分205得到整个图像的全程矢量,以及检测广泛区域中每一个宏块的移动矢量。
另外,使用图像编码设备201,即使一个图像在整个屏幕上高速移动,每一个宏块的移动矢量被容易的检测。
另外,使用图像编码设备201,由于一个屏幕被分为多个区域,故全程矢量检测部分5计算每一个区域的全程矢量。由此,即使图像大幅度地在屏幕上移动,则移动矢量MV可以有效地被检测。
下面,将描述本发明的第六实施例。
图31是块图,示出根据本发明的第六实施例的图像编码设备的结构。
图31示出根据本发明的第六实施例的图像编码设备的结构。参照图31,图像编码设备(标记为301)具有帧缓冲器302、移动检测部分303、偏差信息产生部分304以及控制部分305。图像数据输入到帧缓冲器302。移动检测部分303检测存储在帧缓冲器302内的图像数据的移动分量。偏差信息产生部分304产生移动偏差信息AD。控制部分306将用于编码处理的参数等送到设备的各个部分。
帧缓冲器302输入来自外部设备的图像数据,并一帧一帧地存储图像数据。帧缓冲器302在控制部分305的控制下,在预定时间将图像数据输出到移动检测部分303、偏差信息产生部分304和计算部分307。
移动检测部分303检测存储在帧缓冲器302的图像数据的每一个宏块(由16×16像素构成)的移动矢量MV。移动检测部分303模式匹配参照帧的宏块和从帧缓冲器302读出的宏块,并检测移动矢量MV。移动检测部分303将检测到的移动矢量MV提供给偏差信息产生部分34和控制部分305。
偏差信息产生部分304从移动检测部分303接收移动矢量MV。另外,偏差信息产生部分304从帧缓冲器302接收图像数据的每一个宏块。有了移动矢量MV和图像数据,偏差信息产生部分304产生移动分量之间差值绝对值的总和,作为偏差信息AD,并将偏差信息AD提供给控制部分305和跳转控制部分310。
控制部分305用从移动检测部分303接收到的移动矢量MV和从偏差信息产生部分304接收到的移动偏差信息AD为编码处理确定宏块类型。控制部分305相应于例如图像类型,确定当前宏块是否是中间宏块或内部宏块。中间宏块是用移动矢量MV移动补偿,并并用偏差编码的宏块。相比之下,内部宏块是没有移动分量的单纯编码的宏块。
控制部分305产生控制信息,相应于确定的宏块类型,使开关317和318工作。另外,控制部分305将从移动检测部分303接收到的移动矢量MV提供给移动补偿部分316。
图像编码设备301还具有计算部分306、DCT处理部分307、量化处理部分308、可变长度代码编码部分309、上述的跳转控制部分310、和缓冲器311。计算部分306从帧缓冲器302接收图像信号。DCT处理部分307为图像数据执行DCT(离散余弦变换)处理。量化处理部分308对从DCT处理部分307接收到的DCT系数量化。可变长度代码编码部分309用可变长度代码压缩从量化处理部分308接收到的DCT系数。跳转控制部分310控制DCT处理部分307,量化处理部分308、可变长度代码编码部分309等等。缓冲器311存储已经编码的图像数据。
DCT处理部分307对从计算部分306接收到的图像数据的每一个(8×8)像素的宏块执行二维DCT处理。DCT处理部分307将DCT系数提供给量化处理部分308。
量化处理部分308用相应于每一个宏块变化的量化比例对从DCT处理部分307接收到的DCT系数量化。量化处理部分308将量化的DCT系数提供给可变长度代码编码部分309和反量化处理部分312。除了量化处理,量化处理部分308产生CBP(编码的块模式)。当量化处理部分308产生CBP时,它将表示CBP的信息提供给可变长度代码编码部分309。
跳转控制部分310产生跳转控制信号,使DCT处理部分307和量化处理部分308相应于从偏差信息产生部分304接收到的移动偏差信息,跳过DCT处理,以及量化处理。跳转控制部分310从移动检测部分303接收移动偏差信息AD,用移动偏差信息AD预测CBP的值,并相应于CBP的值,将DCT系数设置为“0”。当跳转控制部分310将DCT系数设置为“0”时,跳转控制部分310将跳转控制信号提供给移动补偿部分316、DCT处理部分307、量化处理部分308以及可变长度代码编码部分309。由此,当跳转控制部分310将CBP的值(即DCT系数)设置为“0”时,使这个部分跳过它们的处理。
当跳转控制部分310将DCT系数设置为“0”时,跳转控制部分310将从偏差信息产生部分304接收到的移动偏差信息AD与预定值比较。预定值由例如使用者设计。换句话说,当移动偏差信息AD小于预定值时,跳转控制部分310确定CBP的值小,并将跳转控制信号(用“0”替代DCT系数)提供给上述部分。相比之下,当移动偏差信息AD不小于预定值时,跳转控制部分310不产生跳转控制信号。
或者,跳转控制部分310可以用在编码处理中得到的信息确定预定值(该信息是诸如可变长度代码编码部分309的可变长度代码编码处理的比特率以及量化处理部分308的量化处理的量化比例),并将预定值与移动偏差信息AD比较。在这一点,跳转控制部分310为每一个宏块的移动偏差信息与预定值比较,并相应于比较结果产生跳转控制信号。
作为另一个方法,跳转控制部分310可以使用每一个宏块的移动偏差信息AD的平均值MAD来替代移动偏差信息。在这种情况下,平均值MAD由移动补偿部分316产生。跳转控制部分310从移动补偿部分316接收平均值MAD,并相应于平均值MAD,将DCT系数设置为“0”。跳转控制部分310的详细的工作将在下面描述。
可变长度代码编码部分309从量化处理部分308接收DCT系数,并从控制部分305接收移动矢量MV。有了这样的信息,可变长度代码编码部分309完成编码处理。可变长度代码编码部分309用相应于MPEG语法的可变长度代码执行编码处理,并执行标题处理、代码产生处理等,以产生图像数据。可变长度代码编码部分309将编码的图像数据提供给缓冲器311。
可变长度代码编码部分309从量化处理部分308接收信息,该信息表示CBP的值为“0”。当没有移动矢量MV时,可变长度代码编码部分309可以相应于宏块类型跳过宏块。
缓冲器311存储从可变长度代码编码部分309接收到的图像数据,并在控制部分305的控制下以在预定时间以比特流输出图像数据。
另外,图像编码设备301还包含反量化处理部分312、反DCT处理部分313、计算单位314、缓冲器315和移动补偿部分316。反量化处理部分312对从量化处理部分308接收到的DCT系数进行反量化。反DCT处理部分313对从反量化处理部分312接收到的DCT系数反执行DCT处理。计算单位314从反DCT处理部分313接收图像数据。缓冲器315存储图像数据。移动补偿部分316对从缓冲器315接收到的图像数据进行移动补偿。
反量化处理部分312对从量化处理部分308接收的DCT系数反量化。反量化处理部分312用量化比例对从量化处理部分308接收到的数据反量化,并将得到的DCT系数提供给反DCT处理部分313。
反DCT处理部分313对从反量化处理部分接收的DCT系数反向执行DCT处理,并将得到的DCT系数提供给计算单位314。计算单位314接收已经在反DCT处理部分313中处理过的图像数据。另外,计算单位314通过开关317接收图像数据(已经被移动补偿)。计算单位314对移动补偿的图像数据和从反DCT处理部分313接收的图像数据相加,并将得到的数据提供给缓冲器315。
缓冲器315从计算单位314接收图像数据,并存储图像数据。当移动补偿部分316移动补偿图像数据时,从缓冲器315读出预测的图像数据。
移动补偿部分316相应于移动矢量MV从缓冲器315读出预测的图像数据的每个宏块。移动补偿316将从控制部分305接收到的移动矢量MV提供给相应于预测图像数据的计算部分306。
当图像编码设备301产生I(内部)图像时,存储在帧缓冲器302中的图像数据的每一个宏块通过计算单位306,提供给DCT处理部分307,以及量化处理部分308。该DCT处理部分307对图象数的每个宏块执行DCT处理。量化处理部分308使从DCT处理部分307接收到的图像数据量化。可变长度代码编码部分309使用可变长度代码对从量化处理部分308接收到的图像数据编码,并通过缓冲器311以比特流输出得到的数据。由量化处理部分308和可变长度代码编码部分309处理的结果信号通过反量化处理部分312和反DCT处理部分313复原成图像数据,并暂时存储到缓冲器315。
当图像编码设备301产生P(预测)图像时,移动检测部分303检测存储在帧缓冲器中的图像数据的移动分量,以便产生移动矢量MV。另外,偏差信息产生部分304产生偏差信息AD。移动矢量MV通过控制部分305提供给移动补偿部分316。移动补偿部分316对存储在缓冲器315内的图像数据进行移动补偿(当产生I图像时,该图像数据存储到缓冲器315)。由此,移动补偿部分316产生预测数据。移动补偿部分316对每一个宏块进行移动补偿。开关317和318相应于从控制部分305接收到的开关控制信号关闭。计算单位306从存储在帧缓冲器302中的图像数据减去从移动补偿部分316接收到的预测图像数据。DCT处理部分307和量化处理部分308执行上述处理。可变长度代码编码部分309编码图像数据,并通过缓冲器311以比特流输出得到的数据。
当图像编码设备301产生B(双向预测)图像时,移动补偿316对存储在缓冲器315中的以前的帧的图像数据和下一个帧的图像数据进行移动补偿,以产生预测图像数据。计算单位306从存储在帧缓冲器302中的图像数据减去预测图像数据。DCT处理部分307和量化处理部分308执行上述处理。可变长度代码编码部分309用可变长度代码对从计算单位306接收到的数据编码,并通过缓冲器311以比特流输出得到的数据。
图32是图像编码设备301的编码处理的流程图。在图32所示的流程图中,从存储在帧缓冲器302中的图像数据检测移动矢量MV。相应于检测到的移动矢量MV产生P图像或B图像。
在步骤S401,一帧图象数据输入到帧缓冲器302。
在步骤S402,移动检测部分303检测存储在帧缓冲器302中的图像数据,并检测移动、作为移动矢量MV。偏差信息产生部分304由移动矢量MV产生移动偏差信息AD。移动矢量MV和移动偏差信息AD分别被提供给控制部分305和跳转控制部分310。
在步骤S403,跳转控制部分310比较从偏差信息产生部分304接收的移动偏差信息AD和预定值。当在步骤S403确定的结果是No(即移动偏差信息AD大于预定值)时,流程进到步骤S404。相反,当在步骤S403确定的结果是Yes(即,移动偏差信息AD不大于预定值)时,流程进到步骤S407。
在步骤S404,预测图像数据根据从控制部分305接收到的移动矢量MV产生,并提供给计算部分306。相应于计算单位306的计算结果,移动补偿部分316补偿图像数据的移动。
在步骤S405,计算单位306从由帧缓冲器及02接收到的图像数据减去在步骤S404经过移动补偿的预测图像数据。DCT处理部分307对从计算单位306接收到的图像数据执行DCT处理。
在步骤S406,量化处理部分308对由DCT处理部分307在步骤S405产生的DCT系数量化。
相比之下,当在步骤S403确定的结果是Yes(即,移动偏差信息AD不大于预定值)时,流程进到步骤S407。在步骤S407,跳转控制部分301产生跳转控制信号,使DCT处理部分307、量化处理部分308、可变长度代码编码部分309以及移动补偿部分316跳过它们的处理,并将跳转控制信号提供给这些部分。换句话说,存储在缓冲器315中的图像数据提供给可变长度代码编码部分309。
在步骤S408,可变长度代码编码部分309确定CBP的值是否是“0”。当“0”已经在步骤S407设置为DCT系数时,可变长度代码编码部分309确定CBP的值是“0”。
在步骤S409,可变长度代码编码部分309执行例如标题处理以及可变长度代码产生处理,并通过缓冲器311以比特流输出编码的图像数据。在步骤S408确定其CBP值为“0”的宏块是由标题、MB增加、CBP、矢量等构成,而不是(16×16)像素数据。换句话说,当检测到其CBP值为“0”的宏块时,宏块输出与预测图像一样的图象。
在在图像编码设备301的处理(见图32)中,比较预定值和移动偏差信息AD,以确定DCT系数是否为“0”。或者,替代预定值,可以根据含有从量化处理部分308接收到的量化比例、存储在缓冲器315中的图像数据的获得值、比特率等等的相应的评价函数,确定DCT系数是否是“0”。
由于图像编码设备301具有跳转控制部分310,它相应于移动偏差信息AD与预定值比较的结果,跳过移动补偿处理、DCT处理以及量化处理,对DCT系数最后为“0”的图像数据的编码处理所必需的处理时间可以缩短。
另外,根据图像编码设备301,在实时编码器中对DCT处理和量化处理等的处理时间是不严格的。由此,图像编码设备301可以容易地设计,并且可以减小其电耗。
另外,根据图像编码设备301,即使编码处理是由软件执行的,也可以减小例如CPU(中央处理器)的处理的负载。
根据本发明,当获得移动矢量时,参照帧的块和当前帧块正交地转换为频率数据。当将图像数据转换为频率数据,并获得参照帧的块和当前帧的块之间的偏差时,大大减小了计算步数。由此,可以高速地执行处理。结果,可以由软件有效执行处理。
根据本发明,在块匹配计算的循环中,将当前帧的块的像素与参照帧相关块的像素之间的差值绝对值的总和与预定的阈值比较。当总和超过阈值时,处理停止。由此,由于减小了计算步数,移动矢量可以高速搜索。
可以相应于不连续的绝对值(MAD)的和值与在原点的偏差AD(0,0)设置阈值的初始值。在阈值相应于总和MAD和在原点的偏差AD(0,0)设置阈值时,当中间帧编码处理执行时,可以可靠地检测移动矢量。相比之下,当执行内部帧编码处理时,处理停止。由此,可以有效执行块匹配处理。
另外,当第一次搜移动矢量时,使用相应于总和MAD和在原点的偏差AD(0,0)得到的阈值。作为对相同的块在第二次执行的块匹配处理的阈值,使用开始的阈值或检测的总和中小的那个。换句话说,由于使用到该时为止得到的作为小值的阈值,故可以有效检测移动矢量。
如上所述,根据本发明的移动检测设备和预定检测方法,从图像抽取多个宏块。检测被抽取的宏块的移动矢量。有了检测的移动矢量,计算整个图像的移动矢量。有了整个图像的移动矢量,计算每一个宏块的移动矢量。由此,在计算每一个宏块的移动矢量前,能得到整个图像的移动矢量。结果,根据本发明的移动检测设备和移动检测方法,在整个屏幕上大幅度移动的图像移动矢量可以被容易地检测。另外,可以大大减小图像移动处理的步骤。
如上所述,根据本发明的图像编码设备和图像编码方法,检测图像数据的像素块的移动矢量,并且由此产生的移动偏差信息。将移动偏差信息与预定值比较。对图像数据执行编码处理必需的预定处理。相应于预定的结果,跳过数据处理装置的预定处理。对于DCT系数最终为“0”的图像的编码处理的处理时间能够缩短。
根据本发明,当由块匹配处理得到移动矢量时,用参照帧的块的轮廓像素与当前帧的相关块的轮廓像素之间差值绝对值的总和得到偏差。由此减小计算步数。结果,可以高速地执行处理。由于得到参照帧的块的所有轮廓像素与当前帧相关块的所有轮廓像素之间的差值绝对值的总和,故可以精确检测移动矢量。
虽然已经根据本发明的最佳实施例示出了本发明,但熟悉本领域的人可以知道,在不背离本发明的主旨和范围的条件下,可以有上述和各种其它形式和细节上的变化、省略和添加。
Claims (44)
1、一种移动矢量计算方法,包含下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像的块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;
(d)正交变换参照图像块的像素数据和当前图像块的像素数据;以及
(e)获得参照图像块的正交变换数据与当前图像的每个块的正交变换数据之间的偏差。
2、如权利要求1所述的移动矢量计算方法,其特征在于,
步骤(d)是利用哈达玛特变换方法进行的。
3、如权利要求1所述的移动矢量计算方法,其特征在于,还包含下列步骤:
把参照图像的每个块和当前图像的块分割成多个块;以及
正交变换每个分割的块。
4、一种其上记录有移动矢量计算程序的记录媒体,移动矢量计算程序使具有该记录媒体的系统进行下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;
(d)正交变换参照图像块的像素数据和当前图像块的像素数据;以及
(e)获得参照图像块的正交变换数据与当前图像的每个块的正交变换数据之间的偏差。
5、如权利要求4所述的记录媒体,其特征在于,
步骤(d)是利用哈达玛特变换方法进行的。
6、如权利要求4所述的记录媒体,其特征在于,还包含下列步骤:
把参照图像的每个块和当前图像的块分割成多个块;以及
正交变换每个分割的块。
7、一种移动矢量计算方法,包含下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;
(d)在计算参照图像块的像素与当前图像块的像素之间的偏差时,把获得的偏差与预定阈值进行比较;
(e)当该偏差大于预定阈值时,停止计算移动矢量;以及
(f)对应于图像特征设置预定阈值的初始值。
8、如权利要求7所述的移动矢量计算方法,其特征在于,
对应于同一图像的像素值与其像素平均值之间的差值的绝对值之和设置预定阈值的初始值。
9、如权利要求7所述的移动矢量计算方法,其特征在于,
对应于在原点的偏差设置预定阈值的初始值。
10、如权利要求7所述的移动矢量计算方法,其特征在于,
对应于同一图像的像素值与其像素的平均值之间的差值的绝值之和以及原点上的偏差设置预定阈值的初始值。
11、如权利要求7所述的移动矢量计算方法,其特征在于,预定阈值是至此获得的偏差的最小值。
12、一种其上记录有移动矢量计算程序的记录媒体,该移动矢量计算程序使具有该记录媒体的系统进行下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;
(d)在计算参照图像块的像素与当前图像块的像素之间的偏差时,把获得的偏差与预定阈值进行比较;
(e)当该偏差大于预定阈值时,停止计算移动矢量;以及
(f)对应于图像特征设置预定阈值的初始值。
13、如权利要求12所述的记录媒体其特征在于,
对应于同一图像的像素值与其像素平均值之间的差值的绝对值之和设置预定阈值的初始值。
14、如权利要求12所述的记录媒体,其特征在于,
对应于原点的偏差设置预定阈值的初始值。
15、如权利要求12所述的记录媒体,其特征在于,
对应于同一图像的像素值与其像素的平均值之间的差值的绝值之和以及原点上的偏差设置预定阈值的初始值。
16、如权利要求12所述的记录媒体,其特征在于,预定阈值是至此获得的偏差的最小值。
17、一种移动检测装置,包含:
取出装置,从图像中取出多个宏块;
第一移动检测装置,检测所述取出装置取出的多个宏块的每个块的移动矢量;
移动计算装置,用所述第一活动检测装置检测到的各宏块的移动矢量计算整个图像的移动矢量;以及
第二移动检测装置,用所述活动计算装置计算得到的移动矢量计算每个宏块的移动矢量。
18、如权利要求17所述的移动检测装置,其特征在于,
所述取出装置取出多个相邻宏块。
19、如权利要求17所述的移动检测装置,其特征在于,
所述取出装置从分割整个图像得到的每个区域中取出多个宏块。
20、一种活动检测方法,包含下列步骤:
(a)从图像中取出多个宏块;
(b)检测取出的多个宏块的每个块的移动矢量;
(c)用检测到的各宏块的移动矢量计算整个图像的移动矢量;以及
(d)用计算得到的移动矢量计算每个宏块的移动矢量。
21、如权利要求20所述的移动检测方法,其特征在于,
步骤(a)通过取出多个相邻宏块进行。
22、如权利要求20所述的移动检测方法,其特征在于,
步骤(a)通过从分割整个图像得到的每个区域中取出多个宏块来进行。
23、一种图像编码装置,包含:
移动检测装置,检测输入图像数据的预定像素块的移动矢量,产生移动偏差信息;
确定装置,把从所述移动检测装置接收到的移动偏差信息与一预定值进行比较,产生确定结果;
图像数据处理装置,用于对图像数据进行预定的处理,该预定处理是编码处理所需要的;
编码装置,用于对图像数据进行编码;以及
控制装置,对应于所述确定装置的确定结果,跳过所述图像数据处理装置进行的预定处理,使所述编码装置进行所述编码处理。
24、如权利要求23所述的图像编码装置,其特征在于,
所述移动检测装置计算每个像素块的平均离散偏差;
所述确定装置把平均离散偏差与预定值比较。
25、如权利要求23所述的图像编码装置,其特征在于,还包含:
值确定装置,用在编码处理时获得的信息确定预定值,
所述确定装置用所述值确定装置确定的预定值产生确定结果。
26、一种图像编码方法,包含下列步骤:
(a)检测输入图像数据的预定像素块的移动矢量,产生移动偏差信息;
(b)把移动偏差信息与一预定值进行比较,产生确定结果;
(c)对图像数据进行预定的处理,该预定处理是编码处理所需要的;以及
(d)对应于确定结果,跳过预定处理,使对图像数据进行编码处理。
27、如权利要求26所述的图像编码方法,其特征在于,
所述步骤(a)通过计算每个像素块的平均离散偏差来进行;
步骤(b)通过把平均离散偏差与预定值比较来进行。
28、如权利要求26所述的图像编码方法装置,其特征在于,还包含:
用在编码处理时获得的信息确定预定值,
步骤(b)通过用已确定的预定值产生确定结果来完成。
29、一种移动矢量计算方法,包含下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;
(d)同时取出当前图像的N个像素和此时的参照图像的N个像素,其中N为整数;
(e)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到存储器中;以及
(f)从存储器中读出当前图像块的像素和参照图像块的像素,作为连续数据,获得偏差。
30、如权利要求29所述的矢量计算方法,其特征在于,
用一指令来计算偏差,使在一时刻处理多个连续数据片。
31、如权利要求29所述的矢量计算方法,其特征在于,
当前图像的N个像素和参照图像的N个像素是以格子化方式同时取出。
32、一种其上记录了移动矢量计算程序的记录媒体,该移动矢量计算方法使具有该记录媒体的系统进行下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照图象的块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;
(d)同时取出当前图像的N个像素和参照图像的N个像素,其中N为整数;
(e)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到存储器中;以及
(f)从存储器中读出当前图像块的像素和参照图像块的像素,作为连续数据,获得偏差。
33、如权利要求32所述的记录媒体,其特征在于,
用一指令来计算偏差,使在一时刻处理多个连续数据片。
34、如权利要求32所述的记录媒体,其特征在于,
当前图像的N个像素和参照图像的N个像素是以格子化方式同时取出。
35、一种移动矢量计算方法,包含下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算略粗移动矢量;
(d)当在步骤(c)获提和粗略移动矢量的附近中移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(e)根据参照图像检测偏差最小的块,以检测精细移动矢量;
(f)把当前图像的像素与参照图像的像素存储到第一存储器中;
(g)同时取出当前图像的N个像素和参照图像的N个像素,其中N为整数;以及
(h)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到第二存储器中,
其中步骤(c)是利用存储在第二存储器中的作为连续数据的当前图像的N个像素和参照图像的N个像素进行的,
步骤(e)是利用存储在第一存储器中的当前图像的像素和参照图像的像素进行的。
36、如权利要求35所述的移动矢量计算方法,其特征在于,
用一指令来计算偏差,使在一时刻处理多个连续数据片。
37、如权利要求35所述的移动矢量计算方法,其特征在于,
当前图像的N个像素和参照图像的N个像素是以格子化方式同时取出。
38、一种其上记录有移动矢量计算程序的记录媒体,该移动矢量计算程序使具有该记录媒体的系统进行下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算粗略移动矢量;
(d)当在步骤(c)获得的粗略移动矢量的附近中移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(e)根据参照图像检测偏差最小的块,以检测精细移动矢量;
(f)把当前图像的像素与参照图像的像素存储到第一存储器中;
(g)取出当前图像的N个像素和此时的参照图像的N个像素,其中N为整数;以及
(h)把当前图像的N个像素和参照图像的N个像素作为连续数据存储到第二存储器中,
其中步骤(c)是利用存储在第二存储器中的作为连续数据的当前图像的N个像素和参照图像的N个像素进行的,
步骤(e)是利用存储在第一存储器中的当前图像的像素和参照图像的像素进行的。
39、如权利要求38所述的记录媒体,其特征在于,
用一指令来计算偏差,使在一时刻处理多个连续数据片。
40、如权利要求38所述的记录媒体,其特征在于,
当前图像的N个像素和参照图像的N个像素是以格子化方式同时取出。
41、一种移动矢量计算方法,包含下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;以及
(d)把参照图像块的轮廓像素与当前图像块的轮廓像素比较,获得它们之间的偏差。
42、如权利要求41所述的移动矢量计算方法,其特征在于,
步骤(d)包括下列步骤:
以水平扫描方向,累计当前图像块的上轮廓像素与参照图像块的上轮廓像素之间的差值的绝对值,以获得它们之和;
以垂直扫描方向累计当前图像块的左轮廓素与参照图像块的左轮廓像素之间的差值的绝对值,以获得它们之和;
以垂直扫描方向累计当前图像块的右轮廓素与参照图像块的右轮廓像素之间的差值的绝对值,以获得它们之和;以及
以水平扫描方向累计当前图像块的下轮廓素与参照图像块的下轮廓像素之间的差值的绝对值,以获得它们之和。
43、一种其上记录有移动矢量计算程序的记录媒体,该移动矢量计算程序使具有该记录媒体的系统进行下列步骤:
(a)对应于要处理的当前图像的一个块从参照图像中取出一个块,该参照块的大小与当前图像块的大小一致,参照图像块的原点与当前图像块的原点匹配;
(b)当在预定搜索区域内移动参照图像块时,获得当前图像块与参照图像块之间的偏差;
(c)从参照图像中检测偏差最小的块,以计算移动矢量;以及
(d)把参照图像块的轮廓像素与当前图像块的轮廓像素比较,获得它们之间的偏差。
44、如权利要求43所述的记录媒体,其特征在于,
步骤(d)包括下列步骤:
以水平扫描方向,累计当前图像块的上轮廓像素与参照图像块的上轮廓像素之间的差值的绝对值,以获得它们之和;
以垂直扫描方向累计当前图像块的左轮廓素与参照图像块的左轮廓像素之间的差值的绝对值,以获得它们之和;
以垂直扫描方向累计当前图像块的右轮廓素与参照图像块的右轮廓像素之间的差值的绝对值,以获得它们之和;以及
以水平扫描方向累计当前图像块的下轮廓素与参照图像块的下轮廓像素之间的差值的绝对值,以获得它们之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 99110395 CN1243393A (zh) | 1998-07-15 | 1999-07-15 | 移动矢量测量方法及记录媒体、移动检测装置及方法 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP200460/98 | 1998-07-15 | ||
JP212378/98 | 1998-07-28 | ||
JP223397/98 | 1998-08-06 | ||
JP223398/98 | 1998-08-06 | ||
JP235551/98 | 1998-08-21 | ||
JP241482/98 | 1998-08-27 | ||
CN 99110395 CN1243393A (zh) | 1998-07-15 | 1999-07-15 | 移动矢量测量方法及记录媒体、移动检测装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1243393A true CN1243393A (zh) | 2000-02-02 |
Family
ID=5274535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 99110395 Pending CN1243393A (zh) | 1998-07-15 | 1999-07-15 | 移动矢量测量方法及记录媒体、移动检测装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1243393A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420613B (zh) * | 2007-10-22 | 2012-10-10 | 索尼株式会社 | 图像处理装置及图像处理方法 |
CN104244005A (zh) * | 2013-06-11 | 2014-12-24 | 索尼公司 | 图像处理装置和图像处理方法、程序和成像设备 |
CN107194952A (zh) * | 2017-05-08 | 2017-09-22 | 武汉大学 | 一种面向屏幕视频编码的屏幕滚动检测方法 |
CN109747644A (zh) * | 2019-03-01 | 2019-05-14 | 广州杰赛科技股份有限公司 | 车辆跟踪防撞预警方法、装置、控制器、系统及车辆 |
-
1999
- 1999-07-15 CN CN 99110395 patent/CN1243393A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420613B (zh) * | 2007-10-22 | 2012-10-10 | 索尼株式会社 | 图像处理装置及图像处理方法 |
CN104244005A (zh) * | 2013-06-11 | 2014-12-24 | 索尼公司 | 图像处理装置和图像处理方法、程序和成像设备 |
CN107194952A (zh) * | 2017-05-08 | 2017-09-22 | 武汉大学 | 一种面向屏幕视频编码的屏幕滚动检测方法 |
CN107194952B (zh) * | 2017-05-08 | 2019-06-25 | 武汉大学 | 一种面向屏幕视频编码的屏幕滚动检测方法 |
CN109747644A (zh) * | 2019-03-01 | 2019-05-14 | 广州杰赛科技股份有限公司 | 车辆跟踪防撞预警方法、装置、控制器、系统及车辆 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1075323C (zh) | 运动矢量编码和解码方法及装置,图像信号编码和解码方法及装置 | |
CN1160967C (zh) | 图像编码设备和图像解码设备 | |
CN1297148C (zh) | 动画图像编码传送系统、动画图像编码传送方法、该系统和方法使用的适合的编码装置、译码装置、编码方法、译码方法以及程序 | |
CN1076935C (zh) | 运动图象变换系数逆变换时防止舍入误差的方法和设备 | |
CN1251518C (zh) | 数字信号转换方法和数字信号转换装置 | |
CN1193619C (zh) | 图像解码装置 | |
CN1175670C (zh) | 图像信号转换方法和设备以及图像提供系统 | |
CN1801945A (zh) | 编码视频序列变换装置和编码视频序列变换方法 | |
CN1630374A (zh) | 用于前向预测的隔行扫描视频帧的场的预测运动矢量 | |
CN1237067A (zh) | 图象编码和解码装置、方法及数据存储媒体 | |
CN1960496A (zh) | 运动矢量检测装置 | |
CN1334683A (zh) | 图像预测编码/解码装置和方法以及记录媒体 | |
CN1513268A (zh) | 编码方法、译码方法、编码装置、译码装置、图象处理系统、编码程序和译码程序 | |
CN1638484A (zh) | 图像编码装置、方法及程序和图像解码装置、方法及程序 | |
CN1846437A (zh) | 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新 | |
CN1596547A (zh) | 移动图像编码设备、移动图像解码设备、移动图像编码方法、移动图像解码方法、程序和存储程序的计算机可读记录媒介 | |
CN1719905A (zh) | 编码装置、编码方法、编码方法程序及相应的记录媒体 | |
CN1216199A (zh) | 数字图象填补方法、图象处理装置及数据记录媒体 | |
CN1993993A (zh) | 图像处理设备、其程序、及其方法 | |
CN1898965A (zh) | 运动图象编码方法和装置 | |
CN1288641A (zh) | 视频信号编码方法、视频信号编码装置及程序记录媒体 | |
CN1243393A (zh) | 移动矢量测量方法及记录媒体、移动检测装置及方法 | |
CN101039435A (zh) | 在图象编码过程中实现自适应扫描的方法 | |
CN1860796A (zh) | 编码方法、编码装置、解码方法、解码装置及其程序 | |
CN1722850A (zh) | 数字信号转换方法和数字信号转换装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |