Nothing Special   »   [go: up one dir, main page]

JP2005026729A - Image coding device and program, and image decoding device and program - Google Patents

Image coding device and program, and image decoding device and program Download PDF

Info

Publication number
JP2005026729A
JP2005026729A JP2003186598A JP2003186598A JP2005026729A JP 2005026729 A JP2005026729 A JP 2005026729A JP 2003186598 A JP2003186598 A JP 2003186598A JP 2003186598 A JP2003186598 A JP 2003186598A JP 2005026729 A JP2005026729 A JP 2005026729A
Authority
JP
Japan
Prior art keywords
image
data
transposition
rotation
input
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.)
Pending
Application number
JP2003186598A
Other languages
Japanese (ja)
Inventor
Yuji Wada
田 祐 司 和
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2003186598A priority Critical patent/JP2005026729A/en
Publication of JP2005026729A publication Critical patent/JP2005026729A/en
Pending 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)

Abstract

<P>PROBLEM TO BE SOLVED: To satisfactorily improve compression efficiency compared with a conventional technique in encoding an image having low correlation in a vertical direction such as an interlaced image. <P>SOLUTION: An input image rotating/transposing means 11 rotates or transposes input image data from an image input means 1. A body data generation means 2 encodes input image data from the means 1 to generate first body data. The means 2 further encodes the rotated/transposed input image data from the means 11 to generate second body data. A code quantity comparing means 12 determines the relation of magnitude between a code quantity Q1 of the first body data with a code quantity Q2 of the second body data. A code data output means 10 outputs the second body data if Q2<Q1, and outputs the first body data if Q1<Q2. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、画像データについて符号化を行う画像符号化装置、及び画像符号化プログラム、並びにこの符号化により得られる符号データについて復号化を行うための画像復号化装置、及び画像復号化プログラムに関するものである。
【0002】
【従来の技術】
画像圧縮方式としては、最も一般的なJPEGをはじめとして従来から種々の方式が用いられてきているが、最近、国際標準化され注目されている画像圧縮方式としてJPEG2000がある。このJPEG2000は、従来のJPEGが離散コサイン変換(DCT)を用いた方式であるのに対し、ウェーブレット変換(DWT)を用いた方式であるため、より高画質及び高階調の画像が得られ、また、同程度の画質に比べ圧縮率を高くすることができるなど多くのメリットを有している。このようなJPEG2000の規格を用いた画像データ符号化の技術においても更なる圧縮率の向上が追求されている(例えば、特許文献1又は特許文献2参照)。
【0003】
図10は、JPEG2000を用いた従来の画像符号化装置の構成を示すブロック図である。この装置は、画像入力手段1、ボディデータ生成手段(画像符号化データ生成手段)2、ヘッダ生成手段9、及び符号データ出力手段10を備えている。そして、ボディデータ生成手段2は、DCレベルシフト手段3、カラー変換手段4、ウェーブレット変換手段5、スカラ量子化手段6、係数ビットモデリング手段7、及びエントロピー符号化手段8を有している。
【0004】
なお、上記の構成要素のうち、DCレベルシフト手段3、カラー変換手段4、及びスカラ量子化手段6はJPEG2000においてはオプションとして備えられたものである。JPEG2000では、その他にもオプションとして備えられたものがあるが、本発明の技術とは直接的な関連性がないか、あっても重要度が低いため説明を省略している。また、JPEG2000では、画像を複数のタイル領域に分割し、各タイル領域間の相関関係をなくすことによって高速の並列処理を可能にしているが、本明細書での符号化処理は、1つのタイル領域における処理であることを前提としている。したがって、図10においては、タイリング手段等の構成要素については図示を省略している。
【0005】
次に、この図10に係る装置の動作について説明すると、まず、画像入力手段1からの入力画像データはDCレベルシフト手段3に入力され、DCレベルがシフトされる。DCレベルのシフトとは、符号化効率を高めるために、DC(直流)成分すなわちゼロ成分を基準として入力画像データのレベルをシフトすることである。
【0006】
DCレベルシフト手段3からの入力画像データはカラー変換手段4に入力され、ここでRGBカラー空間における値からYUVカラー空間における値への変換が行われる。この変換も符号化効率を高めるために行われるものである。
【0007】
カラー変換手段4でカラー変換された画像データはウェーブレット変換手段5に入力されウェーブレット変換が行われる。ウェーブレット変換は、複雑な振動波形の解析等を行う場合に用いられる変換であり、フーリェ解析の特徴を生かしつつ、時間的又は空間的な変動を同時にとらえることができる波形データ解析手法である。
【0008】
スカラ量子化手段6は、ウェーブレット変換手段5からの変換データをある値で割算することにより、この変換データをスカラ値に量子化する。但し、この量子化は必ずしも常に必要なわけではない。
【0009】
係数ビットモデリング手段7は、スカラ量子化手段6により量子化が行われたウェーブレット係数をビットプレーン化し、更に、各ビットプレーンに対し3つの所定のパス(Significant Propagation Pass,Magnitude Refinement Pass,Cleanup Passと呼ばれる3つのパス)による処理を行う。
【0010】
係数ビットモデリング手段7により処理されたビットプレーンデータはエントロピー符号化手段8に入力され、ここでエントロピー符号化が行われてボディデータ(画像符号化データ)が生成される。そして、この生成されたボディデータに、ヘッダ生成手段9により生成された必要なヘッダ情報(例えば、ウェーブレット係数のビット数、ゼロビットプレーン数、処理パス数等)が付加される。符号データ出力手段10は、このボディデータ及びヘッダ情報を符号データとして出力を行う。
【0011】
【特許文献1】
特開2002−135594号公報
【特許文献2】
特開2002−165098号公報
【0012】
【発明が解決しようとする課題】
ところで、図11は、ある1つのコードブロックCBにおけるインターレース画像についての説明図である。インターレース画像とは、トップフィールドとボトムフィールドとを交互にインターリーブして組み合わせることにより得られる画像であり、図11の例では、ある対象物画像Pが、交互にインターリーブされたトップフィールド側ラインL1とボトムフィールド側ラインL2とにより形成されている様子が鮮明に示されている。このような対象物画像Pのインターレース画像では、各画素データ相互の相関性は水平方向に強く現れ、垂直方向への相関性は極めて希薄であることが明らかである。
【0013】
ここで、係数ビットモデリング手段7及びエントロピー符号化手段8がそれぞれ行う係数ビットモデリング及び符号化はEBCOTと呼ばれるJPEG2000特有の手法に基づいており、その走査方向は垂直方向が基調となっている。図12(a)は、このようなJPEG2000の走査方向についての説明図である。この図の矢印で示すように、ストライプ高さが4画素、ストライプ幅が10画素の領域内において、最初に画面左上位置から4画素分垂直方向へ下降し、次いで、隣の列の最上位位置に移って再度4画素分垂直方向へ下降する、というような走査を順次繰り返すようになっている。
【0014】
しかし、図11に示したような垂直方向への相関性が極めて希薄な画像を符号化する場合、垂直方向を基調とする図12(a)のJPEG2000の走査方向はあまり好適な走査方向ではなく、一方、好適な走査方向は図12(b)に示すような別の走査方向である。つまり、ストライプ高さが1画素、ストライプ幅が4画素の領域内において、最初に画面左上位置から4画素分水平方向へ移動し、次いで、1行下の位置に移って再度4画素分水平方向へ移動する、というような走査である。
【0015】
ところが、JPEG2000の規格では、図12(b)のような走査方向は許容されていないので、図12(a)のような走査方向を採用せざるを得ない。そのため、従来は、インターレース画像のような垂直方向への相関性が低い画像をJPEG2000の規格に基づき符号化する際は、圧縮効率を一定レベル以上向上させることが難しかった。
【0016】
本発明は上記事情に鑑みてなされたものであり、インターレース画像のような垂直方向への相関性が低い画像をJPEG2000の規格に基づき符号化する際に、圧縮効率を一定レベル以上向上させることが可能な画像符号化装置、及び画像符号化プログラム、並びにこの符号化により得られる符号データについて復号化を行うための画像復号化装置、及び画像復号化プログラムを提供することを目的としている。
【0017】
【課題を解決するための手段】
上記課題を解決するための手段として、請求項1記載の発明は、入力画像データに対して90°若しくは−90°の回転又は転置を行う入力画像回転・転置手段と、前記入力画像データと、前記入力画像回転・転置手段で前記回転又は転置が行われた回転・転置後入力画像データとの双方に対して同一の符号化を行い、画像符号化データを生成する画像符号化データ生成手段と、前記画像符号化データ生成手段が前記入力画像データに対する符号化により生成した第1の画像符号化データの符号量と、前記画像符号化データ生成手段が前記回転・転置後入力画像データに対する符号化により生成した第2の画像符号化データの符号量とを比較する符号量比較手段と、前記符号量比較手段での比較結果に応じて、前記第1の画像符号化データと前記第2の画像符号化データとの内の符号量の小さな方の画像符号化データを出力する符号データ出力手段と、を備えたことを特徴とする。
【0018】
請求項2記載の発明は、コンピュータを、入力画像データに対して90°若しくは−90°の回転又は転置を行う入力画像回転・転置手段と、前記入力画像データと、前記入力画像回転・転置手段で前記回転又は転置が行われた回転・転置後入力画像データとの双方に対して同一の符号化を行い、画像符号化データを生成する画像符号化データ生成手段と、前記画像符号化データ生成手段が前記入力画像データに対する符号化により生成した第1の画像符号化データの符号量と、前記画像符号化データ生成手段が前記回転・転置後入力画像データに対する符号化により生成した第2の画像符号化データの符号量とを比較する符号量比較手段と、前記符号量比較手段での比較結果に応じて、前記第1の画像符号化データと前記第2の画像符号化データとの内の符号量の小さな方の画像符号化データを出力する符号データ出力手段と、して機能させるためのものであることを特徴とする。
【0019】
請求項3記載の発明は、入力画像データに対して所定の符号化により生成された第1の画像符号化データ、又は入力画像データを回転若しくは転置した後の回転・転置後入力画像データに対して前記所定の符号化により生成された第2の画像符号化データが入力される、符号データ入力手段と、前記符号データ入力手段からの画像符号化データに対して所定の復号化により出力画像データを生成する出力画像データ生成手段と、前記符号データ入力手段が入力した画像符号化データが前記回転又は転置が行われたものであるか否かについて判別する回転・転置判別手段と、前記回転・転置判別手段が前記回転又は転置が行われたものであると判別した場合に、前記出力画像データ生成手段により生成された出力画像データを前記回転又は転置が行われる前の状態に戻すための逆回転又は再転置を行い、逆回転又は再転置処理後の画像データを出力し、前記回転・転置判別手段が回転又は転置が行われたものではないと判別した場合には、前記出力画像データ生成手段により生成された出力画像データをそのまま出力する画像出力手段と、を備えたことを特徴とする。
【0020】
請求項4記載の発明は、コンピュータを、入力画像データに対して所定の符号化により生成された第1の画像符号化データ、又は入力画像データを回転若しくは転置した後の回転・転置後入力画像データに対して前記所定の符号化により生成された第2の画像符号化データが入力される、符号データ入力手段と、前記符号データ入力手段からの画像符号化データに対して所定の復号化により出力画像データを生成する出力画像データ生成手段と、前記符号データ入力手段が入力した画像符号化データが前記回転又は転置が行われたものであるか否かについて判別する回転・転置判別手段と、前記回転・転置判別手段が前記回転又は転置が行われたものであると判別した場合に、前記出力画像データ生成手段により生成された出力画像データを前記回転又は転置が行われる前の状態に戻すための逆回転又は再転置を行い、逆回転又は再転置処理後の画像データを出力し、前記回転・転置判別手段が回転又は転置が行われたものではないと判別した場合には、前記出力画像データ生成手段により生成された出力画像データをそのまま出力する画像出力手段と、して機能させるためのものであることを特徴とする。
【0021】
【発明の実施の形態】
図1は、本発明の実施形態に係る画像符号化装置の構成を示すブロック図であり、画像入力手段1、ボディデータ生成手段2、ヘッダ生成手段9、符号データ出力手段10、入力画像回転・転置手段11、及び符号量比較手段12を備えている。この図1の構成は、図10の従来装置の構成に入力画像回転・転置手段11、及び符号量比較手段12を追加したものである。
【0022】
すなわち、入力画像回転・転置手段11は、画像入力手段1からの入力画像データに対して、90°若しくは−90°の回転又は転置を行い、この回転又は転置を行った後の入力画像データ(本明細書では、これを「回転・転置後入力画像データ」と呼ぶ)を画像符号化データ生成手段であるボディデータ生成手段2に出力するようになっている。
【0023】
ボディデータ生成手段2は、画像入力手段1から直接入力した入力画像データに対してJPEG2000に基づく符号化を行って第1のボディデータ(画像符号化データ)を生成すると共に、画像入力手段1から入力画像回転・転置手段11を介して入力した回転・転置後入力画像データに対してJPEG2000に基づく符号化を行って第2のボディデータ(画像符号化データ)を生成するようになっている。
【0024】
符号量比較手段12は、ボディデータ生成手段2が生成した第1のボディデータの符号量と第2のボディデータの符号量とを比較し、いずれが符号量の小さな方であるかについて判別を行うようになっている。そして、符号データ出力手段10は、第1のボディデータ又は第2のボディデータのうち、符号量比較手段12が小さな方の符号量であると判別したボディデータを有する符号データを出力するようになっている。
【0025】
ここで、入力画像回転・転置手段11が行う「回転」及び「転置」の概念を図2乃至図5に基づき説明する。図2は、画素数が3×3の画像データの回転についての説明図であり、(a)は回転前の状態、(b)は(a)の状態から画像データを−90°(反時計回り方向へ90°)だけ回転させた後の状態を示している。いま、(a)がインターレース画像のように垂直方向への相関性が低く水平方向への相関性が高い画像であるとすると、第1行(すなわち水平方向)に配列された画素データD1,D2,D3が相互に相関性が高いデータである。そして、(b)では−90°の回転により第1列(すなわち垂直方向)に相互に相関性の高い画素データD3,D2,D1が配列された状態になっている。図12(a)において既述したように、JPEG2000の走査方向は垂直方向を基調とするものであるから、図2(a)の状態では効率的な符号化を行うことはできないが、図2(b)の状態であれば、相互に相関性の高い画素データD3,D2,D1の配列順序に従って走査することになるので効率的な符号化を行うことができるようになる。
【0026】
図3は、画素数が3×3の画像データの転置についての説明図であり、(a)は転置前の状態、(b)は(a)の状態から画像データを転置(各画素データにつき行と列とを入れ換えること)した後の状態を示している。いま、(a)がインターレース画像のように垂直方向への相関性が低く水平方向への相関性が高い画像であるとすると、第1行(すなわち水平方向)に配列された画素データD1,D2,D3が相互に相関性が高いデータである。そして、(b)では転置により第1列(すなわち垂直方向)に相互に相関性の高い画素データD1,D2,D3が配列された状態になっている。したがって、この場合も図2(b)の場合と同様に、相互に相関性の高い画素データD1,D2,D3の配列順序に従って走査されるので効率的な符号化を行うことができるようになる。
【0027】
図4は、画素数が3×4の画像データの回転についての説明図であり、(a)は回転前の状態、(b)は(a)の状態から画像データを−90°だけ回転させた後の状態を示している。いま、(a)がインターレース画像のように垂直方向への相関性が低く水平方向への相関性が高い画像であるとすると、第1行に配列された画素データD1,D2,D3,D4が相互に相関性が高いデータである。そして、(b)では−90°の回転により第1列に相互に相関性の高い画素データD4,D3,D2,D1が配列された状態になっている。したがって、図4(a)の状態では効率的な符号化を行うことはできないが、図4(b)の状態であれば、相互に相関性の高い画素データD4,D3,D2,D1の配列順序に従って走査することになるので効率的な符号化を行うことができるようになる。
【0028】
図5は、画素数が3×4の画像データの転置についての説明図であり、(a)は転置前の状態、(b)は(a)の状態から画像データを転置した後の状態を示している。いま、(a)がインターレース画像のように垂直方向への相関性が低く水平方向への相関性が高い画像であるとすると、第1行に配列された画素データD1,D2,D3,D4が相互に相関性が高いデータである。そして、(b)では転置により第1列に相互に相関性の高い画素データD1,D2,D3,D4が配列された状態になっている。したがって、この場合も図4(b)の場合と同様に、相互に相関性の高い画素データD1,D2,D3,D4の配列順序に従って走査されるので効率的な符号化を行うことができるようになる。
【0029】
また、ヘッダ生成手段9は、図10において既述したように、ウェーブレット係数のビット数、ゼロビットプレーン数、処理パス数等のヘッダ情報を生成するものであるが、本実施形態では、更に、上述した入力画像データの回転又は転置が行われたか否かについての情報すなわち画像回転・転置情報もこのヘッダ情報として生成されるようになっている。
【0030】
図6は、上記の画像回転・転置情報のデータ格納位置を示す説明図である。ヘッダ生成手段9は、メインヘッダ14中に生成した上記の他のヘッダ情報と共に画像回転・転置情報16を格納し、ボディデータ生成手段2が生成したボディデータ(画像符号化データ)15にメインヘッダ14を付加する。符号データ出力手段10は、このメインヘッダ14及びボディデータ15を符号データ13として出力することになる。
【0031】
上記の画像回転・転置情報16は、ボディデータ15を復号化し再生画像を得る際に必要となる場合があるために生成されるものである。つまり、もし符号化時に入力画像データを回転又は転置していたのであれば、復号化時には得られた再生画像データに対して今度は逆方向の回転又は再転置を行って、再生画像データの画面の向きを原画像の画面の向きと同じにしてやる必要がある。この場合、入力画像データの画面サイズは、通常、横及び縦の寸法が異なるため(例えば、480×720)、復号化を行うにあたり、符号化時に画像に対して回転又は転置が行われていたか否かについては、画面サイズの横及び縦の寸法が入れ替わっているかどうかを判別することにより知ることができる。したがって、復号化装置側では、通常、ボディデータに画像回転・転置情報が付加されていなくても、復号化により得られた再生画像に対して逆回転又は再転置が必要であるか否かを簡単に知ることができる。しかし、入力画像データの画面が正方形である場合や、入力画像データの画面のサイズがそれまでに拡大や縮小の結果、特殊なサイズとなっているような場合は、横及び縦の寸法の入れ替わりを判別するだけでは、符号化時に回転又は転置が行われていたか否かを知ることができなくなる。本実施形態では、このような場合を考慮して、ヘッダ生成手段9が画像回転・転置情報16を生成する構成としている。
【0032】
次に、図1の動作を図7のフローチャートに基づき説明する。画像入力手段1は、原画像のデータを入力し(ステップ71)、これをボディデータ生成手段2及び入力画像回転・転置手段11に出力する。入力画像回転・転置手段11は、画像入力手段1からの入力画像データを回転又は転置させ、その回転・転置後入力画像データをボディデータ生成手段2に出力する。
【0033】
ボディデータ生成手段2は、画像入力手段1から入力した入力画像データに対してJPEG2000の規格に基づく符号化を行い、第1のボディデータを生成すると共にその符号量Q1を演算する(ステップ72)。ボディデータ生成手段2は、更に、入力画像回転・転置手段11から入力した回転・転置後入力画像データに対してもJPEG2000の規格に基づく符号化を行い、第2のボディデータを生成すると共にその符号量Q2を演算する(ステップ73)。
【0034】
ヘッダ生成手段9は、第1のボディデータには画像回転・転置情報が含まれないヘッダ情報を付加し、また、第2のボディデータには画像回転・転置情報が含まれているヘッダ情報を付加して、これらを符号データ出力手段10に出力する。
【0035】
符号量比較手段12は、符号量Q1,Q2の大小関係を判別し(ステップ74)、その判別結果を符号データ出力手段10に出力する。そして、符号データ出力手段10は、符号量Q2の方が符号量Q1よりも小さい場合には、第2のボディデータを有する符号データの方を出力し(ステップ75)、一方、符号量Q1の方が符号量Q2よりも小さい場合、又は等しい場合には、第1のボディデータを有する符号データの方を出力する(ステップ76)。
【0036】
上述した実施形態では、入力画像データをそのまま符号化した第1のボディデータと、入力画像データを回転又は転置した後に符号化した第2のボディデータとの双方を生成しておき、符号量の小さな方を出力する構成としている。したがって、もし入力画像がインターレース画像のように垂直方向への相関性が低い画像であったとしても、符号化の際の圧縮効率を充分に向上させることができる。
【0037】
図8は、上述した図1の画像符号化装置により得られた符号データに対して復号化を行うのに適した、本発明の実施形態に係る画像復号化装置の構成を示すブロック図である。この装置は、符号データ入力手段17、ヘッダ解析手段18、出力画像データ生成手段19、回転・転置判別手段25、及び画像逆回転・再転置手段26を有する画像出力手段27を備えている。回転・転置判別手段25は、符号データ入力手段17が入力した符号データのボディデータについて、符号化時に回転又は転置が行われたものであるか否かをヘッダ解析手段18の解析結果に基づいて、あるいは入力画像データの画面サイズの横及び縦の寸法が入れ替わっているかどうかの検出に基づいて判別するものである。画像逆回転・再転置手段26は、回転・転置判別手段25が符号化時に回転又は転置が行われたものであると判別した場合、出力画像データ生成手段19により生成された出力画像データを回転又は転置が行われる前の状態に戻すための逆回転又は再転置を行うものである。画像出力手段27は、この画像逆回転・再転置手段26の機能により逆回転又は再転置が行われた出力画像、あるいは逆回転又は再転置が行われなかった出力画像を出力するものである。
【0038】
出力画像データ生成手段19は、エントロピー復号化手段、スカラ逆量子化手段21、逆ウェーブレット変換手段22、カラー変換手段23、及びDCレベルシフト手段24を有している。これらのうち、スカラ逆量子化手段21、カラー変換手段23、DCレベルシフト手段24は、JPEG2000においてはオプションとして備えられたものである。JPEG2000では、その他にもオプションとして備えられたものがあるが、本発明の技術とは直接的な関連性がないか、あっても重要度が低いため説明を省略している。
【0039】
エントロピ復号化手段20は、ヘッダ解析手段18の解析結果を用いて、圧縮符号化された画像データのエントロピ復号化を行い、出力されるビット列からスカラ量子化した係数列を作成するものである。
【0040】
スカラ逆量子化手段21は、ヘッダ解析手段18で解析されたメインヘッダにより指定された量子化スタイルに基づき、エントロピ復号化手段20で作成された係数列をJPEG2000の規格にある所定の計算式で逆量子化し、ウェーブレット係数を生成するものである。なお、符号化時にはウェーブレット変換により生成されたウェーブレット係数は必ずしもスカラ量子化されるとは限らず、その場合にはスカラ逆量子化手段21による逆量子化は行われないことになる。
【0041】
逆ウェーブレット変換手段22は、スカラ逆量子化手段21で得られたウェーブレット係数をメインヘッダで指定された符号化スタイルの分解数に基づき逆ウェーブレット変換を行い、YUVカラー空間の画像データを作成するものである。
【0042】
カラー変換手段23は、逆ウェーブレット変換手段22で得られた画像データをヘッダ解析手段18の解析結果にしたがってYUV成分からRGB成分へカラー変換するものである。但し、モノクロ画像の符号データや、符号化時にカラー変換を行わなかった場合、カラー変換手段237は動作しないようになっている。
【0043】
DCレベルシフト手段24は、カラー変換手段23で得られたRGB成分の各値のDCレベルをシフトするものである。DCレベルシフトとは、符号化時にダイナミックレンジが値0を中心とするようにシフトすることであり、復号化時にはそれを元に戻すことである。DCレベルシフトを行う理由は、周波数変換後の係数は正負の符号と絶対値とに分けられて符号化されるため、ゼロ値を基準としてデータ配置されている方が符号化効率が高くなるからである。
【0044】
次に、図8の動作を図9のフローチャートに基づき説明する。図1の画像符号化装置によりJPEG2000の規格にしたがって圧縮符号化された画像データすなわちボディデータは、ファイルシステムやネットワーク手段を用いて符号データ入力手段17によって入力される(ステップ91)。この入力されるボディデータは、図1において既述したように、入力画像データをそのまま符号化した第1のボディデータ、又は回転・転置後入力画像データを符号化した第2のボディデータのうち符号量の小さな方である。
【0045】
このボディデータには、メインヘッダが付されており、ヘッダ解析手段18はこれらのヘッダを読み込み、解析する。ここで、メインヘッダには、画像の大きさ、タイルの大きさ、画像位置のオフセット、タイル位置のオフセット、1画素あたりのサンプルビット数、RGBなどのコンポーネント数等についての情報が格納され、更に既述した画像回転・転置情報も格納されている。
【0046】
出力画像データ生成手段19は、ヘッダ解析手段18の解析結果を参照しつつ、符号データ入力手段17からの符号データのボディデータに対してJPEG2000の規格に基づく復号化を行い(ステップ92)、生成した出力画像データを画像逆回転・再転置手段26に出力する。
【0047】
回転・転置判別手段25は、符号データ入力手段17が入力した符号データのボディデータについて、符号化時に回転又は転置が行われたものであるか否かをヘッダ解析手段18の解析結果に基づいて、あるいは入力画像データの画面サイズの横及び縦の寸法が入れ替わっているかどうかの検出に基づいて判別し(ステップ93)、その判別結果を画像逆回転・再転置手段26に出力する。
【0048】
回転・転置判別手段25が符号化時に回転又は転置が行われたものであると判別した場合、画像逆回転・再転置手段26は、出力画像データ生成手段19により生成された出力画像データを回転又は転置が行われる前の状態に戻すための逆回転又は再転置を行い(ステップ94)、この逆回転又は再転置が行われた出力画像データを画像出力手段27に出力する。一方、回転・転置判別手段25が符号化時に回転又は転置が行われなかったたものであると判別した場合、画像逆回転・再転置手段26は、出力画像データ生成手段19により生成された出力画像データを、何もせずにそのまま、画像出力手段27に出力する。
【0049】
そして、画像出力手段27は、画像逆回転・再転置手段26により逆回転又は再転置が行われた出力画像、あるいは逆回転又は再転置が行われなかった出力画像の出力を行う(ステップ95)。
【0050】
なお、本発明は、上述した画像符号化装置及び画像復号化装置の機能をコンピュータに実現させるためのプログラムを含むものである。これらのプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。
【0051】
また、上記実施形態では、JPEG2000の規格に基づく符号化を行うものについて説明したが、本発明は、入力画像に対して回転又は転置を行うことにより圧縮効率の改善が見込める、他の符号化方式を使用するものへも当然適用可能である。
【0052】
【発明の効果】
以上のように、本発明によれば、インターレース画像のような垂直方向への相関性が低い画像を符号化する際に、従来に比べて圧縮効率を充分に向上させることが可能な画像符号化装置及び画像符号化プログラムを提供し、更に、これらにより生成された符号データを復号化するのに好適な画像復号化プログラムを提供することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る画像符号化装置の構成を示すブロック図。
【図2】図1における入力画像回転・転置手段11が行う、画素数が3×3の画像データの「回転」の概念についての説明図であり、(a)は回転前の状態、(b)は回転後の状態を示している。
【図3】図1における入力画像回転・転置手段11が行う、画素数が3×3の画像データの「転置」の概念についての説明図であり、(a)は転置前の状態、(b)は転置後の状態を示している。
【図4】図1における入力画像回転・転置手段11が行う、画素数が3×4の画像データの「回転」の概念についての説明図であり、(a)は回転前の状態、(b)は回転後の状態を示している。
【図5】図1における入力画像回転・転置手段11が行う、画素数が3×4の画像データの「転置」の概念についての説明図であり、(a)は転置前の状態、(b)は転置後の状態を示している。
【図6】図1におけるヘッダ生成手段9が生成した画像回転・転置情報のデータ格納位置を示す説明図。
【図7】図1の動作を説明するためのフローチャート。
【図8】本発明の実施形態に係る画像復号化装置の構成を示すブロック図。
【図9】図8の動作を説明するためのフローチャート。
【図10】従来の画像符号化装置の構成を示すブロック図。
【図11】インターレース画像についての説明図。
【図12】符号化時の走査方向についての説明図であり、(a)はJPEG2000特有の走査方向を示し、(b)は別の走査方向を示している。
【符号の説明】
1 画像入力手段
2 ボディデータ生成手段(画像符号化データ生成手段)
3 DCレベルシフト手段
4 カラー変換手段
5 ウェーブレット変換手段
6 スカラ量子化手段
7 係数ビットモデリング手段
8 エントロピー符号化手段
9 ヘッダ生成手段
10 符号データ出力手段
11 入力画像回転・転置手段
12 符号量比較手段
13 符号データ
14 メインヘッダ
15 ボディデータ(画像符号化データ)
16 画像回転・転置情報
17 符号データ入力手段
18 ヘッダ解析手段
19 出力画像データ生成手段
20 エントロピー復号化手段
21 スカラ逆量子化手段
22 逆ウェーブレット変換手段
23 カラー変換手段
24 DCレベルシフト手段
25 回転・転置判別手段
26 画像逆回転・再転置手段
27 画像出力手段
CB コードブロック
P 対象物画像
L1 トップフィールド側ライン
L2 ボトムフィールド側ライン
D1〜D12 画素データ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image encoding device that encodes image data, an image encoding program, an image decoding device that decodes code data obtained by the encoding, and an image decoding program. It is.
[0002]
[Prior art]
As an image compression method, various methods have been conventionally used, including the most common JPEG. Recently, there is JPEG2000 as an image compression method which has been internationally standardized and attracting attention. This JPEG2000 is a method using wavelet transform (DWT), whereas conventional JPEG is a method using discrete cosine transform (DCT). It has many advantages such as a higher compression rate than comparable image quality. Even in the image data encoding technique using the JPEG2000 standard, further improvement of the compression rate is pursued (see, for example, Patent Document 1 or Patent Document 2).
[0003]
FIG. 10 is a block diagram showing a configuration of a conventional image encoding apparatus using JPEG2000. This apparatus includes an image input unit 1, a body data generation unit (image encoded data generation unit) 2, a header generation unit 9, and a code data output unit 10. The body data generation unit 2 includes a DC level shift unit 3, a color conversion unit 4, a wavelet conversion unit 5, a scalar quantization unit 6, a coefficient bit modeling unit 7, and an entropy encoding unit 8.
[0004]
Among the above-described components, the DC level shift means 3, the color conversion means 4, and the scalar quantization means 6 are provided as options in JPEG2000. In JPEG2000, there are other options as an option, but the explanation is omitted because they are not directly related to the technology of the present invention or are less important. In JPEG2000, an image is divided into a plurality of tile areas, and high-speed parallel processing is possible by eliminating the correlation between the tile areas. It is assumed that the processing is in the area. Therefore, in FIG. 10, illustration of components such as tiling means is omitted.
[0005]
Next, the operation of the apparatus according to FIG. 10 will be described. First, input image data from the image input means 1 is input to the DC level shift means 3, and the DC level is shifted. The shift of the DC level is to shift the level of the input image data with reference to a DC (direct current) component, that is, a zero component, in order to increase the encoding efficiency.
[0006]
Input image data from the DC level shift means 3 is input to the color conversion means 4, where conversion from values in the RGB color space to values in the YUV color space is performed. This conversion is also performed to increase the encoding efficiency.
[0007]
The image data color-converted by the color conversion means 4 is input to the wavelet conversion means 5 and wavelet conversion is performed. The wavelet transform is a transform used when analyzing a complex vibration waveform and the like, and is a waveform data analysis method that can simultaneously capture temporal or spatial fluctuations while taking advantage of the Fourier analysis.
[0008]
The scalar quantization means 6 quantizes the converted data into scalar values by dividing the converted data from the wavelet transform means 5 by a certain value. However, this quantization is not always necessary.
[0009]
The coefficient bit modeling unit 7 converts the wavelet coefficients quantized by the scalar quantization unit 6 into bit planes, and further, three predetermined paths (Significant Propagation Pass, Magnitude Refinement Pass, and Cleanup Pass) for each bit plane. (Process called three passes).
[0010]
The bit plane data processed by the coefficient bit modeling means 7 is input to the entropy encoding means 8 where entropy encoding is performed to generate body data (image encoded data). Then, necessary header information generated by the header generation unit 9 (for example, the number of bits of the wavelet coefficient, the number of zero bit planes, the number of processing paths, etc.) is added to the generated body data. The code data output means 10 outputs the body data and header information as code data.
[0011]
[Patent Document 1]
JP 2002-135594 A
[Patent Document 2]
JP 2002-165098 A
[0012]
[Problems to be solved by the invention]
By the way, FIG. 11 is explanatory drawing about the interlace image in a certain one code block CB. The interlaced image is an image obtained by alternately interleaving the top field and the bottom field, and in the example of FIG. 11, a certain object image P is interleaved with the top field side line L1 interleaved. The state formed by the bottom field side line L2 is clearly shown. In such an interlaced image of the object image P, it is clear that the correlation between the pixel data appears strongly in the horizontal direction, and the correlation in the vertical direction is extremely sparse.
[0013]
Here, the coefficient bit modeling and encoding performed by the coefficient bit modeling means 7 and the entropy encoding means 8 are based on a method specific to JPEG2000 called EBCOT, and the scanning direction is based on the vertical direction. FIG. 12A is an explanatory diagram of the scanning direction of such JPEG2000. As indicated by the arrows in this figure, within the region where the stripe height is 4 pixels and the stripe width is 10 pixels, the image is first lowered vertically by 4 pixels from the upper left position of the screen, and then the highest position in the next column. Then, the scanning of descending in the vertical direction by four pixels again is sequentially repeated.
[0014]
However, when encoding an image with very little correlation in the vertical direction as shown in FIG. 11, the scanning direction of JPEG 2000 in FIG. 12A based on the vertical direction is not a very suitable scanning direction. On the other hand, the preferred scanning direction is another scanning direction as shown in FIG. In other words, within the region where the stripe height is 1 pixel and the stripe width is 4 pixels, the image is first moved horizontally by 4 pixels from the upper left position on the screen, and then moved to the position one row below and again horizontally by 4 pixels. It is a scan like moving to.
[0015]
However, in the JPEG2000 standard, the scanning direction as shown in FIG. 12B is not allowed, so the scanning direction as shown in FIG. Therefore, conventionally, when encoding an image having low correlation in the vertical direction, such as an interlaced image, based on the JPEG2000 standard, it has been difficult to improve the compression efficiency beyond a certain level.
[0016]
The present invention has been made in view of the above circumstances, and it is possible to improve the compression efficiency by a certain level or more when encoding an image having low correlation in the vertical direction such as an interlaced image based on the JPEG2000 standard. It is an object of the present invention to provide a possible image encoding device, an image encoding program, and an image decoding device and an image decoding program for decoding code data obtained by the encoding.
[0017]
[Means for Solving the Problems]
As means for solving the above problems, the invention according to claim 1 is characterized in that input image rotation / transposition means for rotating or transposing 90 ° or −90 ° with respect to input image data, the input image data, Image encoded data generating means for performing the same encoding on both the rotated and transposed input image data that has been rotated or transposed by the input image rotating / transposing means, and generating image encoded data; A code amount of the first image encoded data generated by the image encoded data generation means by encoding the input image data, and the image encoded data generation means encodes the input image data after the rotation / transposition. A code amount comparison unit that compares the code amount of the second image encoded data generated by the first image encoded data and the first image encoded data according to the comparison result in the code amount comparison unit. Code data output means for outputting the image encoded data having the smaller code amount of the second image encoded data.
[0018]
According to the second aspect of the present invention, there is provided an input image rotation / transposition means for rotating or transposing a computer by 90 ° or −90 ° with respect to input image data, the input image data, and the input image rotation / transposition means. The encoded image data generating means for generating the image encoded data by performing the same encoding on both the rotated and transposed input image data subjected to the rotation or transposition in the above, and the image encoded data generation A code amount of the first image encoded data generated by the means for encoding the input image data, and a second image generated by the image encoded data generating means for encoding the input image data after rotation and transposition. Code amount comparison means for comparing the code amount of the encoded data, and the first image encoded data and the second image encoded data according to the comparison result of the code amount comparison means. Data code output means for outputting the encoded image data having the smaller code amount of the data.
[0019]
According to the third aspect of the present invention, the first encoded image data generated by predetermined encoding of the input image data, or the input image data after rotation / transposition after the input image data is rotated or transposed. The second image encoded data generated by the predetermined encoding is input, and the output image data by predetermined decoding with respect to the image encoded data from the code data input unit Output image data generation means for generating, rotation / transposition determination means for determining whether or not the image encoded data input by the code data input means has been rotated or transposed, and the rotation / transposition determination means When the transposition determination means determines that the rotation or transposition has been performed, the output image data generated by the output image data generation means is the rotation or transposition. Perform reverse rotation or re-transposition to return to the state before being performed, output image data after reverse rotation or re-transposition processing, and determine that the rotation / transposition discrimination means has not been rotated or transposed In this case, image output means for outputting the output image data generated by the output image data generation means as it is is provided.
[0020]
The invention according to claim 4 is the first image encoded data generated by predetermined encoding of the input image data, or the input image after rotation / transposition after rotating or transposing the input image data. The second image encoded data generated by the predetermined encoding is input to the data, the code data input means, and the image encoded data from the code data input means by the predetermined decoding Output image data generation means for generating output image data, rotation / transposition determination means for determining whether or not the image encoded data input by the code data input means has been subjected to the rotation or transposition, The output image data generated by the output image data generation means when the rotation / transposition determination means determines that the rotation or transposition has been performed. Reverse rotation or re-transposition for returning to the state before the rotation or transposition is performed, image data after reverse rotation or re-transposition processing is output, and the rotation / transposition discrimination means is rotated or transposed. When it is determined that the output image data is not, the image output unit is configured to function as an image output unit that outputs the output image data generated by the output image data generation unit as it is.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing a configuration of an image encoding device according to an embodiment of the present invention, in which an image input means 1, body data generation means 2, header generation means 9, code data output means 10, input image rotation / A transposing means 11 and a code amount comparing means 12 are provided. The configuration of FIG. 1 is obtained by adding an input image rotation / transposition means 11 and a code amount comparison means 12 to the configuration of the conventional apparatus of FIG.
[0022]
That is, the input image rotation / transposition means 11 performs 90 ° or −90 ° rotation or transposition on the input image data from the image input means 1, and the input image data ( In this specification, this is referred to as “input image data after rotation / transposition”) and is output to the body data generation means 2 which is an image encoded data generation means.
[0023]
The body data generation unit 2 performs encoding based on JPEG2000 on the input image data directly input from the image input unit 1 to generate first body data (image encoded data). The input image data after rotation / transposition input via the input image rotation / transposition means 11 is encoded based on JPEG2000 to generate second body data (image encoded data).
[0024]
The code amount comparison unit 12 compares the code amount of the first body data generated by the body data generation unit 2 and the code amount of the second body data, and determines which is the smaller code amount. To do. The code data output means 10 outputs code data having the body data determined by the code amount comparison means 12 to be the smaller code amount of the first body data or the second body data. It has become.
[0025]
Here, the concept of “rotation” and “transposition” performed by the input image rotation / transposition means 11 will be described with reference to FIGS. FIGS. 2A and 2B are diagrams for explaining the rotation of the image data having the number of pixels of 3 × 3. FIG. 2A shows a state before the rotation, and FIG. 2B shows the image data from the state of FIG. A state after being rotated by 90 ° in the rotation direction is shown. Now, assuming that (a) is an image having low correlation in the vertical direction and high correlation in the horizontal direction like an interlaced image, the pixel data D1, D2 arranged in the first row (that is, in the horizontal direction). , D3 are highly correlated data. In (b), pixel data D3, D2, and D1 having high correlation with each other are arranged in the first column (that is, in the vertical direction) by rotation of −90 °. As described above with reference to FIG. 12A, since the scanning direction of JPEG 2000 is based on the vertical direction, efficient coding cannot be performed in the state of FIG. In the state (b), scanning is performed in accordance with the arrangement order of the pixel data D3, D2, and D1 having high correlation with each other, so that efficient encoding can be performed.
[0026]
FIG. 3 is an explanatory diagram of transposition of image data with 3 × 3 pixels. (A) is a state before transposition, and (b) is a transposition of image data from the state of (a) (for each pixel data). This shows the state after swapping rows and columns. Now, assuming that (a) is an image having low correlation in the vertical direction and high correlation in the horizontal direction like an interlaced image, the pixel data D1, D2 arranged in the first row (that is, in the horizontal direction). , D3 are highly correlated data. In (b), pixel data D1, D2, and D3 having high correlation with each other are arranged in the first column (that is, in the vertical direction) by transposition. Accordingly, in this case as well as in the case of FIG. 2B, scanning is performed according to the arrangement order of the pixel data D1, D2, and D3 having high correlation with each other, so that efficient encoding can be performed. .
[0027]
FIGS. 4A and 4B are diagrams for explaining the rotation of the image data having the number of pixels of 3 × 4. FIG. 4A is a state before the rotation, and FIG. It shows the state after. Assuming that (a) is an image having low correlation in the vertical direction and high correlation in the horizontal direction, such as an interlaced image, the pixel data D1, D2, D3, and D4 arranged in the first row are as follows. The data is highly correlated with each other. In (b), pixel data D4, D3, D2, and D1 having high correlation with each other are arranged in the first column by rotation of −90 °. Therefore, efficient coding cannot be performed in the state of FIG. 4A, but in the state of FIG. 4B, the arrangement of pixel data D4, D3, D2, and D1 that are highly correlated with each other. Since scanning is performed in accordance with the order, efficient encoding can be performed.
[0028]
FIG. 5 is an explanatory diagram of transposition of image data with 3 × 4 pixels. (A) is a state before transposition, and (b) is a state after transposing image data from the state of (a). Show. Assuming that (a) is an image having low correlation in the vertical direction and high correlation in the horizontal direction, such as an interlaced image, the pixel data D1, D2, D3, and D4 arranged in the first row are as follows. The data is highly correlated with each other. In (b), pixel data D1, D2, D3, and D4 having high correlation with each other are arranged in the first column by transposition. Therefore, in this case as well as in the case of FIG. 4B, scanning is performed according to the arrangement order of the pixel data D1, D2, D3, and D4 having high correlation with each other, so that efficient encoding can be performed. become.
[0029]
Further, as already described in FIG. 10, the header generation unit 9 generates header information such as the number of bits of the wavelet coefficient, the number of zero bit planes, the number of processing paths, etc. In this embodiment, Information on whether or not the input image data has been rotated or transposed, that is, image rotation / transposition information is also generated as the header information.
[0030]
FIG. 6 is an explanatory diagram showing the data storage position of the image rotation / transposition information. The header generation means 9 stores the image rotation / transposition information 16 together with the other header information generated in the main header 14, and stores the main header in the body data (image encoded data) 15 generated by the body data generation means 2. 14 is added. The code data output means 10 outputs the main header 14 and body data 15 as code data 13.
[0031]
The image rotation / transposition information 16 is generated because it may be necessary when decoding the body data 15 to obtain a reproduced image. In other words, if the input image data was rotated or transposed at the time of encoding, the reproduced image data obtained at the time of decoding is now rotated or re-transposed in the reverse direction to display the screen of the reproduced image data. Must be the same as the screen orientation of the original image. In this case, since the screen size of the input image data is usually different in horizontal and vertical dimensions (for example, 480 × 720), whether the image was rotated or transposed at the time of encoding when decoding was performed. Whether or not it can be determined by determining whether or not the horizontal and vertical dimensions of the screen size are switched. Therefore, on the decoding device side, whether or not reverse rotation or re-transposition is usually required for the reproduced image obtained by decoding, even if image rotation / transposition information is not added to the body data. Easy to know. However, if the screen of the input image data is square or if the screen size of the input image data has become a special size as a result of enlargement or reduction, the horizontal and vertical dimensions are switched. It is impossible to know whether or not rotation or transposition has been performed at the time of encoding only by discriminating. In the present embodiment, in consideration of such a case, the header generation unit 9 is configured to generate the image rotation / transposition information 16.
[0032]
Next, the operation of FIG. 1 will be described based on the flowchart of FIG. The image input means 1 inputs the original image data (step 71) and outputs it to the body data generation means 2 and the input image rotation / transposition means 11. The input image rotation / transposition means 11 rotates or transposes the input image data from the image input means 1 and outputs the input image data after the rotation / transposition to the body data generation means 2.
[0033]
The body data generation unit 2 performs encoding based on the JPEG2000 standard on the input image data input from the image input unit 1, generates first body data, and calculates the code amount Q1 (step 72). . The body data generation means 2 further performs encoding based on the JPEG 2000 standard on the rotated / transposed input image data input from the input image rotation / transposition means 11 to generate second body data and The code amount Q2 is calculated (step 73).
[0034]
The header generation means 9 adds header information not including image rotation / transposition information to the first body data, and adds header information including image rotation / transposition information to the second body data. In addition, these are output to the code data output means 10.
[0035]
The code amount comparison unit 12 determines the magnitude relationship between the code amounts Q1 and Q2 (step 74), and outputs the determination result to the code data output unit 10. When the code amount Q2 is smaller than the code amount Q1, the code data output means 10 outputs the code data having the second body data (step 75), while the code amount Q1 If is smaller than or equal to the code amount Q2, the code data having the first body data is output (step 76).
[0036]
In the above-described embodiment, both the first body data obtained by encoding the input image data as it is and the second body data encoded after rotating or transposing the input image data are generated. It is configured to output the smaller one. Therefore, even if the input image is an image having low correlation in the vertical direction such as an interlaced image, the compression efficiency at the time of encoding can be sufficiently improved.
[0037]
FIG. 8 is a block diagram showing a configuration of an image decoding apparatus according to an embodiment of the present invention, which is suitable for decoding code data obtained by the above-described image encoding apparatus of FIG. . This apparatus includes an image output means 27 having a code data input means 17, a header analysis means 18, an output image data generation means 19, a rotation / transposition determination means 25, and an image reverse rotation / reposition means 26. Based on the analysis result of the header analysis unit 18, the rotation / transposition determination unit 25 determines whether the body data of the code data input by the code data input unit 17 has been rotated or transposed at the time of encoding. Alternatively, the determination is made based on detection of whether the horizontal and vertical dimensions of the screen size of the input image data are switched. The image reverse rotation / retransposition means 26 rotates the output image data generated by the output image data generation means 19 when the rotation / transposition determination means 25 determines that the rotation or transposition has been performed at the time of encoding. Alternatively, reverse rotation or re-transposition for returning to the state before transposition is performed. The image output means 27 outputs an output image that has been reverse-rotated or re-transposed by the function of the image reverse-rotation / re-transposition means 26 or an output image that has not been reverse-rotated or re-transposed.
[0038]
The output image data generation unit 19 includes an entropy decoding unit, a scalar inverse quantization unit 21, an inverse wavelet transform unit 22, a color conversion unit 23, and a DC level shift unit 24. Among these, the scalar inverse quantization means 21, the color conversion means 23, and the DC level shift means 24 are provided as options in JPEG2000. In JPEG2000, there are other options as an option, but the explanation is omitted because they are not directly related to the technology of the present invention or are less important.
[0039]
The entropy decoding means 20 performs entropy decoding of the compression-encoded image data using the analysis result of the header analysis means 18, and creates a scalar quantized coefficient sequence from the output bit sequence.
[0040]
The scalar inverse quantization means 21 converts the coefficient sequence created by the entropy decoding means 20 based on the quantization style specified by the main header analyzed by the header analysis means 18 with a predetermined calculation formula in the JPEG2000 standard. Inverse quantization is used to generate wavelet coefficients. Note that the wavelet coefficients generated by the wavelet transform at the time of encoding are not necessarily scalar quantized, and in this case, the inverse quantization by the scalar inverse quantization means 21 is not performed.
[0041]
The inverse wavelet transform unit 22 performs inverse wavelet transform on the wavelet coefficient obtained by the scalar dequantization unit 21 based on the number of decompositions of the coding style specified by the main header, and creates image data in the YUV color space. It is.
[0042]
The color conversion means 23 converts the image data obtained by the inverse wavelet conversion means 22 from YUV components to RGB components according to the analysis result of the header analysis means 18. However, the color conversion means 237 does not operate when code data of a monochrome image or color conversion is not performed at the time of encoding.
[0043]
The DC level shift unit 24 shifts the DC level of each value of the RGB components obtained by the color conversion unit 23. The DC level shift is a shift so that the dynamic range is centered on the value 0 at the time of encoding, and is returned to the original at the time of decoding. The reason for performing the DC level shift is that the coefficient after frequency conversion is encoded by being divided into positive and negative signs and absolute values, and therefore the coding efficiency is higher when the data is arranged with reference to the zero value. It is.
[0044]
Next, the operation of FIG. 8 will be described based on the flowchart of FIG. Image data, that is, body data compressed and encoded in accordance with the JPEG 2000 standard by the image encoding apparatus of FIG. 1 is input by the code data input means 17 using a file system or network means (step 91). As described above with reference to FIG. 1, the input body data includes first body data obtained by encoding input image data as it is, or second body data obtained by encoding input image data after rotation / transposition. The code amount is smaller.
[0045]
A main header is attached to the body data, and the header analysis means 18 reads and analyzes these headers. Here, the main header stores information about the size of the image, the size of the tile, the offset of the image position, the offset of the tile position, the number of sample bits per pixel, the number of components such as RGB, and the like. The image rotation / transposition information described above is also stored.
[0046]
The output image data generation means 19 performs decoding based on the JPEG2000 standard on the body data of the code data from the code data input means 17 while referring to the analysis result of the header analysis means 18 (Step 92) The output image data is output to the image reverse rotation / retransposition means 26.
[0047]
Based on the analysis result of the header analysis unit 18, the rotation / transposition determination unit 25 determines whether the body data of the code data input by the code data input unit 17 has been rotated or transposed at the time of encoding. Alternatively, a determination is made based on whether or not the horizontal and vertical dimensions of the screen size of the input image data are switched (step 93), and the determination result is output to the image reverse rotation / retransposition means 26.
[0048]
When the rotation / transposition determination unit 25 determines that rotation or transposition has been performed at the time of encoding, the image reverse rotation / retransposition unit 26 rotates the output image data generated by the output image data generation unit 19. Alternatively, reverse rotation or re-transposition for returning to the state before the transposition is performed (step 94), and the output image data subjected to the reverse rotation or re-transposition is output to the image output means 27. On the other hand, when the rotation / transposition determination unit 25 determines that the rotation or transposition has not been performed at the time of encoding, the image reverse rotation / retransposition unit 26 outputs the output generated by the output image data generation unit 19. The image data is output to the image output means 27 as it is without doing anything.
[0049]
Then, the image output means 27 outputs an output image that has been reversely rotated or retransposed by the image reverse rotation / retransposition means 26, or an output image that has not been reversely rotated or retransposed (step 95). .
[0050]
The present invention includes a program for causing a computer to realize the functions of the above-described image encoding device and image decoding device. These programs may be read from a recording medium and loaded into a computer, or may be transmitted via a communication network and loaded into a computer.
[0051]
In the above embodiment, the encoding based on the JPEG2000 standard has been described. However, the present invention is not limited to the encoding method in which the compression efficiency can be improved by rotating or transposing the input image. Of course, the present invention can also be applied to those that use.
[0052]
【The invention's effect】
As described above, according to the present invention, when encoding an image having low correlation in the vertical direction, such as an interlaced image, the image encoding capable of sufficiently improving the compression efficiency as compared with the prior art. An apparatus and an image encoding program can be provided, and an image decoding program suitable for decoding the code data generated thereby can be provided.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an image encoding device according to an embodiment of the present invention.
FIG. 2 is an explanatory diagram of the concept of “rotation” of image data with 3 × 3 pixels performed by the input image rotation / transposition means 11 in FIG. 1, where (a) is a state before rotation; ) Shows the state after rotation.
FIG. 3 is an explanatory diagram about the concept of “transposition” of image data with 3 × 3 pixels performed by the input image rotation / transposition means 11 in FIG. 1, wherein (a) is a state before transposition; ) Shows the state after transposition.
FIG. 4 is an explanatory diagram of the concept of “rotation” of image data with 3 × 4 pixels performed by the input image rotation / transposition means 11 in FIG. 1, where (a) is a state before rotation; ) Shows the state after rotation.
FIG. 5 is an explanatory diagram of the concept of “transposition” of image data with 3 × 4 pixels performed by the input image rotation / transposition means 11 in FIG. 1; (a) is a state before transposition; ) Shows the state after transposition.
6 is an explanatory diagram showing a data storage position of image rotation / transposition information generated by the header generation unit 9 in FIG. 1. FIG.
7 is a flowchart for explaining the operation of FIG. 1;
FIG. 8 is a block diagram showing a configuration of an image decoding apparatus according to an embodiment of the present invention.
FIG. 9 is a flowchart for explaining the operation of FIG. 8;
FIG. 10 is a block diagram showing a configuration of a conventional image encoding device.
FIG. 11 is an explanatory diagram of an interlaced image.
FIGS. 12A and 12B are explanatory diagrams of a scanning direction at the time of encoding, where FIG. 12A shows a scanning direction peculiar to JPEG 2000, and FIG. 12B shows another scanning direction.
[Explanation of symbols]
1 Image input means
2 Body data generation means (image encoded data generation means)
3 DC level shift means
4 Color conversion means
5 Wavelet transform means
6 scalar quantization means
7 Coefficient bit modeling means
8 Entropy encoding means
9 Header generation means
10 Code data output means
11 Input image rotation / transposition means
12 Code amount comparison means
13 Code data
14 Main header
15 Body data (image encoded data)
16 Image rotation / transposition information
17 Code data input means
18 Header analysis means
19 Output image data generation means
20 Entropy decoding means
21 Scalar inverse quantization means
22 Inverse wavelet transform means
23 Color conversion means
24 DC level shift means
25 Rotation / transposition discrimination means
26 Image reverse rotation / re-transposition means
27 Image output means
CB code block
P Object image
L1 Top field side line
L2 Bottom field side line
D1-D12 pixel data

Claims (4)

入力画像データに対して90°若しくは−90°の回転又は転置を行う入力画像回転・転置手段と、
前記入力画像データと、前記入力画像回転・転置手段で前記回転又は転置が行われた回転・転置後入力画像データとの双方に対して同一の符号化を行い、画像符号化データを生成する画像符号化データ生成手段と、
前記画像符号化データ生成手段が前記入力画像データに対する符号化により生成した第1の画像符号化データの符号量と、前記画像符号化データ生成手段が前記回転・転置後入力画像データに対する符号化により生成した第2の画像符号化データの符号量とを比較する符号量比較手段と、
前記符号量比較手段での比較結果に応じて、前記第1の画像符号化データと前記第2の画像符号化データとの内の符号量の小さな方の画像符号化データを出力する符号データ出力手段と、
を備えたことを特徴とする画像符号化装置。
An input image rotation / transposition means for performing rotation or transposition of 90 ° or −90 ° with respect to the input image data;
An image that generates the encoded image data by performing the same encoding on both the input image data and the input image data that has been rotated or transposed by the input image rotation / transposition means. Encoded data generating means;
The code amount of the first image encoded data generated by the image encoded data generating means by encoding the input image data, and the image encoded data generating means by the encoding of the input image data after rotation / transposition. Code amount comparison means for comparing the code amount of the generated second image encoded data;
Code data output for outputting image encoded data having a smaller code amount of the first image encoded data and the second image encoded data according to the comparison result in the code amount comparing means Means,
An image encoding apparatus comprising:
コンピュータを、
入力画像データに対して90°若しくは−90°の回転又は転置を行う入力画像回転・転置手段と、
前記入力画像データと、前記入力画像回転・転置手段で前記回転又は転置が行われた回転・転置後入力画像データとの双方に対して同一の符号化を行い、画像符号化データを生成する画像符号化データ生成手段と、
前記画像符号化データ生成手段が前記入力画像データに対する符号化により生成した第1の画像符号化データの符号量と、前記画像符号化データ生成手段が前記回転・転置後入力画像データに対する符号化により生成した第2の画像符号化データの符号量とを比較する符号量比較手段と、
前記符号量比較手段での比較結果に応じて、前記第1の画像符号化データと前記第2の画像符号化データとの内の符号量の小さな方の画像符号化データを出力する符号データ出力手段と、
して機能させるためのものであることを特徴とする画像符号化プログラム。
Computer
An input image rotation / transposition means for performing rotation or transposition of 90 ° or −90 ° with respect to the input image data;
An image that generates the encoded image data by performing the same encoding on both the input image data and the input image data that has been rotated or transposed by the input image rotation / transposition means. Encoded data generating means;
The code amount of the first image encoded data generated by the image encoded data generating means by encoding the input image data, and the image encoded data generating means by the encoding of the input image data after rotation / transposition. Code amount comparison means for comparing the code amount of the generated second image encoded data;
Code data output for outputting image encoded data having a smaller code amount of the first image encoded data and the second image encoded data according to the comparison result in the code amount comparing means Means,
An image coding program characterized in that the image coding program is for making it function.
入力画像データに対して所定の符号化により生成された第1の画像符号化データ、又は入力画像データを回転若しくは転置した後の回転・転置後入力画像データに対して前記所定の符号化により生成された第2の画像符号化データが入力される、符号データ入力手段と、
前記符号データ入力手段からの画像符号化データに対して所定の復号化により出力画像データを生成する出力画像データ生成手段と、
前記符号データ入力手段が入力した画像符号化データが前記回転又は転置が行われたものであるか否かについて判別する回転・転置判別手段と、
前記回転・転置判別手段が前記回転又は転置が行われたものであると判別した場合に、前記出力画像データ生成手段により生成された出力画像データを前記回転又は転置が行われる前の状態に戻すための逆回転又は再転置を行い、逆回転又は再転置処理後の画像データを出力し、前記回転・転置判別手段が回転又は転置が行われたものではないと判別した場合には、前記出力画像データ生成手段により生成された出力画像データをそのまま出力する画像出力手段と、
を備えたことを特徴とする画像復号化装置。
First image encoded data generated by predetermined encoding for input image data, or input image data after rotation / transposition after rotation or transposition of input image data, generated by the predetermined encoding Code data input means for inputting the encoded second image encoded data;
Output image data generation means for generating output image data by predetermined decoding with respect to the image encoded data from the code data input means;
Rotation / transposition discrimination means for discriminating whether or not the image encoded data input by the code data input means has been subjected to the rotation or transposition;
When the rotation / transposition determination means determines that the rotation or transposition has been performed, the output image data generated by the output image data generation means is returned to the state before the rotation or transposition. If the rotation / transposition determining means determines that the rotation or transposition has not been performed, the output is performed. Image output means for directly outputting the output image data generated by the image data generation means;
An image decoding apparatus comprising:
コンピュータを、
入力画像データに対して所定の符号化により生成された第1の画像符号化データ、又は入力画像データを回転若しくは転置した後の回転・転置後入力画像データに対して前記所定の符号化により生成された第2の画像符号化データが入力される、符号データ入力手段と、
前記符号データ入力手段からの画像符号化データに対して所定の復号化により出力画像データを生成する出力画像データ生成手段と、
前記符号データ入力手段が入力した画像符号化データが前記回転又は転置が行われたものであるか否かについて判別する回転・転置判別手段と、
前記回転・転置判別手段が前記回転又は転置が行われたものであると判別した場合に、前記出力画像データ生成手段により生成された出力画像データを前記回転又は転置が行われる前の状態に戻すための逆回転又は再転置を行い、逆回転又は再転置処理後の画像データを出力し、前記回転・転置判別手段が回転又は転置が行われたものではないと判別した場合には、前記出力画像データ生成手段により生成された出力画像データをそのまま出力する画像出力手段と、
して機能させるためのものであることを特徴とする画像復号化プログラム。
Computer
First image encoded data generated by predetermined encoding for input image data, or input image data after rotation / transposition after rotation or transposition of input image data, generated by the predetermined encoding Code data input means for inputting the encoded second image encoded data;
Output image data generation means for generating output image data by predetermined decoding with respect to the image encoded data from the code data input means;
Rotation / transposition discrimination means for discriminating whether or not the image encoded data input by the code data input means has been subjected to the rotation or transposition;
When the rotation / transposition determination means determines that the rotation or transposition has been performed, the output image data generated by the output image data generation means is returned to the state before the rotation or transposition. If the rotation / transposition determining means determines that the rotation or transposition has not been performed, the output is performed. Image output means for directly outputting the output image data generated by the image data generation means;
An image decoding program characterized in that the program is made to function as an image.
JP2003186598A 2003-06-30 2003-06-30 Image coding device and program, and image decoding device and program Pending JP2005026729A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003186598A JP2005026729A (en) 2003-06-30 2003-06-30 Image coding device and program, and image decoding device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003186598A JP2005026729A (en) 2003-06-30 2003-06-30 Image coding device and program, and image decoding device and program

Publications (1)

Publication Number Publication Date
JP2005026729A true JP2005026729A (en) 2005-01-27

Family

ID=34185689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003186598A Pending JP2005026729A (en) 2003-06-30 2003-06-30 Image coding device and program, and image decoding device and program

Country Status (1)

Country Link
JP (1) JP2005026729A (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006352181A (en) * 2005-02-18 2006-12-28 Hitachi Ltd Image encoding/decoding device, encoding/decoding program and encoding/decoding method
JP2008136237A (en) * 2008-01-16 2008-06-12 Hitachi Ltd Image encoding/decoding device, encoding/decoding program and encoding/decoding method
JP2011055556A (en) * 2010-12-14 2011-03-17 Hitachi Ltd Image encoding/decoding device, encoding/decoding program and encoding/decoding method
JP2012090327A (en) * 2011-12-27 2012-05-10 Ntt Docomo Inc Moving picture coding apparatus, moving picture decoding apparatus, moving picture coding method, moving picture decoding method, moving picture coding program, and moving picture decoding program
JP2012095352A (en) * 2012-01-13 2012-05-17 Hitachi Consumer Electronics Co Ltd Image encoding/decoding device, encoding/decoding program, and encoding/decoding method
JP2012257323A (en) * 2012-08-31 2012-12-27 Hitachi Consumer Electronics Co Ltd Image encoding/decoding device, encoding/decoding program, and encoding/decoding method
JP2013251918A (en) * 2013-08-07 2013-12-12 Hitachi Consumer Electronics Co Ltd Image encoding/decoding device, encoding/decoding program, and encoding/decoding method
JP2014239504A (en) * 2014-07-31 2014-12-18 日立コンシューマエレクトロニクス株式会社 Decoding device
JP2016026439A (en) * 2015-09-07 2016-02-12 日立マクセル株式会社 Decoding device
JP2017028724A (en) * 2016-09-20 2017-02-02 日立マクセル株式会社 Decoder
JP2017038377A (en) * 2016-09-20 2017-02-16 日立マクセル株式会社 Decoding method
JP2018088688A (en) * 2018-01-12 2018-06-07 マクセル株式会社 Method for decoding
JP2019080348A (en) * 2019-01-24 2019-05-23 マクセル株式会社 Decoding method
JP2023523172A (en) * 2021-03-23 2023-06-02 テンセント・アメリカ・エルエルシー Improving Video Coding Parallelism

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270998B2 (en) 2004-04-28 2016-02-23 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9118924B2 (en) 2004-04-28 2015-08-25 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9549195B2 (en) 2004-04-28 2017-01-17 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9319687B2 (en) 2004-04-28 2016-04-19 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US8787456B2 (en) 2004-04-28 2014-07-22 Hitachi Consumer Electronics Co., Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9277226B2 (en) 2004-04-28 2016-03-01 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9414082B1 (en) 2004-04-28 2016-08-09 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9432681B2 (en) 2004-04-28 2016-08-30 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9414083B1 (en) 2004-04-28 2016-08-09 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9277225B2 (en) 2004-04-28 2016-03-01 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US9414084B1 (en) 2004-04-28 2016-08-09 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US8923387B2 (en) 2004-04-28 2014-12-30 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
US8971403B1 (en) 2004-04-28 2015-03-03 Hitachi Maxell, Ltd. Image decoding device and method thereof using inter-coded predictive encoding code
JP2006352181A (en) * 2005-02-18 2006-12-28 Hitachi Ltd Image encoding/decoding device, encoding/decoding program and encoding/decoding method
JP4542447B2 (en) * 2005-02-18 2010-09-15 株式会社日立製作所 Image encoding / decoding device, encoding / decoding program, and encoding / decoding method
JP2008136237A (en) * 2008-01-16 2008-06-12 Hitachi Ltd Image encoding/decoding device, encoding/decoding program and encoding/decoding method
JP4683050B2 (en) * 2008-01-16 2011-05-11 株式会社日立製作所 Image encoding / decoding device, encoding / decoding program, and encoding / decoding method
JP2011055556A (en) * 2010-12-14 2011-03-17 Hitachi Ltd Image encoding/decoding device, encoding/decoding program and encoding/decoding method
JP2012090327A (en) * 2011-12-27 2012-05-10 Ntt Docomo Inc Moving picture coding apparatus, moving picture decoding apparatus, moving picture coding method, moving picture decoding method, moving picture coding program, and moving picture decoding program
JP2012095352A (en) * 2012-01-13 2012-05-17 Hitachi Consumer Electronics Co Ltd Image encoding/decoding device, encoding/decoding program, and encoding/decoding method
JP2012257323A (en) * 2012-08-31 2012-12-27 Hitachi Consumer Electronics Co Ltd Image encoding/decoding device, encoding/decoding program, and encoding/decoding method
JP2013251918A (en) * 2013-08-07 2013-12-12 Hitachi Consumer Electronics Co Ltd Image encoding/decoding device, encoding/decoding program, and encoding/decoding method
JP2014239504A (en) * 2014-07-31 2014-12-18 日立コンシューマエレクトロニクス株式会社 Decoding device
JP2016026439A (en) * 2015-09-07 2016-02-12 日立マクセル株式会社 Decoding device
JP2017028724A (en) * 2016-09-20 2017-02-02 日立マクセル株式会社 Decoder
JP2017038377A (en) * 2016-09-20 2017-02-16 日立マクセル株式会社 Decoding method
JP2018088688A (en) * 2018-01-12 2018-06-07 マクセル株式会社 Method for decoding
JP2019080348A (en) * 2019-01-24 2019-05-23 マクセル株式会社 Decoding method
JP2023523172A (en) * 2021-03-23 2023-06-02 テンセント・アメリカ・エルエルシー Improving Video Coding Parallelism
JP7511668B2 (en) 2021-03-23 2024-07-05 テンセント・アメリカ・エルエルシー Improved parallel processing of video coding

Similar Documents

Publication Publication Date Title
CN102640498B (en) Method and device for image encoding and decoding by texture-pattern-adaptive partitioned block transform
JP4700491B2 (en) Adaptive coefficient scan ordering
RU2612612C2 (en) Method and apparatus for performing interpolation based on transform and inverse transform
JP2005026729A (en) Image coding device and program, and image decoding device and program
US7302105B2 (en) Moving image coding apparatus, moving image decoding apparatus, and methods therefor
JP2010519858A (en) Control of computational complexity and accuracy in transform-based digital media codecs
JP2005517316A (en) Configurable pattern optimizer
Suzuki Wavelet-based spectral–spatial transforms for CFA-sampled raw camera image compression
US8275209B2 (en) Reduced DC gain mismatch and DC leakage in overlap transform processing
JP2000341689A (en) Wavelet inverse converting device and its method and wavelet decoding device and its method
JP2005086351A (en) Coding device, coding method, program and information record medium
CN1954614B (en) Method and device for encoding blocks of values
EP3022845A1 (en) Encoder and decoder, and method of operation
Babu et al. Efficient lossless image compression using modified hierarchical prediction and context adaptive coding
JP4776505B2 (en) Image encoding device, image decoding device, and image processing program
JP2009188514A (en) Image encoding apparatus, image decoding apparatus and image processing program
JPH07143488A (en) Method and device for decoding image data
US20050063462A1 (en) Visual scan method using scan table and discrete cosine transform device employing the same method
JPH04247770A (en) Picture data compression method, picture data compression device and picture data restoring device
JP3775180B2 (en) Image processing method and apparatus
Cai et al. Lossless image compression with tree coding of magnitude levels
JP2006211513A (en) Encoding processor, encoding processing method, program and information recording medium
JP3869303B2 (en) Image decoding method and apparatus
JPH11136674A (en) Image coding method and storage medium
JP4194311B2 (en) Moving picture encoding apparatus, moving picture decoding apparatus, and methods thereof