(57)【要約】【課題】メモリーを使わないで具現されるイメージ回転方法を提供する。【解決手段】本発明のイメージ回転方法は、（ａ）ｍ×ｎ（ｍ、ｎは、自然数）のマクロブロックを有する入力イメージをＪＰＥＧエンコーダで読み込む段階と、（ｂ）前記ＪＰＥＧエンコーダでエンコード時に前記マクロブロックのイメージデータそれぞれを所定の角度で所定の方向に回転させる段階と、（ｃ）前記ＪＰＥＧエンコーダでエンコード時に前記回転されたイメージデータそれぞれに対して手順を決めて入力する段階と、（ｄ）ＪＰＥＧデコーダでデコーディング時にプログラムを使用して初めに入力されたマクロブロックの手順を変えて出力するように命令する段階と、及び（ｅ）所定の角度で所定の方向に回転されたイメージを出力する段階を提供する。【選択図】図４
2011003191.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）ｍ×ｎ（ｍ、ｎは自然数）のマクロブロックを有する入力イメージをＪＰＥＧエンコーダに読み込む段階と、
（ｂ）前記ＪＰＥＧエンコーダでエンコード時に前記マクロブロックのイメージデータそれぞれを所定の角度で所定の方向に回転させる段階と、
（ｃ）前記ＪＰＥＧエンコーダでエンコード時に前記回転されたイメージデータそれぞれに対して手順を決めて入力する段階と、
（ｄ）ＪＰＥＧデコーダでデコーディング時にプログラムを使用して初めに入力されたマクロブロックの手順を変えて出力するように命令する段階と、及び
（ｅ）所定の角度で所定の方向に回転されたイメージを出力する段階と、を含むことを特徴とするメモリーを使わないで具現されるイメージ回転方法。
【請求項２】
前記（ｂ）段階で前記マクロブロックのイメージデータは、ラインバッファーのアドレスコントロールを通じて所定の角度で所定の方向に回転されることを特徴とする請求項１に記載のメモリーを使わないで具現されるイメージ回転方法。
【請求項３】
前記（ｂ）段階で前記イメージデータは、半時計方向に９０度、１８０度、または２７０度回転させることを特徴とする請求項１または２に記載のメモリーを使わないで具現されるイメージ回転方法。
【請求項４】
前記（ｂ）段階で前記イメージデータは、時計方向に９０度、１８０度、または２７０度回転させることを特徴とする請求項１または２に記載のメモリーを使わないで具現されるイメージ回転方法。
【請求項５】
前記（ｃ）段階で前記回転されたイメージデータそれぞれに相応するｍ×ｎ（ｍ、ｎは、自然数）マクロブロックに対して行列の順に入力手順を指定して順に入力することを特徴とする請求項１に記載のメモリーを使わないで具現されるイメージ回転方法。
【請求項６】
前記（ｄ）段階で前記プログラムは、前記入力イメージが出力される回転方向、角度とマッチングされるようにするために前記マクロブロックの出力手順を指定する座標信号（ｆｌａｇ  ｓｉｇｎａｌ）を生成することを特徴とする請求項１に記載のメモリーを使わないで具現されるイメージ回転方法。
【請求項７】
請求項１の前記（ａ）ないし前記（ｅ）段階を具現するＪＰＥＧエンコーダとＪＰＥＧデコーダを含むＪＰＥＧ処理システムを具備したことを特徴とするメモリーを使わないで具現されるイメージ回転装置。
【請求項８】
前記ＪＰＥＧ処理システムは、ＪＰＥＧイメージを処理可能なアプリケーションに内蔵することを特徴とする請求項７に記載のメモリーを使わないで具現されるイメージ回転装置。
【請求項９】
前記アプリケーションは、携帯電話、ピディーエイ（ＰＤＡ）またはピーエムピー（ＰＭＰ）であることを特徴とする請求項８に記載のメモリーを使わないで具現されるイメージ回転装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージ回転方法に関し、より詳細には、マクロブロック単位で処理されるＪＰＥＧエンコーダ（ｅｎｃｏｄｅｒ）及びデコーダ（ｄｅｃｏｄｅｒ）の特性を利用して、ＪＰＥＧ入力イメージをフレームバッファーやラインバッファーのような大きいサイズのメモリーを一切使わないで、所望方向、角度で自由に回転して出力可能にさせるイメージ回転方法に関する。
【背景技術】
【０００２】
ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）は、イメージ圧縮標準として高い圧縮効率のために一番広く使われているグラフィックファイルフォーマットであるので、デジタルカメラ、イメージセンサー（ＣＩＳ）などの多くの分野に使われる。イメージを使用者が願う程度回転させる機能は、すべてのアプリケーション（ａｐｐｌｉｃａｔｉｏｎ）らが取り揃えていなければならない必須要求事項である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２３８４０７号公報。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＪＰＥＧエンコーダへの入力イメージデータをデコーディング（デコード）時に回転させるためには、マクロブロック（ｍａｃｒｏ  ｂｌｏｃｋ）単位で回転する方向程度にイメージデータの再配列をしなければならないために、フレームバッファー（ｆｒａｍｅ  ｂｕｆｆｅｒ）やラインバッファー（ｌｉｎｅ  ｂｕｆｆｅｒ）のような大きいサイズのメモリーを要する。
【０００５】
従来の技術による時イメージ回転機能を具現するためにはフレームバッファー（ｆｒａｍｅ  ｂｕｆｆｅｒ）やラインバッファー（ｌｉｎｅ  ｂｕｆｆｅｒ）のような大きいメモリーに使用が要請されて、これにより回路サイズが大きくなる問題があった。
【０００６】
本発明が解決しようとする技術的課題は、マクロブロック単位で処理されるＪＰＥＧエンコーダ及びデコーダの特性を利用して、イメージをフレームバッファーやラインバッファーのような大きいサイズのメモリーを一切使わないで所望方向、角度で自由に回転する方法を提供することにある。
【課題を解決するための手段】
【０００７】
前記技術的課題を達成するための本発明によるメモリーを使わないで具現されるイメージ回転方法は、（ａ）ｍ×ｎのマクロブロックを有する入力イメージをＪＰＥＧエンコーダに読み込む段階と、（ｂ）前記ＪＰＥＧエンコーダでエンコード時に前記マクロブロックのイメージデータそれぞれを所定の角度で所定の方向に回転させる段階と、（ｃ）前記ＪＰＥＧエンコーダでエンコード時に前記回転されたイメージデータそれぞれに対して手順を決めて入力する段階と、（ｄ）ＪＰＥＧデコーダでデコーディング（デコード）時にプログラムを使用して初めに入力されたマクロブロックの手順を変えて出力するように命令する段階と、及び（ｅ）所定の角度で所定の方向に回転されたイメージを出力する段階を提供する。
【発明の効果】
【０００８】
本発明は、ＪＰＥＧ出力イメージを、メモリーを使わないで願う程度に回転させることができるものであり、メモリーの使用によるオーバーヘッド（ｏｖｅｒｈｅａｄ）が発生しないで、回路サイズを最小化して最近小型のアプリケーションに適用可能な長所がある。
【図面の簡単な説明】
【０００９】
【図１】本発明によるイメージを回転して出力する方法を具現する装置の構成を示すブロック図である。
【図２】本発明によるイメージの構造及びマクロブロックを半時計方向に９０度回転させる過程を示す図である。
【図３】本発明によるデコーディング（デコード）時にマクロブロックの出力手順を変えて入力イメージを半時計方向に９０度回転させて出力する方法を示す図である。
【図４】本発明によるイメージを回転させる方法を示す流れ図である。
【発明を実施するための形態】
【００１０】
以下では、本発明の具体的な実施例を、図面を参照して詳しく説明する。
【００１１】
図１は、本発明によるイメージを回転させて出力する方法を具現する装置の構成を示したものである。
【００１２】
図１を参照すると、入力イメージ１１０、ＪＰＥＧ処理システム１２０、出力イメージ１３０を示して、ＪＰＥＧ処理システム１２０を通じて入力イメージ１１０を９０度、１８０度など願う角度で回転させて出力イメージ１３０をディスプレイする。
【００１３】
入力イメージ１１０は、図２で示したもののように３×４のマクロブロックを有して、それぞれのマクロブロックは、８×８のイメージデータ（Ｉｍａｇｅ  ｄａｔａ、以下、Ｉｄという。）を有する場合３２×２４のイメージ大きさを有する。
【００１４】
ＪＰＥＧ処理システム１２０は、ＪＰＥＧエンコーダ（ＪＰＥＧ  Ｅｎｃｏｄｅｒ）１２１、ＪＰＥＧデコーダ（ＪＰＥＧ  Ｄｅｃｏｄｅｒ）１２３で構成されて、ＪＰＥＧエンコーダ（ＪＰＥＧ  Ｅｎｃｏｄｅｒ）１２１は、ＦＤＣＴ（ｆｏｒｗａｒｄ  ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｓｆｏｒｍ）、量子化（Ｑｕａｎｔｉｚａｔｉｏｎ）、ジグザグスキャン（Ｚｉｇｚａｇ  ｓｃａｎ）、ＶＬＣ（ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｉｎｇ）で構成される。ＦＤＣＴ（ｆｏｒｗａｒｄ  ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｓｆｏｒｍ）は、空間領域データを周波数領域データに変換する機能を遂行して、量子化（Ｑｕａｎｔｉｚａｔｉｏｎ）は周波数領域データを一定なスケールで量子化する機能を遂行する。ジグザグスキャン（Ｚｉｇｚａｇ  ｓｃａｎ）は、ハフマン符号化（Ｈｕｆｆｍａｎ  ｃｏｄｉｎｇ）のためにデータ整列をする機能を遂行して、ＶＬＣ（ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｉｎｇ）は、ハフマンテーブル（Ｈｕｆｆｍａｎ  ｔａｂｌｅ）を利用して可変長さのデータ圧縮をする機能を遂行する。
【００１５】
図２は、本発明によるイメージの構造及びマクロブロックを半時計方向に９０度回転させる過程を示したものである。
【００１６】
図２を参照すると、入力イメージ２１０は３×４行列のマクロブロック（行列の順序どおりに０、１、２、…、１０、１１）を有して、それぞれのマクロブロックは８×８行列のイメージデータ２１３ａ（順に０、１、２、…、６２、６３）を有する。左側のイメージデータ２１３ａは、イメージデータが回転されない状態を示したものであり、右側のイメージデータ２１３ｂは、イメージデータが半時計方向に９０度回転された時の状態を示したものである。
【００１７】
以下、図２を図１と連携して、入力イメージのマクロブロックを半時計方向に９０度回転させる方法を詳しく説明する。
【００１８】
ＪＰＥＧエンコーダ（ＪＰＥＧ  Ｅｎｃｏｄｅｒ）１２１は、エンコード時にスタートブロックであるＦＤＣＴ（ｆｏｒｗａｒｄ  ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｓｆｏｒｍ）で半時計方向に９０度あらかじめ回転されたイメージデータ２１３ｂそれぞれを含んだマクロブロックの入力手順（行列の順序どおりに０、１、２、…、１０、１１）を指定して順番どおりに入力する。
【００１９】
もうすこし詳しくＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのラインバッファーを通じてマクロブロック単位のデータがＦＤＣＴに入力される方法を説明すると、マクロブロック２１３単位のイメージデータは、ラインバッファーのアドレスコントロールを通じて所望方向（言わば、半時計方向に９０度回転）に回転されたイメージデータ２１３ｂに変換されてＦＤＣＴに入力される。
【００２０】
これで、従来技術すなわち、ＪＰＥＧエンコーダに入力されたあらかじめ回転されなかったイメージデータをＪＰＥＧデコーダでデコーディング（デコード）時にマクロブロック単位で回転する方向及び角度と同一にイメージデータを再配列時にフレームバッファー（ｆｒａｍｅ  ｂｕｆｆｅｒ）またはラインバッファー（ｌｉｎｅ  ｂｕｆｆｅｒ）などのメモリーを要する問題点を解決することができる。
【００２１】
図３は、本発明によるデコーディング（デコード）時にマクロブロックの出力手順を変えて入力イメージを半時計方向に９０度回転させて出力する方法を示したものである。
【００２２】
図３を参照すると、入力イメージ３１０は３×４行列のマクロブロックを有して、それぞれのマクロブロックは、エンコード（ｅｎｃｏｄｉｎｇ）時に半時計方向にあらかじめ９０度回転されたマクロブロックのイメージデータ２１３ｂを含んでいる。
【００２３】
以下、図３を図１と連携してＪＰＥＧデコーダ（ＪＰＥＧ  Ｄｅｃｏｄｅｒ）１２３からデコーディング（ｄｅｃｏｄｉｎｇ）（デコード）時に初めに入力されたマクロブロック入力手順と異なる手順になるようにマクロブロックの出力手順を変える方法を詳しく説明する。
【００２４】
下記、［数１］及び［数２］は入力イメージの各マクロブロックに出力されるイメージの各マクロブロック手順をあらかじめ計算された座標信号（ｆｌａｇ  ｓｉｇｎａｌ）を発生させるようにあらかじめプログラムされたものを示したものであり、これをソフトウェア的に簡単に行えば、メモリーの追加的な使用なしに３×４行列の入力されたイメージを半時計方向に９０度回転された４×３行列のイメージで出力されることが分かる。
【００２５】
［数１］
ｎ’（ｎ）
＝（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ）−ｍｂ＿ｈｅｉｇｈｔ×（ｎ＋１）
（ここで、ｎ＝０、１、２、３）
【００２６】
［数２］
ｎ’（ｎ）＝ｎ’（ｎ−４）＋１（ここで、ｎ＝４、５、…、１０、１１）
【００２７】
ここで、ｎ’はマクロブロックの出力手順、ｎはマクロブロックの入力手順を意味して、ｍｂ＿ｗｉｄｔｈは横のイメージをなすマクロブロックの個数、ｍｂ＿ｈｅｉｇｈｔは縦のイメージをなすマクロブロックの個数を意味する。
【００２８】
本実施例で、３×４行列でマクロブロックの入力手順（ｎ）が行列の順に０、１、２、…、１０、１１である場合、ｍｂ＿ｗｉｄｔｈ＝４、ｍｂ＿ｈｅｉｇｈｔ＝３である。したがって、ｎ＝０、１、２、３である場合［数１］を適用すると、それぞれｎ’（０）＝９、ｎ’（１）＝６、ｎ’（２）＝３、ｎ’（３）＝０になって、ｎ＝４、５、６、７、８、９、１０、１１である場合［数２］を適用すると、それぞれｎ’（４）＝１０、ｎ’（５）＝７、ｎ’（６）＝４、ｎ’（７）＝１、ｎ’（８）＝１１、ｎ’（９）＝８、ｎ’（１０）＝５、ｎ’（１１）＝２になる。
【００２９】
すなわち、マクロブロックの出力順序ｎ’を４×３の行列で再配列すると、ｎ’（３）＝０、ｎ’（７）＝１、ｎ’（１１）＝２、ｎ’（２）＝３、ｎ’（６）＝４、ｎ’（１０）＝５、ｎ’（１）＝６、ｎ’（５）＝７、ｎ’（９）＝８、ｎ’（０）＝９、ｎ’（４）＝１０、ｎ’（８）＝１１になって、これをマクロブロックの入力順序ｎで表示すると、右側図３２０のように３、７、１１、２、６、１０、１、５、９、０、４、８の順に出力されることが分かる。
【００３０】
前記実施例は、３×４の大きさを有する入力イメージに対して半時計方向の９０度に対してイメージを回転する方法を説明したが、これと類似な方式を適用してｍ×ｎ（ｍ、ｎは自然数）の大きさを有する入力イメージに対して半時計方向または時計方向の９０度、１８０度、２７０度、３６０度などに対して実施することができることは当然である。
以下、入力イメージがｍ×ｎ（ｍ、ｎは、自然数）の大きさを有する場合（すなわち、ｍｂ＿ｗｉｄｔｈ＝ｎ、ｍｂ＿ｈｅｉｇｈｔ＝ｍである場合）入力イメージに対して半時計方向に９０度、１８０度、２７０度で回転させる場合（時計方向に対してそれぞれ２７０度、１８０度、９０度回転）に適用される一般化された数式を整理すると、下記のようになる。
【００３１】
１）半時計方向に９０度回転する場合（時計方向に２７０度回転する場合）。
【００３２】
［数３］
ｎ’（ｎ）
＝（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ）−ｍｂ＿ｈｅｉｇｈｔ×（ｎ＋１）
（ここで、ｎ＝０〜ｍｂ＿ｗｉｄｔｈ−１）
【００３３】
［数４］
ｎ’（ｎ）＝ｎ｀（ｎ−ｍｂ＿ｗｉｄｔｈ）＋１
（ここで、ｎ＝ｍｂ＿ｗｉｄｔｈ〜（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ−１））
【００３４】
２）半時計方向に１８０度回転する場合（時計方向に１８０度回転する場合）。
【００３５】
［数５］
ｎ’（ｎ）＝（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ）−（ｎ＋１）
（ここで、ｎ＝０〜（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ−１））
［数６］
ｎ’（ｎ）＝ｎ’（ｎ−ｍｂ＿ｗｉｄｔｈ）＋１
（ここで、ｎ＝ｍｂ＿ｗｉｄｔｈ〜（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ−１））
【００３６】
３）半時計方向に２７０度回転する場合（時計方向に９０度回転する場合）。
【００３７】
［数７］
ｎ’（ｎ）＝（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ）−（ｎ＋１）
（ここで、ｎ＝０〜ｍｂ＿ｗｉｄｔｈ）
［数８］
ｎ’（ｎ）＝ｎ’（ｎ−ｍｂ＿ｗｉｄｔｈ）−１
（ここで、ｎ＝ｍｂ＿ｗｉｄｔｈ〜（ｍｂ＿ｗｉｄｔｈ×ｍｂ＿ｈｅｉｇｈｔ−１））
【００３８】
図４は、本発明によるイメージを回転する方法を流れ図で示したものである。
【００３９】
第１段階（Ｓ１０）は、所定の大きさを有する入力イメージをＪＰＥＧエンコーダに読み込む段階を有する。
【００４０】
第２段階（Ｓ２０）は、ＪＰＥＧエンコーダでエンコード時にマクロブロックのイメージデータそれぞれを使用者が願う所定の角度で所定の方向にあらかじめ回転させる段階を有する。
【００４１】
第３段階（Ｓ３０）は、ＪＰＥＧエンコーダでエンコード時に前記第２段階（Ｓ２０）で具現された回転されたイメージデータそれぞれに対して手順を決めて入力する段階を有する。
【００４２】
前記入力順序は、前記回転されたイメージデータそれぞれに相応する３×４マクロブロックに対して行列の手順（０、１、２ないし１１）によって順に入力される。
【００４３】
第４段階（Ｓ４０）は、ＪＰＥＧデコーダでデコーディング（デコード）時にプログラムを使用して初めに入力されたマクロブロックの手順を変えて出力するように命令する段階を有する。
【００４４】
前記プログラムを使用して３×４マクロブロックの大きさを有する入力イメージを半時計方向に９０度回転させる方法は、前で既に詳しく説明した事があるので省略する。
【００４５】
第５段階（Ｓ５０）は、前記第４段階（Ｓ４０）のプログラムの指定によって所定の角度で所定の方向に回転されたイメージを出力する段階を有する。
【００４６】
以上では本発明に対する技術思想を添付図面とともに上述したが、これは本発明の望ましい実施例を例示的に説明したものであり、本発明を限定するものではない。また、本発明が属する技術分野で通常の知識を持った当業者ならば誰も本発明の技術的思想の範疇を離脱しない範囲内で多様な変形及び模倣が可能であることは明白な事実である。
【産業上の利用可能性】
【００４７】
以上詳述したように、本発明によれば、ＪＰＥＧ出力イメージを、メモリーを使わないで願う程度に回転させることができるものであり、メモリーの使用によるオーバーヘッド（ｏｖｅｒｈｅａｄ）が発生しないで、回路サイズを最小化して最近小型のアプリケーションに適用可能である。
【符号の説明】
【００４８】
１１０…入力イメージ、
１２０…ＪＰＥＧ処理システム、
１３０…出力イメージ。
【図１】
2011003191.tif 000003
【図２】
2011003191.tif 000004
【図３】
2011003191.tif 000005
【図４】
2011003191.tif 000006