专利名称:图像编码装置及图像编码方法
技术领域:
本发明涉及图像编码装置、图像编码方法及程序,具体地涉及画面内的自适应速率(rate)控制。
背景技术:
已知H.264/MPEG-4AVC (下文中称为H.264)作为用于运动图片压缩记录的编码方法。(ITU-T H.264(03/2010)Advanced video coding for generic audiovisual services(针对通用视听服务的高级视频编码))根据H.264,以块为单位来对图像进行编码,但是针对各块的量化值是可变的。控制量化值以改变分配给块的速率可以允许图像质量控制。日本专利特开平9-18872号公报是改变分配给块的速率的传统技术的示例。根据日本专利特开平9-18872号公报,块的诸如亮度平均值、色差平均值、亮度分散值及运动矢量速率平均值的评价值被相乘以计算该块的编码难度,并且对该块分配速率。根据分配的速率,控制量化值。然而,在根据日本专利特开平9-18872号公报的控制方法中,用于确定量化值的函数的计算的复杂度较高,作为结果,这可能增加成本。基于如下前提实施根据日本专利特开平9-18872号公报的控制方法,即,通过预先将多个评价值相乘来预先用数学公式表示被线性转换为一维值的评价指标与量化值之间的关系。因此,非线性地识别要从各种评价指标编码的块的特性并且由此根据识别结果自适应地实施详细速率分配是很困难的。
发明内容
本发明提供了一种图像编码装置,所述图像编码装置包括:编码单元,其对输入图像以块为单位编码;计算单元,其针对所述块计算多个评价值;识别单元,其通过将由所述计算单元计算出的多个评价值与多个阈值相比较来生成识别信息;以及控制器,其基于由所述识别单元识别的所述识别信息来控制量化参数。本发明允许根据基于多个评价值的视觉特性对量化值进行精细控制,从而增强了主观图像质量。根据以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
图1是例示根据第一实施例的图像编码装置的框图。图2是根据第一实施例的帧编码的流程图。图3是根据第一实施例的识别信息生成的流程图。图4是根据第二实施例的量化参数生成的流程图。图5是例示根据第三实施例的图像编码装置的结构的框图。图6是例示根据第四实施例的图像编码装置的结构的框图。图7例示了根据第一实施例的块的识别。
图8例示了对象与块之间的关系。图9例示了根据第一实施例的块的识别。图10例示了根据第五实施例的区域与评价值之间的关系。图11是例示可应用于本发明的图像编码装置的计算机硬件结构示例的框图。
具体实施例方式第一实施例以下将参照附图来描述本发明的第一实施例。图1是例示根据该实施例的图像编码装置的框图。参照图1,评价值计算单元101计算输入图像的评价值。评价值计算单元101以块为单位接收图像的输入并且针对该块计算多个评价值。块识别单元102基于多个评价值生成识别信息。控制器103基于该识别信息来确定针对块的量化参数。编码单元104对输入图像编码。编码单元104以块为单位接收图像的输入,并且基于由控制器生成的量化参数来对块编码,由此生成编码流。将参照图2中的流程图来详细描述该实施例的图像编码装置的操作。根据该实施例,以帧为单位输入运动图片数据,该运动图片数据被划分为块并且被按照光栅顺序来处理。然而,本发明并不限于此,例如可以按照作为帧划分结果的片(slice)来输入图像。根据该实施例的各块的大小为16X16像素,但是本发明并不限于此。例如,各块的大小可以为8X8像素或者32X32像素,或者可以是32X 16像素的不对称块。在步骤S201中,评价值计算单元101针对输入块计算多个评价值。假设评价值与目标块被编码时的图像质量指标有关。例如,图像质量指标是指块编码时发生的量化误差对人类视觉的影响程度,计算用于确定程度的评价值。根据该实施例,属于块的像素的亮度平均值以及亮度的复杂度被计算作为评价值。这里,亮度复杂度适用属于块的像素的亮度值与该块的亮度平均值之差的大小(绝对值)的合计值。然而,本发明的图像编码装置不限于此,可以仅需要能够确定对人类视觉的影响程度的指标。例如,亮度的活度(activity)和/或分布可以被计算作为评价值,或者色差的活度、平均值、复杂度和/或分布可以被计算。要计算的评价值的数量不限于两种类型,除了亮度平均值和复杂度以外,还可以计算色差的其他评价值的平均值。这里术语“活度”是指通过获取进一步划分块而得到的子块的像素值的分散值并且选择所获取的多个分散值的最小值来确定的指标。在步骤S202中,块识别单元102基于评价值生成关于块的识别信息。以下将详细描述识别信息生成方法。在步骤S203中,控制器103基于识别信息生成对应于块的属性的量化参数。量化参数生成方法的详情并不特别限制。然而,例如通过表查找处理、以一对一的方式返回对应于块的识别结果的量化值的方法是可行的。在步骤S204中,编码单元104基于量化参数对块编码以生成编码流。在步骤S205中,确定是否帧内的全部块已被编码。如果全部块已被编码(步骤S205中“是”),则帧编码处理结束。如果并非全部块均被编码(步骤S205中“否”),则处理进行到步骤S201,在步骤S201中对后续块进行编码。接下来,将描述根据该实施例的关于块的识别信息的生成方法(步骤S202)。根据该实施例,使用块的亮度平均值SI和亮度复杂度S2两个评价值。分别针对评价值SI和S2定义阈值序列Tl和T2。针对η个评价值S1、S2、…、及Sn的组保持阈值序列Τη。图7例示了当亮度平均值及复杂度被用作评价值时块的识别的示例。横轴表示复杂度S2,纵轴表示亮度平均值SI,块被划分为总共72个区域。Tl和Τ2中的各个包括定义相应区域的一组阈值。在图 的示例中,Tl=ITl [1],Tl [2],Tl [3],Tl [4],Tl [5],Tl [6],Tl [7],Tl [8],Tl [9]},Τ2= {Τ2 [I],Τ2 [2],Τ2 [3],Τ2 [4],Τ2 [5],Τ2 [6],Τ2 [7],Τ2 [8]}。识别信息 M 是定义块位于评价值中的哪个区域的一组阈值。例如,图7中的阴影区域具有M= {Tl [6],Τ2 [5]}。将参照图3中的流程图来详细描述识别信息生成方法(步骤S202)。首先,在步骤S301中,将变量i初始化为I。在步骤S302中,将变量j初始化为I。接下来,在步骤S303中,确定评价值Si是否属于由阈值Ti [j]定义的区域内。如果评价值Si属于阈值Tn[i](步骤S303中“是”),则处理移动到步骤S306。如果不属于,则处理移动到步骤S304。接下来,在步骤S304中,将变量j增加I。接下来,在步骤S305中,确定是否已经将评价值Si与全部阈值(属于阈值序列Ti的全部阈值)相比较。如果评价值Si已经与全部阈值相比较(步骤S305中“是”),则处理移动到步骤S306。如果否,则处理移动到步骤S303。在步骤S306中,被确定为属于评价值Si的阈值被代入评价值Si中的识别信息Mi (识别信息M的第i元素),然后处理移动到步骤S307。在步骤S307中,将变量i增加I,处理移动到步骤S308。在步骤S308中,确定变量i是否高于n,即是否已经将全部η个评价值与阈值相比较。如果全部评价值已经被比较(步骤S308中“是”),则处理移动到步骤S309。如果否(步骤S308中“否”),则处理移动到步骤S302。
在步骤S309中,被确定为属于评价值的一组阈值被代入识别信息Μ,并且识别信息生成结束。由此生成的识别信息表示块所位于的图7中的格子区域的部分。块的特性以及适合于该特性的量化值与识别信息相关联以用于图像质量控制。根据该实施例,进行识别信息生成从而确定目标块的图像质量劣化程度。例如,人的眼睛对低空间频率的图像上的图像质量劣化比高频率空间的图像更敏感。为此,如上所述的具有低复杂度的块具有低空间频率,并且由于量化误差引起的图像质量劣化对于人类视觉更易察觉。另一方面,具有高复杂度的块具有高空间频率,并且图像质量劣化不易察觉。同样适用于亮度平均值。暗区域的图像质量劣化对于人类视觉容易察觉,亮区域的图像质量劣化不易察觉。基于多个评价值并且由于例如图7的左下区域的图像质量劣化容易察觉,所以减小量化值以抑制图像质量劣化。同时,增大图像质量劣化不易察觉的图7中的右上区域的量化值以抑制整个速率的增加。这可以保持相等的比特率并且还提高了主观图像质量。根据本实施例,使用亮度平均值和复杂度两种类型的评价值,以基于关于二维空间的位置信息来设置量化参数。然而,不言而喻,评价值的类型的数量可以被增加至N种类型(Ν>2)以扩展至N维空间。第二实施例将描述根据本发明的第二实施例的图像编码装置。该实施例的图像编码装置的结构与图1所示的第一实施例的图像编码装置的结构相同。该实施例的图像编码装置的操作也与图2中的流程图所示的第一实施例的操作相同。图3中的流程图所示的识别信息生成方法(步骤S202)与第一实施例的相同。因此,将省略描述。根据该实施例,量化参数生成方法(步骤S203)与第一实施例的不同在于,不仅使用块识别信息而且还使用邻接块的复杂度来高精度地确定量化参数。参照图8,将描述邻接块的复杂度的使用效果。图8例示了在白色背景中具有黑色对象的图像。各个方块代表16X 16像素块。块(白色块)801是白色背景的一部分,并且因为属于该块的像素的像素值都高,所以该块的复杂度低。块(黑色块)803是黑色对象的一部分,并且因为属于该块的像素的像素值都低,所以该块的复杂度低。块802位于白色块与黑色块之间的边界处。块802包含黑色像素和白色像素的混合。因为块的亮度平均值与像素的亮度之间的差值大并且复杂度高,所以块802属于在图7的示例中量化参数被设置得高的区域。然而,位于边界处的如块802的块通常呈现易察觉的图像质量劣化。因此,期望将量化参数设置得低。因为与块802邻接的块801和块803具有如上所述的低复杂度,所以块801和块803与块802之间的复杂度差值大。以这种方式,参照邻接块的复杂度,可以确定给定块是否是具有易察觉的图像质量劣化的边界块,从而使得能够对其设置较高的量化参数以避免图像质量劣化。将参照图4中的流程图来详细描述量化参数生成方法(步骤S203)。首先,在步骤S401中,控制器103基于通过图2中的步骤S202中的处理获取的识别信息M,参照表来确定量化参数。接下来,在步骤S402中,控制器103确定由识别信息描述的区域是否是邻接块确定区域。邻接块确定区域是指当设置量化参数时用于通过使用邻接块的评价值来校正量化参数的区域。为了避免错误地将具有易察觉的主观图像质量劣化的块的量化参数设置得较高,参照邻接块的参数针对量化参数被设置得较高的区域高精度地确定量化参数。如果是邻接块确定区域(步骤S402中“是”),则处理移动到步骤S403。如果否,则量化参数生成结束。接下来,在步骤S403中,控制器103读取在(稍后描述的)步骤S405中的处理中缓冲的邻接块的评价值。接下来,在步骤S404中,计算邻接块与目标块的评价值之间的差值。接下来,在步骤S405中,控制器103基于该差值来校正量化参数。根据该实施例,读取邻接块的复杂度,并且提取差值。如果块之间的差值高于预定阈值,则针对复杂度从高转变为低的块,将量化参数设置得比邻接块低。这是由于复杂度转变的块很有可能是如上所述的对象的边界块,因此图像质量劣化在对象的边界处易察觉。接下来,在步骤S406中,目标块的评价值被缓冲。根据该实施例,通过该处理,可以确定目标块是否是图像质量劣化易察觉的边界块。由此,将量化参数设置得较高可以避免图像质量劣化。第三实施例将描述根据第三实施例的图像编码装置。该实施例使用块的亮度平均值、亮度复杂度以及预测信息三个评价值。术语“预测信息”是指诸如H.264编码方法中的运动矢量信息和邻接像素值信息的用于预测编码的数据。图5是例示该实施例的图像编码装置的结构的框图。参照图5,预测单元501基于输入图像进行用于预测编码的预测处理,评价值计算单元502计算输入图像的评价值。评价值计算单元502以块为单位接收图像的输入,针对该块计算多个评价值,并且计算与预测单元501的预测处理结果相关联的预测信息。根据该实施例,运动矢量的大小被应用作为从预测单元501获取的信息。然而,本发明并不限于此。块识别单元503基于多个评价值识别块。控制器504基于识别信息确定针对块的量化参数。转换/量化单元505对块内的像素数据进行频率转换处理,然后基于由控制器确定的量化参数来量化。熵编码单元506对在转换/量化单元505中获取的量化数据进行熵编码以生成编码流。将参照图2中的流程图来详细描述该实施例的图像编码装置的操作。首先,在步骤S201中,评价值计算单元101针对输入块计算多个评价值。根据该实施例,除了第一实施例的评价值外,还使用由预测单元501获取的运动矢量的大小(绝对值)。接下来,将参照图3中的流程图来详细描述识别信息生成方法(步骤S202)。因为关于步骤S301和步骤S302的描述与第一实施例的相同,所以将省略描述。接下来,在步骤S303中,块识别单元503确定评价值Si是否属于由阈值Ti[j]定义的区域。根据该实施例,与第一实施例相同,评价值SI是亮度平均值,评价值S2是亮度复杂度,并且评价值S3是运动矢量的大小。与第一实施例相同,阈值序列Tn分别保持对应于评价值S1、S2、S3的T1、T2、T3。如果评价值Si属于阈值Tn[i](步骤S303中“是”),则处理移动到步骤S306。如果评价值Si不属于阈值Tn [i],则处理移动到步骤S304。因为步骤S304、步骤S305、步骤S306、步骤S307、步骤S308和步骤S309与第一实施例中的相同,所以将省略描述。因为图2中的处理与第二实施例中的相同,所以将省略描述。进行该实施例中的识别信息生成以确定目标块的图像质量劣化程度。因为关于复杂度和亮度平均值的描述与第一实施例中的相同,所以将省略描述。该实施例利用以下事实:人的眼睛可能不会很好跟随具有较高运动矢量绝对值的区域,即对象正在剧烈运动并且图像质量劣化不易识别的区域。基于多个评价值,减小图像质量劣化易察觉的区域的量化值以抑制图像质量劣化。同时,增大图像质量劣化不易察觉的区域的量化值以抑制整个速率的增加。这可以保持相等的比特率并且还改善了主观图像质量。第四实施例将描述根据第四实施例的图像编码装置。图6是例示本实施例的图像编码装置的结构的框图。参照图6,预测单元601通过基于输入图像进行用于预测编码的预测处理而生成预测误差。预测缓冲器607连接至预测单元601。预测缓冲器607存储关于紧接需要预测处理之前的一列上的块的预测信息。评价值计算单元602计算输入图像的评价值。评价值计算单元602以块为单位接收图像的输入,针对该块计算多个评价值,并且计算与预测单元601的预测处理结果相关联的评价值。块识别单元603基于多个评价值识别块。控制器604基于识别信息确定针对块的量化参数。转换/量化单元605对由预测单元601生成的预测误差进行频率转换处理,然后基于由控制器确定的量化参数来进行量化。熵编码单元606对从转换/量化单元605获取的量化后的数据进行熵编码,以生成编码流。因为该实施例的图像编码装置的操作、识别信息生成方法(图2中的步骤S202)以及量化参数生成方法(图2中的步骤S203)与第三实施例的相同,所以将省略描述。与第二实施例相同,为了使用关于目标块和邻接块的识别信息来进行图像质量控制,可能需要直接缓冲关于过去识别的块的识别结果或者块的评价值。当按照光栅顺序处理块时,例如可能需要保持针对一个块行的信息以使用关于目标块上方的邻接块的信息。这需要针对其的专用存储器,因此增加了成本。根据该实施例,不用于帧内编码的帧间缓冲存储器(预测缓冲器607)被用于帧内编码。结果,不需要存储块信息的单独存储器,即使在考虑到用于具有相对高的比特率的帧内编码的邻接块的特性的情况下也能够进行高精度图像质量控制,并且实现了高图像质量控制效果。为了进行画面间编码,帧间缓冲存储器可以存储运动矢量及预测误差中的至少一者。为了进行画面内编码,帧间缓冲存储器可以存储平均值、活度、复杂度和分布中的至少
一者O第五实施例将描述根据本发明的第五实施例的图像编码装置。该实施例的图像编码装置的结构与图1所示的根据本发明的第一实施例的图像编码装置的结构相同。因为该实施例的图像编码装置的操作也与图2中的流程图所示的第一实施例的操作相同,所以将省略描述。根据该实施例,评价值SI和S2以及相应的阈值序列Tl和T2也与第一实施例中的相同。然而,如图9所示,该实施例与第一实施例的不同在于,由实线或虚线表示的作为块的识别结果的区域的数量不是72而是13 {Rl, R2,...,R13}。换言之,第一实施例的多个区域被合并。针对图9所示的区域,在图2中的步骤S204的处理中,量化参数可以被不同地改变。在阴影区域中,根据基准值来改变量化参数的加权。在非阴影区域(R9)中,不根据基准值来改变量化参数。这里术语“基准值”是指给予帧的默认量化参数。阴影区域中被实线围绕的区域是具有高复杂度的区域或亮区域。因为这些区域中的图像质量劣化不易察觉,所以量化参数可以设置得比基准值高以减小速率。另一方面,由虚线围绕的区域是图像质量劣化易察觉的区域。因此,将量化参数设置得比基准值低以改善图像质量。针对图像质量的详细控制,图像质量劣化易察觉的区域被特别地精确划分。简单通过与阈值的比较来确定块的标识,这通常使得处理比第一实施例更简单。更具体地,虽然在第一实施例中需要最多72个比较处理用于识别72个区域,但是如图10所示,需要最多13个比较处理以通过按照Rl、R2...、及R13的顺序的区域的标识来识别13个区域。根据该实施例,例如提供这13个划分区域。然而,本发明并不限于此。可以增加划分区域的数量用于对图像质量的更精确的控制。第六实施例根据上述实施例通过硬件实现图1、图5和图6中所示的处理区域。然而,要在图1、图5和图6中所示的处理区域中实现的处理也可以由计算机程序来实现。图11是例示可应用于根据上述实施例的任意一者的显示器的计算机硬件结构示例的框图。CPUl 101通过使用RAMl 102和/或ROMl 103中存储的计算机程序和/或数据来整体控制计算机,并且执行上述由根据上述实施例的图像处理装置执行的处理相同的处理。换言之,CPU1101可以用作图1、图5和图6中所示的处理区域。RAMl 102具有用于临时存储从外部存储器1106加载的计算机程序和/或数据和/或通过I/F (接口)1107外部获取的数据。RAM1102具有要被CPU1101用来执行处理的工作区。换言之,RAMl 102可以例如被分配作为帧存储器,或者可以根据需要提供其他区域。R0M1103存储针对计算机的设置数据和/或引导程序。操作单元1104包括例如键盘和/或鼠标,并且可以由计算机的用户操作以向CPU1101输入指令。主显示器1105显示CPU1101的处理结果。主显示器1105可以包括诸如液晶显示器的显示装置。外部存储器1106是诸如硬盘驱动器的大容量信息存储设备。外部存储器1106存储操作系统(OS)和/或用于使CPU1101实现图1、图5和图6中所示的功能的计算机程序。外部存储器1106可以存储要处理的图像数据。存储在外部存储器1106中的计算机程序或多个程序和/或数据根据需要在CPUl 101的控制下被加载到RAMl 102,并且被CPUl 101处理。诸如LAN和互联网的网络以及诸如投影仪和显示装置的其他装置可以连接至I/F1107。计算机可以通过I/F1107获取并发送各种信息。总线1108连接这些部件。根据针对上述操作的流程图由CPU1101集中控制这些部件的操作。其他实施例根据本发明,可以向系统提供记录执行上述功能的计算机程序的代码的存储介质,并且系统可以读取并执行计算机程序的代码。在这种情况下,从存储介质读取的计算机程序的代码直接实现上述实施例的功能,存储有计算机程序的代码的存储介质被包括在本发明中。本发明包括计算机上运行的操作系统(OS)基于来自程序代码的指令进行部分或全部实际处理并且该处理实现上述功能的情况。可以按照如下来实现本发明。即,从存储介质读取的计算机程序代码可以被写入插入到计算机的功能扩展卡或连接至计算机的功能扩展单元中设置的存储器。基于来自计算机程序代码的指令,例如设置在功能扩展卡或功能扩展单元中的CPU执行部分或全部实际处理以实现上述功能。当本发明应用于存储介质时,存储介质存储对应于上述流程图的计算机程序代码。虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这些变型例以及等同的结构和功能。
权利要求
1.一种图像编码装置,该图像编码装置包括: 编码单元,其对输入图像以块为单位编码; 计算单元,其针对所述块计算多个评价值; 识别单元,其通过将由所述计算单元计算出的多个评价值与多个阈值相比较来生成识别信息;以及 控制器,其基于由所述识别单元识别的所述识别信息来控制量化参数。
2.根据权利要求1所述的图像编码装置,其中,所述识别信息是关于N维空间的位置信肩、O
3.根据权利要求1所述的图像编码装置,其中,所述控制器基于所述识别信息参照邻接块的评价值来控制量化参数。
4.根据权利要求1所述的图像编码装置,其中,所述多个评价值是活度、复杂度、平均值、分布、运动矢量及预测误差中的一者。
5.根据权利要求1所述的图像编码装置,所述编码装置还包括: 存储单元,其针对画面间编码存储运动矢量及预测误差中的至少一者,并且针对画面内编码存储平均值、活度、复杂度、分布中的至少一者。
6.一种图像编码装置中的图像编码方法,所述图像编码方法包括: 编码步骤,对输入图像以块为单位编码; 计算步骤,针对所述块计算多个评价值; 识别步骤,通过将所述计算步骤计算出的多个评价值与多个阈值相比较来生成识别信息;以及 控制步骤,基于所述识别步骤识别的所述识别信息来控制量化参数。
全文摘要
本发明提供一种图像编码装置及图像编码方法。所述图像编码装置包括编码单元,其对输入图像以块为单位编码;计算单元,其针对所述块计算多个评价值;识别单元,其通过将由所述计算单元计算出的多个评价值与多个阈值相比较来生成识别信息;以及控制器,其基于由所述识别单元识别的所述识别信息来控制量化参数。
文档编号H04N7/26GK103188493SQ20121058106
公开日2013年7月3日 申请日期2012年12月27日 优先权日2011年12月28日
发明者大川浩司, 樋渡咲 申请人:佳能株式会社