CN102369554B - 用以旋转图像的设备和方法 - Google Patents
用以旋转图像的设备和方法 Download PDFInfo
- Publication number
- CN102369554B CN102369554B CN201080014761.2A CN201080014761A CN102369554B CN 102369554 B CN102369554 B CN 102369554B CN 201080014761 A CN201080014761 A CN 201080014761A CN 102369554 B CN102369554 B CN 102369554B
- Authority
- CN
- China
- Prior art keywords
- image
- mcu
- block
- view data
- coefficient value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 230000008569 process Effects 0.000 claims description 79
- 238000012545 processing Methods 0.000 abstract description 39
- 239000000872 buffer Substances 0.000 description 40
- 230000008707 rearrangement Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/602—Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本发明揭示图像处理系统和方法。在一特定实施例中,揭示一种方法,所述方法包括接收图像的图像数据。所述图像数据包括多个图像块。所述方法进一步包括在所述图像的旋转操作期间通过将所述图像的第一行的第一块的第一DC系数值与所述图像的第二行的第一块的第二DC系数值进行比较来计算第一差分DC值。所述方法进一步包括在完成所述旋转操作之前将所述第一差分DC值存储于存储器中。
Description
技术领域
本发明大体来说涉及一种用以旋转图像的设备和方法。
背景技术
技术的进步已产生体积更小且功能更强大的计算装置。举例来说,当前存在多种体积小、重量轻且易于用户携带的便携式个人计算装置,例如个人数字助理(PDA)、无线电话和寻呼装置。便携式无线电话(例如,蜂窝式电话和因特网协议(IP)电话)可经由无线网络传送语音和数据包。另外,许多此类无线电话包括并入于其中的其它类型的装置。举例来说,无线电话还可包括数字静态相机、数字视频相机、数字记录器和音频文件播放器。此类无线电话可执行软件应用程序(例如,网络浏览器应用程序)的指令以接入因特网。因此,无线电话可包括显著的计算能力。
数字信号处理器(DSP)、图像处理器和其它处理装置频繁地用于包括数码相机或显示由数码相机俘获的图像或视频数据的便携式个人计算装置中。此类处理装置可用以提供视频和音频功能、用以处理所接收的数据(例如,所俘获的图像数据)或用以执行其它功能。
在许多成像应用中,可能需要旋转图像。举例来说,由配置为通常由用户在横向定向上握持的相机来俘获图像,但用户可将相机旋转九十度以在纵向定向上俘获图像。一旦俘获纵向定向上的图像,便可能需要在相反方向上将所述图像数据旋转九十度。用以旋转图像的常规旋转技术可为存储器密集型的,因为所述技术可涉及临时存储旋转之前未经压缩的图像的一个或一个以上副本以及存储旋转之后经压缩的图像。
发明内容
本发明的实施例通过在编码图像的块中的每一者以形成所述图像时旋转所述图像的个别单元或块来提供所俘获图像的旋转。因此,本发明的实施例在编码图像时产生单一经旋转的图像,而非俘获并编码完整图像且接着旋转所述图像(此举为处理密集型的且还耗费存储器,因为将同时存储原始图像和经旋转的图像的至少若干部分)。经旋转的位流经布置以形成所述经旋转的图像。在一些实施例中,通过联合图片专家组(JPEG)编码器以旋转次序执行差分编码。在其它实施例中,盖写JPEG重新开始(RST)标记以指示若干填补位以通过转换编码器(transcoder)实现有效的差分编码。
在一特定实施例中,揭示一种方法,其包括接收图像的图像数据,其中所述图像数据包括多个图像块。所述方法进一步包括在所述图像的旋转操作期间通过将所述图像的第一行的第一块的第一DC系数值与所述图像的第二行的第一块的第二DC系数值进行比较来计算第一差分DC值。所述方法进一步包括在完成所述旋转操作之前将所述第一差分DC值存储于存储器中。
在另一特定实施例中,揭示一种设备。所述设备包括块旋转模块,所述块旋转模块经配置以接收图像的图像数据。所述图像数据包括多个图像块。所述设备还包括差分DC计算模块,所述差分DC计算模块耦合到所述块旋转模块且经配置以在所述图像的旋转操作期间通过将所述图像的第一部分的第一块的第一DC系数值与所述图像的第二部分的第一块的第二DC系数值进行比较来计算差分DC值。
在另一特定实施例中,揭示一种设备。所述设备包括用于接收具有图像块的图像的图像数据的装置。所述设备进一步包括用于在所述图像的旋转操作期间通过将所述图像的第一部分的第一块的第一DC系数值与所述图像的第二部分的第一块的第二DC系数值进行比较来计算第一差分DC值的装置。所述用于计算第一差分DC值的装置耦合到所述用于接收图像数据的装置。
在另一特定实施例中,揭示一种计算机可读存储媒体。所述计算机可读存储媒体存储可由计算机执行以在图像的旋转操作期间存储所述图像的第一部分的第一块的第一DC系数值的代码。所述计算机可读存储媒体进一步包括可由所述计算机执行以将所述图像的第二部分的第一块的第二DC系数值与所述第一DC系数值进行比较以计算第一差分DC值的代码。所述计算机可读存储媒体进一步包括可由所述计算机执行以在完成所述旋转操作之前存储所述第一差分DC值的代码。
由用以旋转图像的设备和方法的实施例提供的一个特定优点为对存储器的较有效的利用。
附图说明
图1为包括图像处理系统的系统的特定说明性实施例的框图,所述图像处理系统具有可操作以使用旋转次序差分编码的旋转操作模块;
图2为图像旋转系统的第一特定实施例的框图;
图3为图2的图像旋转系统的一部分的框图;
图4为图像旋转系统的第二特定实施例的框图;
图5为图像旋转系统的第三特定实施例的框图;
图6为图像旋转系统的第四特定实施例的框图;
图7为图像旋转系统的第五特定实施例的框图;
图8为说明用于各种度数的图像旋转的块处理次序和块扫描次序的特定实施例的图;
图9为说明用于水平和垂直图像翻转的块处理次序和块扫描次序的特定实施例的图;
图10为旋转图像的方法的第一说明性实施例的流程图;
图11为旋转图像的方法的第二说明性实施例的流程图;
图12为便携式通信装置的框图,所述便携式通信装置包括使用旋转次序差分编码的旋转操作模块;以及
图13为图像传感器装置的特定实施例的框图,所述图像传感器装置包括使用旋转次序差分编码的旋转操作模块。
具体实施方式
许多成像应用中需要图像旋转。常规旋转技术可为存储器密集型的,且可涉及在旋转之前临时存储未经压缩的图像的一个或一个以上副本以及在旋转之后存储经压缩的图像。通过如本文中的实施例所揭示在旋转操作期间使用旋转次序差分编码,可实现对存储器的较有效的利用。举例来说,对于90度旋转,图像块重新排序可导致原始图像的行形成经旋转的图像的列,而原始图像的列形成经旋转的图像的行。通过在旋转操作期间以旋转次序(即,沿着列而非沿着行)差分编码图像数据,在块重新排序之后无需执行稍后的差分编码操作。因此,可避免在编码和存储到存储器(例如,通过转换编码器)之后进行的解码并检索DC系数的额外处理。
参看图1,描绘包括图像处理系统的系统的特定说明性实施例且大体上将其表示为100,所述图像处理系统具有使用旋转次序差分编码的旋转操作模块。系统100包括耦合到图像处理系统130的图像俘获装置101。图像处理系统130耦合到图像存储装置140。图像处理系统130经配置以接收来自图像俘获装置101的图像数据109且执行旋转操作来旋转由图像数据109表示的图像。在一特定实施例中,系统100实施于便携式电子装置中,所述便携式电子装置经配置以使用有限的处理资源来执行实时图像处理。
在一特定实施例中,图像俘获装置101为相机,例如,视频相机或静态相机。图像俘获装置101包括透镜102,透镜102对自动对焦模块104和自动曝光模块106作出响应。传感器108经耦合以经由透镜102接收光且响应于经由透镜102接收的图像而产生图像数据109。自动对焦模块104对传感器108作出响应,且适于自动控制透镜102的对焦。自动曝光模块106也可对传感器108作出响应,且适于控制图像的曝光。在一特定实施例中,传感器108包括多个检测器,所述检测器经配置以使得邻近的检测器检测不同颜色的光。举例来说,可对所接收的光进行滤光以使得每一检测器接收红色、绿色或蓝色入射光。
图像俘获装置101经耦合以将图像数据109提供到图像处理系统130的输入131。图像处理系统130对图像数据109作出响应且包括去马赛克(demosaic)模块110。图像处理系统130还包括伽玛模块112,伽玛模块112用以从接收自去马赛克模块110的数据产生伽玛校正数据。颜色校准模块114经耦合以对所述伽玛校正数据执行校准。色空间转换模块116经耦合以将颜色校准模块114的输出转换为色空间。压缩与存储模块120经耦合以接收色空间转换模块116的输出,且将经压缩的输出数据121存储到图像存储装置140。旋转操作模块122经耦合以使用旋转次序差分编码对经由图像数据109接收的图像执行旋转操作。
图像存储装置140耦合到输出端132且适于接收并存储经压缩的输出数据121。图像存储装置140可包括任何类型的存储媒体,例如,一个或一个以上显示缓冲器、寄存器、快高速缓冲存储器、快闪存储器元件、硬盘、任何其它存储装置或其任何组合。
在操作期间,旋转操作模块122可有效地执行输入图像数据109的旋转。举例来说,旋转操作模块122可执行如将关于图2到图10而描述的图像旋转。旋转操作模块122可对由编码器编码的图像的最小经编码单元(MCU)重新排序且旋转MCU内的图像数据,以使得MCU的重新排序和图像数据的旋转产生经编码图像的旋转版本。在产生经编码图像的旋转版本之后,旋转操作模块122可将经编码图像的旋转版本输出到图像存储装置140。所述MCU可包含根据联合图片专家组(JPEG)标准编码的离散余弦变换(DCT)系数块。
旋转操作模块122可接收包括多个图像块的图像数据。旋转操作模块122经配置以计算第一差分DC值。举例来说,旋转操作模块122可在图像的旋转操作期间将所述图像的第一部分的第一块的第一DC系数值与所述图像的第二部分的第一块的第二DC系数值进行比较,且在完成所述旋转操作之前存储所述第一差分DC值。在一个特定说明性实施例中,图像数据109的第一部分和第二部分可分别包括图像数据109的第一行和第二行。或者,所述第一部分和所述第二部分可包括图像数据109的第一列和第二列,或图像数据109的某一其它层或区段。
参看图2,描绘包括经配置以执行旋转操作的编码器的系统的特定说明性实施例,且大体上将其表示为200。系统200包括耦合到编码器202的传感器210。编码器202耦合到存储器216。编码器202还耦合到缓冲器,例如,行缓冲器204。在一特定实施例中,编码器202为图1的旋转操作模块122的一部分,且经配置以执行转换编码操作以对图像中的块重新排序,从而产生经旋转的图像。
编码器202包括离散余弦变换(DCT)模块212、块旋转模块213、行缓冲器填入模块206、差分DC计算逻辑模块208、熵编码器模块214和定向逻辑模块218。定向逻辑模块218耦合到传感器210。DCT模块212耦合到块旋转模块213。行缓冲器填入模块206耦合到块旋转模块213。差分DC计算逻辑模块208耦合到行缓冲器填入模块206。行缓冲器204耦合到行缓冲器填入模块206,且耦合到差分DC计算逻辑模块208。熵编码器214耦合到差分DC计算逻辑模块208。如先前所提及,待旋转的图像数据的部分可包括图像数据的行、列或其它部分。然而,出于此描述的目的,将使用其中由所述部分来构成图像数据的行的实例。因此,差分DC计算逻辑模块208耦合到行缓冲器填入模块206,而非列缓冲器填入模块或另一缓冲器填入模块。
编码器202经配置以接收来自传感器210的图像数据209,且执行旋转操作来旋转作为图像数据209接收的图像。如先前所描述,在其中图像数据以相同的扫描线次序产生(不管用户在横向定向还是纵向定向上定向相机装置)的数码相机装置中,旋转可能是有利的。可能需要在存储图像之前针对这些定向中的至少一者将所俘获的图像旋转九十(90)度、一百八十(180)度或二百七十(270)度。
在一特定实施例中,编码器202为联合图片专家组(JPEG)编码器。编码器202包括定向逻辑模块218。定向逻辑模块218经配置以确定传感器210的定向且产生旋转信号220。传感器210可对旋转信号220作出响应以调整扫描次序从而产生图像数据209,且旋转信号220还可包括于在编码器202的输入处接收的图像数据209内。
在一特定实施例中,图像数据209包括多个最小经编码单元(MCU)。DCT模块212经配置以产生DCT系数块。MCU可包含经由离散余弦变换而从所述图像的像素块编码的DCT系数块。如将关于图3所论述,所述DCT系数块可包括明度(Y)块和色度(Cr、Cb)块。块旋转模块213经配置以接收所述DCT系数块且产生经块旋转的数据。行缓冲器填入模块206经耦合以使用所述经块旋转的数据而执行行缓冲器填入操作。行缓冲器204经耦合以接收行缓冲器填入模块206的输出。熵编码器模块214经耦合以压缩差分DC计算逻辑模块208的输出。存储器216经配置以存储由熵编码器模块214产生的经熵编码的块,包括具有第一差分DC值的第一块和具有第二差分DC值的第二块。
在一特定实施例中,行缓冲器填入模块206、行缓冲器204和差分DC计算模块208交互操作以存储图像的每一特定列的最近编码的DC系数信息。由差分DC计算模块208检索每一列的最近编码的DC系数信息,且在所述列的新MCU根据传感器210的扫描次序被接收时,由行缓冲器填入模块206更新最近编码的DC系数信息。在图3中描绘所述行缓冲器填入模块、行缓冲器204和差分DC计算逻辑模块208的操作的实例。
通过使用行缓冲器204来存储图像的每一列的前一DC系数值,编码器202可执行针对九十(90)度或二百七十(270)度旋转的旋转次序差分编码。举例来说,虽然扫描次序差分编码操作可使用特定行中的前一块的DC值来确定所述特定行中的下一块的差分值,但针对九十(90)度和二百七十(270)度旋转的旋转次序差分编码操作基于与所述特定块的列相同的列中的前一块来产生差分值。因此,行缓冲器204维持对应于所述图像的每一列的最近编码的块的数据,以实现沿所述图像的每一列的差分编码。
举例来说,在系统200实施于配置为通常由用户在横向定向上握持的相机中但用户将相机旋转九十(90)度以在纵向定向上俘获图像的实施例中,原始图像的图像块250的多个行和多个列可因而旋转九十(90)度。在一特定实施例中,可将用户经由相机的取景器而看到的图像的一部分表示为图像块250。当将相机旋转九十(90)度时,在传感器210处俘获的图像可旋转九十(90)度,以使得原始图像的行形成经旋转的图像的列,如由图像块252说明。在旋转操作期间以旋转次序(即,沿着列而非沿着行)差分编码所述图像之后,可以原始图像次序对所述图像重新排序,如由图像块260说明。
出于说明的目的且在一特定实施例中,在旋转之前的原始图像的图像块250的行1的图像块可为A1A2A3。行2的图像块可为B1B2B3;行3的图像块可为C1C2C3;且行4的图像块可为D1D2D3。虽然为容易解释起见而说明并描述为“图像块”,但在其它实施例中,每一“图像块”可表示图像的一个或一个以上块。举例来说,在使用JPEG编码的实施例中,每一“图像块”可表示包括多个块(例如,明度(Y)块和色度(Cr、Cb)块,如关于图3所论述)的MCU。对于九十(90)度旋转,图像块252的重新排序可导致原始图像的行形成经旋转的图像的列,而原始图像的列形成经旋转的图像的行。举例来说,经旋转的图像的行1的图像块可为A1B1C1D1;经旋转的图像的行2的图像块可为A2B2C2D2;且经旋转的图像的行3的图像块可为A3B3C3D3。在260处说明针对九十(90)度旋转的图像块的所得旋转次序。
在转换编码操作258(如由如先前所描述的编码器202所执行)之后,所述图像块可以原始图像次序重新排序且含有经差分编码的数据(即,行1:A1Adiff12Adiff23;行2:B1Bdiff12Bdiff23;行3:C1Cdiff12Cdiff23;行4:D1Ddiff12Ddiff23)。举例来说,Adiff12对应于第一行的第一块A1的一个或一个以上DC系数值与第二行的第一块A2的一个或一个以上DC系数值之间的差值;Adiff23对应于第二行的第一块A2的一个或一个以上DC系数值与第三行的第一块A3的一个或一个以上DC系数值之间的差值;等等。为进行说明,所述DC系数值可对应于第一行的第一图像块A1内的特定明度和色度块以及第二行的第一图像块A2内的特定明度和色度块的DC系数值,如关于图3所论述。
通过在旋转操作期间以旋转次序(即,沿着列而非沿着行)差分编码所述图像数据,在块重新排序之后无需执行稍后的差分编码操作。因此,可避免在编码和存储到存储器之后进行的解码并检索DC系数的额外处理。在一特定实施例中,由编码器202执行转换编码操作258。在另一特定实施例中,可由单独的转换编码器模块执行转换编码操作258。
参看图3,描绘图2的图像旋转系统的一部分的特定实施例,且大体上将其表示为300。系统300包括块旋转模块213、行缓冲器填入模块206、行缓冲器204和差分DC计算逻辑模块208。说明针对九十(90)度图像旋转的块旋转模块213、行缓冲器204和差分DC计算模块208的内容。
块旋转模块213旋转所接收的MCU的每一块内的像素变换数据。块旋转模块213被描绘为包括对应于图像的第i行和第j列的数据,指示为MCUi,j。在一特定实施例中,MCUi,j包括多个块,包括四个明度(Y)块Y0 302、Y1 304、Y2 306、Y3 308以及两个色度块Cr 310和Cb 312。
行缓冲器204包括所述图像的多个特定列的最近编码的DC系数值。如所说明,行缓冲器204包括所述图像的前一行的前一列、同一列和下一列的MCU(其相对于MCUi, j分别指示为MCUi-1,j-1320、MCUi-1,j 322和MCUi-1,j+1324)的最近编码的DC系数值。举例来说,行缓冲器条目MCUi-1,j-1320包括MCU 320的最后处理的明度块的DC系数值(Yi-1,j-1DC)、最后处理的红色色度块的DC系数值(Cri-1,j-1DC)和最后处理的蓝色色度块的DC系数值(Cbi-1,j-1DC)。行缓冲器条目MCUi-1,j 322包括MCU 322的最后处理的明度块的DC系数值(Yi-1,jDC)、最后处理的红色色度块的DC系数值(Cri-1,jDC)和最后处理的蓝色色度块的DC系数值(Cbi-1,jDC)。行缓冲器条目MCUi-1,j+1324包括MCU324的最后处理的明度块的DC系数值(Yi-1,j+1DC)、最后处理的红色色度块的DC系数值(Cri-1,j+1DC)和最后处理的蓝色色度块的DC系数值(Cbi-1,j+1DC)。
差分DC计算模块208经配置以按旋转次序差分编码每一MCU的DC系数值。举例来说,差分DC计算模块208经配置以存取存储于行缓冲器204处的特定列的前一MCU的DC系数值,以编码所述列的当前MCU的第一差分DC值。如所说明,差分DC计算模块208包括来自块旋转模块213的MCUi,j的经差分编码的版本,其包括明度块340、342、344、346以及色度块348和350。
在操作期间,行缓冲器填入模块206、行缓冲器204和差分DC计算模块208交互操作以存储所述图像的每一特定列的最近编码的DC系数Y、Cr和Cb。由差分DC计算模块208检索每一列的最近编码的DC系数,且在根据图像传感器(未图示)的扫描次序接收所述列的新MCU时,由行缓冲器填入模块206更新最近编码的DC系数。
举例来说,特定MCU的块的块处理次序可基于旋转度数,如图8中所说明。在未旋转图像传感器(例如,零(0)度旋转)时,差分编码MCUi,j的块的块处理次序可为从左到右、从上到下,如下:Y3last->Y0->Y1->Y2->Y3->Y0next;Crlast->Cr->Crnext;Cblast->Cb->Cbnext,其中last和next分别指示沿图像的同一行的前一MCU和下一MCU。
对于九十(90)度旋转,明度和色度(例如,Y、Cr、Cb)的块处理次序可为从上到下、从右到左,如图8中所说明。根据针对九十(90)度旋转的块处理次序来计算所述特定MCU的块中的每一者的差分DC值。举例来说,针对九十(90)度旋转的块处理次序为Y2last->Y1->Y3->Y0->Y2->Y1next。
上文所描述的针对零(0)度旋转和九十(90)度旋转的扫描次序与单独编码的每一明度和色度块有关。在另一实施例中,可以交错方式编码明度和色度块。举例来说,可如下编码两块水平两块垂直(H2V2)MCU中的零(0)度旋转:Y0、Y1、Y2、Y3、Cb、Cr、Y0next、Y1next、Y2next、Y3next、Cbnext、Crnext等。
MCUi,j的明度块340、342、344和346的所得差分DC值如下:对于明度块342,通过从DC系数值Y1减去所述列的前一MCU(例如,前一行)的最后Y块的DC系数值来计算差分DC值。所述列的前一MCU的最后Y块为行缓冲器204的MCUi-1,j 322。对于九十(90)度旋转,明度块342的差分DC值为从DC系数值Y1减去的第(i-1)行、第j列的Y2块的DC系数值,或者Y1diff=Y1DC-Yi-1,jDC。通过从DC系数值Y1减去DC系数值Y3来计算明度块346的差分DC值,或者Y3diff=Y3DC-Y1DC。通过从DC系数值Y0减去DC系数值Y3来计算明度块340的差分DC值,或者Y0diff=Y0DC-Y3DC。通过从DC系数值Y0减去DC系数值Y2来计算明度块344的差分DC值,或者Y2diff=Y2DC-Y0DC。通过从DC系数值Cr减去所述列的前一MCU(例如,前一行)的Cr块的DC系数来计算红色色度(Cr)块348的差分DC值,或者Crdiff=Cr-Cri-1,jDC。通过从DC系数值Cb减去所述列的前一MCU(例如,前一行)的最后Cb块的DC系数来计算蓝色色度(Cb)块350的差分DC值,或者Cbdiff=Cb-Cbi-1,jDC。
在编码之后,行缓冲器填入模块206以来自MCUi,j的DC系数值对行缓冲器204进行填入。如针对九十(90)度旋转所说明,最后处理的块的DC系数值(例如,Y2306的DC系数值、Cr 310的DC系数值和Cb 312的DC系数值)可替代MCUi-1,j 322的值。因此,在处理图像时可更新行缓冲器204以实现旋转次序差分编码。
通过在旋转操作期间以旋转次序(即,沿着列而非沿着行)差分编码所述图像数据,在块重新排序之后无需执行稍后的差分编码操作。因此,可避免在编码和存储到存储器之后进行的解码并检索DC系数的额外处理。
虽然上文描述针对九十(90)度旋转的实例,但在旋转期间以旋转次序差分编码图像数据还可用于一百八十(180)度旋转、二百七十(270)度旋转以及图像的垂直或水平翻转(如图8和图9中所展示)。
参看图4,描绘图像旋转系统的特定实施例,且大体上将其表示为400。系统400包括:图像俘获装置402,其耦合到JPEG编码器408;存储器410,其耦合到JPEG编码器408;以及旋转转换编码器414,其耦合到存储器410。图像俘获装置402包括经配置以俘获图像的图像传感器404。图像俘获装置402的读出406提供到JPEG编码器408。
JPEG编码器408通过插入用以分离可独立解码的经压缩数据段的代码来将所俘获图像的经旋转的区域编码为可独立解码的经压缩数据段或最小经编码单元(MCU)。对于经JPEG编码的图像数据,这些代码为重新开始(RST)标记。JPEG图像含有标记序列,所述标记中的每一者以0xFF字节开始,之后是指示其为何种标记的字节。所述RST标记可包括可识别位型样,例如,0xFFDn。在RST标记处,使块到块预测因子变数复位,且将位流同步到字节边界。
可无序地存储经压缩旋转的图像数据,且接着重新排序过程可将所述可独立解码的段排序成正确次序,以使得传统解码器可正确地重建构经旋转的图像数据且输出经正确排序的经压缩的图像数据。如图4中所展示,JPEG编码器408应用RST标记间隔1。通过将RST值设定为1,经编码的JPEG文件412中的每一MCU为可单独解码的单元。经编码的JPEG文件412存储于存储器410中。
在操作期间,JPEG编码器408旋转由JPEG编码器408产生的MCU,但不改变MCU次序。JPEG编码器408的输出作为JPEG文件412存储于存储器410处。可对JPEG文件412进行熵编码。旋转转换编码器414将JPEG文件412的MCU重新排序为旋转次序,且将结果作为经旋转图像的JPEG文件416存储于存储器410中。
在一特定实施例中,JPEG编码器408和旋转转换编码器414分别旋转MCU内的图像数据和MCU的次序。MCU内的图像数据的旋转和MCU的重新排序产生经编码图像的旋转版本。经编码图像的旋转版本可作为经旋转图像的JPEG文件416存储于存储器410中。旋转转换编码器414可从存储器410提取经编码的JPEG文件412,且所述经编码图像可经由熵编码技术来编码。
因为RST标记在具有MCU旋转的所得JPEG位流中为可识别的,所以旋转转换编码器414可个别地定位每一MCU。可接着对每一MCU编索引,且可以重新排序方式基于所述编索引来提取所述MCU,以使得所述MCU以相对于原始经编码图像的经旋转次序定位。
参看图5,描绘图像旋转系统的另一特定实施例,且大体上将其表示为500。系统500包括编码器,例如,耦合到转换编码器509的JPEG编码器508。转换编码器509包括耦合到重新排序模块514的索引模块512。在使用JPEG编码器的特定实施例中,索引模块512使用RST标记来对从JPEG编码器508接收的JPEG位流的MCU编索引,且重新排序模块514以旋转次序从存储器(未图示)提取MCU位流。
JPEG编码器508接收图像数据501。由JPEG编码器508和转换编码器509进行的MCU的重新排序和MCU内图像数据的旋转产生编码于图像数据501中的图像的旋转版本,且可将所述旋转版本输出到存储器。
因为RST标记在具有MCU旋转的所得JPEG位流515中为可识别的,所以转换编码器509可个别地定位每一MCU。可接着对每一MCU编索引,且可以重新排序方式基于所述编索引来提取所述MCU,以使得所述MCU以相对于原始经编码图像的经旋转次序定位。因此,可根据MCU将在输出数据流中出现的次序而从经压缩的图像的不同部分抽取MCU,而非根据其在输入数据流中出现的次序简单地依序处理所述MCU。以此方式,可在不解码DCT系数中的一些或全部的情况下旋转包括经由DCT技术而编码的MCU的经编码图像。
举例来说,在操作期间,JPEG编码器508接收图像数据501。JPEG编码器508可产生图像数据501的JPEG位流,其中每一MCU被旋转。在一特定实施例中,经旋转的MCU保持呈图像数据501的原始次序。将具有经旋转的MCU的图像数据示意性地说明为经旋转的图像数据510,且说明为具有MCU旋转的JPEG位流515,所述MCU旋转表示2块乘3块(2×3)图像519的每一块的九十度旋转。JPEG编码器508可产生呈所接收的次序的JPEG位流,其中在所述位流的编索引和重新排序期间,RST标记跟随在待使用的每一MCU之后。转换编码器509接收来自JPEG编码器508的JPEG位流,且在索引模块512处编索引以及在重新排序模块514处重新排序之后,所述JPEG位流经排序以使得由所述JPEG编码器执行的旋转次序可由常规JPEG解码器正确地解码。在516处说明性地展示且在517处示意性地展示经旋转图像的JPEG位流。
虽然上文将编索引和重新排序描述为在转换编码器509内发生,但在另一实施例中,编索引、重新排序或编索引和重新排序两者可在编码器508内发生。
参看图6,描绘图像旋转系统的另一特定实施例,且大体上将其表示为600。系统600包括耦合到转换编码器609的JPEG编码器608。转换编码器609包括耦合到重新排序模块614的索引模块612。重新排序模块614耦合到解码模块611。在一特定实施例中,解码模块611为霍夫曼(Huffman)解码模块。解码模块611耦合到差分编码模块613。
JPEG编码器608接收图像数据601。由JPEG编码器608和转换编码器609进行的MCU的重新排序和MCU内图像数据的旋转产生编码于图像数据601中的图像的旋转版本,且可将所述旋转版本输出到存储器。在一特定实施例中,转换编码器609以读出次序检索经编码图像块。索引模块612使用RST标记来对JPEG位流的MCU编索引,重新排序模块614以旋转次序提取MCU位流,解码模块611提取DC系数,且差分编码模块613解码所提取的DC系数并应用差分编码。
举例来说,转换编码器609可接收可能已由JPEG编码器608编码的图像601的JPEG位流。索引模块612使用RST标记来对JPEG位流的MCU编索引。接下来,重新排序模块614以旋转次序提取所述MCU位流。此举对所述MCU重新排序。解码模块611对所述MCU中的每一者进行霍夫曼解码和反锯齿形扫描。霍夫曼解码和反锯齿形扫描的过程可称为熵解码。接下来,差分编码模块613可仅解码每一MCU的DC系数,且将DC差分解码应用于每一MCU。DC差分解码可移除可能已应用于所述DCT系数中的DC系数的任何差分编码。此举可能需要每一MCU的DC系数的至少部分解码,但在此状况下,AC系数保持在DCT域中经编码。
在一特定实施例中,可通过(例如,在RST标记处)盖写存储于重新开始字段中的数据来辅助此解码。如在具有MCU旋转的JPEG位流616的分解部分630中所说明,在每一MCU(例如,MCU4632)与下一字节边界644之间插入填补位634,其中RST标记636对准到字节边界644。填补位634用以将RST标记对准到字节边界。MCU4632可含有DC系数640作为在填补位634之前的最后数据元素。JPEG编码器608可盖写RST标记636的数据的一部分(其被说明为值N 642)来表示填补位634的数目。在一特定实施例中,JPEG编码器608可盖写预设计数器值,例如,根据特定JPEG实施方案的RST标记的四位部分。值N 642可指示最后MCU 632的位流的末尾与RST标记636之间的填补位的数目。编码于RST标记636中的填补位的数目使前一MCU位流的末尾能够较容易被识别,以使得可在移除RST标记636和填补位634之后串接依序的MCU632和648。另外,可紧靠RST标记636插入用于MCU 648中的最后块的明度(Y)和色度(Cb、Cr)的DC预测因子值646。DC预测因子值646可用以跨越MCU边界应用差分编码,以使得可在无需解码位流的部分的情况下移除RST标记。
可根据指定旋转来对MCU重新排序,以使得所述MCU以相对于原始经编码图像的经旋转次序定位。为促进MCU的此重新排序,JPEG编码器608可利用编索引方案。举例来说,根据JPEG标准,可将与经编码图像相关联的RST标记值设定为1。所述RST标记可指示图像数据可重新开始且因此可被独立地编码或解码的位置。此情形可导致每一经DCT编码的MCU形成JPEG图像的可独立解码单元。
因为RST标记在具有MCU旋转的所得JPEG位流615中为可识别的,所以转换编码器609可个别地定位每一MCU。可接着对每一MCU编索引,且可基于所述编索引以重新排序方式来提取所述MCU,以使得所述MCU以相对于原始经编码图像的经旋转次序定位。因此,根据MCU将在输出数据流中出现的次序而从经压缩的图像的不同部分抽取MCU,而非根据其在输入数据流中出现的次序简单地依序处理所述MCU。以此方式,可在不解码DCT系数中的一些或全部的情况下旋转包括经由DCT技术而编码的MCU的经编码图像。
举例来说,在操作期间,JPEG编码器608接收图像数据601。JPEG编码器608可产生图像数据601的JPEG位流,其中每一MCU被旋转。在一特定实施例中,经旋转的MCU保持呈图像数据601的原始次序。将具有经旋转的MCU的图像数据说明为经旋转的图像块610,且说明为具有MCU旋转的JPEG位流615。JPEG编码器608可产生呈所接收的次序的JPEG位流,其中在所述位流的编索引和重新排序期间,RST标记跟随在待使用的每一MCU之后。转换编码器609接收来自JPEG编码器608的JPEG位流,且在索引模块612处编索引、在重新排序模块614处重新排序、在解码器模块611处解码以及根据旋转次序在差分编码模块613处进行差分编码之后,所述JPEG位流经排序以使得由所述JPEG编码器执行的旋转次序可由常规JPEG解码器解码。
在一特定实施例中,由转换编码器609将RST标记从经旋转的图像的JPEG位流617移除。转换编码器609执行霍夫曼解码以抽取用于差分编码的DC系数,以移除RST标记。在616处说明性地展示经旋转的图像的JPEG位流。
在先前描述的特定说明性实施例中,上文将编索引、重新排序、解码和差分编码描述为在转换编码器609内发生。然而,在另一实施例中,每一操作(个别地或以其任何组合方式)可在编码器608内发生。
参看图7,描绘图像旋转系统的另一特定实施例,且大体上将其表示为700。系统700包括耦合到转换编码器709的JPEG编码器708。转换编码器709包括耦合到重新排序模块714的索引模块712。在一特定实施例中,索引模块712使用RST标记来对JPEG位流的MCU编索引,且重新排序模块714以旋转次序提取MCU位流。
JPEG编码器708接收图像数据701。由JPEG编码器708和转换编码器709进行的MCU的重新排序和MCU内图像数据的旋转产生编码于图像数据701中的图像的经旋转版本。
因为RST标记在具有MCU旋转的所得JPEG位流715中为可识别的,所以转换编码器709可个别地定位每一MCU。可接着对每一MCU编索引,且可以重新排序方式基于所述编索引来提取所述MCU,以使得所述MCU以相对于原始经编码图像的经旋转次序定位。
举例来说,在操作期间,JPEG编码器708接收图像数据701。JPEG编码器708可产生图像数据701的JPEG位流,其中每一MCU被旋转且以旋转次序进行差分编码(例如关于图2所描述)。在一特定实施例中,经旋转的MCU保持呈图像数据701的原始次序。将具有经旋转的MCU的图像数据示意性地说明为经旋转的图像块710,且说明为具有MCU旋转的JPEG位流715。JPEG编码器708可产生呈所接收的次序的JPEG位流,其中在所述位流的编索引和重新排序期间,RST标记跟随在待使用的每一MCU之后。转换编码器709接收来自JPEG编码器708的JPEG位流,且在编索引模块712处编索引和在重新排序模块714处重新排序之后,所述JPEG位流经排序以使得由JPEG编码器708以旋转次序执行的差分编码可由常规JPEG解码器解码。因此,保留表示图像的每一行的开始的RST标记,且从经旋转的图像的JPEG位流717移除剩余RST标记。在716处说明性地展示经旋转的图像的JPEG位流。
虽然上文将编索引和重新排序描述为在转换编码器内发生,但在另一实施例中,编索引、重新排序或编索引和重新排序两者可在编码器708内发生。
参看图8,描绘说明用于各种度数的图像旋转的块处理次序和块扫描次序的特定实施例,且大体上将其表示为800。举例来说,在具有处于0度旋转的二乘二(2×2)明度块的两块水平两块垂直(H2V2)MCU中的明度(Y)数据的块处理次序呈光栅扫描(rasterscan)次序:左上、右上、左下、右下。对于具有处于0度旋转的二乘一(2×1)明度块的两块水平且一块垂直(H2V1)MCU,块处理次序也呈左、右的光栅扫描次序。针对零(0)度旋转来描绘用于明度和色度(Cr、Cb)块的一般配置的块扫描次序。
在具有处于九十(90)度旋转的2×2明度块的H2V2MCU中的Y数据的块处理次序呈光栅扫描次序:右上、右下、左上、左下。对于具有处于90度旋转的2×1明度块的H2V1MCU,块处理次序也呈上、下的光栅扫描次序。针对九十(90)度旋转来描绘用于明度和色度(Cr、Cb)块的一般配置的块扫描次序。
在具有处于一百八十(180)度旋转的2×2明度块的H2V2MCU中的Y数据的块处理次序呈光栅扫描次序:右下、左下、右上、左上。对于具有处于180度旋转的2×1明度块的H2V1MCU,块处理次序也呈右、左的光栅扫描次序。针对一百八十(180)度旋转来描绘用于明度和色度(Cr、Cb)块的一般配置的块扫描次序。
在具有处于二百七十(270)度旋转的2×2明度块的H2V2MCU中的Y数据的块处理次序呈光栅扫描次序:左下、左上、右下、右上。对于具有处于270度旋转的2×1明度块的H2V1MCU,块处理次序也呈下、上的光栅扫描次序。针对二百七十(270)度旋转来描绘用于明度和色度(Cr、Cb)块的一般配置的块扫描次序。
参看图9,描绘说明用于图像的水平和垂直转变的块处理次序和块扫描次序的特定实施例,且大体上将其表示为900。对于未经旋转的图像,用于每一MCU的块处理次序和块扫描次序与针对图8中所描绘的零(0)度旋转而说明的次序匹配。
在具有处于垂直转变或翻转的2×2明度块的H2V2MCU中的Y数据的块处理次序呈光栅扫描次序:左下、右下、左上、右上。对于具有处于垂直转变的2×1明度块的H2V1MCU,块处理次序也呈左、右的光栅扫描次序。
在具有处于水平转变或翻转的2×2明度块的H2V2MCU中的Y数据的块处理次序呈光栅扫描次序:右上、左上、右下、左下。对于具有处于垂直转变的2×1明度块的H2V1MCU,块处理次序也呈右、左的光栅扫描次序。
参看图10,描绘旋转图像的方法的第一特定说明性实施例的流程图,且大体上将其表示为1000。大体来说,可由图1到图7中所描绘的系统中的一者或一者以上、由其它图像处理系统或装置或其任何组合来执行图像旋转方法1000。在1002处,接收对应于图像的图像数据。所述图像数据包括多个图像块。在1004处,在所述图像的旋转操作期间,通过将所述图像的第一行的第一块的第一DC系数值与所述图像的第二行的第一块的第二DC系数值进行比较来计算第一差分DC值。在一特定实施例中,可由图2的差分DC计算逻辑模块208来计算所述第一差分DC值。在1006处,在完成所述旋转操作之前,将所述第一差分DC值存储于存储器(例如,图1的图像存储装置140)中。举例来说,在由编码器202的块旋转模块213继续处理图像数据209的其它块时,可将经编码的MCU存储于图2的存储器216中。
通过在旋转操作期间基于比较不同行中的块的DC系数值(即,以旋转次序而非扫描次序)来计算第一差分DC值,编码器可产生图像块的输出,在已以旋转次序布置所述图像块之后,所述图像块经差分编码以可由解码器读取。举例来说,对于90度旋转,图像块的重新排序可导致原始图像的行形成经旋转图像的列,而原始图像的列形成经旋转图像的行。通过在旋转操作期间以旋转次序(即,沿着列而非沿着行)差分编码图像数据,在块重新排序之后无需执行稍后的差分编码操作。因此,可避免在编码和存储到存储器(例如,通过转换编码器)之后进行的解码并检索DC系数的额外处理。
参看图11,描绘旋转图像的方法的第二特定说明性实施例的流程图,且大体上将其表示为1100。大体来说,可由图1到图7中所描绘的系统中的一者或一者以上、由其它图像处理系统或装置或其任何组合来执行图像旋转方法1100。举例来说,具有相机的便携式电子装置可包括计算机可读媒体(例如,存储器),所述计算机可读媒体存储可由计算机(例如,所述便携式电子装置的处理器)执行的指令代码以执行旋转图像的方法1100。
在1102处,可在硬件联合图片专家组(JPEG)编码器的输入处接收旋转信号。在一特定实施例中,所述旋转信号可为图2的旋转信号220。在一特定实施例中,图像俘获装置的图像传感器可对所述旋转信号作出响应。可基于旋转信号220将扫描次序信号从所述硬件JPEG编码器发送到图像俘获装置,以在所述图像俘获装置处修改扫描次序。在1104处,接收对应于图像的图像数据。所述图像数据包括多个图像块。可接收所述图像数据作为图像的第一行,之后是所述图像的第二行。在1106处,可将第一行的第一块的第一DC系数值存储于行缓冲器中。在特定实施例中,所述行缓冲器可为图2的行缓冲器204。在1108处,在所述图像的旋转操作期间,通过将所述图像的第一行的第一块的第一DC系数值与所述图像的第二行的第一块的第二DC系数值进行比较来计算第一差分DC值。在1110处,可将第二行的第一块的第二DC系数值存储于行缓冲器中。在1112处,在完成所述旋转操作之前,将所述第一差分DC值存储于存储器(例如,图1的图像存储装置140或图2的存储器216)中。
在1114处,可存储所述图像的第一行的第二块的第三DC系数值。可通过将所述图像的第二行的第二块的第四DC系数值与所述图像的第一行的第二块的第三DC系数值进行比较来计算第二差分DC值。可将所述第二差分DC值存储于所述存储器(例如,图1的图像存储装置140或图2的存储器216)中。
在1116处,可接收包括RST标记和DC系数的经编码的JPEG数据,且可盖写所述RST标记中的数据以指示最后MCU的位流的末尾与所述RST标记之间的填补位的数目。填补位的数目允许前一MCU位流的末尾较容易被识别,此举允许紧靠RST标记针对MCU中的最后块插入明度(Y)和色度(Cb、Cr)的DC预测因子值。DC预测因子值可用以跨越MCU边界应用差分编码,以使得可在无需解码位流的部分的情况下移除RST标记。在1118处,在转换编码器处,可读取RST标记中的数据,以在不解码MCU的JPEG数据流的情况下读取填补位的数目、移除RST标记且读取DC系数。因此在一些实施例中,转换编码器可较有效地以差分DC值取代所存储的JPEG位流中的DC系数。
参看图12,描绘包括使用旋转次序差分编码的旋转操作模块的无线通信装置的特定说明性实施例,且大体上将其表示为1200。装置1200包括处理器1210,例如,通用处理器、数字信号处理器(DSP)或图像处理器,处理器1210耦合到存储器1232且还耦合到使用旋转次序差分编码的旋转操作模块1264。在一说明性实例中,旋转操作模块1264可通过使用存储于存储器1232中且可由处理器1210执行的程序指令而执行。在其它实施例中,旋转操作模块1264可以硬件、固件或其任何组合实施,且可根据图1到图11中所描绘的实施例中的一者或一者以上操作。
举例来说,用以执行旋转操作的硬件和/或固件可完全或部分地由任何可编程逻辑或经硬编码的逻辑(例如,现场可编程门阵列(FPGA)、晶体管-晶体管-逻辑(TTL)或专用集成电路(ASIC))实施。
相机1270经由相机接口1268耦合到处理器1210。相机1270可包括静态相机、视频相机或其任何组合。相机接口1268适于控制相机1270的操作,包括将所俘获并处理的图像数据1280存储于存储器1232处。
图12还展示显示控制器1226,其耦合到处理器1210和显示器1228。编码器/解码器(CODEC)1234也可耦合到处理器1210。扬声器1236和麦克风1238可耦合到CODEC1234。
图12还指示:无线接口1240可耦合到处理器1210和无线天线1242。在一特定实施例中,处理器1210、显示控制器1226、存储器1232、CODEC 1234、无线接口1240、相机接口1268和旋转操作模块1264包括于系统级封装(system-in-package)或芯片上系统(system-on-chip)装置1222中。在一特定实施例中,输入装置1230和电源1244耦合到芯片上系统装置1222。此外,在一特定实施例中,如图12中所说明,显示器1228、输入装置1230、扬声器1236、麦克风1238、无线天线1242、相机1270和电源1244在芯片上系统装置1222外部。然而,显示器1228、输入装置1230、扬声器1236、麦克风1238、无线天线1242、相机1270和电源1244中的每一者可耦合到芯片上系统装置1222的组件,例如接口或控制器。
参看图13,描绘包括使用旋转次序差分编码的旋转操作模块的系统的特定说明性实施例的框图,且大体上将其表示为1300。系统1300包括图像传感器装置1322,图像传感器装置1322耦合到透镜1368且还耦合到便携式多媒体装置的应用处理器芯片组1370。图像传感器装置1322包括旋转操作模块1364,旋转操作模块1364在将图像数据提供到应用处理器芯片组1370之前(例如)通过实施图1、图2、图7或图13的系统中的一者或一者以上、通过根据图4到图6或图8到图11的实施例中的任一者操作或其任何组合而使用旋转次序差分编码来旋转图像数据。
旋转操作模块1364经耦合以(例如)经由模/数转换器1326而接收来自图像阵列1366的图像数据,模/数转换器1326经耦合以接收图像阵列1366的输出且将所述图像数据提供到旋转操作模块1364。
图像传感器装置1322还可包括处理器1310。在一特定实施例中,处理器1310经配置以使用旋转次序差分编码功能性来实施旋转操作。在另一实施例中,旋转操作模块1364实施为单独的图像处理电路。
处理器1310还可经配置以执行额外的图像处理操作,例如,由图1的模块112到120执行的操作中的一者或一者以上。处理器1310可将经处理的图像数据提供到应用处理器芯片组1370以供进一步处理、发射、存储、显示或其任何组合。
技术人员将进一步了解,可将结合本文中所揭示的实施例而描述的各种说明性逻辑块、配置、模块、电路和算法步骤实施为电子硬件、计算机软件或两者的组合。上文已大体在功能性方面描述各种说明性组件、块、配置、模块、电路和步骤。在一些实施例中将此功能性实施为硬件还是在其它实施例中将其实施为软件取决于特定应用和强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为导致偏离本发明的范围。
结合本文中所揭示的实施例而描述的方法或算法的步骤可直接以硬件、由处理器执行的软件模块或所述两者的组合来体现。软件模块可驻留于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸盘、紧密光盘只读存储器(CD-ROM),或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,以使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留于专用集成电路(ASIC)中。ASIC可驻留于计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件而驻留于计算装置或用户终端中。
提供所揭示的实施例的先前描述以使得所属领域的任何技术人员能够制造或使用所揭示的实施例。所属领域的技术人员将容易了解对这些实施例的各种修改,且在不脱离本发明的范围的情况下,本文中所定义的原理可应用于其它实施例。因此,本发明并不希望限于本文中所展示的实施例,而是应被赋予与如所附权利要求书界定的原理和新颖特征一致的可能的最广范围。
Claims (18)
1.一种在编码图像时旋转所述图像的方法,其包含:
接收表示图像的图像数据,所述图像数据包括多个图像块;
旋转所述图像数据;
在所述旋转期间,通过将同所述图像的第一列的第一块相对应的块的第一DC系数值与同所述图像的第二列的第一块相对应的块的第二DC系数值进行比较来计算第一差分DC值;
在完成所述旋转之前将所述第一差分DC值存储于存储器中;
产生所述图像数据的位流,其中,多个最小经编码单元MCU中的每一MCU都是经旋转的;以及
通过在每一经旋转MCU后在所述位流插入代码而将经旋转的MCU编码为可独立解码的经压缩数据段,其中,所述代码使得可个别定位每一MCU,为每一MCU编索引并以MCU将在输出数据流中出现的次序从所述位流中提取每一MCU。
2.根据权利要求1所述的方法,其中在所述第一列之后立即接收所述第二列。
3.根据权利要求1所述的方法,其进一步包含将所述第一DC系数值存储于缓冲器中。
4.根据权利要求3所述的方法,其中所述第一DC系数值对应于第一最小经编码单元MCU的明度块,且所述方法进一步包含将对应于所述第一MCU的第一红色色度DC系数值和第一蓝色色度DC系数值存储于所述缓冲器处。
5.根据权利要求3所述的方法,其进一步包含将所述第二DC系数值存储于所述缓冲器中。
6.根据权利要求1所述的方法,其进一步包含:
存储所述图像的所述第一列的第二块的第三DC系数值;
将所述图像的所述第二列的第二块的第四DC系数值与所述图像的所述第一列的所述第二块的所述第三DC系数值进行比较以计算第二差分DC值;以及
将所述第二差分DC值存储于所述存储器中。
7.根据权利要求1所述的方法,其中所述多个图像块中的每一块为所述图像的最小经编码单元MCU内的多个块中的一者。
8.根据权利要求7所述的方法,其中所述MCU包括四个明度块和两个色度块。
9.根据权利要求1所述的方法,其进一步包含:
在硬件编码器的输入处接收旋转信号;以及
基于所述旋转信号将扫描次序信号从所述硬件编码器发送到图像俘获装置以在所述图像俘获装置处修改扫描次序。
10.根据权利要求9所述的方法,其中所述硬件编码器包含硬件联合图片专家组JPEG编码器。
11.根据权利要求9所述的方法,其中所述旋转信号指示图像传感器的定向。
12.根据权利要求1所述的方法,其中将所述第一差分DC值作为经熵编码的值存储。
13.一种用于在编码图像时旋转所述图像的设备,其包含:
块旋转模块,其经配置以接收表示图像的图像数据且对所述图像数据执行旋转操作,所述图像数据包括多个图像块;
差分DC计算模块,其耦合到所述块旋转模块,且经配置以在所述旋转操作期间通过将同所述图像的第一列的第一块相对应的块的第一DC系数值与同所述图像的第二列的第一块相对应的块的第二DC系数值进行比较来计算差分DC值;以及
编码器,用于:
产生所述图像数据的位流,其中,多个最小经编码单元MCU中的每一MCU都是经旋转的;
通过在每一经旋转MCU后在所述位流插入代码而将经旋转的MCU编码为可独立解码的经压缩数据段,其中,所述代码使得可个别定位每一MCU,为每一MCU编索引并以MCU将在输出数据流中出现的次序从所述位流中提取每一MCU。
14.根据权利要求13所述的设备,其进一步包含缓冲器,所述缓冲器耦合到所述差分DC计算模块,其中所述第一DC系数值存储于所述缓冲器中且所述第二DC系数值存储于所述缓冲器中。
15.根据权利要求14所述的设备,其中所述第一DC系数值对应于第一最小经编码单元MCU的明度块,且所述设备进一步包含将对应于所述第一MCU的第一红色色度DC系数值和第一蓝色色度DC系数值存储于所述缓冲器处。
16.一种用于在编码图像时旋转所述图像的设备,其包含:
用于接收表示图像的图像数据的装置,所述图像数据包括图像块;
用于对所述图像数据执行旋转操作的装置;
用于在所述旋转操作期间通过将同所述图像的第一列的第一块相对应的块的第一DC系数值与同所述图像的第二列的第一块相对应的块的第二DC系数值进行比较来计算第一差分DC值的装置,其中所述用于计算第一差分DC值的装置耦合到所述用于接收图像数据的装置;以及
用于产生所述图像数据的位流的装置,其中,多个最小经编码单元MCU中的每一MCU都是经旋转的;以及
用于通过在每一经旋转MCU后在所述位流插入代码而将经旋转的MCU编码为可独立解码的经压缩数据段的装置,其中,所述代码使得可个别定位每一MCU,为每一MCU编索引并以MCU将在输出数据流中出现的次序从所述位流中提取每一MCU。
17.根据权利要求16所述的设备,其进一步包含:
用于编码所接收的图像数据的装置,其中所述图像数据是与对将进行旋转的所述图像进行的光栅扫描相对应的,所述图像具有图像块的多个行和多个列;
用于编码图像块以表示经编码图像块中的经旋转图像数据的装置;
用于基于所述图像的所述旋转以读出次序确定所述经编码图像块的读出位置的装置;
用于根据所述读出位置产生所述经编码图像块的差分DC值的装置;以及
用于存储所述经编码图像块的装置。
18.根据权利要求17所述的设备,其进一步包含用于以所述读出次序检索所述经编码图像块的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/416,850 | 2009-04-01 | ||
US12/416,850 US20100254617A1 (en) | 2009-04-01 | 2009-04-01 | Apparatus and method to rotate an image |
PCT/US2010/029366 WO2010114884A1 (en) | 2009-04-01 | 2010-03-31 | Apparatus and method to rotate an image |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102369554A CN102369554A (zh) | 2012-03-07 |
CN102369554B true CN102369554B (zh) | 2015-01-14 |
Family
ID=42225035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080014761.2A Expired - Fee Related CN102369554B (zh) | 2009-04-01 | 2010-03-31 | 用以旋转图像的设备和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20100254617A1 (zh) |
EP (1) | EP2415014A1 (zh) |
JP (1) | JP5502988B2 (zh) |
KR (1) | KR101336127B1 (zh) |
CN (1) | CN102369554B (zh) |
TW (1) | TW201119370A (zh) |
WO (1) | WO2010114884A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8934729B2 (en) | 2006-09-30 | 2015-01-13 | Texas Instruments Incorporated | Method and apparatus for frame coding in vertical raster scan order for HEVC |
GB2475721B (en) * | 2009-11-27 | 2015-03-11 | British Broadcasting Corp | Picture encoding and decoding |
JP5649338B2 (ja) * | 2010-06-16 | 2015-01-07 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
US10165276B2 (en) | 2010-09-30 | 2018-12-25 | Texas Instruments Incorporated | Method and apparatus for frame coding in vertical raster scan order for HEVC |
US20120230594A1 (en) * | 2011-03-10 | 2012-09-13 | Jill Boyce | Adaptive picture rotation |
AU2012226283B2 (en) | 2011-03-10 | 2016-09-15 | Vidyo, Inc. | Render-orientation information in video bitstream |
US8947551B2 (en) * | 2011-07-29 | 2015-02-03 | Aptina Imaging Corporation | Method and apparatus for frame rotation in the JPEG compressed domain |
JP2013046281A (ja) * | 2011-08-25 | 2013-03-04 | Sony Corp | 画像符号化装置と画像符号化方法およびプログラム |
US9299166B2 (en) * | 2012-12-13 | 2016-03-29 | Qualcomm Incorporated | Image compression method and apparatus for bandwidth saving |
US9547083B2 (en) * | 2014-09-12 | 2017-01-17 | Qualcomm Incorporated | Determining whether a target object was present during a scanning operation |
CN104732486B (zh) * | 2015-03-23 | 2017-10-03 | 海信集团有限公司 | 一种图片的显示方法及装置 |
US10123031B2 (en) * | 2015-07-02 | 2018-11-06 | Cisco Technology, Inc. | MPEG-2 video watermarking technique |
US20170372452A1 (en) * | 2016-06-22 | 2017-12-28 | Qualcomm Incorporated | Image rotation method and apparatus |
US10284838B2 (en) * | 2016-08-19 | 2019-05-07 | Titan Medical Inc. | Method and apparatus for transmitting images captured by first and second image sensors |
KR20190087977A (ko) * | 2017-12-25 | 2019-07-25 | 저텍 테크놀로지 컴퍼니 리미티드 | 레이저 빔 스캐닝 표시 장치 및 증강 현실 안경 |
CN113326818B (zh) * | 2021-08-02 | 2021-09-24 | 湖南高至科技有限公司 | 视频编码的海量人脸识别方法、系统、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751865A (en) * | 1996-09-26 | 1998-05-12 | Xerox Corporation | Method and apparatus for image rotation with reduced memory using JPEG compression |
US6148149A (en) * | 1998-05-26 | 2000-11-14 | Microsoft Corporation | Automatic image rotation in digital cameras |
US7146053B1 (en) * | 2000-05-10 | 2006-12-05 | International Business Machines Corporation | Reordering of compressed data |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327248A (en) * | 1992-03-23 | 1994-07-05 | Ricoh Company, Ltd. | Compressed image virtual editing system |
US6298166B1 (en) * | 1998-03-30 | 2001-10-02 | Seiko Epson Corporation | Image transformations in the compressed domain |
US6941019B1 (en) * | 2000-05-10 | 2005-09-06 | International Business Machines Corporation | Reentry into compressed data |
KR100357437B1 (ko) * | 2000-12-27 | 2002-10-19 | 한국전자통신연구원 | 네트워크상에서의 영상 부분 전송 장치 및 그 방법 |
EP1685537B1 (en) * | 2003-11-18 | 2015-04-01 | Mobile Imaging in Sweden AB | Method for processing a digital image and image representation format |
JP2005223538A (ja) * | 2004-02-04 | 2005-08-18 | Toshiba Corp | 画像処理回路 |
US7643694B2 (en) * | 2004-12-31 | 2010-01-05 | Zoran Corporation | Method and apparatus for processing a compressed image in an order other than the order in which it was compressed |
US20060228030A1 (en) * | 2005-04-08 | 2006-10-12 | Hadady Craig E | Method and system for image compression for use with scanners |
JP2006325186A (ja) * | 2005-04-20 | 2006-11-30 | Seiko Epson Corp | 画像処理装置 |
US7742644B2 (en) * | 2006-01-18 | 2010-06-22 | Qualcomm Incorporated | Processing of images in imaging systems |
JP4666261B2 (ja) * | 2006-06-01 | 2011-04-06 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
US8098959B2 (en) * | 2008-10-29 | 2012-01-17 | Aptina Imaging Corporation | Method and system for frame rotation within a JPEG compressed pipeline |
-
2009
- 2009-04-01 US US12/416,850 patent/US20100254617A1/en not_active Abandoned
-
2010
- 2010-03-31 WO PCT/US2010/029366 patent/WO2010114884A1/en active Application Filing
- 2010-03-31 EP EP10712639A patent/EP2415014A1/en not_active Withdrawn
- 2010-03-31 KR KR1020117025973A patent/KR101336127B1/ko active IP Right Grant
- 2010-03-31 JP JP2012503653A patent/JP5502988B2/ja not_active Expired - Fee Related
- 2010-03-31 CN CN201080014761.2A patent/CN102369554B/zh not_active Expired - Fee Related
- 2010-04-01 TW TW099110162A patent/TW201119370A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751865A (en) * | 1996-09-26 | 1998-05-12 | Xerox Corporation | Method and apparatus for image rotation with reduced memory using JPEG compression |
US6148149A (en) * | 1998-05-26 | 2000-11-14 | Microsoft Corporation | Automatic image rotation in digital cameras |
US7146053B1 (en) * | 2000-05-10 | 2006-12-05 | International Business Machines Corporation | Reordering of compressed data |
Also Published As
Publication number | Publication date |
---|---|
EP2415014A1 (en) | 2012-02-08 |
KR101336127B1 (ko) | 2013-12-04 |
CN102369554A (zh) | 2012-03-07 |
KR20120016078A (ko) | 2012-02-22 |
US20100254617A1 (en) | 2010-10-07 |
JP5502988B2 (ja) | 2014-05-28 |
WO2010114884A1 (en) | 2010-10-07 |
TW201119370A (en) | 2011-06-01 |
JP2012523046A (ja) | 2012-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102369554B (zh) | 用以旋转图像的设备和方法 | |
US8634663B2 (en) | DVC as generic file format for plenoptic camera | |
US8098941B2 (en) | Method and apparatus for parallelization of image compression encoders | |
US7742644B2 (en) | Processing of images in imaging systems | |
US8098959B2 (en) | Method and system for frame rotation within a JPEG compressed pipeline | |
CN101990095B (zh) | 压缩文件生成方法和设备、相关的相机模块和终端 | |
US11818369B2 (en) | Image sensor module, image processing system, and image compression method | |
JP2008543203A (ja) | 圧縮された未加工の画像を使用する画像プロセッサのための一時的画像バッファ | |
US7848582B2 (en) | Image processing method, image processing apparatus, program of image processing method and recording medium recording program of image processing method | |
CN112422985B (zh) | 适用于jpeg的多核并行硬件编码方法和装置 | |
US9066111B2 (en) | Image encoder and method for encoding images | |
US20130051689A1 (en) | Image encoding apparatus, image encoding method and program | |
US7684650B2 (en) | Method for processing image frame output from an image sensor by an image processor | |
US8229236B2 (en) | Method for progressive JPEG image decoding | |
CN113949878A (zh) | 使用饱和像素的图像压缩方法、编码器和电子装置 | |
US20120106861A1 (en) | Image compression method | |
US20070046792A1 (en) | Image compositing | |
Huang et al. | Multiple reversible data hiding with module shape adjustments of quick response codes | |
JP6225137B2 (ja) | 車載カメラ画像処理装置 | |
KR20090132535A (ko) | 디지털 이미지 처리 방법 및 상기 방법을 수행하는 전자장치 | |
JP4720494B2 (ja) | 撮像装置、撮像方法およびプログラム、並びに記録媒体 | |
CN113949879A (zh) | 相机模块、图像处理系统和图像压缩方法 | |
JP5824341B2 (ja) | 撮像装置、記録装置、映像信号処理装置、撮像システム及び映像信号処理プログラム | |
JP2006333299A (ja) | 符号化装置および符号化方法並びに画像形成装置 | |
JP2009302896A (ja) | 画像符号化装置および画像符号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150114 |