专利名称:编码失真消除方法、视频编码方法、视频解码方法、装置及其程序的制作方法
技术领场本发明涉及用来消除编码视频信号时发生的编码失真的编码失真消除方法,利用该编码失真消除方法增加压缩率的编码方法和解码方法,以及用来存储用软件实现这些方法的程序的数据记录介质。
背景技术:
通过将数字技术与多种音频、视频、和其它种类的像素流结合成单一传输流的先进技术,传统的信息媒介,即,与公众交流信息的方式,如报纸、杂志、电视、电台和电话现在可以用作多媒体通信。“多媒体”通常是指在单一传输流中链接在一起的文本、图形、音频和视频,但是传统的信息媒介必须先进行数字化才能够用多媒体的格式来处理信息。
当转换为数字数据时,存储传统信息媒介所携带的信息所需的存储容量估计对于文本来说每个字符只需要1或2个字节,而对于1秒钟电话质量的音频需要64kbits,对于1秒钟具有当前电视接收机质量的视频需要100Mbits。因此,以数字形式在上述信息媒介上处理这些大信息量不太实际。例如,可视电话业务可以使用具有64Kbps到1.5Mbps传输速率的ISDN(综合业务数字网)线路,而电视摄像机等级的视频就不能通过ISDN线路来发送。
因此数据压缩变得很重要。例如,可视电话业务是利用ITU-T(国际电信联盟,电信标准化段)的建议书H.261和H.263推荐的国际标准的视频压缩技术实现可视电话业务的。利用MPEG-1规定的数据压缩方法,视频信息可以与音频一起记录在常规的音频CD(密致盘)上。
MPEG(运动图像专家组)是用来数字地压缩运动图像信号(视频)的国际标准。MPEG-1能够将视频信号压缩到1.5Mbps,即,压缩电视信号中的信息大约为100∶1。另外,因为MPEG-1视频的传输速率被限制在大约1.5Mbps,为满足更高图像质量要求而标准化的MPEG-2能够将运动图像信号压缩到2Mbps到15Mbps。
具有更高压缩率的MPEG-4已经由工作组(ISO/IECJTC1/SC29/WG11)制定为比MPEG-1和MPEG-2更先进的标准。MPEG-4不仅能够降低比特率,提高编码效率,而且还引入了即使在传输路径发生错误时也能够降低主观图像恶化的强大的错误阻止技术。ITU-T还正在致力于将建议书H.26L作为下一代图像编码方法的标准。
与常规的视频编码技术不同,H.26L使用伴随有复杂处理过程的编码失真消除方法来消除编码失真。利用象广泛用于视频编码的DCT技术的正交变换的块单元编码方法能够解决编码块边界块失真的网格类失真。因为在低频分量损失的图像质量比在高频分量损失的图像质量明显,所以在块单元编码中对低频分量的编码比高频分量更可靠。此外,因为由照相机捕捉到的自然图像包含的低频分量多于高频分量,所以编码块包含的低频分量比高频分量多。因此,编码块实际上往往不包含高频分量,并且块中相邻像素实际上往往具有相同的像素值。
此外,由于编码是以块为单位的,因此不能保证相邻块边界具有相同的像素值,就是说,即使像素值在每个块中是相同的,像素值在穿过块边界时会不断变化。结果就是,如图31中所示的编码失真消除的概念,当像素中的变化在跨越如图31(a)所示的虚线表示的块边界的源图像中是平滑且连续,并且通过块单元对源图像编码后,像素值在如图31(b)所示的每个块中连续变化,产生块失真,即,只在块边界的像素值中的不连续性。块失真是图像编码导致的明显的图像质量问题,但是可以通过纠正使像素在穿过图31(c)所示的块边界时连续来减小块失真。这个减小块失真的过程被称作编码失真消除(也称作“去块”)。
当在视频解码阶段采用“去块”时,可以使用去块滤波器作为如图32中利用常规解码方法的视频解码器方框图中所示的后置滤波器,或者可以用作如图33中利用常规解码方法的视频解码器方框图中所示的环路(in-loop)滤波器。下面将描述这些方框图中所示的配置。
在图32所示的利用常规解码方法的视频解码器的方框图中,可变长度解码器52对编码后的信号Str进行可变长度的解码并且输出频率编码分量DCoef。去Z字形扫描单元54重新排列二维块中频率编码分量DCoef的频率分量,并且输出频率分量FCoef、块单元频率分量。反余弦变换单元56对频率分量Fcoef进行去量化和反DCT操作,然后输出差分(difference)图像DifCoef。
运动补偿器60从存储器64中累加的参考图像Ref中输出由外部输入运动矢量MV表示的位置上的像素作为运动补偿图像MCpel。加法器58将差分图像DifCoef和运动补偿图像Mcpel相加,以输出重构的图像Coef。去块滤波器62编码失真消除应用于重构图像Coef,并输出解码的图像信号Vout。重构的图像Coef存储在存储器64中,并且用作下一个图像解码的参考图像Ref。
图33中利用常规解码方法的视频解码器的方框图与图32所示的视频解码器的方框图基本相同,不同之处在于去块滤波器62的位置。如从图33得知的,从去块滤波器62输出的已解码图像信号Vout存储在存储器64中。
图32中利用常规解码方法的视频解码器的方框图示出了MPEG-1、MPEG-2、MPEG-4和H.263中使用的配置和方法。图33中利用常规解码方法的视频解码器的方框图示出了用于H.261和H.26L TM8的配置和方法。
对于图32中的利用常规解码方法的视频解码器的方框图,存储在存储器64中的重构图像Coef不依赖于去块滤波器62所采用的方法。这样允许开发和实现各种去块滤波器62,根据可用硬件和指定应用的性能包括复数高性能滤波器和效果相对较差的简单滤波器。它的优点在于可使用适合于该设备的去块滤波器62。
对于图33中的利用常规解码方法的视频解码器的方框图,存储在存储器64中的已解码图像信号Vout取决于去块滤波器62采用的方法。这里的问题终于滤波器不能为适应硬件或应用程序而改变,但是它的优点在于在每个设备中能够保证相同等级的编码失真消除。
图34是利用常规编码失真消除方法的编码失真消除单元的方框图。图34示出了图32和图33中去块滤波器62的详细配置。为了有效地从包含编码失真的图像信号中只消除编码失真,关键是确定图像信号中编码失真的量和趋势,然后采用合适的滤波以便不降低实际的图像质量。
因为高频分量是导致许多编码失真的原因,所以编码失真消除背后的通用概念是调查图像信号来确定图像信号中高频分量的比例,识别图像信号像素中通常被认为不包含作为编码失真的高频分量的高频分量,然后对编码失真采用高频分量抑制滤波。因为图像信号中相邻像素之间存在很高的相关性,所以包含高频分量的像素集中在边缘区域,因此,可以认为分散的高频分量为编码失真。
去块滤波器62是本发明的发明者根据ITU-T建议书H.26L TML8中内容创造的。
滤波像素计数控制器84利用重构图像Coef来确定包含编码失真的像素位置,然后输出滤波后的像素计数FtrPel。滤波器系数控制器86利用滤波像素计数FtrPel和重构图像Coef来确定适合从指示的像素中消除编码失真的滤波器系数(包括滤波器抽头数量),然后输出滤波器系数FtrTap。滤波处理器88利用滤波器系数FtrTap指示的滤波器系数进行滤波,以便从重构图像Coef中消除编码失真,并输出解码后的图像信号Vout。
发明内容
上述常规的编码失真消除方法在消除编码失真时特别有效,但是过程极其复杂并且难以实现。
另一个问题是每个单位时间的数据处理量很大。
另外,无论该编码失真消除方法多么有效,但是如果没有其它附加信息它也无法精确地区分图像信号和编码失真,因此,存在着编码失真消除会降低图像质量的可能性。这个问题对如图33中利用常规解码方法的视频解码器的方框图中所示的配置尤为严重,这是因为去块的结果被用作参考图像,并因此影响对每个后续图面编码的结果。
因此,本发明的一个目的是提供一种简便的编码失真消除法。
另一个目的是提供编码失真消除方法、编码方法和解码方法,由此可通过应用高性能编码失真消除,以使作为消除编码失真结果的图像信号质量降低的可能性比现有技术小来减小图像信号质量降低的可能性。
为获得这个目的,根据本发明用来从画面中消除编码失真的编码失真消除方法使用不同的方法来消除运动补偿单元边界与编码单元边界匹配的边界,以及当运动补偿块的大小大于编码块大小时,取决于该边界是否为运动补偿块的边界的编码失真。
由于在运动补偿单元边界处的编码失真在质量上不同于在编码单元边界处的编码失真,因此可以通过根据单元来改变用于去块的滤波器来有效地从包含编码失真的图像信号中消除编码失真。
此外,当编码后的运动补偿错误为0时,最好只在运动补偿块边界消除编码失真。
本发明的另一个方面是通过从包含编码失真的画面中提取画面参数的步骤从画面中消除编码失真的编码失真消除方法;第一步是利用画面参数识别要执行编码失真消除的像素;第二步是利用画面参数识别要使用的编码失真消除的方法;第三步是利用由第二步识别的编码失真消除方法从第一步中识别的像素中消除编码失真。
通过首先计算可以在识别要从其消除编码失真的像素的第一步和识别用于消除编码失真的方法的第二步中使用的画面参数,可利用这些公共画面参数简化第一步和第二步中执行的操作,并且可以减少编码失真消除方法的处理过程而不降低图像质量。
本发明的另一个方面是用来从画面消除编码失真的编码失真消除方法,由此通过基于块进行的是否以块为单位消除编码失真的确定,和针对由基于块进行的确定要消除的确定的块中的每个像素,基于像素进行是否消除编码失真的确定来识别要进行编码失真消除处理的像素。
通过首先以块为单位确定是否需要进行编码失真消除,可以省略对那些块中不需要去块的像素单元进行评估,因此可减少由编码失真消除方法执行的处理。如果使用图像编码信息,可以很容易确定不需要去块的块(例如,像素与参考图像完全匹配的静态图像块)。
本发明的再一个方面是一种用于对位于具有形成运动画面图像的多个块的画面中的第一个块和相邻的第二个块之间的块边界两侧的区域中进行消除编码失真的编码失真消除方法。该方法具有比较步骤,用于将第一个块的像素值和第二个块的像素中的像素值的差值与用来确定消除编码失真方法的参数比较,该参数对应于第一个块的量化参数和第二个块的量化参数的平均值;消除步骤,用于根据比较步骤的结果来消除编码失真。
这样当在不同量化参数之间的块边界在编码失真消除过程中对块边界的两侧进行滤波时能够使用相邻块的量化参数的平均值。
另一个用于消除位于具有形成运动画面图像的多个块的画面中的第一个块和相邻的第二个块之间的边界线两侧的区域中的编码失真的编码失真消除方法具有当消除编码失真时对参数进行解码来设置阈值的解码步骤;将第一个块的像素中的像素值和第二个块的像素中的像素值的差值与基于解码参数的指定阈值进行比较的比较步骤;以及根据比较步骤的结果切换消除编码失真的方法的消除步骤。
这样通过向每一个已编码信号叠加用于编码失真消除的阈值参数,然后在编码失真消除之前检测适合于每个已编码信号的阈值并利用它消除编码失真,可以有效地从包含编码失真的图像信号中消除编码失真。
最好,运动画面包含由多个块组成的片(slice);并且参数存储在通过对运动画面的图像数据编码获得的码流中的片头信息中。
本发明的再一个方面是通过参考多个参考图像中的至少一个的画面编码的运动画面编码装置,其中利用多种方法消除编码失真获得的多个编码图像是参考图像。
利用由至少两种方法去块的多个图像作为参考图像并且随后选择一个合适的用于参考,可将通过从包含编码失真的图像信号中有效地消除编码失真获得的画面用作参考图像,并且可以增加运动图像编码的压缩率。
最好,多种方法中的第一个方法是不消除编码图像中的编码失真的方法,第二个方法是消除编码图像中的编码失真的方法。
本发明的另一个方面是通过参考多个参考图像中的至少一个进行解码的运动图像解码装置,其中通过利用多种方法消除编码失真获得的多个解码图像是参考图像。
利用由至少两种方法去块的多个图像作为参考图像并且随后选择一个合适的用于参考,可将通过从包含编码失真的图像信号中有效地消除编码失真后获得的画面用作参考图像,并且可以正确地解码编码信号。
最好,这些方法中的第一个方法是不消除解码画面中的编码失真的方法,第二个方法是消除解码画面中的编码失真的方法。
本发明的另一个方面是用于消除由奇数行像素和偶数行像素组成的隔行画面中的编码失真的编码失真消除方法。该方法具有确定画面是包含具有指定数量的奇数行像素和指定数量的偶数行像素的帧结构块的画面,还是包含一个场结构由指定数量的奇数行像素组成的块的画面,或者是包含另一个场结构由指定数量的偶数行像素组成的块的画面的评估步骤;当要进行编码失真消除的目的块是所有块都是帧结构块的画面中的块时用来消除相邻帧结构块之间的编码失真,以及当要进行编码失真消除的目的块是所有块都是场结构块的画面中的块时用来消除相邻场结构块之间的编码失真的消除步骤。
这样根据块是帧结构块的画面还是场结构块的画面可以改变要进行编码失真消除的块的处理。
最好是,如果要进行编码失真消除的目的块是包含帧结构块和场结构块的画面的块,那么编码失真消除方法也具有将场结构块转换为帧结构块的转换步骤;将场结构块的像素中的像素值和转换块的像素中的像素值的差值与指定的阈值进行比较的比较步骤;以及根据比较步骤的结果消除编码失真的消除步骤。
在另一个用来消除位于具有形成运动画面图像的多个块的画面中的第一个块和相邻的第二个块之间的边界线两侧的区域中的编码失真的编码失真消除方法中,第一个块是在由奇数行像素和偶数行像素组成的隔行画面中具有指定数量的奇数行像素和指定数量的偶数行像素的帧结构块,第二个块是具有在由奇数行像素和偶数行像素组成的隔行画面中由指定数量的奇数行像素组成一场,和在由奇数行像素和偶数行像素组成的隔行画面中由指定数量的偶数行像素组成的另一场的场结构块。编码失真消除方法包括将帧结构的第一个块转换成场结构块的转换步骤;将场结构的第二个块的像素中的像素值与转换块的像素中的像素值的差值和指定阈值比较的比较步骤;以及根据比较步骤的结果消除编码失真的消除步骤。
当场结构块和帧结构块相邻时,可以自适应地处理要进行编码失真消除的目的块。
从帧结构的第一块向场结构的转换最好由宏块单元和两个垂直相邻宏块的单元来切换。
另外,场结构的第二个块最好不转换为帧结构块。
在用来消除位于具有形成运动画面图像的多个块的画面中第一个块和相邻的第二个块之间的边界线两侧的区域中的编码失真的另一种编码失真消除方法中,第一个块是在由奇数行像素和偶数行像素组成的隔行画面中具有指定数量的奇数行像素和指定数量的偶数行像素的帧结构块,第二个块是具有在由奇数行像素和偶数行像素组成的隔行画面中具有由指定数量的奇数行像素组成的一个场,和在由奇数行像素和偶数行像素组成的隔行画面由指定数量的偶数行像素组成的另一场的场结构块。编码失真消除方法具有确定要进行编码失真消除的目的块是帧结构块还是场结构块的评估步骤;当目的块为场结构的第二个块时将帧结构的第一个块转换为场结构块,和当目的块为帧结构的第一个块时将场结构的第二个块转换为帧结构块的转换步骤;比较目的块的像素中的像素值和指定阈值的比较步骤;以及根据比较步骤的结果消除编码失真的消除步骤。
当场结构块和帧结构块相邻时,可以自适应地处理要进行编码失真消除的目的块。
最好,从帧结构块到场结构块的转换步骤中的转换在从帧结构块中的奇数行像素转换后产生一个场,在从帧结构块中的偶数行像素转换后产生另一个场;比较步骤中差值和阈值的比较是在转换后将第二个块的一个场中的像素的像素值和第一个块的一个场中的像素的像素值比较,或在转换后将第二个块中另一个场的像素中的像素值和第一个块中另一个场的像素中的像素值比较。
在用来消除位于具有形成运动画面图像的多个块的画面中的第一个块和相邻的第二个块之间的边界线两侧的区域中的编码失真的另一个编码失真消除方法中,第一个块是在由奇数行像素和偶数行像素组成的隔行画面中具有指定数量的奇数行像素和指定数量的偶数行像素的帧结构块,而第二个块是在由奇数行像素和偶数行像素组成的隔行画面中具有指定数量的奇数行像素组成的一场,和在由奇数行像素和偶数行像素组成的隔行画面中具有指定数量的偶数行像素组成的另一场的结构块。该编码失真消除方法具有用来将场结构的第二个块转换为帧结构块的转换步骤;将帧结构的第一个块的像素中的像素值与转换块的像素中的像素值的差值和指定阈值比较的比较步骤;以及根据比较步骤的结果消除编码失真的消除步骤。
当场结构块和帧结构块相邻时,可以自适应地处理要进行编码失真消除的目的块。
另外,从场结构的第二块向场结构的转换最好由宏块单元和两个垂直相邻宏块的单元来切换。
另外,场结构的第二个块最好不转换为帧结构块。
另外,从场结构块向帧结构块的转换步骤中,转换从一场的块中的像素和另一个场的块中的像素产生一个转换的帧,将转换后的第一个块中奇数行像素中的像素值和第二个块中奇数行像素中的像素值比较,或者将转换后的第一个块中偶数行像素中的像素值和第二个块偶数行像素中的像素值比较。
另外,最好是比较步骤按在与边界线对称的位置沿与边界线同方向在行中对齐的多个像素的组比较该差值和阈值。
这样能以多个像素为组来消除编码失真。
本发明的另一个方面是画面编码装置,该装置具有用于对编码的差分画面解码并且输出差分画面的解码单元;用来从参考图像输出运动补偿画面的运动补偿单元;用来将差分画面和运动补偿画面相加,和输出合并画面的加法器;用来消除合并画面中的编码失真,和输出重构画面的编码失真消除单元;和用来存储重构画面作为参考图像的存储器。编码失真消除单元利用本发明上述任何一种方法来消除编码失真。
本发明的另一个方面是利用本发明上述任何一种方法用来从画面中消除编码失真的程序。
本发明的另一个方面是使用用于对编码的差分画面解码和输出差分画面的解码单元;用来从参考图像中输出运动补偿画面的运动补偿单元;用来将差分画面和运动补偿画面相加,并输出合并画面的加法器;用来消除合并画面中的编码失真,和输出重构画面的编码失真消除单元;以及用来存储重构画面作为参考图像的存储器来进行画面编码的程序。编码失真消除单元利用本发明上述任何一种方法来消除编码失真。
通过结合附图参考下面的说明书和权利要求,本发明的目的和实现以及对其更全面的理解将更加明显。
图1是利用根据本发明解码方法的视频解码装置的方框图;图2是利用根据本发明第一个实施例的编码失真消除法的编码失真消除单元的方框图;图3(a)、3(b)、3(c)、3(d)、3(e)、3(f)和3(g)显示了运动补偿块大小的实例;图4是根据本发明第二个实施例的编码失真消除方法的流程图;图5显示了本发明第二个实施例中的量化参数QP和编码失真消除参数之间的相关性;图6是根据本发明第二个实施例用来确定在编码失真消除方法中要滤波的像素数量的流程图;图7是根据本发明第二个实施例用来确定在编码失真消除方法中的滤波系数的流程图;图8(a)和8(b)是利用根据本发明第二个实施例的编码失真消除方法的编码失真消除单元的方框图,以及显示像素调整的示意图;图9是利用根据本发明第三个实施例的编码方法的编码装置方框图;图10是利用根据本发明第三个实施例的解码方法的解码装置方框图;图11是利用根据本发明第四个实施例的编码失真消除方法的编码失真消除单元的方框图;图12(a)、12(b)、12(c)和12(d)显示了根据本发明第四个实施例的编码失真消除方法中编码信号Str的结构;图13是显示利用环路滤波器的视频编码过程的方框图;图14是显示视频编码环路中自动阈值选择的位置的方框图;图15是显示收集用来寻找最佳阈值的数据的方法的流程图;图16是显示收集用来寻找最佳阈值的数据的另一种方法的流程图;图17是显示用来选择最佳阈值的方法的流程图;图18显示了具有可以跳过去块的公共边界的相邻块;图19显示了包含多个像素的组;图20(a)描述了帧结构,图20(b)描述了场结构;图21(a)描述了帧结构和场结构混合在一个画面中的结构,图21(b)和21(c)描述了在场结构和帧结构边界的编码失真消除过程的步骤;图22是当帧和场结构混合时使用的编码失真消除过程的流程图;图23是图22中存储器64和67的步骤组合后的流程图;图24是图23中存储器65和68的步骤组合后的流程图;图25是当帧结构块和场结构块在块边界相对侧时使用的过程的流程图;图26(a)、26(b)和26(c)描述了根据本发明第六个实施例用来存储实现本发明第一和第二实施例的可变长度编码和可变长度解码方法的计算机可执行程序的记录介质;图27是显示内容提供系统整体配置的方框图;图28显示了利用视频编码方法和视频解码方法的典型蜂窝电话的实例;图29是蜂窝电话的方框图;图30显示了数字广播系统的实例;图31(a)、31(b)和31(c)显示了描述编码失真消除方法的概念的像素信号电平示意图;图32是利用现有技术的解码方法的视频解码装置的方框图;
图33是利用现有技术的解码方法的视频解码装置的方框图;以及图34是利用根据现有技术的编码失真消除方法的编码失真消除单元的方框图。
具体实施例方式
下面参考附图描述本发明的优选实施例。
实施例1在利用视频解码方法的视频解码装置的方框图中,可变长度解码器52对编码信号Str进行可变长度地解码并输出频率编码分量DCoef。去Z字形扫描单元54在二维块中重新排列频率编码分量DCoef的频率分量,并且输出频率分量Fcoef、块单元频率分量。反余弦变换单元56对频率分量实施去量化和反DCT操作,并输出差分图像DifCoef。
运动补偿器60从存储器64中累加的参考图像Ref输出由外部输入运动矢量MV指示的位置上的像素作为运动补偿图像MCpel,和输出表示运动补偿块的大小的运动补偿块大小MCsize。加法器58将差分图像DifCoef和运动补偿图像Mcpel相加以输出重构图像Coef。
去块滤波器62接收重构图像Coef,运动补偿块大小MCsize和差分图像DifCoef,实施编码失真消除,然后输出解码后的图像信号Vout。重构图像Coef存储在存储器64中,并且当作下一个图像解码的参考图像Ref。
图2是利用根据本发明的编码失真消除方法的去块滤波器62(也称为编码失真消除单元)的方框图。该去块滤波器62是由本发明的发明人参考ITU-T建议书H.26L TML8中描述的去块滤波器的内容创造的。
已滤波像素计数控制器4确定每个重构图像Coef中包含编码失真的像素位置,然后输出已滤波的像素计数FtrPel。已滤波的像素计数FtrPel表示需要滤波的像素位置。
滤波系数控制器6利用已滤波像素计数FtrPe1和重构图像Coef来确定适合从指定像素中消除编码失真的滤波系数(包括滤波抽头的数量),然后输出滤波系数FtrTap。
滤波处理器8利用由滤波系数FtrTap指示的滤波系数,应用滤波处理从重构图像Coef中消除编码失真,并输出解码后的图像信号Vout。
差分图像DifCoef和运动补偿块大小MCsize输入到运动补偿块边界检测单元2,运动补偿块边界检测单元2确定该处理块的差分图像DifCoef是否小于或等于给定值,例如,是否为0,检测运动补偿块的边界,然后输出运动补偿块边界标志IsEdge。
图3显示了ITU-T建议书H.26L TML8中使用的运动补偿块大小的实例。如这些例子中所示,最大的运动补偿块大小为16×16个像素,与被称为宏块的大小相同。图3(a)到(g)所示的运动补偿块大小为4×4、4×8、8×4、8×8、8×16、16×8和16×16个像素。在ITU-T建议书H.26LTML8中,从这七种运动补偿块大小中选出适合宏块单元大小的,然后用于编码和解码。应该注意的是,编码和解码可以应用于在垂直方向相邻的两个宏块的适当单元,这些宏块的单元称为“宏块对”。
在ITU-T建议书H.26L TML8中用于频率变换和编码的单元为4×4像素。该4×4像素的单元被称为“编码单元”。如图3(a)所示,16个块A到P中的每个块都是4×4像素的块。4×4像素编码单元只在图3(a)所示情况下于运动补偿块的大小匹配。因为作为编码失真特别直观地分裂的块失真以4×4像素的最小编码单元大小出现,所以常规编码失真消除方法总是处理4×4像素单元。
如果在运动补偿编码后画面之间的相关性特别强,那么画面之间编码运动补偿差错为0。在这种情况下,因为4×4像素单元中已编码和解码的差分图像DifCoef也是0,所以除了运动补偿块边界外的地方不会发生在编码和解码过程中从编码失真导致的像素值不连续。因此,如果选择如图3(b)所示的运动补偿块,那么在图3(a)所示的块AC、BD、EG、FH、IK、JL、MO和NP之间由虚线表示的4×4像素单元边界不需要编码失真消除处理。由图3(a)所示的块AB、CD、EF、GH、IJ、KL、MN和OP之间的虚线表示的4×4像素单元边界同样不需要去块。如果用于4×4像素单元中编码/解码的差分图像DifCoef也是0,那么只在运动补偿块的边界应用去块,而在运动补偿块内的4×4像素单元的边界处不应用去块。与对所有块边界进行去块相比,这样能够减少编码失真消除处理中的操作次数。
如果过程块的差分图像DifCoef是0并且不是运动补偿块的边界,那么运动补偿块边界检测单元2将选择器10a和10b都设置为关闭(由实线表示),并且选择器10b输出重构图像Coef作为解码的图像信号Vout。通过设置运动补偿块边界标志IsEdge来切换选择器10a和10b。通过关闭选择器10a和10b来省略已滤波像素计数控制器4、滤波系数控制器6和滤波处理器8的处理。除了上述情况外,选择器10a和10b工作(由虚线表示),来自滤波处理器8的输出被从选择器10b输出,作为解码图像信号Vout。该选择器的状态也通过施加运动补偿块边界标志IsEdge来设置。
本发明通过施加恰当地设置的运动补偿块边界标志IsEdge引入了省略已滤波像素计数控制器4、滤波系数控制器6和滤波处理器8的操作的能力,通过跳过这些单元可以更快地加速进行处理并且减小这些处理的功耗。
应该注意的是,按照不施加任何编码失真消除处理简单地描述了本实施例,可使用简单的编码失真消除处理替代跳过过程,并且可以在复杂的编码失真消除处理和4×4像素单元中的编码失真消除处理之间进行切换。
实施例2下面参考图4所示的根据本发明的编码失真消除方法的流程图描述在该实施例中可以容易地实现编码失真消除的特定过程。
首先在步骤S18确定目标块是否为编码失真消除块。如果是,控制进行到步骤S19。如果不是,控制进行到步骤S24。
在步骤S19中选择合适的编码失真消除滤波器,在步骤S20中,利用选择的滤波器实施编码失真消除过程,然后在步骤S21中将目的像素改变为该块中下一个未处理的像素。如果该块中没有未处理的像素(步骤S22返回否),那么控制进行到步骤S24,如果有未处理的像素(步骤S22返回是),那么控制返回到步骤S19重复该过程。
步骤S24检测画面中是否有另一个未处理的块。如果有,控制进行到步骤S23。如果所有块都已经被处理(步骤S24返回否),那么该画面的编码失真消除过程结束。
如果还有未处理的块,那么在步骤S23中将目的块变为下一个未处理的块,控制环路返回到步骤S18并且重复该过程。
图6显示了在本发明的编码失真消除方法中如何确定要滤波的像素数量(下面称为“已滤波像素计数”)的流程图。该流程图描述了图2所示已滤波像素计数控制器4可以操作的实例。图6显示了运动补偿块为图8(a)所示时的情况。如图8(b)所示,要进行编码失真消除的目的像素值为如图8(b)所示的p3、p2、p1、p0、q0、q1、q2、q3,经过编码失真消除后的像素值为P3、P2、P1、P0、Q0、Q1、Q2、Q3。这些像素值按照与像素位置相同的顺序依次分配,p0到p3和P0到P3表示同一个块中对应像素,而q0到q3和Q0到Q3表示同一个块中对应像素。
随着量化参数QP增加,量化步长变大(更粗糙)并且编码失真的大小也随着增加。因此要根据量化参数QP的大小有效地改变滤波器。图5的表示量化参数QP和编码失真消除参数之间相关性的表。下面的表1显示了用来确定表示已滤波像素计数的参数n的去块过程的参数П、Ω和n之间相关性。应该注意的是,如果像素差分较大则不应该施加滤波器,因为它代表边缘,并且最好设置П以便不对像素差分小于П的像素施加滤波器。另外,如果像素差分较小,随着像素差分减小,像素不在边缘的可能性增加,因此,最好设置Ω,以便根据像素差分是否极低(小于Ω)或有点小(小于2×Ω)来施加较强的滤波器(即,n较高)。
表1条件A 条件B ndif1a>П dif2a<Ω 0dif1a>П Ω≤dif2a≤2×Ω 0dif1a>П dif2a≥2×Ω0dif1a≤П dif2a<Ω 2dif1a≤П Ω≤dif2a≤2×Ω 1dif1a≤П dif2a≥2×Ω 0
其中dif1=p0-q0dif2=p1-q1dif1a=|dif1|dif2a=|dif2|换句话说,表1总结了本发明的编码失真消除方法中确定已滤波像素计数的流程。
步骤S27计算像素差分DifPel,它是要在编码失真消除过程中重复计算的参数。注意,像素差分DifPel是指步骤S27中计算的dif1a和dif2a。
然后,在步骤S28比较dif1a和П。如果dif1a大于П,那么在骤S29中设置n=0并且不运行编码失真消除处理就结束该过程。如果dif1a小于或等于П,那么控制进行到步骤S30。
在步骤S30比较dif2a和Ω。如果dif2a小于Ω,那么在步骤S31中设置n=2(就是说,从每个相邻块的边界向第二个像素实施编码失真消除),然后进程结束。如果dif2a大于或等于Ω,那么控制进行到步骤S32。
在步骤S32,比较dif2a和2×Ω。如果dif2a小于2×Ω,那么在步骤S33中设置n=1(就是说,从每个相邻块的边界向第一个像素实施编码失真消除),然后进程结束。dif2是靠近边界的像素值中的差分的绝对值,并且因为随着该差分的减小,接近边界的高频分量的数量也减小,所以随着dif2变小,通过增加为去块处理的像素的数量可从边界区域有效地消除编码失真。
图7是本发明的编码失真消除方法中用来确定滤波系数的过程的流程图,并且是图2中滤波系数控制器的操作实例。
利用步骤S37中的n、dif1、dif2和φ比较三个条件。如果三个条件都为真,那么在步骤S39设置三个抽头滤波处理。即,φ是用来确定滤波抽头数量的阈值,当高频分量为低(n=2)并且在边界的像素值几乎没变化时(|dif2a-dif1a|<φ)采用三个抽头的滤波器。三个抽头的滤波器通常比一个抽头的滤波器能提供更强的高频分量抑制。因为利用n值可以改变滤波过程,所以可以使用参数n代替施加滤波器的像素数量来改变滤波器类型。这样获得的参数n还可以用来改变已滤波的像素数量和所采用的滤波器类型。
如果在步骤S37中三个条件不为真,则在S38检测n的值。如果n≥1,步骤S40设置一个抽头的滤波过程。如果n=0,那么步骤S42关闭滤波器。
应该注意的是,可以针对每个块来改变量化参数QP。然而,编码失真消除过程在具有不同量化参数QP的块之间的边界会变得更复杂。当量化参数QP在边界块中改变时,本发明利用*相邻块的平均量化参数QP(分数可以四舍五入),*相邻块的最高量化参数QP,*相邻块的最低量化参数QP,或*左邻或上邻块的量化参数QP作为用于对边界两边的块滤波的量化参数QP来防止其变复杂。应该注意的是,利用这四个量化参数QP之间的差别很小,可以预先选定一个使用。
通过上述方法可以很容易地消除编码失真。
图8(a)是图1所示去块滤波器62的另一个实施例的方框图,和图2中虚线包围的部分的一个分开实施例。应该注意的是,图8和图34所示利用常规编码失真消除方法的编码失真消除单元的方框图中的相同部分用相同的参考标号表示,并且在这里省略了对它们的进一步描述。
像素差分计算器20从重构图像Coef计算在块边界的像素差分,并且输出像素差分DifPel。该像素差分DifPel包含等同于dif1a和dif2a的信号。通过比较编码单元块之间边界的左右对称或上下对称位置的像素,并且利用其之间的差值d1、d2、d3、d4(色差和亮度差)来获得像素差分DifPel。如果这些差值的平均值(例如,(d1+d2+d3+d4)/4)小于或等于给定值,那么图像边界线不可能出现在用来确定d4的宽度范围中,因此要实施去块滤波。另一方面,如果平均值大于或等于给定值,则存在图像边界并且不实施去块滤波。应该注意的是,这种比较可以使用d1、d2、d3和d4中的任何一个、任何两个,或任何三个。与其说利用平均值,不如说是用最大差分来替代与给定值的比较。
用来确定已滤波像素计数的流程图可以用作已滤波像素计数控制器4操作的实例。图7所示的用来确定滤波系数的流程图中显示了该实施例中滤波系数控制器6的操作实例。通过参考如图8(b)所示的像素差分DifPel,可以减小已滤波像素计数控制器4和滤波系数控制器6的像素差分计算量。已滤波像素计数控制器4和滤波系数控制器6可以因此不参考重构图像Coef而设置已滤波像素计数和滤波系数。
很明显,通过重复利用作为像素差分DifPel计算的值可以减小计算量。
实施例3本发明的这个实施例描述了实施本发明另一个实施例中描述的编码失真消除方法的编码装置和解码装置。
图9是编码装置的方框图。
运动检测单元30将分别从第一存储器38和第二存储器40输出的参考图像Ref1和参考图像Ref2与图像信号Vin进行比较,并且检测运动矢量MV,即,与参考图像有关的图像信号Vin中的运动量。应该注意的是,通过参考参考图像Ref1或参考图像Ref2表示预测差错是否会少的信息也包含在运动矢量MV中并且被报告给运动补偿单元32。运动补偿单元32从参考图像Ref1或参考图像Ref2中提取由运动矢量MV指示的位置上的图像,然后将它作为运动补偿后的图像MCpel输出。
减法器42获得图像信号Vin和运动补偿图像MCpel的差分,并且输出到余弦变换单元(DCT)46。余弦变换单元46计算DCT并且量化该输入的差分,然后输出频率分量FCoef。Z字形扫描仪48输出重排频率分量Fcoef的顺序的频率码分量DCoef,可变长度编码单元50对频率码分量进行可变长度编码以输出编码信号Str。
DCT单元(余弦变换单元)46的输出也输入到反DCT单元(反余弦变换单元)44。合成器34合并频率分量FCoef和从运动补偿单元32输出的运动补偿图像MCpel,并输出合并后的图像。合并后的图像Coef照原样存储到第一存储器38,并且还由去块滤波器36处理,并将已被消除编码失真的解码图像信号Vout存储到第二存储器40。
图10是解码装置的流程图。该解码装置对由图9中方框图所示的编码装置编码的编码信号Str正确地进行解码。图10中的操作与图32或图33中对应部分相同的部分由相同的参考标号识别,在此省略对它们的描述。反DCT单元(反余弦变换单元)56去量化频率分量并且计算反DCT以输出差分图像DifCoef。加法器58将差分图像DifCoef和运动补偿图像MCpel相加以获得重构图像Coef。重构图像Coef存储到第一存储器64,由去块滤波器62从重构图像Coef消除编码失真后获得的解码图像信号Vout存储到第二存储器66。
这种操作的结果是没有被消除编码失真的图像存储到第一存储器38和第一存储器64,已被消除编码失真的图像存储到第二存储器40和第二存储器66。编码失真消除过程不总是只消除编码失真,部分真实图像信号也可能会丢失。因此,配置图9中所示的编码装置,以使运动检测单元30总是可以从第一存储器38和第二存储器40二者中选择最好的输出。
如果利用本实施例的配置通过消除编码失真而丢失了一部分原始图像信号,那么可以通过参考第一存储器38来选择合适的参考图像。同样,可以由图10所示的解码装置选择适当的参考图像。
应该注意的是,本发明中该实施例使用DCT作为正交变换,也可以使用Hadamard变换或小波变换。
实施例4图11是根据本发明优选实施例,并且对应例如图1所示的去块滤波器62的编码失真消除单元的方框图。该编码失真消除单元通过确定用来设置滤波器的阈值来区分。应该注意的是,执行与图34中所示编码失真消除单元相同操作的部分具有相同的参考标号并且在这里省略了对它们的描述。
滤波器设置参数解码器22对滤波器设置参数信号FtrStr解码,然后输出滤波器参数FtrPrm。该滤波器设置参数信号FtrStr不是阈值,而是用来设置阈值的参数。滤波器参数FtrPrm等同于图5中的П、Ω和φ。通过解码和从滤波器设置参数信号FtrStr获得用来优化每个画面的这些参数П、Ω和φ的数据,可以对图像进行合适的编码失真消除。
图12显示了本发明的编码失真消除方法中已编码信号Str的结构。图12(a)是一个画面的编码信号,并且包含保存一个画面的数据的画面数据PicData,和一个画面中所有数据公共的画面头PicHdr。该画面头PicHdr包含滤波器设置参数信号FtrStr。
图12(b)显示了画面数据PicData的结构。该画面数据PicData包含片信号SliceStr,包含一组多个块单元的一片的编码信号。
图12(c)显示了片信号SliceStr的结构,它包含保存一片的数据的片数据SliceData,和一片中所有数据公用的片头SliceHdr。通过向片头SliceHdr写入滤波器设置参数信号FtrStr,可以正确地对片数据SliceData单元中接收的编码信号解码。
如果在画面数据PicData中包含多个片信号SliceStr,那么滤波器设置参数信号FtrStr只能写入某些片头SliceHdr,而不能将滤波器设置参数信号FtrStr写入所有片头SliceHdr。如果滤波器设置参数信号FtrStr对每个片公用的,并且滤波器设置参数信号FtrStr不写入如图12(c)中所示的片头SliceHdr,那么通过从另一个片头SliceHdr替换滤波器设置参数信号FtrStr可以抑制由于重复滤波器设置参数信号FtrStr所造成的比特数的增加。
如果编码信号Str发送到象分组这样的小数据单元而不是单个连续的比特流,那么头和非头部分可以分开发送。在这种情况下,头和数据部分如图12所示不在一个比特流中。然而,即使头和数据部分的发送顺序不是连续的,但是由于特定数据包的头可以很容易地在另一个分组中发送,因此即使该发送不是一个单独的比特流,其概念与图12中所示的比特流相同。
图13是编码装置的方框图。应注意,图13中与图9中相同的部分用相同的参考标号表示,并且在这里省略了对它的进一步描述。
存储器217存储图像信号Vin,即为编码而输入的图像信号。图像质量比较单元216比较从存储器217读取的编码目标图像信号和解码的图像信号Vout。从由图像质量比较单元216比较后获得的差错大小与用于解码图像的去块滤波阈值一起存储在比较存储器218中。选择单元219将对应于存储在比较存储器218中最小差错的去块滤波的阈值选择作为优化阈值。所选择的优化阈值被作为相对附加比特流复用到对应画面的比特流中。根据选择单元219输出的优化阈值,阈值控制单元215产生用于下一个画面的去块滤波的候选阈值,通知去块滤波器36并且改变编码失真消除过程的阈值,然后将当前正在使用的阈值发送到比较存储器218。
图14是图13中的方框图所示的指定编码装置的概念表示。在图14中,优化阈值选择单元226执行除了Z字形扫描仪48、可变长度编码单元50和阈值附加单元220以外的图13中的件的分操作,相当于存储器27、图像质量比较单元216、比较存储器218、选择单元219和阈值控制单元215的操作。视频解码器227对应图13中的存储器217、图像质量比较单元216、比较存储器218、选择单元219和阈值控制单元215以外的部件的操作。阈值228等同于上述优化阈值。
优化阈值选择单元226选择优化阈值。该优化阈值等同于为图5中的每个量化参数QP确定的П、Ω和φ值的设置。所选择的优化阈值存储在阈值存储器228,并施加到视频编码器227作为滤波器设置参数信号FtrStr。图11中所示的滤波器设置参数解码器22,例如,在解码器中,处理编码滤波器设置参数信号FtrStr。
应该注意的是,优化阈值可以存储在图13所示的阈值控制单元215中的存储器中,并且阈值数据由阈值控制单元215发送到阈值附加单元220。
下面描述消除编码失真时确定滤波器设置参数信号FtrStr的操作。图15、图16和图17显示了图13和图14描述的编码装置的操作流程图。
图15是测量图像质量的操作的流程图。
首先设置目的帧target_frame,并输出第一个画面(步骤229)。目的帧target_frame是用来获得阈值的画面。
接着,阈值控制单元215设置阈值范围(步骤230),然后从阈值控制单元215输出该范围一侧的值作为初始阈值(步骤231)。
利用该初始阈值,去块滤波器36消除编码失真,开始对目的帧target_frame的画面编码(步骤232),然后,图像质量比较单元216测量该首先被编码的画面的画面质量和图像信号Vin(步骤233)。
该比较结果存储在比较存储器218(步骤234),然后递增当前帧编号current_frame(步骤235)。就是说,正在被处理的画面从第一个画面变为下一个画面,然后,下一个画面输出到,例如,图14所示的优化阈值选择单元226和视频编码器227,或图13所示的存储器217、运动检测单元30和减法器42。
然后,步骤236确定当前帧编号current_frame是否已经到达目的帧target_frame。如果还没有,重复步骤233到235。图像测量输入画面的图像质量,将结果存储到比较存储器218。如果当前帧编号current_frame等于目的编号target_frame,控制进行到步骤237,并且当前帧编号current_frame重新设置为第一个画面。
然后,阈值控制单元215递增该阈值(步骤238A),即,将该阈值设置为下一个值。“下一个值”是从第一个值按指定递增增加后的值。
然后,确定所有阈值是否到了已测试的设置范围的另一端的阈值(步骤238B)。如果已经测试了所有阈值,则结束确定优化阈值的过程。如果还没有测试所有的阈值,控制环路到步骤232并且对目的帧target_frame的画面进行编码。
这样可以利用一个阈值通过测量所有目的帧target_frame的图像质量来测量图像质量,然后将阈值递增指定量,再次测量所有目的帧target_frame的图像质量。
下面参见图16的流程图,描述了利用设置阈值范围中的所有阈值测量一个画面中的图像质量,然后进行到下一个画面并且利用设置阈值范围中的所有阈值测量图像质量的方法。
首先设置目的帧target_frame并且输出第一个画面(步骤239)。然后将当前帧编号current_frame初始化为0(步骤240)。
然后,阈值控制单元215设置阈值范围(步骤241),并将阈值设置到去块滤波器36(步骤242)。
此后,利用初始化阈值对第一个画面编码(编码失真消除过程)(步骤243),由图像质量比较单元216测量编码画面的图像质量(步骤244)。
图像质量比较单元216输出的结果存储到比较存储器218(步骤245),阈值控制单元215将阈值递增到下一个值(步骤246A)。
然后确定是否已经测试了所有阈值(步骤246B)。如果还没有测试所有的阈值,控制环路到步骤242并且利用不同的阈值测量同一个画面的图像质量。如果已经测试了所有阈值,控制进行到步骤247。
然后在步骤247递增当前帧编号current_frame。即,正在处理的画面从第一画面(第一帧)变为第二画面(第二帧),并且下一个画面输出到,例如,图14中所示的优化阈值选择单元226和视频编码器227或图13中所示的存储器217、运动检测单元30和减法器42。
然后,步骤248确定当前帧编号current_frame是否已经达到目的帧target_frame。如果还没有达到,重复步骤241到247。如果current_frame等于target_frame,结束图像质量测量过程。
图17是用来根据图15或图16所描述的阈值选择优化阈值的方法的流程图和以该阈值测量图像质量的结果。
选择单元219得到图像质量测量结果和图17中步骤249中相应的阈值数据。
然后,按指定顺序排列测量结果(步骤250)。
然后,根据指定条件选择具有最佳图像质量的画面(步骤251),选择这个图像的阈值作为最佳阈值。这些指定条件可以是下列中的任何一个或组合低S/N比,重构图像(在该阈值被去块的画面)和原始画面(输入图像信号Vin)之间的最小差值,和该差值的最低均方。
然后,将所选择的优化阈值作为滤波设置参数信号FtrStr输出到,例如,图14中的视频编码器227(步骤252)。
利用参考图17描述的方法可以选择最佳阈值。
如上所述,该优选实施例测量指定范围内所有阈值的图像质量,收集图像质量测量结果,并且从结果中选择优化阈值。还可以在阈值范围内按所有阈值的顺序测量图像质量,当检测出具有最佳图像质量的点后结束图像质量的测量,选择产生该图像质量结果的阈值作为优化阈值。该方法可以减少执行图像质量测量的次数。
给定块的编码失真消除过程将该块中的像素值和相邻块中的像素值比较。在这种情况下,相邻块是已经结束编码失真消除过程和已经结束像素值纠正的块。
当从图18中的块G消除编码失真后,例如,可以通过与四个相邻块E、D、H和M中任何一个比较来消除编码失真。但是,通过利用已经结束编码失真消除过程的块,可以更精确地消除编码失真。
最好按扫描顺序以线性序列消除编码失真。就是说,按水平扫描线序列中沿画面的水平扫描线的扫描方向消除编码失真。
换句话说,参见图18,首先对第一扫描行的块A、B、E、F执行编码失真消除过程,然后处理下一行的块C、D、G、H,依次类推。每个块有四个边界,但是最好利用与上边界和左边界接触的相邻块来实施编码失真消除过程。
这种情况下,因为相邻块与它的上边界或左边界接触,所以不对块A实施编码失真消除处理。
同样,没有与块B的上边界接触的相邻块,因此利用与块B的左边界接触的块A来实施去块。
块E和D分别与块G的上边界和左边界相邻,因此当不使用块H和M时,利用块E和D从块G消除编码失真。
通过从新块和编码失真已经消除的相邻块之间消除编码失真,并且不参考还没有进行编码失真处理的相邻块,可以更精确地消除编码失真。
实施例5本实施例首先描述将像素分割为分别有多个像素的组,如一列中包含4个像素的组,然后将组配对,对组对实施编码失真消除。本实施例中使用的编码失真消除过程是指确定是否对块边界两侧的区域实施去块,以及去块操作本身这二种过程或其中的一个过程。块可以是16个像素的4×4块,即,最小编码单元,或参考图3的上述施加运动补偿的任何块。
如图19所示,一个组中的4个像素是利用块边界按行排列的4个像素的组。图19中示出了4个这样的组,r1、r2、r3和r4。来自这4个组r1、r2、r3和r4的数据可以存储到4个寄存器中(例如,SIMD寄存器)。组r1、r2和组r3、r4对称地位于块边界的左侧和右侧。组r1中的像素值与组r2中的像素值比较,然后利用得到的差值实施编码失真消除。
更准确地说,获得组r1中的顶端像素和组r2中的顶端像素之间的差值1,组r1中的顶端之次行的像素和组r2中的顶端之次行的像素之间的差值2,组r1中底端之上一行的像素和组r2中底端之上一行的像素的差值3和组r1底端像素和组r2底端像素的差值4。差值1、差值2、差值3和差值4的平均值,或是差值1、差值2、差值3和差值4的绝对值之和用作典型差值,并且将该典型差值与给定的阈值比较。也可以用其它方法。因为这些操作是以同组中的4个像素为单位来执行,所以与一次处理一个像素相比,采用并行处理明显地提高了整体速度。
虽然上面描述了仅利用组r1和组r2进行的比较,如果要求更精确,可以比较组r3中的像素亮度和组r4中的像素亮度,然后把来自组r1和组r2的比较结果的典型差值加到来自组r3和组r4的典型差值,或者与组r3和组r4的典型差值平均来消除编码失真。
上述操作应用于垂直块边界,但是也可以通过沿着水平边界简单地组配4个像素一组的水平组来实施实质上相同的操作。
图20(a)和(b)示出了屏幕上扫描线交替的情况。隔行画面是指由在不同时间表示的两个场组成一帧的画面。可以通过将一个帧处理为一个帧,两个场,或者通过一个帧中的帧结构或场结构来完成对隔行画面的编码和解码。在图20中,小灰方块代表奇数行像素,小白方块代表偶数行像素。奇数行的灰色像素形成一帧的一场,而偶数行上的白色像素形成同一帧上的另一场。
在隔行画面信号中,一帧由在不同时刻的两场(偶数场和奇数场)组成。在静态画面中像素值不随时间改变,并且一帧中垂直相邻行之间的相关性比一场中垂直相邻行之间的相关性强。然而,在运动画面中,画面随时间的变化很大,两个场中的像素值有很大不同,并且一场中垂直相邻行之间的相关性比一帧中垂直相邻行之间的相关性强。因此,按帧处理静态画面而按场处理运动画面会更有效。
在隔行画面中,(1)所有块都可以是帧结构块(下面会进一步描述帧结构块),(2)所有块都可以是场结构块(下面会进一步描述场结构块),或者(3)画面可以包含帧结构和场结构二者。
如果画面包含所有帧结构块(1),那么由帧结构单元实施所有去块。如果画面包含所有场结构块(2),那么由场结构单元实施所有去块。如果画面包含帧结构和场结构块(3),那么通过从场结构向帧结构或从帧结构向场结构的自适应转换来实施去块。下面将更详细地描述这些操作。
如图20(a)(以下称“帧结构”)所示,用由奇数场和偶数场组成的帧单元处理静止图像或包含轻微运动的隔行画面。在帧结构中,如图20(a)的右侧所示,16个像素的块包含奇数行像素和偶数行像素。利用帧结构在块之间实施编码失真消除过程。即,如参考图8(b)所描述的,对块边界实施编码失真消除过程。
如图20(b)(以下称“场结构”)所示,由分为奇数场和偶数场的场单元处理剧烈运动的隔行画面。如图20(b)的右侧所示,画面分为奇数行的奇数场和偶数行的偶数场;奇数场包含奇数行的块,而偶数场包含偶数行的块。只在仅奇数行的场结构块或仅偶数行的场结构块之间实施编码失真消除过程。
图21(a)示出了隔行画面的一部分由帧结构块组成,而另一部分由场结构块组成的情况。最好是,图像的运动画面部分包含场结构块,而静态画面部分包含帧结构块。由场结构或帧结构形成的最小单位称为宏块,即,实施DCT或其它正交变换或运动补偿的最大单位(或多个宏块的超级宏块)。下面假设图21(a)中包含汽车的长方形中包含场结构块,而画面的其余部分包含帧结构块。
接下来描述如何向场结构部分和帧结构部分之间的边界实施编码失真消除。
参见图21(b),列C1、C2、C3和C4中的块属于包含汽车的图像区域,并且因为在该图像区域中有运动所以具有场结构。列C5、C6、C7和C8中的块属于汽车不在的图像区域,即,静态画面区域,因此具有有效帧结构。应注意,在这个例子中,宏块在每侧有16个像素,而块在每侧有4个像素。图21(b)中所示的列C4和C5是分开的,但实际上在画面中是相邻的。在列C3和C4之间的块边界和列C5和C6之间的块边界实施如图8(b)所示的编码失真消除。
为处理列C4和C5之间的块边界,列C5中的帧结构块首先被转换为如图21(c)所示的场结构块。它是通过将图21(b)中所示的列C5中的奇数行像素转换为如图21(c)中所示的列C5中的灰色像素块,并且将图21(b)中所示的列C5中的偶数行像素转换为如图21(c)中所示的列C5中的白色像素块来进行的。然后如图8(b)所示消除列C4和C5之间的块边界的编码失真。
当画面中有运动时因为如果将场结构块转换为帧结构块,那么像素之间的垂直相关性会丢失,并且如果在垂直相邻块之间实施编码失真消除过程会发生非自然衰减,因此要将帧结构块转换为场结构块。另一方面,如果在静态画面中将帧结构块转换为场结构块,那么会减小在垂直方向上高频分量的编码错误抑制,因此像素之间的垂直相关性不会丢失并且也不容易发生非自然的图像质量下降。
在上述例子中,将帧结构块转换为场结构块以减少处理量(只将帧转换为场)。但是,如果不关心操作次数,可以使用另一种方法,即将帧转换为场并将场转换为帧,由于需要将场转换为帧的额外处理,因此与前一个例子相比增加了操作次数。更准确地说,首先确定要进行编码失真消除的目的像素(即,要通过去块来改变像素值的当前像素)是在帧结构块中还是在场结构块中。如果要进行编码失真消除的目的像素在场结构块中,那么将帧结构块转换为场结构块(即,目的像素的块类型),而如果要进行编码失真消除的目的像素在帧结构块中,那么将场结构块转换为帧结构块(即,目的像素的块类型)。
接下来参考图22中的流程图描述帧结构和场结构混合在一起时的操作。
隔行图像信号流中的帧由两个在不同时刻扫描的场组成。因此可以通过将两个场组合为一个编码单元对一帧进行帧编码(帧结构编码),或者可以利用分开编码和处理的两场进行场编码(场结构编码)。这些编码方法也可以分组成下面的两类,固定编码和自适应编码。对于固定编码,在帧编码或场编码之间切换整个画面。对于自适应编码,将图像画面分割为若干个块,并且每个块为帧编码或场编码。
固定编码还包括应用在帧结构块的固定帧编码,和应用在场结构块的固定场编码。对于固定编码,总是用帧编码或场编码来对隔行视频序列编码,而与内容无关。
但是,对于自适应编码,可以根据内容、画面、或画面中的编码块单元自适应选择帧编码或场编码。这些画面中的编码块可以象宏块一样小。对于自适应编码,可以因此利用帧编码或场编码对单个宏块进行编码。用宏块作为下面的编码单元。
可以利用应用于非隔行视频的相同技术对帧编码块,即,具有帧结构的块进行编码失真消除的处理。
对于场编码块,即具有场结构的块,将场划分为偶数场和奇数场,每个场作为单独的画面处理,然后对每个场实施去块。
参考图22中的流程图,首先要确定目的块是场编码还是帧编码(步骤63)。如果块是场编码,运行步骤64到69。如果块是帧编码,运行步骤70到72。
步骤64到66处理偶数场结构块,而步骤67到69处理奇数场结构块。步骤64到66消除图21(b)中列C3和C4之间的边界处白色像素之间的编码失真,而步骤67到69消除图21(b)中列C3和C4之间的边界处灰色像素之间的编码失真。
更准确地说,在步骤64中比较像素亮度以确定是否需要编码失真消除。接着,在步骤65中确定要滤波的像素数量。然后在步骤66中以场模式消除编码失真。
步骤67、68和69分别执行与步骤64、65和66相同的操作。
步骤70到72处理帧结构块以消除图21(b)中列C5和C6之间边界处的编码失真。更准确地说,在步骤70中比较像素亮度以确定是否需要编码失真消除。然后,在步骤71中确定要滤波的像素数量。然后在步骤72中以帧模式消除编码失真。
在步骤73中确定是否所有的块都已经被处理,以及它们的操作是否结束。
图23显示了另一种方法,其中将图22中的步骤64和67组合为一个单个步骤。更准确地说,确定是否需要从偶数场块和奇数场块消除编码失真,以及是否需要对偶数和奇数场块实施去块。这样做简化了编码失真消除过程。
图24显示了另一种方法,其中将图23中的步骤65和68组合为一个单个操作来确定要去块的偶数场块和奇数场块中像素的数量。然后根据该结果对偶数和奇数场块实施编码失真消除。该方法进一步简化了编码失真消除过程。
图25是在帧编码块和场编码块混合在一个单个画面中,并且块边界在帧结构块和场结构块之间时使用的处理的流程图。
首先,步骤95确定正在要进行编码失真消除处理的块之间的边界线是否为指定的边界线,即,是否为帧结构块在该线的一侧而场结构块在线的另一侧。这与确定该线是否在图21(b)中列C4和C5之间类似。如果是(步骤95返回是),那么控制进行到步骤96。
然后,将边界一侧的帧结构块转换为场结构块(步骤96)。这个转换过程与图21(b)中列C5中的块转换到图21(c)中列C5中的块类似。以下称转换后的块为“转换块”。
然后,确定在转换块和边界另一侧的场结构块之间是否需要编码失真消除(步骤97)。这一步与确定在图21(c)中的列C4和C5之间边界是否需要去块类似。如果需要,控制进行到步骤98。
接着确定要滤波的像素数量(步骤98),然后以场模式消除编码失真(步骤99)。
图25显示了帧结构块转换为场结构块并且当自适应编码的帧结构和场结构块相邻时从场中消除编码失真的方法,但是也可以反过来将场结构块转换为帧结构块,然后基于帧消除编码失真。
如图25中所示的基于场消除编码失真的优点在于操作可以阻止非自然图像质量的下降,这是因为即使在快速运动的图像信号中只使用在相同时刻的像素来消除编码失真。另一方面,由于在帧中垂直方向上的像素之间的相关性比具有轻微运动的图像信号中场的强,因此基于帧的去块产生的高频分量的恶化比基于场进行去块的恶化要小。两种方法都有优势,设备制造商可以选择提供优选的方法或装置,以便用户可以选择想要的方法。
还可以利用画面单元(帧或场)而不是具有自适应编码的块单元来实施编码失真消除。通过提供用来处理画面单元的一种场模式或帧模式去块滤波器来简化去块滤波器。滤波器可以固定为场模式或帧模式,或者可以基于画面切换。如果滤波器是基于画面切换的,那么编码装置可以确定适合的模式,并且表示解码装置的去块滤波器以场模式操作还是以帧模式操作的识别信号可以添加到代码流头部然后发送到解码器。
另外,当场或帧模式操作可以基于块单元切换,并且禁止基于场的去块和切换(例如,通过设置画面参数来禁止在画面中切换)时,可以由帧单元来消除编码失真。
应该注意的是,上述第一到第五个实施例中的去块滤波器可以用作图32所示的后置滤波器或图33中所示的环路滤波器。
通过在去块操作前将数据存储到存储器64中,还没有消除块失真的图像在被用作环路滤波器时被称作为预定画面,与使用去块画面作为预定画面相比,编码图像质量的下降得稍微多一些。
另一方面,当用作后置滤波器时,由于消除编码失真后的结果不作为参考图像,与使用的去块滤波器的类型无关,解码图像质量不会下降很多。例如,可以用执行最少操作的简单滤波器作为优先要求低功率消耗的设备,如蜂窝电话中的去块滤波器62,而可以用高精度、高图像质量的滤波器作为实现要求图像质量的固定娱乐系统中的去块滤波器62。
实施例6通过将前面实施例中所述的实现编码失真消除方法、编码方法和解码方法的步骤的程序记录在软盘或其它计算机可读的数据记录介质上,可以很容易在独立的计算机系统上执行上面实施例中描述的过程。
图26显示了利用存储上面第一到第五实施例所述的编码失真消除方法、编码方法和解码方法的数据存储介质(在这个例子中是软盘)来获得本发明另一个实施例的计算机系统。
图26(b)显示了从前面看的软盘,软盘截面,和实际的盘介质,图26(a)显示了典型的软盘记录介质的物理格式。软盘FD内置在盒F中。从盘表面的外圆周向内圆周形成了多个同心轨迹Tr,轨迹沿角方向分成16个扇区Se。根据本发明存储上述程序的软盘FD中具有本发明的编码失真消除方法、编码方法和解码方法作为计算机可执行程序记录在软盘FD中指定的区域。
图26(c)显示了利用软盘FD记录和读取这些程序的装置。为了将这些程序记录到软盘FD上,计算机系统Cs通过软盘驱动器FDD将编码失真消除方法、编码方法、和解码方法作为程序写入。为了在计算机系统上从存储到软盘FD的程序编码失真消除方法、编码方法、和解码方法,通过软盘驱动器从软盘FD上读取程序然后传送到计算机系统。
应该注意的是,虽然上面描述软盘作为数据记录介质,也可以使用光盘或其它类型的计算机可读介质,包括CD-ROM、存储卡、ROM盒,或其它类似的可记录程序的任何介质。
下面将描述根据上述实施例实施视频编码方法和视频解码方法的系统。
图27是表示用来提供内容发布服务的内容提供系统ex100的整体配置的示意图。该通信系统的服务区被分为指定大小的小区,每个小区中安装了基站ex107到ex110(固定无线基站)。
该内容提供系统ex100有大量例如通过因特网服务提供商ex102、电话网ex104,和基站ex107到ex110连接到因特网ex101的独立设备,如计算机ex111、PDA(个人数字助理)ex112、摄像机ex113、蜂窝电话ex114和带照相机的蜂窝电话ex115。
然而,该内容提供系统ex100不应该仅限于图27所示的配置,还应该可以选择地连接需要的设备。单个设备也可以不通过固定基站ex107到ex110而直接连接到电话网ex104。
摄像机ex113是数字视频摄像机或其它能捕获视频图像的装置。蜂窝电话可以使用各种协议中的任何一种,包括PDC(个人数字通信)、CDMA(码分多址)、W-CDMA(宽带码分多址)、GSM(全球移动通信系统),和PHS(个人手持系统)。
摄像机ex113可以通过基站ex109和电话网ex104连接到可以将用户利用摄像机ex113发送的已编码内容制作为流实况广播的流服务器ex103。从摄像机ex113接收的内容可以由摄像机ex113或由服务器编码。由照相机ex116捕获的视频数据也可以通过计算机ex111发送到流服务器ex103。该照相机ex116是数字照像机或其它可以捕获静态画面和视频的装置。从照相机ex116接收的视频数据可以由照相机ex116或计算机ex111编码。任何一种情况下,视频数据由计算机ex111中的LSI装置ex117或照相机ex116处理。用于视频编码和解码的软件可以存储在任何计算机ex111可以访问的计算机可读数据记录介质上(如CD-ROM、软盘或硬盘)。
视频数据也可以由带照相机的蜂窝电话ex115发送。在这种情况下,视频数据由带照相机的蜂窝电话ex115中的LSI装置来编码。
利用该内容提供系统ex100,可以对由用户利用摄像机ex113、照相机ex116,或其它装置记录的内容(如内容的现场录制)如本发明上面实施例描述的进行编码并发送到流服务器ex103中。然后,流服务器ex103向请求数据的客户端输出内容数据。客户端可以是任何能够对已编码内容解码的装置,包括计算机ex111、PDA ex112、摄像机ex113、以及蜂窝电话ex114。内容提供系统ex110可以使客户端接收和再现已编码的内容数据,可以使客户端实时接收、解码、和播放内容,因此是各能够进行个人广播的系统。
上面实施例所述的本发明的视频编码装置和视频解码装置可以通过该内容提供系统ex100中的单个装置来用于编码和解码。
下面通过实例描述用于该内容提供系统ex100的蜂窝电话。
图28显示了利用根据本发明上述视频编码方法和视频解码方法的蜂窝电话ex115。如图28所示,这个带有照相机的蜂窝电话ex115有一个用来与基站ex110交换RF信号的天线ex201、诸如CCD照相机之类用来捕获视频和静态画面的摄像头ex203、诸如LCD之类用来显示由摄像头ex203捕获的图像或由天线ex201接收的图像然后解码的显示单元ex202;具有键盘ex204和其它控制的操作面板;诸如扬声器ex208之类用来输出音频的音频输出单元;麦克风ex205或其它类型的音频输入装置;用来存储由摄像头ex203捕获的诸如视频或静止图像之类的已编码或已解码数据、接收到的e-mai1、或其它视频或静态画面数据的记录介质ex207;以及用来将记录介质ex207装载到蜂窝电话ex115上的插槽ex206。记录介质ex207可以是SD卡或其它类型的闪存装置,例如内置在塑料盒中的EEPROM(电可擦可编程只读存储器)。
通过参考图29进一步描述蜂窝电话ex115。通过同步总线ex313连接到主控制器ex311,用于系统地控制包括显示单元ex202和键盘ex204蜂窝电话ex115的每一部分的是电源电路ex310、操作输入控制器ex304、图像编码单元ex312、摄像头接口ex303、LCD控制器ex302、图像解码单元ex309、多路复用器/多路分解器ex308、读/写单元ex307、调制器/解调器单元ex306、和音频处理单元ex305。
当用户将通话结束和电源键设置为开的位置时,电源电路ex310从电池组向蜂窝电话ex115的每个部分供电,并且将带有摄像头的数字蜂窝电话设置为工作模式。
由主控制器ex311控制,通常包括CPU、ROM和RAM的蜂窝电话ex115将通话模式时由麦克风ex205采集的音频信号由音频处理单元ex305转换为数字音频数据。然后调制器/解调器单元ex306对音频处理单元ex305的输出扩频,通信电路ex301实施D/A转换和频率转换处理,然后通过天线ex201输出。在通话模式时,蜂窝电话ex115放大通过天线ex201接收到的信号并实施频率转换和A/D处理,调制器/解调器单元ex306对信号解扩展,然后,音频处理单元ex305将解扩展的信号转换为模拟音频信号,并从扬声器ex208输出模拟音频信号。
如果在数据通信模式时发送电子邮件,利用键盘ex204输入电子邮件消息的文本数据,然后通过操作输入控制器ex304发送到主控制器ex311。接着,主控制器ex311利用调制器/解调器单元ex306对文本数据扩频,利用通信电路ex301进行D/A转换和频率转换处理,然后从天线ex201发送到基站ex110。
为了在数据通信模式时发送图像数据,利用摄像头ex203捕获到的图像数据通过摄像头接口ex303提供给图像编码单元ex312。如果图像数据没有发送,那么由摄像头ex302捕获到的图像数据可以通过摄像头接口ex303和LCD控制器ex302直接显示在显示单元ex202上。
图像编码单元ex312具有根据本发明的图像编码装置的配置。它利用前面实施例中描述的图像编码装置中使用的编码方法通过压缩编码将摄像头ex203提供的图像数据转换为已编码图像数据,然后将编码图像数据输出到多路复用器/多路分解器ex308。当摄像头ex203记录时,由蜂窝电话ex115的麦克风ex205捕获的音频由音频处理单元ex305也发送到多路复用器/多路分解器ex308作为数字音频数据。
多路复用器/多路分解器ex308将从图像编码单元ex312提供的编码画面数据与从音频处理单元ex305提供的音频数据多路复用。然后由调制器/解调器单元ex306对多路复用的数据进行扩频,由通信电路ex301实施D/A转换和频率转换,然后从天线ex201发送该信号。
如果在数据通信模式接收到来自从因特网上的站点访问的视频文件的数据,那么由调制器/解调器单元ex306对通过天线ex201从基站ex110接收到的信号解扩频,并将得到的多路复用数据发送到多路复用器/多路分解器ex308。
为了对通过天线ex201接收的多路复用数据解码,多路复用器/多路分解器ex308多路分解该多路复用数据以分开编码视频数据比特流和编码音频数据比特流。然后,通过同步总线ex313将编码视频数据比特流提供给图像解码单元ex309,和将编码音频数据比特流提供给音频处理单元ex305。
图像解码单元ex309具有与上面实施例所述的图像解码装置相同的配置。它利用与上述编码方法对应的解码方法通过对编码视频数据比特流解码来产生重构视频数据,并通过LCD控制器ex302将解码视频数据提供给显示单元ex202。这样,可以显示从因特网上的主页访问的视频文件的视频数据。音频处理单元ex305还同时将音频数据转换为模拟音频信号,并且将结果提供给扬声器ex208。这样,从因特网的主页访问到的视频文件中包含的音频数据也可以从扬声器再现。
本发明的通信系统不仅限于上述配置。例如,该系统可以利用本发明的图像编码装置和/或图像解码装置采用如图30所示的数字广播系统来访问通过卫星或地面网发射的数字广播。
更具体地说,广播站ex409通过无线电波向通信或广播卫星ex410发射编码的视频数据比特流。接收到该发射的广播卫星ex410发射例如利用卫星广播接收机由家中的天线ex406接收的广播信号。然后,由电视接收机ex401、机顶盒(STB)ex407,或其它装置对编码的比特流解码和重构。
本发明的视频解码装置也可以由用来读取和解码记录在诸如CD、DVD或其它存储介质ex402之类的记录介质上的已编码比特流的播放装置ex403来实现。在这种情况下,重构的视频信号显示在例如监视器ex404上。
本发明的图像解码装置也可以内置在与卫星或地面广播天线ex406或用来接入有线电视的有线天线ex405相连的机顶盒ex407中。该机顶盒ex407的输出也可以显示在电视机的显示器ex408上。
图像解码装置还可以内置在电视机中而不是机顶盒中。
也可以从天线ex410或基站ex107由具有相应天线ex411的汽车ex412接收信号,并将解码的视频可以显示在汽车ex412中的汽车导航系统的显示器上。
视频信号还可以由根据本发明实施例的视频编码装置来编码然并记录在数据记录介质上。更具体地说,DVD记录机可以将图像信号录制到DVD盘ex421上,或者硬盘记录器ex420可以记录图像信号。视频信号还可以记录到SD卡ex422。如果记录器ex420具有根据本发明的视频解码装置,那么它还可以在监视器ex408上播放和显示记录到DVD盘ex421、SD卡ex422,或其它存储介质上的视频信号。
应该注意的是,汽车导航系统ex413可以不配置图29中所示的摄像头ex203、摄像头接口ex303和图像编码单元ex312。这样也可以应用到,例如计算机ex111和电视(接收机)ex401。
蜂窝电话ex114或其它终端可以作为具有上述编码器和解码器的收发机终端,或者它可以作为只有编码器的发射终端,或只有解码器的接收终端。
很明显,本发明的编码装置和解码装置不只限于上述第一到第六个实施例所述的配置,可以有多种变化方式。
上面实施例描述的视频编码方法和视频解码方法可以用于上述任何一种装置和系统,并且获得这些实施例的效果。
本发明的编码失真消除方法提供了具有简单处理的编码失真消除方法,一种几乎没有因编码失真而造成图像信号的图像质量降低的可能性的编码失真消除方法,以及可以减小作为消除编码失真的结果而降低图像信号的图像质量的可能性的编码方法和解码方法。因此本发明具有很高的实用价值。
虽然已参考附图结合优选实施例描述了本发明,应该指出,各种变化和改进对本领域技术人员来说是显而易见的。可以理解,该变化和改进包括在由所附权利要求定义的本发明的范围中,除非它们脱离了本发明的范围。
权利要求
1.一种以块为基础,将分成段的图像编码成多个块的方法,包括步骤对编码块进行解码以获得解码块;和确定滤波选择参数,所述滤波选择参数使用量化参数确定用于改变编码失真消除方法的阈值;通过应用根据相邻解码块中的像素的差值与根据滤波选择参数确定的阈值之间的比较结果所选择的编码失真消除方法,消除相邻的解码块之间的块边界两侧的像素中的编码失真;和对滤波选择参数进行编码以获得经编码的滤波选择参数。
2.根据权利要求1所述的方法,其中当所述差值不低于所述阈值,并且不向相邻解码块中的像素应用编码失真消除时,所选择的编码失真消除方法把要被应用所述编码失真消除的相邻解码块中的像素的数量设置为零。
3.根据权利要求1所述的方法,其中所述编码失真消除方法包括根据滤波选择参数来改变滤波强度的方法。
4.根据权利要求1所述的方法,其中所述量化参数包括相邻解码块的量化参数的平均值。
5.根据权利要求1所述的方法,进一步包括使经编码的滤波选择参数位于通过对片进行编码而获取的编码片信号的片首部中。
6.根据权利要求1所述的方法,进一步包括在块的基础上对解码的块应用编码失真。
全文摘要
当再现压缩的视频信号时会产生马赛克状的块噪声。消除这种块噪声,但是利用去块滤波器从每个块中消除块噪声给去块滤波器增加了明显的负荷。通过确定是否需要执行编码失真消除(去块),并且只在需要时实施去块滤波来减小这种负荷。
文档编号H04N7/64GK1874522SQ200610090880
公开日2006年12月6日 申请日期2002年11月29日 优先权日2001年11月29日
发明者薛忠, 申省梅, 符式伟, 李作裕, 角野真也 申请人:松下电器产业株式会社