JP4155874B2 - Image conversion apparatus and image conversion method - Google Patents

Image conversion apparatus and image conversion method Download PDF

Info

Publication number
JP4155874B2
JP4155874B2 JP2003157596A JP2003157596A JP4155874B2 JP 4155874 B2 JP4155874 B2 JP 4155874B2 JP 2003157596 A JP2003157596 A JP 2003157596A JP 2003157596 A JP2003157596 A JP 2003157596A JP 4155874 B2 JP4155874 B2 JP 4155874B2
Authority
JP
Japan
Prior art keywords
image
data
dct coefficient
encoded data
display
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
Application number
JP2003157596A
Other languages
Japanese (ja)
Other versions
JP2004363750A (en
Inventor
光伸 吉永
泰雄 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2003157596A priority Critical patent/JP4155874B2/en
Publication of JP2004363750A publication Critical patent/JP2004363750A/en
Application granted granted Critical
Publication of JP4155874B2 publication Critical patent/JP4155874B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、JPEG等で用いられる圧縮された画像データのように、1フレーム毎に単位ブロックに複数分割され、各単位ブロック内の各画素データ毎に離散コサイン変換(DCT:(Discrete Cosine Transform))して第1DCT係数が求められ、さらに量子化した第1量子化DCT係数を圧縮して第1符号化データとして格納された第1の画像に対して、画像を回転又は反転させることで第2符号化データを生成して格納する画像変換装置の改良に関し、特に、格納された符号化データを各単位ブロック内の各画素データまで復元せずに、DCT係数のままで画像を回転又は反転させる画像変換装置の改良に関する。
【0002】
【従来の技術】
従来から、デジタルカメラ、あるいは、カメラ機能付き携帯電話等でデジタル画像を記録したり伝送する際の画像データとしては、JPEG(Joint Photographic Expertment Group)方式による圧縮が一般的に用いられている。JPEG方式で格納あるいは伝送された第1符号化データを回転あるいは反転させようとする場合、圧縮されている第1符号化データをデコードして各画素データを復元して原画像を得て、その原画像を回転加工した後、再度JPEG画像データへのエンコードを行うことから、回転加工後における画像データのエンコードの際に不可避的に生じる演算誤差によって、画像の質が劣化していた。
【0003】
このJPEG方式の第1符号化データの画像を回転させる場合に、圧縮画像データのヘッダ解析し、符号化データを復号化し)、逆量子化処理を行って復元されたMCU(minimum code unit)ブロック(=単位ブロック)毎ブロック毎のDTC係数データに対して、各DCT係数データを縦・横に入れ替える処理と、DCT係数データに反転用の係数を掛ける処理とを行うことで指定された回転加工を施す画像変換装置が知られている(例えば、特許文献1参照)。
【0004】
【特許文献1】
特開2001−223878号公報(第3−5ページ、図8)
【0005】
【発明が解決しようとする課題】
しかしながら、特許文献1の画像変換装置においては、原画像の幅および高さがMCUブロック単位である場合には、画像の表示品質を劣化させずに表示できたが、原画像の幅および高さがMCUブロック単位ではない場合には、回転された画像の表示領域と非表示領域画像データを正しく認識することができないことから、MCUブロック内における回転された画像の表示位置が正しくなく、正しく回転された画像を表示させることができなかった。
【0006】
具体的には、例えば、特許文献1の画像変換装置では、指定された回転の種類が「左90度回転」であれば、回転前の元の画像の符号化データ(第1符号化データ)をMCUブロック毎に復元した各DCT係数(第1DCT係数)について、縦・横に入れ替える処理と、各第1DTC係数の配列のうち上下方向に非対称な成分である奇数番目の行の係数に「−1」を掛ける処理を行い、画像を回転させたときの各MCUブロックの回転状態に対応するように、各MCUブロック毎にブロック内部のDCT係数を再配置する。次に、回転の種類に応じて、画像を回転させたときの各MCUブロックの異動先の位置を求めて、各MCUブロックをその異動先の位置に再配置する。そして、再配置されたMCUブロック毎の各DCT係数を量子化し、その量子化データを符号化することによりデータ圧縮を行い、圧縮したデータに画像の幅、高さ等の各種情報からなるヘッダ(例えば、回転種類が「左90度回転」と「右90度回転」のときには画像情報の高さと幅が入れ替えるように修正したもの)を付加し、新たな画像の符号化データ(第2符号化データ)を作成している。
【0007】
しかし、特許文献1の画像変換装置では、JPEGの画像データにおける原画像がMCUブロック内の縦横の各画素数よりも少ない場合に表示領域と非表示領域に分類されることを想定しておらず、画像を回転させた場合には、MCUブロック内の画像の非表示領域に画素データが配置されてしまい、回転された画像が正しく表示されなくなり、画像の表示品質を劣化させていた。
【0008】
本発明は、かかる従来の課題に鑑みてなされたものであり、格納された符号化データを各単位ブロック内の各画素データまで復元せずに、DCT係数のままで画像を回転又は反転させる画像変換装置において、原画像の幅および高さがMCUブロック単位ではない場合に、正しく回転された画像を表示させることができる画像変換装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
上述した目的を達成するために、本発明の画像変換装置は、1フレーム毎に複数の単位ブロックに分割され、各単位ブロック内の各画素データ毎に離散コサイン変換(DCT)して第1DCT係数が求められ、第1DCT係数が量子化されて第1量子化DCT係数とされ、第1量子化DCT係数が圧縮された第1符号化データとして格納される第1の画像に対して、第1符号化データを復号して第1量子化DCT係数を得る復号手段と、第1量子化DCT係数を逆量子化して第1DCT係数を得る逆量子化手段と、第1DCT係数を単位ブロック毎に画像の回転又は反転に対応するようにデータ配置を変更し、変換係数を乗算し、単位ブロック毎の配置を変更することで加工された第2DCT係数を得るデータ加工手段と、第2DCT係数を量子化して第2量子化DCT係数とする量子化手段と、第2量子化DCT係数を圧縮して第2符号化データとする圧縮手段と、第2符号化データを格納する格納手段とを備えることで、第1の画像を回転または反転させた第2の画像に変換する画像変換装置であって、さらに、第2符号化データにより表示される画像の、各単位ブロック毎の表示開始位置、高さ、幅の表示領域情報を演算する演算手段と、演算手段により演算された表示領域情報を第2符号化データに付加する情報付加手段とを備え、演算手段は、表示領域情報を演算する際に、単位ブロックにおける表示画像領域と非表示画像領域を判別し、画像の回転又は反転に対応するように非表示画像領域の配置を変更するように演算し、格納手段は、前記表示領域情報が付加された第2符号化データを格納することを特徴とする。
【0010】
また、本発明の画像変換方法は、1フレーム毎に複数の単位ブロックに分割され、各単位ブロック内の各画素データ毎に離散コサイン変換(DCT)して第1DCT係数が求められ、第1DCT係数が量子化されて第1量子化DCT係数とされ、第1量子化DCT係数が圧縮された第1符号化データとして格納される第1の画像に対して、第1符号化データを復号して第1量子化DCT係数を得るステップと、第1量子化DCT係数を逆量子化して第1DCT係数を得るステップと、第1DCT係数を単位ブロック毎に画像の回転又は反転に対応するようにデータ配置を変更し、変換係数を乗算し、単位ブロック毎の配置を変更することで加工された第2DCT係数を得るステップと、第2DCT係数を量子化して第2量子化DCT係数とするステップと、第2量子化DCT係数を圧縮して第2符号化データとするステップと、第2符号化データを格納するステップとを有することで、第1の画像を回転または反転させた第2の画像に変換する画像変換方法であって、さらに、第2符号化データにより表示される画像の、各単位ブロック毎の表示開始位置、高さ、幅の表示領域情報を演算するステップと、表示領域情報を第2符号化データに付加するステップとを有し、表示領域情報を演算するステップでは、単位ブロックにおける表示画像領域と非表示画像領域を判別し、画像の回転又は反転に対応するように非表示画像領域の配置を変更し、第2符号化データを格納するステップでは、表示領域情報が付加された第2符号化データを格納することを特徴とする。
【0011】
【発明の実施の形態】
以下、本発明を、その実施の形態を示す図面に基づいて具体的に説明する。
【0012】
実施の形態1.
図1は、本発明の画像変換装置としてデジタルカメラの場合を示したブロック図である。
図1のデジタルカメラは、撮影した画像のデータをJPEG方式の符号化データで格納する撮影モードと、格納された符号化データを読み出して表示させる表示モードとが設定可能であり、さらに表示モードでは、格納された画像の符号化データを反転あるいは回転させて表示させるものである。
【0013】
図1のデジタルカメラでは、その撮影モード時に、レンズ1の後方に配置されて光電変換するCCD2は、タイミング発生器(TG)3からのタイミング信号および垂直ドライバ4により駆動され、一定周期毎に光電変換出力を1画面分(1フレームの画素数は1280×960画素)出力する。この光電変換出力については、サンプルホールド回路(S/H)5でサンプルホールドされ、A/D変換器6でデジタル信号に変換され、カラープロセス回路7でカラープロセス処理が実施される。カラープロセス回路7では、入力したデジタル信号がR、G、Bデータに変換され、デジタルの輝度成分および色差成分のマルチプレクス信号(Y、Cb、Crデータ)に変換されて、DMA(Direct Memory Access)コントローラ8に出力される。
【0014】
図2は、1フレームの画素数が1280×960画素の画像データである場合の単位ブロック(MCUブロック)の配置および構成を示す図である。
図2(a)の各MCUブロックにおける輝度成分および色差成分のマルチプレクス信号Y、Cb、Crデータは、1フレームの横縦1280×960画素の画像データ位置(配置)に対して、図2(b)に示したように縦横8画素毎のブロックを縦横に2個ずつ4個配置する縦横16画素の輝度成分(Y)データブロック(0)〜(79)が最上位行に並び、同輝度成分(Y)データブロック(4720)〜(4799)が最下位行に並んでいる。一方、色差成分(Cb)、(Cr)データブロックは、1フレームの横縦1280×960画素の画像データ位置(配置)に対して縦横2画素を平均することで横縦を640×480画素の画像データ位置(配置)とし、図2(c)、(d)に示したように縦横8画素からなり、所謂4:1:1のデータになっている。また、DMAコントローラ8は、カラープロセス回路7のY、Cb、Crデータ出力を、同じくカラープロセス回路7の同期信号、メモリ書き込みイネーブル、クロック出力を用いて一度DMAコントローラ8内部のバッファ(不図示)に書き込み、DRAMインターフェース(I/F)9を介してDRAM10にDMA転送を行う。
【0015】
図1のCPU11は、CCD2からの経路で入力したY、Cb、CrデータをDRAMI/F9を介してDRAM10にDMA転送終了した後に、再びDRAMI/F9を介してDRAM10からそのY、Cb、Crデータを読み出し、VRAMコントローラ12を介してVRAM13に書き込む。デジタルビデオエンコーダ(以下、ビデオエンコーダと記す)14は、VRAMコントローラ12を介してVRAM13からそのY、Cb、Crデータを周期的に読み出し、これらのデータを元にビデオ信号を生成して表示装置15に出力する。これにより、撮影モードの状態の表示装置15には、現在CCD2から取り込まれている画像情報に基づくスルー画像を表示することができる。
【0016】
CPU11には、メインスイッチ、撮影/表示モード切換えスイッチ、機能選択キー、シャッターキー、画像回転処理用の実施ボタン等を含む操作部16が接続されている。CPU11は、シャッターキーが押された記録(保存:格納)の状態では、DRAM10に書き込まれている1フレーム分のY、Cb、Crデータを、DRAMI/F9を介してMCU単位でY、Cb、Crの各コンポーネント毎に、すなわち、図2(a)に示すように1フレームの画像データを横80×縦60ブロック(「0」〜「4799」)に分割した16×16画素からなるMCUブロック毎に読み出してJPEG処理部17に送る。CPU11は、JPEG処理部17で、送られたデータにDCT変換、量子化、符号化といった処理を実施して圧縮した後、不揮発性メモリであるフラッシュメモリ18に書き込む。DCT変換では、MCUブロック毎のデータ(以下、単にMCUデータという。)は、図2(b)に示すように「Y0」〜「Y3」の4個の8×8画素のブロックの輝度成分データと、1個ずつの8×8画素のブロックの色差成分データ「Cb」、「Cr」とを1組として個々のブロック毎に、周波数成分の大きさを示す各画素と同数の64個のDCT係数へ変換される。
【0017】
本実施の形態のCPU11は、例えば、第1DCT係数を単位ブロック毎に画像の回転又は反転に対応するようにデータ配置を変更し、変換係数を乗算し、単位ブロック毎の配置を変更することで加工された第2DCT係数を得ることで画像データの回転加工等を実施するデータ加工手段としての機能と、第2符号化データにより表示される画像の、各単位ブロック毎の表示開始位置、高さ、幅の表示領域情報を演算し、その演算をする際に、単位ブロックにおける表示画像領域と非表示画像領域を判別し、画像の回転又は反転に対応するように非表示画像領域の配置を変更する演算手段としての機能と、演算手段により演算された表示領域情報を第2符号化データのヘッダに記載して付加する情報付加手段としての機能を有する。
【0018】
また、本実施の形態のJPEG処理部17は、第2量子化DCT係数を圧縮して第2符号化データとする符号化手段としての機能と、第1符号化データを復号して第1量子化DCT係数を得ると共に、第2符号化データを画像表示のために復号する場合には、第2符号化データから前記表示領域情報を読み出して復号する復号手段としての機能と、第2DCT係数を量子化して第2量子化DCT係数とする量子化手段としての機能と、第1量子化DCT係数を逆量子化して第1DCT係数を得る逆量子化手段としての機能等の、JPEGに基づくデータの圧縮と伸張機能を有する。また、本実施の形態のVRAM13は、表示領域情報が付加された第2符号化データを格納する格納手段としての機能を有する。
【0019】
図3は、8×8画素のDCT係数(周波数成分の大きさ)のデータブロックを示す図である。
但し、図3中の数字は実際の係数値ではなくデータの配置を示す番号である。横方向(X方向)に各画素に対応する0〜7番目のDCT係数のデータが1行に並び、その下(Y方向)に向かって順次、8〜15番目、16〜23番目、24〜31番目というように8個ずつのDCT係数のデータの行が並び、最下段(8番目)の行に56〜63番目の8個のDCT係数のデータが並ぶ。
【0020】
そして、図2(a)に示した1フレーム分のY,Cb,Crデータの圧縮処理及びフラッシュメモリ18への全圧縮データの書き込みが終了すると、CPU11が再度CCD2からDRAM10への経路を起動する。
【0021】
CPU11によるデジタルカメラ各部の制御は、プログラムROM19に記録された動作プログラムに従い実施される。また、プログラムROM19には、後述する回転加工モードの動作時に使用される係数配置テーブルおよび上下反転用、左右反転用、180度回転用の各係数テーブルが記憶されている。
【0022】
図4は、回転加工モードの動作時に使用される係数配置テーブルおよび上下反転用、左右反転用、180度回転用の各係数テーブルを示す図である。
図4(a)は係数配置テーブルT1を示し、図4(b)は上下反転用の係数テーブルT2を示し、図4(c)は左右反転用の係数テーブルT3を示し、図4(d)は180度回転用の係数テーブルT4を示す。
【0023】
図4(a)の係数配置テーブルT1は、図3に示した初期位置に配置されているDCT係数データKの配置の縦(Y方向)・横(X方向)を入れ替えた配列順を示す番号データにより構成されている。上下反転用、左右反転用、180度回転用の各係数テーブルT2〜T4は、各DCT係数データKの係数値を変換するための係数データによって構成されており、各係数テーブルT2〜T4において、「1」は当該箇所のDTC係数に1を掛けるつまり演算しないを意味し、「−1」は当該箇所のDTC係数に−1を掛けるという意味である。
【0024】
図4(b)の上下反転用係数テーブルT2は、各DTC係数の配列のうち上下方向に非対称な成分である奇数番目の行を「−1」としたものである。図4(c)の左右反転用係数テーブルT3は、左右方向に非対称な成分である偶数番目の列を「−1」としたものである。図4(d)の180度回転用係数テーブルT4は、奇数番目の行を「−1」とし、それに続けて偶数番目の列を「−1」としたものである。
【0025】
図5は、JPEGの逆量子化処理されたMCUデータがDRAM内に順次配置されたようすを示す図である。
図5(a)は、回転加工が無い場合のMCUブロック(0)に対応するMCUデータを示し、図5(f)は、左90度回転加工に対応するMCUブロック(4720)に対応するMCUデータを示し、図5(g)は、右90度回転加工に対応するMCUブロック(79)に対応するMCUデータを示し、図5(d)は、180度回転加工に対応するMCUブロック(4799)に対応するMCUデータを示し、図5(e)は、X=Yを軸として反転させた場合のMCUブロックに対応するMCUデータを示す。
【0026】
図5(z)は、例えば、図1のDRAM10の作業領域に、1フレーム分の全ての画素データに対して逆量子化処理で取得されたMCUデータが、図2のMCUブロック(0)〜MCUブロック(4799)までの4800個のMCUデータに対応する画像ブロックの数(4800個:(0)〜(4799))だけ順次配置された場合を示している。DRAM10の作業メモリ領域内には、1フレーム分の全てのMCUデータが「Y0」〜「Y3」、「Cb」、「Cr」毎のDCT係数データKが、画像ブロックの数(4800個:(0)〜(4799))だけ所定順に並んだ状態となる。
【0027】
図6は、MCUブロックの縦横画素数よりも縦横画素が少ない原画像を回転させる場合の様子を示す図である。
図6(z)は、MCUブロックの縦横画素数16×16に対して横14×縦15の原画像の画像データの配置を示す図である。図6(a)は、図6(z)の原画像の画像データにおける図中に白抜き矢印で示したMCUブロックの先頭データ位置から14列目の縦列データを15行目と16行目に複写し、先頭データ位置から15行目の横列(行)データを16行目に複写して形成されるMCUブロックの画像データ配置を示す図である。図6(b)は、図6(a)におけるMCUブロックの複写された画像データを表示する場合で、図6(z)に示した原画像が表示されない領域(非表示領域)をハッチング表示することにより原画像と同様な画像として表示できることを示す図である。
【0028】
図6(c)は、図6(a)におけるMCUブロックの複写された画像データを右(時計回り)方向に90度回転させた場合のMCUブロックの画像データ配置を示す図である。この図6(c)の場合には、図6(a)の画像データに対して図4(a)の係数配置テーブルT1と図4(c)の左右反転用係数テーブルT3が用いられる。
【0029】
図6(d)は、図6(a)におけるMCUブロックの複写された画像データを従来の方法で右(時計回り)方向に90度回転させた場合のMCUブロックの画像データを表示する場合で、図6(c)に示した画像が表示されない領域(非表示領域)をハッチング表示した配置を示す図である。この図6(d)の場合の非表示領域のハッチング表示は、図6(a)の画像データに対して図4(a)の係数配置テーブルT1が用いられるため、MCUブロックの先頭データ位置から16列目の縦列データが非表示領域としてハッチング表示され、先頭データ位置から15行目と16行目の横列(行)データが非表示領域としてハッチング表示される。
【0030】
図6(e)は、図6(a)におけるMCUブロックの複写された画像データを本発明の方法で右(時計回り)方向に90度回転させた場合のMCUブロックの画像データを表示する場合で、図6(c)に示した画像が表示されない領域(非表示領域)をハッチング表示した配置を示す図である。この図6(e)の場合の非表示領域のハッチング表示は、図6(a)の画像データに対して図4(a)の係数配置テーブルT1が用いられる場合であるが、MCUデータのヘッダに格納する情報により表示位置を修正するため、MCUブロックの先頭データ位置から1列目の縦列データが非表示領域としてハッチング表示され、先頭データ位置から15行目と16行目の横列(行)データが非表示領域としてハッチング表示される。
【0031】
図6(f)は、図6(a)におけるMCUブロックの複写された画像データを180度回転させた場合のMCUブロックの画像データ配置を示す図である。この図6(f)の場合には、図6(a)の画像データに対して図4(d)の180度回転用係数テーブルT4が用いられる。
【0032】
図6(g)は、図6(a)におけるMCUブロックの複写された画像データを従来の方法で180度回転させた場合のMCUブロックの画像データを表示する場合で、図6(f)に示した画像が表示されない領域(非表示領域)をハッチング表示した配置を示す図である。この図6(g)の場合の非表示領域のハッチング表示は、図6(f)の画像データに対して図4(a)の係数配置テーブルT1は用いられないため、MCUブロックの先頭データ位置から15列目と16列目の縦列データが非表示領域としてハッチング表示され、先頭データ位置から16行目の横列(行)データが非表示領域としてハッチング表示される。
【0033】
図6(h)は、図6(f)におけるMCUブロックの複写された画像データを本発明の方法で左(反時計回り)方向に90度回転させた場合のMCUブロックの画像データを表示する場合で、図6(f)に示した画像が表示されない領域(非表示領域)をハッチング表示した配置を示す図である。この図6(h)の場合の非表示領域のハッチング表示は、図6(f)の画像データに対して図4(a)の係数配置テーブルT1が用いられない場合であるが、MCUデータのヘッダに格納する情報により表示位置を修正するため、MCUブロックの先頭データ位置から15列目と16列目の縦列データが非表示領域としてハッチング表示され、先頭データ位置から1行目の横列(行)データが非表示領域としてハッチング表示される。
【0034】
図6(i)は、図6(a)におけるMCUブロックの複写された画像データを左(反時計回り)方向に90度回転させた場合のMCUブロックの画像データ配置を示す図である。この図6(i)の場合には、図6(a)の画像データに対して図4(a)の係数配置テーブルT1と図4(b)の上下反転用係数テーブルT2が用いられる。
【0035】
図6(j)は、図6(i)におけるMCUブロックの複写された画像データを従来の方法で左(反時計回り)方向に90度回転させた場合のMCUブロックの画像データを表示する場合で、図6(i)に示した画像が表示されない領域(非表示領域)をハッチング表示した配置を示す図である。この図6(j)の場合の非表示領域のハッチング表示は、図6(i)の画像データに対して図4(a)の係数配置テーブルT1が用いられるため、MCUブロックの先頭データ位置から16列目の縦列データが非表示領域としてハッチング表示され、先頭データ位置から15行目と16行目の横列(行)データが非表示領域としてハッチング表示される。
【0036】
図6(k)は、図6(i)におけるMCUブロックの複写された画像データを本発明の方法で左(反時計回り)方向に90度回転させた場合のMCUブロックの画像データを表示する場合で、図6(i)に示した画像が表示されない領域(非表示領域)をハッチング表示した配置を示す図である。この図6(k)の場合の非表示領域のハッチング表示は、図6(i)の画像データに対して図4(a)の係数配置テーブルT1が用いられる場合であるが、MCUデータのヘッダに格納する情報により表示位置を修正するため、MCUブロックの先頭データ位置から16列目の縦列データが非表示領域としてハッチング表示され、先頭データ位置から1行目と2行目の横列(行)データが非表示領域としてハッチング表示される。
【0037】
ここで、図6を用いて回転加工後のMCUデータにおける画像の表示開始位置、表示用の高さと幅について具体的に説明する。
図6の一部に示す網点でハッチング表示された領域は、通常表示されない画像領域を示している。図6(z)に示したJPEG原画像の画素データは、画像サイズ14×15画素であるが、Y、Cb、Cr比が1:1:1で、MCUデータとなる段階でMCUブロックに合わせてデータの複写が実施されて図6(a)で示すように画像サイズが16×16画素の画像データとなる。
【0038】
この場合のDCT係数のデータは、実際に格納や伝送される符号化データとしてはMCUブロックの全画素を満たすように保有していることになる。具体的には、図6(a)で示すように、JPEGの画素データとして存在しない縦の列(右から1、2番目の列)は、実際に表示すべき表示領域の一番右の列(MCUブロックでは右から3番目の列)を複写している。つまり、白抜き矢印で示したMCUブロックの先頭データ位置から14列目の縦列データを15行目と16行目に複写している。また、JPEGの画素データとして存在しない横の行(下から1番目の行)は表示すべき一番下の行(下から2番目の行)を複写している。つまり、MCUブロックの先頭データ位置から15行目の横列(行)データを16行目に複写している。
【0039】
図6(a)のMCUデータの画像データを「右90度回転」させた場合の画像データが図6(c)であり、「180度回転」させた場合の画像データが図6(f)であり、「左90度回転」させた場合の画像データが図6(i)である。これらの回転させた画像データを従来の方法によりそのまま表示させようとすると、「右90度回転」させた場合の表示画像データが図6(d)のようになり、「180度回転」させた場合の表示画像データが図6(g)のようになり、「左90度回転」させた場合の表示画像データが図6(j)のようになる。
【0040】
図6(d)の従来方法による表示画像については、右から1番目の列の画像は非表示領域で隠されてしまい、逆に左から1列目の複写された列の画像が表示されてしまう。図6(g)の従来方法による表示画像については、右から1〜2番目の列の画像は非表示領域で隠されてしまい、逆に左から1〜2列目の複写された列の画像が表示されてしまう。また、下から1番目の行の画像は非表示領域で隠されてしまい、逆に上から1〜2行目の複写された行の画像が表示されてしまう。図6(j)の従来方法による表示画像については、下から1〜2番目の行の画像は非表示領域で隠されてしまい、逆に上から1〜2行目の複写された列の画像が表示されてしまう。
【0041】
本発明では、図6(d)、(g)、(j)に示した従来方法による表示画像に対し、各々の回転加工後の画像が正しく表示されるように、下記式(1)〜(3)により、回転加工後の画像の開始位置、表示の為の高さと幅を演算する。なお、下記式(1)〜(3)では、原画像の高さをHsおよび幅をWsとし、MCUブロックの各画素を満たすように修正した画像の高さをHmおよび幅をWmとし、回転加工後の表示用の画像の高さをHd、幅をWd、開始位置縦をY、開始位置横をXとする。
【0042】
回転加工が「右90度回転」の場合
Y=0、X=Hm−Hs、Hd=Ws、Wd=Hs …(1)
【0043】
回転加工が「左90度回転」の場合
Y=Wm−Ws、X=0、Hd=Ws、Wd=Hs …(2)
【0044】
回転加工が「180度回転」の場合
Y=Hm−Hs、X=Wm−Ws、Hd=Hs、Wd=Ws …(3)
【0045】
図7は、回転の種類に対応させてDRAM内の1フレーム分の画像データに対して、MCUデータ毎に輝度成分のDCTデータ(Y0〜Y3)を再配置したようす示す図である。
図7(a)は、図2のMCUブロック(0)の配置に対応するMCUブロックの画像データに対し、回転加工が無い場合を示す図である。図7(b)は、図2のMCUブロック(0)の配置に対応するMCUブロックの画像データに対し、X=Yを軸として図7(a)の縦と横の画像データを入れ替えて反転させた場合を示す図である。
【0046】
図7(c)は、図2のMCUブロック(0)の配置に対応するMCUブロックの画像データに対し、図4(a)のテーブルT1と図4(c)のテーブルT3を用いて図7(a)の画像データを右(時計回り)方向に90度回転させた場合を示す図である。図7(d)は、図2のMCUブロック(0)の配置に対応するMCUブロックの画像データに対し、図4(d)のテーブルT4を用いて図7(a)の画像データを180度回転させた場合を示す図である。図7(e)は、図2のMCUブロック(0)の配置に対応するMCUブロックの画像データに対し、図4(a)のテーブルT1と図4(b)のテーブルT2を用いて図7(a)の画像データを左(反時計回り)方向に90度回転させた場合を示す図である。
【0047】
次に、以上の構成および機能を備える本発明のデジタルカメラの動作を説明する。
図8は、本発明のデジタルカメラにおける撮影画像を回転加工する場合の動作を示すフローチャートである。
図8は、本発明のデジタルカメラにおいて、デジタルカメラの使用者による所定のキー操作により、回転加工モードが選択され、加工対象の画像が決定され、予め用意されている回転の種類が指定された場合の動作である。
【0048】
JPEG方式により圧縮されている画像データに対し、例えば、回転加工を施すことにより得られた再圧縮データを記録又は伝送場合には、まず圧縮画像データ(JPEGデータ)のヘッダ解析を行い、画像の幅、高さ、量子化テーブルや符号化テーブル等の情報を取得する(S1)。その後、符号データを復号化し、逆量子化処理を行う。これによりMCU(minimum code unit)ブロック(単位ブロック)毎のDCT係数データを復元し、さらに逆DTC変換を行いMCUブロック毎の画素データを復元し、そのMCUブロック毎の画素データを再配置することにより原画像を復元する。
【0049】
そして、復元した画素データ毎に回転後の配置個所を演算し、それを配置することにより回転加工を施し、しかる後、加工後の画像をMCU毎の画像ブロックに分割した後、DCTを行い、変換したDCT係数を量子化し、量子化データを符号化することによりデータ圧縮を行う。そして、圧縮したデータに、その画像の幅、高さ等の各種情報からなるヘッダを付加し、これにより得られた再圧縮データを記録又は伝送している。
【0050】
CPU11は、所定のキー操作により加工対象の画像が選択されると、フラッシュメモリ18からJPEG方式により圧縮されている当該画像の符号化データ(画像データ)を読み出してJPEG処理部17に送る。これに伴い、JPEG処理部17はヘッダ解析を行い、画像の幅、高さ、量子化テーブルや符号化テーブル等の情報を取得する(S1)。その後、CPU11は、符号化テーブルに従いデータを復号し(S2)、量子化テーブルに従い復号データに対し逆量子化処理を行う(S3)。これにより、符号化データを前述したMCU(minimum code unit)ブロック(単位ブロック)毎のDCT係数データに復元することができる。なお、ここまでの動作は表示モードによって記録画像を表示装置に表示させる場合も同様である。
【0051】
CPU11は、使用者に指定された回転の種類に応じ、各MCUデータを構成する各ブロック「Y0」〜「Y3」、「Cb」、「Cr」のDCT係数データK、つまりDTC係数からなる配列データを加工する(S4)。この場合の加工に際しては、例えば、指定された回転の種類が「左90度回転」であれば、MCUブロック毎に各DCT係数データKを図4(a)に示した係数配置テーブルT1に示される配置に従い縦・横に入れ替える処理と、図4(b)に示したDCT係数データKに上下反転用係数テーブルT2の係数を掛ける処理を実施する。
【0052】
CPU11は、例えば、図5に示したDRAM10の作業メモリ領域内のMCUデータ毎に、輝度成分のDCT係数データ(Y0〜Y3)を図7に示したように回転の種類に応じて再配置する(S5)。新たな配置順は、画像を回転(又は反転)させたとき、それと同様に回転(又は反転)する各MCUブロックの回転(又は反転)状態に対応するものである。また、MCUデータ内のDCT係数データ列(Y0〜Y3)の再配置が終了したら、CPU11は、図7に示したように回転の種類に応じて図2に示した1フレームの画像データ中のMCUデータの位置を再配置する(S6)。各MCUデータの移動先は、画像を回転(又は反転)させたときの各MCUブロックの位置に対応して決められる位置である。しかる後、JPEG処理部17は、再配置が終了したMCUデータを量子化し(S7)、量子化データを符号化することによりデータ圧縮を行う(S8)。
【0053】
CPU11は、原画像サイズがMCUブロックサイズと等しいか否かを判断し(S9)、等しい場合(S9:YES)にはステップS12に進むが、等しくない場合(S9:NO)には、CPU11は、回転加工前の原画像の画像情報の高さと幅を、MCU画素サイズの単位になるように修正し、その上で、上記した式(1)〜(3)を用いて、回転の種類に応じて加工後の画像の開始位置、表示用の高さと幅を演算する(S10)。なお、ステップS9の判断は、例えば、CPU11の演算量および処理時間を減少させるためのものであり、CPU11の演算量および処理時間に余裕がある場合等には省略しても良い。
【0054】
MCU画素サイズとは、本実施形態に示したようにY、Cb、Cr比が4:1:1である場合には16×16であり、Y、Cb、Cr比が4:4:4の場合には8×8である。従って、ステップS10では、例えば、Y、Cb、Cr比が4:1:1、原画像サイズ160×120画素の場合には、120画その方が16で除算できないので、まず、160×128画素に修正してから、上記した式(1)〜(3)を用いて、回転の種類に応じて加工後の画像の開始位置、表示用の高さと幅を演算する。また、前述したように回転種類が「左90度回転」と「右90度回転」のときにも、画像情報の高さと幅が入れ替える際に、画素サイズ単位になるように修正し、その上で、上記した式(1)〜(3)を用いて、回転の種類に応じて加工後の画像の開始位置、表示用の高さと幅を演算する。
【0055】
その後、圧縮したデータに画像の幅、高さ等の各種情報、および演算した加工後の画像の開始位置、表示の為の高さと幅をヘッダに付加し(S11)、上記処理を行った画像データを新たな画像としてフラッシュメモリ18に書き込む(S12)。
【0056】
図9は、図8のフローチャートにおけるステップS10の演算をさらに詳しく示すフローチャートである。
原画像サイズがMCUブロックサイズと等しくない場合には、CPU11は、まず、指示されている回転加工の種類が右90度回転であるか否かを判断し(S21)、右90度回転である場合(S21:YES)には、上記した式(1)を用いて回転後の画像データの表示位置、高さ、及び幅を演算し(S22)、ステップS10の処理を終了する。
【0057】
右90度回転でない場合(S21:NO)には、指示されている回転加工の種類が左90度回転であるか否かを判断し(S23)、左90度回転である場合(S23:YES)には、上記した式(2)を用いて回転後の画像データの表示位置、高さ、及び幅を演算し(S24)、ステップS10の処理を終了する。
【0058】
左90度回転でない場合(S23:NO)には、指示されている回転加工の種類が180度回転であるか否かを判断し(S25)、180度回転である場合(S25:YES)には、上記した式(3)を用いて回転後の画像データの表示位置、高さ、及び幅を演算し(S26)、ステップS10の処理を終了する。180度回転でない場合(S25:NO)には、そのままステップS10の処理を終了する。なお、ステップS21、S23、および、S25の順番は、図9の順番に指定されるものではなく前後が入れ替わっても良い。
【0059】
図10は、図8のフローチャートにおけるステップS12で書き込まれた画像データを読み出して表示させる場合のフローチャートである。
CPU11は、回転された画像の表示指示があるか否かを判断し(S31)、表示指示が無い場合(S31:NO)には、再びステップS31を実施して待ち受ける。表示指示があった場合(S31:YES)には、フラッシュメモリ18から読み出した画像データのヘッダから表示画像の情報を読み出し(S32)、その表示画像の情報に従い画像データを画面表示させる(S33)。
【0060】
上記ステップS33で画像を表示させる場合には、画像データのヘッダに格納されている加工後の表示用の画像の高さ、幅、開始位置縦、開始位置横の各情報を用いて表示する。その結果、例えば、回転加工の種類が「右90度回転」のときには、ヘッダに格納された加工後の画像の開始位置、表示の為の高さと幅の情報に基づいて、図6(e)に示したように表示され、回転加工の種類が「180度回転」のときには、ヘッダに格納された加工後の画像の開始位置、表示の為の高さと幅の情報に基づいて、図6(h)に示したように表示され、回転加工の種類が「左90度回転」のときには、ヘッダに格納された加工後の画像の開始位置、表示の為の高さと幅の情報に基づいて、図6(k)に示したように表示されることになる。すなわち、本実施の形態では、回転加工後の画像を正しく表示できるようになる。
【0061】
以上のように本実施の形態においては、回転および反転加工処理後の画像データ表示領域を演算して保持するため、格納された符号化データを各単位ブロック内の各画素データまで復元せずに、DCT係数のままで画像を回転又は反転させる画像変換装置において、原画像の幅および高さがMCUブロック単位ではない任意の寸法の場合でも、圧縮されている画像を回転加工して再圧縮する際に、画質を劣化させることなく再圧縮でき、その結果、正しく回転された画像を表示させることができる。
【0062】
なお、以上説明した実施の形態では、圧縮画像を回転又は反転させるものを示したが、これ以外にも、事前に変換内容が決められている加工を施すものであれば、画像サイズが変化する加工、例えば拡大・縮小、切り取りなどの加工を実施する際に本発明を適用してもよい。本発明では、その場合であっても、任意の画像に対して、圧縮されている画像を加工し、画質を劣化させることなく再圧縮できる。
【0063】
また、上記した実施の形態では、加工対象の画像がJPEG方式で圧縮されたものについて説明したが、JPEG方式以外のDCTを利用する他の方式や、さらにDCT以外にもDCT係数と同様に各画素に対応する配列データを有する単位データ毎に圧縮を行う方式であれば、他の画像圧縮方式に本発明を採用してもよい。本発明では、その場合であっても、任意の画像に対して、圧縮されている画像を加工し、画質を劣化させることなく再圧縮できる。
【0064】
また、上記した実施の形態では、JPEG方式による画像データの撮影、表示が可能なデジタルカメラに用いた場合について述べたが、本発明はこれに限られるものではなく、JPEG方式の画像データにより画像データの格納あるいは伝送を実施する装置であれば他の装置においても本発明を適用することができ、その場合においても前述した効果が得られる。
【0065】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
【0066】
上記したように本発明においては、回転および反転加工処理後の画像データ表示領域を演算して保持するため、格納された符号化データを各単位ブロック内の各画素データまで復元せずに、DCT係数のままで画像を回転又は反転させる画像変換装置において、原画像の幅および高さがMCUブロック単位ではない任意の寸法の場合でも、圧縮されている画像を回転加工して再圧縮する際に、画質を劣化させることなく再圧縮でき、その結果、正しく回転された画像を表示させることができる。
【図面の簡単な説明】
【図1】 本発明の画像変換装置としてデジタルカメラの場合を示したブロック図である。
【図2】 (a)〜(d)は1フレームの画素数が1280×960画素の画像データである場合の単位ブロック(MCUブロック)の配置及び構成を示す図である。
【図3】 8×8画素のDCT係数(周波数成分の大きさ)のデータブロックを示す図である。
【図4】 (a)〜(d)は回転加工モードの動作時に使用される係数配置テーブルおよび上下反転用、左右反転用、180度回転用の各係数テーブルを示す図である。
【図5】 (z)、(a)、(d)〜(g)はJPEGの逆量子化処理されたMCUデータがDRAM内に順次配置されたようすを示す図である。
【図6】 (z)、(a)〜(k)はMCUブロックの縦横画素数よりも縦横画素が少ない原画像を回転させる場合の様子を示す図である。
【図7】 (a)〜(e)は回転の種類に対応させてDRAM内の1フレーム分の画像データに対して、MCUデータ毎に輝度成分のDCTデータ(Y0〜Y3)を再配置したようす示す図である。
【図8】 本発明のデジタルカメラにおける撮影画像を回転加工する場合の動作を示すフローチャートである。
【図9】 図8のフローチャートにおけるステップS10の演算をさらに詳しく示すフローチャートである。
【図10】 図8のフローチャートにおけるステップS12で書き込まれた画像データを読み出して表示させる場合のフローチャートである。
【符号の説明】
1 レンズ、 2 CCD、 3 タイミング発生器(TG)、 4 垂直ドライバ、 5 サンプルホールド回路(S/H)、 6 A/D変換器、 7 カラープロセス回路、 8 DMA(Direct Memory Access)コントローラ、 9DRAMインターフェース(I/F)、 10 DRAM、 11 CPU、12 VRAMコントローラ、 13 VRAM、 14 デジタルビデオエンコーダ(ビデオエンコーダ)、 15 表示装置、 16 操作部、 17 JPEG処理部、 18 フラッシュメモリ、 K DCT係数データ、 T1係数配置テーブル、 T2 上下反転用係数テーブル、 T3 左右反転用係数テーブル、 T4 180度回転用係数テーブル、 Y0〜Y3 輝度成分データブロック、 Cb、Cr 色差成分データブロック。
[0001]
BACKGROUND OF THE INVENTION
In the present invention, like compressed image data used in JPEG or the like, a plurality of unit blocks are divided for each frame, and discrete cosine transform (DCT: (Discrete Cosine Transform)) is performed for each pixel data in each unit block. ) To obtain the first DCT coefficient, and further compress or compress the quantized first quantized DCT coefficient to store the first encoded data to rotate or invert the image. 2. Improvement of image conversion apparatus that generates and stores encoded data, and in particular, rotates or inverts an image while maintaining the DCT coefficient without restoring the stored encoded data to each pixel data in each unit block. The present invention relates to an improvement of an image conversion apparatus.
[0002]
[Prior art]
Conventionally, JPEG (Joint Photographic Expert Group) compression is generally used as image data when a digital image is recorded or transmitted by a digital camera or a mobile phone with a camera function. When rotating or inverting the first encoded data stored or transmitted in JPEG format, the compressed first encoded data is decoded to restore each pixel data to obtain an original image, Since the original image is rotated and then encoded into JPEG image data again, the quality of the image is deteriorated due to an inevitable calculation error when encoding the image data after the rotation processing.
[0003]
When rotating the image of the first encoded data of the JPEG method, the header of the compressed image data is analyzed and the encoded data is decoded), and an MCU (minimum code unit) block restored by performing inverse quantization processing (= Unit block) Rotational processing specified by performing processing for switching each DCT coefficient data vertically and horizontally and processing for multiplying DCT coefficient data by a coefficient for inversion with respect to DTC coefficient data for each block. There is known an image conversion apparatus that performs (see, for example, Patent Document 1).
[0004]
[Patent Document 1]
JP 2001-223878 A (page 3-5, FIG. 8)
[0005]
[Problems to be solved by the invention]
However, in the image conversion device of Patent Document 1, when the width and height of the original image are in MCU blocks, the image can be displayed without degrading the display quality. Is not a unit of MCU block, the display area of the rotated image and the non-display area image data cannot be recognized correctly, so the display position of the rotated image in the MCU block is not correct and the image is rotated correctly. The displayed image could not be displayed.
[0006]
Specifically, for example, in the image conversion apparatus of Patent Document 1, if the specified rotation type is “left 90 degree rotation”, the encoded data of the original image before rotation (first encoded data) For each DCT coefficient (first DCT coefficient) restored for each MCU block, and the coefficient of the odd-numbered row that is an asymmetrical component in the vertical direction in the array of the first DTC coefficients is represented by “− 1 "is performed, and the DCT coefficients in the block are rearranged for each MCU block so as to correspond to the rotation state of each MCU block when the image is rotated. Next, the position of the transfer destination of each MCU block when the image is rotated is obtained according to the type of rotation, and each MCU block is rearranged at the position of the transfer destination. Then, each DCT coefficient for each rearranged MCU block is quantized, the data is compressed by encoding the quantized data, and the header (which includes various information such as the width and height of the image) is added to the compressed data. For example, when the rotation types are “left 90 degree rotation” and “right 90 degree rotation”, the image information height and width are modified to be added), and the encoded data of the new image (second encoding) Data).
[0007]
However, the image conversion apparatus of Patent Document 1 does not assume that the original image in the JPEG image data is classified into a display area and a non-display area when the number of pixels in the vertical and horizontal directions in the MCU block is smaller. When the image is rotated, the pixel data is arranged in the non-display area of the image in the MCU block, the rotated image is not displayed correctly, and the display quality of the image is deteriorated.
[0008]
The present invention has been made in view of such conventional problems, and does not restore the stored encoded data to each pixel data in each unit block, and rotates or reverses the image while maintaining the DCT coefficient. An object of the present invention is to provide an image conversion apparatus capable of displaying a correctly rotated image when the width and height of the original image are not in MCU block units.
[0009]
[Means for Solving the Problems]
In order to achieve the above-described object, the image conversion apparatus of the present invention is divided into a plurality of unit blocks for each frame, and a first DCT coefficient is obtained by performing discrete cosine transform (DCT) for each pixel data in each unit block. The first DCT coefficient is quantized to be the first quantized DCT coefficient, and the first image is stored as the first encoded data in which the first quantized DCT coefficient is compressed. Decoding means for decoding encoded data to obtain first quantized DCT coefficients, dequantizing means for inversely quantizing first quantized DCT coefficients to obtain first DCT coefficients, and images of the first DCT coefficients for each unit block Data processing means for obtaining a second DCT coefficient processed by changing the data arrangement so as to correspond to rotation or inversion, multiplying by a conversion coefficient, and changing the arrangement for each unit block, and a second DCT coefficient Quantization means for generating a second quantized DCT coefficient as a child, compression means for compressing the second quantized DCT coefficient into second encoded data, and storage means for storing the second encoded data Thus, an image conversion device that converts a first image into a rotated or inverted second image, and further, a display start position for each unit block of the image displayed by the second encoded data, Calculating means for calculating display area information of height and width, and information adding means for adding the display area information calculated by the calculating means to the second encoded data; When calculating the display area information, the calculation means determines the display image area and the non-display image area in the unit block, and calculates the arrangement of the non-display image area so as to correspond to the rotation or inversion of the image. And The storage means stores the second encoded data to which the display area information is added.
[0010]
The image conversion method of the present invention is divided into a plurality of unit blocks for each frame, and a first cosine coefficient is obtained by performing discrete cosine transform (DCT) for each pixel data in each unit block. Is quantized to be the first quantized DCT coefficient, and the first encoded data is decoded with respect to the first image stored as the first encoded data in which the first quantized DCT coefficient is compressed. Obtaining a first quantized DCT coefficient; dequantizing the first quantized DCT coefficient to obtain a first DCT coefficient; and arranging the first DCT coefficient in a unit block so as to correspond to image rotation or inversion , Multiplying by the transform coefficient, and changing the arrangement of each unit block to obtain a processed second DCT coefficient, and quantizing the second DCT coefficient into a second quantized DCT coefficient The second image obtained by rotating or inverting the first image by having a step, a step of compressing the second quantized DCT coefficient into second encoded data, and a step of storing the second encoded data An image conversion method for converting to an image of the image, further comprising: calculating display area information of a display start position, height, and width for each unit block of the image displayed by the second encoded data; Adding region information to the second encoded data, In the step of calculating the display area information, the display image area and the non-display image area in the unit block are determined, and the arrangement of the non-display image area is changed so as to correspond to the rotation or inversion of the image, In the step of storing the second encoded data, the second encoded data to which the display area information is added is stored.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be specifically described with reference to the drawings illustrating embodiments thereof.
[0012]
Embodiment 1 FIG.
FIG. 1 is a block diagram showing a case of a digital camera as an image conversion apparatus of the present invention.
The digital camera shown in FIG. 1 can set a shooting mode for storing captured image data as JPEG encoded data, and a display mode for reading out and displaying the stored encoded data. The encoded data of the stored image is displayed by being reversed or rotated.
[0013]
In the digital camera of FIG. 1, in the photographing mode, the CCD 2 arranged behind the lens 1 for photoelectric conversion is driven by the timing signal from the timing generator (TG) 3 and the vertical driver 4, and photoelectrically is output at regular intervals. The converted output is output for one screen (the number of pixels in one frame is 1280 × 960 pixels). The photoelectric conversion output is sampled and held by a sample and hold circuit (S / H) 5, converted into a digital signal by an A / D converter 6, and color process processing is performed by a color process circuit 7. In the color process circuit 7, the input digital signal is converted into R, G, B data, converted into digital luminance component and chrominance component multiplexed signals (Y, Cb, Cr data), and DMA (Direct Memory Access). ) Output to the controller 8.
[0014]
FIG. 2 is a diagram showing the arrangement and configuration of unit blocks (MCU blocks) when the number of pixels in one frame is 1280 × 960 pixel image data.
The multiplex signal Y, Cb, Cr data of the luminance component and chrominance component in each MCU block of FIG. 2A corresponds to the image data position (arrangement) of 1280 × 960 pixels in one frame in FIG. As shown in b), the luminance component (Y) data blocks (0) to (79) of 16 pixels in length and width are arranged in the top row with 4 blocks each having 8 pixels in length and width and arranged in the horizontal and vertical directions. Component (Y) data blocks (4720) to (4799) are arranged in the lowest row. On the other hand, the chrominance component (Cb) and (Cr) data blocks average 640 × 480 pixels horizontally and vertically by averaging two pixels horizontally and vertically with respect to image data positions (arrangements) of 1280 × 960 pixels horizontally and vertically. The image data position (arrangement) is composed of 8 pixels vertically and horizontally as shown in FIGS. 2C and 2D, so-called 4: 1: 1 data. The DMA controller 8 uses the Y, Cb, Cr data output of the color process circuit 7 as well as a buffer (not shown) in the DMA controller 8 once using the synchronization signal, memory write enable, and clock output of the color process circuit 7. And DMA transfer to the DRAM 10 through the DRAM interface (I / F) 9.
[0015]
The CPU 11 in FIG. 1 completes the DMA transfer of the Y, Cb, and Cr data input through the path from the CCD 2 to the DRAM 10 via the DRAM I / F 9, and then the Y, Cb, Cr data from the DRAM 10 again via the DRAM I / F 9. Is written to the VRAM 13 via the VRAM controller 12. A digital video encoder (hereinafter referred to as a video encoder) 14 periodically reads Y, Cb, and Cr data from the VRAM 13 via the VRAM controller 12, generates a video signal based on these data, and generates a display device 15. Output to. Accordingly, a through image based on the image information currently captured from the CCD 2 can be displayed on the display device 15 in the photographing mode.
[0016]
The CPU 11 is connected to an operation unit 16 including a main switch, a shooting / display mode switching switch, a function selection key, a shutter key, an execution button for image rotation processing, and the like. In the state of recording (storing: storing) when the shutter key is pressed, the CPU 11 transfers Y, Cb, Cr data for one frame written in the DRAM 10 in units of MCU via the DRAM I / F 9. For each component of Cr, that is, as shown in FIG. 2A, an MCU block comprising 16 × 16 pixels obtained by dividing one frame of image data into horizontal 80 × vertical 60 blocks (“0” to “4799”). Each time it is read out and sent to the JPEG processing unit 17. The CPU 11 compresses the sent data by performing processes such as DCT conversion, quantization, and encoding on the sent data, and then writes the compressed data in the flash memory 18 that is a nonvolatile memory. In DCT conversion, data for each MCU block (hereinafter simply referred to as MCU data) is luminance component data of four 8 × 8 pixel blocks “Y0” to “Y3” as shown in FIG. In addition, the color difference component data “Cb” and “Cr” of each block of 8 × 8 pixels are set as one set, and for each block, 64 DCTs having the same number as each pixel indicating the magnitude of the frequency component. Converted to a coefficient.
[0017]
For example, the CPU 11 of the present embodiment changes the data arrangement so that the first DCT coefficient corresponds to image rotation or inversion for each unit block, multiplies the conversion coefficient, and changes the arrangement for each unit block. A function as data processing means for performing rotation processing of the image data by obtaining the processed second DCT coefficient, and a display start position and height for each unit block of the image displayed by the second encoded data When calculating the display area information of the width, the display image area and the non-display image area in the unit block are discriminated and the arrangement of the non-display image area is changed so as to correspond to the rotation or inversion of the image. And a function as information adding means for adding display area information calculated by the calculating means in the header of the second encoded data.
[0018]
The JPEG processing unit 17 of the present embodiment also functions as an encoding unit that compresses the second quantized DCT coefficient to obtain second encoded data, and decodes the first encoded data to decode the first quantized data. When obtaining the encoded DCT coefficient and decoding the second encoded data for image display, a function as a decoding means for reading out and decoding the display area information from the second encoded data, and the second DCT coefficient The function of the quantization means to quantize the second quantized DCT coefficient and the function of the inverse quantizing means for dequantizing the first quantized DCT coefficient to obtain the first DCT coefficient, etc. Has compression and decompression functions. In addition, the VRAM 13 of the present embodiment has a function as a storage unit that stores the second encoded data to which the display area information is added.
[0019]
FIG. 3 is a diagram illustrating a data block of DCT coefficients (magnitude of frequency components) of 8 × 8 pixels.
However, the numbers in FIG. 3 are not actual coefficient values but numbers indicating data arrangement. Data of the 0th to 7th DCT coefficients corresponding to the respective pixels in the horizontal direction (X direction) are arranged in one row, and sequentially 8th to 15th, 16th to 23rd, 24th to the bottom (Y direction). Eight DCT coefficient data lines are arranged, such as the 31st line, and the 56th to 63rd eight DCT coefficient data lines are arranged in the bottom (eighth) line.
[0020]
When the compression processing of the Y, Cb, Cr data for one frame and the writing of all the compressed data to the flash memory 18 shown in FIG. 2A are completed, the CPU 11 activates the path from the CCD 2 to the DRAM 10 again. .
[0021]
The control of each part of the digital camera by the CPU 11 is performed according to the operation program recorded in the program ROM 19. Further, the program ROM 19 stores a coefficient arrangement table and coefficient tables for upside down, left and right inversion, and 180 degree rotation used during operation in a rotational machining mode, which will be described later.
[0022]
FIG. 4 is a diagram showing a coefficient arrangement table and coefficient tables for upside down, left side upside down, and 180 degree rotation used during operation in the rotational machining mode.
4A shows the coefficient arrangement table T1, FIG. 4B shows the coefficient table T2 for upside down, FIG. 4C shows the coefficient table T3 for left and right inversion, and FIG. Indicates a coefficient table T4 for 180 ° rotation.
[0023]
The coefficient arrangement table T1 in FIG. 4A is a number indicating the arrangement order in which the arrangement of the DCT coefficient data K arranged at the initial position shown in FIG. 3 is exchanged in the vertical (Y direction) and horizontal (X direction). It consists of data. The coefficient tables T2 to T4 for upside down, left and right inversion, and 180 degree rotation are composed of coefficient data for converting the coefficient values of the respective DCT coefficient data K. In each coefficient table T2 to T4, “1” means that the DTC coefficient at the relevant location is multiplied by 1, that is, no calculation is performed, and “−1” means that the DTC coefficient at the relevant location is multiplied by −1.
[0024]
In the upside down coefficient table T2 in FIG. 4B, odd-numbered rows that are components that are asymmetric in the up and down direction in the array of each DTC coefficient are set to “−1”. In the left-right inversion coefficient table T3 in FIG. 4C, even-numbered columns that are asymmetrical components in the left-right direction are set to “−1”. In the 180 degree rotation coefficient table T4 of FIG. 4D, odd-numbered rows are set to “−1”, and even-numbered columns are set to “−1” subsequently.
[0025]
FIG. 5 is a diagram showing that MCU data subjected to JPEG inverse quantization processing is sequentially arranged in the DRAM.
FIG. 5A shows MCU data corresponding to the MCU block (0) when there is no rotation processing, and FIG. 5F shows MCU data corresponding to the MCU block (4720) corresponding to left 90-degree rotation processing. FIG. 5 (g) shows MCU data corresponding to the MCU block (79) corresponding to the right 90 ° rotation machining, and FIG. 5 (d) shows the MCU block (4799) corresponding to the 180 ° rotation machining. ), And FIG. 5E shows the MCU data corresponding to the MCU block when inverted with X = Y as an axis.
[0026]
FIG. 5 (z) shows, for example, the MCU data acquired by inverse quantization processing for all the pixel data for one frame in the work area of the DRAM 10 of FIG. A case is shown in which the number of image blocks (4800: (0) to (4799)) corresponding to 4800 MCU data up to the MCU block (4799) is sequentially arranged. In the working memory area of the DRAM 10, all the MCU data for one frame is DCT coefficient data K for each of “Y0” to “Y3”, “Cb”, “Cr”, and the number of image blocks (4800 :( 0) to (4799)) are arranged in a predetermined order.
[0027]
FIG. 6 is a diagram illustrating a state in which an original image having fewer vertical and horizontal pixels than the number of vertical and horizontal pixels of the MCU block is rotated.
FIG. 6 (z) is a diagram showing an arrangement of image data of an original image of horizontal 14 × vertical 15 with respect to the vertical / horizontal pixel number 16 × 16 of the MCU block. FIG. 6A shows the column data in the 14th column from the head data position of the MCU block indicated by the white arrow in the image data of the original image in FIG. 6Z in the 15th and 16th rows. It is a figure which shows image data arrangement | positioning of the MCU block formed by copying and copying the row | line | column (row) data of the 15th line from the head data position to the 16th line. FIG. 6B shows a case where the copied image data of the MCU block in FIG. 6A is displayed, and the area (non-display area) where the original image shown in FIG. It is a figure which can be displayed as an image similar to an original image by this.
[0028]
FIG. 6C is a diagram showing the image data arrangement of the MCU block when the copied image data of the MCU block in FIG. 6A is rotated 90 degrees in the right (clockwise) direction. In the case of FIG. 6C, the coefficient arrangement table T1 of FIG. 4A and the left-right inversion coefficient table T3 of FIG. 4C are used for the image data of FIG.
[0029]
FIG. 6D shows a case where the image data of the MCU block is displayed when the image data copied from the MCU block in FIG. 6A is rotated 90 degrees clockwise (clockwise) by the conventional method. FIG. 7 is a diagram showing an arrangement in which an area (non-display area) where the image shown in FIG. 6C is not displayed is hatched. In the hatching display of the non-display area in the case of FIG. 6D, since the coefficient arrangement table T1 of FIG. 4A is used for the image data of FIG. 6A, from the head data position of the MCU block. The 16th column data is hatched as a non-display area, and the 15th and 16th row (row) data from the top data position is hatched as a non-display area.
[0030]
FIG. 6E shows a case in which the image data of the MCU block is displayed when the copied image data of the MCU block in FIG. 6A is rotated 90 degrees clockwise (clockwise) by the method of the present invention. FIG. 7 is a diagram showing an arrangement in which a region (non-display region) where the image shown in FIG. 6C is not displayed is hatched. The hatching display of the non-display area in the case of FIG. 6E is the case where the coefficient arrangement table T1 of FIG. 4A is used for the image data of FIG. In order to correct the display position according to the information stored in the first column, the first column of column data from the start data position of the MCU block is hatched as a non-display area, and the 15th and 16th rows (rows) from the start data position are hatched. Data is hatched as a non-display area.
[0031]
FIG. 6F is a diagram showing the image data arrangement of the MCU block when the copied image data of the MCU block in FIG. 6A is rotated 180 degrees. In the case of FIG. 6F, the 180 degree rotation coefficient table T4 of FIG. 4D is used for the image data of FIG.
[0032]
FIG. 6G shows a case in which the image data of the MCU block when the image data copied from the MCU block in FIG. 6A is rotated 180 degrees by the conventional method is displayed in FIG. It is a figure which shows the arrangement | positioning which hatched and displayed the area | region (non-display area | region) where the shown image is not displayed. In the hatching display of the non-display area in the case of FIG. 6G, the coefficient arrangement table T1 of FIG. 4A is not used for the image data of FIG. The column data in the 15th and 16th columns are hatched as non-display areas, and the row (row) data in the 16th row from the top data position are hatched as non-display areas.
[0033]
FIG. 6 (h) displays the image data of the MCU block when the copied image data of the MCU block in FIG. 6 (f) is rotated 90 degrees counterclockwise (counterclockwise) by the method of the present invention. FIG. 7 is a diagram showing an arrangement in which areas (non-display areas) where the image shown in FIG. 6F is not displayed are hatched. The hatched display of the non-display area in the case of FIG. 6H is a case where the coefficient arrangement table T1 of FIG. 4A is not used for the image data of FIG. In order to correct the display position according to the information stored in the header, the 15th and 16th column data from the first data position of the MCU block are hatched as a non-display area, and the first row from the first data position (row) ) Data is hatched as a non-display area.
[0034]
FIG. 6 (i) is a diagram showing the image data arrangement of the MCU block when the copied image data of the MCU block in FIG. 6 (a) is rotated 90 degrees in the left (counterclockwise) direction. In the case of FIG. 6I, the coefficient arrangement table T1 of FIG. 4A and the upside down coefficient table T2 of FIG. 4B are used for the image data of FIG.
[0035]
FIG. 6J shows a case where image data of the MCU block is displayed when the copied image data of the MCU block in FIG. 6I is rotated 90 degrees counterclockwise (counterclockwise) by the conventional method. FIG. 7 is a diagram showing an arrangement in which an area (non-display area) where the image shown in FIG. 6I is not displayed is hatched. In the hatching display of the non-display area in the case of FIG. 6 (j), since the coefficient arrangement table T1 of FIG. 4 (a) is used for the image data of FIG. 6 (i), from the head data position of the MCU block. The 16th column data is hatched as a non-display area, and the 15th and 16th row (row) data from the top data position is hatched as a non-display area.
[0036]
FIG. 6 (k) displays the image data of the MCU block when the image data copied from the MCU block in FIG. 6 (i) is rotated 90 degrees counterclockwise (counterclockwise) by the method of the present invention. FIG. 7 is a diagram illustrating an arrangement in which a region (non-display region) where the image illustrated in FIG. 6I is not displayed is hatched. The hatched display of the non-display area in the case of FIG. 6K is the case where the coefficient arrangement table T1 of FIG. 4A is used for the image data of FIG. In order to correct the display position according to the information stored in the first column, the 16th column data from the first data position of the MCU block is hatched as a non-display area, and the first and second rows (rows) from the first data position are hatched. Data is hatched as a non-display area.
[0037]
Here, the display start position of the image and the height and width for display in the MCU data after the rotation processing will be specifically described with reference to FIG.
The area hatched with halftone dots shown in a part of FIG. 6 indicates an image area that is not normally displayed. The pixel data of the JPEG original image shown in FIG. 6 (z) has an image size of 14 × 15 pixels, but the Y, Cb, Cr ratio is 1: 1: 1, and is matched with the MCU block at the stage of becoming MCU data. The data is copied and becomes image data having an image size of 16 × 16 pixels as shown in FIG.
[0038]
The data of the DCT coefficient in this case is held so as to fill all the pixels of the MCU block as encoded data that is actually stored or transmitted. Specifically, as shown in FIG. 6A, the vertical column (first and second columns from the right) that does not exist as JPEG pixel data is the rightmost column of the display area to be actually displayed. (The third block from the right in the MCU block) is copied. That is, the column data of the 14th column from the start data position of the MCU block indicated by the white arrow is copied to the 15th and 16th rows. In addition, a horizontal row (first row from the bottom) that does not exist as JPEG pixel data is a copy of the bottom row (second row from the bottom) to be displayed. That is, the row (row) data of the 15th row from the start data position of the MCU block is copied to the 16th row.
[0039]
FIG. 6C shows the image data when the image data of the MCU data of FIG. 6A is “rotated 90 degrees right”, and the image data when the image data is “180 degrees rotated” is FIG. FIG. 6 (i) shows the image data when “rotated 90 degrees to the left”. When the rotated image data is displayed as it is by the conventional method, the display image data when rotated 90 degrees to the right is as shown in FIG. 6D, and is rotated 180 degrees. In this case, the display image data is as shown in FIG. 6G, and the display image data when “rotated 90 degrees to the left” is as shown in FIG.
[0040]
In the display image according to the conventional method of FIG. 6D, the image in the first column from the right is hidden in the non-display area, and conversely, the image of the copied column in the first column from the left is displayed. End up. In the display image according to the conventional method of FIG. 6G, the images in the first and second columns from the right are hidden in the non-display area, and conversely, the images in the copied columns in the first and second columns from the left. Will be displayed. Further, the image in the first row from the bottom is hidden in the non-display area, and on the contrary, the copied row image in the first and second rows from the top is displayed. In the display image by the conventional method of FIG. 6 (j), the first and second rows of images from the bottom are hidden in the non-display area, and conversely the copied columns of the first and second rows from the top. Will be displayed.
[0041]
In the present invention, the following formulas (1) to (1) are used so that the images after the rotation processing are correctly displayed with respect to the display images obtained by the conventional method shown in FIGS. 6 (d), (g), and (j). According to 3), the start position of the image after rotation processing and the height and width for display are calculated. In the following formulas (1) to (3), the height of the original image is Hs and the width is Ws, the height of the image modified to fill each pixel of the MCU block is Hm and the width is Wm, and the rotation is performed. The height of the display image after processing is Hd, the width is Wd, the start position length is Y, and the start position width is X.
[0042]
When the rotation process is "Rotate 90 degrees to the right"
Y = 0, X = Hm−Hs, Hd = Ws, Wd = Hs (1)
[0043]
When the rotation process is "Rotate 90 degrees left"
Y = Wm−Ws, X = 0, Hd = Ws, Wd = Hs (2)
[0044]
When rotation processing is "180 degree rotation"
Y = Hm−Hs, X = Wm−Ws, Hd = Hs, Wd = Ws (3)
[0045]
FIG. 7 is a diagram showing the luminance component DCT data (Y0 to Y3) rearranged for each MCU data with respect to one frame of image data in the DRAM corresponding to the type of rotation.
FIG. 7A is a diagram illustrating a case where the rotation processing is not performed on the image data of the MCU block corresponding to the arrangement of the MCU block (0) in FIG. In FIG. 7B, the image data of the MCU block corresponding to the arrangement of the MCU block (0) in FIG. 2 is inverted with the vertical and horizontal image data in FIG. It is a figure which shows the case where it was made to do.
[0046]
FIG. 7C shows a table T1 in FIG. 4A and a table T3 in FIG. 4C for the image data of the MCU block corresponding to the arrangement of the MCU block (0) in FIG. It is a figure which shows the case where the image data of (a) is rotated 90 degree | times clockwise (clockwise). FIG. 7D shows that the image data of FIG. 7A is 180 degrees using the table T4 of FIG. 4D with respect to the image data of the MCU block corresponding to the arrangement of the MCU block (0) of FIG. It is a figure which shows the case where it rotates. FIG. 7 (e) shows the image data of the MCU block corresponding to the arrangement of the MCU block (0) in FIG. 2 using the table T1 in FIG. 4 (a) and the table T2 in FIG. 4 (b). It is a figure which shows the case where the image data of (a) is rotated 90 degree | times to the left (counterclockwise) direction.
[0047]
Next, the operation of the digital camera of the present invention having the above configuration and functions will be described.
FIG. 8 is a flowchart showing an operation when rotating a photographed image in the digital camera of the present invention.
FIG. 8 shows that in the digital camera of the present invention, the rotation processing mode is selected by the predetermined key operation by the user of the digital camera, the image to be processed is determined, and the type of rotation prepared in advance is specified. Is the behavior of the case.
[0048]
For example, when recording or transmitting recompressed data obtained by performing rotation processing on image data compressed by the JPEG method, first, header analysis of the compressed image data (JPEG data) is performed, Information such as the width, height, quantization table, and encoding table is acquired (S1). Thereafter, the code data is decoded and an inverse quantization process is performed. Thus, DCT coefficient data for each MCU (minimum code unit) block (unit block) is restored, and further, inverse DTC conversion is performed to restore pixel data for each MCU block, and pixel data for each MCU block is rearranged. To restore the original image.
[0049]
Then, for each restored pixel data, an arrangement position after rotation is calculated, and rotation processing is performed by arranging it, and then the processed image is divided into image blocks for each MCU, and then DCT is performed. Data compression is performed by quantizing the converted DCT coefficients and encoding the quantized data. Then, a header composed of various information such as the width and height of the image is added to the compressed data, and the recompressed data obtained thereby is recorded or transmitted.
[0050]
When an image to be processed is selected by a predetermined key operation, the CPU 11 reads the encoded data (image data) of the image compressed by the JPEG method from the flash memory 18 and sends it to the JPEG processing unit 17. Accordingly, the JPEG processing unit 17 performs header analysis and acquires information such as the width and height of the image, the quantization table, and the encoding table (S1). Thereafter, the CPU 11 decodes the data according to the encoding table (S2), and performs inverse quantization processing on the decoded data according to the quantization table (S3). As a result, the encoded data can be restored to DCT coefficient data for each MCU (minimum code unit) block (unit block) described above. The operation so far is the same when displaying the recorded image on the display device in the display mode.
[0051]
The CPU 11 arranges the DCT coefficient data K of each block “Y0” to “Y3”, “Cb”, “Cr” constituting each MCU data, that is, an array of DTC coefficients, according to the type of rotation designated by the user. Data is processed (S4). In the processing in this case, for example, if the designated rotation type is “left 90 degree rotation”, each DCT coefficient data K is shown in the coefficient arrangement table T1 shown in FIG. 4A for each MCU block. According to the arrangement, a process of switching vertically and horizontally and a process of multiplying the DCT coefficient data K shown in FIG. 4B by the coefficients of the upside down coefficient table T2 are performed.
[0052]
For example, the CPU 11 rearranges the DCT coefficient data (Y0 to Y3) of the luminance component according to the type of rotation as shown in FIG. 7 for each MCU data in the working memory area of the DRAM 10 shown in FIG. (S5). The new arrangement order corresponds to the rotation (or inversion) state of each MCU block that rotates (or inversion) in the same manner as when the image is rotated (or inversion). When the rearrangement of the DCT coefficient data string (Y0 to Y3) in the MCU data is completed, the CPU 11 determines whether the image data in one frame of image data shown in FIG. The position of the MCU data is rearranged (S6). The movement destination of each MCU data is a position determined corresponding to the position of each MCU block when the image is rotated (or inverted). Thereafter, the JPEG processing unit 17 quantizes the MCU data that has been rearranged (S7), and performs data compression by encoding the quantized data (S8).
[0053]
The CPU 11 determines whether or not the original image size is equal to the MCU block size (S9). If they are equal (S9: YES), the process proceeds to step S12, but if they are not equal (S9: NO), the CPU 11 The height and width of the image information of the original image before the rotation processing are corrected so as to be the unit of the MCU pixel size, and then the above-described equations (1) to (3) are used to determine the rotation type. Accordingly, the start position of the processed image, the display height and width are calculated (S10). Note that the determination in step S9 is, for example, for reducing the calculation amount and processing time of the CPU 11, and may be omitted when there is a margin in the calculation amount and processing time of the CPU 11.
[0054]
The MCU pixel size is 16 × 16 when the Y, Cb, Cr ratio is 4: 1: 1, as shown in this embodiment, and the Y, Cb, Cr ratio is 4: 4: 4. In the case, it is 8 × 8. Therefore, in step S10, for example, if the Y, Cb, Cr ratio is 4: 1: 1, and the original image size is 160 × 120 pixels, 120 images cannot be divided by 16, so first 160 × 128 pixels. After the correction, the above-described equations (1) to (3) are used to calculate the processed image start position and the display height and width according to the type of rotation. In addition, as described above, when the rotation type is “left 90 degree rotation” and “right 90 degree rotation”, when the height and width of the image information are switched, it is corrected so that it becomes a pixel size unit. Then, using the above equations (1) to (3), the start position of the processed image and the display height and width are calculated according to the type of rotation.
[0055]
After that, various information such as the width and height of the image, the calculated start position of the processed image, and the height and width for display are added to the header in the compressed data (S11), and the processed image is processed. Data is written in the flash memory 18 as a new image (S12).
[0056]
FIG. 9 is a flowchart showing in more detail the calculation of step S10 in the flowchart of FIG.
When the original image size is not equal to the MCU block size, the CPU 11 first determines whether or not the instructed type of rotation processing is right 90 degree rotation (S21), and right 90 degree rotation. In the case (S21: YES), the display position, height, and width of the rotated image data are calculated using the above equation (1) (S22), and the process of step S10 is terminated.
[0057]
If the rotation is not 90 degrees to the right (S21: NO), it is determined whether or not the type of rotation being instructed is 90 degrees to the left (S23). If the rotation is 90 degrees to the left (S23: YES) ), The display position, height, and width of the rotated image data are calculated using the above equation (2) (S24), and the process of step S10 is terminated.
[0058]
If the rotation is not 90 degrees to the left (S23: NO), it is determined whether or not the instructed type of rotation is 180 degrees (S25), and if it is 180 degrees (S25: YES). Calculates the display position, height, and width of the rotated image data using the above equation (3) (S26), and ends the process of step S10. If the rotation is not 180 degrees (S25: NO), the process of step S10 is terminated as it is. The order of steps S21, S23, and S25 is not specified in the order shown in FIG.
[0059]
FIG. 10 is a flowchart when the image data written in step S12 in the flowchart of FIG. 8 is read and displayed.
The CPU 11 determines whether or not there is an instruction to display the rotated image (S31). If there is no instruction to display (S31: NO), the CPU 11 again performs step S31 and waits. If there is a display instruction (S31: YES), the display image information is read from the header of the image data read from the flash memory 18 (S32), and the image data is displayed on the screen according to the display image information (S33). .
[0060]
When the image is displayed in step S33, the information is displayed using information on the height, width, start position length, and start position width of the processed display image stored in the header of the image data. As a result, for example, when the type of rotation processing is “rotate 90 degrees to the right”, based on the information about the start position of the processed image stored in the header and the height and width for display, FIG. When the type of rotation processing is “rotate 180 degrees”, based on the start position of the processed image stored in the header, and information on the height and width for display, as shown in FIG. h), when the type of rotation processing is “rotate 90 degrees left”, based on the start position of the processed image stored in the header, and information on the height and width for display, The display is as shown in FIG. That is, in the present embodiment, the image after the rotation processing can be correctly displayed.
[0061]
As described above, in the present embodiment, since the image data display area after the rotation and reversal processing is calculated and held, the stored encoded data is not restored to each pixel data in each unit block. In an image conversion apparatus that rotates or inverts an image while maintaining the DCT coefficient, the compressed image is rotated and recompressed even when the width and height of the original image are arbitrary dimensions that are not in MCU block units. In this case, the image can be recompressed without degrading the image quality, and as a result, a correctly rotated image can be displayed.
[0062]
In the embodiment described above, the compressed image is rotated or reversed. However, in addition to this, the image size changes if processing for which conversion contents are determined in advance is performed. The present invention may be applied when performing processing such as processing such as enlargement / reduction and cutting. In the present invention, even in such a case, a compressed image can be processed with respect to an arbitrary image and recompressed without degrading the image quality.
[0063]
In the above-described embodiment, the processing target image is compressed by the JPEG method. However, other methods that use DCT other than the JPEG method, and other than DCT, The present invention may be applied to other image compression methods as long as compression is performed for each unit data having array data corresponding to pixels. In the present invention, even in such a case, a compressed image can be processed with respect to an arbitrary image and recompressed without degrading the image quality.
[0064]
In the above-described embodiments, the case where the present invention is used in a digital camera capable of taking and displaying image data by the JPEG method has been described. However, the present invention is not limited to this, and the image is obtained by using JPEG image data. The present invention can be applied to other devices as long as they store or transmit data, and the effects described above can be obtained even in such a case.
[0065]
【The invention's effect】
Since the present invention is configured as described above, the following effects can be obtained.
[0066]
As described above, in the present invention, in order to calculate and hold the image data display area after the rotation and inversion processing, the stored encoded data is not restored to each pixel data in each unit block, and DCT In an image conversion device that rotates or reverses an image while maintaining the coefficients, even when the width and height of the original image are arbitrary dimensions that are not in MCU block units, when the compressed image is rotated and recompressed The image can be recompressed without degrading the image quality, and as a result, a correctly rotated image can be displayed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a case of a digital camera as an image conversion apparatus of the present invention.
FIGS. 2A to 2D are diagrams showing the arrangement and configuration of unit blocks (MCU blocks) when the number of pixels in one frame is image data of 1280 × 960 pixels.
FIG. 3 is a diagram illustrating a data block of DCT coefficients (magnitude of frequency components) of 8 × 8 pixels.
FIGS. 4A to 4D are diagrams showing a coefficient arrangement table and coefficient tables for upside down, left and right inversion, and 180 degree rotation used during operation in the rotational machining mode.
FIGS. 5A, 5B, and 5G are views showing that JPEG dequantized MCU data is sequentially arranged in a DRAM. FIG.
FIGS. 6A and 6B are diagrams illustrating a state in which an original image having fewer vertical and horizontal pixels than the number of vertical and horizontal pixels of an MCU block is rotated.
FIGS. 7A to 7E rearrange the luminance component DCT data (Y0 to Y3) for each MCU data with respect to the image data for one frame in the DRAM corresponding to the type of rotation. FIG.
FIG. 8 is a flowchart showing an operation when rotating a photographed image in the digital camera of the present invention.
FIG. 9 is a flowchart showing in more detail the calculation of step S10 in the flowchart of FIG.
FIG. 10 is a flowchart when the image data written in step S12 in the flowchart of FIG. 8 is read and displayed.
[Explanation of symbols]
1 lens, 2 CCD, 3 timing generator (TG), 4 vertical driver, 5 sample hold circuit (S / H), 6 A / D converter, 7 color process circuit, 8 DMA (Direct Memory Access) controller, 9 DRAM Interface (I / F), 10 DRAM, 11 CPU, 12 VRAM controller, 13 VRAM, 14 digital video encoder (video encoder), 15 display device, 16 operation unit, 17 JPEG processing unit, 18 flash memory, K DCT coefficient data T1 coefficient arrangement table, T2 vertical reversal coefficient table, T3 horizontal reversal coefficient table, T4 180 degree rotation coefficient table, Y0 to Y3 luminance component data block, Cb, Cr color difference component data block.

Claims (8)

1フレーム毎に複数の単位ブロックに分割され、各単位ブロック内の各画素データ毎に離散コサイン変換(DCT:(Discrete Cosine Transform))して第1DCT係数が求められ、該第1DCT係数が量子化されて第1量子化DCT係数とされ、該第1量子化DCT係数が圧縮された第1符号化データとして格納される第1の画像に対して、
該第1符号化データを復号して第1量子化DCT係数を得る復号手段と、
該第1量子化DCT係数を逆量子化して第1DCT係数を得る逆量子化手段と、
該第1DCT係数を前記単位ブロック毎に画像の回転又は反転に対応するようにデータ配置を変更し、変換係数を乗算し、単位ブロック毎の配置を変更することで加工された第2DCT係数を得るデータ加工手段と、
該第2DCT係数を量子化して第2量子化DCT係数とする量子化手段と、
該第2量子化DCT係数を圧縮して第2符号化データとする符号化手段と、
該第2符号化データを格納する格納手段と
を備えることで、前記第1の画像を回転または反転させた第2の画像に変換する画像変換装置であって、さらに、
前記第2符号化データにより表示される画像の、各単位ブロック毎の表示開始位置、高さ、幅の表示領域情報を演算する演算手段と、
該演算手段により演算された表示領域情報を第2符号化データに付加する情報付加手段と
を備え、
前記演算手段は、表示領域情報を演算する際に、前記単位ブロックにおける表示画像領域と非表示画像領域を判別し、前記画像の回転又は反転に対応するように非表示画像領域の配置を変更するように演算し、
前記格納手段は、前記表示領域情報が付加された第2符号化データを格納する
ことを特徴とする画像変換装置。
Each frame is divided into a plurality of unit blocks, each pixel data in each unit block is subjected to discrete cosine transform (DCT: (Discrete Cosine Transform)) to obtain a first DCT coefficient, and the first DCT coefficient is quantized. To the first quantized DCT coefficient, and the first image stored as the first encoded data in which the first quantized DCT coefficient is compressed,
Decoding means for decoding the first encoded data to obtain a first quantized DCT coefficient;
Inverse quantization means for inversely quantizing the first quantized DCT coefficient to obtain a first DCT coefficient;
The second DCT coefficient is obtained by changing the data arrangement so that the first DCT coefficient corresponds to the rotation or inversion of the image for each unit block, multiplying by the conversion coefficient, and changing the arrangement for each unit block. Data processing means;
Quantization means for quantizing the second DCT coefficient into a second quantized DCT coefficient;
Encoding means for compressing the second quantized DCT coefficient into second encoded data;
An image conversion device that converts the first image into a rotated or inverted second image by storing the second encoded data.
A calculation means for calculating display area information of a display start position, height, and width for each unit block of the image displayed by the second encoded data;
Information adding means for adding the display area information calculated by the calculating means to the second encoded data;
When calculating the display area information, the calculation unit determines a display image area and a non-display image area in the unit block, and changes the arrangement of the non-display image areas so as to correspond to rotation or inversion of the image. Operate as
The image storage device, wherein the storage means stores the second encoded data to which the display area information is added.
前記情報付加手段は、前記表示領域情報を、第2符号化データのヘッダに記載する
ことを特徴とする請求項1に記載の画像変換装置。
The image conversion apparatus according to claim 1, wherein the information adding unit describes the display area information in a header of second encoded data.
前記復号手段は、前記第2符号化データを画像表示のために復号する場合には、第2符号化データから前記表示領域情報を読み出して復号する
ことを特徴とする請求項1又は2に記載の画像変換装置。
Said decoding means, said second encoded data if decoding for image display is claimed in claim 1 or 2, characterized in that reading and decoding the said display area information from the second encoded data Image conversion device.
分割された第1の画像が、前記単位ブロックよりも縦又は横方向の画素が少ない場合に、前記演算手段は、When the divided first image has fewer pixels in the vertical or horizontal direction than the unit block, the calculation means
画像を右(時計回り)90度回転させる場合には、  If you want to rotate the image 90 degrees to the right (clockwise)
Y=0、X=Hm−Hs、Hd=Ws、Wd=HsY = 0, X = Hm−Hs, Hd = Ws, Wd = Hs
画像を左(反時計回り)90度回転させる場合には、  If you want to rotate the image left (counterclockwise) 90 degrees,
Y=Wm−Ws、X=0、Hd=Ws、Wd=HsY = Wm−Ws, X = 0, Hd = Ws, Wd = Hs
画像を180度回転させる場合には、  If you want to rotate the image 180 degrees,
Y=Hm−Hs、X=Wm−Ws、Hd=Hs、Wd=WsY = Hm-Hs, X = Wm-Ws, Hd = Hs, Wd = Ws
(但し、Hsは前記分割された第1の画像の高さ、  (Where Hs is the height of the divided first image,
Wsは前記分割された第1の画像の幅、  Ws is the width of the divided first image,
Hmは、前記単位ブロックのすべての画素を満たすように前記分割された第1の画像を修正したときの画像の高さ、  Hm is the height of the image when the divided first image is corrected so as to fill all the pixels of the unit block,
Wmは、前記単位ブロックのすべての画素を満たすように前記分割された第1の画像を修正したときの画像の幅)  Wm is the width of the image when the divided first image is corrected so as to fill all the pixels of the unit block)
により、分割された第2の画像の縦方向の開始位置Y、横方向の開始位置X、高さHd及び幅Wdを求めるTo obtain the start position Y in the vertical direction, the start position X in the horizontal direction, the height Hd, and the width Wd of the divided second image.
ことを特徴とする請求項1〜3の何れかに記載の画像変換装置。  The image conversion apparatus according to any one of claims 1 to 3.
1フレーム毎に複数の単位ブロックに分割され、各単位ブロック内の各画素データ毎に離散コサイン変換(DCT)して第1DCT係数が求められ、該第1DCT係数が量子化されて第1量子化DCT係数とされ、該第1量子化DCT係数が圧縮された第1符号化データとして格納される第1の画像に対して、
該第1符号化データを復号して第1量子化DCT係数を得るステップと、
該第1量子化DCT係数を逆量子化して第1DCT係数を得るステップと、
該第1DCT係数を前記単位ブロック毎に画像の回転又は反転に対応するようにデータ配置を変更し、変換係数を乗算し、単位ブロック毎の配置を変更することで加工された第2DCT係数を得るステップと、
該第2DCT係数を量子化して第2量子化DCT係数とするステップと、
該第2量子化DCT係数を符号化して第2符号化データとするステップと、
該第2符号化データを格納するステップと
を有することで、前記第1の画像を回転または反転させた第2の画像に変換する画像変換方法であって、さらに、
前記第2符号化データにより表示される画像の、各単位ブロック毎の表示開始位置、高さ、幅の表示領域情報を演算するステップと、
該表示領域情報を第2符号化データに付加するステップと
を有し、
前記表示領域情報を演算するステップでは、前記単位ブロックにおける表示画像領域と非表示画像領域を判別し、前記画像の回転又は反転に対応するように非表示画像領域の配置を変更し、
前記第2符号化データを格納するステップでは、前記表示領域情報が付加された第2符号化データを格納する
ことを特徴とする画像変換方法。
Each frame is divided into a plurality of unit blocks, and each pixel data in each unit block is subjected to discrete cosine transform (DCT) to obtain a first DCT coefficient. The first DCT coefficient is quantized to be first quantized. For a first image stored as first encoded data, which is a DCT coefficient and the first quantized DCT coefficient is compressed,
Decoding the first encoded data to obtain first quantized DCT coefficients;
Dequantizing the first quantized DCT coefficient to obtain a first DCT coefficient;
The second DCT coefficient is obtained by changing the data arrangement so that the first DCT coefficient corresponds to the rotation or inversion of the image for each unit block, multiplying by the conversion coefficient, and changing the arrangement for each unit block. Steps,
Quantizing the second DCT coefficient into a second quantized DCT coefficient;
Encoding the second quantized DCT coefficient into second encoded data;
An image conversion method for converting the first image into a rotated or inverted second image by storing the second encoded data; and
Calculating display area information of a display start position, height, and width for each unit block of an image displayed by the second encoded data;
Adding the display area information to the second encoded data,
In the step of calculating the display area information, the display image area and the non-display image area in the unit block are determined, and the arrangement of the non-display image area is changed so as to correspond to the rotation or inversion of the image,
In the step of storing the second encoded data, the second encoded data to which the display area information is added is stored.
前記表示領域情報を演算するステップでは、前記第1の画像を第2の画像に変換する回転または反転させる方向および程度が、右(時計回り)90度回転か、左(反時計回り)90度回転か、あるいは、180度回転かにより、異なる演算式を用いて表示領域情報を演算する
ことを特徴とする請求項5に記載の画像変換方法。
In the step of calculating the display area information, the direction and degree of rotation or inversion to convert the first image into the second image is 90 degrees clockwise (clockwise) or 90 degrees left (counterclockwise). The image conversion method according to claim 5, wherein the display area information is calculated using different calculation formulas depending on whether the rotation or the rotation is 180 degrees.
前記表示領域情報を演算するステップの前に、分割された原画像サイズと前記単位ブロックのサイズが一致するか否かを判断するステップを有し、両サイズが一致しない場合には、表示領域情報を演算するステップと、前記表示領域情報が付加された第2符号化データを格納するステップを実施するが、両サイズが一致する場合には、前記ステップを実施しない
ことを特徴とする請求項5又は6に記載の画像変換方法。
Before the step of calculating the display area information, the method includes a step of determining whether or not the divided original image size and the unit block size match, and if both sizes do not match, the display area information a step of computing a is performed the step of storing the second encoded data to which the display area information is added, when these sizes are matched, according to claim 5, characterized in that not implementing the steps Or the image conversion method of 6 .
分割された第1の画像が、前記単位ブロックよりも縦又は横方向の画素が少ない場合に、前記表示領域情報を演算するステップでは、In the step of calculating the display area information when the divided first image has fewer pixels in the vertical or horizontal direction than the unit block,
画像を右(時計回り)90度回転させる場合には、  If you want to rotate the image 90 degrees to the right (clockwise)
Y=0、X=Hm−Hs、Hd=Ws、Wd=HsY = 0, X = Hm−Hs, Hd = Ws, Wd = Hs
画像を左(反時計回り)90度回転させる場合には、  If you want to rotate the image left (counterclockwise) 90 degrees,
Y=Wm−Ws、X=0、Hd=Ws、Wd=HsY = Wm−Ws, X = 0, Hd = Ws, Wd = Hs
画像を180度回転させる場合には、  If you want to rotate the image 180 degrees,
Y=Hm−Hs、X=Wm−Ws、Hd=Hs、Wd=WsY = Hm-Hs, X = Wm-Ws, Hd = Hs, Wd = Ws
(但し、Hsは前記分割された第1の画像の高さ、  (Where Hs is the height of the divided first image,
Wsは前記分割された第1の画像の幅、  Ws is the width of the divided first image,
Hmは、前記単位ブロックのすべての画素を満たすように前記分割された第1の画像を修正したときの画像の高さ、  Hm is the height of the image when the divided first image is modified to fill all the pixels of the unit block,
Wmは、前記単位ブロックのすべての画素を満たすように前記分割された第1の画像を修正したときの画像の幅)  Wm is the width of the image when the divided first image is corrected so as to fill all the pixels of the unit block)
により、分割された第2の画像の縦方向の開始位置Y、横方向の開始位置X、高さHd及び幅Wdを求めるTo obtain the start position Y in the vertical direction, the start position X in the horizontal direction, the height Hd, and the width Wd of the divided second image.
ことを特徴とする請求項5〜7の何れかに記載の画像変換方法。  The image conversion method according to any one of claims 5 to 7, wherein
JP2003157596A 2003-06-03 2003-06-03 Image conversion apparatus and image conversion method Expired - Fee Related JP4155874B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003157596A JP4155874B2 (en) 2003-06-03 2003-06-03 Image conversion apparatus and image conversion method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003157596A JP4155874B2 (en) 2003-06-03 2003-06-03 Image conversion apparatus and image conversion method

Publications (2)

Publication Number Publication Date
JP2004363750A JP2004363750A (en) 2004-12-24
JP4155874B2 true JP4155874B2 (en) 2008-09-24

Family

ID=34051252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003157596A Expired - Fee Related JP4155874B2 (en) 2003-06-03 2003-06-03 Image conversion apparatus and image conversion method

Country Status (1)

Country Link
JP (1) JP4155874B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101037624B1 (en) * 2009-06-19 2011-05-30 (주)실리콘화일 Apparatus and method of rotating image without using memory
WO2012096194A1 (en) * 2011-01-14 2012-07-19 パナソニック株式会社 Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device

Also Published As

Publication number Publication date
JP2004363750A (en) 2004-12-24

Similar Documents

Publication Publication Date Title
US8098959B2 (en) Method and system for frame rotation within a JPEG compressed pipeline
JP4151684B2 (en) Encoding apparatus, encoding method, encoding program, and imaging apparatus
JP4130207B2 (en) Image processing display device and image processing display method
JP4682102B2 (en) Image coding apparatus and image coding method
JP3873168B2 (en) Digital camera and image processing method
JP2007104519A (en) Apparatus and method for image coding and image decoding
JP4579613B2 (en) Image processing apparatus and method, and imaging apparatus
TW200417939A (en) Image signal generator, digital camera and image signal generationg method
JP6278712B2 (en) Imaging apparatus and control method thereof
JP4155874B2 (en) Image conversion apparatus and image conversion method
JP2016005103A (en) Imaging apparatus and control method therefor
US7787700B2 (en) Signal processing method, signal processing apparatus, computer-readable medium and a data recording medium
JP4513487B2 (en) Video data compression device
JP2002218472A (en) Device and method for decoding variable image rate
JP2738136B2 (en) Blocking device
JP4630618B2 (en) Image generating apparatus and method
KR102012715B1 (en) Imaging apparatus and imaging processing method
JP2004165733A (en) Image converter, image conversion method, and recording medium
JPH10108133A (en) Image pickup device and its control method
JP2006254333A (en) Coding device, coding method, and digital camera
JP2001223878A (en) Picture conversion device, picture conversion method and recording medium
JP4720494B2 (en) Imaging apparatus, imaging method and program, and recording medium
JP2003283792A (en) Imaging apparatus and conversion method of image data
JP2009201153A (en) Digital camera and photographing method
JP2006340338A (en) Image processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080708

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080708

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees