具体实施方式
可以对于本发明进行各种修改和改变。以下,将参考附图详细描述一些特定实施例。
然而,应当明白,本发明不限于所述实施例,并且本发明的所有变化和替换或它们的等同内容被包括在本发明的技术精神和范围内。
可以明白,虽然在此可以使用术语第一、第二、第三等来描述各个元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应当被这些术语限制。这些术语仅用于将一个元件、组件、区域、层和/或部分与另一个区域、层或部分相区别。因此,在不偏离本发明的教导的情况下,下面讨论的第一元件、组件、区域、层和/或部分可以被称为第二元件、组件、区域、层和/或部分。
可以明白,当元件或层被称为在另一个元件或层“上”、“连接到”或“耦合到”另一个元件或层时,它可以直接地在另一个元件或层上、连接到或耦合到另一个元件或层,或者可以存在介入中间的元件或层。相反,当元件被称为“直接”在另一个元件或层“上”、“直接连接到”或“直接耦合到”另一个元件或层时,没有介入中间的元件或层。贯穿全文,相同的标号指示相同的元件。在此使用的术语“和/或”包括相关联的列出的术语的一个或多个中的任何一个和全部组合。
在此使用的术语仅用于描述特定示例的目的,并且不意欲限制本发明。如在此使用的,单数形式“一个”和“该”意欲也包括复数形式,除非上下文清楚地另外指示。可以进一步明白,当在本说明书中使用时,术语“包括”指示存在所述特征、整体、步骤、操作、元件和/或组件,并且不排除存在或增加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组。
除非另外定义,在此使用的所有术语(包括科技术语)具有与本发明所属的领域内的普通技术人员通常所理解的相同的含义。可以进一步明白,诸如在通常使用的词典中定义的那些的术语应当被解释为具有与它们在相关领域的背景中的含义一致的含义,并且将不在理想化或过分正式的意义上被解释,除非在此明确地如此定义。
以下,将参考附图详细描述本发明的实施例,其中,可以贯穿说明书和附图使用相同的附图标号表示相同或基本上相同的元件,并且,将不重复关于相同元件的说明。
图1是图示根据本发明的实施例的图像编码方法的流程图。图1图示根据图像的时间频率特性来确定宏块的大小并且然后通过使用宏块的所确定的大小来执行运动补偿编码的方法。
参见图1,编码设备接收要编码的目标帧(或画面)(步骤S110)。所接收的目标帧可以被存储在缓冲器中,该缓冲器可以存储预定数目的帧。例如,缓冲器可以存储至少四个(第n-3、n-2、n-1和n个)帧。
随后,编码设备分析所接收的帧(或画面)的时间频率特性(步骤S120)。例如,编码设备检测在第n-3帧(或画面)和第n-2帧(或画面)之间的变化、在第n-2帧(或画面)和第n-1帧(或画面)之间的变化和在第n-1帧(或画面)和第n帧(或画面)之间的变化,以分析在帧(或画面)之间的时间频率特性。
其后,编码设备将所分析的时间频率特性与预设阈值作比较,并且基于比较的结果来确定要编码的宏块的大小(步骤S130)。在此,编码设备可以基于在缓冲器中存储的帧中的在两个在时间上相邻的帧(例如,第n-1和第n帧)之间的变化来确定宏块的大小,或者,可以基于在预定数目的帧(例如,第n-3、n-2、n-1和n帧)中的改变的特性来确定宏块的大小。以减小用于关于宏块的大小的信息的开销。
例如,编码设备分析第n-1帧(或画面)和第n帧(或画面)的时间频率特性,并且如果所分析的时间频率特性值小于预设第一阈值,则将宏块的大小确定为64×64像素。如果所分析的时间频率特性值等于或大于预设第一阈值并且小于第二阈值,则宏块的大小被确定为32×32像素,并且如果所分析的时间频率特性值等于或大于预设第二阈值,则将宏块的大小确定为16×16像素或更小。在此,第一阈值指当在帧(或画面)之间的变化小于第二阈值时的时间频率特性值。以下,将扩展宏块定义为具有32×32像素或更大的大小的宏块。扩展宏块可以具有32×32像素或更大的大小,诸如64×64像素或128×128像素,以适合于包括超HD或更高分辨率的高分辨率。在超HD或更高分辨率的情况下,考虑到编码器和解码器的复杂度,扩展宏块可以限于64×64像素或更小的最大大小。
要编码的宏块的大小可以基于所接收的画面的时间频率特性的分析的结果而对于每一个画面或每一个GOP(画面组)具有预定值。
或者,与所接收的画面的时间频率特性的分析的结果无关,要编码的宏块的大小可以对于每一个画面或每一个GOP具有预定值。
如果在步骤S130中确定宏块的大小,则编码设备基于宏块的确定的大小来执行编码(步骤S140)。
例如,如果将宏块的大小确定为64×64像素,则编码设备对于其大小为64×64像素的当前宏块执行运动预测,以获得运动向量,该运动向量然后被用于进行运动补偿以产生预测块,并且编码设备对于残差部分变换、量化和执行熵编码,该残差部分是在所产生的预测块和当前宏块之间的差。然后发送结果。而且,关于宏块的确定的大小的信息或关于运动向量的信息也被编码,然后被发送。
在下面的实施例中,可以取决于由编码器控制器(未示出)或解码控制器(未示出)确定的宏块的大小来完成每扩展宏块的编码,并且如上所述,每扩展宏块的编码可以适用于所有的运动补偿编码、变换和量化。然而,它可以适用于运动补偿编码、变换或量化中的至少一个。而且,每扩展宏块编码可以同样适用于根据下面的实施例的解码。
如图1中所示,在根据实施例的图像编码方法中,当在输入帧之间的变化小时(即,当时间频率低时),宏块的大小增大,并且当在帧之间的变化大时(即,当时间频率高时),宏块的大小减小,由此提高编码效率。
根据时间频率特性的上述图像编码/解码方法可以适用于具有HD或超HD或更高分辨率的高分辨率图像。以下,“宏块”指扩展宏块或具有32×32像素或更小的大小的现有宏块。
根据本发明的另一个实施例,取代基于扩展宏块或其大小来执行编码/解码,可以使用递归编码单元(CU)来执行编码和解码。以下,将参考图2描述根据实施例的递归编码单元结构。
图2是图示根据本发明的实施例的递归编码单元结构的概念视图。
参见图2,每一个编码单元CU具有正方形形状,并且可以具有2N×2N(单位:像素)的可变大小。可以在每编码单元基础上执行帧间预测、帧内预测、变换、量化和熵编码。编码单元CU可以包括最大编码单元LCU和最小编码单元SCU。最大或最小编码单元LCU或SCU的大小可以被为8或更大的2的幂表示。
根据实施例,编码单元CU可以具有递归树结构。图2图示下述示例:其中,最大编码单元LCU(或CU0)的侧具有为128的2N0(N0=64)的大小而最大层或层深度是5。可以通过一系列标记来表示该递归结构。例如,在其层或层深度是k的编码单元CUk具有标记值0的情况下,可以对于当前层或层深度执行对于编码单元CUk的编码。当标记值是1时,编码单元CUk被划分为具有k+1的层或层深度和Nk+1×Nk+1的大小的四个独立的编码单元。在该情况下,可以递归地处理编码单元CUk+1,直到其层或层深度达到可允许的最大层或层深度。当编码单元CUk+1的层或层深度与可允许的最大层或层深度(其例如是如图4中所示的4)相同时,不允许任何进一步的划分。
可以在序列参数集(SPS)中包括最大编码单元LCU的大小和最小编码单元SCU的大小。序列参数集SPS可以包括最大编码单元LCU的可允许的最大层或层深度。例如,在图2中所示的示例中,可允许最大层或层深度是5,并且当最大编码单元LCU的侧具有128像素的大小时,诸如128×128(LCU)、64×64、32×32、16×16和8×8(SCU)的5个编码单元大小是可能的。即,在给定最大编码单元LCU的大小和可允许最大层或层深度的情况下,可以确定编码单元的可允许大小。
考虑到编码器和解码器的复杂度,在诸如超HD的高分辨率的情况下的编码单元的大小可以限于64×64的最大大小。
上述递归编码单元结构的使用可以提供下面的优点。
首先,可以支持比现有16×16的大小更大的大小。如果感兴趣的图像区域是同质的,则最大编码单元LCU可以以比当使用多个小块时更少数目的符号来表达感兴趣的图像区域。
其次,与当使用固定大小的宏块时作比较,可以支持任何大小的最大编码单元LCU,使得编码解码器可以容易地对各种内容、应用和设备优化。即,最大编码单元LCU的大小、最大层或层深度可以被适当地选择,使得可以比目标应用更优化分层块结构。
第三,与是否是宏块、子宏块和扩展宏块无关,使用编码单元LCU的单个单元类型,使得可以通过使用最大编码单元LCU的大小、最大层(或最大层深度)和一系列标记来简单地表示多层分层结构。当与独立于大小的句法表示一起使用时,编码单元LCU足以指示用于剩余的编码工具的句法项目的一个一般化的大小,并且这样的一致性可以简化实际语法分析处理。最大层值(或最大层深度值)可以是任何值,并且可以具有大于在现有的H.264/AVC编码方案中允许的值的值。可以通过使用独立于大小的语法表示以独立于编码单元CU的大小的一致方式来指示所有的句法元素。可以递归地指示用于编码单元的划分处理,并且,可以将用于叶编码单元(在层中的最后编码单元)的句法元素定义为相同大小,而与编码单元的大小无关。上面的表示在减小语法分析复杂度上非常有效,并且可以当允许高的层或层深度时使得表示进一步清楚。
如果分层划分处理完成,则可以对于未被进一步划分的编码单元分层单元的叶节点执行帧间预测或帧内预测。这个叶编码单元被用作预测单元PU,预测单元PU是帧间预测或帧内预测的基本单元。
对于帧间预测或帧内预测,在叶编码单元上完成分区。即,对于预测单元PU执行分区。在此,预测单元PU是用于帧间预测或帧内预测的基本单元,并且可以是现有的宏块单元或子宏块单元或具有32×32像素或更大的大小的扩展宏块或编码单元。
分区包括不对称分区、以除了正方形之外的任何形状的几何分区和沿着边方向的分区,现在更详细地描述它们。
图3至6是图示根据实施例的不对称分区的概念视图。
当用于帧间预测或帧内预测的预测单元PU具有M×M(M是自然数。大小的单位是像素)的大小时,沿着编码单元的水平或垂直方向执行不对称分区。图3图示了预测单元PU的大小是64×64像素的示例。
参见图3,沿着水平方向进行不对称分区,以将预测单元划分为具有64×16的大小的分区P11a和具有64×48的大小的分区P21a或被划分为具有64×48的大小的分区P12a和具有64×16的大小的分区P22a。或者,沿着垂直方向执行不对称分区,以将预测单元划分为具有16×64的大小的分区P13a和具有48×64的大小的分区P23a或被划分为具有48×64的大小的分区P14a和具有16×64的大小的分区P24a。
参见图4,在具有32×32的大小的情况下,预测单元可以经受水平方向不对称分区以被划分为具有32×8的大小的分区P11b和具有32×24的大小的分区P21b或被划分为具有32×24的大小的分区P12a和具有32×8的大小的分区P22b。或者,预测单元可以经受垂直方向不对称分区,以被划分为具有8×32的大小的分区P13b和具有24×32的大小的分区P23b或被划分为具有24×32的大小的分区P14b和具有8×32的大小的分区P24b。
参见图5,在具有16×16的大小的情况下,预测单元PU可以经受水平方向不对称分区以被划分为具有16×4的大小的分区P11c和具有16×12的大小的分区P21c或者(虽然在附图中未示出)被划分为具有16×12的大小的上分区和具有16×4的大小的下分区。而且,虽然在附图中未示出,但是预测单元PU可以经受垂直方向不对称分区,以被划分为具有4×16的大小的左分区和具有12×16的大小的右分区或被划分为具有12×16的大小的左分区和具有4×16的大小的右分区。
参见图6,在具有8×8的大小的情况下,预测单元PU可以经受水平方向不对称分区以被划分为具有8×2的大小的分区P11d和具有8×6的大小的分区P21d或者(虽然在附图中未示出)被划分为具有8×6的大小的上分区和具有8×2的大小的下分区。而且,虽然在附图中未示出,但是预测单元PU可以经受垂直方向不对称分区,以被划分为具有2×8的大小的左分区和具有6×8的大小的右分区或被划分为具有6×8的大小的左分区和具有2×8的大小的右分区。
图7至9是图示根据本发明的另一个实施例的几何分区的概念视图。
图7图示下述示例:其中,预测单元PU经受几何分区使得所划分的分区具有除了正方形之外的形状。
参见图7,对于预测单元,可以将在分区之间的几何边界线L定义如下。预测单元PU被通过预测单元PU的中心O的x和y轴分割为四个象限。从中心O向边界线L绘出垂直线。因此,可以通过从中心O到边界线L的距离ρ和在逆时针方向上从x轴至垂直线的角度θ来指定位于任何方向上的任何可能边界线L。
图8图示下述示例:其中,预测单元PU经受几何分区,使得每一个所划分的分区具有除了正方形之外的任何形状。
参见图8,对于帧间或帧内预测,预测单元PU相对于其中心被分割为四个象限。为预测单元PU的左上位置的第二象限被划分为分区P11b’,并且,剩余的L形状的象限被划分为分区P21b’。如在此使用的,对应于所划分的分区或几个所划分的分区的预测单元PU的“部分”也被称为“块”。或者,为预测单元PU的左下部分的第三象限被划分为分区P12b’,并且剩余的象限被划分为分区P22b’。替代地,为预测单元PU的右上部分的第一象限被划分为分区P13b’,并且剩余的象限被划分为分区P23b’。而且,对应于第四象限的预测单元PU的右下部分被划分为分区P14b’,并且剩余的象限被划分为分区P23b’。而且,预测单元PU的右下部分的第四象限被划分为分区P14b’,并且剩余的象限被划分为分区P24b’。
如上所述,预测单元可以被划分使得所划分的分区具有L形状。因此,在当分区时在例如左上、右上、右下或左下块的边块中存在运动对象的情况下,则它可以提供比当预测单元PU被划分为四个块时更有效的编码。取决于其中运动对象位于四个分区之间的边块,可以选择和使用对应的分区。
图9图示另一个示例,其中,预测单元PU经受几何分区,使得所划分的分区中的至少一个具有非正方形形状。
参见图9,对于帧间或帧内预测,预测单元PU可以被划分为两个不同的不规则区域(模式0和1)或被划分为不同大小的矩形区域(模式2和3)。
在此,参数“pos”用于指示在分区之间的边界的位置(简称为“分区间边界”)。在模式0或1的情况下,“pos”表示从预测单元PU的对角线至分区间边界的水平方向距离,并且在模式2或3的情况下,“pos”表示从垂直或水平二等分线至分区间边界的水平方向距离。在图9中,可以向解码器发送模式信息。在上述的四个模式中,在RD(速率失真)上,具有最小RD成本的模式可以用于帧间预测。
图10是图示在几何分区的情况下用于沿着边界线的定位的边界像素的运动补偿的概念视图。当预测单元PU被几何分区划分为区域1和2时,用于区域1的运动向量被称为MV1,并且用于区域2的运动向量被称为MV2。
当在位于区域1(或2)的特定上、下、左和右像素中的任何一个也位于区域2(或1)时,它可以被看作边界像素。参见图10,边界像素A属于在区域2中的两个区域之间的边界,并且边界像素B属于在区域1中的两个区域之间的边界。除了边界像素之外的像素使用适当的运动向量来经受正常的运动补偿。边界像素使用通过将加权因子乘以分别来自区域1和2的运动向量MV1和MV2的运动预测值而获得的值的和来经历运动补偿。在图10中所示的示例中,使用加权因子2/3用于包括边界像素的区域,并且使用加权因子1/3用于不包括边界像素的区域。
图11是图示根据本发明的另一个实施例的图像编码方法的流程图。图12是图示在图11中图示的分区的概念视图。
图11图示下述处理,其中,在通过在图1中所示的图像编码方法来确定预测单元PU的大小后,预测单元PU被划分为考虑到在预测单元PU中包括的边的分区,并且然后对于每一个所划分的分区执行编码。描述其中预测单元PU使用大小是32×32的宏块的示例。
考虑边的分区可以适用于帧内预测以及帧间预测,并且下面将详细给出其详细描述。
在图11中的步骤S1110至1130分别与在图1中的步骤S110至S130基本上相同,并且因此不重复详细描述。
参见图11和12,在步骤S1110至S1130中确定宏块的大小。然后,编码设备在与具有所确定的大小的当前宏块相邻的宏块中包括的像素中检测属于边的像素(步骤S1140)。
为了在步骤S1140中检测属于边的像素,可以采用各种已知方法。例如,可以计算在当前宏块和其相邻像素之间的差值,或者可以将“索贝尔(sobel)”算法或其他边检测算法用于边检测。
其后,编码设备使用属于所检测的边的像素来将当前宏块划分为分区(步骤S1150)。
对于当前宏块的划分,编码设备在与边像素相邻的像素中检测属于边的像素,该边像素在包括在与当前宏块相邻的块中的像素中被确定为属于边,并且编码设备使用将所检测的像素与该边像素连接的线。
例如,如图12中所示,编码设备在属于与具有32×32像素的大小的当前宏块相邻的块的像素中检测属于来自最近像素的边的像素211和214。然后,编码设备在位于所检测的像素211周围的像素中检测属于边的像素212,并且使用连接像素211和212的延伸线213,由此将宏块划分为分区。
或者,编码设备在与所检测的像素214相邻的像素中检测属于边的像素215,并且使用将像素214和215彼此连接的延伸线,由此将宏块分区。
而且,编码设备仅在作为在与当前宏块210相邻的块中包括的像素的、最接近当前宏块210的像素中检测属于边的像素(也称为“(一个或多个)边像素”),并且确定通过边像素的直线(该直线也被称为“边直线”)的方向,由此将当前宏块分区。在此,关于边直线,在诸如垂直模式(模式0)、水平模式(模式1)、对角下左模式(模式3)、对角下右模式(模式4)、垂直右模式(模式5)、水平下模式(模式6)、垂直左模式(模式7)和水平上模式(模式8)的根据H.264/AVC标准的用于4×4块的帧内预测模式中,可以使用任何一种来将当前宏块分区。替代地,关于边像素在不同方向上划分的分区被编码,并且考虑到编码效率,然后可以确定直线的最后方向。或者,与边直线的方向相关地,不使用基于H.264/AVC标准的用于4×4块的帧内预测模式,而使用具有大于4×4像素大小的大小的块的各种帧内预测模式,从该帧内预测模式中选择任何一种,并且可以使当前宏块经受沿着由所选择的模式指示的方向的分区。关于边直线的信息(例如,方向信息)可以被包括在分区信息中,并且可以与分区信息一起被传送。
通过上述方法,当前宏块在步骤S150被划分为至少一个分区。然后,编码设备对于每一个分区执行编码(步骤S1160)。
例如,编码设备对于在具有64×64或32×32像素大小的当前宏块中的每一个所划分的分区执行运动预测以获得运动向量,并且使用所获得的运动向量来执行运动补偿以产生预测分区。然后,编码设备对于残差部分进行变换、量化和熵编码,该残差部分是在所产生的预测分区和当前宏块的分区之间的差,然后编码设备传送结果。编码设备也对于关于所确定的宏块的大小、分区信息和运动向量的信息执行熵编码,然后传送结果。
当启动使用考虑边的分区的预测模式时,可以使得执行使用上述的考虑边的分区的帧间预测。如上所述,考虑边的分区可以适用于帧内预测以及帧间预测。参考图13来描述应用到帧内预测的示例。
图13是图示向帧内预测应用考虑边的分区的示例的概念视图。如图13中所示,使用考虑边的分区的帧内预测可以被配置来当启动使用考虑边的分区的预测模式时被执行。使用诸如索贝尔算法的上述边检测算法来检测边,并且,可以然后沿着所检测的边方向来估计参考像素。
参见图13,当线E是边边界线时,像素a和b是位于边边界线E的两侧处的像素,并且p(x,y)是以帧内预测为目标的参考像素,可以根据等式1来预测p(x,y):
[等式1]
Wa=δx-floor(δx)
Wb=ceil(δx)-δx
P=Wa×a+Wb×b
在此,δx指从参考像素p(x,y)的x轴坐标至在边线E和x轴之间的交点的距离,Wa和Wb指加权因子,floor(δx)返回不大于δx的最大整数——例如floor(1.7)=1——并且ceil(δx)返回通过将δx四舍五入而获得的值——例如,ceil(1.7)=2。
关于通过在边中包括的像素的边边界线的信息(包括方向信息)被包括在分区信息中,并且被传送到解码器。
图14是图示根据本发明的另一个实施例的图像编码方法的流程图。图14图示使用具有取决于图像的空间频率特性而确定的大小的预测单元PU来执行运动补偿编码的方法。
参见图14,编码设备首先接收要编码的目标帧(或画面)(步骤S1310)。在此,所接收的目标帧可以被存储在缓冲器中,缓冲器可以存储预定数目的帧。例如,缓冲器可以存储至少四个(第n-3、n-2、n-1和n个)帧。
然后,编码设备分析每一个所接收的帧(或画面)的空间频率特性(步骤S1420)。例如,编码设备计算在缓冲器中存储的每一个帧的信号能量,分析在所计算的信号能量和频谱之间的关系,并且分析每一个图像的空间频率特性。
其后,编码设备基于所分析的空间频率特性来确定预测单元PU的大小。在此,可以基于在缓冲器中存储的每一个帧或基于预定数目的帧来确定预测单元PU的大小。
例如,当帧(或画面)的信号能量小于在频谱中预设的第三阈值时,编码设备将预测单元PU的大小确定为16×16像素或更小,并且当信号能量等于或大于预设的第三阈值并且小于第四阈值时将预测单元PU的大小确定为32×32像素,并且当信号能量等于或大于预设的第四阈值时将预测单元PU的大小确定为64×64像素。在此,第三阈值指当图像的空间频率大于在第四阈值的情况下的图像的空间频率时。
根据每一个接收的画面的时间或空间频率特性,使用宏块的大小用于通过扩展宏块或预测单元的编码,使得可以提高编码效率。然而,根据独立于每一个接收的画面的时间或空间频率特性而接收的每一个画面的分辨率(大小),可以使用扩展宏块或预测单元来完成编码/解码。换句话说,可以通过使用扩展宏块或预测来对于具有HD或超HD或更高分辨率的画面进行编码/解码。
如果在步骤S1330中确定预测单元PU的大小,则编码设备基于预测单元PU的所确定的大小来执行编码(步骤S1440)。
例如,如果将预测单元PU的大小确定为64×64像素,则编码设备对于具有64×64像素的大小的当前预测单元PU执行运动预测以获得运动向量,并且基于所获得的运动向量来执行运动补偿以产生预测块。然后,编码设备对于残差部分执行变换、量化和熵编码,该残差部分是在所产生的预测块和当前预测单元PU之间的差,然后编码设备传送结果。而且,关于所确定的预测单元PU的大小的信息和关于运动向量的信息也经受熵编码,并且然后被传送。
如图14中所示,在根据实施例的图像编码方法中,当输入画面的图像同质性或均匀度高时(即,当空间频率低时——例如诸如具有相同颜色的区域或其能量向低频集中的区域),预测单元PU的大小被设定为更大,例如,设定为32×32像素或更大,并且当画面的图像同质性或均匀度低时(即,当空间频率高时),预测单元PU的大小被设定为更低,例如,被设定为16×16像素或更小,由此提高编码效率。
图15是图示根据另一个实施例的图像编码方法的流程图。图15图示下述处理,其中,在根据在图14中所示的图像编码方法来确定预测单元PU的大小后,考虑到在具有所确定的大小的预测单元PU中包括的边,预测单元PU被划分为分区,并且对于每一个分区完成编码。
图15中的步骤S1510至S1530与在图14中的步骤S1410至S1430基本上相同,因此不重复它们的描述。
参见图15,如果在步骤S1510至S1530中确定根据空间频率特性的预测单元PU的大小,则编码设备在与具有所确定的大小的当前预测单元相邻的预测单元PU中包括的像素中检测属于边的像素(步骤S1540)。
可以通过各种已知方法来执行在步骤S1540中的检测属于边的像素。例如,可以计算在当前预测单元PU和其相邻像素之间的差值,或者,可以基于诸如索贝尔算法的边检测算法来检测边。
其后,编码设备使用属于所检测的边的像素来来将当前预测单元PU划分为分区(步骤S1550)。
如图3中所示,编码设备为了划分当前预测单元PU,可以在与边像素相邻的像素中检测属于边的像素,该边像素从在与当前预测单元PU相邻的周围块中包括的像素中检测,然后可以通过使用将与所检测的边相邻的像素与在步骤S1540中检测的边像素相连接的线来进行分区。
或者,编码设备可以通过下述方式来划分当前预测单元PU:仅在与当前预测单元PU相邻的块中包括的像素中与当前预测单元PU最接近的像素中检测属于边的像素,然后确定通过在所检测的边中包括的像素的线的方向。
如果通过上述方法在步骤S1550中将当前预测单元PU划分为至少一个分区,则编码设备对于每一个分区执行编码(步骤S360)。
例如,编码设备对于在具有64×64或32×32像素的大小的当前预测单元PU中划分的每一个分区执行运动预测以获得运动向量,并且使用所获得的运动向量执行运动补偿以产生预测分区。然后,编码设备对于残差部分执行变换、量化和熵编码,该残差部分是在所产生的预测分区和当前预测单元PU的分区之间的差,然后编码设备传送结果。而且,关于所确定的预测单元PU的大小的信息、分区信息和关于运动向量的信息经受熵编码,并且然后被传送。
结合图15描述的考虑边的分区可以适用于结合图13描述的帧内预测以及帧间预测。
图16是图示根据本发明的实施例的图像解码方法的流程图。
参见图16,解码设备首先从编码设备接收比特流(步骤S1610).
其后,解码设备对于所接收的比特流执行熵解码,以获得关于要解码的当前预测单元PU的信息(步骤S1620)。在此,取代使用扩展宏块和扩展宏块的大小来执行编码和解码,可以使用上述的递归编码单元CU以进行编码和解码,在该情况下,预测单元PU信息可以包括最大编码单元LCU的大小、最小编码单元SCU的大小、最大可允许层或层深度与标记信息。同时,解码设备获得用于运动补偿的运动向量。在此,可以根据在图1和14中图示的编码设备中的时间或空间频率特性来确定预测单元PU的大小——例如,该大小可以具有32×32或64×64像素。解码控制器(未示出)从编码设备接收关于由编码设备应用的预测单元PU的大小的信息,并且基于由编码设备应用的预测单元的大小来进行运动补偿解码或逆转换或逆量化。
解码设备使用关于预测单元PU的大小的信息(例如,32×32或64×64像素)和运动向量信息以及先前恢复的画面来产生用于运动补偿的预测的预测单元PU(步骤S1630)。
然后,解码设备将所产生的预测的预测单元PU加到从编码设备提供的残差部分,以恢复当前预测单元PU(步骤S1640)。在此,解码设备对于从编码设备提供的比特流执行熵解码、逆量化和逆变换,以获得残差部分。逆变换处理也可以基于在步骤S1620中获得的预测单元(PU)大小(例如,32×32或64×64像素)而完成。
图17是图示根据本发明的另一个实施例的图像解码方法的流程图。图17图示下述处理,其中,沿着边划分具有在图像编码设备中根据时间或空间频率特性而确定的大小的宏块,由此对于每一个所划分的分区解码所编码的图像。
参见图17,解码设备从编码设备接收比特流(步骤S1710)。
其后,解码设备对于所接收的比特流执行熵解码,以获得要解码的当前预测单元PU信息和当前预测单元PU的分区信息(步骤S1720)。当前预测单元PU的大小可以是32×32或64×64像素。同时,解码设备获得用于运动补偿的运动向量。在取代使用扩展宏块和扩展宏块的大小来执行编码和解码,而使用递归编码单元CU来进行编码和解码的情况下,预测单元PU信息可以包括最大编码单元LCU的大小、最小编码单元SCU的大小、最大可允许层或层深度与标记信息。分区信息可以包括在不对称分区、几何分区和沿着边方向的分区(简称为“边方向分区”)的情况下向解码器发送的分区信息。
接下来,解码设备使用所获得的预测单元PU信息和分区信息来将预测单元PU分区(步骤S1730)。
而且,解码设备使用分区信息、运动向量信息和预先恢复的画面来产生预测分区(步骤S1740),并且将所产生的预测分区加到从编码设备提供的残差部分,由此恢复当前分区(步骤S1750)。在此,解码设备可以通过对于从编码设备提供的比特流执行熵解码、逆量化和逆变换来获得残差部分。
其后,解码设备基于所获得的分区信息来恢复在块中包括的所有分区,并且重新配置所恢复的分区,然后恢复当前宏块(步骤S1760)。
图18是图示根据本发明的实施例的图像编码设备的配置的框图。
参见图18,图像编码设备可以包括预测单元确定单元1810和编码器1830。编码器1830可以包括运动预测单元1831、运动补偿单元1833、帧内预测单元1835、减法器1837、变换单元1839、量化单元1841、熵编码单元1843、逆量化单元1845、逆变换单元1847、加法器1849和帧缓冲器1851。预测单元确定单元1810可以在确定应用到帧间和帧内预测的预测单元的大小的编码控制器(未示出)中执行或可以在编码器外部的单独块中执行。以下,描述了在编码器外部的单独块中执行预测单元确定单元1810的示例。
预测单元确定单元1810接收所提供的输入图像,并且在包括在预测单元确定单元1810中的缓冲器(未示出)中存储图像,然后,分析所存储的帧的时间频率特性。缓冲器可以存储预定数目的帧。例如,缓冲器可以存储至少四个(第n-3、n-2、n-1和n)帧。
预测单元确定单元1810可以检测在第n-3帧(或画面)和第n-2帧(或画面)之间的变化、在第n-2帧(或画面)和第n-1帧(或画面)之间的变化和在第n-1帧(或画面)和第n帧(或画面)之间的变化,以分析在帧(或画面)之间的时间频率特性,并且可以将所分析的时间频率特性与预设阈值作比较,并且基于比较结果,可以确定要编码的预测单元的大小。
在此,预测单元确定单元1810可以基于在缓冲器中存储的帧中的、在两个在时间上相邻的帧(例如,第n-1和n帧)之间的变化来确定预测单元的大小,或者,可以基于在预定数目的帧(例如,第n-3、n-2、n-1和n帧)中的改变的特性来确定预测单元的大小,以降低用于关于预测单元的大小的信息的开销。
例如,预测单元确定单元1810分析第n-1帧(或画面)和第n帧(或画面)的时间频率特性,并且如果所分析的时间频率特性值小于预设第一阈值,则将预测单元的大小确定为64×64像素。如果所分析的时间频率特性值等于或大于预设第一阈值并且小于第二阈值,则将预测单元的大小确定为32×32像素,并且如果所分析的时间频率特性值等于或大于预设第二阈值,则将预测单元的大小确定为16×16像素或更小。在此,第一阈值指当在帧(或画面)之间的变化小于第二阈值时的时间频率特性值。
预测单元确定单元1810向熵编码单元1843提供对于帧间或帧内预测确定的预测单元信息,并且基于具有所确定的大小的预测单元将其提供到编码器1830。在此,预测单元信息可以包括关于对于帧间或帧内预测确定的预测单元的大小的信息。具体地说,在使用扩展宏块和扩展宏块的大小来执行编码和解码的情况下,预测块信息可以包括关于宏块或扩展宏块的大小的信息。在使用上述的递归编码单元CU来执行编码和解码的情况下,预测单元信息可以包括取代关于宏块的大小的信息的、关于要用于帧间或帧内预测的最大编码单元LCU的大小的信息,即,包括关于预测单元的大小的信息,并且进一步,预测单元信息可以包括最大编码单元LCU的大小、最小编码单元SCU的大小、最大可允许层或层深度与标记信息。
预测单元确定单元1810可以通过如上所述分析所提供的输入帧(或画面)的时间频率特性来确定预测单元的大小。而且,预测单元确定单元1810可以通过分析所提供的输入帧(或画面)的空间频率特性来确定预测单元的大小。例如,在输入帧(或画面)具有高的均匀度或同质性的情况下,预测单元的大小可以被设定为是大的,例如,被设定为32×32像素或更大,并且在输入帧(或画面)具有低的均匀度或同质性的情况下(即,当空间频率高时),可以将预测单元的大小设定为是小的,例如,设定为16×16像素或更小。
编码器1830对于具有由预测单元确定单元1810确定的大小的预测单元执行编码。
具体地说,运动预测单元1831通过下述方式来预测运动:将所提供的当前预测单元与已经编码和存储在帧缓冲器1851中的前一个参考帧作比较,由此产生运动向量。
运动补偿单元1833使用参考帧和从运动预测单元1831提供的运动向量来产生预测的预测块或预测单元。
帧内预测单元1835使用在块之间的像素相关来执行帧内预测编码。帧内预测单元1835执行帧内预测,该帧内预测通过从在当前帧(或画面)中的块的先前编码的像素预测像素值来寻找当前预测单元的预测块。
减法器1837在从运动补偿单元1833提供的预测的预测单元和当前预测单元之间执行相减,以产生残差部分,并且变换单元1839和量化单元1841分别对于残差部分执行DCT(离散余弦变换)和量化。在此,变换单元1839可以基于从预测单元确定单元1810提供的预测单元大小信息来执行变换。例如,变换单元1839可以进行向32×32或64×64像素的大小的变换。或者,变换单元1839可以独立于从预测单元确定单元1810提供的预测单元大小信息而基于单独的变换单元TU来进行变换。例如,变换单元TU大小可以具有4×4像素的最小值至64×64像素的最大值。或者,变换单元TU的最大大小可以大于64×64像素——例如,128×128像素。变换单元大小信息可以被包括在变换单元信息中并且被传送到解码器。
熵编码单元1843对于包括量化的DCT系数、运动向量、所确定的预测单元信息、分区信息和变换单元信息的首标信息执行熵编码,由此产生比特流。
逆量化单元1845和逆变换单元1847分别对于由量化单元1841量化的数据执行逆量化和逆变换。加法器1849将逆变换的数据加到从运动补偿单元1833提供的预测的预测单元,以恢复图像,并且向帧缓冲器1851提供所恢复的图像,使得帧缓冲器1851存储所恢复的图像。
图19是图示根据本发明的另一个实施例的图像编码设备的配置的框图。
参见图19,图像编码设备可以包括预测单元确定单元1910、预测单元划分单元1920和编码器1930。编码器1930可以包括运动预测单元1931、运动补偿单元1933、帧内预测单元1935、减法器1937、变换单元1939、量化单元1941、熵编码单元1943、逆量化单元1945、逆变换单元1947、加法器1949和帧缓冲器1951。在此,用于编码的预测单元确定单元或预测单元划分单元可以在用于确定适用于帧间或帧内预测的预测单元的大小的编码控制器(未示出)中执行或者可以在所示的编码器外部的单独块中执行。以下,描述在编码器外部的单独块中执行预测单元确定单元或预测单元划分单元的示例。
预测单元确定单元1910进行与在图18中所示的对应组件相同的功能,因此不重复其详细描述。
预测单元划分单元1920考虑到在与当前预测单元相邻的块中包括的边而将从预测单元确定单元1910提供的当前预测单元划分为分区,并且向编码器1930提供所划分的分区和分区信息。分区信息可以包括用于不对称分区、几何分区和边方向分区的每一个的分区信息。
具体地说,预测单元划分单元1920从帧缓冲器1951读出与从预测单元确定单元1910提供的当前预测单元相邻的预测单元,在属于与当前预测单元相邻的预测单元的像素中检测属于边的像素(简称为“边像素”),并且使用所检测的边像素将当前预测单元划分为分区。
预测单元划分单元1920可以通过计算在当前预测单元和其相邻像素之间的差值或通过使用诸如索贝尔算法的已知边检测算法来检测边。
为了如图3中所示将当前预测单元分区,预测单元划分单元1920从在与当前预测单元相邻的块中包括的像素中与所检测的边像素相邻的像素检测边像素,然后可以使用将所检测的边像素和与所检测的边像素相邻的像素相连接的线来进行分区。
或者,预测单元划分单元1920可以通过下述方式来将当前预测单元分区:在与当前预测单元相邻的块中包括的、最接近当前预测单元的像素中检测边像素,然后确定通过边像素的线的方向。在此,通过边像素的线的方向可以使用根据H.264标准的4×4块帧内预测模式之
预测单元划分单元1920在将当前预测单元划分为至少一个分区后向编码器1930的运动预测单元1931提供所划分的分区。而且,预测单元划分单元1920向熵编码单元1943提供预测单元的分区信息。
编码器1930对于从预测单元划分单元1920提供的分区执行编码。
具体地说,运动预测单元1931将当前提供的分区与已经编码和存储在帧缓冲器1951中的前一个参考帧作比较,预测其运动,由此产生运动向量,并且运动补偿单元1933使用参考帧和从运动预测单元1931提供的运动向量来产生预测分区。
帧内预测单元1935使用在块之间的像素相关来执行帧内预测。帧内预测单元1935执行帧内预测,该帧内预测通过从在当前帧中的块中的编码像素值预测像素值来寻找当前预测单元的预测块。
减法器1937在从运动补偿单元1933提供的预测分区和当前分区之间执行相减,以产生残差部分,并且变换单元1939和量化单元1941分别对于残差部分执行DCT(离散余弦变换)和量化。熵编码单元1943对于诸如量化的DCT系数、运动向量、所确定的预测单元信息、预测单元分区信息或变换单元信息的首标信息执行熵编码,由此产生比特流。
逆量化单元1945和逆变换单元1947分别对于由量化单元1941量化的数据执行逆量化和逆变换。加法器1949将逆变换的数据加到从运动补偿单元1933提供的预测分区以恢复图像,并且向帧缓冲器1951提供所恢复的图像,使得帧缓冲器1951存储所恢复的图像。
图20是图示根据本发明的实施例的图像解码设备的配置的框图。
参见图20,解码设备包括熵解码单元2031、逆量化单元2033、逆变换单元2035、运动补偿单元2037、帧内预测单元2039、帧缓冲器2041和加法器2043。
熵解码单元2031接收压缩的比特流,并且对于压缩的比特流执行熵解码,由此产生量化的系数。逆量化单元2033和逆变换单元2035分别对于量化的系数执行逆量化和逆变换,以恢复残差部分。
运动补偿单元2037使用由熵解码单元2031从比特流解码的首标信息对于具有与编码的预测单元PU相同大小的预测单元执行运动补偿,由此产生预定的预测单元。解码的首标信息可以包括关于预测单元大小的信息,该预测单元大小可以是扩展宏块的大小,例如,32×32、64×64或128×128像素。
换句话说,运动补偿单元2037对于具有解码的预测单元大小的预测单元执行运动补偿,以产生预定的预测单元。
帧内预测单元2039使用在块之间的像素相关来执行帧内预测编码。帧内预测单元2039执行帧内预测,该帧内预测通过从在当前帧(或画面)中的块中的编码像素值预测像素值来寻找当前预测单元的预测块。
加法器2043将从逆变换单元2035提供的残差部分加到从运动补偿单元2037提供的预测的预测单元以恢复图像,并且向帧缓冲器2041提供所恢复的图像,使得帧缓冲器2041存储所恢复的图像。
图21是图示根据本发明的另一个实施例的图像解码设备的配置的框图。
参见图21,解码设备包括预测单元划分单元2110和解码器2130,解码器2130包括熵解码单元2131、逆量化单元2133、逆变换单元2135、运动补偿单元2137、帧内预测单元2139、帧缓冲器2141和加法器2143。
预测单元划分单元2110获得其中比特流已经被熵解码单元2131解码的首标信息,并且从所获得的首标信息提取预测单元信息和分区信息。在此,分区信息可以包括关于划分预测单元的线的信息。例如,分区信息可以包括用于不对称分区、几何分区和边方向分区中的每一个的分区信息。
其后,预测单元划分单元2110使用所提取的分区信息来将在帧缓冲器2141中存储的参考帧的预测单元划分为分区,并且向运动补偿单元2137提供所划分的分区。
在此,用于解码的预测单元划分单元可以在用于确定适用于帧间或帧内预测的预测单元的大小的解码控制器(未示出)中执行或可以在所示的解码器外部的单独块中执行,以下,描述在解码器外部的单独块中执行预测单元划分单元的示例。
运动补偿单元2137通过使用在解码的首标信息中包括的运动向量信息来对于从预测单元划分单元2110提供的分区执行运动补偿,由此产生预测分区。
逆量化单元2133和逆变换单元2135分别对于由熵解码单元2131熵解码的系数执行逆量化和逆变换,以产生残差部分,并且加法器2143将从运动补偿单元2137提供的预测分区加到残差部分上以恢复图像,该图像然后被存储在帧缓冲器2141中。
在图21中,解码的宏块的大小可以是例如32×32、64×64或128×128像素,并且预测单元划分单元2110可以基于通过从首标信息提取具有32×32、64×64或128×128像素的大小的宏块而获得的分区信息来执行分区。
图22是图示根据本发明的实施例的使用不对称像素块的帧内预测编码方法的概念视图。
图23至25是图示根据本发明的另一个实施例的使用不对称像素块的帧内预测编码方法的概念视图。图22至25图示当使用结合图2至6描述的不对称分区时的帧内预测的示例。然而,本发明不限于此。在图23至25中图示的帧内预测编码方法也可以适用于当使用在图2至6中图示的各种类型的不对称分区时。
图22是用于描述对于具有8×2的大小的分区P11d执行帧内预测的预测模式的视图,该分区P11d是通过对于在水平方向上的大小是8×8的预测单元PU执行不对称预测而获得的。
参见图22,使用沿着包括垂直方向(预测模式0)、水平方向(预测模式1)、平均值预测(预测模式2)、对角下右方向(预测模式3)和对角下左方向(预测模式4)的预测方向先前编码的块中的像素值来预测在具有8×2的大小的分区P11d中的像素值。
例如,在预测模式0的情况下,作为在具有8×2的大小的分区P11d中的预测像素值,使用在先前编码的上块中的沿着垂直方向定位的像素值。
在预测模式1的情况下,作为在具有8×2的大小的分区P11d中的预测像素值,使用在先前编码的左块中的沿着水平方向定位的像素值。
在预测模式2的情况下,作为在具有8×2的大小的分区P11d中的预测像素值,使用在先前编码的左上块中的像素的平均值。
在预测模式3的情况下,作为在具有8×2的大小的分区P11d中的预测像素值,使用在先前编码的上块中的沿着对角下右方向定位的像素值。在预测模式3的情况下,当在分区P11d的上块中的像素不足时,可以使用在右上块中的两个像素来弥补。
在预测模式4的情况下,作为在具有8×2的大小的分区P11d中的预测像素值,使用在先前编码的左上块中的沿着对角下左方向定位的像素值。
图23图示用于对于具有8×6的大小的分区P21d执行帧内预测的预测模式,该分区P21d是通过对于在水平方向上的大小是8×8的预测单元PU执行不对称分区而获得的。
参见图23,使用沿着包括垂直方向(预测模式0)、水平方向(预测模式1)、平均值预测(预测模式2)、对角下右方向(预测模式3)和对角下左方向(预测模式4)的预测方向先前编码的块中的像素值来预测在具有8×6的大小的分区P21d中的像素值。
例如,在预测模式0的情况下,作为在具有8×6的大小的分区P21d中的预测像素值,使用在先前编码的上块中的沿着垂直方向定位的像素值。
在预测模式1的情况下,作为在具有8×6的大小的分区P21d中的预测像素值,使用在先前编码的左块中的沿着水平方向定位的像素值。
在预测模式2的情况下,作为在具有8×6的大小的分区P21d中的预测像素值,使用在先前编码的左上块中的像素的平均值。
在预测模式3的情况下,作为在具有8×6的大小的分区P21d中的预测像素值,使用在先前编码的上块中的沿着对角下右方向定位的像素值。在预测模式3的情况下,当在分区P21d的上块中的像素不足时,可以使用在右上块中的六个像素来弥补。
在预测模式4的情况下,作为在具有8×6的大小的分区P21d中的预测像素值,使用在先前编码的左上块中的沿着对角下左方向定位的像素值。
图24图示用于对于具有16×4的大小的分区P11c执行帧内预测的预测模式,该分区P11c是通过对于在水平方向上的大小是16×16的预测单元PU执行不对称分区而获得的。
参见图24,使用沿着包括垂直方向(预测模式0)、水平方向(预测模式1)、平均值预测(预测模式2)、对角下右方向(预测模式3)和对角下左方向(预测模式4)的预测方向先前编码的块中的像素值来预测在具有16×4的大小的分区P11c中的像素值。
例如,在预测模式0的情况下,作为在具有16×4的大小的分区P11c中的预测像素值,使用在先前编码的上块中的沿着垂直方向定位的像素值。
在预测模式1的情况下,作为在具有16×4的大小的分区P11c中的预测像素值,使用在先前编码的左块中的沿着水平方向定位的像素值。
在预测模式2的情况下,作为在具有16×4的大小的分区P11c中的预测像素值,使用在先前编码的左上块中的像素的平均值。
在预测模式3的情况下,作为在具有16×4的大小的分区P11c中的预测像素值,使用在先前编码的上块中的沿着对角下右方向定位的像素值。在预测模式3的情况下,当在分区P11c的上块中的像素不足时,可以使用在右上块中的四个像素来弥补。
在预测模式4的情况下,作为在具有16×4的大小的分区P11c中的预测像素值,使用在先前编码的左上块中的沿着对角下左方向定位的像素值。
图25图示用于对于具有32×8的大小的分区P11b执行帧内预测的预测模式,该分区P11b是通过对于在水平方向上的大小是32×32的预测单元PU执行不对称分区而获得的。
参见图25,使用沿着包括垂直方向(预测模式0)、水平方向(预测模式1)、平均值预测(预测模式2)、对角下右方向(预测模式3)和对角下左方向(预测模式4)的预测方向先前编码的块中的像素值来预测在具有32×8的大小的分区P11b中的像素值。
例如,在预测模式0的情况下,作为在具有32×8的大小的分区P11b中的预测像素值,使用在先前编码的上块中的沿着垂直方向定位的像素值。
在预测模式1的情况下,作为在具有32×8的大小的分区P11b中的预测像素值,使用在先前编码的左块中的沿着水平方向定位的像素值。
在预测模式2的情况下,作为在具有32×8的大小的分区P11b中的预测像素值,使用在先前编码的左上块中的像素的平均值。
在预测模式3的情况下,作为在具有32×8的大小的分区P11b中的预测像素值,使用在先前编码的上块中的沿着对角下右方向定位的像素值。在预测模式3的情况下,当在分区P11b的上块中的像素不足时,可以使用在右上块中的八个像素来弥补。
在预测模式4的情况下,作为在具有32×8的大小的分区P11b中的预测像素值,使用在先前编码的左上块中的沿着对角下左方向定位的像素值。
图22至25图示了对于不对称分区块的预测单元的每个大小使用预定数目的预测模式的示例,并且也可以使用对于每一个预测单元沿着其他方向(未示出)的预测模式。例如,可以使用在先前编码的左上块中的像素值沿着在360°内的全部方向以相同的预定角度(例如,22.5°或11.25°)形成的线执行帧内预测。或者,可以由编码器预先指定任何角度,使得可以沿着根据该指定角度限定的线来执行帧内预测。为了指定角度,例如,可以利用沿着水平方向的dx和沿着垂直方向的dy定义斜率,并且,可以从编码器向解码器传送关于dx和dy的信息。也可以从编码器向解码器传送预定的角度信息。
图26是图示根据本发明的另一个实施例的基于平面预测的帧内预测编码方法的概念视图。
在使用具有16×16或更大的大小的扩展宏块用于编码具有HD或更高分辨率的高分辨率图像或将预测单元的大小增大到8×8或更大的情况下,如果现有的帧内预测模式适用于预测单元的最右和最下像素值,则由该预测生成失真,因此使得难以将图像平滑为平滑的图像。
在该情况下,可以定义单独的平面模式,并且当启动平面模式标记时,可以从编码器向解码器传送预测单元的最右和最下像素值。如图26中所示,可以使用从编码器传送的最右和最下像素1010和最右上像素1001来通过线性内插获得在最右线上的像素值。如图26中所示,可以使用从编码器传送的最右和最下像素1010和最左和最下像素1003来通过线性内插获得在最下线上的像素值。
或者,在启动平面模式标记的情况下,如图26中所示,为了获得在预测单元中的最右和最下像素1010的预测像素值,使用在先前编码的左上块中的在垂直和水平方向上对应的像素值1001和1003和/或在预测块中的在垂直和水平方向上对应的内部像素值来进行线性内插。而且,当启动平面模式标记时,可以通过下述方式来获得在预测单元中的内部像素的预测像素值:使用在预测单元中的在垂直和水平方向上对应的内部边界像素值和/或在先前编码的左上块中的在垂直和水平方向上的对应像素值来执行双线性内插。
图27是图示根据本发明的另一个实施例的基于平面预测的帧内预测编码方法的概念视图。
当启动平面预测模式标记时,如图27中所示,在时间上定位在第N画面前的第N-1画面处对于在为要编码的当前画面的第N画面中包括的具有第一大小——例如是在图27中的8×8像素——的当前预测单元确定参考预测单元。为了获得在当前预测单元中的最右和最下像素的预测像素值,不仅使用在先前编码的左上块213中的在垂直和水平方向上对应的像素值,而且使用在先前编码的左上块233中的在垂直和水平方向上对应的像素值来计算它们的平均值或者执行线性内插,该左上块213与当前预测单元相邻,该左上块233与第N-1画面的对应预测单元相邻。
或者,为了获得在当前预测单元中的最右和最下像素的预测像素值,使用在第N画面的当前预测单元中的在垂直和水平方向上对应的内部像素值,以及在先前编码的左上块213中的在垂直和水平方向上对应的像素值和先前编码的左上块233中的在垂直和水平方向上的对应的像素值来计算它们的平均值或者执行线性内插,该左上块213与当前预测单元相邻,该左上块233与第N-1画面的对应预测单元相邻。
而且,为了获得在当前预测单元中的最右和最下像素的预定像素值,使用在第N-1画面的对应单元中的在垂直和水平方向上对应的内部像素值,以及在第N画面的当前预测单元中的在垂直和水平方向上对应的内部像素值、在先前编码的左上块213中的在垂直和水平方向上的对应的像素值和在先前编码的左上块233中的在垂直和水平方向上对应的像素值来计算它们的平均值或者执行线性内插,该左上块213与当前预测单元相邻,该左上块233与第N-1画面的对应预测单元相邻。
而且,在启动平面预测模式标记的情况下,可以通过下述方式来获得在第N画面的预测单元中的内部像素的预测像素值:使用在第N-1画面的对应预测单元中的在垂直和水平方向上对应的内部边界像素值、在第N-1画面的对应预测单元中在先前编码的左上块中的在垂直和水平方向上对应的像素值、在第N画面的当前预测单元中的在垂直和水平方向上对应的内部边界像素值和/或在第N画面的当前预测单元中在先前编码的左上块中的在垂直和水平方向上对应的像素值来执行双线性内插。
虽然图27图示使用第N画面的当前预测单元和第N-1画面的对应预测单元来进行帧内预测的示例,但是本发明不限于此。例如,也使用第N画面的当前预测单元和第N+1画面的对应预测单元、使用第N画面的当前预测单元和第N-1画面和第N+1画面的对应预测单元,或者使用第N画面的当前预测单元和第N-2画面、N-1画面、N+1画面和N+2画面的对应预测单元来执行帧内预测。
具有第二大小的当前预测单元可以具有8×8、16×16或32×32像素的正方形形状或者可以具有如图2至6中所示的不对称形状。在当前预测单元具有在图2至6中所示的不对称形状的情况下,可以应用结合图26和27描述的实施例以便执行帧间预测。
图28是图示根据本发明的实施例的用于执行帧内预测的图像编码设备的配置的框图。
参见图28,图像编码设备包括编码器2830。编码器2830包括帧间预测单元2832、帧内预测单元2835、减法器2837、变换单元2839、量化单元2841、熵编码单元2843、逆量化单元2845、逆变换单元2847、加法器2849和帧缓冲器2851。帧间预测单元2832包括运动预测单元2831和运动补偿单元2833。
编码器2830对于输入图像执行编码。可以对于在帧间预测单元2832中的帧间预测或对于在帧内预测单元2835中的帧内预测在每预测单元PU的基础上使用输入图像。
可以在将输入图像存储在缓冲器中后根据在包括在编码器中的缓冲器(未示出)中存储的帧(或画面)的时间频率特性来确定适用于帧间预测或帧内预测的预测单元的大小。例如,预测单元确定单元2810分析第n-1帧(或画面)和第n帧(或画面)的时间频率特性,并且如果所分析的时间频率特性值小于预设第一阈值,则将预测单元的大小确定为64×64像素。如果所分析的时间频率特性值等于或大于预设第一阈值并且小于第二阈值,则预测单元的大小被确定为32×32像素,并且如果所分析的时间频率特性值等于或大于预设第二阈值,则将预测单元的大小确定为16×16像素或更小。在此,第一阈值指当在两个帧(或画面)之间的变化小于第二阈值时的时间频率特性值。
可以在将输入图像存储在缓冲器后根据在包括在编码器中的缓冲器(未示出)中存储的帧(或画面)的空间频率特性来确定适用于帧间预测或帧内预测的预测单元的大小。例如,在输入帧(或画面)具有高的均匀度或同质性的情况下,预测单元的大小可以被设定为是大的,例如设定为32×32像素或更大,并且,在输入帧(或画面)具有低的均匀度或同质性的情况下(即,当空间频率高时),预测单元的大小可以被设定为是小的,例如设定为16×16像素或更大。
虽然在图28中未示出,但是可以通过接收输入图像的编码控制器(未示出)或通过接收输入图像的单独的预测单元确定单元(未示出)来执行确定预测单元的大小的操作。例如,预测单元的大小可以是16×16、32×32或64×64像素。
如上所述,包括对于帧间或帧内预测确定的预测单元的大小的预测单元信息被提供到熵编码单元2843,并且基于具有所确定的大小的预测单元而被提供到编码器2830。具体地说,在使用扩展宏块和扩展宏块的大小来执行编码和解码的情况下,预测块信息可以包括关于宏块或扩展宏块的大小的信息。在此,扩展宏块的大小指32×32像素或更大,包括例如32×32、64×64或128×128像素。在上述的递归编码单元CU用于执行编码和解码的情况下,预测单元信息可以包括取代关于宏块的大小的信息的、关于要用于帧间或帧内预测的最大编码单元LCU的大小的信息,即包括关于预测单元的大小的信息,并且进一步,预测单元信息可以包括最大编码单元LCU的大小、最小编码单元SCU的大小、最大可允许层或层深度和标记信息。
编码器2830对于具有所确定的大小的预测单元执行编码。
帧间预测单元2832通过上述的不对称分区或几何分区来划分要被当前编码的预测单元,并且在每所划分的分区的基础上执行运动估计,以产生运动向量。
运动预测单元2831通过各种分区方法来划分所提供的当前预测单元,并且对于每一个被分区的块在位于当前编码的画面前和/或后的至少一个参考画面(其被编码和存储在帧缓冲器2851中)中搜索与要被当前编码的被分区的块类似的区域,由此在每块的基础上产生运动向量。用于运动估计的块的大小可以改变,并且根据实施例,当应用不对称分区或几何分区时,块的形状可以不仅具有现有的正方形形状,而且具有诸如矩形或其他不对称形状、“L”形状或三角形的几何形状,如图2至9中所示。
运动补偿单元2833通过使用参考画面和从运动预测单元2831产生的运动向量执行运动补偿而产生预测块(或预测的预测单元)。
帧间预测单元2832对块执行块合并,并且获得对于每一个合并块的运动参数。所获得的运动参数被传送到解码器。
帧内预测单元2835可以使用在块之间的像素相关来执行帧内预测编码。帧内预测单元2835执行帧内预测,该帧内预测根据结合图22至27所述的各个实施例通过从在当前帧(或画面)的块中的先前编码的像素值预测像素值来寻找当前预测单元的预测块。
减法器2837在从运动补偿单元2833提供的预测块(或预测的预测单元)和当前块(或当前预测单元)之间执行相减以产生残差部分,并且变换单元2839和量化单元2841分别对于残差部分执行DCT(离散余弦变换)和量化。在此,变换单元2839可以基于从预测单元确定单元1801提供的预测单元大小信息来执行变换。例如,变换单元2839可以进行到32×32或64×64像素的大小的变换。或者,变换单元2839可以独立于从预定单元确定单元2810提供的预测单元大小信息而基于单独的变换单元TU来执行变换。例如,变换单元TU大小可以具有4×4像素的最小值至64×64像素的最大值。或者,变换单元TU的最大大小可以是大于64×64像素——例如128×128像素。变换单元大小信息可以被包括在变换单元信息中,并且被传送到解码器。
熵编码单元2843对于包括量化的DCT系数、运动向量、所确定的预测单元信息、分区信息和变换单元信息的首标信息执行熵编码,由此产生比特流。
逆量化单元2845和逆变换单元2847分别对于由量化单元2841量化的数据执行逆量化和逆变换。加法器2849将逆变换的数据加到从运动补偿单元2833提供的预测的预测单元以恢复图像,并且向帧缓冲器2851提供所恢复的图像,使得帧缓冲器2851存储所恢复的图像。
图29是图示根据本发明的实施例的使用帧内预测编码来应用的图像编码方法的流程图。
参见图29,当向编码设备输入图像时(步骤S1401),对于输入图像,通过上述的不对称或几何分区方法来划分用于帧间或帧内预测的预测单元(步骤S1403)。
在启动帧内预测模式的情况下,使用结合图22至27描述的帧内预测方法来应用所分区的不对称块或几何块,由此执行帧内预测(步骤S1405)。
或者,当启动帧间预测模式时,通过下述方式来产生预测块(或预测的预测单元):对每一个被分区的块在位于在当前编码的画面前和/或后的至少一个参考画面(其被编码和存储在帧缓冲器2851中)中搜索与要被当前编码的被分区的块类似的区域,由此在每块的基础上产生运动向量,随后使用所产生的运动向量和画面来执行运动补偿。
接下来,编码设备获得在当前预测单元和预测的(帧内预测或帧间预测的)预测单元之间的差,以产生残差部分,然后对所产生的残差部分执行变换和量化(步骤S1407)。其后,编码设备熵编码包括量化的DCT系数和运动参数的首标信息,并且产生比特流(步骤S1409)。
图30是图示根据本发明的实施例的图像解码设备的配置的框图。
参见图30,解码设备包括熵解码单元731、逆量化单元733、逆变换单元735、运动补偿单元737、帧内预测单元739、帧缓冲器741和加法器743。
熵解码单元731接收压缩的比特流,并且对于压缩的比特流执行熵解码,由此产生量化的系数。逆量化单元733和逆变换单元735分别对于量化的系数执行逆量化和逆变换,以恢复残差部分。
由熵解码单元731解码的首标信息可以包括预测单元大小信息,该预测单元大小信息可以包括例如16×16、32×32、64×64或128×128像素的扩展宏块的大小。而且,解码的首标信息包括用于运动补偿和预测的运动参数。运动参数可以包括对于通过根据实施例的块合并方法合并的每一个块发送的运动参数。解码器首标信息也包括指示是否启动平面模式的标记以及具有上述的不对称形状的每单元预测模式信息。
运动补偿单元737基于由熵解码单元731从比特流解码的首标信息,使用运动参数对于具有与编码的预测单元相同的大小的预测单元执行运动补偿,由此产生预测的预测单元。运动补偿单元737使用对于通过根据实施例的块合并方法合并的每一个块发送的运动参数来执行运动补偿,由此产生预测的预测单元。
帧内预测单元739使用在块之间的像素相关执行帧内预测编码。帧内预测单元739可以通过结合图22至27所述的帧内预测编码方法来获得当前预测单元的预测像素值。
加法器743将从逆变换单元735提供的残差部分加到从运动补偿单元737或帧内预测单元739提供的预测的预测单元以恢复图像,并且向帧缓冲器741提供残差部分,使得帧缓冲器741存储所恢复的图像。
图31是图示根据本发明的实施例的图像解码方法的流程图。
参见图31,解码设备从编码设备接收比特流(步骤S3101)。
其后,解码设备对于所接收的比特流执行熵解码(步骤S3103)。由熵解码解码的数据包括残差部分,该残差部分指在当前预测单元和预测的预测单元之间的差。由熵解码解码的首标信息可以包括预测单元信息、用于运动补偿和预测的运动参数、指示是否启动平面预测模式的标记和不对称型每预测单元预测模式信息。预测单元信息可以包括预测单元大小信息。
在此,在取代使用扩展宏块和扩展宏块的大小来执行编码和解码的、将上述的递归编码单元CU用于编码和解码的情况下,预测单元PU信息可以包括最大编码单元LCU和最小编码单元SCU的大小、最大可允许层或层深度和标记信息。
解码控制器(未示出)可以从编码设备接收在编码设备中应用的预测单元PU大小信息,并且可以根据在编码设备中应用的预测单元PU的大小来执行要描述的运动补偿解码、帧内预测编码、逆变换或逆量化。
解码设备逆量化和逆变换熵编码的残差部分(步骤S3105)。可以在预测单元大小(例如,32×32或64×64像素)的基础上执行逆变换。
解码设备向具有诸如结合图22至27所述的不对称或几何形状的各种形状的预测单元应用帧间预测或帧内预测方法,由此产生预测的预测单元(步骤S3107)。
解码器将逆量化的、逆变换的残差部分加到通过帧间或帧内预测预测的预测单元加,由此恢复图像(步骤S3109)。
图32是图示根据本发明的实施例的图像编码方法的流程图。图33是图示在图32中所示的图像编码方法的概念视图。
参见图32和33,图像编码设备在时间上位于是当前画面的第N画面前的第N-1画面中对于在第N画面中包括的具有第一大小的当前宏块确定参考宏块,然后产生运动向量(步骤S3210)。
具有第一大小的当前宏块可以具有16×16像素或更小的大小,或者可以是具有32×32或64×64像素或更大的大小的扩展宏块。扩展宏块可以具有32×32像素或更大的大小,例如64×64或128×128像素,以适合于诸如超HD或更高分辨率的高分辨率。
其后,图像编码设备将具有第一大小的当前宏块划分为多个当前块,每一个当前块具有第二大小,并且,图像编码设备对于每一个所划分的当前块执行帧间预测或帧内预测。
具体地说,图像编码设备获得在当前宏块中与具有第二大小的当前块相邻的像素和与在第N-1画面的参考宏块中位于当前块的对应位置处的参考块相对应的相邻像素之间的差,由此获得在相邻像素之间的残差部分(步骤S3220)。
具有第二大小的当前块可以具有4×4或者8×8像素的大小,该大小取决于当前宏块的大小而确定。
其后,图像编码设备使用在步骤S120中获得的相邻像素之间的残差部分来确定当前块的帧内预测模式(步骤S3230)。在此,图像编码设备可以将包括垂直模式(模式0)、水平模式(模式1)、平均值模式(模式2)、对角下左模式(模式3)、对角下右模式(模式4)、垂直右模式(模式5)、水平下模式(模式6)、垂直左模式(模式7)和水平上模式(模式8)的根据H.264/AVC标准的用于4×4块的帧内预测模式之一确定为帧内预测模式,并且图像编码设备可以通过考虑编码效率并且通过应用九个不同模式的每一个来产生预测值来确定帧内预测模式。而且,在不是根据H.264/AVC标准的用于4×4块的帧内预测模式的、用于具有4×4像素或更大的大小的块的各种帧间预测模式×中,可以将一个帧间预测模式看作帧内预测模式。
例如,图像编码设备可以如图33中所示得出在第N-1画面2630中与具有第二大小的参考块2631相邻的像素2633和在第N画面2610中与具有第二大小的当前块2611相邻的像素2613之间的差,以获得在各个对应的像素之间的残差部分,然后向所获得的残差部分应用各种帧内预测模式,由此考虑到应用的结果的编码效率来确定最佳的帧内预测模式。
然后,图像编码设备变换在步骤S3220中获得的残差部分(步骤S3240),并且量化所变换的数据(例如,DCT系数)(步骤S3250)。
图像编码设备熵编码量化的数据、第一大小(即,当前宏块的大小)、第二大小(即,当前块的大小)、运动向量、帧内预测模式信息和参考画面信息,由此产生比特流(步骤S3260)。
为了增强编码效率,取代编码运动向量,产生预测运动向量,并且然后可以熵编码预测运动向量和运动向量的残差部分。
对于在宏块中包括的所有块执行根据实施例的在图32中图示的图像编码方法,并且,预定多个当前块的编码顺序,编码的当前宏块中包括的每一个当前块在解码处理中也根据与该预定顺序相同的顺序。
而且,在结合图32所述的图像编码方法中在当前宏块中经历帧间预测的预定当前块的左上侧处存在先前编码的当前块的情况下,可以已知关于位于预定当前块的左上侧处的相邻像素的信息,使得不向解码侧提供在步骤S3220中获得的残差部分。
而且,虽然在图32中图像编码方法通过使用在参考块中的相邻像素与在当前宏块的当前块中的相邻像素之间的残差部分来执行帧内预测,但是本发明不限于此。根据实施例,可以使用当前宏块的运动向量来产生预测宏块,使得对于所产生的预测宏块和当前宏块的残差部分执行结合图32的步骤3220和S3230所述的帧内预测。
在下面的实施例中,可以根据宏块的大小和由编码控制器(未示出)和解码控制器(未示出)确定的在每一个宏块中包括的当前块的大小来进行图像编码,并且图像编码可以应用到预测、变换和量化的全部或仅至少一个。而且,编码处理可以同样应用到在下面的实施例中的解码处理。
图34是图示根据本发明的另一个实施例的图像编码方法的流程图,并且图35是图示在图34中所示的图像编码方法的概念视图。
参见图34和35,图像编码设备在时间上位于是当前画面的第N画面后的第N-1画面中对于在第N画面中包括的具有第一大小的当前宏块确定参考宏块,然后产生运动向量(步骤S3411)。
具有第一大小的当前宏块可以具有16×16像素或更小的大小,或者可以是具有32×32或64×64像素或更大的大小的扩展宏块。扩展宏块可以具有32×32或更大的大小,例如,64×64或128×128,以适合于诸如超HD或更高分辨率的高分辨率。
其后,图像编码设备获得在第N画面的当前宏块中与具有第二大小的当前块相邻的像素和在第N+1画面的参考宏块中与当前块对应定位的参考块的对应相邻像素之间的差,由此获得在相邻像素之间的残差部分(步骤S3420)。
具有第二大小的当前块可以具有4×4或8×8像素的大小,该大小取决于当前宏块的大小而确定。
然后,图像编码设备使用在步骤S3420中获得的相邻像素之间的残差部分来确定当前块的帧内预测模式(步骤S3430),变换(步骤S3440)和量化(步骤S3450)在步骤S3420中获得的残差部分,并且对于量化的数据、第一大小(即,当前宏块的大小)、第二大小(即,当前块的大小)、运动向量、帧内预测模式信息和参考画面信息执行熵编码,由此产生比特流(步骤S3460)。
在图34中的步骤S3430至S3460与在图32中的步骤S3230至S3260基本上相同,因此不重复它们的详细说明。
如图35中所示,图像编码方法可以得出在第N+1画面2830中与具有第二大小的参考块2831相邻的像素2833和在第N画面2610中与具有第二大小的当前块2611相邻的像素2613之间的差,以获得在各个对应像素之间的残差部分,然后,向所获得的残差部分应用各种帧内预测模式,由此考虑到应用的结果的编码效率来确定最佳的帧内预测模式。
图36是图示根据本发明的另一个实施例的图像编码方法的流程图,并且图37是图示在图36中所示的图像编码方法的概念视图。
参见图36和37,图像编码设备在时间上位于是当前画面的第N画面前的第N-1画面中对于在第N画面中包括的具有第一大小的当前宏块确定参考宏块,然后产生前向运动向量,同时在时间上位于第N画面后的第N+1画面中确定参考宏块,由此产生反向运动向量(步骤S3610)。
具有第一大小的当前宏块可以具有16×16像素或更小的大小,或者可以是具有32×32或64×64像素或更大的大小的扩展宏块。扩展宏块可以具有32×32像素或更大的大小,例如,64×64或128×128像素,以适合于诸如超HD或更高分辨率的高分辨率。
其后,图像编码设备获得在第N画面的当前宏块中与具有第二大小的当前块相邻的像素和在第N-1画面的参考宏块中与当前块对应定位的参考块的对应相邻像素之间的差,由此获得在相邻像素之间的前向残差部分(步骤S3420),并且获得在第N画面的当前宏块中与具有第二大小的当前块相邻的像素和在第N+1画面的参考宏块中与当前块对应定位的参考块的对应相邻像素之间的差,由此获得在相邻像素之间的反向残差部分,然后得到在前向残差部分和反向残差部分之间的平均值来作为最后的残差部分(步骤S3620)。
具有第二大小的当前块具有4×4或8×8像素的大小,该大小取决于当前宏块的大小而确定。
然后,图像编码设备使用在步骤S3620中获得的相邻像素之间的残差部分来确定当前块的帧内预测模式(步骤S3630),变换(步骤S3640)并且量化(步骤S3650)在步骤S3620中获得的残差部分,并且对于量化的数据、第一大小(即,当前宏块的大小)、第二大小(即,当前块的大小)、前向和反向运动向量、帧内预测模式信息和参考画面信息执行熵编码,由此产生比特流(步骤S3660).
在图36中的步骤S3630至S3660与在图32中的步骤S3230至S3260基本上相同,因此不重复它们的详细说明。
如图37中所示,图像编码方法可以得出在第N-1画面2630中与具有第二大小的参考块2631相邻的像素2633和在第N画面2610中与具有第二大小的当前块2611相邻的像素2613之间的差,以获得在各个对应的像素之间的前向残差部分,同时得出在第N+1画面2830中与具有第二大小的参考块2831相邻的像素2833和在第N画面2610中与具有第二大小的当前块2611相邻的像素2613之间的差,以获得在各个对应的像素之间的反向残差部分,然后获得在前向和反向残差部分之间的平均值来作为最后的残差部分,向所获得的残差部分应用各种帧内预测模式,由此考虑到应用到的结果的编码效率来确定最佳的帧内预测模式。最后的残差部分可以是前向和反向残差部分的较小者。
虽然在图36和37中图像编码设备基于第N-1画面和第N+1画面获得在与当前块相邻的像素和与参考块相邻的像素之间的残差部分,但是本发明不限于此。根据实施例,图像编码设备可以基于时间上位于第N-1画面前的第N-2画面和时间上位于第N+1画面后的第N+2画面来获得在相邻像素之间的残差部分。
换句话说,图像编码设备可以通过参考第N-2、N-1、N+1和N+2画面来执行帧间预测和帧内预测。
而且,图像编码设备可以在缓冲第N-2、N-1、N+1和N+2画面后基于在根据时间顺序的画面之间的时间频率特性和基于在时间频率特性上的改变程度来确定用于帧间预测和帧内预测的当前宏块和当前块的大小。
换句话说,图像编码设备检测在缓冲的第N-2、N-1、N、N+1和N+2画面中在时间上相邻的两个画面(即,第N-1和第N画面)之间的变化,将检测的变化与至少一个预设参考值作比较,并且根据比较的结果来分别确定用于帧间预测和帧内预测的块的大小。
例如,图像编码设备当所检测的在时间上相邻的画面之间的变化小于第一参考值时将具有第一大小的宏块的大小确定为64×64像素并且将具有第二大小的块的大小确定为8×8像素,当所检测的在时间上相邻的画面之间的变化等于或大于第一参考值并且小于第二参考值时将宏块的大小确定为32×32像素并且将块的大小确定为4×4像素,并且当所检测的在时间上相邻的画面之间的变化等于或大于第二参考值时将宏块的大小确定为16×16像素或更小并且将块的大小确定为4×4像素。
图38是图示根据本发明的另一个实施例的图像编码方法的流程图,并且图39是图示在图38中所示的图像编码方法的概念视图。
参见图38和39,图像编码设备在时间上位于是当前画面的第N画面前的第N-1画面中对于在第N画面中包括的具有第一大小的当前宏块确定参考宏块以产生第一运动向量,同时确定在时间上位于第N-1画面前的第N-2画面中的另一个宏块以产生第二运动向量(步骤S3810)。
具有第一大小的当前宏块可以具有16×16像素或更小的大小,或可以是具有32×32或64×64像素或更大的大小的扩展宏块。扩展宏块可以具有32×32像素或更大的大小,例如64×64或128×128像素,以适合于诸如超HD或更高分辨率的高分辨率。或者,扩展宏块在超HD或更高分辨率的情况下可以考虑到编码器和解码器复杂度而限于最大64×64像素。
其后,图像编码设备获得在第N画面的当前宏块中与具有第二大小的当前块相邻的像素和在第N-1画面的参考宏块中与当前块对应定位的参考块的对应相邻像素之间的差,由此获得在相邻像素之间的第一残差部分,并且获得在第N画面的当前宏块中与具有第二大小的当前块相邻的像素和在第N-2画面的参考宏块中与当前块对应定位的参考块的对应相邻像素之间的差,由此获得在相邻像素之间的第二残差部分,然后基于第一和第二残差部分来得出最后的残差部分(步骤S3820)。
最后残差部分可以是在第一和第二残差部分之间的平均值或第一和第二残差部分的较小者。而且,取决于与当前画面的时间距离,可以向第一和第二残差部分应用不同的加权因子,以确定最后的残差部分。
具有第二大小的当前块可以具有4×4或8×8像素的大小,该大小取决于当前宏块的大小而确定。
然后,图像编码设备使用在步骤S3820中获得的相邻像素之间的最后残差部分来确定当前块的帧内预测模式(步骤S3830),变换(步骤S3840)和量化(步骤S3850)在步骤S3820中获得的最后残差部分,并且对于量化的数据、第一大小(即,当前宏块的大小)、第二大小(即,当前块的大小)、第一和第二运动向量、帧内预测模式信息和参考画面信息执行熵编码,由此产生比特流(步骤S3860)。
在图38中的步骤S3830至S3860与在图32中的步骤S3230至S3260基本上相同,因此不重复它们的详细描述。
如图39中所示,图像编码方法可以得出在第N-1画面2630中与具有第二大小的参考块2631相邻的像素2633和在第N画面2610中与具有第二大小的当前块2611相邻的像素2613之间的差以获得第一残差部分,同时得出在第N-2画面3930中与具有第二大小的参考块3931相邻的像素3933和在第N画面2610中与具有第二大小的当前块2611相邻的像素2613之间的差以获得第二残差部分,然后获得在第一和第二残差部分之间的平均值来作为最后的残差部分,向所获得的残差部分应用各种帧内预测模式,由此考虑到应用的结果的编码效率而确定最佳的帧内预测模式。最后的残差部分可以是第一和第二残差部分的较小者。而且,取决于与当前画面的时间距离,可以向第一和第二残差部分应用不同的加权因子以确定最后的残差部分。
图40是图示根据本发明的实施例的图像解码方法的流程图。
参见图40,图像解码设备接收编码的比特流(步骤S4010),并且熵解码所接收的比特流(步骤S4020)。熵编码的信息可以包括例如宏块的运动向量(或运动向量的残差部分)、帧内预测模式、宏块的大小(即,第一大小)、在宏块中的当前块的大小(即,第二大小)和参考画面信息。根据上述的图像编码方法,所包括的信息可以不同。
而且,图像解码设备对于熵编码的信息执行逆量化和逆变换,以获得在与当前块相邻的像素和与参考块相邻的像素之间的残差部分(步骤S4030)。
图像解码设备使用通过熵解码获得的宏块的大小、在宏块中的当前块的大小、参考画面信息和当前宏块的运动向量信息,以确定在参考画面中具有第一大小的参考宏块和在参考宏块中具有第二大小的参考块(步骤S4040),并且获得关于与对应于要编码的当前块的参考块相邻的像素的信息(步骤S4050)。
其后,图像解码设备对于所获得的相邻像素信息和残差部分执行操作,以获得关于与具有第二大小的当前块相邻的像素的信息,并且根据帧内预测模式信息来恢复图像(步骤S4060)。
在图40中所示的图像解码方法中,在如图36中所示使用第N-1画面和第N+1画面编码图像的情况下,图像解码设备分别使用前向运动向量和反向运动向量来确定在第N-1和第N+1画面中的参考宏块,获得关于与在各个宏块中的参考块相邻的像素的信息,并且利用所获得的残差部分来操作所获得的相邻像素信息,由此获得关于与要恢复的当前块相邻的像素的信息。
或者,当如图38中所示第N-1和第N-2画面用于图像编码时,图像解码设备使用第一和第二运动向量来分别确定在第N-1和第N-2画面中的参考宏块,获得关于在所确定的各个参考宏块中与参考块相邻的像素的信息,并且利用所获得的残差部分来操作所获得的相邻像素信息,由此获得关于与要恢复的当前块相邻的像素的信息。
图41是图示根据本发明的实施例的图像编码设备的配置的框图。
参考图41,图像编码设备可以包括编码控制器4110、预测单元4120、变换单元4130、量化单元4140、逆量化单元4150、逆变换单元4160、缓冲器4170和熵编码单元4180。
编码控制器4110确定将被用于帧间和帧内预测的块的大小,并且根据所确定的大小来控制预测单元4120使得可以完成编码。而且,编码控制器4110确定要由变换单元4130和量化单元4140处理的块的大小,并且控制变换单元4130和量化单元4140使得可以根据所确定的块大小完成变换和量化。
而且,编码控制器4110确定在帧间和帧内预测的过程期间参考的画面。例如,编码控制器4110对于是当前要编码的画面的第N画面,可以将第N-2、N-1、N+1和N+2画面之一确定为用于帧内和帧间预测的参考画面,或者可以进行确定使得可以参考一个或多个画面。
编码控制器4110向熵编码单元4180提供用于帧内和帧间预测的块大小信息、用于变换和量化的块大小信息和参考画面信息。
预测单元4120在缓冲器4170中存储的第N-1画面中对于在是要编码的当前画面的第N画面中包括的具有第一大小的当前宏块确定参考宏块,由此产生运动向量,并且向熵编码单元4180提供所产生的运动向量。
而且,预测单元4120对于在具有第一大小的当前宏块中的、具有第二大小的当前块执行帧间和帧内预测。
换句话说,预测单元4120获得在与具有第二大小的当前块相邻的像素和与对应于当前块定位的参考块相邻的对应像素之间的差以获得在相邻像素之间的残差部分,并且向变换单元4130提供所获得的残差部分。
而且,预测单元4120使用残差部分来确定帧内预测模式,然后向熵编码单元4180提供关于所确定的帧内预测模式的信息。在此,帧内预测模式可以被确定为包括垂直模式(模式0)、水平模式(模式1)、对角下左模式(模式3)、对角下右模式(模式4)、垂直右模式(模式5)、水平下模式(模式6)、垂直左模式(模式7)和水平上模式(模式8)的根据H.264/AVC标准的用于4×4块的帧内预测模式之一,或者可以通过在通过应用九个不同模式的每一个而产生预测值后来考虑编码效率而被确定。而且,在不是根据H.264/AVC标准的用于4×4块的帧内预测模式的、用于具有4×4像素或更大的大小的块的各种帧间预测模式×中,可以将一个帧间预测模式看作帧内预测模式。
具有第一大小的当前宏块可以具有16×16像素或更小的大小,或者可以是具有32×32或64×64像素或更大的大小的扩展宏块。具有第二大小的当前块可以具有例如4×4或8×8像素,并且可以通过编码控制器4110来确定当前宏块的大小和当前块的大小。
预测单元4120基于在第N-1画面中与参考块相邻的像素和从逆变换单元4160提供的残差部分来获得关于与具有第二大小的当前块相邻的像素的信息,并且根据帧内预测模式信息来恢复当前块,然后向缓冲器4170提供所恢复的当前块。
变换单元4130和量化单元4140分别对于从预测单元4120提供的残差部分执行DCT和量化。变换单元4130和量化单元4140可以基于从编码控制器4110提供的块大小信息来执行这样的变换——例如,可以执行这样的变换以具有32×32或64×64像素。
逆量化单元4150和逆变换单元4160分别对于从量化单元4140提供的量化的数据执行逆量化和逆变换,以获得残差部分,该残差部分然后被提供到预测单元4120。
缓冲器4170存储至少一个或多个所恢复的画面。
熵编码单元4180熵编码从量化单元4140提供的量化的残差部分、运动向量、用于帧间或帧内预测的块大小信息、用于变换和量化的块大小信息和参考画面信息,由此产生比特流。
虽然在图41中图像编码设备参考第N-1画面以编码第N画面,但是本发明不限于此。根据实施例,如图33至39中所示,被编码以编码第N画面的第N-2、N-1、N+1和N+2画面中的至少一个或多个可以被参考以用于编码。
图42是图示根据本发明的实施例的图像解码设备的配置的框图。
参见图42,图像解码设备可以包括控制器4210、熵解码单元4220、逆量化单元4230、逆变换单元4240、预测单元4250和缓冲器4260。
控制器4210从熵解码的信息获得用于帧间和帧内预测的块的大小信息、在逆变换期间处理的块的大小信息、被参考用于帧间和帧内预测的画面信息和帧内预测模式信息,并且基于所获得的信息来执行用于解码的控制。
例如,控制器4210可以控制由逆量化单元4230和逆变换单元4240处理的块的大小,并且可以控制由预测单元4250在图像解码时参考的参考画面、在参考画面中的宏块的大小和在宏块中的当前块的大小。
熵解码单元4220对于输入的比特流执行熵解码。熵解码的残差部分被提供到逆量化单元4230,并且向预测单元4250提供熵解码的运动向量。向控制器4210提供用于帧间和帧内预测的块的大小信息、在逆变换期间处理的块的大小信息和在帧间和帧内预测期间参考的画面信息。
逆量化单元4230和逆变换单元4240分别逆量化和逆变换从熵解码单元4220提供的量化的残差部分,以产生残差部分,并且向预测单元4250提供所产生的残差部分。
预测单元4250使用从熵解码单元4220提供的运动向量、从控制器4210提供的宏块的大小、在宏块中的当前块的大小、参考画面信息和从熵解码单元4220提供的运动向量来在缓冲器4260中存储的对应画面中确定具有第一大小的要解码的当前宏块、与在当前宏块中具有第二大小的当前块对应的参考宏块和在参考宏块中的参考块,并且获得关于与参考块相邻的像素的信息。其后,预测单元4250对于所获得的相邻像素信息和从逆变换单元4240提供的残差部分执行操作,以获得当前块的相邻像素信息,根据从控制器4210提供的帧内预测模式信息来恢复当前块,然后在预测单元4250中存储恢复的当前块。
如结合图36所述,在使用第N-1和第N+1画面来编码图像的情况下,预测单元4250分别使用从熵解码单元4220提供的前向运动向量和反向运动向量来确定在缓冲器4260中存储的第N-1和第N+1画面中的参考宏块,获得关于在每一个所确定的参考宏块中与参考块相邻的像素的信息,利用从逆变换单元4240提供的残差部分来操作所获得的相邻像素信息,以获得关于与要恢复的当前块相邻的像素的信息,然后根据帧内预测模式恢复当前块。
或者,如结合图38所述,在使用第N-1和第N-2画面来编码图像的情况下,预测单元4250分别使用从熵解码单元4220提供的第一运动向量和第二运动向量来确定在第N-1和N-2画面中的参考宏块,获得关于在每一个确定的参考宏块中与参考块相邻的像素的信息,利用从逆变换单元4240提供的残差部分来操作所获得的相邻像素信息以获得关于与要恢复的当前块相邻的像素的信息,然后根据帧内预测模式恢复当前块。
缓冲器4260存储从预测单元4250提供的编码画面。
虽然已经描述了本发明的实施例,但是本领域内的普通技术人员可以明白,在不偏离由所附的权利要求限定的本发明的范围的情况下,可以对于本发明进行各种修改。