JP2011217347A - 画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム - Google Patents

画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム Download PDF

Info

Publication number
JP2011217347A
JP2011217347A JP2010247587A JP2010247587A JP2011217347A JP 2011217347 A JP2011217347 A JP 2011217347A JP 2010247587 A JP2010247587 A JP 2010247587A JP 2010247587 A JP2010247587 A JP 2010247587A JP 2011217347 A JP2011217347 A JP 2011217347A
Authority
JP
Japan
Prior art keywords
unit
image
coefficient data
data
encoding
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.)
Withdrawn
Application number
JP2010247587A
Other languages
English (en)
Inventor
Kazuhiro Shimauchi
和博 嶋内
Yuji Wada
祐司 和田
Hiroshi Ikeda
広志 池田
Daishi Tahara
大資 田原
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2010247587A priority Critical patent/JP2011217347A/ja
Priority to US13/019,699 priority patent/US8625909B2/en
Priority to CN2011100541121A priority patent/CN102196265A/zh
Publication of JP2011217347A publication Critical patent/JP2011217347A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (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)

Abstract

【課題】ブロック単位で画像の符号化を行ってもブロック歪みの少ない復号画像を得ることができるようにする。
【解決手段】帯域分割部22は、ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する。周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えて再度周波数帯域分割を行う。ブロックの端部で画像データを拡張して周波数帯域分割を繰り返しても、拡張された画像データを用いて生成された低域成分の係数データの位置が固定した位置とならず、拡張された画像データを用いたことによる帯域分離精度の低下による影響が繰り返し反映されてしまうことがない。エントロピー符号化部24は、複数の周波数帯域毎の係数データを符号化する。
【選択図】 図5

Description

この発明は、画像符号化装置とその方法、画像復号化装置とその方法、およびプログラムに関する。詳しくは、ブロック歪みが少なく符号化効率を高めることができるようにする。
近年、画像データの高解像度化やハイフレームレート化に伴い、画像処理システムにおいて、単位時間内で限られたリソースの中で多くのデータを扱うことは非常に困難となっている。例えば図1に示すように、画像処理システム80で画像処理を行う過程において、メモリ85を利用する場合、大きな容量のメモリと、データ転送に必要な広いバス帯域幅を確保する必要となるため、システムの小型化やコスト削減が困難となってしまう。そこで、例えば特許文献1では、図2に示すように、画像処理システム80とメモリ85との間に画像符号化部81を設けて、画像データをメモリに記憶する前に符号化してデータ量を削減することが行われている。また、画像処理システム80とメモリ85との間に画像復号化部82を設けて、メモリ85に記憶されている符号化データを取り出すときに復号化して画像データを得ることができるようになされている。
ここで、特許文献1では、メモリ格納時の符号化方式に比較的処理量の少ない差分パルス符号化変調(以下、「DPCM(differential pulse code modulation)」という)を用いている。例えば1画素が8ビットである5画素分(40ビット)のデータを、最初の画素は8ビット、2つ目以降の画素は隣り合う画素との差分値をとって量子化して6ビットとする。したがって、DPCM後は5画素で32ビットとなり、4/5の圧縮となる。また、特許文献1では、DPCMの単位を小さなブロック単位やバス転送単位で実現することで、ランダムアクセスを可能とし、本来画像処理システムが持つメモリアクセス効率を保ちながら、メモリ容量とバス帯域幅の低減がはかられている。
特許第3918263号
David Taubman, Michael Marcellin 著 JPEG2000: Image Compression Fundamentals, Standards and Practice(The Springer International Series in Engineering and Computer Science)
ところで、特許文献1で示されている符号化方式は簡易なDPCMであるためメモリアクセス効率を保つことは容易であるが、メモリから取り出して復号化された画像データには顕著な劣化を伴ってしまう可能性がある。
また、従来の一般的な画像符号化方式では、より符号化効率の高いものがある(例えばH.264/AVC(Advanced Video Coding)やJPEG(Joint Photographic Experts Group) 2000)。しかし、このような画像符号化方式は、上述のように簡易で小さなブロック単位やバス転送単位という条件で効率的に符号化することは困難である。
また、従来の一般的な画像符号化方式は、符号化効率の観点から固定長符号化よりも可変長符号化を用いることが多く、必ずしも特許文献1で示すDPCMのように所望のビット長になるとは限らない。したがって、定められたビット長以下となるように符号化を行い、残りを無効なビットでパディングしてバス転送単位に合わせる必要がある。しかし、小さなバス転送単位において、このような無効ビットが含まれることは効率的ではない。
さらに、従来の一般的な画像符号化方式では、画像をブロックに分割して符号化した場合に、ブロックの境界にブロック歪みが生じる問題が知られている。このブロック歪みを低減するために、一般的には復号化においてデブロッキングフィルタが用いられているが、符号化においてブロック歪みを軽減することはなされていない。
そこで、この発明では、ブロック単位で画像の符号化を行ってもブロック歪みの少ない復号画像を得ることができる画像符号化装置と符号化方法と、符号化された画像を復号化する画像復号化装置と画像復号化方法、およびプログラムを提供することを目的とする。
この発明の第1の側面は、ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する周波数帯域分割を行い、該周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えて該低域成分の係数データの周波数帯域分割を行う帯域分割部と、前記複数の周波数帯域毎の係数データの符号化を行う符号化部とを有する画像符号化装置にある。
この発明においては、ブロック単位の画像データの周波数帯域分割が行われる。周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから低域成分の係数データの周波数帯域分割が行われて、複数の周波数帯域毎の係数データが生成される。周波数帯域分割では、例えばリフティング演算とデインターリーブが行われる。リフティング演算では、ブロックの端部で画像データの拡張が行われて、この拡張された画像データを用いて係数データが生成される。また、リフティング演算によって生成された係数データは、デインターリーブによって周波数帯域毎に区分される。さらに、低域成分の係数データでは、拡張された画像データを用いて生成された係数データの位置が移動するように、空間的な位置の並べ替えが行われる。例えば、係数データの位置が反転される。また、係数データは、所定数毎にサブブロックとして区分されて、サブブロック毎に係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化が推定される。さらに、推定結果に対して、ブロックの端に位置するサブブロックが、他の位置のサブブロックよりもトランケーションされ難くなるように重み付けされて、重み付け後の推定結果に基づいて、画像の歪み量が少なく符号量が目標符号量以内となるようにトランケーションが行われて符号化される。
この発明の第2の側面は、帯域分割部で、ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する周波数帯域分割を行い、該周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから該低域成分の係数データの周波数帯域分割を行うステップと、符号化部で、前記複数の周波数帯域毎の係数データの符号化を行うステップと
を具備する画像符号化方法にある。
この発明の第3の側面は、ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する周波数帯域分割を行い、該周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから該低域成分の係数データの周波数帯域分割を行うステップと、前記複数の周波数帯域毎の係数データの符号化を行うステップとを含む処理をコンピュータで実行させるプログラムにある。
この発明の第4の側面は、ブロック単位の画像データの周波数帯域分割を行い、複数の周波数帯域毎の係数データを生成する帯域分割部と、前記複数の周波数帯域毎の係数データを符号化する符号化部と、前記係数データを所定数毎に区分したサブブロック毎に、前記係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化を推定して、推定結果に対して重み付けを行う歪特性推定部と、前記重み付けされた推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置を検出して、前記ビットプレーンのトランケーションを行うトランケーション部とを有する画像符号化装置にある。
この発明の第5の側面は、帯域分割部で、ブロック単位の画像データの周波数帯域分割を行い、複数の周波数帯域毎の係数データを生成するステップと、符号化部で、前記複数の周波数帯域毎の係数データを符号化するステップと、歪特性推定部で、前記係数データを所定数毎に区分したサブブロック毎に、前記係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化を推定して、推定結果に対して重み付けを行うステップと、トランケーション部で、前記重み付けされた推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置を検出して、前記ビットプレーンのトランケーションを行うステップとを具備する画像符号化方法にある。
この発明の第6の側面は、ブロック単位の画像データの周波数帯域分割を行い、複数の周波数帯域毎の係数データを生成するステップと、前記複数の周波数帯域毎の係数データを符号化するステップと、前記係数データを所定数毎に区分したサブブロック毎に、前記係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化を推定して、推定結果に対して重み付けを行うステップと、前記重み付けされた推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置を検出して、前記ビットプレーンのトランケーションを行うステップとを含む処理をコンピュータで実行させるプログラムにある。
この発明の第7の側面は、ブロック単位の画像データの周波数帯域分割を行うことによって得られた係数データが符号化されている符号化データを復号化する復号化部と、前記復号化によって得られた係数データを並べ替え前の順序に戻してから、複数の周波数帯域毎の係数データの周波数帯域合成を行い、ブロック単位の画像データを生成する帯域合成部とを有する画像復号化装置にある。
この発明の第8の側面は、復号化部で、ブロック単位の画像データの周波数帯域分割を行うことによって得られた係数データが符号化されている符号化データを復号化するステップと、帯域合成部で、前記復号化によって得られた係数データを並べ替え前の順序に戻してから、複数の周波数帯域毎の係数データの周波数帯域合成を行い、ブロック単位の画像データを生成するステップとを備える画像復号化方法にある。
この発明の第9の側面は、ブロック単位の画像データの周波数帯域分割を行うことによって得られた係数データが符号化されている符号化データを復号化するステップと、前記復号化によって得られた係数データを並べ替え前の順序に戻してから、複数の周波数帯域毎の係数データの周波数帯域合成を行い、ブロック単位の画像データを生成するステップとを含む処理をコンピュータで実行させるプログラムにある。
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
この発明によれば、ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する周波数帯域分割において、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えて該低域成分の係数データの周波数帯域分割が行われる。また、生成された複数の周波数帯域毎の係数データの符号化が行われる。このため、ブロックの端部で画像データを拡張して周波数帯域分割を繰り返しても、拡張された画像データを用いて生成された低域成分の係数データの位置が固定した位置とならない。したがって、拡張された画像データを用いたことによる帯域分離精度の低下の影響が繰り返し反映されてしまうことがなく、ブロック単位で画像の符号化を行ってもブロック歪みの少ない復号画像を得ることができる。
従来の画像処理システムについて説明するための図である。 従来の他の画像処理システムについて説明するための図である。 画像処理装置の構成を示す図である。 画像処理装置の動作を示すフローチャートである。 第1の実施の形態における画像符号化部の構成を示す図である。 第1の実施の形態における画像符号化部の動作を示すフローチャートである。 5×3リフティング構成を用いた場合の帯域分割部の動作を説明するための図である。 画像データの拡張を説明するための図である。 2次元の帯域分割を示す図である。 MDWT係数データの絶対値をビット深度方向に分解した図である。 ZBPに対する変換テーブルを示す図である。 ZBPのインデックスIDXzbpのエントロピー符号化方法を行う場合の動作を示すフローチャートである。 ZBPのインデックスIDXzbpのエントロピー符号化方法を行う場合の他の動作を示すフローチャートである。 TPに対する変換テーブルを示す図である。 TPのインデックスIDXtpのエントロピー符号化方法を行う場合の動作を示すフローチャートである。 TPのインデックスIDXtpのエントロピー符号化方法を行う場合の他の動作を示すフローチャートである。 SB_flagを説明するための図である。 ビットプレーンのエントロピー符号化方法を行う場合の動作を示すフローチャートである。 R−D曲線を示す図である。 トランケーション部の動作を説明するための図(その1)である。 トランケーション部の動作を説明するための図(その2)である。 トランケーション部の動作を示すフローチャートである。 フォーマットの一例を示す図である。 第1の実施の形態における画像復号化部の構成を示す図である。 第1の実施の形態における画像復号化部の動作を示すフローチャートである。 ZBPのインデックスIDXzbpの復号化動作を示すフローチャートである。 TPのインデックスIDXtpの復号化動作を示すフローチャートである。 ZBPのインデックスIDXzbpおよびTPのインデックスIDXtpを復号化した結果を示す図である。 係数データの絶対値を示すビットストリームの復号化動作を示すフローチャートである。 推定データを示す図である。 帯域合成部の動作を説明するための図である。 画像符号化部の簡略構成を示す図である。 画像復号化部の簡略構成を示す図である。 第2の実施の形態における画像復号化部の構成を示す図である。 第2の実施の形態における画像復号化部の動作を示すフローチャートである。 Haar変換の変換過程を示す図である。 ZBP直交変換結果DTtzbpとインデックスIDXtzbpとシンボルの関係を示す変換テーブルである。 コンテキストとインデックスIDXtzbpとシンボルの関係を示す変換テーブルである。 第3の実施の形態における画像復号化部の構成を示す図である。 第3の実施の形態における画像復号化部の動作を示すフローチャートである。 逆Haar変換の変換過程を示す図である。 第4の実施の形態における画像符号化部の構成を示す図である。 第4の実施の形態における画像復号化部の構成を示す図である。 コンピュータのハードウェア構成を例示した図である。
以下、発明を実施するための形態について説明する。なお、画像データが複数のコンポーネント信号で構成されている場合(例えば、画像データがRGB信号やYUV信号等である場合)、コンポーネント信号毎に符号化や復号化を行われる。しかし、説明を簡単とするため、1つのコンポーネント信号の符号化と復号化についてのみ説明を行う。説明は以下の順序で行う。
1.画像処理装置の構成と動作
2.第1の実施の形態
3.第2の実施の形態
4.第3の実施の形態
5.第4の実施の形態
6.符号化と復号化をコンピュータで行う場合
<1.画像処理装置の構成と動作>
図3は、画像処理装置10の構成を示している。画像処理装置10は、画像符号化部20と画像復号化部30を有している。画像符号化部20は、例えば撮像素子や画像処理システム部12などから出力された画像データをM×N画素のブロック単位で符号化して符号化データを出力する機能を有する。なお、符号化データは、例えばメモリやハードディスクなどのメディア14やネットワークを介して画像復号化部30へ伝送される。画像復号化部30は、符号化データの復号化を行いM×N画素のブロック単位の画像データを出力する。
図4は画像処理装置10の動作を示すフローチャートである。ステップST1で画像符号化部20は、画像データの符号化を行う。画像符号化部20は、画像データをM×N画素のブロック単位で符号化して、符号化データを生成してステップST2に進む。ステップST2で画像符号化部20は、メモリ,メディア,ネットワーク等を介して、符号化データを画像復号化部30に伝送する。ステップST3で画像復号化部30は、符号化データの復号化を行う。画像復号化部30は、伝送された符号化データの復号化を行い、M×N画素のブロック単位の画像データを得る。
このように、画像符号化部20は、M×N画素のブロック単位で画像データの符号化を行う。また、画像復号化部30は、画像符号化部20で生成された符号化データの復号化を行い、M×N画素のブロック単位の画像データを得る。このようにすれば、ブロック単位で処理が可能となり、ランダムアクセス等を容易に行うことが可能となる。さらに、不要な画像部分のブロックについては符号化や復号化を行わないようにできるので、メモリアクセス効率を保ちながら、メモリ容量とバス帯域幅の低減をはかることが可能となる。
また、画像符号化部20はブロック単位で画像データの符号化を行っても、ブロック歪みを軽減できるように画像データの符号化を行う。
<2.第1の実施の形態>
[2−1.第1の実施の形態における画像符号化部の構成]
図5は、第1の実施の形態における画像符号化部の構成を例示している。画像符号化部20-1は、DCレベルシフト部21、帯域分割部22、SB(Significant Bit)/ZBP(Zero Bit Plane)検出部23、エントロピー符号化部24、歪特性推定部25、トランケーション部26およびパッキング部27を有している。
DCレベルシフト部21は、帯域分割部22で周波数帯域分割を効率的に行うために画像データのDC成分のレベルシフトを行う。DCレベルシフト部21は、例えば入力されたM×N画素のブロック単位の画像データDVaからDC値を差し引いて、帯域分割部22へ出力する。DCレベルシフト部21は、例えばM×N画素のブロック内の画像データDVaの平均値や画像データDVaのダイナミックレンジの半分の値をDC値として用いる。なお、DC値は、画像符号化部20-1と後述する画像復号化部30-1であらかじめ同じ値を決めておくようにしてもよく、付加情報として符号化データに付加して、画像復号化部30-1に供給するようにしてもよい。
帯域分割部22は、DCレベルシフト部21から出力された画像データDVbの周波数帯域分割を行う。帯域分割部22は、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから再度周波数帯域分割を行い、例えばM×N画素のブロック内の画像データから複数の周波数帯域毎の係数データを生成する。帯域分割部22は、例えばMDWT(Modified Discrete Wavelet Transform)を用いて周波数帯域分割を行う。このMDWTでは、DWT(Discrete Wavelet Transform)に加えて、帯域分離精度の低下の影響がM×Nの画素のブロック境界に歪みとして現れやすくなってしまうことを軽減させるため、低域成分の係数データに対して空間的な位置を並べ替える。なお、MDWTについての詳細は後述する。帯域分割部22は、MDWTを行うことにより得られたMDWT係数データの絶対値CEaをSB/ZBP検出部23とエントロピー符号化部24および歪特性推定部25へ出力する。また、帯域分割部22は、MDWTを行うことにより得られたMDWT係数データの符号CEsをトランケーション部26へ出力する。
SB/ZBP検出部23は、MDWT係数データの絶対値からSB(Significant Bit)およびZBP(Zero Bit Plane)を検出する。SB/ZBP検出部23は、SB検出結果DTsbをエントロピー符号化部24および歪特性推定部25へ出力する。また、SB/ZBP検出部23は、ZBP検出結果DTzbpをエントロピー符号化部24、歪特性推定部25およびトランケーション部26へ供給する。
エントロピー符号化部24は、MDWT係数データの絶対値CEa、SB検出結果DTsbおよびZBP検出結果DTzbpを用いて、MDWT係数データの絶対値CEaのビットプレーン、ZBP、TP(Truncation Point)をエントロピー符号化する。エントロピー符号化部24は、エントロピー符号化を行うことにより得られたビットストリームBSaをトランケーション部26へ出力する。また、エントロピー符号化部24は、エントロピー符号化を行うことにより得られたビットストリーム長DTbsを歪特性推定部25およびトランケーション部26へ出力する。さらに、エントロピー符号化部24は、エントロピー符号化を行うことにより得られたモードフラグMFをパッキング部27へ出力する。
歪特性推定部25は、MDWT係数データの絶対値CEa、SB検出結果DTsb、ZBP検出結果DTzbpおよびビットストリーム長DTbsに基づいて歪特性の推定を行い、歪特性推定結果Erdをトランケーション部26へ出力する。具体的には、MDWT係数データのトランケーションを行ったときの符号量の変化と画像の歪み量の変化の関係を歪特性として推定する。
トランケーション部26は、ビットストリームBSa、ビットストリーム長DTbs、ZBP検出結果DTzbp、符号CEs、歪特性推定結果Erdを用いて、予め設定されている目標符号量以内となるように、符号化対称のビットストリームおよび符号を決定する。すなわち、トランケーション部26は、画像の歪みが少なく符号量が目標符号量以内となるように、ビットストリームおよび符号のトランケーションを行い、トランケーションが行われたビットストリーム(符号を含む)BSbをパッキング部27へ出力する。
パッキング部27は、トランケーションされたビットストリームBSbとモードフラグMFを所定のフォーマットに変換して、画像復号化部30-1で復号化可能な符号化データDpdを作成する。パッキング部27は、作成した符号化データDpdを画像符号化部20-1から出力する。
[2−2.第1の実施の形態における画像符号化部の動作]
図6は、第1の実施の形態における画像符号化部の動作を示すフローチャートである。ステップST11で画像符号化部20-1は、DCレベルシフトを行う。画像符号化部20-1は、入力された画像データDVaに対してDCレベルシフト部21でDCレベルシフトを行ってステップST12に進む。
ステップST12で画像符号化部20-1は、MDWTを行う。画像符号化部20-1は、DCレベルシフトが行われた画像データDVbに対して帯域分割部22でMDWTを行い、MDWT係数データの絶対値CEaと符号CEsを得てステップST13に進む。
ステップST13で画像符号化部20-1は、SBおよびZBPの検出を行う。画像符号化部20-1は、MDWT係数データの絶対値CEaからSB/ZBP検出部23でSBおよびZBPを検出してステップST14に進む。
ステップST14で画像符号化部20-1は、エントロピー符号化を行う。画像符号化部20-1は、MDWT係数データの絶対値CEaのビットプレーンとSB検出結果DTsbとZBP検出結果DTzbpについてエントロピー符号化部24でエントロピー符号化を行い、ビットストリームBSa、ビットストリーム長DTbsおよびモードフラグMFを得てステップST15に進む。
ステップST15で画像符号化部20-1は、歪特性の推定を行う。画像符号化部20-1は、MDWT係数データの絶対値CEa、SB検出結果DTsb、ZBP検出結果DTzbpおよびビットストリーム長DTbsに基づき歪特性推定部25で歪特性を推定してステップST16に進む。
ステップST16で画像符号化部20-1は、トランケーションを行う。画像符号化部20-1は、ビットストリームBSa、ビットストリーム長DTbs、ZBP検出結果DTzbp、符号CEs、歪特性推定結果Erdに基づき、必要に応じてトランケーション部26でトランケーションを行う。画像符号化部20-1は、ビットストリーム長が目標符号長に収まらないとき、ビットストリームおよび符号のトランケーションを行い、ビットストリームBSbの符号長を目標符号長以下としてステップST17に進む。
ステップST17で画像符号化部20-1は、所定のフォーマットへの変換を行う。画像符号化部20-1は、モードフラグMFを含む付加情報と、トランケーションされたビットストリームBSbをパッキング部27で所定のフォーマットに変換して、符号化データDpdを生成して符号化処理を終了する。
[2−3.画像符号化部の各部の動作]
次に、画像符号化部の主要な部分についての動作について説明する。
[2−3−1.帯域分割部の動作]
帯域分割部22は、例えばDWT(Discrete Wavelet Transform)に加えて、低域成分の係数データに対して空間的な位置の並び替えを行い、帯域分離精度の低下の影響がM×Nの画素のブロック境界に歪みとして現れやすくなってしまうことを軽減させる。帯域分割部22は、DWTのように、どのような帯域分割フィルタを用いてもかまわない。
図7は、例えばJPEG20-100規格でも採用されている5×3リフティング構成を用いた場合の帯域分割部22の動作を示している。図7の(A)は、DCレベルシフト部21から出力されたブロック単位の画像データDVbを示しており、1ブロック単位が例えば8画素とされている場合を示している。
帯域分割部22は、ブロック単位の画像データDVbに対して、同一画素分の出力を得るため、画像の境界が対称性を持つように、ブロックの端部を基準として信号を折り返すことで画像データの拡張を行う。例えば画像データDVbが、図8のように画素位置P(0)〜P(N-1)であるとき、帯域分割部22は、画像の境界が対称性を持つように画像データの拡張を行う。すなわち、画素位置P(1)の信号を画素位置P(-1)の信号、画素位置P(2)の信号を画素位置P(-2)の信号,画素位置P(N-2)の信号を画素位置P(N)の信号とする。なお、画像データの拡張は、DWTを行ったときに同一画素分の出力が得られる分だけ行えばよい。
帯域分割部22は、画像データDVbの拡張を行い、図7の(B)に示す拡張画像データを生成する。さらに、帯域分割部22は、図7の(C)に示すように、拡張画像データを用いて演算を行い高域成分の係数データCE-hを生成する。なお、高域成分の係数データCE-hを右上がりの斜線部で示す。
次に、帯域分割部22は、図7の(D)に示すように、拡張画像データと高域成分の係数データCE-hを用いて演算を行い低域成分の係数データCE-lを生成する。なお、低域成分の係数データCE-lを左上がりの斜線部で示す。
さらに、帯域分割部22は、高域成分の係数データCE-hと低域成分の係数データCE-lのデインターリーブを行うことで、図7の(E)に示すように低域成分の係数データCE-lからなるサブバンドと高域成分の係数データCE-hからなるサブバンドを生成する。サブバンドとは、周波数帯域毎に分類された係数データの集合である。なお、拡張された2つの信号を用いて算出された高域成分の係数データCE-h(-1)は、高域成分のサブバンドから除かれる。
このように、リフティング演算やデインターリーブを行うと、拡張した画像データが用いられている両端の帯域分離精度が低くなる。特に、低域成分の係数データの場合は、拡張された2画素分の画像データを用いて算出された高域成分の係数データCE-h(-1)を用いて、低域成分の係数データCE-l(0)が算出されていることから、帯域分離精度の低下の影響が左端に出やすい。
また、低域成分のサブバンドを原画像と見なして、繰り返しDWTをかけて帯域分割すると低域成分の左側に帯域分離精度低下の影響が繰り返し反映されてしまう。このため、画像データをM×N画素のブロック単位で符号化することでシステムの帯域圧縮やメモリの削減を行うと、左端の帯域分離精度の低下の影響がM×N画素のブロック境界に歪みとして現れやすくなる。
そこで、帯域分割部22は、ブロックサイズが小さくても視覚的に顕著な劣化を生じることがないように、帯域分離精度の低下の影響がM×N画素のブロック境界に歪みとして現れやすくなってしまうことを軽減させる。具体的には、デインターリーブを行うことにより得られた低域成分のサブバンドに対して、拡張された2つの信号を用いて算出された低域成分の係数データが、次の周波数帯域分割で拡張された2つの信号と共に用いられることがないように空間的な位置の並べ替えを行う。例えば、帯域分割部22は、図7の(F)に示すように、低域成分のサブバンドにおける係数データの順序を反転させる。このようにすれば、拡張された2つの信号を用いて算出された低域成分の係数データCE-l(0)は、次の帯域分割における低域成分の係数データの算出で、拡張された2つの信号と共に用いられることがない。したがって、帯域分割部22は、帯域分割を繰り返したとき帯域分割精度低下の影響を分散させることが可能となり、帯域分離精度の低下の影響がM×N画素のブロック境界に歪みとして現れやすくなってしまうことを防止できる。
低域成分のサブバンドにおける係数データの順序は、図7の(F)に示す順序に限らず、画像復号化部30-1で復元可能であれば任意の順序としてもよい。さらに、順序を画像符号化部20-1と画像復号化部30-1であらかじめ取り決めておく、または並べ替え順序を識別可能とする情報を符号化データに付加すれば、画像復号化部30-1は復元を正しく行うことができる。
また、帯域分割部22は、従来のDWTと同様に1次元のブロックだけでなく、図9の(A)や(B)に示すように2次元のM×N画素ブロックに対して様々な帯域分割をすることが可能である。また、使用するフィルタを水平方向と垂直方向で異なるものを用いてもよい。さらに、帯域分割のフィルタには、DWT以外のものを用いてもよい。なお、図9の(A)において、周波数の高さは「1HH>1HL=1LH>2HH>2HL=2LH>3HH>3HL=3LH>3LL」である。また、図9の(B)において、周波数の高さは「1HH>1HL=1LH>2HL>3HL>3LL」である。
[2−3−2.SB/ZBP検出部の動作]
SB/ZBP検出部23の動作について説明する。図10は、帯域分割部22から出力されるMDWT係数データの絶対値をビット深度方向に展開したものである。なお、各ビット深度のプレーンをビットプレーンという。図10では、例えばサブバンド3Lの係数データが「74,9」、サブバンド3Hの係数データが「21,19」、サブバンド2Hの係数データが「10,54,59,21」、サブバンド1Hの係数データが「13,9,25,20-1,5,1,0,0」の場合を示している。MDWT係数データが「74(10進数)」であった場合、係数データを9ビットのビットストリームで表すとビット深度順に「001001010」となる。なお、周波数の高さは「1H>2H>3H>3L」である。
SBは、各係数データの絶対値をMSB(Most Significant Bit:最上位ビット)側からLSB(Least Significant Bit:最下位ビット)側に向かって見たときに、最初「1」となるビットのことである。図10では、丸で囲んであるビットがSBに相当する。ZBPは、MDWT係数データの絶対値をJ個の係数データのサブブロックに分けた場合に、サブブロック内で最もMSB側にあるSBの1つ上のビットプレーンを示したものである。図10では、サブブロックサイズをJ=2としたとき、斜線で示したビットプレーンが、ZBPである。
ビットプレーンとSBとZBPおよび後述するTPには、ビットの深さ方向にインデックスを設定する。なお、図10では、MSBのビットプレーンのインデックスIDXbpと、MSBのビットプレーン位置のSBのインデックスIDXsbとTPのインデックスIDXtpを「0」としている。また、LSBのビットプレーンのインデックスIDXbpと、SBのビットプレーン位置のSBのインデックスIDXsbとTPのインデックスIDXtpを「8」としている。また、ZBPはSBの1つ上のビットプレーンを示すことから、ZBPのインデックスIDXzbpは、図10に示すように、SBのインデックスIDXsbに「1」を加えた値とする。
SB/ZBP検出部23は、SBのインデックスIDXsbとZBPのインデックスIDXzbpを求める動作を行う。すなわち、SB/ZBP検出部23は、図10に示すように、MDWT係数データ毎にSBのインデックスIDXsbを求めてSB検出結果DTsbとする。また、J個の係数データからなるサブブロック毎に、ZBPのインデックスIDXzbpを求めてZBP検出結果DTzbpとする。なお、図10では、1次元のMDWT係数データの絶対値を示しているが、ビット精度や帯域分割数が異なる場合であってもよく、2次元であってもよい。すなわち、ZBPのサブブロックサイズはJ×Kとなってもよい。また、図10においてビットプレーンのサブブロックサイズは、ZBPと同じサイズとなっているが、異なるサイズ、例えばE×Fとしてもよい。
[2−3−3.エントロピー符号化部の動作]
エントロピー符号化部24の動作について説明する。エントロピー符号化部24では、ZBP検出結果DTzbpであるインデックスIDXzbp、TPのインデックスIDXtp、ビットプレーンの3つをそれぞれエントロピー符号化する。
まず、ZBPのインデックスIDXzbpのエントロピー符号化方法について説明する。ZBPは、サブブロック毎に1つ存在する。ZBPは、統計的に低域成分に所属するものほど小さなインデックスを持つ傾向があるため、ZBPの所属する帯域(サブバンド)をコンテキストとして、これに応じてインデックスIDXzbpを符号化データであるシンボルを変える。具体的には、図11に示すような変換テーブルを用いて、該当するZBPのインデックスIDXzbpとZBPの所属するサブバンドの組み合わせに該当するシンボルを符号化結果として選択する。
図11に示す変換テーブルは、例えば統計データを基に作成したハフマンテーブルなどを用いる。ここで、ZBPが統計的に低域成分に所属するものほど小さなインデックスを持つ傾向がある場合、例えばサブバンド3Lでは、インデックスIDXzbpの値が小さいシンボル00を短いビットストリームとする。また、インデックスIDXzbpの値が大きいシンボル09等は、シンボル00に比べて長いビットストリームとする。さらに、例えばサブバンド1Hでは、インデックスIDXzbpの値が大きいシンボル09を短いビットストリーム、インデックスIDXzbpの値が小さいときのシンボル00等は、シンボル09に比べて長いビットストリームとする。このように、インデックスIDXzbpの統計データを基にシンボルのビット長を設定することで、ZBPの符号化効率を高めることができる。
また、変換テーブルは、1つの変換テーブルを用いる場合に限らず、複数の変換テーブルから符号化に用いる変換デーブルを選択できるようにすることも可能である。例えば、比較的統計データに沿ったZBPのインデックスIDXzbpとなるもの(符号化が簡単なもの)に適用するZBP_Easy_tableと、統計データから外れてしまうもの(符号化が困難なもの)に適用するZBP_Hard_tableの2種類を用いる。
図12は、2種類の変換テーブルを用いてZBPのインデックスIDXzbpのエントロピー符号化方法を行う場合の動作を示すフローチャートである。
ステップST21でエントロピー符号化部24は、ZBP_Hard_tableを用いて符号化を行う。エントロピー符号化部24は、ZBP_Hard_tableからZBPの所属する帯域とZBPのインデックスIDXzbpに対応するシンボルを選択することで、インデックスIDXzbpの符号化を行う。さらに、エントロピー符号化部24は、サブブロックのインデックスIDXzbpの符号化結果のビット長を加算して、M×N画素のブロック単位でのビットストリーム長LBShを求めてステップST22に進む。
ステップST22でエントロピー符号化部24は、ZBP_Easy_tableを用いて符号化を行う。エントロピー符号化部24は、ZBP_Easy_tableからZBPの所属する帯域とZBPのインデックスIDXzbpに対応するシンボルを選択することで、インデックスIDXzbpの符号化を行う。さらに、エントロピー符号化部24は、サブブロックのインデックスIDXzbpの符号化結果のビット長を加算して、M×N画素のブロック単位でのビットストリーム長LBSeを求めてステップST23に進む。
ステップST23でエントロピー符号化部24は、ビットストリーム長LBShがビットストリーム長LBSeより短いか判別する。エントロピー符号化部24は、ビットストリーム長LBShがビットストリーム長LBSeより短いときステップST24に進み、短くないときステップST25に進む。
ステップST24でエントロピー符号化部24は、ZBP_Hard_tableを用いた符号化結果を出力する。また、ステップST25でエントロピー符号化部24は、ZBP_Easy_tableを用いた符号化結果を出力する。
このように、複数の変換テーブルを用いる場合、どの変換テーブルを用いるかの決定は、すべての変換テーブルで符号化を行い、ビットストリーム長の最も小さかった変換テーブルを採用すればよい。
図13は、2種類の変換テーブルを用いてZBPのインデックスIDXzbpのエントロピー符号化方法を行う場合の他の動作を示すフローチャートである。
ステップST26でエントロピー符号化部24は、ZBP平均値算出を行う。エントロピー符号化部24は、M×N画素のブロック単位におけるZBPのインデックスIDXzbpの平均値WZavgを算出してステップST27に進む。
ステップST27でエントロピー符号化部24は、平均値WZavgが閾値WZthよりも小さいか判別する。エントロピー符号化部24は、ZBPのインデックスIDXzbpの平均値WZavgが閾値WZthよりも小さいと判別したときステップST28に進み、小さくないと判別したときステップST29に進む。
ステップST28でエントロピー符号化部24は、ZBP_Hard_tableを用いた符号化結果を出力する。エントロピー符号化部24は、ZBP_Hard_tableからZBPの所属する帯域とZBPのインデックスIDXzbpに対応するシンボルを選択して、選択したシンボルを符号化結果として出力する。
ステップST29でエントロピー符号化部24は、ZBP_Easy_tableを用いた符号化結果を出力する。エントロピー符号化部24は、ZBP_Easy_tableからZBPの所属する帯域とZBPのインデックスIDXzbpに対応するシンボルを選択して、選択したシンボルを符号化結果として出力する。
このように、複数の変換テーブルを用いる場合、どの変換テーブルを用いるかの決定は、ZBPのインデックスIDXzbpの平均値WZavgに基づいて判別するようにしてもよい。
また、複数の変換テーブルを用いる場合、どの変換テーブルを用いて符号化が行われているかを画像復号化部30-1で判別可能とするため、モードフラグを設定して符号化に用いた変換テーブルを判別可能とする。
次にTPのインデックスIDXtpのエントロピー符号化方法について説明する。TPもZBPと同様に、サブブロック毎に例えば図14に示すようなハフマンテーブルを用いてインデックスIDXtpを符号化し、ビットストリームを生成する。TPは、トランケーション部26で決定するため、エントロピー符号化する時点では、まだTPのインデックスIDXtpは決定していない。したがって、TPのインデックスIDXtpとなる可能性のあるものをすべてエントロピー符号化しておく。具体的には、図10におけるZBP以下のビットプレーンのどの位置にTPが設定されても良いように、ZBPより1つ下のビットプレーンのすべての位置のTPのインデックスIDXtpをエントロピー符号化する。また、変換テーブルは、ZBPの場合と同様に複数用いてもよい。例えば、比較的統計データに沿ったTPのインデックスとなるもの(符号化が簡単なもの)に適用するTP_Easy_tableと、統計データから外れてしまうもの(符号化が困難なもの)に適用するTP_Hard_tableの2種類を用いる。
図15は、2種類の変換テーブルを用いてTPのインデックスIDXtpのエントロピー符号化方法を行う場合の動作を示すフローチャートである。ステップST31でエントロピー符号化部24は、ZBP_Hard_tableが選択されたか判別する。エントロピー符号化部24は、ZBP_Hard_tableの選択が行われているときステップST32に進み、ZBP_Hard_tableの選択が行われていないときステップST33に進む。
ステップST32でエントロピー符号化部24は、TP_Hard_tableを用いた符号化結果を出力する。エントロピー符号化部24は、TP_Hard_tableからTPの所属する帯域とTPのインデックスIDXtpに対応するシンボルを選択することで、インデックスIDXtpの符号化を行い、選択したシンボルを符号化結果として出力する。
ステップST33でエントロピー符号化部24は、TP_Easy_tableを用いた符号化結果を出力する。エントロピー符号化部24は、TP_Easy_tableからTPの所属する帯域とTPのインデックスIDXtpに対応するシンボルを選択することで、インデックスIDXtpの符号化を行い、選択したシンボルを符号化結果として出力する。
このように、複数の変換テーブルを用いる場合、どの変換テーブルを用いるかの決定は、ZBPが採用した変換テーブルと似た傾向にある変換テーブルを採用すればよい。
図16は、2種類の変換テーブルを用いてTPのインデックスIDXtpのエントロピー符号化方法を行う場合の他の動作を示すフローチャートである。
ステップST36でエントロピー符号化部24は、平均値WZavgが閾値WZthよりも小さいか判別する。エントロピー符号化部24は、ZBPのインデックスIDXzbpの平均値WZavgが閾値WZthよりも小さいと判別したときステップST37に進み、小さくないと判別したときステップST38に進む。
ステップST37でエントロピー符号化部24は、TP_Hard_tableを用いた符号化結果を出力する。エントロピー符号化部24は、TP_Hard_tableからTPの所属する帯域とTPのインデックスIDXtpに対応するシンボルを選択することで、インデックスIDXtpの符号化を行い、選択したシンボルを符号化結果として出力する。
ステップST38でエントロピー符号化部24は、TP_Easy_tableを用いた符号化結果を出力する。エントロピー符号化部24は、TP_Easy_tableからTPの所属する帯域とTPのインデックスIDXtpに対応するシンボルを選択することで、インデックスIDXtpの符号化を行い、選択したシンボルを符号化結果として出力する。
このように、複数の変換テーブルを用いる場合、どの変換テーブルを用いるかの決定は、ZBPのインデックスIDXzbpの平均値WZavgを利用して判別するようにしてもよい。
図15,16に示すように、ZBPのインデックスIDXzbp等を利用する理由は、SBのインデックスIDXsbとZBPのインデックスIDXzbpを求めたとき、この時点でTPが決定していないため、TPのインデックス自身をコンテキストとして用いることができないためである。また、ZBPのインデックスIDXzbpとTPのインデックスIDXtpの相関があることを利用して効率的な符号化を行うためである。
複数の変換テーブルを用いる場合、どの変換テーブルを用いて符号化が行われているかを画像復号化部30-1で判別可能とするため、モードフラグを設定して符号化に用いた変換テーブルを判別可能とする。
次に、ビットプレーンの符号化方法について説明する。ビットプレーンは、図10に示したように、MDWT係数データの絶対値をビット深度方向に分解したものである。さらに、ビットプレーンはサブブロックに分割されている。例えば図10では、一番左のサブバンド3Lのサブブロック(インデックスIDXbkが「0」であるサブブロック)におけるインデックスIDXbpが「2」であるビットプレーンは「1,0」となる。この「1,0」の値を以下に示す方法で符号化する。
ビットプレーンのエントロピー符号化も同様に1つまたは複数の例えばハフマンテーブルを参照してビットストリームを生成する。ビットプレーンのエントロピー符号化は、ZBPやTPと異なり、ビットプレーンの係数ビット(例えば「1,0」の値)を符号化する。変換テーブルのコンテキストとしては、ビットプレーンのインデックスIDXbp、ビットプレーンの所属するサブバンド、後述するSB_flagなどを用いる。
ビットプレーンのインデックスIDXbpをコンテキストに用いる場合、ビットプレーンにおける「1」と「0」の分布に関する統計を利用できるようになる。すなわち、ビットプレーンのビット深度が浅い(インデックスが小さい)場合には、ビットプレーンの値が「0」になりやすい。また、ビットプレーンのビット深度が深い(インデックスが大きい)場合には、ビットプレーンの値が「1」と「0」が一様分布になりやすい。このような分布に関する統計を利用して、符号化効率を高めることができる。
ビットプレーンの所属するサブバンドをコンテキストに用いる場合、低域ほど大きなMDWT係数データの絶対値が出現する傾向があることから、この傾向とビットプレーンの「0」「1」の傾向の相関を利用できる。
SB_flagは、SBの状態を利用したコンテキストである。具体的には、符号化対象のビットプレーンを符号化する場合に、符号化対象のビットプレーンより上位ビットにSBが存在するかを示すフラグである。SB_flagは、SB検出結果DTsbであるインデックスIDXsbに基づいて生成する。例えば、図17において、丸で囲んであるビットは、インデックスIDXsbによって示されたSBである。ここで、インデックスIDXbpが「4」のビットプレーンを符号化する場合は、SB_flagは、「1,0」となる。SB_flagが「0」を含む場合は、ビットプレーンの値も「0」になりやすい。したがって、SB_flagを例えばハフマンテーブルのコンテキストとして利用することで、符号化効率を向上させることができる。また、ビットプレーンの符号化においても複数の変換テーブルを用意してもよい。
図18は、2種類の変換テーブルを用いてビットプレーンのエントロピー符号化方法を行う場合の動作を示すフローチャートである。
ステップST41でエントロピー符号化部24は、BitPlane_Hard_tableを用いて符号化を行う。エントロピー符号化部24は、BitPlane_Hard_tableを用いてビットプレーンの符号化を行い、ビットストリーム長LBSPhを求めてステップST42に進む。
ステップST42でエントロピー符号化部24は、BitPlane_Easy_tableを用いて符号化を行う。エントロピー符号化部24は、BitPlane_Easy_tableを用いてビットプレーンの符号化を行い、ビットストリーム長LBSPeを求めてステップST43に進む。
ステップST43でエントロピー符号化部24は、ビットストリーム長LBSPhがビットストリーム長LBSPeより短いか判別する。エントロピー符号化部24は、ビットストリーム長LBSPhがビットストリーム長LBSPeより短いときステップST44に進み、短くないときステップST45に進む。
ステップST44でエントロピー符号化部24は、BitPlane_Hard_tableを用いてビットプレーンの符号化を行うことにより得られた符号化結果を出力する。また、ステップST45でエントロピー符号化部24は、BitPlane_Easy_tableを用いてビットプレーンの符号化を行うことにより得られた符号化結果を出力する。
このように、複数の変換テーブルを用いる場合、どの変換テーブルを用いるかの決定は、すべての変換テーブルで符号化を行い、ビットストリーム長の最も小さかった変換テーブルを採用すればよい。
また、複数の変換テーブルを用いる場合、どの変換テーブルを用いて符号化が行われているかを画像復号化部30-1で判別可能とするため、モードフラグを設定して符号化に用いた変換テーブルを判別可能とする。
さらに、エントロピー符号化部24は、ZBP、TP、ビットプレーンのそれぞれのエントロピー符号化において、ビットストリームを生成する際に、それぞれのビットストリーム長を記録しておく。これらは、後段の歪特性推定部25で必要となる。特に、TPとビットプレーンのビットストリーム長は、トランケーションを行うために、各ビットプレーンおよび各サブブロックで記録しておく必要がある。
[2−3−4.歪特性推定部の動作]
歪特性推定部25の動作について説明する。トランケーション部26は、エントロピー符号化の結果得られたビットストリームBSaと符号CEsが目標符号長内に収まるようにトランケーションを行う。また、トランケーション部26は、目標符号長内で最適な画質を得るために、どのビットプレーンのビットストリームを採用し、どのビットプレーンのビットストリームをトランケーションするか判断する。このため、歪特性推定部25は、トランケーション部26でいずれのビットプレーンをトランケーションするか判断できるようにするために、符号量と歪みの関係を示す歪特性を推定する。
歪特性推定部25は、符号量と歪みの関係を示す歪特性を推定するアルゴリズムとして、例えば非特許文献1「David Taubman, Michael Marcellin 著 JPEG2000: Image Compression Fundamentals, Standards and Practice(The Springer International Series in Engineering and Computer Science)」の8.3.5節「DISTORTION COMPUTATION」に開示されている方法を用いる。
歪特性推定部25は、サブブロックサイズのビットプレーン毎の符号長(ΔRi(p))とそのサブブロックのビットプレーンをトランケーションしたときに生じる符号化歪み(ΔDi(p))から、符号長に対する符号化歪みの変化を示す傾き(ΔDi(p)/ΔRi(p))を算出する。式(1)は符号化歪み(ΔDi (p))の算出式を示している。
Figure 2011217347


なお、式(1)において、「p」はビットプレーンのインデックスIDXbp、「i」は、図10における横方向に割り振られたサブブロックのインデックスIDXbk、「j」はサブブロック内の各MDWT係数データの集まりをベクトルで示している。また、「Gb」はb番目のサブバンド(周波数)の重み、Δは量子化ステップ幅を意味する。この式(1)におけるTs等は、式(2)〜式(5)で与えられる。

Figure 2011217347


なお、式(2),(3)において、y[j]はMDWT係数データである。
さらに、歪特性推定部25は、ブロック単位で符号化を行う際に、ブロックの端のサブブロックのビットプレーンの重みを高くしてブロック歪みの軽減をはかる。具体的には、式(6)の演算を行い、符号化歪み(ΔDi (p))に対して、ブロックの境界に属するサブブロックであるか否かの重みを追加する。
ECΔDi (p)=Wi×ΔDi (p) ・・・(6)
なお、式(6)において、「Wi」は、i番目のサブブロック(インデックスIDXbkが「i」であるサブブロック)がブロックの境界に属するか否かによって決まる重みであり、ブロックの境界であればECΔDi (p)の値を大きくする。すなわち、ブロックの境界に属するサブブロックは、このサブブロックをトランケーションしたときの歪みが、重み付け前よりも大きく示されるようにして、他の位置のサブブロックよりもトランケーションされ難くなるようにする。
このように、歪特性推定部25は、ECΔDi (p)を算出して、傾き(ECΔDi (p)/ΔRi(p))を歪特性推定結果Erdとしてトランケーション部26に出力する。
なお、歪特性推定部25は、各サブブロックおよび各ビットプレーンに対してECΔDi (p)を算出してもよく、傾向のある部分についてあらかじめ算出してテーブル化しておき、必要な部分だけECΔDi (p)の算出を行うようにしてもよい。また、算出したECΔDi (p)に基づき、例えば図19に示すR(レート)−D(歪み)曲線をサブブロック毎に求めて記憶させておき、このR−D曲線からサブブロックのビットプレーンを削除したときの符号化歪みの変化を推定できるようにしてもよい。なお、図19において、実線はブロックの境界に属するサブブロックに対する曲線、破線はブロックの境界に属していないサブブロックに対する曲線を例示している。
[2−3−5.トランケーション部の動作]
トランケーション部26は、歪特性推定部25から出力された歪特性推定結果Erdに基づいて、目標符号長内で最適な画質を得るためのビットプレーンの取捨選択を行う。図20〜図21は、トランケーション部26の動作を説明するための図である。
トランケーション部26は、TPをZBPの位置に初期化する。図20の(A)は、ZBPとTPが重なった状態となっている。なお、右上がりの斜線部はZBP、左上がりの斜線部はTPを示している。
図20の(A)の状態で、トランケーション部26は、各TPより1つ下のビットプレーンの傾き(ECΔDi (p)/ΔRi(p))の値を比較する。そして、トランケーション部26は、最も(ECΔDi (p)/ΔRi(p))の値が大きかったビットプレーンへTPを移動させる。例えば、サブブロック「0」における(ECΔDi (p)/ΔRi(p)))の値が最も大きかったとき、図20の(B)に示すように、トランケーション部26は、サブブロック「0」において、TPをビットプレーン「1」からビットプレーン「2」に移動させる。すなわち、トランケーション部26は、トランケーションを行う際に最も符号化歪みが大きくなってしまうと判断されたビットプレーンは、トランケーションしないように処理する。
同様に、トランケーション部26は、TPの位置を更新したのちに再度各TPの1つ下のビットプレーンにおける(ECΔDi (p)/ΔRi(p))の値を比較し、最も(ECΔDi (p)/ΔRi(p))の値が大きかったビットプレーンへTPを移動する。例えば、サブブロック「2」における(ECΔDi (p)/ΔRi(p))の値が最も大きかったとき、図20の(C)に示すように、トランケーション部26は、サブブロック「2」において、TPをビットプレーン「2」からビットプレーン「3」に移動させる。
トランケーション部26は、このようにTPの1つ下のビットプレーンにおける(ECΔDi (p)/ΔRi(p))の値を比較して、比較結果に基づきTPを移動させる処理を、ビットストリームの総符号長が目標符号長に到達するか、すべての比較が完了するまで繰り返す。なお、図21の(B)は、ビットストリームの総符号長が目標符号長に到達したときの状態を例示している。
ビットストリームの総符号長は、すべてのZBPのインデックスIDXzbpと、ZBPの1つ下からTPまでのビットプレーンと、現在の位置におけるすべてのTPのインデックスIDXtpと、MDWT係数データの符号の各符号化結果のビット長の総計である。ここで、MDWT係数データの符号の符号化は、MDWT係数データを現在のTPの位置まで符号化して、それより下をトランケーションしたときに係数データが有意な(0でない)係数データに対応する符号のみを符号化する。符号化方法は、例えば、符号が正の場合は「0」、負の場合は「1」を付加する、または、エントロピー符号化するなどの方法が挙げられる。
図22は、トランケーション部26の動作を示すフローチャートである。ステップST51でトランケーション部26は、TPの初期化を行う。トランケーション部26は、TPをZBPの位置としてステップST52に進む。
ステップST52でトランケーション部26はスキャン終了であるか判別する。トランケーション部26は、すべてのビットプレーンと符号のスキャンが終了したとき処理を終了し、スキャンが終了していないときステップST53に進む。
ステップST53でトランケーション部26は、TPの1つ下で最も値の大きいビットプレーンを特定する。トランケーション部26は、TPの1つ下のビットプレーンにおける(ECΔDi (p)/ΔRi(p))の値を比較して、最も値が大きいビットプレーンを特定してステップST54に進む。
ステップST54でトランケーション部26は、総符号長が目標符号長に到達していないか判別する。トランケーション部26は、ステップST53で特定したビットプレーンにTPを進めた場合に、ビットストリームの総符号長が目標符号長以下とならないときステップST55に進み、目標符号長以下となるとき処理を終了する。
ステップST55でトランケーション部26は、特定したビットプレーンのTPを進める処理を行う。トランケーション部26は、ステップST53で特定したビットプレーンにTPを進めてステップST52に戻る。
トランケーション部26は、このような処理を行うことで、ビットストリームの総符号長を目標符号長以下とする。なお、トランケーションにおいてすべてのビットプレーンを符号化しきれた場合は、ロスレス符号化となる。さらに、目標符号長に対して総符号長が短い場合は、同一アルゴリズムでロスレスにすることができ、特許文献1のDPCMよりも画質が向上する。また、ロスレスにならない場合でも、ほぼ目標符号長となるまでトランケーションを繰り返すため、符号化データ中の無効なビット数を低減することができる。
[2−3−6.パッキング部の動作]
パッキング部27は、モードフラグMF、トランケーション後のビットストリーム(ZBP、TP、ビットプレーン、符号)BSbを所定のフォーマットに変換し、画像復号化部30-1で復号化できる符号化データDpdを生成する。モードフラグMFは、必要に応じてエントロピー符号化してもよく、ビットストリームをそのまま符号化してもよい。また、必要に応じて、コメントやDC値、復号化・画質改善・機能のための付加情報とまとめて符号化してもよい。符号化データのフォーマットは、画像復号化部30-1で復号化できるフォーマットであれば何でもよい。ただし、以下の制約がある。
・各ビットストリームをデコードする前に、対応するモードフラグがデコードできるようにする。
・ビットプレーンのデコード前にZBPとTPがデコードできるようにする。
・符号をデコードする前にビットプレーンがデコードされているようにする。
図23は、フォーマットの一例を示している。例えば、付加情報のビットストリームを先頭として、次に、ZBPを示すインデックスIDXzbpの符号化結果のビットストリームを設ける。その後、TPを示すインデックスIDXtpの符号化結果のビットストリーム、MDWT係数データの絶対値の符号化結果のビットストリーム、符号の符号化結果のビットストリームを順番に設けて、画像復号化部30-1等に出力する。また、パッキング部27は、複数のコンポーネント信号の符号化データをまとめて1つの符号化データにする機能を有するようにしてもよい。
[2−4.第1の実施の形態における画像復号化部の構成]
第1の実施の形態における画像復号化部の構成を図24に示す。画像復号化部30-1は、デパッキング部31、エントロピー復号化部32、ラウンディングビット付加部33 帯域合成部34、IDCレベルシフト部35等を有している。
デパッキング部31は、画像符号化部20-1で生成された所定のフォーマットの符号化データDpdを入力して解析を行い、エントロピー復号化部32でビットストリームの復号化に必要な付加情報を取得する。デパッキング部31は、例えば、図23に示すフォーマットの符号化データからビットストリームとビットストリームを復号化するために必要な情報(モードフラグを含む)を切り離す。また、デパッキング部31は、複数のコンポーネント信号の符号化データが1つの符号化データにまとめられている場合、それらの分離等を行い、復号化可能なビットストリームBSbをエントロピー復号化部32に出力する。
エントロピー復号化部32は、デパッキング部31から出力されたビットストリームBSbのエントロピー復号化を行い、ZBPとTPのインデックスIDXzbp,IDXtpを得てそれらを用いてMDWT係数データの絶対値の復号化を行う。エントロピー復号化部32は、復号化されたMDWT係数データの絶対値CEbとTPのインデックスIDXtpをラウンディングビット付加部33に出力する。また、エントロピー復号化部32は、符号CEsを帯域合成部34に出力する。
ラウンディングビット付加部33は、MDWT係数データの絶対値CEbとTPのインデックスIDXtpに基づき、画像符号化部20-1でトランケーションされたビットプレーンのビットストリームを推定してMDWT係数データの絶対値の復元を行う。ラウンディングビット付加部33は、復元されたMDWT係数データの絶対値CEcを帯域合成部34へ出力する。
帯域合成部34は、復元されたMDWT係数データの絶対値CEcと符号CEsを用いて、逆変換(Inverse Modified Discrete Transform)を行う。なお、逆変換は、画像符号化部20-1の帯域分割部22で得られた係数データを変換前の画像データに戻す処理である。帯域合成部34は、逆変換を行うことにより得られた復号化DCレベルシフトデータDVcをIDCレベルシフト部35へ出力する。
IDCレベルシフト部35は、復号化DCレベルシフトデータDVcに対してDC値を足し合わせて、画像復号化部30-1の外部へブロック単位の画像データDVdとして出力する。なお、DC値は、画像符号化部20-1におけるDCレベルシフト部21で用いたDC値と等しい値である。
なお、トランケーション部においてトランケーションが行われておらずロスレス符号化が行われたとき、復号化DCレベルシフトデータDVcは画像データDVbと等しく、画像データDVdは画像データDVaと等しくなる。
[2−5.第1の実施の形態における画像復号化部の動作]
第1の実施の形態における画像復号化部の動作について図25のフローチャートを用いて説明する。ステップST61で画像復号化部30-1は、復号化可能なビットストリームの取得を行う。画像復号化部30-1は、所定のフォーマットの符号化データについて解析をデパッキング部31で行い、復号化可能なビットストリームを符号化データから取得してステップST62に進む。
ステップST62で画像復号化部30-1は、ビットストリームの復号化を行う。画像復号化部30-1のエントロピー復号化部32は、ZBPとTPを示すインデックスIDXzbp,IDXtpを復号化したのち、それらを用いてMDWT係数データの絶対値を復号化する。また、エントロピー復号化部32は、符号の復号化を行いステップST63に進む。
ステップST63で画像復号化部30-1は、ラウンディングビットの付加を行う。画像復号化部30-1は、ラウンディングビット付加部33において、画像符号化部20-1でトランケーションされたビットプレーンのビットストリームを推定してラウンディングビットとする。さらに、ラウンディングビット付加部33は、推定したラウンディングビットを復号化されたMDWT係数データの絶対値に加えてMDWT係数データの絶対値の復元を行いステップST64に進む。
ステップST64で画像復号化部30-1は、IMDWT(Inverse Modified Discrete Wavelet Transform)を行う。画像復号化部30-1の帯域合成部34は、復元されたMDWT係数データの絶対値と復号化された符号を用いてIMDWTを行い、復号化DCレベルシフト信号を得てステップST65に進む。
ステップST65で画像復号化部30-1は、IDCレベルシフトを行う。画像復号化部30-1は、IDCレベルシフト部35で、復号化DCレベルシフト信号に対してDC値を足し合わせて、復号化された画像データを得て処理を終了する。
[2−6.画像復号化部の各部の動作]
[2−6−1.エントロピー復号化部の動作]
次に、エントロピー復号化部32の動作を説明する。エントロピー復号化部32は、デパッキング部31から供給されるビットストリームと復号化に必要な付加情報(ビットストリームの符号化に用いられた変換テーブルを示すモードフラグを含む)を、入力として受け付ける。
エントロピー復号化部32は、ZBPのインデックスIDXzbpおよびTPのインデックスIDXtpを復号化する。ZBPのインデックスIDXzbpおよびTPのインデックスIDXtpは、画像符号化部20-1におけるエントロピー符号化部24の動作で説明したように、1つまたは複数の例えばハフマンテーブルを用いて符号化されている。したがって、エントロピー復号化部32は、どの変換テーブルを用いて符号化されているかモードフラグにより判断する。
図26は、ZBPのインデックスIDXzbpの復号化動作を示すフローチャートである。ステップST71でエントロピー復号化部32は、ZBP_Hard_tableを用いて符号化が行われているか判別する。エントロピー復号化部32は、付加情報のモードフラグに基づきZBPのインデックスIDXzbpの符号化で用いられた変換テーブルを判別する。エントロピー復号化部32は、ZBP_Hard_tableが用いられたと判別したときステップST72に進み、ZBP_Easy_tableが用いられたと判別したときステップST73に進む。
ステップST72でエントロピー復号化部32は、ZBP_Hard_tableを用いて復号化を行う。エントロピー復号化部32は、ZBP_Hard_tableを用いて復号化を行うことで、ZBPのインデックスIDXzbpを取得して復号化動作を終了する。
ステップST73でエントロピー復号化部32は、ZBP_Easy_tableを用いて復号化を行う。エントロピー復号化部32は、ZBP_Easy_tableを用いて復号化を行うことで、ZBPのインデックスIDXzbpを取得して復号化動作を終了する。
図27は、TPのインデックスの復号化動作を示すフローチャートである。ステップST76でエントロピー復号化部32は、TP_Hard_tableを用いて符号化が行われているか判別する。エントロピー復号化部32は、付加情報に基づきTPのインデックスIDXtpの符号化で用いられた変換テーブルを判別する。エントロピー復号化部32は、TP_Hard_tableが用いられたと判別したときステップST77に進み、TP_Easy_tableが用いられたと判別したときステップST78に進む。
ステップST77でエントロピー復号化部32は、TP_Hard_tableを用いて復号化を行う。エントロピー復号化部32は、TP_Hard_tableを用いて復号化を行うことで、TPのインデックスIDXtpを取得して復号化動作を終了する。
ステップST78でエントロピー復号化部32は、TP_Easy_tableを用いて復号化を行う。エントロピー復号化部32は、TP_Easy_tableを用いて復号化を行うことで、TPのインデックスIDXtpを取得して復号化動作を終了する。
ZBPのインデックスIDXzbpおよびTPのインデックスIDXtpを復号化した結果、ビットプレーンのどの部分が符号化されているか判別できる。例えば、図28において、復号化によって得られたZBPのインデックスIDXzbpが示す位置は右上がりの斜線部として示している。また、復号化によって得られたTPのインデックスIDXtpが示す位置は左上がりの斜線部として示している。このように、ZBPのインデックスIDXzbpおよびTPのインデックスIDXtpが得られると、ZBPの下のビットプレーンからTPのインデックスIDXtpが示すビットプレーンまでが符号化された範囲であると判別できる。また、符号化された範囲が明らかとなることから、ビットストリームを復号化して得られたデータがいずれのサブブロックのいずれのビットプレーンのデータであるか、判別することができる。
なお、図28において、TPのインデックスIDXtpが示すビットプレーンの下である塗りつぶされたビットプレーンは、画像符号化部20-1でトランケーションされたビットプレーンである。
MDWT係数データの絶対値を示すビットストリームの復号化は、画像符号化部20-1におけるエントロピー符号化部24の動作で説明したように、1つまたは複数の例えばハフマンテーブルを用いて符号化されている。エントロピー復号化部32は、どの変換テーブルを用いて符号化されているか付加情報のモードフラグにより判断する。
図29は、MDWT係数データの絶対値を示すビットストリームの復号化動作を示すフローチャートである。ステップST81でエントロピー復号化部32は、Coef_Hard_tableを用いて符号化が行われたか判別する。エントロピー復号化部32は、付加情報に基づきMDWT係数データの絶対値の符号化で用いられた変換テーブルを判別する。エントロピー復号化部32は、Coef_Hard_tableが用いられたと判別したときステップST82に進み、Coef_Easy_table用いられたと判別したときステップST83に進む。
ステップST82でエントロピー復号化部32は、Coef_Hard_tableを用いて復号化を行う。エントロピー復号化部32は、Coef_Hard_tableを用いて復号化を行うことで、MDWT係数データの絶対値を示すデータを取得して復号化動作を終了する。
ステップST83でエントロピー復号化部32は、Coef_Easy_tableを用いて復号化を行う。エントロピー復号化部32は、Coef_Easy_tableを用いて復号化を行うことで、MDWT係数データの絶対値を示すデータを取得して復号化動作を終了する。なお、変換テーブルやコンテキストの例は、画像符号化部20-1におけるエントロピー符号化部24の動作で説明したとおりである。
[2−6−2.ラウンディングビット付加部の動作]
ラウンディングビット付加部33は、画像符号化部20-1でトランケーションされた下位ビットを推定して、MDWT係数データの絶対値を復元する。ラウンディングビット付加部33は、TPのインデックスIDXtpに基づき、画像符号化部20-1でトランケーションされた下位ビットの位置を判別して、判別した位置のデータを推定する。例えば、図28に示す場合、ラウンディングビット付加部33は、TPのインデックスIDXtpが示すビットプレーンの下である塗りつぶされたビットプレーンのデータを推定する。
推定の方法としてはいくつかあるが、簡易な方法の例として、統計に基づいてあらかじめ作成しておいたテーブルを参照することで、推定したデータを取得する。例えば、ラウンディングビット付加部33は、図30に示すように、TPのインデックスIDXtpをコンテキストとして、TPのインデックスIDXtpに応じた値を推定データとする。ここで、TPのインデックスIDXtpをコンテキストに用いることは、トランケーションされたビットプレーンの位置によって、適切な付加する値に傾向があるためである。ラウンディングビット付加部33は、推定したデータを、係数データの絶対値を示すデータに付加して、帯域合成部34に出力する。
[2−6−3.帯域合成部の動作]
帯域合成部34は、画像符号化部20-1で行われたMDWTの逆変換であるIMDWT(Inverse Modified Discrete Wavelet Transform)を行う。画像符号化部20-1において説明したとおり、MDWTは基本的にはDWTと同じであるが、信号端の帯域分割精度向上のために帯域分割するたびに低域信号の空間的な位置の入れ替えを行っている。したがって、帯域合成部34は、入力されたMDWT係数データのうち、低域信号の空間的な位置を符号化時とは逆の操作によって元の位置に戻す。その後、IDWTと同様にデインターリーブ、対象周期拡張および2段のリフティング演算を行い、帯域合成を行う。また、帯域合成を繰り返す場合は、そのたびに最初に低域信号を元の空間位置に戻す操作を行う。帯域合成部34は、このような処理を行い復号化DCレベルシフト信号を生成する。
図31は、帯域合成部34の動作を説明するための図である。図31の(A)は、MDWT係数データを示している。帯域合成部34は、図31の(B)に示すように、低域信号の空間的な位置を符号化時とは逆の操作によって元の位置に戻す処理を行う。次に、帯域合成部34は、図31の(C)に示すようにデインターリーブを行い、図31の(D)に示すように、対象周期拡張を行う。その後、帯域合成部34は、図31の(E),(F)に示すように2段のリフティング演算を行い帯域合成して、図31の(F)に示す復号化DCレベルシフト信号を生成する。
なお、IMDWTは、従来のIDWTと同様に1次元信号のみならず、2次元のブロックに対して様々な帯域分割された信号を再構成することが可能である。また、使用するフィルタを水平方向と垂直方向で異なるものを用いてもよい。さらに、信号再構成のフィルタには、IDWT以外のものを用いてもよい。
このように、画像符号化部20-1と画像復号化部30-1で画像データの符号化や復号化を行うと、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置が並び替えられるので、低域成分の係数データに対して周波数帯域分割を繰り返し行って、複数の周波数帯域毎の係数データを生成しても、例えば拡張された画像データを用いて生成された低域成分の係数データの位置が固定した位置とならないので、拡張された画像データを用いたことによる帯域分離精度の低下の影響が繰り返し反映されてしまうことがなくなる。したがって、ブロック単位で画像の符号化を行ってもブロック歪みの少ない復号画像を得ることができる。
また、係数データは、所定数毎にサブブロックとして区分されて、サブブロック毎に係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化が推定される。この推定結果に対して、ブロックの端に位置するサブブロックが、他の位置のサブブロックよりもトランケーションされ難くなるように重み付けが行われる。この重み付け後の推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置が検出されてして、係数データ等のトランケーションが行われる。したがって、ブロックの端部の係数データがトランケーションされてしまうことを少なくできるので、ブロックの境界での歪みを軽減させることができる。
<3.第2の実施の形態>
[3−1.第2の実施の形態における画像符号化部の構成]
ところで、画像符号化部と画像復号化部の構成は図5や図24の構成に限られるものではない。図32は、第2の実施の形態における画像符号化部の構成を例示している。
画像符号化部20-2は、図5に示す画像符号化部20-1から、DCレベルシフト部21と歪特性推定部25およびパッキング部27を省略した構成とされている。
この場合、帯域分割部22は、DCレベルシフトされた信号ではなく、入力された画像データに対してMDWTを行う。また、トランケーションを行う基準となる歪特性推定部25を省略する場合には、例えば、歪特性推定部25であらかじめ符号化歪みECΔDi (p)または傾き(ECΔDi (p)/ΔRi(p))を算出しておき、それをテーブル化しておいたものを歪特性テーブル29に記憶させておく。この歪特性テーブルをトランケーション部26へ入力し、トランケーション部26は、これを基にトランケーションを実施する。また、エントロピー符号化部24において、ZBPとTPとビットプレーンで用いた符号化テーブルがそれぞれ1つで、トランケーションされたビットストリームに付加する情報がない場合、トランケーションされたビットストリームを符号化データとして画像符号化部20-2から出力してもよい。この場合、パッキング部27も省略できる。
[3−2.第2の実施の形態における画像復号化部の構成]
図33は、第2の実施の形態における画像復号化部の構成を例示している。画像復号化部30-2は、図24に示す画像復号化部30-1から、デパッキング部31、ラウンディングビット付加部33およびIDCレベルシフト部35を省略した構成とされている。
図32に示す画像符号化部20-2で生成された符号化データがビットストリームのみで付加情報がなければ、画像復号化部30-2にはデパッキング部31を設ける必要がない。また、ラウンディングビット付加部33は、復号化そのものに必須となる構成ではなく、復号化信号の画質向上を目的としているため、省略することが可能である。また、画像符号化部20-2においてDCレベルシフトがなされていない場合は、IDCレベルシフト部35を設ける必要がない。したがって、図33に示す構成の画像復号化部30-2を用いれば、画像符号化部20-2から出力されたビットストリームを復号化できる。
<4.第3の実施の形態>
[4−1.第3の実施の形態における画像符号化部の構成]
次に、上述の第1および第2の実施の形態に比べて更に符号化効率を高めることができる第3の実施の形態について説明する。図34は、第3の実施の形態における画像符号化部の構成を示している。
画像符号化部20-3は、第1の実施の形態と同様にDCレベルシフト部21、帯域分割部22、SB(Significant Bit)/ZBP(Zero Bit Plane)検出部23、エントロピー符号化部24、歪特性推定部25、トランケーション部26およびパッキング部27を有している。さらに、画像符号化部20-3には、ZBP直交変換部28が設けられている。
第1の実施の形態と同様に、DCレベルシフト部21は、帯域分割部22で周波数帯域分割を効率的に行うために画像データのDC成分のレベルシフトを行う。DCレベルシフト部21は、例えば入力されたM×N画素のブロック単位の画像データDVaからDC値を差し引いて、帯域分割部22へ出力する。帯域分割部22は、DCレベルシフト部21から出力された画像データDVbの周波数帯域分割を行う。帯域分割部22は、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから再度周波数帯域分割を行い、例えばM×N画素のブロック内の画像データから複数の周波数帯域毎の係数データを生成する。帯域分割部22は、例えばMDWT(Modified Discrete Wavelet Transform)を用いて周波数帯域分割を行う。帯域分割部22は、MDWTを行うことにより得られたMDWT係数データの絶対値CEaをSB/ZBP検出部23とエントロピー符号化部24および歪特性推定部25へ出力する。また、帯域分割部22は、MDWTを行うことにより得られたMDWT係数データの符号CEsをトランケーション部26へ出力する。SB/ZBP検出部23は、MDWT係数データの絶対値からSB(Significant Bit)およびZBP(Zero Bit Plane)を検出する。SB/ZBP検出部23は、SB検出結果DTsbをエントロピー符号化部24および歪特性推定部25へ出力する。また、SB/ZBP検出部23は、ZBP検出結果DTzbpを歪特性推定部25、トランケーション部26およびZBP直交変換部28へ供給する。
第3の実施の形態で設けられたZBP直交変換部28は、ZBP検出結果DTzbpの直交変換を行う。ZBP直交変換部28は、ZBP検出結果DTzbpを数値列として直交変換を行い、変換後の数値列であるZBP直交変換結果DTtzbpをエントロピー符号化部24へ供給する。
エントロピー符号化部24は、MDWT係数データの絶対値CEa、SB検出結果DTsbおよびZBP直交変換結果DTtzbpを用いて、MDWT係数データの絶対値CEaのビットプレーン、ZBP、TP(Truncation Point)のエントロピー符号化を行う。エントロピー符号化部24は、エントロピー符号化を行うことにより得られたビットストリームBSaをトランケーション部26へ出力する。また、エントロピー符号化部24は、エントロピー符号化を行うことにより得られたビットストリーム長DTbsを歪特性推定部25およびトランケーション部26へ出力する。さらに、エントロピー符号化部24は、エントロピー符号化を行うことにより得られたモードフラグMFをパッキング部27へ出力する。
第1の実施の形態と同様に、歪特性推定部25は、MDWT係数データの絶対値CEa、SB検出結果DTsb、ZBP検出結果DTzbpおよびビットストリーム長DTbsに基づいて歪特性の推定を行い、歪特性推定結果Erdをトランケーション部26へ出力する。トランケーション部26は、ビットストリームBSa、ビットストリーム長DTbs、ZBP検出結果DTzbp、符号CEs、歪特性推定結果Erdを用いて、予め設定されている目標符号量以内となるように、符号化対称のビットストリームおよび符号を決定する。パッキング部27は、トランケーションされたビットストリームBSbとモードフラグMFを所定のフォーマットに変換して、画像復号化部30-3で復号化可能な符号化データDpdを作成する。パッキング部27は、作成した符号化データDpdを画像符号化部20-3から出力する。
[4−2.第3の実施の形態における画像符号化部の動作]
図35は、第3の実施の形態における画像符号化部の動作を示すフローチャートである。なお、図35において、第1の実施の形態における画像符号化部と対応する処理については、同一の番号を付している。
ステップST11で画像符号化部20-3は、DCレベルシフトを行う。画像符号化部20-3は、入力された画像データDVaに対してDCレベルシフト部21でDCレベルシフトを行ってステップST12に進む。
ステップST12で画像符号化部20-3は、MDWTを行う。画像符号化部20-3は、DCレベルシフトが行われた画像データDVbに対して帯域分割部22でMDWTを行い、MDWT係数データの絶対値CEaと符号CEsを得てステップST13に進む。
ステップST13で画像符号化部20-3は、SBおよびZBPの検出を行う。画像符号化部20-3は、MDWT係数データの絶対値CEaからSBおよびZBPをSB/ZBP検出部23で検出してステップST13aに進む。
ステップST13aで画像符号化部20-3は、ZBP検出結果の直交変換を行う。画像符号化部20-3は、SB/ZBP検出部23で得られたZBP検出結果DTzbpの直交変換を行い、ZBP直交変換結果DTtzbpを算出してステップST14に進む。
ステップST14で画像符号化部20-3は、エントロピー符号化を行う。画像符号化部20-3は、MDWT係数データの絶対値CEaのビットプレーンとSB検出結果DTsbとZBP直交変換結果DTtzbpについてエントロピー符号化部24でエントロピー符号化を行い、ビットストリームBSa、ビットストリーム長DTbsおよびモードフラグMFを得てステップST15に進む。
ステップST15で画像符号化部20-3は、歪特性の推定を行う。画像符号化部20-3は、MDWT係数データの絶対値CEa、SB検出結果DTsb、ZBP検出結果DTzbpおよびビットストリーム長DTbsに基づき歪特性推定部25で歪特性を推定してステップST16に進む。
ステップST16で画像符号化部20-3は、トランケーションを行う。画像符号化部20-3は、ビットストリームBSa、ビットストリーム長DTbs、ZBP検出結果DTzbp、符号CEs、歪特性推定結果Erdに基づき、必要に応じてトランケーション部26でトランケーションを行う。画像符号化部20-3は、ビットストリーム長が目標符号長に収まらないとき、ビットストリームおよび符号のトランケーションを行い、ビットストリームBSbの符号長を目標符号長以下としてステップST17に進む。
ステップST17で画像符号化部20-3は、所定のフォーマットへの変換を行う。画像符号化部20-3は、モードフラグMFを含む付加情報と、トランケーションされたビットストリームBSbをパッキング部27で所定のフォーマットに変換して、符号化データDpdを生成して符号化処理を終了する。
[4−3.画像符号化部の各部の動作]
次に、第3の実施の形態の画像符号化部について、各部の動作について説明する。帯域分割部22は、上述の[2−3−1.帯域分割部の動作]で説明したように、例えばDWT(Discrete Wavelet Transform)に加えて、低域成分の係数データに対して空間的な位置の並び替えを行い、MDWT係数データを生成する。
SB/ZBP検出部23は、上述の[2−3−2.SB/ZBP検出部の動作]で説明したように、帯域分割部22から出力されるMDWT係数データ毎にSBのインデックスIDXsbを求めてSB検出結果DTsbとする。また、J個の係数データからなるサブブロック毎に、ZBPのインデックスIDXzbpを求めてZBP検出結果DTzbpとする。
ZBP直交変換部28は、ZBP検出結果DTzbpの直交変換を行う。ZBP直交変換部28は、ZBP検出結果DTzbpを数値列として直交変換を行い、ZBP直交変換結果DTtzbpを算出する。ZBP直交変換部28は、直交変換として例えばHaar変換を用いる。
式(7)(8)は、Haar変換を示しており、「X(n)」は入力の数値列、「Y(n)」は出力の数値列、「N」は数値列の要素数、「n」は数値列のインデックスを示している。また、「n」は、「0≦n<N/2」である。
Y(n+N/2)=X(2n+1)−X(2n) ・・・(7)
Y(n)=X(2n)+(Y(n+N/2)>>1) ・・・(8)
図36は、Haar変換の変換過程を例示している。図36の(A)はZBP検出結果DTzbpを数値列としたとき、数値列が「1,2,4,3,5,7,6,7」であった場合を示している。ZBP直交変換部28は、数値列が8個の数字で構成されていることからの「N=8」としてHaar変換を行う。ここで、式(7)の演算を行うと、図36の(B)における左から5番目〜8番目の値「1,−1,2,1」が算出される。さらに、式(7)を用いて算出した値と図36の(A)の値を用いて式(8)の演算を行うと、図36の(B)における左から1番目〜4番目の値「1,4,6,6」が算出される。なお、式(8)において、(Y(n+N/2)>>1)は「Y(n+N/2)」のデータを1ビット右シフトすることで1/2倍とする処理である。
次に、「N=4」として、図36の(B)に示す数値列について式(7)(8)の演算を行う。式(7)の演算を行うと、図36の(C)における左から3番目〜4番目の値「3,3」が算出される。さらに、式(7)を用いて算出した値と図36の(B)の値を用いて式(8)の演算を行うと、図36の(C)における左から1番目と2番目の値「2,6」が算出される。
さらに「N=2」として、図36の(C)に示す数値列について式(7)(8)の演算を行う。式(7)の演算を行うと、図36の(D)における左から2番目の値「4」が算出される。さらに、式(7)を用いて算出した値と図36の(C)の値を用いて式(8)の演算を行うと、図36の(D)における左端の値「4」が算出される。したがって、数値列「1,2,4,3,5,7,6,7」に対してHaar変換を行うと、変換結果は「4,4,3,0,1,−1,2,1」となる。
このように、ZBP直交変換部28は、ZBP検出結果DTzbpを示す数値列の直交変換を行い、数値の発生分布に偏りを生じたZBP直交変換結果DTtzbpを生成する。
エントロピー符号化部24は、上述の[2−3−3.エントロピー符号化部の動作]の説明において、ZBP検出結果DTzbpに代えてZBP直交変換結果DTtzbpを用いて、ZBP直交変換結果DTtzbpを示すインデックスIDXtzbp、TPのインデックスIDXtp、ビットプレーンの3つをそれぞれエントロピー符号化する。
図37は、ZBP直交変換結果DTtzbpとインデックスIDXtzbpの関係を示している。ZBP直交変換結果DTtzbpを示す数値列は、図10に示すようにインデックスIDXtzbpを設定したとき、「0〜9」のいずれかの値となる。また、ZBP直交変換結果DTtzbpを示す数値列が「0〜9」のいずれかの値であると、ZBP直交変換結果DTtzbpの数値列は「−9〜9」の範囲内の数値となる。したがって、エントロピー符号化部24は、ZBP直交変換結果DTtzbpの直交変換値に対応したインデックスIDXtzbpを設定する。
また、エントロピー符号化部24は、変換テーブルを用いてインデックスIDXtzbpをインデックス毎にシンボルに置き換える。変換テーブルは、例えば統計データに基に作成したハフマンテーブルを用いる。ZBP検出結果DTabpの直交変換を行うと、上述のようにIDXtzbpの各インデックスの発生確率に偏りを持たせることができる。したがって、数値の発生分布に偏りを生じたZBP直交変換結果DTtzbpを用いてエントロピー符号化を行えば、ZBP検出結果DTzbpを用いてエントロピー符号化を行う場合に比べて符号量を少なくできる。具体的には、図38に示すような変換テーブルを用いて、該当するZBPのインデックスIDXtzbpとコンテキストの組み合わせに該当するシンボルを符号化結果として選択する。図38に示す変換テーブルは、統計データを基に作成したハフマンテーブルなどを用いる。
Haar変換を用いたZBP直交変換の場合、コンテキストとして各インデックスの所属するHaar変換の帯域(サブバンド)を用いる。これは、Haar変換の性質としてサブバンドごとにインデックスの出現確率の統計性が異なることを利用するためである。
また、変換テーブルは、1つの変換テーブルを用いる場合に限らず、複数の変換テーブルから符号化に用いる変換デーブルを選択できるようにすることも可能である。例えば、比較的統計データに沿ったZBPのインデックスIDXzbpとなるもの(符号化が簡単なもの)に適用するZBP_Easy_tableと、統計データから外れてしまうもの(符号化が困難なもの)に適用するZBP_Hard_tableの2種類を用いる。
2種類の変換テーブルを用いてインデックスIDXtzbpのエントロピー符号化方法を行う場合、図12の場合と同様に、ZBP_Hard_tableを用いた符号化と、ZBP_Easy_tableを用いた符号化を行い、それぞれM×N画素のブロック単位でのビットストリーム長を求める。さらに、求めたビットストリーム長を比較して、ビットストリーム長が短い符号化結果を選択して出力する。また、図13の場合におけるインデックスIDXzbpの平均値に代えてインデックスIDXtzbpの平均値を用いて、平均値と閾値との比較結果に応じて、ZBP_Hard_tableまたはZBP_Easy_tableのいずれかを用いた符号化結果を出力するようにしてもよい。
また、エントロピー符号化部24は、上述の[2−3−3.エントロピー符号化部の動作]で説明したように、TPのインデックスIDXtpのエントロピー符号化やビットプレーンの符号化も行い、ビットストリームを生成する。なお、ビットプレーンのエントロピー符号化は、ZBP直交変換結果やTPの符号化と異なり、ビットプレーンの係数ビット(例えば「1,0」の値)を符号化する。変換テーブルのコンテキストとしては、ビットプレーンのインデックスIDXbp、ビットプレーンの所属するサブバンド、SB_flagなどを用いる。
さらに、エントロピー符号化部24は、ZBP直交変換結果、TP、ビットプレーンのそれぞれのエントロピー符号化において、ビットストリームを生成する際に、それぞれのビットストリーム長を記録しておく。これらは、後段の歪特性推定部25で必要となる。特に、TPとビットプレーンのビットストリーム長は、トランケーションを行うために、各ビットプレーンおよび各サブブロックで記録しておく必要がある。
歪特性推定部25は、上述の[2−3−4.歪特性推定部の動作]で説明したように、トランケーション部26でいずれのビットプレーンをトランケーションするか判断できるようにするために、符号量と歪みの関係を示す歪特性を推定する。
トランケーション部26は、上述の[2−3−5.トランケーション部の動作]で説明したように、歪特性推定部25から出力された歪特性推定結果Erdに基づいて、目標符号長内で最適な画質を得るためのビットプレーンの取捨選択を行う。パッキング部27は、上述の[2−3−6.パッキング部の動作]で説明したように、モードフラグMF、トランケーション後のビットストリーム(ZBP、TP、ビットプレーン、符号)BSbを所定のフォーマットに変換し、画像復号化部30-3で復号化できる符号化データDpdを生成する。
[4−4.第3の実施の形態における画像復号化部の構成]
図39は、第3の実施の形態における画像復号化部の構成を示している。画像復号化部30-3は、第1の実施の形態と同様に、デパッキング部31、エントロピー復号化部32、ラウンディングビット付加部33 帯域合成部34、IDCレベルシフト部35等を有している。さらに、画像復号化部30-3には、ZBP復号化部37とZBP逆直交変換部38が設けられている。
デパッキング部31は、画像符号化部20-3で生成された所定のフォーマットの符号化データDpdを入力して解析を行い、エントロピー復号化部32でビットストリームの復号化に必要な付加情報を取得する。デパッキング部31は、例えば、図23に示すフォーマットの符号化データからビットストリームとビットストリームを復号化するために必要な情報(モードフラグを含む)を切り離す。また、デパッキング部31は、複数のコンポーネント信号の符号化データが1つの符号化データにまとめられている場合、それらの分離等を行う。デパッキング部31は、ビットストリームの復号化に必要な付加情報と共にビットストリームBSbをエントロピー復号化部32とZBP復号化部37に出力する。
ZBP復号化部37は、ZBPの復号化に必要な付加情報(例えば符号化時の変換テーブルを示すフラグ)を用いてビットストリームの復号化を行う。ZBP復号化部37は、い、符号化時と同一の変換テーブルを用いてビットストリームのエントロピー復号化を行いインデックスIDXtzbpを生成する。さらに、ZBP復号化部37は、インデックスIDXtzbpを符号化時と同一のルールでZBP直交変換結果DTtzbpに置き換えてZBP逆直交変換部38に出力する。
ZBP逆直交変換部38は、ZBP復号化部37から供給されたZBP直交変換結果DTtzbpの逆直交変換を行ってZBP検出結果DTzbpを生成してエントロピー復号化部32に出力する。
エントロピー復号化部32は、デパッキング部31から出力されたビットストリームBSbのエントロピー復号化を行いTPのインデックスIDXtpを得て、インデックスIDXtpとZBP検出結果DTzbpを用いてMDWT係数データの絶対値の復号化を行う。また、エントロピー復号化部32は、復号化されたMDWT係数データの絶対値CEbとビットストリームBSbのエントロピー復号化を行って得られたTPのインデックスIDXtpをラウンディングビット付加部33に出力する。また、エントロピー復号化部32は、符号CEsを帯域合成部34に出力する。
ラウンディングビット付加部33は、MDWT係数データの絶対値CEbとTPのインデックスIDXtpに基づき、画像符号化部20-3でトランケーションされたビットプレーンのビットストリームを推定してMDWT係数データの絶対値の復元を行う。ラウンディングビット付加部33は、復元されたMDWT係数データの絶対値CEcを帯域合成部34へ出力する。
帯域合成部34は、復元されたMDWT係数データの絶対値CEcと符号CEsを用いて、逆変換(Inverse Modified Discrete Transform)を行う。なお、逆変換は、画像符号化部20-3の帯域分割部22で得られた係数データを変換前の画像データに戻す処理である。帯域合成部34は、逆変換を行うことにより得られた復号化DCレベルシフトデータDVcをIDCレベルシフト部35へ出力する。
IDCレベルシフト部35は、復号化DCレベルシフトデータDVcに対してDC値を足し合わせて、画像復号化部30-3の外部へブロック単位の画像データDVdとして出力する。なお、DC値は、画像符号化部20-3におけるDCレベルシフト部21で用いたDC値と等しい値である。
[4−5.第3の実施の形態における画像復号化部の動作]
次に、第3の実施の形態における画像復号化部の動作について図40のフローチャートを用いて説明する。なお、図40において、第1の実施の形態における画像復号化部と対応する処理については、同一の番号を付している。
ステップST61で画像復号化部30-3は、復号化可能なビットストリームの取得を行う。画像復号化部30-3は、所定のフォーマットの符号化データについて解析をデパッキング部31で行い、復号化可能なビットストリームを符号化データから取得してステップST61aに進む。
ステップST61aで画像復号化部30-3は、ZBP復号化を行う。画像復号化部30-3は、デパッキング部31で得られたビットストリームを用いてZBP復号化を行い、ZBP直交変換結果DTtzbpを取得してステップST61bに進む。
ステップST61bで画像復号化部30-3は、ZBP逆直交変換を行う。画像復号化部30-3は、ZBP直交変換結果DTtzbpの逆直交変換を行い、ZBP検出結果DTzbpを生成してST62に進む。
ステップST62で画像復号化部30-3は、ビットストリームの復号化を行う。画像復号化部30-3は、TPを示すインデックスIDXtpを復号化したのち、このインデックスIDXtpとステップST61bで生成されたZBP検出結果DTzbpを用いてMDWT係数データの絶対値をエントロピー復号化部で復号化する。また、画像復号化部30-3は、符号の復号化をエントロピー復号化部32で行いステップST63に進む。
ステップST63で画像復号化部30-3は、ラウンディングビットの付加を行う。画像復号化部30-3は、ラウンディングビット付加部33において、画像符号化部20-3でトランケーションされたビットプレーンのビットストリームを推定してラウンディングビットとする。さらに、画像復号化部30-3は、推定したラウンディングビットを復号化されたMDWT係数データの絶対値に加えてMDWT係数データの絶対値の復元をラウンディングビット付加部33で行いステップST64に進む。
ステップST64で画像復号化部30-3は、IMDWT(Inverse Modified Discrete Wavelet Transform)を行う。画像復号化部30-3は、復元されたMDWT係数データの絶対値と復号化された符号を用いてIMDWTを帯域合成部34で行い、復号化DCレベルシフト信号を得てステップST65に進む。
ステップST65で画像復号化部30-3は、IDCレベルシフトを行う。画像復号化部30-3は、復号化DCレベルシフト信号に対してDC値をIDCレベルシフト部35で足し合わせることにより復号化された画像データを得て処理を終了する。
[4−6.第3の実施の形態における画像復号化部の各部の動作]
エントロピー復号化部32は、上述の[2−6−1.エントロピー復号化部の動作]で説明したように、デパッキング部31から供給されるビットストリームと復号化に必要な付加情報(ビットストリームの符号化に用いられた変換テーブルを示すモードフラグを含む)を、入力として受け付ける。
ZBP復号化部37は、ZBPの復号化に必要な付加情報(例えば符号化時の変換テーブルを示すフラグ)を用いてビットストリームの復号化を行う。ZBP復号化部37は、い、符号化時と同一の変換テーブルを用いてビットストリームのエントロピー復号化を行いインデックスIDXtzbpを生成する。さらに、ZBP復号化部37は、インデックスIDXtzbpを符号化時と同一のルールでZBP直交変換結果DTtzbpに置き換えてZBP逆直交変換部38に出力する。
ZBP復号化部37は、インデックスIDXtzbpの符号化において、ZBP_Hard_tableとZBP_Easy_tableの何れが用いられたが判別して、判別したテーブルを用いて復号化を行い、インデックスIDXtzbpを取得する。さらに、ZBP復号化部37は、取得したインデックスIDXtzbpを図37に示すテーブルに基づきZBP直交変換結果DTtzbpの数値に変換する。
ZBP逆直交変換部38は、ZBP復号化部37から供給されたZBP直交変換結果DTtzbpの逆直交変換を行ってZBP検出結果DTzbpを生成してエントロピー復号化部32に出力する。ZBP逆直交変換部38は、画像符号化部20-3のZBP直交変換部28で行われた直交変換に対応した逆直交変換を行う。
例えばZBP直交変換部28でHaar変換が行われた場合、ZBP逆直交変換部38は、逆Haar変換を行う。
式(9)(10)は、逆Haar変換を示しており、「Y(n)」は直交変換が行われている(逆直交変換前の)数値列、「X(n)」は直交変換が行われる前(逆直交変換後の)の数値列、「N」は数値列の要素数、「n」は数値列のインデックスを示している。また、「n」は、「0≦n<N/2」である。
X(2n)=Y(n)−(Y(n+N/2)>>1) ・・・(9)
X(2n+1)=X(2n)+Y(n+N/2) ・・・(10)
図41は、逆Haar変換の変換過程を例示している。図41の(A)はZBP直交変換結果DTtzbpが数値列「4,4,3,0,1,−1,2,1」であった場合を示している。ZBP逆直交変換部38は、「N=2」として式(9)(10))の演算を行う。式(9)の演算を行うと、図41の(B)における左端の値「2」が算出される。なお、式(9)において、(Y(n+N/2)>>1)は「Y(n+N/2)」のデータを1ビット右シフトすることで1/2倍とする処理である。
次に、式(9)を用いて算出した値と図41の(A)の値を用いて式(10)の演算を行うと、図41の(B)における左から2番目の値「6」が算出される。
その後、「N=4」として、図41の(B)に示す数値列について式(9)(10))の演算を行う。式(9)の演算を行うと、図41の(C)における左から1番目と2番目の値「1,4」が算出される。さらに、式(9)を用いて算出した値と図41の(B)の値を用いて式(10)の演算を行うと、図41の(C)における左から3番目と4番目の値「6,6」が算出される。
さらに「N=8」として、図41の(C)に示す数値列について式(9)(10))の演算を行う。式(9)の演算を行うと、図41の(D)における左から1番目〜4番目の値「1,2,4,3」が算出される。さらに、式(9)を用いて算出した値と図41の(C)の値を用いて式(10)の演算を行うと、図41の(D)における左から5番目〜8番目の値「5,7,6,7」が算出される。したがって、数値列「4,4,3,0,1,−1,2,1」に対して逆Haar変換を行うと変換結果は「1,2,4,3,5,7,6,7」となり、図36の(A)と等しくなる。
このように、ZBP逆直交変換部38は、ZBP直交変換結果DTtzbpを示す数値列の逆直交変換を行い、直交変換前のZBP検出結果DTzbpを再現する。
エントロピー復号化部32は、TPのインデックスIDXtpを復号化する。TPのインデックスIDXtpは、上述の画像符号化部20-1におけるエントロピー符号化部24の動作で説明したように、1つまたは複数の例えばハフマンテーブルを用いて符号化されている。したがって、エントロピー復号化部32は、どの変換テーブルを用いて符号化されているかモードフラグにより判断する。エントロピー復号化部32は、TP_Hard_tableを用いて符号化が行われていると判別した場合、TP_Hard_tableを用いて復号化を行い、TP_Easy_tableを用いて符号化が行われていると判別した場合、TP_Easy_tableを用いて復号化を行う。
エントロピー復号化部32は、ZBP検出結果DTzbpおよびTPのインデックスIDXtpの復号化結果から、ビットプレーンのどの部分が符号化されているか判別できる。また、符号化された範囲が明らかとなることから、ビットストリームを復号化して得られたデータがいずれのサブブロックのいずれのビットプレーンのデータであるか、判別することができる。
さらに、エントロピー復号化部32は、MDWT係数データの絶対値を示すビットストリームの復号化を行う。エントロピー復号化部32は、Coef_Hard_tableを用いて符号化が行われていると判別した場合、Coef_Hard_tableを用いて復号化を行い、Coef_Easy_tableを用いて符号化が行われていると判別した場合、Coef_Easy_tableを用いて復号化を行う。なお、エントロピー復号化部32は、どの変換テーブルを用いて符号化されているか付加情報のモードフラグにより判断する。
エントロピー復号化部32は、変換テーブルを用いて復号化を行い、MDWT係数データの絶対値を示すデータを取得して復号化動作を終了する。
ラウンディングビット付加部33は、画像符号化部20-3でトランケーションされた下位ビットを推定して、MDWT係数データの絶対値を復元する。ラウンディングビット付加部33は、TPのインデックスIDXtpに基づき、画像符号化部20-3でトランケーションされた下位ビットの位置を判別して、判別した位置のデータを推定する。推定の方法としては、上述のように、統計に基づいてあらかじめ作成しておいたテーブルを参照することで、推定したデータを取得して、係数データの絶対値を示すデータに付加して、帯域合成部34に出力する。
帯域合成部34は、画像符号化部20-3で行われたMDWTの逆変換であるIMDWT(Inverse Modified Discrete Wavelet Transform)を行う。画像符号化部20-3において説明したとおり、MDWTは基本的にはDWTと同じであるが、信号端の帯域分割精度向上のために帯域分割するたびに低域信号の空間的な位置の入れ替えを行っている。したがって、帯域合成部34は、入力されたMDWT係数データのうち、低域信号の空間的な位置を符号化時とは逆の操作によって元の位置に戻す。その後、IDWTと同様にデインターリーブ、対象周期拡張および2段のリフティング演算を行い、帯域合成を行う。また、帯域合成を繰り返す場合は、そのたびに最初に低域信号を元の空間位置に戻す操作を行う。帯域合成部34は、このような処理を行い復号化DCレベルシフト信号を生成する。
このように、画像符号化部20-3と画像復号化部30-3で画像データの符号化や復号化を行うと、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置が並び替えられるので、低域成分の係数データに対して周波数帯域分割を繰り返し行って、複数の周波数帯域毎の係数データを生成しても、例えば拡張された画像データを用いて生成された低域成分の係数データの位置が固定した位置とならないので、拡張された画像データを用いたことによる帯域分離精度の低下の影響が繰り返し反映されてしまうことがなくなる。したがって、ブロック単位で画像の符号化を行ってもブロック歪みの少ない復号画像を得ることができる。
また、係数データは、所定数毎にサブブロックとして区分されて、サブブロック毎に係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化が推定される。この推定結果に対して、ブロックの端に位置するサブブロックが、他の位置のサブブロックよりもトランケーションされ難くなるように重み付けが行われる。この重み付け後の推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置が検出されてして、係数データ等のトランケーションが行われる。したがって、ブロックの端部の係数データがトランケーションされてしまうことを少なくできるので、ブロックの境界での歪みを軽減させることができる。
さらに、ZBP検出結果DTzbpの直交変換が行われて、数値の発生頻度に偏りを持たせることができるので、偏りに応じたエントロピー符号化処理を行うことで、発生符号量を更に削減することができる。
<5.第4の実施の形態>
[5−1.第4の実施の形態における画像符号化部の構成]
図42は、第3の実施の形態の画像符号化部の簡略構成を第4の実施の形態として例示している。
画像符号化部20-4は、図34に示す画像符号化部20-3から、DCレベルシフト部21と歪特性推定部25およびパッキング部27を省略した構成とされている。
この場合、帯域分割部22は、DCレベルシフトされた信号ではなく、入力された画像データに対してMDWTを行う。また、トランケーションを行う基準となる歪特性推定部25を省略する場合には、例えば、歪特性推定部25であらかじめ符号化歪みECΔDi(p)または傾き(ECΔDi(p)/ΔRi(p))を算出しておき、それをテーブル化しておいたものを歪特性テーブル29に記憶させておく。この歪特性テーブルをトランケーション部26へ入力し、トランケーション部26は、これを基にトランケーションを実施する。また、エントロピー符号化部24において、ZBP直交変換結果とTPとビットプレーンで用いた符号化テーブルがそれぞれ1つで、トランケーションされたビットストリームに付加する情報がない場合、トランケーションされたビットストリームを符号化データとして画像符号化部20-4から出力してもよい。この場合、パッキング部27も省略できる。
[5−2.第4の実施の形態における画像復号化部の構成]
図43は、第3の実施の形態の画像復号化部の簡略構成を第4の実施の形態として例示している。
画像復号化部30-4は、図39に示す画像復号化部30-3から、デパッキング部31、ラウンディングビット付加部33およびIDCレベルシフト部35を省略した構成とされている。
図42に示す画像符号化部20-4で生成された符号化データがビットストリームのみで付加情報がなければ、画像復号化部30-4にはデパッキング部31を設ける必要がない。また、ラウンディングビット付加部33は、復号化そのものに必須となる構成ではなく、復号化信号の画質向上を目的としているため、省略することが可能である。また、画像符号化部20-4においてDCレベルシフトがなされていない場合は、IDCレベルシフト部35を設ける必要がない。したがって、図43に示す構成の画像復号化部30-4を用いれば、画像符号化部20-4から出力されたビットストリームを復号化できる。
<6.符号化と復号化をコンピュータで行う場合>
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータを用いる。または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどを用いて、プログラム記録媒体からソフトウェアをインストールする。
図44は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェア構成を例示した図である。
コンピュータ60において、CPU(Central Processing Unit)61、ROM(Read Only Memory)62、RAM(Random Access Memory)63は、バス64により相互に接続されている。
バス64には、さらに、入出力インタフェース65が接続されている。入出力インタフェース65には、キーボード、マウスなどよりなるユーザインタフェース部66、画像データを入力するための入力部67、ディスプレイなどよりなる出力部68、ハードディスクや不揮発性のメモリなどよりなる記録部69等が接続される。さらに、入出力インタフェース65には、ネットワークインタフェースなどよりなる通信部70、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア80を駆動するドライブ71が接続されている。
以上のように構成されるコンピュータでは、CPU61が、例えば、記録部69に記録されているプログラムを、入出力インタフェース65およびバス64を介して、RAM63にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU61)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア80に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア80をドライブ71に装着することにより、入出力インタフェース65を介して、記録部69にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部70で受信し、記録部69にインストールすることができる。その他、プログラムは、ROM62や記録部69に、予めインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。例えば、上述の実施の形態では、5×3リフティング構成を示したが、9×7リフティング構成等であってもよい。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
この発明の画像符号化装置とその方法、画像復号化装置とその方法、およびプログラムでは、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから再度周波数帯域分割を行い、ブロック単位の画像データから複数の周波数帯域毎の係数データが生成される。また、生成された複数の周波数帯域毎の係数データの符号化が行われる。このため、ブロックの端部で画像データを拡張して周波数帯域分割を繰り返しても、拡張された画像データを用いて生成された低域成分の係数データの位置が固定した位置とならない。したがって、拡張された画像データを用いたことによる帯域分離精度の低下の影響が繰り返し反映されてしまうことがなく、ブロック単位で画像の符号化を行ってもブロック歪の少ない復号画像を得られるため、画像データの記録装置や画像データの通信装置等に適している。
10・・・画像処理装置、12・・・処理システム部、14,85・・・メモリ、20,20-1,20-2,20-3,20-4,81・・・画像符号化部、21・・・DCレベルシフト部、22・・・帯域分割部、23・・・SB/ZBP検出部、24・・・エントロピー符号化部、25・・・歪特性推定部、26・・・トランケーション部、27・・・パッキング部、28・・・ZBP直交変換部、29・・・歪特性テーブル、30,30-1,30-2,30-3,30-4,82・・・画像復号化部、31・・・デパッキング部、32・・・エントロピー復号化部、33・・・ラウンディングビット付加部、34・・・帯域合成部、35・・・IDCレベルシフト部、37・・・ZBP復号化部、38・・・ZBP逆直交変換部、50・・・コンピュータ、51・・・CPU。52・・・ROM、53・・・RAM、54・・・バス、55・・・入出力インタフェース、56・・・ユーザインタフェース部、57・・・入力部、58・・・出力部、59・・・記録部、60・・・通信部、61・・・ドライブ、80・・・リムーバブルメディア、80・・・画像処理システム

Claims (17)

  1. ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する周波数帯域分割を行い、該周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから該低域成分の係数データの周波数帯域分割を行う帯域分割部と、
    前記複数の周波数帯域毎の係数データの符号化を行う符号化部と
    を有する画像符号化装置。
  2. 前記帯域分割部は、前記ブロックの端部で画像データを拡張して周波数帯域分割を行い、拡張された画像データを用いて生成された係数データを移動させる請求項1記載の画像符号化装置。
  3. 前記帯域分割部は、前記低域成分の係数データにおいて、係数データの位置を反転させることで、前記拡張された画像データを用いて生成された係数データを移動させる請求項2記載の画像符号化装置。
  4. 前記帯域分割部は、リフティング演算とデインターリーブを行って、前記複数の周波数帯域毎の係数データを生成する請求項2記載の画像符号化装置。
  5. 前記係数データを所定数毎に区分したサブブロック毎に、前記係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化を推定する歪特性推定部と、
    前記推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置を検出して、前記ビットプレーンのトランケーションを行うトランケーション部とを有し、
    前記歪特性推定部は、推定結果に対して重み付けを行い、
    前記トランケーション部は、前記重み付けされた推定結果に基づいて、前記ビットプレーンのトランケーションを行う請求項1記載の画像符号化装置。
  6. 前記歪特性推定部は、前記ブロックの端に位置するサブブロックが、他の位置のサブブロックよりもトランケーションされ難くなるように推定結果に対して重み付けを行う請求項5記載の画像符号化装置。
  7. 前記係数データの最上位有意ビットプレーンと前記サブブロック毎にゼロビットプレーンを検出する検出部を有し、
    前記符号化部は、前記検出部と前記トランケーション部の検出結果および前記係数データを、それぞれ1つまたは複数のコンテキストに応じて符号化する請求項6記載の画像符号化装置。
  8. 前記検出部で検出された前記ゼロビットプレーンを示す数値列の直交変換を行うゼロビットプレーン直交変換部を有し、
    前記符号化部は、前記検出部における前記ゼロビットプレーンの検出結果に代えて、前記ゼロビットプレーン直交変換部で得られた変換結果を用いる請求項7記載の画像符号化装置。
  9. 帯域分割部で、ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する周波数帯域分割を行い、該周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから該低域成分の係数データの周波数帯域分割を行うステップと、
    符号化部で、前記複数の周波数帯域毎の係数データの符号化を行うステップと
    を具備する画像符号化方法。
  10. ブロック単位の画像データから複数の周波数帯域毎の係数データを生成する周波数帯域分割を行い、該周波数帯域分割では、周波数帯域分割によって得られた低域成分の係数データに対して空間的な位置を並び替えてから該低域成分の係数データの周波数帯域分割を行うステップと、
    前記複数の周波数帯域毎の係数データの符号化を行うステップと
    を含む処理をコンピュータで実行させるプログラム。
  11. ブロック単位の画像データの周波数帯域分割を行い、複数の周波数帯域毎の係数データを生成する帯域分割部と、
    前記複数の周波数帯域毎の係数データの符号化を行う符号化部と、
    前記係数データを所定数毎に区分したサブブロック毎に、前記係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化を推定して、推定結果に対して重み付けを行う歪特性推定部と、
    前記重み付けされた推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置を検出して、前記ビットプレーンのトランケーションを行うトランケーション部と
    を有する画像符号化装置。
  12. 前記歪特性推定部は、前記ブロックの端に位置するサブブロックが、他の位置のサブブロックよりもトランケーションされ難くなるように推定結果に対して重み付けを行う請求項10記載の画像符号化装置。
  13. 帯域分割部で、ブロック単位の画像データの周波数帯域分割を行い、複数の周波数帯域毎の係数データを生成するステップと、
    符号化部で、前記複数の周波数帯域毎の係数データの符号化を行うステップと、
    歪特性推定部で、前記係数データを所定数毎に区分したサブブロック毎に、前記係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化を推定して、推定結果に対して重み付けを行うステップと、
    トランケーション部で、前記重み付けされた推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置を検出して、前記ビットプレーンのトランケーションを行うステップと
    を具備する画像符号化方法。
  14. ブロック単位の画像データの周波数帯域分割を行い、複数の周波数帯域毎の係数データを生成するステップと、
    前記複数の周波数帯域毎の係数データの符号化を行うステップと、
    前記係数データを所定数毎に区分したサブブロック毎に、前記係数データのビットプレーンをトランケーションしたときの画像の歪み量の変化を推定して、推定結果に対して重み付けを行うステップと、
    前記重み付けされた推定結果に基づいて、画像の歪みが少なく符号量が目標符号量以内となるトランケーション位置を検出して、前記ビットプレーンのトランケーションを行うステップと
    を含む処理をコンピュータで実行させるプログラム。
  15. ブロック単位の画像データの周波数帯域分割を行うことによって得られた係数データが符号化されている符号化データを復号化する復号化部と、
    前記復号化によって得られた係数データを並べ替え前の順序に戻してから、複数の周波数帯域毎の係数データの周波数帯域合成を行い、ブロック単位の画像データを生成する帯域合成部と
    を有する画像復号化装置。
  16. 復号化部で、ブロック単位の画像データの周波数帯域分割を行うことによって得られた係数データが符号化されている符号化データを復号化するステップと、
    帯域合成部で、前記復号化によって得られた係数データを並べ替え前の順序に戻してから、複数の周波数帯域毎の係数データの周波数帯域合成を行い、ブロック単位の画像データを生成するステップと
    を備える画像復号化方法。
  17. ブロック単位の画像データの周波数帯域分割を行うことによって得られた係数データが符号化されている符号化データを復号化するステップと、
    前記復号化によって得られた係数データを並べ替え前の順序に戻してから、複数の周波数帯域毎の係数データの周波数帯域合成を行い、ブロック単位の画像データを生成するステップと
    を含む処理をコンピュータで実行させるプログラム。
JP2010247587A 2010-03-16 2010-11-04 画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム Withdrawn JP2011217347A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010247587A JP2011217347A (ja) 2010-03-16 2010-11-04 画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム
US13/019,699 US8625909B2 (en) 2010-03-16 2011-02-02 Image encoding apparatus and method, image decoding apparatus and method, and program
CN2011100541121A CN102196265A (zh) 2010-03-16 2011-03-08 图像编码装置和方法、图像解码装置和方法、以及程序

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010059117 2010-03-16
JP2010059117 2010-03-16
JP2010247587A JP2011217347A (ja) 2010-03-16 2010-11-04 画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2011217347A true JP2011217347A (ja) 2011-10-27

Family

ID=44603551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010247587A Withdrawn JP2011217347A (ja) 2010-03-16 2010-11-04 画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム

Country Status (3)

Country Link
US (1) US8625909B2 (ja)
JP (1) JP2011217347A (ja)
CN (1) CN102196265A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016517230A (ja) * 2013-03-27 2016-06-09 ゼットティーイー コーポレイション 奥行き情報符号化および復号化方法、奥行き情報符号化および復号化装置、並びにビデオ処理及び再生装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420295B2 (en) * 2014-01-10 2016-08-16 Sony Corporation Joint mode decision with shared bit-budget condition
US10063889B2 (en) 2014-10-28 2018-08-28 Sony Corporation Image processing system with conditional coding and method of operation thereof
US9674554B2 (en) 2014-10-28 2017-06-06 Sony Corporation Image processing system with coding mode and method of operation thereof
US9357232B2 (en) * 2014-10-28 2016-05-31 Sony Corporation Image processing system with binary decomposition and method of operation thereof
US9357237B2 (en) * 2014-10-28 2016-05-31 Sony Corporation Image processing system with bitstream reduction and method of operation thereof
US10356410B2 (en) 2014-10-28 2019-07-16 Sony Corporation Image processing system with joint encoding and method of operation thereof
CN108810552B (zh) * 2017-04-28 2021-11-09 华为技术有限公司 图像预测方法和相关产品
US11288763B1 (en) * 2019-06-21 2022-03-29 Gopro, Inc. Systems and methods for visually encoding information into a pixel-based image
WO2021210743A1 (ko) * 2020-04-14 2021-10-21 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN111614359B (zh) * 2020-06-02 2023-04-11 同济大学 使用点预测和常现位置数组的数据编码方法和解码方法
CN111935484B (zh) * 2020-09-28 2021-01-19 广州佰锐网络科技有限公司 一种视频帧压缩编码方法及装置
US20230052538A1 (en) * 2021-08-13 2023-02-16 Meta Platforms, Inc. Systems and methods for determining token rates within a rate-distortion optimization hardware pipeline

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP248298A0 (en) * 1998-03-20 1998-04-23 Canon Kabushiki Kaisha A method and apparatus for hierarchical encoding and decoding an image
US6263109B1 (en) * 1998-09-25 2001-07-17 Hewlett-Packard Company Context-based ordering and coding of transform coefficient bit-planes for embedded bitstreams
US6510247B1 (en) * 1998-09-25 2003-01-21 Hewlett-Packard Company Decoding of embedded bit streams produced by context-based ordering and coding of transform coeffiecient bit-planes
JP3853115B2 (ja) * 1999-08-27 2006-12-06 シャープ株式会社 画像符号化装置、画像復号化装置、画像符号化方法及び画像復号化方法
FR2816153B1 (fr) * 2000-10-27 2002-12-20 Canon Kk Procede de controle prealable de la detectabilite d'un signal de marquage
JP4517504B2 (ja) * 2000-12-22 2010-08-04 株式会社ニコン 画像符号化装置、電子カメラおよび記録媒体
US7474792B2 (en) * 2002-12-02 2009-01-06 Ricoh Company, Ltd. Image processing apparatus for using distortion amount information
JP4136951B2 (ja) * 2003-01-31 2008-08-20 株式会社リコー 画像処理装置、プログラム及び記憶媒体
US7450771B2 (en) * 2004-07-09 2008-11-11 National Taiwan University Pre-compression rate-distortion optimization method for JPEG 2000

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016517230A (ja) * 2013-03-27 2016-06-09 ゼットティーイー コーポレイション 奥行き情報符号化および復号化方法、奥行き情報符号化および復号化装置、並びにビデオ処理及び再生装置

Also Published As

Publication number Publication date
CN102196265A (zh) 2011-09-21
US20110229047A1 (en) 2011-09-22
US8625909B2 (en) 2014-01-07

Similar Documents

Publication Publication Date Title
JP2011217347A (ja) 画像符号化装置とその方法、画像復号化装置とその方法、およびプログラム
JP4702928B2 (ja) 動画像符号化装置及び復号装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4254017B2 (ja) 画像符号化装置及び方法
RU2608877C2 (ru) Способ и устройство для кодирования видео и способ и устройство для декодирования видео посредством компенсации пиксельного значения в соответствии с группами пикселей
JP5731506B2 (ja) 適応的なループフィルタリングを利用したビデオ符号化方法及び装置、ビデオ復号化方法及び装置
JP2010528555A (ja) ビデオ信号の処理方法および装置
Bhavani et al. A survey on coding algorithms in medical image compression
CN101309417A (zh) 用于处理图像数据的方法和设备
JP2004173011A (ja) 画像信号の処理装置および処理方法、それに使用される係数データの生成装置および生成方法、並びに各方法を実行するためのプログラム
KR100901178B1 (ko) 동화상의 부호화 방법 및 장치, 그리고 동화상의 복호 방법및 장치
CN100534182C (zh) 考虑与运动矢量的分量相关的部分来编码视频图像的方法
JP2008022530A (ja) 映像信号階層復号化装置、映像信号階層復号化方法、及び映像信号階層復号化プログラム
CN103069798B (zh) 用于在实施变换域估计过程中对至少一个图像进行编码和解码的方法和装置
JP2006014086A (ja) 動画像符号化装置及び動画像符号化方法
JP2008022531A (ja) 映像信号階層符号化装置、映像信号階層符号化方法、及び映像信号階層符号化プログラム
CN107005706A (zh) 用于再编码图像的方法及其装置
JPWO2005006766A1 (ja) 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置およびコンピュータプログラム
CN100477789C (zh) 一种基于运动联合图像专家组2000的图像帧间增强方法
JP4034236B2 (ja) 特定変換係数優先符号化装置、特定変換係数優先符号化復号システム及び特定変換係数優先符号化方法
JP4385928B2 (ja) スケーラブル動画像符号化・復号化方法及びシステム
JP2000295622A (ja) 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置及びそれらのプログラムを記憶した記憶媒体
JP2007189622A (ja) 動画像符号化方法及び装置及び復号化方法及び装置及び動画像処理プログラム及びコンピュータ読み取り可能な記録媒体
JP4137458B2 (ja) 固定長画像符号化装置
JP4153774B2 (ja) 動画像符号化方法とその復号化方法、およびそれらの装置
JP2003244443A (ja) 画像符号化装置及び画像復号装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140107