(57)【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサによって画像データに対して回転操作を実行する方法であって、
前記１つまたは複数のプロセッサを使用して画像の画像データを受信することと、ここにおいて、前記画像データは、複数の画像ブロックを含んでいる、
前記画像の第１の行の第１のブロックの第１のDC係数値を前記画像の第２の行の第１のブロックの第２のDC係数値と比較することによって、前記画像の回転操作の間に第１の差分DC値を計算することと、
前記回転操作を完了する前に前記第１の差分DC値をメモリに格納することと、
前記画像の第１の行の第２のブロックの第３のDC係数値を前記画像の第２の行の第２のブロックの第４のDC係数値と比較することによって、第２の差分DC値を計算することと、
前記第２の差分DC値を前記メモリに格納することと、
複数の最小符号化単位（ＭＣＵ）の各々が回転された、前記複数のＭＣＵが前記画像データの当初の順序のままである、前記画像データのビットストリームを生成することと、
回転された各ＭＣＵの後にコードを挿入することによって、前記回転されたＭＣＵを、圧縮されたデータの独立復号可能な部分へと符号化することであって、前記コードは、各ＭＣＵが個々に位置を特定され、索引を付けられ、前記ＭＣＵが出力データストリーム内に現れる順序で前記ビットストリームから取り出されることを可能にする、符号化することと、
を具備する方法。
【請求項２】
前記第２の行は、前記第１の行の直後に受信される、請求項１の方法。
【請求項３】
前記第１のDC係数値をバッファに格納することをさらに具備する請求項１の方法。
【請求項４】
前記第１のDC係数値は、第１の最小符号化単位(MCU）の輝度ブロックに対応する、請求項３の方法であって、前記第１のMCUに対応する第１の彩度赤色のDC係数値および第１の彩度青色のDC係数値を前記バッファに格納することをさらに具備する請求項３の方法。
【請求項５】
前記第２のDC係数値を前記バッファに格納することをさらに含む請求項３の方法。
【請求項６】
前記画像の前記第１の行の第２のブロックの第３のDC係数値を格納することと、
第２の差分DC値を計算するために、前記画像の前記第２の行の第２のブロックの第４のDC係数値を前記画像の前記第１の行の前記第２のブロックの前記第３のDC係数値と比較することと、および
前記第２の差分DC値を前記メモリに格納することと
をさらに含む請求項１の方法。
【請求項７】
前記複数のブロックのうちの各々のブロックは、前記画像の最小符号化単位（MCU）内の複数のブロックのうちの１つである、請求項１の方法。
【請求項８】
前記MCUは、４つの輝度ブロックおよび２つの彩度ブロックを含む、請求項７の方法。
【請求項９】
ハードウェア符号化器の入力において回転信号を受信することと、および
前記回転信号に基づいて前記ハードウェア符号化器から画像獲得デバイスに走査順序信号を送って、前記画像獲得デバイスにおける走査順序を修正することと、をさら含む請求項１の方法。
【請求項１０】
前記ハードウェア符号化器は、ハードウェアJPEG符号化器を具備する、請求項９の方法。
【請求項１１】
前記回転信号は、画像感知器の方向を示す、請求項９の方法。
【請求項１２】
前記第１の差分DC値は、エントロピー符号化された値として格納される、請求項１の方法。
【請求項１３】
画像の画像データを受信するように構成されているブロック回転モジュールと、ここにおいて、前記画像データは、複数の画像ブロックを含んでいる、
前記ブロック回転モジュールに連結されている差分DC計算モジュールであって、前記画像の第１の行の第１のブロックの第１のDC係数値を前記画像の第２の行の第１のブロックの第２のDC係数値と比較することによって、前記画像の回転操作の間に第１の差分DC値を計算するように構成されている差分DC計算モジュールと、ここで、前記回転操作を完了する前に前記第１の差分DC値はメモリに格納され、前記画像の第１の行の第２のブロックの第３のDC係数値を前記画像の第２の行の第２のブロックの第４のDC係数値と比較することによって、第２の差分DC値が計算され、前記第２の差分DC値は前記メモリに格納され、
複数の最小符号化単位（ＭＣＵ）の各々が回転された、前記複数のＭＣＵが前記画像データの当初の順序のままである、前記画像データのビットストリームを生成し、回転された各ＭＣＵの後にコードを挿入することによって、前記回転されたＭＣＵを、圧縮されたデータの独立復号可能な部分へと符号化する、ように構成された符号化器であって、前記コードは、各ＭＣＵが個々に位置を特定され、索引を付けられ、前記ＭＣＵが出力データストリーム内に現れる順序で前記ビットストリームから取り出されることを可能にする、符号化器と、
を具備する装置。
【請求項１４】
前記差分DC計算モジュールに連結されているバッファをさらに具備する請求項１３の装置であって、前記第１のDC係数値は、前記バッファに格納され、および前記第２のDC係数値は前記バッファに格納される、請求項１３の装置。
【請求項１５】
前記第１のDC係数値は、第１の最小符号化単位（MCU）の輝度ブロックに対応する、請求項１４の装置であって、前記第１のMCUに対応する第１の彩度赤色DC係数値および第１の彩度青色DC係数値を前記バッファに格納することをさらに具備する請求項１４の装置。
【請求項１６】
画像の画像データを受信するための手段と、ここにおいて、前記画像データは複数の画像ブロックを含んでいる、
前記画像の第１の行の第１のブロックの第１のDC係数値を前記画像の第２の行の第１のブロックの第２のDC係数値と比較することによって、前記画像の回転操作の間に第１の差分DC値を計算するための手段と、ここで、前記回転操作を完了する前に前記第１の差分DC値はメモリに格納され、前記画像の第１の行の第２のブロックの第３のDC係数値を前記画像の第２の行の第２のブロックの第４のDC係数値と比較することによって、第２の差分DC値が計算され、前記第２の差分DC値は前記メモリに格納され、
複数の最小符号化単位（ＭＣＵ）の各々が回転された、前記複数のＭＣＵが前記画像データの当初の順序のままである、前記画像データのビットストリームを生成し、回転された各ＭＣＵの後にコードを挿入することによって、前記回転されたＭＣＵを、圧縮されたデータの独立復号可能な部分へと符号化するための手段であって、前記コードは、各ＭＣＵが個々に位置を特定され、索引を付けられ、前記ＭＣＵが出力データストリーム内に現れる順序で前記ビットストリームから取り出されることを可能にする、符号化するための手段と、
ここにおいて、前記第１の差分DC値を計算するための手段は、画像データを受信するための前記手段に連結されている、
を具備する装置。
【請求項１７】
前記受信画像データを符号化するための手段と、ここにおいて、前記画像データは、回転を受けるべき前記画像のラスタースキャンに対応し、前記画像は、画像ブロックの複数行と複数列とを有している、
符号化された画像ブロックにおいて回転画像データを表わすように画像ブロックを符号化するための手段と、
前記画像の前記回転に基づいて、読み出し順に、前記符号化された画像ブロックの読み出し位置を決定するための手段と、
前記読み出し位置にしたがって、前記符号化された画像ブロックの差分DC値を生成するための手段と、および
前記符号化された画像ブロックを格納するための手段と
をさらに具備する請求項１６の装置。
【請求項１８】
前記符号化された画像ブロックを前記読み出し順に検索するための手段をさらに具備する請求項１７の装置。
【請求項１９】
コンピュータ実行可能コードを格納する非一時的コンピュータ可読記憶媒体であって、
画像の画像データを読み取るためのコンピュータ実行可能コードと、ここにおいて、前記画像データは、複数の画像ブロックを含んでいる、
前記画像の回転操作の間に画像の第１の行の第１のブロックの第１のDC係数値を格納するためのコンピュータ実行可能コードと、
前記画像の第２の行の第１のブロックの第２のDC係数値を前記第１のDC係数値と比較して、第１の差分DC値を計算するためのコンピュータ実行可能コードと、
前記回転操作を完了する前に前記第１の差分DC値を格納するためのコンピュータ実行可能コードと、
前記画像の第１の行の第２のブロックの第３のDC係数値を前記画像の第２の行の第２のブロックの第４のDC係数値と比較して、第２の差分DC値を計算するためのコンピュータ実行可能コードと、
前記第２の差分DC値を格納するためのコンピュータ実行可能コードと、
複数の最小符号化単位（ＭＣＵ）の各々が回転された、前記複数のＭＣＵが前記画像データの当初の順序のままである、前記画像データのビットストリームを生成し、回転された各ＭＣＵの後にコードを挿入することによって、前記回転されたＭＣＵを、圧縮されたデータの独立復号可能な部分へと符号化する、ためのコンピュータ実行可能コードであって、前記コードは、各ＭＣＵが個々に位置を特定され、索引を付けられ、前記ＭＣＵが出力データストリーム内に現れる順序で前記ビットストリームから取り出されることを可能にする、コンピュータ実行可能コードと、
を具備する非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記画像の前記第１の行の第２のブロックの第３のDC係数値を格納するためのコンピュータ実行可能コードと、
前記画像の前記第２の行の第２のブロックの第４のDC係数値を前記画像の前記第１の行の前記第２のブロックと比較して、第２の差分DC値を計算するコンピュータ実行可能コードと、および
前記第２の差分DC値を格納するためのコンピュータ実行可能コードと
をさらに具備する請求項１９のコンピュータ可読記憶媒体。
【請求項２１】
ハードウェアJPEG符号化器の入力において回転信号を受信するためのコンピュータ実行可能コードと、
前記回転信号に基づいて前記ハードウェアJPEG符号化器から画像獲得デバイスに走査順序信号を送信して、前記画像獲得デバイスにおける走査信号を修正するためのコンピュータ実行可能コードと
をさらに具備する請求項１９のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示は、一般に、画像を回転させるための装置および方法に関係する。
【背景技術】
【０００２】
技術の進歩によって、コンピューティングデバイスは、ますます小さく、ますます強力になってきた。例えば、携帯情報端末(PDA)、ワイヤレス電話およびページングデバイスのような小型・軽量でユーザーによって容易に持ち運びされる様々な携帯型パーソナルコンピューティングデバイスが現在存在している。セルラ電話およびIP（インターネットプロトコル）電話のような、携帯型ワイヤレス電話器は、ワイヤレスネットワーク上で音声パケットやデータパケットを送信することができる。さらに、多くのそのようなワイヤレス電話は、他のタイプのデバイスを中に組込んで備えている。例えば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダおよびオーディオファイル・プレーヤを内包することができる。そのようなワイヤレス電話は、インターネットにアクセスするためのウェブブラウザアプリケーションのようなソフトウェアアプリケーションの命令を実行することができる。それゆえ、ワイヤレス電話は、相当高い計算能力を備えることができる。
【０００３】
デジタルカメラを含む携帯型パーソナルコンピューティングデバイス、またはデジタルカメラによって獲得された画像もしくはビデオデータを表示する携帯型パーソナルコンピューティングデバイスにおいて、デジタル信号プロセッサ（DSP）、画像処理プロセッサおよびその他のプロセッサがしばしば使用される。そのようなプロセッサは、ビデオおよびオーディオ機能を提供するため、獲得された画像データのような受信データを処理するため、またはその他の機能を実行するために利用されることができる。
【０００４】
多くの画像アプリケーションにおいて、画像を回転させることが望まれることがある。例えば、画像は、カメラによって獲得される。カメラは、普通、ユーザーによって横方向（風景に対して水平方向）に保持されるように構成されているが、縦方向（風景に対して垂直方向）の画像を獲得するために、ユーザーがカメラを90度回転することがある。縦方向の画像がいったん獲得された後、その画像を反対方向に90度回転させることが望まれる場合がある。画像を回転させるための通常の回転技術は、メモリ集約的である。なぜなら、そのような技術は、圧縮前の画像の1つまたは複数のコピーを一時的に格納することおよび回転操作走査の前後に圧縮後の画像を格納することを必要とするからである。
【発明の概要】
【０００５】
本件開示の実施形態は、画像を形成する画像ブロックの各々を符号化するのにともなって画像単位又画像ブロックを個々に回転させることによって、獲得された画像の回転を行うものである。すなわち、本件開示の実施形態は、完全な画像を獲得し、符号化し、そして回転させるのではなくて（そのような処理は、当初の画像と回転後の画像の少なくとも一部を同時に格納することになるので、処理集約的で、メモリを消費する）、画像が符号化される際に、単一の回転させられた画像を生成するものである。回転させられた画像（以下、単に「回転画像」ということがある。）を形成するために、回転させられたビットストリームが作成される。ある実施形態において、JPEG（Joint Photographic Expert Group）符号化器によって差分符号化が回転順に行われる。その他の実施形態において、トランスコーダ（transcoder）による効率的な差分符号化を可能ならしめるために、パディングビットの数を示すJPEGリスタート（RST）マーカーが上書きされる。
【０００６】
ある特定の実施形態において、画像データが複数の画像ブロックを含んでいる画像の画像データを受信することを含む方法が開示される。本方法は、画像の第1の行の第1のブロックの第1のDC係数（直流成分）値を画像の第2の行の第1のブロックの第2のDC係数値と比較することによって、画像の回転操作の間に第1の差分DC値を計算することをさらに含んでいる。本方法は、回転操作を完了する前に前記第1の差分DC値をメモリに格納することをさらに含んでいる。
【０００７】
別の特定の実施形態において、ある装置が開示される。本装置は、画像の画像データを受信するように構成されているブロック回転モジュールを含んでいる。前記画像データは、複数の画像ブロックを含んでいる。本装置は、差分DC計算モジュールをさらに含んでおり、差分DC計算モジュールは、ブロック回転モジュールに連結されているモジュールであって、画像の第1の部分の第1のブロックの第1のDC係数値を画像の第2の部分の第1のブロックの第2のDC係数値と比較することによって、画像回転操作の間に差分DC値を計算するように構成されている。
【０００８】
別の特定の実施形態において、ある装置が開示される。本装置は、画像ブロックを有する画像の画像データを受信するための手段を含んでいる。本装置は、画像の第1の部分の第1のブロックの第1のDC係数値を画像の第2の部分の第1のブロックの第2のDC係数値と比較することによって、画像の回転操作の間に第1の差分DC値を計算するための手段をさらに含んでいる。前記第1の差分DC値を計算するための手段は、画像データを受信するための手段に連結されている。
【０００９】
別の特定の実施形態において、コンピュータ可読記憶媒体が開示される。本コンピュータ可読記憶媒体は、画像の回転操作の間に画像の第1の部分の第1のブロックの第1のDC係数値を格納するためのコンピュータ実行可能コードを格納している。本コンピュータ可読記憶媒体は、画像の第2の部分の第1のブロックの第2のDC係数値を第1のDC係数値と比較することによって、第1の差分DC値を計算するためのコンピュータ実行可能コードをさらに含んでいる。本コンピュータ可読記憶媒体は、回転操作を完了する前に第1の差分DC値を格納するためのコンピュータ実行可能コードをさらに含んでいる。
【００１０】
画像を回転させるための本装置および本方法の実施形態によって提供される特定の利点の1つは、メモリのより効率的な使用である。
【図面の簡単な説明】
【００１１】
【図１】図1は、回転順の差分符号化を使用する動作をする回転操作モジュールを有する画像処理システムを含むシステムのある特定の例示的実施形態のブロック図である。
【図２】図2は、画像回転システムの第1の特定の実施形態のブロック図である。
【図３】図3は、図2の画像回転システムの一部のブロック図である。
【図４】図4は、画像回転システムの第2の特定の実施形態のブロック図である。
【図５】図5は、画像回転システムの第3の特定の実施形態のブロック図である。
【図６】図6は、画像回転システムの第4の特定の実施形態のブロック図である。
【図７】図7は、画像回転システムの第5の特定の実施形態のブロック図である。
【図８】図8は、様々な画像回転角度の場合のブロック処理順序およびブロック走査順序のある特定の実施形態を例示するブロック図である。
【図９】図9は、水平および垂直の画像反転（image flip）の場合のブロック処理順序およびブロック走査順序のある特定の実施形態を例示するブロック図である。
【図１０】図10は、画像を回転させる方法の第1の例示的実施形態の流れ図である。
【図１１】図11は、画像を回転させる方法の第2の例示的実施形態の流れ図である。
【図１２】図12は、回転順の差分符号化を使用する回転操作モジュールを含む携帯型の通信デバイスのブロック図である。
【図１３】図13は、回転順の差分符号化を使用する回転操作モジュールを含む画像感知器デバイスの特定の実施形態のブロック図である。
【発明の詳細な説明】
【００１２】
画像の回転は、多くの画像アプリケーションにおいて必要とされる。通常の回転技術は、メモリ集約的であって、圧縮前の画像の1つまたは複数のコピーを一時的に格納することおよび回転の前後に圧縮後の画像を格納することを必要とする可能性がある。本件明細書における実施形態によって開示されているように、回転操作の間に回転順の差分符号化を使用することによって、メモリのより効率的な使用が実現可能である。例えば、90度回転の場合、画像ブロックの並べ替えの結果として、当初の画像の行は、回転後の画像の列となり、当初の画像の列は、回転後の画像の行となる。回転操作の間に画像データを回転順に（すなわち、行ではなく、列に沿って）差分符号化することによって、ブロックの並べ替え後に事後的な差分符号化操作を行う必要がなくなる。すなわち、トランスコーダによるように、DC係数を符号化してメモリに格納した後に復号して検索するという余分な処理を回避することができる。
【００１３】
図1において、回転順の差分符号化を使用する回転操作モジュールを有する画像処理システムを含むシステムの特定の例示的実施形態が描かれており、一般に100として示されている。本システム100は、画像処理システム130に連結されている画像獲得デバイス101を含んでいる。画像処理システム130は、画像格納デバイス140に連結されている。画像処理システム130は、画像獲得デバイス101から画像データ109を受信し、および画像データ109によって表わされる画像を回転させる回転操作を行なうように構成されている。ある特定の実施形態において、システム100は、有限の処理リソースを使用してリアルタイム画像処理を行なうように構成されている携帯用電子デバイスの中で実装される。
【００１４】
ある特定の実施形態において、画像獲得デバイス101は、ビデオカメラまたはスチールカメラのようなカメラである。画像獲得デバイス101は、自動焦点モジュール104および自動露出モジュール106に反応するレンズ102を含んでいる。感知器108は、レンズ102を介して光を受けること、およびレンズ102を介して受けた画像に応答して画像データ109を生成することをするように連結されている。自動焦点モジュール104は、感知器108に反応し、レンズ102の焦点を自動的に制御するように調整されている。自動露出モジュール106はまた、感知器108に反応し、画像の露出を制御するようにも調整されている。ある特定の実施形態において、感知器108は、多数の検出器を含んでおり、これらの検出器は、隣接した検出器が様々な光の色を検出するように配列されている。例えば、各検出器が赤、緑または青の入力光を受信するように受信光がフィルタリングされることができる。
【００１５】
画像獲得デバイス101は、画像処理システム130の入力131に画像データ109を供給するように連結されている。画像処理システム130は、画像データ109に反応し、およびデモザイクモジュール110を含んでいる。画像処理システム130はまた、デモザイクモジュール110から受信されるデータからガンマ補正データ（gamma corrected data）を生成するガンマモジュール112も含んでいる。色較正モジュール114は、ガンマ補正データに対して較正（calibration）を行うように連結されている。色空間変換モジュール116は、色較正モジュール114の出力を色空間に変換するように連結されている。圧縮および格納モジュール120は、色空間変換モジュール116の出力を受信し、および圧縮された出力データ121を画像格納デバイス140に格納するように連結されている。回転操作モジュール122は、画像データ109を介して受信された画像に対して、回転順の差分符号化を使用する回転操作を行なうように連結されている。
【００１６】
画像格納デバイス140は、出力132に連結されていて、圧縮された出力データ121を受信し、および格納するように調整されている。画像格納デバイス140は、1つまたは複数のディスプレイバッファ、レジスタ、キャッシュ、フラッシュメモリ素子、ハードディスク、その他の記憶デバイス、またはこれらのものの任意の組合せのような、任意のタイプの記憶媒体を備えることができる。
【００１７】
回転操作モジュール122は、操作の間に、入力画像データ109の回転を効率的に行うことができる。例えば、回転操作モジュール122は、図2乃至10に関して後で説明されるような画像回転を行うことができる。回転操作モジュール122は、符号化器によって符号化された画像の最小符号化単位（MCU）を並べ替え、およびMCU内において画像データを回転させ、その結果として、MCUの並べ替えおよび画像データの回転によって、符号化された画像の回転バージョンを生成することができる。符号化された画像の回転バージョンを生成した後に、回転操作モジュール122は、符号化された画像の回転バージョンを画像格納デバイス140に出力することができる。MCUは、JPEG（Joint Photographic Expert Group）標準によって符号化されたDCＴ（離散コサイン変換）係数のブロックから成るものであってもよい。
【００１８】
回転操作モジュール122は、複数の画像ブロックを含む画像データを受信することもできる。回転操作モジュール122は、第1の差分DC値を計算するように構成されている。例えば、回転操作モジュール122は、画像の回転操作の間に、画像の第1の部分の第1のブロックの第1のDC係数値を画像の第2の部分の第1のブロックの第2のDC係数値と比較すること、および回転操作を完了する前に第1の差分DC値を格納することができる。1つの特定の例示的実施形態において、画像データ109の第1の部分および第2の部分は、それぞれ、画像データ109の第1の行および第2の行を含むことができる。代替的に、第1の部分および第2の部分は、画像データ109の第1の列および第2の列、または画像データ109のその他の何らかのレイヤもしくはセグメントを含むことができる。
【００１９】
図2において、回転操作を行なうように構成されている符号化器を含むシステムの特定の例示的実施形態が描かれており、一般に200として示されている。本システム200は、符号化器202に連結されている感知器210を含んでいる。符号化器202は、メモリ216に連結されている。符号化器202はまた、行バッファ204のようなバッファにも連結されている。ある特定の実施形態において、符号化器202は、図1の回転操作モジュール122の一部であり、またトランスコーディング操作を実行して画像内ブロックを並べ替えることによって回転画像を生成するように構成されている。
【００２０】
符号化器202は、離散コサイン変換（DCＴ）モジュール212、ブロック回転モジュール213、行バッファ記入モジュール206、差分DC計算論理モジュール208、エントロピー符号化器モジュール214および方向論理モジュール218を含んでいる。方向論理モジュール218は、感知器210に連結されている。DCＴモジュール212は、ブロック回転モジュール213に連結されている。行バッファ記入モジュール206は、ブロック回転モジュール213に連結されている。差分DC計算論理モジュール208は、行バッファ記入モジュール206に連結されている。行バッファ204は、行バッファ記入モジュール206に連結されており、および差分DC計算論理モジュール208に連結されている。エントロピー符号化器214は、差分DC計算論理モジュール208に連結されている。前に言及したように、回転させられるべき画像データの部分は、画像データの行、列またはその他の部分を含むことができる。しかしながら、この説明の目的のために、当該部分が画像データの列を構成する一例を使用することとする。すなわち、差分DC計算論理モジュール208は、列バッファ記入モジュールではなく、または他のバッファ記入モジュールでもなく、行バッファ記入モジュール206に連結されている。
【００２１】
符号化器202は、感知器210から画像データ209を受信し、および画像データ209として受信された画像を回転させるために回転操作を行なうように構成されている。前に説明したように、ユーザーが風景に対してカメラを縦に向けるか横に向けるかにかかわらず、画像データが同じ走査ライン順で生成されるデジタルカメラデバイスにおいて、回転は、利点がある。縦横2つの方向のうちの少なくとも1つについて、獲得された画像を格納する前に、それを90度、180度、または270度回転することが望まれる場合がある。
【００２２】
ある特定の実施形態において、符号化器202は、JPEG（Joint Photographic Expert Group）符号化器である。符号化器202は、方向論理モジュール218を含んでいる。方向論理モジュール218は、感知器210の方向を決定し回転信号220を生成するように構成されている。感知器210は、回転信号220に反応して走査順序を調節することによって画像データ209を生成することができ、また回転信号220は、符号化器202の入力において受信された画像データ209といっしょに含まれることができる。
【００２３】
ある特定の実施形態において、画像データ209は、複数の最小符号化単位（MCU）を含んでいる。DCＴモジュール212は、DCＴ係数のブロックを生成するように構成されている。MCUは、画像のピクセルのブロックから離散コサイン変換によって符号化されたDCＴ係数のブロックを具備するものであってよい。図3に関して後で検討されるように、DCＴ係数のブロックは、輝度（Y）ブロックおよび彩度（Cr、Cb）ブロックを含むものであってもよい。ブロック回転モジュール213は、DCＴ係数のブロックを受信し、およびブロック回転後のデータを生成するように構成されている。行バッファ記入モジュール206は、ブロック回転後のデータを用いて行バッファ記入操作を行うように連結されている。行バッファ204は、行バッファ配列モジュール206の出力を受信するように連結されている。エントロピー符号化器モジュール214は、差分DC計算論理モジュール208の出力を圧縮するように連結されている。メモリ216は、エントロピー符号化器モジュール214によって生成されたエントロピー符号化ブロックを格納するように構成されており、第1の差分DC値を有する第1のブロックと第2の差分DC値を有する第2のブロックとを含んでいる。
【００２４】
ある特定の実施形態において、行バッファ記入モジュール206、行バッファ204および差分DC計算モジュール208は、画像の各々の特定の列について最後に符号化されたDC係数情報を格納するように共同して作業をする。各列についての最後に符号化されたDC係数情報は、感知器210の走査順序にしたがって当該列の新規のMCUが受信されるのにともなって、差分DC計算モジュール208によって検索され、および行バッファ記入モジュール206によって更新される。行バッファ記入モジュール、行バッファ204および差分DC計算論理モジュール208の操作の一例が図3に描かれている。
【００２５】
画像の各列についての先のDC係数値を格納する行バッファ204を使用することによって、符号化器202は、90度または270度の回転のための回転順の差分符号化を行なうことができる。例えば、走査順の差分符号化操作が、特定の行の中の次のブロックの差分値を決定するために、特定の行の中の先のブロックのDC値を使用することができるのに対し、90度および270度の回転の場合の回転順の差分符号化操作は、前記特定のブロックと同じ列の中の先のブロックに基づいて差分値を生成する。すなわち、行バッファ204は、画像の各列に沿って差分符号化を行うことを可能とするために画像の各列の最後に符号化されたブロックに対応するデータを維持する。
【００２６】
例えば、ユーザーによって風景に対して横方向に通常保持されるように構成されているカメラの中でシステム200が実装されているのに、ユーザーが縦方向の画像を得るためにカメラを90度を回転させる実施形態においては、当初の画像の画像ブロック250の複数行および複数列が90度回転させられる。ある特定の実施形態において、ユーザーがカメラのビューファインダーを通して見る画像の一部は、画像ブロック250として表わされることができる。カメラが90度回転させられるとき、感知器210において獲得された画像は、90度回転させられ、その結果、画像ブロック252に図示されているように、当初の画像の行は、回転後の画像の列となる。回転操作の間に画像を回転順に（すなわち、行ではなく、列に沿って）差分符号化した後、当該画像は、画像ブロック260に図示されているように、当初の画像の順に並べ替えられることができる。
【００２７】
例示目的として、ある特定の実施形態において、回転の前の当初の画像の画像ブロック250の行1の画像ブロックは、Ａ1Ａ2Ａ3であり、行2の画像ブロックは、Ｂ1Ｂ2Ｂ3であり、行3の画像ブロックは、Ｃ1Ｃ2Ｃ3であり、また、行4の画像ブロックは、Ｄ1Ｄ2Ｄ3であるとしておこう。説明の便宜のために「画像ブロック」（"image blocks"）として図示および説明されているが、その他の実施形態において、各々の「画像ブロック」（each "image block"）が画像の1つまたは複数のブロックを表わすものであってもよい。例えば、ある実施形態において、各々の「画像ブロック」は、図3に関して検討されたように、輝度（Y）ブロックおよび彩度（Cr、Cb）ブロックのような複数ブロックを含むMCUを表わすものであってもよい。90度回転の場合、画像ブロック252の並べ替えの結果として、当初の画像の行は、回転後の画像の列となり、当初の画像の列は、回転後の画像の行となる。例えば、回転画像の行1の画像ブロックは、A1B1C1D1となり、回転画像の行2の画像ブロックは、Ａ2Ｂ2Ｃ2Ｄ2となり、また、回転画像の行3の画像ブロックは、Ａ3Ｂ3Ｃ3Ｄ3となる可能性がある。90度回転の場合の画像ブロックの回転後の順序が260に図示されている。
【００２８】
前に説明したように、符号化器202によって実行されるようなトランスコーディング操作258の後、画像ブロックは、当初の画像順に並べ替えられてよく、また差分符号化データ（すなわち、行1: A1Adiff12Adiff23; 行2: B1Bdiff12Bdiff23; 行3: C1Cdiff12Cdiff23; 行4: D1Ddiff12Ddiff23）を含むものであってもよい。例えば、Adiff12は、第1の行の第1のブロックＡ1の1つまたは複数のDC係数値と、第2の行の第1のブロックＡ2の1つまたは複数のDC係数値の間の差に対応する。Adiff23は、第2の行の第1のブロックＡ2の1つまたは複数のDC係数値と、第3行の第1のブロックＡ3の1つまたは複数のDC係数値の間の差に対応する等々。例示目的のために、図3に関して検討されたように、DC係数値は、第1の行の第1の画像ブロックＡ1の内の特定の輝度および彩度ブロック、および第2の行の第1の画像ブロックＡ2の内の特定の輝度および彩度ブロックのDC係数値に対応するものであってもよい。
【００２９】
回転操作の間に画像データを回転順に（すなわち、行ではなく、列に沿って）差分符号化することによって、ブロックの並べ替え後に事後的な差分符号化操作を行う必要がなくなる。すなわち、DC係数を符号化してメモリに格納した後に復号して検索するという余分な処理を回避することができる。ある特定の実施形態において、トランスコーディング操作258は、符号化器202によって行なわれる。別の特定の実施形態において、トランスコーディング操作258は、別個のトランスコーディングモジュールによって行なわれてもよい。
【００３０】
図3において、図2の画像回転システムの一部の特定の実施形態が描かれており、一般に300として示されている。システム300は、ブロック回転モジュール213、行バッファ記入モジュール206、行バッファ204および差分DC計算論理モジュール208を含んでいる。ブロック回転モジュール213、行バッファ204および差分DC計算モジュール208のコンテンツが90度の画像回転の場合について図示されている。
【００３１】
ブロック回転モジュール213は、受信したMCUの各ブロック内のピクセル変換データを回転させる。ブロック回転モジュール213は、MCUi, jと示されているように、画像のｉ番目の行およびｊ番目の列に対応するデータを含んでいるものとして描かれている。ある特定の実施形態において、MCUi, jは、複数のブロックを含み、4つの輝度（Ｙ）ブロックY0 302, Y1 304, Y2 306, Y3 308、ならびに2つの彩度ブロックCr 310 およびCb 312を含んでいる。
【００３２】
行バッファ204は、画像の複数の特定の列についての最後に符号化されたDC係数値を含んでいる。図示されているように、行バッファ204は、MCUi, jに対して、画像の先の行の先の列、同じ列、および次の列のMCU （それぞれMCUi-1, j-1 320、 MCUi-1, j 322、および MCUi-1, j+1 324と表わされる）について最後に符号化されたDC係数値を含んでいる。例えば、行バッファの記入項目MCUi-1, j-1 320は、MCU320の最後に処理された輝度ブロック(Yi-1, j-1DC)のDC係数値、最後に処理された彩度赤色ブロック(Cri-1, j-1DC)のDC係数値、および最後に処理された彩度青色ブロック(Cbi-1, j-1DC)のDC係数値を含んでいる。行バッファの記入項目MCUi-1, j 322は、MCU322の最後に処理された輝度ブロック(Yi-1, jDC)のDC係数値、最後に処理された彩度赤色ブロック(Cri-1, jDC)のDC係数値、および最後に処理された彩度青色ブロック(Cbi-1, jDC)のDC係数値を含んでいる。行バッファの記入項目MCUi-1, j+1 324は、MCU324の最後に処理された輝度ブロック(Yi-1, j+1DC)のDC係数値、最後に処理された彩度赤色ブロック(Cri-1, j+1DC)のDC係数値、および最後に処理された彩度青色ブロック(Cbi-1, j+1DC)のDC係数値を含んでいる。
【００３３】
差分DC計算モジュール208は、各々のMCUのDC係数値を回転順に差分符号化するように構成されている。例えば、差分DC計算モジュール208は、行バッファ204に格納されている特定の列について先のMCUのDC係数値にアクセスし、そのことによって当該列の現在のMCUについて第1の差分DC値を符号化するように構成されている。図示されているように、差分DC計算モジュール208は、ブロック回転モジュール213からのMCUi, jの差分符号化バージョンを含み、輝度ブロック340, 342, 344, 346 および彩度ブロック348 および 350を含んでいる。
【００３４】
操作の間、行バッファ記入モジュール206、行バッファ204および差分DC計算モジュール208は、画像の各々の特定の列について、Y, Cr, およびCbの最後に符号化されたDC係数を格納するために共同して作業をする。各列についての最後に符号化されたDC係数は、当該列の新規のMCUが画像感知器（不図示）の走査順序にしたがって受信されるのにともなって、差分DC計算モジュール208によって検索され、および行バッファ記入モジュール206によって更新される。
【００３５】
例えば、ある特定のMCUのブロックのブロック処理順序は、図8に図示されているように回転角度に基づくものであってもよい。画像感知器が回転させられない場合（例えば、回転角度ゼロの場合）、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である。
【００３７】
ゼロ度回転と90度回転の場合の前述の走査順序は、別々に符号化されている各々の輝度および彩度ブロックに関係している。別の実施形態では、輝度および彩度ブロックは、インターリーブ方式で符号化されることができる。例えば、2ブロック水平×2ブロック垂直（H2V2）MCUのゼロ度回転は、次のように符号化されることができる。Y0, Y1, Y2, Y3, Cb, Cr, Y0next, Y1next, Y2next, Y3next, Cbnext, Crnext, 等々。
【００３８】
MCUi, j の輝度ブロック340, 342, 344, および346についての計算後の差分DC値は、次のとおりである。輝度ブロック342については、差分DC値は、Ｙ1のDC係数値から、列（例えば、先の行）の先のMCUの最後のＹブロックのDC係数値を減算することによって計算される。列の先のMCUの最後のＹブロックは、行バッファ204のMCUi-1, j 322である。90度回転の場合の輝度ブロック342についての差分DC値は、Y1のDC係数値から、 (i-1)行、j列のY2ブロックのDC係数値が減算された値である。すなわち、Y1diff = Y1DC - Yi-1, jDCである。輝度ブロック346についての差分DC値は、Ｙ1のDC係数値から、Ｙ3のDC係数値を減算することによって計算される。すなわち、Y3diff = Y3DC-Y1DCである。輝度ブロック340についての差分DC値は、Ｙ0のDC係数値から、Ｙ3のDC係数値を減算することによって計算される。すなわち、Y0diff =Y0DC-Y3DCである。輝度ブロック344についての差分DC値は、Ｙ0のDC係数値から、Ｙ2のDC係数値を減算することによって計算される。すなわち、Y2diff = Y2DC-Y0DCである。彩度赤色（Cr）ブロック348についての差分DC値は、CrのDC係数値から、列（例えば、先の行）の先のMCUのCrブロックのDC係数を減算することによって計算される。すなわち、Crdiff = Cr - Cri-1, jDCである。彩度青色(Cb)ブロック350についての差分DC値は、CbのDC係数値から、列（例えば、先の行）の先のMCUの最後のCbブロックのDC係数を減算することによって計算される。すなわち、Cbdiff = Cb - Cbi-1, jDCである。
【００３９】
符号化の後に、行バッファ記入モジュール206は、MCUi, jからのDC係数値を用いて行バッファ204にデータ記入をする。90度回転について図示されているように、最後に処理されたブロック（例えば、Y2のDC係数値 306）、CrのDC係数値310、およびCbのDC係数値312は、MCUi-1, jの値322を置換することができる。したがって、回転順の差分符号化を可能にするために画像が処理されていくのにともなって、行バッファ204が更新されることができる。
【００４０】
回転操作の間に画像データを回転順に（すなわち、行ではなく、列に沿って）差分符号化することによって、ブロックの並べ替え後に事後的な差分符号化操作を行う必要がなくなる。すなわち、DC係数を符号化してメモリに格納した後に復号して検索するという余分な処理を回避することができる。
【００４１】
上では90度回転の場合の一例が説明されているが、図8および図9に示されているように、画像の垂直反転または水平反転の場合はもちろんのこと、180度回転、270度回転の場合にも、回転の間に画像データを回転順に差分符号化するという技術が使用されることができる。
【００４２】
図4において、画像回転システムの特定の実施形態が描かれており、一般に400として示されている。システム400は、JPEG符号化器408に連結されている画像獲得デバイス402と、JPEG符号化器408に連結されているメモリ410と、およびメモリ410に連結されている回転トランスコーダ414とを含んでいる。画像獲得デバイス402は、画像を獲得するように構成されている画像感知器404を含んでいる。画像獲得デバイス402の読み出し406は、JPEG符号化器408に提供される。
【００４３】
JPEG符号化器408は、圧縮データの独立復号可能な部分を区分するコードを挿入することによって、獲得された画像の回転させられた領域を圧縮データの独立復号可能な部分または最少符号化単位（MCU）に符号化する。JPEG標準にしたがって符号化された画像データの場合、これらの符号は、リスタート（RST）マーカーである。JPEG画像は、一系列のマーカーを含んでおり、各々のマーカーは、それがどのような種類のマーカーであるかを示すバイトが後続する0xFFバイトで始まっている。RSTマーカーは、0xFFDnのような識別可能ビットパターンを含むものであってもよい。RSTマーカーにおいて、ブロック−ブロック間の予測変数がリセットされ、ビットストリームがバイト境界に対して同期化させられる。
【００４４】
回転させられた画像の圧縮後データは、アウトオブオーダーで格納されてもよく、その場合、並べ替えプロセスによって、独立復号可能な部分を正しい順序に並べ替えることができ、その結果、通常の復号器でも、回転画像データを正しく復元し、正しく並べ替えられた圧縮後データを出力することができる。図4に示されているように、JPEG符号化器408は、値1のRSTマーカーインターバルを適用する。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は、符号化されたJPEGファイル412をメモリ410からフェッチしてもよく、また符号化された画像は、エントロピー符号化技術によって符号化されたものであってもよい。
【００４７】
MCU回転を有する当該JPEGビットストリームの中でRSTマーカーが識別可能であるから、回転トランスコーダ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内の符号化された画像の回転バージョンを生成し、その回転バージョンは、メモリに出力されることができる。
【００５０】
MCU回転を有する当該JPEGビットストリーム515の中でRSTマーカーが識別可能であるから、トランスコーダ509は、各々のMCUの位置を個々に特定することができる。そして各々のMCUに索引を付けることができ、その索引に基づいて並べ替えられた順序でMCUをフェッチすることができ、その結果、MCUは、当初の符号化された画像に対して回転させられた順序で配置される。それゆえ、MCUは、それが入力データストリームにおいて現われる順序にしたがって単純に系列的に処理されるのではなくて、それが出力データストリームにおいて現われる順序にしたがって圧縮画像の様々な部分から算出されることができる。このようにして、DCＴ技術によって符号化されたMCUを含む符号化された画像は、DCＴ係数の一部または全部を復号せずに回転させられることができる。
【００５１】
例えば、操作の間に、JPEG符号化器508は、画像データ501を受信する。JPEG符号化器508は、各々のMCUが回転させられた画像データ501のJPEGビットストリームを生成することができる。ある特定の実施形態において、回転させられたMCUは、画像データ501の当初の順序のままである。回転させられたMCUを有する画像データは、回転画像データ510として、および2ブロック×3ブロックの画像519の各ブロックの90度の回転を表わしているMCU回転を有するJPEGビットストリーム515として、図式的に図示されている。JPEG符号化器508は、RSTマーカーを有するビットストリームを受信順に生成し、また、RSTマーカーは、1つ1つのMCUの後に続き、そのMCUは、ビットストリームの索引付けおよび並べ替えの間に使用されることになっている。トランスコーダ509は、JPEG符号化器508からJPEGビットストリームを受信し、また、索引モジュール512における索引付けと並べ替えモジュール514における並べ替えの後、JPEG符号化器によって行なわれる回転順の差分符号化が普通のJPEG復号器によって正しく復号できるようにJPEGビットストリームが順序付けられる。回転後の画像のJPEGビットストリームは、516においてイラストで示され、また517において図式的に示されている。
【００５２】
上では索引付けおよび並べ替えがトランスコーダの内部で行われるものとして説明されているが、別の実施形態においては、索引付け、並べ替え、またはその両方は、符号化器508の内部で行われるものであってもよい。
【００５３】
図6において、画像回転システムの別の特定の実施形態が描かれており、一般に600として示されている。システム600は、トランスコーダ609に連結されているJPEG符号化器608を含んでいる。トランスコーダ609は、並べ替えモジュール614に連結されている索引モジュール612を含んでいる。並べ替えモジュール614は、復号モジュール611に連結されている。ある特定の実施形態において、復号モジュール611は、ハフマン復号モジュールである。復号モジュール611は、差分符号化モジュール613に連結されている。
【００５４】
JPEG符号化器608は、画像データ601を受信する。JPEG符号化器608とトランスコーダ609とによるMCUの並べ替えおよびMCU内の画像データの回転は、画像データ601内の符号化された画像の回転バージョンを生成し、その回転バージョンは、メモリに出力されることができる。ある特定の実施形態において、トランスコーダ609は、符号化された画像ブロックを読み出し順に検索する。索引モジュール612は、JPEGビットストリームのMCUに索引を付けるためにRSTマーカーを使用し、並べ替えモジュール614は、MCUビットストリームを回転順にフェッチし、復号モジュール611は、DC係数を算出し、そして差分符号化モジュール613は、算出されたDC係数を復号し、差分符号化を適用する。
【００５５】
例えば、トランスコーダ609は、JPEG符号化器608によって符号化された画像601のJPEGビットストリームを受信することができる。索引モジュール612は、JPEGビットストリームのMCUに索引を付けるためにRSTマーカーを使用する。次に、並べ替えモジュール614は、MCUビットストリームを回転順にフェッチする。これはMCUを並べ替える。復号モジュール611は、ハフマン復号を行い、各々のMCUを逆ジグザグ走査する。ハフマン復号および逆ジグザグ走査のプロセスは、エントロピー復号と呼ばれることがある。次に、差分符号化モジュール613は、各々のMCUのDC係数のみを復号し、各々のMCUにDC差分復号を適用することができる。DC差分復号は、DCＴ係数（離散コサイン変換）のDC係数（直流成分）に適用された任意の差分符号化を除去することができる。そのような除去を行うことは、各々のMCUのDC係数の少なくとも部分的復号を必要とするが、この場合、AC係数（交流成分）は、DCＴドメインで符号化されたままである。
【００５６】
ある特定の実施形態において、そのような復号は、RSTマーカーにおけるような、リスタートフィールドに格納されているデータを上書きすることによって支援されることができる。MCU回転を有するJPEGビットストリーム615の吹き出し部分630に図示されているように、各々のMCU（例えばMCU4 632）と次のバイト境界644との間にパディングビット634が挿入されており、RSTマーカー636は、バイト境界644に整列させられている。パディングビット634は、RSTマーカーをバイト境界への整列させるために使用される。MCU4  632は、パディングビット634に先行する最後のデータエレメントとしてDC係数640を含むものであってもよい。JPEG符号化器608は、パディングビット634の数を表わすRSTマーカー636のデータの一部（値N 642として図示されている）を上書きするものであってもよい。ある特定の実施形態において、JPEG符号化器608は、特定のJPEG実装に準拠する4ビットのRSTマーカーのようなデフォルトカウンタ値を上書きするものであってもよい。値N 642は、最後のMCU  632のビットストリームの末尾とRSTマーカー636との間のパディングビットの数を示すものであってもよい。RSTマーカー636内に符号化されているパディングビットの数によって、前のMCUビットストリームの末尾を簡単に識別することができ、その結果、RSTマーカー636およびパディングビット634が削除された後、連続するMCU632および648を連結することができる。さらに、MCU648内の最後のブロックについての輝度(Y)および彩度(Cb, Cr)についてのDC予測値646は、RSTマーカー636の隣に挿入されることができる。DC予測値646 を使用することによって、MCU境界を越えた差分符号化を適用することができ、その結果として、ビットストリームの部分の復号を要することなく、RSTマーカーを削除することができる。
【００５７】
MCUが当初の符号化された画像に対して回転させられた順序で配置されるように、MCUをある特定の回転にしたがって並べ替えることができる。MCUのこの並べ替えを容易なものとするために、JPEG符号化器608は、索引付けスキームを利用することができる。例えば、JPEG標準に従って、符号化された画像に関連したRSTマーカーの値を1にセットすることができる。RSTマーカーは、画像データがリスタートされる場所、すなわち、独立に符号化または復号される場所を示すことができる。このことの結果として、各々のDCT符号化MCUは、JPEG画像の独立復号可能単位となることができる。
【００５８】
MCU回転を有する当該JPEGビットストリーム615の中でRSTマーカーが識別可能であるから、回転トランスコーダ609は、各々のMCUの位置を個々に特定することができる。そして各々のMCUに索引を付けることができ、その索引に基づいて並べ替えられた順序でMCUをフェッチすることができ、その結果、MCUは、当初の符号化された画像に対して回転させられた順序で配置される。それゆえ、MCUは、それが入力データストリームにおいて現われる順序にしたがって単純に系列的に処理されるのではなくて、それが出力データストリームにおいて現われる順序にしたがって圧縮画像の様々な部分からを算出されることができる。このようにして、DCＴ技術によって符号化されたMCUを含む符号化された画像は、DCＴ係数の一部または全部を復号せずに回転させられることができる。
【００５９】
例えば、操作の間に、JPEG符号化器608は、画像データ601を受信する。JPEG符号化器608は、各々のMCUが回転させられた画像データ601のJPEGビットストリームを生成することができる。ある特定の実施形態において、回転させられたMCUは、画像データ601の当初の順序のままである。回転させられたMCUを有する画像データは、回転画像ブロック610およびMCU回転を有するJPEGビットストリームとして615として図示されている。JPEG符号化器608は、RSTマーカーを有するビットストリームを受信順に生成する。RSTマーカーは、1つ1つのMCUの後に続いている。MCUは、ビットストリームの索引付けおよび並べ替えの間に使用されることになっている。トランスコーダ609は、JPEG符号化器608からJPEGビットストリームを受信し、また、索引モジュール612における索引付け、並べ替えモジュール614における並べ替え、復号モジュール611における復号、および差分符号化モジュール613における回転順による差分符号化の後、JPEG符号化器によって行なわれる回転順の差分符号化が普通のJPEG復号器によって復号可能となるようにJPEGビットストリームが順序付けられる。
【００６０】
ある特定の実施形態において、RSTマーカーは、トランスコーダ609によって回転後の画像のJPEGビットストリーム617から削除される。トランスコーダ609は、RSTマーカーを削除するために、差分符号化のためのDC係数を算出するためにハフマン復号を行なう。回転後の画像のJPEGビットストリームは、616においてイラストで示されている。
【００６１】
前に説明した特定の例示的実施形態において、索引付け、並べ替え、復号および差分符号化は、トランスコーダ609の内部で行われるものとして上では説明されている。しかしながら、別の実施形態において、各操作は、個々にまたはこれらのものの任意の組合せとして符号化器608の内部で行われるものであってもよい。
【００６２】
図7において、画像回転システムの別の特定の実施形態が描かれており、一般に700として示されている。システム700は、トランスコーダ709に連結されているJPEG符号化器708を含んでいる。トランスコーダ709は、並べ替えモジュール714に連結されている索引モジュール712を含んでいる。ある特定の実施形態において、索引モジュール712は、JPEGビットストリームのMCUに索引を付けるためにRSTマーカーを使用する。また、並べ替えモジュール714は、MCUビットストリームを回転順にフェッチする。
【００６３】
JPEG符号化器708は、画像データ701を受信する。JPEG符号化器708とトランスコーダ709とによるMCUの並べ替えおよびMCU内の画像データの回転は、画像データ701内の符号化された画像の回転バージョンを生成し、その回転バージョンは、メモリに出力されることができる。
【００６４】
MCU回転を有する当該JPEGビットストリーム715の中でRSTマーカーが識別可能であるから、回転トランスコーダ709は、各々のMCUの位置を個々に特定することができる。そして各々のMCUに索引を付けることができ、その索引に基づいて並べ替えられた順序でMCUをフェッチすることができ、その結果、MCUは、当初の符号化された画像に対して回転させられた順序で配置される。
【００６５】
例えば、操作の間に、JPEG符号化器708は、画像データ701を受信する。JPEG符号化器708は、図2に関して説明されたような、各々のMCUが回転させられて回転順に差分符号化されている画像データ701のJPEGビットストリームを生成することができる。ある特定の実施形態において、回転させられたMCUは、画像データ701の当初の順序のままである。回転させられたMCUを有する画像データは、回転画像ブロック710として、およびMCU回転を有するJPEGビットストリーム715として図式的に示されている。JPEG符号化器708は、RSTマーカーを有するビットストリームを受信順に生成する。RSTマーカーは、1つ1つのMCUの後に続いている。MCUは、ビットストリームの索引付けおよび並べ替えの間に使用されることになっている。トランスコーダ709は、JPEG符号化器708からJPEGビットストリームを受信し、また、索引モジュール712における索引付け、および並べ替えモジュール714における並べ替えの後、JPEG符号化器によって行なわれる回転順の差分符号化が通常のJPEG復号器によって復号可能となるようにJPEGビットストリームが順序付けられる。それゆえ、画像の各行の始まりを示すRSTマーカーは保持されて、残りのRSTマーカーは、回転後の画像のJPEGビットストリーム717から削除される。回転後の画像のJPEGビットストリームは、716においてイラストで示されている。
【００６６】
上では索引付けおよび並べ替えがトランスコーダの内部で行われるものとして説明されているが、別の実施形態においては、索引付け、並べ替え、またはその両方は、符号化器708の内部で行われるものであってもよい。
【００６７】
図8において、様々な角度の画像回転についてのブロック処理順序およびブロック走査順序を示すある特定の実施形態が描かれており、一般に800として示されている。例えば、ゼロ度の回転（すなわち、普通の符号化）における2×2の輝度ブロックを有する2ブロック水平×2ブロック垂直（H2V2）のMCUの中の輝度（Ｙ）データのブロック処理順序は、上左、上右、下左、下右のラスタースキャン順である。ゼロ度の回転における2×1の輝度ブロックを有する2ブロック水平×1ブロック垂直（H2V2）の場合のブロック処理順序もまた、左、右のラスタースキャン順である。輝度および彩度(Cr, Cb)ブロックの一般的な構成についてのブロック走査順序がゼロ度の回転の場合について描かれている。
【００６８】
90度回転における2×2輝度ブロックを有するＨ2Ｖ2のMCUの中のＹデータのブロック処理順序は、上右、下右、上左、下左のラスタースキャン順である。90度回転における2×1の輝度ブロックを有するH2V1の場合のブロック処理順序もまた、上、下のラスタースキャン順である。輝度および彩度(Cr, Cb)ブロックの一般的な構成についてのブロック走査順序が90度回転の場合について描かれている。
【００６９】
180度回転における2×2輝度ブロックを有するＨ2Ｖ2のMCUの中のＹデータのブロック処理順序は、下右、下左、上右、上左のラスタースキャン順である。180度回転における2×1の輝度ブロックを有するH2V1の場合のブロック処理順序もまた、右、左のラスタースキャン順である。輝度および彩度(Cr, Cb)ブロックの一般的な構成についてのブロック走査順序が180度回転の場合について描かれている。
【００７０】
270度回転における2×2輝度ブロックを有するＨ2Ｖ2のMCUの中のＹデータのブロック処理順序は、下左、上左、下右、上右のラスタースキャン順である。270度回転における2×1の輝度ブロックを有するH2V1の場合のブロック処理順序もまた、下、上のラスタースキャン順である。輝度および彩度(Cr, Cb)ブロックの一般的な構成についてのブロック走査順序が270度回転の場合について描かれている。
【００７１】
図9において、画像の水平移行および垂直移行の場合のブロック処理順序およびブロック走査を示すある特定の実施形態が描かれており、一般に900として示されている。回転させられない画像の場合、各MCUについてのブロック処理順序およびブロック走査順序は、図8に描かれているゼロ度回転について例示されているものと同じである。
【００７２】
垂直移行または反転における2×2の輝度ブロックを有するＨ2Ｖ2のMCUの中のＹデータのブロック処理順序は、下左、下右、上左、上右のラスタースキャン順序である。垂直移行における2×1の輝度ブロックを有するH2V1の場合のブロック処理順序もまた、左、右のラスタースキャン順である。
【００７３】
水平移行または反転における2×2の輝度ブロックを有するＨ2Ｖ2のMCUの中のＹデータのブロック処理順序は、上右、上左、下右、下左のラスタースキャン順序である。垂直移行における2×1の輝度ブロックを有するH2V1の場合のブロック処理順序もまた、右、左のラスタースキャン順である。
【００７４】
図10において、画像を回転させる方法の第1の特定の例示的実施形態の流れ図が描かれており、一般に1000として示されている。一般に、画像回転方法1000は、図1乃至7に描かれているシステムのうちの1つまたは複数によって実行されてもよく、またはその他の処理システムもしくはこれらのものの組み合わせによって実行されてもよい。画像に対応する画像データは、1002において受信される。画像データは、複数の画像ブロックを含んでいる。第1の差分DC値は、1004において、画像の第1の行の第1のブロックの第1のDC係数値を画像の第2の行の第1のブロックの第2のDC係数値と比較することによって、画像の回転操作の間に計算される。ある特定の実施形態において、第1の差分DC値は、図2の差分DC計算論理モジュール208によって計算されることができる。第1の差分DC値は、1006において回転操作を完了する前に、図1の画像格納装置140のようなメモリに格納される。例えば、画像データ209のその他のブロックが符号化器202のブロック回転モジュール213によって継続して処理されるのにともなって、符号化されたMCUが図2のメモリ216に格納されることができる。
【００７５】
異なる行の中のブロックのDC係数値を走査順ではなく回転順に比較することによって回転操作の間に第1の差分DC値を計算することにより、符号化器は、画像ブロックが回転順に整列された後に復号器によって可読となるように差分符号化される画像ブロックの出力を生成することができる。例えば、90度回転の場合、画像ブロックの並べ替えの結果として、当初の画像の行は、回転後の画像の列となり、当初の画像の列は、回転後の画像の行となる。その回転操作の間に画像データを回転順に（すなわち、行ではなく、列に沿って）差分符号化することによって、ブロックの並べ替え後に事後的な差分符号化操作を行う必要がなくなる。すなわち、トランスコーダによるように、DC係数を符号化してメモリに格納した後に復号して検索するという余分な処理を回避することができる。
【００７６】
図11において、画像を回転させる方法の別の特定の例示的実施形態の流れ図が描かれており、一般に1100として示されている。一般に、画像回転方法1100は、図1乃至7に描かれているシステムのうちの1つまたは複数によって実行されてもよく、またはその他の処理システムもしくはこれらのものの組み合わせによって実行されてもよい。例えば、カメラを有する携帯用電子デバイスは、画像1100を回転させる方法を実行するためのコンピュータ（例えば、携帯用電子デバイスのプロセッサ）実行可能な命令コードを格納するコンピュータ可読媒体（例えば、メモリ）を備えることができる。
【００７７】
1102において、ハードウェアJPEG符号化器の入力で回転信号が受信される。ある特定の実施形態において、回転信号は、図2の回転信号220であってもよい。ある特定の実施形態において、画像獲得デバイスの画像感知器は、回転信号に反応するものであってもよい。回転信号220に基づいて、ハードウェアJPEG符号化器から画像獲得デバイスに走査順序信号が送られることによって、画像獲得デバイスにおける走査順序を修正することができる。1104において、画像に対応する画像データが受信される。画像データは、複数の画像ブロックを含んでいる。画像データは、画像の第2の行によって直接後続される画像の第1の行として受信されてもよい。1106において、第1の行の第1のブロックの第1のDC係数値が行バッファに格納される。ある特定の実施形態において、行バッファは、図2の行バッファ204であってもよい。1108において、画像の回転操作の間に、画像の第1の行の第1のブロックの第1のDC係数値を画像の第2の行の第1のブロックの第2のDC係数値と比較することによって、第1の差分DC値が計算される。1110において、第2の行の第1のブロックの第2のDC係数値が行バッファに格納されることができる。1112において、回転操作を完了する前に、第1の差分DC値が図1の画像格納装置140または図2のメモリ216のようなメモリに格納される。
【００７８】
1114において、画像の第1の行の第2のブロックの第3のDC係数値が格納される。画像の第2の行の第2のブロックの第4のDC係数値を画像の第1の行の第2のブロックの第3のDC係数値と比較することによって、第2の差分DC値が計算される。第2の差分DC値は、図1の画像格納装置140または図2のメモリ216のようなメモリに格納される。
【００７９】
1116において、RSTマーカーとDC係数とを含む符号化されたJPEGデータが受信され、および最後のMCUのビットストリームの末尾とRSTマーカーとの間のパディングビットの数を示すRSTマーカー中のデータが上書きされる。パディングビットの数によって、前のMCUビットストリームの末尾をより容易に識別することが可能となって、そしてこのことによって、MCUの最後のブロックについての輝度（Y）および彩度（Cb, Cr）についてのDC予測値を前記RSTマーカーの隣に挿入することが可能となる。DC予測値を使用することによって、MCU境界を越えた差分符号化を適用することができ、その結果として、ビットストリームの部分の復号を必要とすることなくRSTマーカーを削除することができる。1118において、トランスコーダにおいてRSTマーカー中のデータを読むことによって、パディングビットの数を読み、RSTマーカーを削除し、およびMCUのJPEGデータストリームを復号せずにDC係数を読むことができる。それゆえ、ある実施形態において、トランスコーダは、格納されているJPEGビットストリーム中のDC係数の差分DC値への置換を効率的に行うことができる。
【００８０】
図12において、回転順の差分符号化を使用する回転操作モジュールを含むワイヤレス通信デバイスのある特定の例示的実施形態が描かれており、一般に1200として示されている。デバイス1200は、汎用プロセッサ、デジタル信号プロセッサ（DSP）、または画像プロセッサのようなプロセッサ1210を含んでおり、プロセッサ1210は、メモリ1232に連結され、また回転順の差分符号化を使用する回転操作モジュール1264にも連結されている。例示的一例において、回転操作モジュール1264は、メモリ1232に格納されていてプロプロセッサ1210によって実行されるプログラム命令を使用することによって、実行可能である。その他の実施形態において、回転操作モジュール1264は、ハードウェア、ファームウェア、または両者の任意の組合せにおいて実装されてもよく、また図1乃至11に描かれている実施形態のうちの1つまたは複数のものにしたがって動作するものであってもよい。
【００８１】
例えば、回転操作を行なうハードウェアおよび／またはファームウェアは、フィールドプログラマブルゲートアレイ（FPGA）、トランジスタ−トランジスタ論理（TTL）または特定用途向けIC（ASIC）のような何らかのプログラム可能またはハードコード化されている論理によって、全体的または部分的に実装されてもよい。
【００８２】
カメラ1270は、カメラインターフェース1268を介してプロセッサ1210に連結されている。カメラ1270は。スチールカメラ、ビデオカメラまたはこれらのものの任意の組合せを含むものであってもよい。カメラインターフェース1268は、獲得されて処理された画像データ1280をメモリ1232に格納することを含むカメラ1270の操作を制御するように調整されている。
【００８３】
図12はまた、プロセッサ1210とディスプレイ1228とに連結されているディスプレイコントローラ1226を示している。符号化器／復号器（CODEC）1234はまた、プロセッサ1210に連結されることもできる。スピーカ1236およびマイクロフォン1238は、CODEC 1234に連結されることができる。
【００８４】
図12はまた、ワイヤレスインターフェース1240がプロセッサ1210とワイヤレスアンテナ1242とに連結されることができることを示している。ある特定の実施形態において、プロセッサ1210、ディスプレイコントローラ1226、メモリ1232、CODEC 1234、ワイヤレスインターフェース1240、カメラインターフェース1268および回転操作モジュール1264は、システム・イン・パッケージまたはシステム・オン・チップのデバイス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のアプリケーションプロセッサのチップセット1370にも連結されている。画像感知器デバイス1322は、回転操作モジュール1364を含んでいる。回転操作モジュール1364は、例えば、図1、2、7または13のシステムのうちの1つまたは複数のものを実装することにより、図4乃至6または8乃至11の実施形態のうちのいずれかにしたがって動作することにより、またはこれらのものの何らかの組み合わせにより、回転順の差分符号化を使用することによって、アプリケーションプロセッサのチップセット1370に画像データを提供する前に、画像を回転させることができることを特徴としている。
【００８６】
回転操作モジュール1364は、画像アレイ1366から画像データを受信するように連結されており、この連結は、画像アレイ1366のアナログ出力を受信して、回転操作モジュール1364にデジタル画像データを供給するようにされているアナログ／デジタル変換機1326のようなものを介して行われる。
【００８７】
画像感知器デバイス1322はまた、プロセッサ1310を含むものであってもよい。ある特定の実施形態において、プロセッサ1310は、回転順の差分符号化機能性を使用する回転操作を実行するように構成されている。別の実施形態において、回転操作モジュール1364は、別個の画像処理回路として実装される。
【００８８】
プロセッサ1310はまた、図1のモジュール112乃至120によって実行される操作の1つまたは複数の操作のような、追加の画像処理操作を行なうように構成されることもできる。プロセッサ1310は、処理された画像データをアプリケーションプロセッサのチップセット1370に提供することによって、さらなる処理、送信、格納、表示、またはこれらのものの任意の組合せを行うことができる。
【００８９】
当業者であれば、本件明細書において開示されている実施形態に関連して説明されている様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア、または両者の組み合わせとして実装可能であるということをさらに理解するであろう。上において様々な例示的なコンポーネント、ブロック、構成、モジュール、回路およびステップがそれらの機能性の観点から一般に説明された。そのような機能性がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課される設計上の制約に依存する。当業者は、各々の特定のアプリケーションについて異なる方法を用いることによって、本件明細書開示の機能性を実装することができるであろう。しかし、そのような実装が本件開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００９０】
本件明細書において開示されている実施形態に関連して説明されている方法またはアルゴリズムのステップは、ハードウェアにおいて直接に、またはプロセッサによって実行されるソフトウェアモジュールにおいて、または両者の組み合わせにおいて具体化されることが可能である。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電子的EPROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスクROM(CD-ROM)または当該技術分野におけるその他の任意の形式の公知の記憶媒体の中に存在することができる。典型的な記憶媒体は、プロセッサが記憶媒体から情報を読み取るまたは記憶媒体に情報を書き込むことができるようにプロセッサと連結されている。その代わりに、記憶媒体がプロセッサと一体化されてもよい。プロセッサおよび記憶媒体がASICの中に存在し、そのASICがコンピューティングデバイスまたはユーザー端末の中に存在してもよい。その代りに、プロセッサおよび記憶媒体がコンピューティングデバイスまたはユーザー端末の中に離散的コンポーネントとして存在してもよい。
【００９１】
開示されている実施形態についての上記の説明は、どのような当業者も本件開示の実施形態を製作また使用することができるように提供されている。これらの実施形態に対する様々な修正は、当業者にとって容易に明白であろう。また、本件明細書において定義されている原則は、本件開示の範囲から逸脱することなく、その他の実施形態に対して適用可能である。かくして、本件発明は、本件明細書に示されている実施形態に限られることを意図されているものではなく、以下の請求項によって定義されているような原則と新規な特徴と矛盾しない最大限広い範囲が与えられるべきものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]
画像の画像データを受信することと、ここにおいて、前記画像データは、複数の画像ブロックを含んでいる、
前記画像の第１の行の第１のブロックの第１のDC係数値を前記画像の第２の行の第１のブロックの第２のDC係数値と比較することによって、前記画像の回転操作の間に第１の差分DC値を計算することと、および
前記回転操作を完了する前に前記第１の差分DC値をメモリに格納することと
を具備する方法。
[Ｃ２]
前記第２の行は、前記第１の行の直後に受信される、Ｃ１の方法。
[Ｃ３]
前記第１のDC係数値をバッファに格納することをさらに具備するＣ１の方法。
[Ｃ４]
前記第１のDC係数値は、第１の最小符号化単位(MCU）の輝度ブロックに対応する、Ｃ３の方法であって、前記第１のMCUに対応する第１の彩度赤色のDC係数値および第１の彩度青色のDC係数値を前記バッファに格納することをさらに具備するＣ３の方法。
[Ｃ５]
前記第２のDC係数値を前記バッファに格納することをさらに含むＣ３の方法。
[Ｃ６]
前記画像の前記第１の行の第２のブロックの第３のDC係数値を格納することと、
第２の差分DC値を計算するために、前記画像の前記第２の行の第２のブロックの第４のDC係数値を前記画像の前記第１の行の前記第２のブロックの前記第３のDC係数値と比較することと、および
前記第２の差分DC値を前記メモリに格納することと
をさらに含むＣ１の方法。
[Ｃ７]
前記複数のうちの各々のブロックは、前記画像の最小符号化単位（MCU）内の複数のブロックのうちの１つである、Ｃ１の方法。
[Ｃ８]
前記MCUは、４つの輝度ブロックおよび２つの彩度ブロックを含む、Ｃ７の方法。
[Ｃ９]
ハードウェア符号化器の入力において回転信号を受信することと、および
前記回転信号に基づいて前記ハードウェア符号化器から画像獲得デバイスに走査順序信号を送ることによって、前記画像獲得デバイスにおける走査順序を修正することと、
をさら含むＣ１の方法。
[Ｃ１０]
前記ハードウェア符号化器は、ハードウェアJPEG符号化器を具備する、Ｃ９の方法。
[Ｃ１１]
前記回転信号は、画像感知器の方向を示す、Ｃ９の方法。
[Ｃ１２]
RSTマーカーとDC係数とを含む符号化されたJPEGデータを受信することと、および
最後の最小符号化単位（MCU）の末尾と前記RSTマーカーとの間のパディングビットの数を示す前記RSTマーカー中のデータを上書きすることと、
をさらに含むＣ１の方法。
[Ｃ１３]
前記DC係数は、前記RSTマーカーに隣接して挿入される、Ｃ１２の方法であって、トランスコーダにおいて、前記RSTマーカー中の前記データを読むことによって、前記パディングビット数を読み、前記RSTマーカーを削除し、および前記MCUのJPEGデータストリームを復号せずに前記DC係数を読むことをさらに具備するＣ１２の方法。
[Ｃ１４]
前記第１の差分DC値は、エントロピー符号化された値として格納される、Ｃ１の方法。
[Ｃ１５]
画像の画像データを受信するように構成されているブロック回転モジュールと、ここにおいて、前記画像データは、複数の画像ブロックを含んでいる、および
前記ブロック回転モジュールに連結されている差分DC計算モジュールであって、前記画像の第１の行の第１のブロックの第１のDC係数値を前記画像の第２の行の第１のブロックの第２のDC係数値と比較することによって、前記画像の回転操作の間に差分DC値を計算するように構成されている差分DC計算モジュールと
を具備する装置。
[Ｃ１６]
前記差分DC計算モジュールに連結されているバッファをさらに具備するＣ１５の装置であって、前記第１のDC係数値は、前記バッファに格納され、および前記第２のDC係数値も前記バッファに格納される、Ｃ１５の装置。
[Ｃ１７]
前記第１のDC係数値は、第１の最小符号化単位（MCU）の輝度ブロックに対応する、Ｃ１６の装置であって、前記第１のMCUに対応する第１の彩度赤色DC係数値および第１の彩度青色DC係数値を前記バッファに格納することをさらに具備するＣ１６の装置。
[Ｃ１８]
前記差分DC計算モジュールに連結されているトランスコーダをさらに具備するＣ１５の装置であって、前記トランスコーダは、RSTマーカーとDC係数とを含む符号化されたJPEGデータを受信し、および最後の最小符号化単位（MCU）の末尾と前記RSTマーカーとの間のパディングビットの数を示す前記RSTマーカー中のデータを上書きするように構成されている、Ｃ１５の装置。
[Ｃ１９]
前記画像を獲得するカメラと、および
前記符号化されたJPEGデータを生成するように構成されている符号化器と
をさらに具備するＣ１８の装置。
[Ｃ２０]
前記符号化されたDC係数は、前記RSTマーカーに先立って受信される、Ｃ１８の装置。
[Ｃ２１]
画像の画像データを受信するための手段と、ここにおいて、前記画像データは画像ブロックを含んでいる、および
前記画像の第１の行の第１のブロックの第１のDC係数値を前記画像の第２の行の第１のブロックの第２のDC係数値と比較することによって、前記画像の回転操作の間に第１の差分DC値を計算するための手段と、ここにおいて、第１の差分DC値を計算するための手段は、画像データを受信するための前記手段に連結されている、
を具備する装置。
[Ｃ２２]
前記受信画像データを符号化するための手段と、ここにおいて、前記画像データは、回転を受けるべき前記画像のラスタースキャンに対応し、前記画像は、画像ブロックの複数行と複数列とを有している、
符号化された画像ブロックにおいて回転画像データを表わすように画像ブロックを符号化するための手段と、
前記画像の前記回転に基づいて、読み出し順に、前記符号化された画像ブロックの読み出し位置を決定するための手段と、
前記読み出し位置にしたがって、前記符号化された画像ブロックの差分DC値を生成するための手段と、および
前記符号化された画像ブロックを格納するための手段と
をさらに具備するＣ２１の装置。
[Ｃ２３]
RSTマーカーとDC係数とを含む符号化されたJPEGデータを受信するための手段と、および最後の最小符号化単位（MCU）の末尾と前記RSTマーカーとの間のパディングビットの数を示す前記RSTマーカー中のデータを上書きするための手段とをさらに具備するＣ２１の装置。
[Ｃ２４]
前記符号化された画像ブロックを読み出し順に検索するための手段をさらに具備するＣ２２の装置。
[Ｃ２５]
コンピュータ実行可能コードを格納するコンピュータ可読記憶媒体であって、
画像の回転操作の間に前記画像の第１の行の第１のブロックの第１のDC係数値を格納するためのコンピュータ実行可能コードと、
前記画像の第２の行の第１のブロックの第２のDC係数値を前記第１のDC係数値と比較することによって、第１の差分DC値を計算するためのコンピュータ実行可能コードと、および
前記回転操作を完了する前に前記第１の差分DC値を格納するためのコンピュータ実行可能コードと
を具備するコンピュータ可読記憶媒体。
[Ｃ２６]
前記画像の前記第１の行の第２のブロックの第３のDC係数値を格納するためのコンピュータ実行可能コードと、
前記画像の前記第２の行の第２のブロックの第４のDC係数値を前記画像の前記第１の行の前記第２のブロックと比較することによって、第２の差分DC値を計算するコンピュータ実行可能コードと、および
前記第２の差分DC値を格納するためのコンピュータ実行可能コードと
をさらに具備するＣ２５のコンピュータ可読記憶媒体。
[Ｃ２７]
ハードウェアJPEG符号化器の入力において回転信号を受信するためのコンピュータ実行可能コードと、および
前記回転信号に基づいてハードウェアJPEG符号化器から画像獲得デバイスに走査順序信号を送信することによって、前記画像獲得デバイスにおける走査信号を修正するためのコンピュータ実行可能コードと
をさらに具備するＣ２５のコンピュータ可読記憶媒体。
[Ｃ２８]
リスタート（RST）マーカーとDC係数とを含む符号化されたJPEGデータを受信するためのコンピュータ実行可能コードと、および
最後の最小符号化単位（MCU）の末尾と前記RSTマーカーとの間のパディングビットの数を示す前記RSTマーカー中のデータを上書きするためのコンピュータ実行可能コードと
をさらに具備するＣ２５のコンピュータ可読記憶媒体。
【図１】
0005502988.tif 000002
【図２】
0005502988.tif 000003
【図３】
0005502988.tif 000004
【図４】
0005502988.tif 000005
【図５】
0005502988.tif 000006
【図６】
0005502988.tif 000007
【図７】
0005502988.tif 000008
【図８】
0005502988.tif 000009
【図９】
0005502988.tif 000010
【図１０】
0005502988.tif 000011
【図１１】
0005502988.tif 000012
【図１２】
0005502988.tif 000013
【図１３】
0005502988.tif 000014