图像处理设备、其程序、及其方法

文档序号:84382阅读:141来源:国知局
专利名称:图像处理设备、其程序、及其方法
技术领域
本发明涉及一种用于编码图像数据的图像处理设备、用于该图像处理设备的程序、以及用于该图像处理设备的方法。
背景技术
近年来,已经正在广播站等的信息分发和一般家庭的信息接收两方面扩展基于诸如MPEG(运动图像专家组)的方法的设备,该设备将图像数据处理为数字数据,并同时,为了高效地传输和存储信息的目的,通过利用图像信息所特有的冗余进行离散余弦变换或者其它正交变换和运动补偿来压缩图像数据。
提出了一种称为“AVC/h.264”的编码系统(方法)作为MPEG-2和MPEG-4系统(方法)的后继者。
AVC/h.264系统为帧内预测模式和运动预测和补偿模式的每一个定义了多种编码模式,并基于图像数据的特征而选择具有最小代码量(最高编码效率)的模式。

发明内容本发明要解决的问题顺便地,上面的运动预测和补偿模式包括“直接”模式和“跳过(skip)”模式,这两个模式基于在要处理的块数据周围的块数据的运动矢量来执行预测,并从而不对任何运动矢量进行编码。
然而,有时候,即使当预测的运动矢量非常不同于原始运动矢量时,直接模式或跳过模式也给出最小的代码量,并从而被选中。在这样的情况中,由于运动矢量的差别而在解码图像中出现急跳动作(jerky motion),并且该急跳动作成为图像质量恶化的原因。
此外,如果仅基于整个宏块的代码量而以宏块为单位来选择模式,如果宏块中小部分块的代码量大而剩余的大部分块的代码量小,则整个宏块的代码量将变小,并且最终将选择从图像质量的角度看不适合的模式来编码所述小部分块。
因此,期望提供一种与过去的设备相比能够实现给出更高图像质量的编码的图像处理设备、用于该图像处理设备的程序、以及用于该图像处理设备的方法。
解决该问题的手段为了实现以上目的,第一发明的图像处理设备用于生成在二维图像区域中定义的多个块之中的处理所涉及(covered)的块的块数据的运动矢量,并编码该运动矢量、以及在基于该运动矢量生成的预测块数据与该处理所涉及的块数据之间的差值,该图像处理设备包括判断装置,用于判断为第一模式和第二模式的每一个生成的运动矢量之间的差值是否超过预定标准,其中,该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码该已预测的运动矢量,该第二模式基于在该处理所涉及的块数据与参考图像数据中的块数据之间的差值来生成该处理所涉及的块数据的运动矢量,并且编码该运动矢量、以及在该处理所涉及的块数据与参考图像数据中对应于所生成的运动矢量的参考块数据之间的差值图像数据;以及选择装置,当该判断装置判断所述差值超过所述预定标准时,选择该第二模式,以及当该判断装置判断所述差值没有超过所述预定标准时,从所述第一模式和第二模式中选择通过编码其代码量变成最小的模式。
所述第一发明的图像处理设备的操作模式如下所示。
首先,该判断装置基于第一模式来生成该处理所涉及的块数据的运动矢量,其中该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码所预测的运动矢量、以及在该处理所涉及的块数据与参考图像数据中的块数据之间的差值。
然后,该判断装置判断上面生成的运动矢量和为第二模式生成的运动矢量之间的差值是否超过预定标准,其中该第二模式用于编码在该处理所涉及的块数据、和参考图像数据中的对应于上面生成的运动矢量的参考块数据之间的差值图像数据。
接下来,当该判断装置判断所述差值超过所述预定标准时,该选择装置选择该第二模式,而当判断装置判断所述差值没有超过所述预定标准时,该选择装置从所述第一模式和第二模式之中选择通过编码其代码量变成最小的模式。
第二发明的程序用于使计算机执行以下处理生成在二维图像区域中定义的多个块之中的处理所涉及的块的块数据的运动矢量,并编码该运动矢量、以及在基于该运动矢量生成的预测块数据与该处理所涉及的块数据之间的差值,所述程序包括第一例程,用于为第一模式和第二模式的每一个生成运动矢量,其中,该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码该已预测的运动矢量,该第二模式基于在该处理所涉及的块数据与参考图像数据中的块数据之间的差值来生成该处理所涉及的块数据的运动矢量,并且编码该运动矢量、以及在该处理所涉及的块数据与参考图像数据中对应于已生成的运动矢量的参考块数据之间的差值图像数据;第二例程,用于判断在第一例程中生成的第一模式的运动矢量和第二模式的运动矢量之间的差值是否超过预定标准;以及第三例程,当在第二例程中判断所述差值超过所述预定标准时,选择该第二模式,以及当判断所述差值没有超过所述预定标准时,从所述第一模式和第二模式之中选择通过编码其代码量变成最小的模式。
所述第二发明的程序的操作模式如下所示。
首先,计算机执行该程序。
然后,该计算机根据该程序的第一例程为第一模式和第二模式的每一个生成运动矢量,其中,该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码该已预测的运动矢量,该第二模式基于在该处理所涉及的块数据与参考图像数据中的块数据之间的差值来生成该处理所涉及的块数据的运动矢量,并且编码该运动矢量、以及在该处理所涉及的块数据与参考图像数据中对应于已生成的运动矢量的参考块数据之间的差值图像数据。
接下来,该计算机根据该程序的第二例程判断在第一例程中生成的第一模式的运动矢量和第二模式的运动矢量之间的差值是否超过预定标准。
接下来,根据第三例程,该计算机当在第二例程中判断所述差值超过所述预定标准时,选择该第二模式,以及当判断所述差值没有超过所述预定标准时,从所述第一模式和第二模式之中选择通过编码其代码量变成最小的模式。
第三发明的图像处理方法包括使计算机执行以下处理,生成在二维图像区域中定义的多个块之中的处理所涉及的块的块数据的运动矢量,并编码该运动矢量、以及在基于该运动矢量生成的预测块数据与该处理所涉及的块数据之间的差值,所述图像处理方法包括第一处理,用于为第一模式和第二模式的每一个生成运动矢量,其中,该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码该已预测的运动矢量,该第二模式基于在该处理所涉及的块数据与参考图像数据中的块数据之间的差值来生成该处理所涉及的块数据的运动矢量,并且编码该运动矢量、以及在该处理所涉及的块数据与参考图像数据中对应于已生成的运动矢量的参考块数据之间的差值图像数据;第二处理,用于判断在该第一处理中生成的第一模式的运动矢量和第二模式的运动矢量之间的差值是否超过预定标准;以及第三处理,当在该第二处理中判断所述差值超过所述预定标准时,选择该第二模式,以及当判断所述差值没有超过所述预定标准时,从所述第一模式和第二模式之中选择通过编码其代码量变成最小的模式。
第四发明的图像处理设备用于编码在形成二维图像区域中定义的宏块的一个或多个块之中的处理所涉及的块的块数据,该编码是基于该块数据和该块数据的预测块数据来进行的,该图像处理设备包括生成装置,用于根据在形成该处理所涉及的块数据的一个或多个单位块数据和预测块数据中与这个单位块数据对应的单位块数据之间的差值、以单位块数据为单位来生成第一指示符数据,指定该第一指示符数据中的指示最大数据的第一指示符数据,并基于所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据生成的第一指示符数据之和相比、已指定的第一指示符数据作为值被强烈地反映;和选择装置,用于根据该生成装置为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
第四发明的图像处理设备的操作模式如下所示。
首先,该生成装置以在形成该处理所涉及的块数据的一个或多个单位块数据为单位,根据该单位块数据和预测块数据中与这个单位块数据对应的单位块数据之间的差值来生成第一指示符数据,指定该第一指示符数据中的指示最大数据的第一指示符数据,并基于所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据生成的第一指示符数据之和相比、已指定的第一指示符数据作为值被强烈地反映。
接下来,该选择装置根据该生成装置为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
第五发明的程序使计算机执行以下处理编码在形成二维图像区域中定义的宏块的一个或多个块之中的处理所涉及的块的块数据,该编码是基于该块数据和该块数据的预测块数据来进行的,该程序包括第一例程,根据在形成该处理所涉及的块数据的一个或多个单位块数据和预测块数据中的与这个单位块数据对应的单位块数据之间的差值,以单位块数据为单位来生成第一指示符数据;第二例程,指定在该第一例程中生成的所述第一指示符数据之中的指示最大数据的第一指示符数据;第三例程,基于在第一例程中生成的所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据生成的第一指示符数据之和相比、该第二例程中所指定的第一指示符数据作为值被强烈地反映;和第四例程,用于根据在该第三例程中为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
第五发明的程序的操作模式如下所示。
首先,该计算机执行第五发明的程序。
然后,该计算机按照该程序的第一例程,根据在形成该处理所涉及的块数据的一个或多个单位块数据和预测块数据中的与这个单位块数据对应的单位块数据之间的差值,以单位块数据为单位,来生成第一指示符数据。
接下来,该计算机按照该程序的第二例程,指定在该第一例程中生成的所述第一指示符数据之中的指示最大数据的第一指示符数据。
接下来,该计算机按照该程序的第三例程,基于在第一例程中生成的所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据生成的第一指示符数据之和相比、该第二例程中所指定的第一指示符数据作为值被强烈地反映。
接下来,该计算机按照该程序的第四例程,根据在该第三例程中为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
第六发明的图像处理方法包括使计算机执行以下处理编码在形成二维图像区域中定义的宏块的一个或多个块之中的处理所涉及的块的块数据,该编码是基于该块数据和该块数据的预测块数据来进行的,该方法包括第一处理,根据在形成该处理所涉及的块数据的一个或多个单位块数据和预测块数据中的与这个单位块数据对应的单位块数据之间的差值,以单位块数据为单位来生成第一指示符数据;第二处理,指定在该第一处理中生成的所述第一指示符数据之中的指示最大数据的第一指示符数据;第三处理,基于在第一处理中生成的所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据生成的第一指示符数据之和相比、该第二处理中所指定的第一指示符数据作为值被强烈地反映;和第四处理,用于根据在该第三处理中为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
发明效果根据本发明,可提供一种与过去的设备相比能够实现具有更高图像质量的编码的图像处理设备、用于该图像处理设备的程序、以及用于该图像处理设备的方法。
图1是本发明第一实施例的通信系统配置的视图;图2是图1所示的编码部件的功能框图;图3是用于说明图1所示的运动预测和补偿电路的图;图4是用于说明图1所示的运动预测和补偿电路的硬件配置的图;图5是用于说明图1所示的运动预测和补偿电路的操作示例的流程图;图6是用于说明图1所示的运动预测和补偿电路的操作示例的从图5延续的流程图;图7是用于说明本发明的第一实施例的修改的图;图8是本发明的第二实施例的编码部件的功能框图;图9是用于说明图8所示的帧内预测电路的硬件配置的图;图10是用于说明图8所示的帧内预测电路的操作示例的流程图;图11是用于说明图8所示的帧内预测电路的另一种硬件配置的图;图12是用于说明在本发明的第二实施例中计算指示符数据SATDa的方法的图;图13是用于说明图8所示运动预测和补偿电路的硬件配置的图;图14是用于说明图8所示的运动预测和补偿电路的操作示例的流程图;图15是用于说明图8所示的运动预测和补偿电路的另一种硬件配置的图;和图16是用于说明在本发明的第二实施例中另一种计算指示符数据SATDa的方法的图。
符号描述1…通信系统,2…编码部件,3…解码部件,22…转换电路,23…帧重排电路,24…计算电路,25…正交变换电路,26…量化电路,27…可逆编码电路,28…缓冲器,29…逆量化电路,30…逆正交变换电路,31…帧存储器,32…速率控制电路,33…加法器电路,34…解块滤波器,41…帧内预测电路,43…运动预测和补偿电路,44…选择电路具体实施方式
下面,将给出对于根据本发明的实施例的编码部件的说明。
<第一实施例>
第一实施例是与第一至第三发明对应的实施例。
首先,将给出对本实施例的组件与本发明的组件之间的关系的说明。
图4所示的运动预测和补偿电路43的处理电路53执行图5所示的步骤ST2、ST4、和ST6,从而实现第一发明的判断装置。
利用处理电路53执行图5中所示的步骤ST3、ST5、ST7、ST8、和ST9,而实现第一发明的选择装置。
图5中所示的ST2、ST4、和ST6对应于第二发明的第一例程和第三发明的第一处理。
图5中所示的步骤ST3、ST5、ST7、ST8、和ST9对应于第二发明的第二例程和第三发明的第二处理。
本实施例的程序PRG1对应于第二发明的程序。
跳过模式和直接模式对应于本发明的第一模式。诸如帧间16×16模式、帧间8×16模式、帧间16×8模式、帧间8×8模式、帧间4×8模式、和帧间4×4模式之类的帧间基础(inter base)模式对应于本发明的第二模式。
本实施例的块数据对应于本发明的块数据。图像数据S26对应于本发明的差值图像数据。
要注意的是,在本实施例中,图像数据和参考图像数据例如为帧数据或者场数据。
下面,将给出对本实施例的通信系统1的说明。
图1是本实施例的通信系统1的概念视图。
如图1所示,通信系统1具有在发送方提供的编码部件2和在接收方提供的解码部件3。
编码部件2对应于本发明的数据处理设备和编码部件。
在通信系统1中,发送方的编码部件2生成用离散余弦变换、Karhunen-Loewe变换、或者其它正交变换和运动补偿而压缩的帧图像数据(位流),调制该帧图像数据,然后经由卫星广播波、线缆TV网络、电话线网络、移动电话线网络、或者其它传输介质来发送该帧图像数据。
在接收方,解码部件3解调所接收的图像信号,然后生成利用与在调制和运动补偿时的正交变换相逆的逆变换而解压的帧图像数据,并使用该帧图像数据。
要注意的是,该传输介质可以是光盘、磁盘、半导体存储器、或者其它存储介质。
图1所示的解码部件3与现有技术中的解码部件具有相同的配置,并执行与编码部件2的编码对应的解码。
下面,将给出对图1所示的编码部件2的说明。
图2是图1所示的编码部件2的整体配置的图示。
如图2所示,编码部件2例如具有模/数(A/D)转换电路22、帧重排电路23、计算电路24、正交变换电路25、量化电路26、可逆编码电路27、缓冲器28、逆量化电路29、逆正交变换电路30、帧存储器31、速率控制电路32、加法器电路33、解块滤波器34、帧内预测电路41、运动预测和补偿电路43、和选择电路44。
下面,将给出对编码部件2的组件的说明。
A/D转换电路22将由输入模拟亮度信号Y以及色差信号Pb和Pr形成的原始图像信号转换为数字图像信号,并将其输出到帧重排电路23。
帧重排电路23将从A/D转换电路22输入的原始图像信号中的帧图像信号重新排列为用于根据包括画面类型I、P、和B的GOP(画面组)结构编码的序列,以获得原始图像数据S23,并将其输出到计算电路24、运动预测和补偿电路43、和帧内预测电路41。
计算电路24生成指示原始图像数据S23和从选择电路44输入的预测图像数据PI之间的差别的图像数据S24,并将其输出到正交变换电路25。
正交变换电路25向图像数据S24应用离散余弦变换、Karhunen-Loewe变换、或者其它正交变换,以生成图像数据(例如,DCT系数)S25,并将其输出到量化电路26。
量化电路26利用从速率控制电路32输入的量化标度来量化图像数据S25,以生成图像数据S26(已量化的DCT系数),并将其输出到可逆编码电路27和逆量化电路29。
可逆编码电路27通过可变长度编码或者算术编码来编码图像数据S26,并将获得的图像数据存储在缓冲器28中。
此时,可逆编码电路27在报头数据中存储从运动预测和补偿电路43输入的运动矢量MV或者其差值运动矢量、参考图像数据的标识数据、以及从帧内预测电路41输入的帧内预测模式IPM。
对缓冲器28中存储的图像数据进行调制,并然后发送该图像数据。
逆量化电路29对图像数据S26应用逆量化,并将所获得的数据输出到逆正交变换电路30。
逆正交变换电路30对从逆量化电路29输入的数据应用与正交变换电路25中的正交变换相逆的逆变换,并将如此生成的图像数据输出到加法器电路33。
加法器电路33对从逆正交变换电路30输入(解码的)的图像数据和从选择电路44输入的预测图像数据PI进行相加,以生成重新组合的图像数据,并将其输出到解块滤波器34。
解块滤波器34消除从加法器电路33输入的重新组合的图像数据的块失真,并将图像数据作为参考图像数据REF写入到帧存储器31中。
要注意的是,以结束处理的宏块MB为单位,向帧存储器31顺序写入由运动预测和补偿电路43的运动预测和补偿处理以及帧内预测电路41中的帧内预测处理所涉及的画面的重新组合图像数据。
速率控制电路32基于从缓冲器28读出的图像数据生成例如量化标度,并将其输出到量化电路26。
下面,将给出对帧内预测电路41以及运动预测和补偿电路43的详细说明。
帧内预测电路41为诸如帧内4×4模式和帧内16×16模式之类的多种预测模式生成处理所涉及的宏块MB的预测图像数据PIi,并基于这些PIi和原始图像数据S23中该处理所涉及的宏块MB,来生成用作已编码数据的代码量指示符的指示符数据COSTi。
然后,帧内预测电路41选择给出最小指示符数据COSTi的帧内预测模式。
帧内预测电路41将预测图像数据PIi和与最终选择的帧内预测模式对应地生成的指示符数据COSTi输出到选择电路44。
当帧内预测电路41接收指示选择了帧内预测模式的选择信号S44作为输入时,它向可逆编码电路27输出指示最终选择的帧内预测模式的预测模式IPM。
要注意的是,即使属于P片段(slice)或B片段的宏块MB有时候也由帧内预测电路41的帧内预测编码来编码。
帧内预测电路41基于接下来的等式(1)生成例如指示符数据COSTi。
COSTi=Σ1≤i≤x(SATD+header_cost(mode))---(1)]]>此外,在上面的等式(1)中,“i”是例如添加到形成处理所涉及的宏块MB的、大小与帧内预测模式对应的每个块数据的标识号码。上面等式(1)中的“x”在帧内16×16模式的情况中是“1”,而在帧内4×4模式的情况中是“16”。
帧内预测电路41对形成由处理所涉及的宏块MB的所有块数据计算“SATD+header_cost(mode))”,并将其相加,以计算指示符数据COSTi。
“header_cost(mode)”是用作报头数据的代码量的指示符的指示符数据,其中报头数据包括编码之后的运动矢量、参考图像数据的标识数据、所选择的模式、量化参数(量化标度)等。“header_cost(mode)”的值根据预测模式而不同。
此外,“SATD”是这样的指示符数据,其用作在处理所涉及的宏块MB中的块数据与在该块数据周围的预先确定的块数据(预测块数据)之间的差值图像数据的代码量的指示符。在本实施例中,根据一个或多个预测块数据来定义预测图像数据PIi。
SATD是在将Hadamard变换(Tran)应用到在处理所涉及的块数据Org与预测块数据Pre的像素数据之间的绝对差之和后的数据。
在接下来的等式(2)中用s和t来标明块数据中的像素。
SATD=Σs,t(|Tran(Org(s,t)-Pre(s,t))|)---(2)]]>要注意的是,可代替SATD使用接下来的等式(3)中所示的SAD。
此外,也可代替SATD使用表示失真或残留的另一指示符,诸如在MPEG4和AVC中定义的SSD。
SAD=Σs,t(|Org(s,t)-Pre(s,t)|)---(3)]]>[运动预测和补偿电路43]当对从帧重排电路23输入的原始图像数据S23中的处理所涉及的宏块MB进行帧间编码时,运动预测和补偿电路43基于在过去编码并存储在帧存储器31中的参考图像数据REF,以运动预测和补偿模式所定义的块数据为单位,而为多个运动预测和补偿模式的每一个生成运动矢量MV和处理所涉及的块数据的预测图像数据。
例如,通过运动预测和补偿模式来定义块数据和参考图像数据REF的大小。
此外,运动预测和补偿电路43基于原始图像数据S23中的处理所涉及的宏块MB及其预测块数据(预测图像数据PIm),而为运动预测和补偿模式的每一个生成用作已编码数据的代码量的指示符的指示符数据COSTm。
然后,运动预测和补偿电路43选择给出最小指示符数据COSTm的运动预测和补偿模式。
运动预测和补偿电路43向选择电路44输出与最终选择的运动预测和补偿模式对应生成的预测图像数据PIm和指示符数据COSTm。
此外,运动预测和补偿电路43向可逆编码电路27输出与最终选择的运动预测和补偿模式对应生成的运动矢量、或者运动矢量和预测模式矢量之间的差值运动矢量。
还有,运动预测和补偿电路43向可逆编码电路27输出指示最终选择的运动预测和补偿模式的运动预测和补偿模式MEM。
最后,运动预测和补偿电路43向可逆编码电路27输出在该运动预测和补偿处理中选择的参考图像数据(参考帧)。
该运动预测和补偿电路43例如基于下面的等式(4)生成指示符数据COSTm。
COSTm=Σ1≤i≤x(SATD+header_cost(mode))---(4)]]>此外,在上面的等式(4)中,“i”是例如添加到形成处理所涉及的宏块MB的、运动预测和补偿模式的大小的每个块数据的标识号码。
也就是说,运动预测和补偿电路43为形成处理所涉及的宏块MB的所有块数据计算“(SATD+header_cost(mode))”,并将其相加,以计算指示符数据COSTm。
“header_cost(mode)”是用作报头数据的代码量的指示符的指示符数据,其中该报头数据包括编码之后的运动矢量、参考图像数据的标识数据、所选择的模式、量化参数(量化标度)等。“header_cost(mode)”的值根据运动预测和补偿模式而不同。
此外,“SATD”是这样的指示符数据,其用作在处理所涉及的宏块MB中的块数据与运动矢量MB所标明的参考图像数据的块数据(参考块数据)之间的差值图像数据的代码量的指示符。
在本实施例中,根据一个或多个参考块数据来定义预测图像数据PIm。
SATD是在将Hadamard变换(Tran)施加到在处理所涉及的块数据Org与参考块数据(预测图像数据)Pre的像素数据之间的绝对差之和后的数据。
根据接下来的等式(5)中的s和t来标明块数据中的像素。
SATD=Σs,t(|Tran(Org(s,t)-Pre(s,t))|)---(5)]]>要注意的是,代替SATD,也可以使用在第一实施例的下面等式(6)中所示的SAD。此外,代替SATD,也可以使用表示失真或残留的其它指示符,诸如在MPEG4和AVC中定义的SSD。
SAD=Σs,t(|Org(s,t)-Pre(s,t)|)---(6)]]>在本实施例中,运动预测和补偿电路43具有各种模式来作为运动预测和补偿模式,例如帧间基础模式、跳过模式、以及直接模式。
帧间基础模式包括帧间16×16模式、帧间8×16模式、帧间8×8模式、帧间4×8模式、和帧间4×4模式。这些模式的块数据的大小为16×16、8×16、16×8、8×8、4×8、和4×4。
此外,也可以针对每个帧间基础模式的大小选择前向预测模式、后向预测模式、或者双向预测模式。
这里,前向预测模式是将具有将来的显示顺序的图像数据用作参考图像数据的模式,后向预测模式是将具有过去的显示顺序的图像数据用作参考图像数据的模式,以及双向预测模式是将具有将来和过去的显示顺序的图像数据用作参考图像数据的模式。
在本实施例中,运动预测和补偿电路43可在运动预测和补偿处理中使用多个参考图像数据。
运动预测和补偿电路43对运动矢量或其差值运动矢量以及在可逆编码电路27中由图像数据26构成的量化后的差值图像数据进行编码,并以帧间基础模式将它们包括在图像数据S2中。
接下来,将给出对跳过模式的说明。
当最终选择跳过模式时,编码部件2的可逆编码电路27没有编码图像数据S26和运动矢量MV的任何信息,也就是说,没有将其包括在图像数据S2中。
要注意的是,可逆编码电路27在图像数据S2中包括由运动预测和补偿电路43选择的运动矢量和补偿模式。
当在图像数据S2中包括的运动检测和补偿模式指示跳过模式时,解码部件3基于在处理所涉及的块数据周围的块数据的运动矢量来生成预测运动矢量,并基于该预测运动矢量来生成解码后的图像数据。
跳过模式既没有编码图像数据S26,也没有编码运动矢量,因此它能够显著地减少已编码的数据量。
除B画面之外,也可为P画面选择跳过模式。
接下来,将给出对直接模式的说明。
当最终选择直接模式时,编码部件2的可逆编码电路27不对运动矢量MV进行编码。
要注意的是,可逆编码电路27编码运动预测和补偿模式以及图像数据S26。
当在图像数据S2中包括的运动预测和补偿模式指示直接模式时,解码部件3基于在处理所涉及的块数据周围的块数据的运动矢量来生成预测运动矢量,并基于这个预测运动矢量和已编码的图像数据S26来生成已解码的图像数据。
该直接模式没有编码运动矢量,所以可减少已编码的数据量。
可以为B画面选择跳过模式。
直接模式包括使用16×16的块大小的16×16直接模式和使用8×8的块大小的8×8直接模式。
此外,16×16直接模式和8×8直接模式的每一个都包括空间直接模式和时间直接模式。
在空间直接模式的情况中,运动预测和补偿电路43通过使用在处理所涉及的块数据周围的块数据的运动矢量来生成预测运动矢量(运动矢量)。
然后,运动预测和补偿电路43基于该预测运动矢量来指定参考块数据,并生成参考图像数据PIm。
此外,在时间直接模式的情况中,运动预测和补偿电路43通过使用在处理所涉及的块数据的参考图像数据中的对应位置上的块数据的运动矢量,来生成预测运动矢量(运动矢量)。
运动预测和补偿电路43基于该预测运动矢量来指定参考块数据,并生成参考图像数据PIm。
当指定了时间直接模式时,解码部件3根据接下来的等式(7)和(8)来计算运动矢量MV0和MV1,例如,帧数据B中处理所涉及的块数据使用帧数据RL0和RL1作为参考图像数据,并且在帧数据RL1中的对应位置处的块数据与帧数据RL0有关的运动矢量是图3所示的MVC。
在接下来的等式(7)和(8)中,TDD指示参考图像数据RL0和参考图像数据RL1之间的显示定时的间隔,而TDB指示在帧数据B和参考图像数据RL0之间的显示定时的间隔。
MV0=(TDB/TDD)*MVC(7)[等式8]MV1=((TDD-TDB)/TDD)*MVC(8)图4示出了运动预测和补偿电路43的硬件配置的示例。
如图4所示,运动预测和补偿电路43例如具有都经由数据线50连接的接口51、存储器52、和处理电路53。
接口51执行数据向帧重排电路23、可逆编码电路27、和帧存储器31的输入/输出。
存储器52存储程序PRG1和用于处理电路53的处理的各种数据。
处理电路53根据从存储器52读出的程序PRG1来集中控制运动预测和补偿电路43的处理。
下面,将给出对运动预测和补偿电路43的操作示例的说明。
处理电路53根据程序PRG1来控制下面所示的运动预测和补偿电路43的操作。
图5和图6是用于说明运动预测和补偿电路43的操作示例的流程图。
运动预测和补偿电路43对原始图像数据S23中的由处理所涉及的块数据执行以下处理。
步骤ST1运动预测和补偿电路43为帧间16×16、帧间8×8、跳过、直接16×16、和直接8×8的每一个生成上面说明的序列中的处理所涉及的块数据的运动矢量MV(帧间16×16)、MV(帧间8×8)、MV(跳过)、MV(直接16×16)、和MV(直接8×8)。
步骤ST2运动预测和补偿电路43判断在步骤ST1生成的运动矢量MV(跳过)和运动矢量MV(帧间16×16)之间的差值矢量的绝对值是否大于先前确定的标准值MV_RANGE,当判断该绝对值大于所述标准值时,前进到步骤ST3,而当判断并非如此时,前进到步骤ST4。
步骤ST3运动预测和补偿电路43确定在后面说明的运动预测和补偿模式的选择处理中没有选择跳过模式。
步骤ST4运动预测和补偿电路43判断在步骤ST1生成的运动矢量MV(直接8×8)和运动矢量MV(帧间8×8)之间的差值矢量的绝对值是否大于先前确定的标准值MV_RANGE,当判断所述绝对值大于所述标准值时,前进到步骤ST5,而当判断并非如此时,前进到步骤ST6。
步骤ST5运动预测和补偿电路43确定在后面说明的运动预测和补偿模式的选择处理中没有选择直接8×8模式。
步骤ST6运动预测和补偿电路43判断在步骤ST1生成的运动矢量MV(直接16×16)和运动矢量MV(帧间16×16)之间的差值矢量的绝对值是否大于先前确定的标准值MV_RANGE,当判断该绝对值大于所述标准值时,前进到步骤ST7,而当判断并非如此时,前进到步骤ST8。
步骤ST7运动预测和补偿电路43确定在后面说明的运动预测和补偿模式的选择处理中没有选择直接16×16模式。
步骤ST8运动预测和补偿电路43根据上面的例程,为没被步骤ST3、ST5、和ST7指定为不被选择的运动预测和补偿模式计算指示符数据COSTm。
步骤ST9运动预测和补偿电路43选择给出步骤ST8所计算的最小指示符数据COSTm的运动预测和补偿模式。
步骤ST10运动预测和补偿电路43向选择电路44输出与所选择的运动预测和补偿模式对应生成的预测图像数据PIm和指示符数据COSTm。
步骤ST11运动预测和补偿电路43判断在预定定时处是否从选择电路44输入了指示选择了运动预测和补偿模式的选择信号S44,当判断输入了选择信号S44时,前进到步骤ST12,而当判断没有输入时,终止该处理。
步骤ST12运动预测和补偿电路43向可逆编码电路27输出与在步骤ST9上选择的运动预测和补偿模式对应地生成的运动矢量MV、或者其差值运动矢量、以及所选择的运动预测和补偿模式MEM。
选择电路44指定从运动预测和补偿电路43输入的指示符数据COSTm和从帧内预测电路41输入的指示符数据COSTi中的较小的指示符数据,并将与指定的指示符数据对应地输入的预测图像数据PIm或者PIi输出到计算电路24和加法器电路33。
此外,当指示符数据COSTm较小时,选择电路44将指示运动预测和补偿模式被选择的选择信号S44输出到运动预测和补偿电路43。
另一方面,当指示符数据COSTi较小时,选择电路44将指示帧内预测模式被选择的选择信号S44输出到运动预测和补偿电路43。
要注意的是,在本实施例中,也有可能的是,帧内预测电路41以及运动预测和补偿电路43将所有已生成的指示符数据COSTi和COSTm输出到选择电路44,并在选择电路44中指定最小的指示符数据。
下面,将给出对图2所示的编码部件2的整体操作的说明。
首先在A/D转换电路22中将成为输入的图像信号转换为数字信号。
接下来,根据成为输出的图像压缩信息的GOP结构,而在帧重排电路23中重新安排帧图像数据。将利用上述方式获得的原始图像数据S23输出到计算电路24、运动预测和补偿电路43、和帧内预测电路41。
接下来,计算电路24检测在来自帧重排电路23的原始图像数据S23和来自选择电路44的预测图像数据PI之间的差别,并向正交变换电路25输出指示该差别的图像数据S24。
接下来,正交变换电路25向图像数据S24应用离散余弦变换、Karhunen-Loewe变换、或者其它正交变换,以生成图像数据(DCT系数)S25,并将其输出到量化电路26。
接下来,量化电路26量化图像数据S25,并输出图像数据(已量化的DCT系数)S26到可逆编码电路27和逆量化电路29。
接下来,可逆编码电路27向图像数据S26应用诸如可变长度编码或者算术编码之类的可逆编码,以生成图像数据S28,并将其存储在缓冲器28中。
速率控制电路32基于从缓冲器28读出的图像数据S28来控制量化电路26中的量化速率。
此外,逆量化电路29对从量化电路26输入的图像数据S26进行逆量化,并将结果输出到逆正交变换电路30。
然后,逆正交变换电路30向加法器电路33输出通过执行正交变换电路25的逆变换处理而生成的图像数据。
加法器电路33对来自逆正交变换电路30的图像数据和来自选择电路44的预测图像数据PI进行相加,以生成重新组合的图像数据,并将其输出到解块滤波器34。
然后,解块滤波器34消除已重新组合的图像数据的块失真,并将所生成的图像数据作为参考图像数据写入到帧存储器31。
帧内预测电路41执行上面说明的帧内预测处理,并向选择电路44输出作为这个处理结果的预测图像数据PIi以及指示符数据COSTi。
此外,运动预测和补偿电路43执行利用图5和图6说明的运动预测和补偿处理,并向选择电路44输出作为这个处理结果的预测图像数据PIm和指示符数据COSTm。
然后,选择电路44指定在从运动预测和补偿电路43输入的指示符数据COSTm和从帧内预测电路41输入的指示符数据COSTi之间的较小的指示符数据,并向计算电路24和加法器电路33输出与指定的指示符数据对应输入的预测图像数据PIm或者PIi。
如上说明的,编码部件2标明在以下情况中没有选择的运动预测和补偿模式,即,如利用图5和图6说明的,在运动预测和补偿模式之中的跳过、直接16×16、和直接8×8的运动矢量MV大于帧间基础模式的运动矢量MV和预定标准值的情况。
为此,在图6所示的步骤ST9的处理中,可以避免这些运动预测和补偿模式的选择。
也就是,当跳过、直接16×16、和直接8×8模式的运动矢量MV极大地偏离原始运动矢量时,即使当指示符数据COSTm较小时,编码部件2也强制选择帧间基础模式,在可逆编码电路27上编码运动矢量或者其差值运动矢量以及作为已量化差值图像数据的图像数据S26,并将其包括在图像数据S2中。
为此,有可能抑制由上面说明的运动矢量的偏离引起的在已解码的图像中察觉的急跳动作等,并实现更高的图像质量。
<第一实施例的修改>
在上面的实施例中,在图5所示的步骤ST2、ST4、和ST5中,先决条件是在运动矢量(跳过)和MV(帧间16×16)之间所利用的参考图像数据相同,但是可以将本发明的实施例应用到参考图像数据不同的情况。
例如,如图7所示,考虑在帧数据B中处理所涉及的块数据在直接16×16模式中使用帧数据F1作为参考图像数据、而在帧间16×16模式中使用帧数据F2作为参考图像数据的情况。
在这个情况中,通过基于接下来的等式(9)校正运动矢量MV(帧间16×16)而获得的运动矢量MV1(帧间16×16)被用于图5图示的判断。
在接下来的等式(9)中,“Tdirect”指示参考图像数据F1和帧数据B之间的显示定时的间隔,而“Tinter”指示帧数据B和参考图像数据F2之间的显示定时的间隔。
MV1=(Tdirect/Tinter)*MV (9)此外,如图7所示,考虑帧数据B中处理所涉及的块数据在直接16×16模式中使用帧数据F1作为参考图像数据、而在帧间16×16模式中使用帧数据F3作为参考图像数据的情况。
在这个情况中,通过基于接下来的等式(10)校正运动矢量MV(帧间16×16)而获得的运动矢量MV2(帧间16×16)被用于图5的判断。
在接下来的等式(10)中,“Tdirect”指示参考图像数据F1和帧数据B之间的显示定时间隔,而“Tinter”指示帧数据B和参考图像数据F3之间的显示定时的间隔。
MV2=(-Tdirect/Tinter)*MV (10)<第二实施例>
本实施例是与第四至第六发明对应的实施例。
首先,将给出本实施例的组件与本发明的组件之间的关系的说明。
图9所示的帧内预测电路41a的处理电路63在图10所示的步骤ST22基于后面说明的等式(12)计算指示符数据SATDa,从而实现了第四发明的生成装置。
通过由处理电路63在图10所示的步骤ST22基于后面说明的等式(11)计算指示符数据COSTai并执行步骤ST24,而实现第四发明的选择装置。
如后面将说明的,利用帧内预测电路41a计算指示符数据SATD(第一指示符数据)的处理对应于第五发明的第一例程或者第六发明的第一处理。
帧内预测电路41a指定Max4×4的处理对应于第五发明的第二例程或者第六发明的第二处理。帧内预测电路41a基于后面说明的等式(12)计算指示符数据SATDa(第二指示符数据)的处理对应于第五发明的第三例程或者第六发明的第三处理。
帧内预测电路41a基于后面说明的等式(11)计算指示符数据COSTai(第三指示符数据)并执行图10所示的步骤ST24的处理对应于第五发明的第四例程或者第六发明的第四处理。
本实施例的块数据对应于本发明的块数据。
以相同的方式,图13所示的运动预测和补偿电路43a的处理电路83基于后面说明的等式(15)在图14所示的步骤ST42中计算指示符数据SATDa,从而实现了第四发明的生成装置。
处理电路83基于后面说明的等式(14)在图14所示的步骤ST22计算指示符数据COSTam并执行步骤ST44,实现第四发明的选择装置。
如后面将说明的,运动预测和补偿电路43a计算指示符数据SATD(第一指示符数据)的处理对应于第五发明的第一例程或者第六发明的第一处理。
运动预测和补偿电路43a指定Max4×4的处理对应于第五发明的第二例程或者第六发明的第二处理。
运动预测和补偿电路43a基于后面说明的等式(15)计算指示符数据SATDa(第二指示符数据)的处理对应于第五发明的第三例程或者第六发明的第三处理。
运动预测和补偿电路43a基于后面说明的等式(14)计算指示符数据COSTam(第三指示符数据)并执行图14所示的步骤ST44的处理对应于第五发明的第四例程或者第六发明的第四处理。
本实施例的程序PRG2和PRG3的每一个对应于第五发明的程序。
下面,将给出对于根据本实施例的编码部件的详细说明。
图8是根据本发明的实施例的编码部件2a的配置的整体视图。
如图8所示,编码部件2a具有例如A/D转换电路22、帧重排电路23、计算电路24、正交变换电路25、量化电路26、可逆编码电路27、缓冲器28、逆量化电路29、逆正交变换电路30、帧存储器31、速率控制电路32、加法器电路33、解块滤波器34、帧内预测电路41a、运动预测和补偿电路43a、和选择电路44。
在图7中,与图2中的组件具有相同标记的组件与第一实施例中说明的那些组件相同。
本实施例的编码部件2a的特征在于帧内预测电路41a和运动预测和补偿电路43a。
帧内预测电路41a为多个预测模式(例如帧内4×4模式和帧内16×16模式)中的每一个生成处理所涉及的宏块MB的预测图像数据PIi,并基于该预测图像数据和原始图像数据S23中处理所涉及的宏块MB来生成用作已编码数据的代码量的指示符的指示符数据COSTai。
然后,帧内预测电路41a选择给出最小指示符数据COSTai的帧内预测模式。
帧内预测电路41a向选择电路44输出与最终选择的帧内预测模式对应生成的预测图像数据PIi和指示符数据COSTai。
当作为输入而接收指示选择了帧内预测模式的选择信号S44时,帧内预测电路41a向可逆编码电路27输出指示最终选择的帧内预测模式的预测模式IMP。
要注意的是,即使对于属于P片段或者B片段的宏块MB,有时候也执行帧内预测电路41a的帧内预测编码。
帧内预测电路41a例如基于接下来的等式(11)来生成指示符数据COSTi。
COSTai=Σ1≤i≤x(SATDa+header_cost(mode))---(11)]]>在上面的等式(11)中,“i”是例如添加到形成处理所涉及的宏块MB的、大小与帧内预测模式对应的每个块数据的标识号码。
也就是,帧内预测电路41a为形成处理所涉及的宏块MB的所有块数据计算“SATDa+header_cost(mode))”,并将其相加,以计算指示符数据COSTai。
“header_cost(mode)”是用作报头数据的代码量的指示符的指示符数据,并根据预测模式而指示不同的值,其中该报头数据包括所选择的帧内预测模式、量化参数(量化标度)等。
此外,SATDa是这样的指示符数据,其用作在处理所涉及的宏块MB中的块数据与在该块数据周围的先前确定的块数据(预测块数据)之间的差值图像数据的代码量的指示符。
在本实施例中,根据一个或多个预测块数据来定义预测图像数据PIi。
本实施例的特征在于计算SATDa的方法。
帧内预测电路41a如图12(A)和接下来的等式(12)所示为帧内16×16模式和帧内4×4模式计算指示符数据SATDa。
SATDa=(SATD+Max4×4*16)/2 (12)上面等式(12)中的“SATD”与第一实施例中说明的等式(5)中的相同。
要注意,在本实施例中,帧内预测电路41a以4×4像素数据为单位对包括16×16像素数据的块数据执行上面等式(5)的计算,并将结果相加以计算SATD。
也就是,SATD是例如在对处理所涉及的块数据Org与预测图像数据(参考块数据)Pre的像素数据之间的绝对差之和应用Hadamard变换之后的数据。
这里,帧内预测电路41a指定在为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将其定义为Max4×4。
然后,帧内预测电路41a将“Max4×4*16”与SATD相加,并将相加结果除以2,以计算指示符数据SATDa。
通过使用上面的等式(12),帧内预测电路41a能够计算其中与仅使用SATD的情况相比更强烈地反映Max4×4(差值的最大值)的影响的指示符数据SATDa。
要注意的是,代替SATD,也可使用第一实施例的等式(3)所示的SAD。
此外,代替SATD,也可使用表示失真或残留的另一个指示符,诸如在MPEG4和AVC中定义的SSD。
图9示出了图8所示的帧内预测电路41a的硬件配置的示例。
如图9所示,帧内预测电路41a例如具有都经由数据线60连接的接口61、存储器62、和处理电路63。
接口61执行与帧重排电路23、可逆编码电路27、和帧存储器31的数据输入/输出。
存储器62存储程序PRG2和用于处理电路63的处理的各种数据。
处理电路63根据从存储器62读出的程序PRG2来集中控制帧内预测电路41a的处理。
下面,将给出对帧内预测电路41a的操作示例的说明。
处理电路63根据程序PRG2来控制下面所示的帧内预测电路41a的操作。
图10是用于说明帧内预测电路41a的操作示例的流程图。
帧内预测电路41a对原始图像数据S23中处理所涉及的块数据执行接下来的处理。
步骤ST21帧内预测电路41a指定在包括帧内16×16模式和帧内4×4模式的多个帧内预测模式之中的还没有处理的帧内预测模式。
步骤ST22帧内预测电路41a通过利用上面的等式(12)说明的方式,为在步骤ST21指定的帧内预测模式计算指示符数据COSTai。
步骤ST23帧内预测电路41a判断是否为所有的帧内预测模式结束了步骤ST22的处理,当判断结束时,前进到步骤ST24,而当判断没有结束时,返回到步骤ST21。
步骤ST24帧内预测电路41a选择在步骤S22中为所有帧内预测模式计算的指示符数据COSTai之中的最小帧内预测模式。
步骤ST25帧内预测电路41a向选择电路44输出与步骤ST24选择的帧内预测模式对应地生成的预测图像数据PIi和指示符数据COSTai。
步骤ST26帧内预测电路41a判断在预定定时上是否从选择电路44输入了指示选择了帧内预测模式的选择信号S44,当判断输入了选择信号S44时,前进到步骤ST27,而当判断并没有输入时,结束处理。
步骤ST27帧内预测电路41a向可逆编码电路27输出在步骤ST24中选择的帧内预测模式IPM。
要注意的是,代替图9所示的配置,帧内预测电路41a也有可能具有例如图11所示的SATD计算电路71、最大值指定电路72、COST计算电路73、和模式判断电路74。
这里,SATD计算电路71执行上面等式(5)的计算,并将结果相加以计算SATD。
此外,最大值指定电路72指定为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将该最大值定义为Max4×4。
COST计算电路73将“Max4×4*16”与SATD相加,并用结果除以2以计算指示符数据SATDa。
此外,模式判断电路74执行图10中所示的步骤ST24的处理。
在从帧重排电路23输入的原始图像数据S23中的处理所涉及的宏块MB被帧间编码的情况中,运动预测和补偿电路43a以运动预测和补偿模式所定义的块数据为单位,基于过去编码并存储在帧存储器31中的参考图像数据,而为多个运动预测和补偿模式的每一个生成处理所涉及的块数据的运动矢量MV和预测图像数据。
例如,用运动预测和补偿模式来定义块数据和参考图像数据REF的大小。
此外,运动预测和补偿电路43a基于原始图像数据S23中的处理所涉及的宏块MB及其预测块数据(预测图像数据PIm),而为运动预测和补偿模式的每一个生成用作已编码数据的代码量的指示符的指示符数据COSTam。
然后,运动预测和补偿电路43a选择给出最小指示符数据COSTam的运动预测和补偿模式。
运动预测和补偿电路43a向选择电路44输出与最终选择的运动预测和补偿模式对应地生成的预测图像数据PIm和指示符数据COSTma。
运动预测和补偿电路43a向可逆编码电路27输出与最终选择的运动预测和补偿模式对应生成的运动矢量、或者在该运动矢量和预测运动矢量之间的差值运动矢量。
运动预测和补偿电路43a向可逆编码电路27输出最终选择的运动预测和补偿模式MEM。
运动预测和补偿电路43a向可逆编码电路27输出在运动预测和补偿处理中选择的参考图像数据(参考帧)的标识数据。
运动预测和补偿电路43a例如基于接下来的等式(13)来生成指示符数据COSTam。
COSTam=Σ1≤i≤x(SATDa+header_cost(mode))---(13)]]>在上面的等式(13)中,“i”是例如添加到形成处理所涉及的宏块MB的、大小与运动预测和补偿模式对应的每个块数据的标识号码。
也就是,运动预测和补偿电路43a为形成处理所涉及的宏块MB的所有块数据计算“SATD+header_cost(mode))”,并将其相加,以计算指示符数据COSTam。
“header_cost(mode)”是用作报头数据的代码量的指示符的指示符数据,并根据运动预测和补偿模式而指示不同的值,其中该报头数据包运动矢量或者其差值运动矢量、参考图像数据的标识数据、所选择的运动预测和补偿模式、量化参数(量化标度)等。
此外,SATDa是这样的指示符数据,其用作在处理所涉及的宏块MB中的块数据与在该块数据周围的先前确定的块数据(预测块数据)之间的差值图像数据的代码量的指示符。
在本实施例中,根据一个或多个预测块数据来定义预测图像数据PIi。
本实施例的特征在于计算SATDa的方法。
运动预测和补偿电路43a如图12(A)中和接下来的等式(14)所示为在第一实施例中说明的帧间16×16模式、帧内16×16模式、帧内4×4模式、跳过模式、和直接16×16模式计算指示符数据SATDa。
SATDa=(SATD+Max4×4*16)/2 (14)上面等式(14)中的“SATD”与第一实施例中说明的等式(5)中的相同。
要注意的是,运动预测和补偿电路43a以4×4像素数据为单位对包括16×16像素数据的块数据执行上面等式(5)的计算,并将结果相加以计算SATD。
也就是,例如,SATD是在对处理所涉及的块数据Org与预测图像数据(参考块数据)Pre的像素数据之间的绝对差之和应用Hadamard变换之后的数据。
这里,运动预测和补偿电路43a指定在为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将其定义为Max4×4。
然后,运动预测和补偿电路43a将“Max4×4*16”与SATD相加,并将相加结果除以2,以计算指示符数据SATDa。
通过使用上面的等式(14),运动预测和补偿电路43a能够计算其中与仅使用SATD的情况相比更强烈地反映Max4×4(最大差值)的影响的指示符数据SATDa。
此外,运动预测和补偿电路43a如图12(B)中和接下来的等式(15)所示为帧间8×16模式和帧间16×8模式计算指示符数据SATDa。
SATDa=(SATD+Max4×4*8)/2 (15)上面等式(15)中的“SATD”与第一实施例中说明的等式(5)中的相同。
要注意的是,运动预测和补偿电路43a以4×4像素数据为单位对包括8×16或者16×8像素数据的块数据执行上面等式(5)的计算,并将结果相加以计算SATD。
也就是,例如,SATD是在对处理所涉及的块数据Org与预测图像数据(参考块数据)Pre的像素数据之间的绝对差之和应用Hadamard变换之后的数据。
这里,运动预测和补偿电路43a指定在为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将其定义为Max4×4。
然后,运动预测和补偿电路43a将“Max4×4*8”与SATD相加,并将相加结果除以2,以计算指示符数据SATDa。
通过使用上面的等式(15),运动预测和补偿电路43a能够计算其中与仅使用SATD的情况相比更强烈地反映Max4×4(最大差值)的影响的指示符数据SATDa。
此外,运动预测和补偿电路43a如图12(C)中和接下来的等式(16)所示为在第一实施例中说明的帧间8×8模式和直接8×8模式计算指示符数据SATDa。
SATDa=(SATD+Max4×4*4)/2 (16)
上面等式(16)中的“SATD”与第一实施例中说明的等式(5)中的相同。
要注意的是,运动预测和补偿电路43a以4×4像素数据为单位,对包括8×8像素数据的块数据执行上面等式(5)的计算,并将结果相加以计算SATD。
也就是,例如,SATD是在对处理所涉及的块数据Org和预测图像数据(参考块数据)Pre的像素数据之间的绝对差之和应用Hadamard变换之后的数据。
这里,运动预测和补偿电路43a指定在为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将其定义为Max4×4。
然后,运动预测和补偿电路43a将“Max4×4*4”与SATD相加,并将相加结果除以2,以计算指示符数据SATDa。
通过使用上面的等式(16),运动预测和补偿电路43a能够计算其中与仅使用SATD的情况相比更强烈地反映Max4×4(最大差值)的影响的指示符数据SATDa。
此外,运动预测和补偿电路43a如图12(D)中和接下来的等式(17)所示为帧间4×8模式和帧间8×4模式计算指示符数据SATDa。
SATDa=(SATD+Max4×4*2)/2 (17)上面等式(17)中的“SATD”与第一实施例中说明的等式(5)中的相同。
要注意的是,运动预测和补偿电路43a以4×4像素数据为单位,对包括8×4或者4×8像素数据的块数据执行上面等式(5)的计算,并将结果相加以计算SATD。
也就是,例如,SATD是在对处理所涉及的块数据Org以及预测图像数据(参考块数据)Pre的像素数据之间的绝对差之和应用Hadamard变换之后的数据。
这里,运动预测和补偿电路43a指定在为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将其定义为Max4×4。
然后,运动预测和补偿电路43a将“Max4×4*2”相加到SATD,并将相加结果除以2,以计算指示符数据SATDa。
通过使用上面的等式(17),运动预测和补偿电路43a能够计算其中与仅使用SATD的情况相比更强烈地反映Max4×4(最大差值)的影响的指示符数据SATDa。
此外,运动预测和补偿电路43a如图12(E)中和接下来的等式(18)所示为帧间4×4模式计算指示符数据SATDa。
SATDa=(SATD+Max4×4) (18)上面等式(18)中的“SATD”与第一实施例中说明的等式(5)中的相同。
要注意的是,运动预测和补偿电路43a以4×4像素数据为单位,对包括4×4像素数据的块数据执行上面等式(5)的计算,并将结果相加以计算SATD。
也就是,例如,SATD是在对处理所涉及的块数据Org以及预测图像数据(参考块数据)Pre的像素数据之间的绝对差之和应用Hadamard变换之后的数据。
这里,运动预测和补偿电路43a指定在为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将其定义为Max4×4。
然后,运动预测和补偿电路43a将“Max4×4”与SATD相加,并将相加结果除以2,以计算指示符数据SATDa。
通过使用上面的等式(18),运动预测和补偿电路43a能够计算其中与仅使用SATD的情况相比更强烈地反映Max4×4(最大差值)的影响的指示符数据SATDa。
要注意的是,代替SATD,也可以使用第一实施例的等式(3)所示的SAD。
图13是图8所示运动预测和补偿电路43a的硬件配置的示例。
如图13所示,运动预测和补偿电路43a具有例如都经由数据线80连接的接口81、存储器82、和处理电路83。
接口81执行与帧重排电路23、可逆编码电路27、和帧存储器31的数据输入/输出。
存储器82存储程序PRG3和用于处理电路53的处理的各种数据。
处理电路83根据从存储器82读出的程序PRG3来集中控制运动预测和补偿电路43a的处理。
下面,将给出对运动预测和补偿电路43a的操作示例的说明。
处理电路83根据程序PRG3来控制下面所示的运动预测和补偿电路43a的操作。
图14是用于说明运动预测和补偿电路43a的操作示例的流程图。
运动预测和补偿电路43a对原始图像数据S23中的处理所涉及的块据执行以下处理。
步骤ST41运动预测和补偿电路43a指定在包括帧间16×16模式、跳过模式、直接16×16模式、帧间8×16模式、帧间16×8模式、帧间8×8模式、直接8×8、帧间4×8模式、帧间8×4模式、和帧间4×4模式的多个运动预测和补偿模式之中的还没有被处理的运动预测和补偿模式。
步骤ST42运动预测和补偿电路43a通过上面说明的方式,为在步骤ST41指定的运动预测和补偿模式计算指示符数据COSTam。
步骤ST43运动预测和补偿电路43a判断是否对所有运动预测和补偿模式结束了步骤ST42的处理,当判断其结束时,前进到步骤ST44,并且当判断还没有结束时,返回到步骤ST41。
步骤ST44运动预测和补偿电路43a选择在步骤ST42为所有运动预测和补偿模式计算的指示符数据COSTam之中的最小运动预测和补偿模式。
步骤ST45运动预测和补偿电路43a向选择电路44输出与在步骤ST44选择的运动预测和补偿模式对应生成的预测图像数据PImi、以及指示符数据COSTam。
步骤ST46运动预测和补偿电路43a判断是否在预定的定时上从选择电路44输入了指示选择了运动预测和补偿模式的选择信号S44,当判断输入了时,前进到步骤ST47,当判断没有输入时,结束处理。
步骤ST47运动预测和补偿电路43a向可逆编码电路27输出在步骤ST44选择的运动预测和补偿模式MPM、运动矢量MV、和参考图像数据的标识数据。
要注意的是,也可以代替图13中所示的配置,运动预测和补偿电路43a具有例如图15所示的SATD计算电路91、最大值指定电路92、COST计算电路93、和模式判断电路94。
这里,SATD计算电路91执行上面等式(5)的计算,并将结果相加以计算SATD。
此外,最大值指定电路92指定在为块数据中的每个4×4像素数据执行等式(5)的计算结果之中的最大值,并将该最大值定义为Max4×4。
COST计算电路93通过使用如上所述的SATD来计算指示符数据SATDa。
此外,模式判断电路94执行图14中所示的步骤ST44的处理。
除了帧内预测电路41a和运动预测和补偿电路43a执行上面说明的操作之外,编码部件2a的整个操作示例与第一实施例的编码部件2的相同。
在本实施例中同样要注意的是,也有可能的是,即使帧内预测电路41a和运动预测和补偿电路43a所生成的所有指示符数据COSTai和COSTam都输出到选择电路44,选择电路44也指定最小的指示符数据。
如上所述,编码部件2a使用与在帧内预测电路41a和运动预测和补偿电路43a的模式选择中仅使用SATD的情况相比更强烈地反映Max4×4(最大差值)的影响的指示符数据SATDa。
为此,根据编码部件2a,当处理所涉及的宏块中的部分块的代码量大而为大多数其它块的代码量小时,有可能为这部分块的编码选择从图像质量的角度看更合适的模式。
<第二实施例的修改>
在上面说明的第二实施例中,示范了基于图12和等式(12)以及等式(14)至(18)计算指示符数据SATDa的情况,但是在本实施例中,帧内预测电路41a和运动预测和补偿电路43a如图16和接下来的等式(19)至(23)所示而计算指示符数据SATDa。
在接下来的等式(19)至(23)中,a、b、c、d、e、f、g、h、i、和j是预定的系数。
这里,系数a、c、e、g、和i对应于第四发明的第一系数,而系数b、d、f、h、和j对应于第四发明的第二系数。
例如,帧内预测电路41a根据图16(A)和接下来的等式(19)在帧间16×16模式中计算指示符数据SATDa。
SATDa=(a*SATD+b*Max4×4*16)/(a+b) (19)此外,帧内预测电路41a和运动预测和补偿电路43a根据图16(B)和接下来的等式(20)在帧内16×16模式、帧内4×4模式、跳过模式、和直接16×16模式中计算指示符数据SATDa。
SATDa=(c*SATD+d*Max4×4*16)/(c+d) (20)此外,运动预测和补偿电路43a根据图16(C)和接下来的等式(21)在帧间8×16模式和帧间16×8模式中计算指示符数据SATDa。
SATDa=(e*SATD+f*Max4×4*8)/(e+f) (21)此外,运动预测和补偿电路43a根据图16(D)和接下来的等式(22)在帧间8×8模式和直接8×8模式中计算指示符数据SATDa。
SATDa=(g*SATD+h*Max4×4*4)/(g+h) (22)此外,运动预测和补偿电路43a根据图16(E)和接下来的等式(23)在帧间4×8模式和帧间8×4模式中计算指示符数据SATDa。
SATDa=(i*SATD+j*Max4×4*2)/(i+j) (23)此外,运动预测和补偿电路43a根据图16(F)和接下来的等式(24)在帧间4×4模式中计算指示符数据SATDa。
SATDa=(SATD+Max4×4) (24)在本实施例中,例如,可以从外面设置系数a、b、c、d、e、f、g、h、i、和j,以及可以自由地设置SATD和Max4×4的权重。
例如,在本实施例中,也可以设置成a=15、b=1、c=7、d=1、e=1、f=1、g=3、h=1、i=1、和j=1。
本发明不限于上面说明的实施例。
本发明可使用除上面说明的帧内预测模式以及运动预测和补偿模式之外的其它模式。
工业实用性本发明可应用于用于编码图像数据的系统。
权利要求
1.一种图像处理设备,用于生成在二维图像区域中定义的多个块之中的处理所涉及的块的块数据的运动矢量,并编码该运动矢量、以及在基于该运动矢量生成的预测块数据与该处理所涉及的块数据之间的差值,该图像处理设备包括判断装置,用于判断为第一模式和第二模式的每一个生成的运动矢量之间的差值是否超过预定标准,其中,该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码该已预测的运动矢量,该第二模式基于在该处理所涉及的块数据与参考图像数据中的块数据之间的差值来生成该处理所涉及的块数据的运动矢量,并且编码该运动矢量、以及在该处理所涉及的块数据与参考图像数据中对应于所生成的运动矢量的参考块数据之间的差值图像数据;以及选择装置,当该判断装置判断所述差值超过所述预定标准时,选择该第二模式,以及当该判断装置判断所述差值没有超过所述预定标准时,从所述第一模式和第二模式中选择通过编码已编码的数据量变成最小的模式。
2.根据权利要求
1的图像处理设备,还包括提供装置,用于执行以下处理,提供所述选择装置所选择的所述模式的标识数据和所述已选择模式所定义的数据。
3.根据权利要求
1的图像处理设备,其中所述选择装置使用所述第一模式,进一步编码在所述该处理所涉及的所述块数据与参考图像数据中的所述已预测运动矢量所指示的参考块数据之间的差值图像数据。
4.根据权利要求
3的图像处理设备,其中所述选择装置使用所述第一模式,根据该处理所涉及的块数据所属于的帧数据或场数据中的所述其它块数据的运动矢量来执行预测。
5.根据权利要求
3的图像处理设备,其中所述选择装置使用所述第一模式,根据与该处理所涉及的块数据所属于的帧数据或者场数据不同的帧数据或者场数据中的所述其它块数据的运动矢量来执行预测。
6.根据权利要求
1的图像处理设备,其中所述选择装置使用所述第一模式,不向解码方提供在该处理所涉及的所述块数据与参考图像数据中的所述已预测的运动矢量指示的参考块数据之间的差值图像数据。
7.根据权利要求
1的图像处理设备,其中当用于生成所述运动矢量的帧数据或者场数据在所述第一模式和所述第二模式之间不同时,所述判断装置转换为一个模式生成的所述运动矢量,从而对应于其它模式所使用的参考图像数据,并使用该已转换的运动矢量来生成所述差值。
8.一种程序,用于使计算机执行以下处理用于生成在二维图像区域中定义的多个块之中的处理所涉及的块的块数据的运动矢量,并编码该运动矢量、以及在基于该运动矢量生成的预测块数据与该处理所涉及的块数据之间的差值,所述程序包括第一例程,用于为第一模式和第二模式的每一个生成运动矢量,其中,该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码该已预测的运动矢量,该第二模式基于在该处理所涉及的块数据与参考图像数据中的块数据之间的差值来生成该处理所涉及的块数据的运动矢量,并且编码该运动矢量、以及在该处理所涉及的块数据与参考图像数据中对应于已生成的运动矢量的参考块数据之间的差值图像数据;第二例程,用于判断在第一例程中生成的第一模式的运动矢量和第二模式的运动矢量之间的差值是否超过预定标准;以及第三例程,当在第二例程中判断所述差值超过所述预定标准时,选择该第二模式,以及当判断所述差值没有超过所述预定标准时,从所述第一模式和第二模式之中选择通过编码已编码的数据量变成最小的模式。
9.一种图像处理方法,包括使计算机执行以下处理用于生成在二维图像区域中定义的多个块之中的处理所涉及的块的块数据的运动矢量,并编码该运动矢量、以及在基于该运动矢量生成的预测块数据与该处理所涉及的块数据之间的差值,所述图像处理方法包括第一处理,用于为第一模式和第二模式的每一个生成运动矢量,其中,该第一模式根据其它块数据的运动矢量来预测该处理所涉及的块数据的运动矢量,并且不编码该已预测的运动矢量,该第二模式基于在该处理所涉及的块数据与参考图像数据中的块数据之间的差值来生成该处理所涉及的块数据的运动矢量,并且编码该运动矢量、以及在该处理所涉及的块数据与参考图像数据中对应于已生成的运动矢量的参考块数据之间的差值图像数据;第二处理,用于判断在该第一处理中生成的第一模式的运动矢量和第二模式的运动矢量之间的差值是否超过预定标准;以及第三处理,当在该第二处理中判断所述差值超过所述预定标准时,选择该第二模式,以及当判断所述差值没有超过所述预定标准时,从所述第一模式和第二模式之中选择通过编码其代码量变成最小的模式。
10.一种图像处理设备,用于编码在形成二维图像区域中定义的宏块的一个或多个块之中的处理所涉及的块的块数据,该编码是基于该块数据和该块数据的预测块数据来进行的,该图像处理设备包括生成装置,用于根据在形成该处理所涉及的块数据的一个或多个单位块数据和预测块数据中与这个单位块数据对应的单位块数据之间的差值、以单位块数据为单位来生成第一指示符数据,指定该第一指示符数据中的指示最大数据的第一指示符数据,并基于所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据而生成的第一指示符数据之和相比、已指定的第一指示符数据作为值被强烈地反映;和选择装置,用于根据该生成装置为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
11.根据权利要求
10的图像处理设备,其中所述多个模式包括帧内预测模式以及运动预测和补偿模式中的至少一个。
12.根据权利要求
10的图像处理设备,其中所述生成装置生成与以下两项之和的值对应的所述第二指示符数据,即为形成该处理所涉及的所述块数据的所述单位块数据生成的所述第一指示符数据、和形成该处理所涉及的所述块数据的所述单位块数据的数目乘以所述已指定的第一指示符数据。
13.根据权利要求
10的图像处理设备,其中所述生成装置生成与以下两项之和的值对应的所述第二指示符数据,即,为形成该处理所涉及的所述块数据的所述单位块数据生成的所述第一指示符数据乘以第一系数、和形成该处理所涉及的所述块数据的所述单位块数据的数目乘以所述已指定的第一指示符数据。
14.一种程序,用于使计算机执行以下处理编码在形成二维图像区域中定义的宏块的一个或多个块之中的处理所涉及的块的块数据,该编码是基于该块数据和该块数据的预测块数据来进行的,该程序包括第一例程,根据在形成该处理所涉及的块数据的一个或多个单位块数据和预测块数据中的与这个单位块数据对应的单位块数据之间的差值,以单位块数据为单位来生成第一指示符数据;第二例程,指定在该第一例程中生成的所述第一指示符数据之中的指示最大数据的第一指示符数据;第三例程,基于在第一例程中生成的所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据生成的第一指示符数据之和相比、该第二例程中所指定的第一指示符数据被作为值被强烈地反映;和第四例程,用于根据在该第三例程中为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
15.一种图像处理方法,包括使计算机执行以下处理编码在形成二维图像区域中定义的宏块的一个或多个块之中的处理所涉及的块的块数据,该编码是基于该块数据和该块数据的预测块数据来进行的,该方法包括第一处理,根据在形成该处理所涉及的块数据的一个或多个单位块数据和预测块数据中的与这个单位块数据对应的单位块数据之间的差值,以单位块数据为单位来生成第一指示符数据;第二处理,指定在该第一处理中生成的所述第一指示符数据之中的指示最大数据的第一指示符数据;第三处理,基于在第一处理中生成的所述第一指示符数据来生成第二指示符数据,其中与为形成该处理所涉及的块数据的单位块数据而生成的第一指示符数据之和相比、该第二处理中所指定的第一指示符数据作为值被强烈地反映;和第四处理,用于根据在该第三处理中为形成该处理所涉及的宏块的所述一个或多个块数据生成的第二指示符数据之和,从其中为该处理所涉及的宏块所定义的块数据的大小、是否编码所述运动矢量、和是否编码所述差值中的至少一个彼此不同的多个模式中,选择给出最小的第三指示符数据的模式。
专利摘要
当预测的运动矢量和实际的运动矢量之间的差值超过预定参考值时,运动预测/补偿电路不选择运动预测/补偿模式之中的跳过模式和直接模式。
文档编号H04N7/50GK1993993SQ200580026529
公开日2007年7月4日 申请日期2005年6月1日
发明者田中润一, 佐藤数史, 桥野司, 矢崎阳一 申请人:索尼株式会社导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1