乱序编码的制作方法

文档序号:7737051阅读:317来源:国知局
专利名称:乱序编码的制作方法
背景技术
在某些情况下,用户可能希望提取编码图像的一部分。例如,JPEG编码图像包括了孩子的艺术作品的照片。该照片被发送给爷爷奶奶,爷爷奶奶可能想要从编码图像中提取出孩子的艺术作品。又如,编码图像可能包括许多个人,用户可能想要提取包括某个特定人的图像部分。
在这些情况中,为了提取编码图像的期望部分,通常必须将整个图像解码并在缓冲器中存储。许多装置,诸如蜂窝电话、个人数字助理等具有有限存储器。因此,为了提取图像的期望部分而解码整个图像并在缓冲器中存储整个解码图像的需求可能不允许这些具有有限存储器的装置执行该功能。这是不期望的,因为如蜂窝电话或其他便携设备的用户,通常愿意在他们的便携设备上拥有与他们在个人电脑上拥有的同样的功能。


参照附图的描述,能够更全面地领会以下具体实施方式
中描述的实施例的各种特征,在附图中,相同的数字指代相同的部分。
图1示出了根据实施例的用于编码图像目标区域的数据流图; 图2示出了图像和目标区域的不同扫描顺序; 图3示出了根据实施例的用于对目标区域进行编码的系统; 图4示出了根据实施例的用于编码目标区域的方法的流程图;以及 图5示出了根据实施例的可用作编码系统的平台的计算机系统。
具体实施例方式为了简单和直观的目的,主要通过参考示例来描述实施例的原理。在下面的描述中,为了提供对实施例的详尽理解而阐明了许多特定的细节。然而,很显然,对于本领域普通技术人员来说,可以不受这些特定细节的限制来实现实施例。同时,没有对公知的方法和结构进行描述,以免不必要地模糊本实施例的描述。
根据实施例,编码(Coding)系统提供对图像中目标区域的编码(encoding)。编码系统接收编码图像,并使用“移动缓冲(moving buffer)”来部分解码图像。识别出移动缓冲中目标区域的块,将其压缩并重排成目标区域的扫描顺序,以创建目标区域的编码图像。 移动缓冲允许对于目标区域提取过程使用较少的存储器,同时改善了性能。扫描顺序是用于检测、重构和/或存储图像的模式。常用的扫描顺序是光栅扫描。
编码(Coding)可能包括编码(encoding)、解码(decoding)或其他相关功能。移动缓冲实际上可能并不是一个缓冲器。例如,移动缓冲可能表示移动窗口,该移动窗口每次覆盖图像的一部分,然后移动到图像的另一部分,依此类推。扫描该窗口下的每一部分以识别被扫描的块是否是目标区域的块。来自目标区域的块存储在实际的缓冲器中,该实际的缓冲器可能是存储器或一些其他数据存储。将这些块重新排序并编码。所述块可能为宏块, 如16X16的像素块,或其他大小的像素块。同时,目标区域包含了大小上小于整个图像的图像区域,并且,目标区域可能具有与图像的边没有对齐的边。
图1示出了根据实施例的编码系统100的数据流图。图像比特流被逐部分地接收并解码。图像比特流可包括单个编码图像的比特,或者多个编码图像的比特。
接收的比特流中图像的表示如图像101所示。图像101包括目标区域102,在本例中该目标区域包括块1-9。目标区域102可能是图像101中用户感兴趣的区域。目标区域 102可以由用户选择。在其他例子中,目标区域102可以由计算机选择。
图像101是包括块的编码图像,这些块以被称作图像扫描顺序103的特定扫描顺序而被编码。一种常用的扫描顺序是光栅扫描顺序。如图1所示,图像扫描顺序103的箭头表示光栅扫描顺序。图像101的光栅扫描顺序对于从左上方开始的块的每一行,逐行地、 从左至右地、水平地沿着顶部边缘、逐块地行进。
移动缓冲110用于以图像扫描顺序103解码图像101。移动缓冲110识别图像101 将要被解码的部分。移动缓冲110作为覆盖图像101的一部分的移动窗口进行操作。移动缓冲110中的块被解码,并且被存储在输入扫描缓冲器111中。输入扫描缓冲器111不需要大到能够存储整个解码图像。输入扫描缓冲器111应该大到足以存储至少一个块。
在移动缓冲110中的解码块被示为B1-Bn,以图像扫描顺序103存储在输入扫描缓冲器111中。输入扫描缓冲器111可以是先进先出缓冲器。移动缓冲110移动到图像的另一部分,在移动缓冲110下的当前部分中的块填充输入扫描缓冲器111,以重写旧的块。移动缓冲110可以以覆盖图像101的不重叠部分的方式逐部分移动,直到识别出来自目标区域102的所有块,或直到图像101的所有块均被解码。在另外的实施例中,移动缓冲110可以以覆盖图像101的重叠部分的方式逐部分移动。
块编码器120识别输入扫描缓冲器111中的来自目标区域102的块。块编码器一次编码一个块。JPEG编码器是块编码器的一个示例。因为块Bi-民以图像扫描顺序103存储在输入扫描缓冲器111中,块编码器120以该顺序识别来自目标区域102中的块。例如, 如图所示,首先识别出目标区域102的块1,然后识别块4,然后块2,然后块7等等,直到识别出目标区域102的所有块。随着目标区域102的块被识别,块编码器120对它们进行编码,并将编码块以图像扫描顺序103存储在输出缓冲器121中。
为了创建包括目标区域102的编码图像,将输出缓冲器中的块以目标区域的扫描顺序重新排序,该顺序被称为目标区域扫描顺序104。目标区域扫描顺序104也可以是光栅扫描顺序。然而,由于目标区域102与图像101不对齐,所以目标区域扫描顺序104与图像扫描顺序103不同。特别地,注意目标区域102的边与图像101的边不平行,这就是不对齐,并且导致了相同块的不同扫描顺序。这将在图2中进一步示出。
图2示出图像扫描顺序103和目标区域扫描顺序104。块编码器120以图像扫描顺序103编码目标区域102的块,如输出缓冲器121中所示。然而,例如,如作为编码类型的要求,目标区域的那些相同的块需要处于目标区域扫描顺序104。例如,JPEG和MPEG编码要求以光栅扫描顺序进行编码,从图像的左上方开始。因为目标区域中的图像与图像101 是不对齐的,所以对于目标区域102,目标区域102中图像的左上方是块1。目标区域102 的光栅扫描顺序如目标区域扫描顺序104所示。相应地,例如,为了创建JPEG编码图像比特流,以图像扫描顺序103排序的输出缓冲器121中的目标区域块需要被重新排序为目标区域扫描顺序104。图1示出将目标区域的块重新排序成目标区域扫描顺序104。块编码器120可将这些重新排序的块作为编码图像比特流输出。
除了对目标区域块1-9进行重新排序,块编码器120还基于一个或多个先前块的差来重新计算目标区域的重排序块的DC系数。是否需要这种DC系数的重新计算取决于正在执行的编码的类型。例如,JPEG编码依赖于先前块而生成用于块的DC系数。与块中的数据总量相比,DC系数数据是很小的。
图3示出根据实施例的编码系统(coding system) 100。参照图1来描述编码系统100。编码系统100包括接收一个或多个编码图像的图像比特流的解码器200。如上文所描述的那样,解码器200使用图1示出的移动缓冲110逐部分地解码图像。输入扫描缓冲器111以图像扫描顺序103存储解码块。随着图像101被逐部分解码,块编码器120从输入扫描缓冲器111中识别目标区域块,例如,图1中示出的块1-9,并编码这些块。将编码块以图像扫描顺序103存储在输出缓冲器121中。块编码器120将目标区域块重新排序成目标区域扫描顺序104,并输出编码图像比特流。
块编码器120可能包括目标区域块识别模块210、编码模块211、重新排序模块 212和输出模块213。模块可能包括软件和/或硬件。目标区域块识别模块210识别输入扫描缓冲器111中的目标区域块。传统的几何变换可以被使用来识别来自图像101的块,其是目标区域102中的块。几何变换的目的是将每一个期望输出像素(如,目标区域102中的像素)的位置与原始图像101中的相应像素的位置联系起来。存在许多这样的变换。举一个相当普遍的例子,考虑从旁边路上的车辆中拍摄的道路标识的照片。假设标识本身是矩形, 它在照片中的图像会形成四边形,但不是一个矩形,并且通常情况下甚至不是一个梯形。想像标识有轴与它的边平行的坐标系统。坐标系统中的点与照片中的点的关系被称为透视, 并且一旦在原始图像中指示出标识的角,则可以通过公知的几何学的简单应用来推导出两个系统之间的变化公式。为了完成该例子,假设我们希望创建看起来像从前方直接出现的标识的输出图像(即,真实的无畸变的矩形,或技术上被认为是正面正交的视图)。进一步假设我们规定了输出分辨率,假设是mXn。那么,该mXn像素的集合,在输出图像上、并据此在标识的坐标系统中形成规则网格。通过使用推导出的公式,我们对于每一个输出像素应用几何变换,以找出它与原始图像中的哪个像素相关联。图像信号处理领域的技术人员知道,寻找新的像素颜色值包括使用例如双三次插值的技术来重采样。通过考虑在任何给定输出图像块中的每一个像素,和寻找在原始图像中重采样所必需的相应像素,能够轻易地列举出必须被解码以呈现所选择的输出块的原始图像块。
编码模块211以图像扫描顺序103对来自输入扫描缓冲器111的目标区域块进行编码,并将编码块以图像扫描顺序103存储在输出缓冲器121中。重新排序模块212以目标区域扫描顺序104对块进行重新排序。输出模块213基于新的顺序重新计算DC系数,并输出编码图像比特流。这可以是完全兼容的JPEG编码比特流。
在有些情况下,目标区域102的块不需要被重新排序。例如,目标区域102的边可能与图像101是对齐的。在这种情况下,重新排序模块212,例如,基于几何变换来确认目标区域102的块不需要被重新排序。在一个实施例中,重新排序模块212,例如,基于几何变换来确定目标区域102的块是否需要被重新排序。然后,响应于确定块需要被重新排序,对所述块进行重新排序。否则,不对所述块进行重新排序。
图4示出了根据实施例的用于编码图像的目标区域的方法400。图4示例性而非限制性地参照图1-3中的一个或多个来进行描述。
在步骤401,解码图像的一部分,例如,使用图1中示出的移动缓冲110来进行解码。
在步骤402,将解码块以图像扫描顺序103存储在输入扫描缓冲器111中。
在步骤403,从输入扫描缓冲器111的块中识别可能位于图像的解码部分中的任何目标区域块1-9。可使用几何变换来识别目标区域中的块。
在步骤404,从输入扫描缓冲器111中识别的目标区域块被编码,并以图像扫描顺序103存储在输出缓冲器121中。编码包括压缩解码块。编码可以包括根据诸如JPEG的标准的编码。
在步骤405,根据目标区域扫描顺序104对编码块进行重新排序。可以使用索引结构或表格重新排序所述块。
在步骤406,将重新排序的块作为编码图像比特流输出。
重复步骤401-406,逐部分解码图像101以产生包括目标区域102的编码图像比特流。该编码比特流可以是JPEG编码比特流,或其他类型的编码比特流。
图5示出通用目的的计算机系统500的模块图,该系统表示用于上文描述的系统 100中的计算机系统的平台。计算机系统500表示可用于编码系统100的平台。
计算机系统500包括提供用于执行软件的执行平台的处理电路502,该电路可包括用于上文描述的编码器120模块的软件和解码器200的软件。来自处理电路502的命令和数据在通信总线505上进行通信。计算机系统500还包括诸如在运行时驻留软件的随机存取存储器(RAM)的主存储器506,和第二存储器508。输入扫描缓冲器111和输出缓冲器 121可以是主存储器506的一部分。第二存储器508包括,例如,非易失性存储器,硬盘驱动器,和/或可移动存储驱动器。软件的副本可以存储在第二存储器508中。
计算机系统500可包括输入/输出设备510。输入/输出设备510可包括显示器和/或其他用户接口,如键盘,鼠标,手写笔,触摸屏,遥控等等。通信接口 512用于与其他计算机系统进行通信。通信接口 512可以协助连接到一个或多个网络。对于某些计算机系统来说,通信接口 512可以表示多个接口,如IP网络接口,蓝牙接口,和/或蜂窝网络接口。 计算机系统500可包括多个未示出的其他公知组件。同样,计算机系统500可用于个人电脑、蜂窝电话和其他手持设备、机顶盒、以及其他电子设备。
这里描述的一个或多个方法,其他的步骤和模块可作为存储在诸如存储器506和 /或508的计算机可读介质中的软件而实现,并由计算机系统500执行,例如,由处理电路 502执行。
虽然参照示例描述了实施例,但是本领域技术人员可以在不脱离本发明的真实精神和范围的前提下,对描述的实施例进行各种修改。这里使用的术语和描述仅以示意性方式进行说明,并不意味着限制。特别地,尽管通过示例描述了方法,方法的步骤可以以与示例不同的顺序执行,或同时执行。本领域技术人员能够认识到,在所附权利要求及其等同物所定义的精神和范围内,这样或其他变化都是可能的。
权利要求
1.一种用于对图像的目标区域进行编码的块编码器,所述编码器包括编码器模块,所述编码器模块用于对来自图像的目标区域的块进行编码,其中,编码块以所述图像的扫描顺序而被存储在输出缓冲器中;以及重新排序模块,所述重新排序模块用于将所述目标区域的所述编码块重新排序成所述目标区域的扫描顺序。
2.如权利要求1所述的块编码器,还包括输出模块,所述输出模块用于基于一个或多个先前块的差,为所述目标区域的重新排序块重新计算DC系数,并将所述重新排序块输出作为编码图像比特流。
3.如权利要求1所述的块编码器,还包括目标块识别器,所述目标块识别器用于识别将要被编码的、在所述输入扫描缓冲器中的、来自所述目标区域的块。
4.如权利要求3所述的块编码器,其中,所述目标块识别器使用几何变换将来自所述图像的块映射到以所述目标区域的扫描顺序排序的块。
5.如权利要求3所述的块编码器,其中,所述图像被逐部分地解码,并且当图像的每一部分被解码时,将来自解码部分的块存储于所述输入扫描缓冲器中,并且,所述目标块识别器识别将要被编码的、在所述输入扫描缓冲器中的、来自所述目标区域的块。
6.如权利要求1所述的块编码器,其中,处于所述目标区域的扫描顺序的块与处于所述图像的扫描顺序的相同块的排序不同。
7.如权利要求6所述的块编码器,其中,所述目标区域的扫描顺序是所述目标区域的光栅扫描顺序,所述图像的扫描顺序是所述图像的光栅扫描顺序。
8.如权利要求1所述的块编码器,其中,所述目标区域是与所述图像的边不对齐的所述图像的区域。
9.一种编码系统,包括输入扫描缓冲器,所述输入扫描缓冲器用于存储来自图像一部分的解码块,其中,所述输入扫描缓冲器中的所述块以所述图像的扫描顺序排序;编码器,所述编码器用于识别所述输入扫描缓冲器中的块,所述块是所述图像的目标区域中的块,并且,所述编码器用于对所识别的所述目标区域的块进行编码;输出缓冲器,所述输出缓冲器用于以所述图像的扫描顺序来存储所述编码块;以及所述编码器用于将所述编码块重新排序为所述目标区域的扫描顺序。
10.如权利要求9所述的编码系统,其中,所述编码器用于基于一个或多个先前块的差,为所述目标区域的重新排序块重新计算DC系数,并将重新排序块输出作为编码图像比特流。
11.如权利要求10所述的编码系统,其中,所述编码图像比特流为JPEG编码比特流。
12.如权利要求9所述的编码系统,还包括解码器,所述解码器用于逐部分解码整个图像,当所述图像的每一部分被解码时,将所述解码部分的块以所述图像的光栅扫描顺序存储于所述输入扫描缓冲器中。
13.如权利要求9所述的编码系统,其中,所述目标区域的扫描顺序与所述图像的扫描顺序不同。
14.如权利要求13所述的编码系统,其中,所述目标区域的扫描顺序是所述目标区域的光栅扫描顺序,所述图像的扫描顺序是所述图像的光栅扫描顺序。
15.一种编码图像目标区域的方法,所述方法包括 确定图像中的目标区域;解码所述图像的一部分;识别所解码部分中的目标区域的任何块;逐部分地重复所述图像的解码;以及对于每个解码部分,识别所解码部分中的目标区域的任何块;压缩所述目标区域的被解码、识别的块;以及对处于光栅扫描顺序的所述目标区域的压缩块进行重新排序,以形成新的编码图像。
16.如权利要求15所述的方法,其中,逐部分地重复所述图像的解码还包括 逐部分地重复所述图像的解码,直到识别出所述目标区域中的所有块。
17.如权利要求15所述的方法,还包括以所述图像中的块的光栅扫描顺序来存储被压缩、识别的块,并且所述图像中的被识别的块的光栅扫描顺序与新编码图像中相同块的光栅扫描顺序不同。
18.如权利要求15所述的方法,还包括利用几何变换来识别所解码部分中的所述目标区域的块。
19.如权利要求15所述的方法,还包括 对重新排序块的DC系数进行重新计算。
20.如权利要求15所述的方法,其中,所述部分是不重叠的。
全文摘要
一种块编码器,用于编码图像的目标区域。编码器对来自图像的目标区域的块进行编码。编码块以图像的扫描顺序被存储。将编码块重新排序成目标区域的扫描顺序,并输出作为编码图像比特流。
文档编号H04N1/41GK102187655SQ200980141476
公开日2011年9月14日 申请日期2009年10月16日 优先权日2008年10月20日
发明者余天利, 吉姆·克伦肖 申请人:摩托罗拉移动公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1