JPWO2007066709A1 - 符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム - Google Patents
符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム Download PDFInfo
- Publication number
- JPWO2007066709A1 JPWO2007066709A1 JP2007549166A JP2007549166A JPWO2007066709A1 JP WO2007066709 A1 JPWO2007066709 A1 JP WO2007066709A1 JP 2007549166 A JP2007549166 A JP 2007549166A JP 2007549166 A JP2007549166 A JP 2007549166A JP WO2007066709 A1 JPWO2007066709 A1 JP WO2007066709A1
- Authority
- JP
- Japan
- Prior art keywords
- unit
- bit
- data
- bit plane
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 519
- 230000008569 process Effects 0.000 claims description 391
- 238000012545 processing Methods 0.000 claims description 276
- 238000000354 decomposition reaction Methods 0.000 claims description 102
- 238000001914 filtration Methods 0.000 claims description 64
- 238000000605 extraction Methods 0.000 claims description 46
- 239000000284 extract Substances 0.000 claims description 15
- 238000013139 quantization Methods 0.000 description 346
- 238000007792 addition Methods 0.000 description 274
- 238000004364 calculation method Methods 0.000 description 107
- 238000010586 diagram Methods 0.000 description 91
- 230000015572 biosynthetic process Effects 0.000 description 71
- 238000003786 synthesis reaction Methods 0.000 description 71
- 230000033001 locomotion Effects 0.000 description 66
- 230000005540 biological transmission Effects 0.000 description 65
- 230000008707 rearrangement Effects 0.000 description 49
- 230000008859 change Effects 0.000 description 36
- 238000003860 storage Methods 0.000 description 34
- 230000009466 transformation Effects 0.000 description 33
- 238000007906 compression Methods 0.000 description 29
- 230000006835 compression Effects 0.000 description 29
- 238000004458 analytical method Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 19
- 238000000926 separation method Methods 0.000 description 19
- 230000003111 delayed effect Effects 0.000 description 17
- 230000005236 sound signal Effects 0.000 description 16
- 230000001934 delay Effects 0.000 description 14
- 238000006073 displacement reaction Methods 0.000 description 13
- 230000010365 information processing Effects 0.000 description 13
- 230000002194 synthesizing effect Effects 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 11
- 230000003247 decreasing effect Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 11
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 101100162203 Aspergillus parasiticus (strain ATCC 56775 / NRRL 5862 / SRRC 143 / SU-1) aflG gene Proteins 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 238000004904 shortening Methods 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000035515 penetration Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000001225 therapeutic effect Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本発明は、符号化ビットレートを適応的に制御することが可能とされた符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラムに関する。ウェーブレット変換で得られた係数データを量子化して、ビットプレーンに分解する。係数データは、MSBのビットプレーンから順に、ビット位置が上位から下位に向けて、ビットプレーン毎にエントロピ符号化される。符号量が目標符号量に達した時点のビット位置で、エントロピ符号化を停止させる。ビットプレーン上では、例えば低域領域から高域領域に向けて、係数データのエントロピ符号化を行う。復号画像の主観画質に与える影響の大きいデータを選択的に出力することができると共に、符号量の制御が容易である。
Description
この発明は、符号化ビットレートを適応的に制御することが可能とされた符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラムに関する。
画像データ、特にディジタルビデオ信号は、データ量が膨大となるため、所定の方式で圧縮符号化されて伝送および/または記録媒体への記録が行われるのが一般的である。近年では、MPEG2(Moving Picture Experts Group 2)方式が、ディジタルビデオ信号に対する圧縮符号化の標準的な方式として知られている。MPEG2では、DCT(Discrete Cosine Transform)と動き補償とを用いてディジタルビデオ信号の圧縮符号化を行い、さらに可変長符号を用いてデータの圧縮率を高めている。
MPEG2方式のような、可変長符号を用いてデータを圧縮符号化する符号化方式では、フレーム毎に符号化データのビットレートが異なってしまう可能性がある。そのため、例えばMPEG2方式では、次に圧縮符号化するフレームの符号化ビットレートを予め求めておき、求められた符号化ビットレートに基づきそのフレームを実際に圧縮符号化する際の符号化ビットレートを制御することが可能となっている。
特許文献1には、実際の符号化に先立って発生符号量を予測するためのプリエンコード処理を行い、実際の符号化を、このプリエンコード処理の結果に基づき行い符号量を適切に制御する方法が記載されている。
特開2002-359853号公報
上述のMPEG2方式において、予め次のフレームの符号化ビットレートを求めるためには、例えば、当該フレームに対して、前処理として実際の圧縮符号化と同等の処理を施し、そこで得られた情報に基づき符号化ビットレートを制御して、当該フレームに対する実際の圧縮符号化を施す方法が考えられる。
しかしながら、この方法では、1フレームに対して同等の圧縮符号化処理を例えば2回行う必要があり、処理の負荷が増大してしまうという問題点があった。
したがって、この発明の目的は、符号化側の負担を増大させることなく、符号化ビットレートを適応的に制御でき、且つ、復号画像の主観画質を良好とできるような符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラムを提供することにある。
本発明の第1の側面の符号化装置は、画像データを圧縮符号化して出力する符号化装置において、画像データに基づくデータをビットプレーンに分解する分解部と、分解部でビットプレーンに分解されたデータを、ビット位置が最上位のビットプレーンから所定ビット位置に対応するビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力する出力部とを有することを特徴とする符号化装置である。
本発明の第1の側面の符号化方法は、画像データを圧縮符号化して出力する符号化方法において、画像データに基づくデータをビットプレーンに分解する分解のステップと、分解のステップによりビットプレーンに分解されたデータを、ビット位置が最上位のビットプレーンから所定ビット位置に対応するビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力する出力のステップとを有することを特徴とする符号化方法である。
本発明の第1の側面の符号化プログラムは、画像データを圧縮符号化して出力する符号化方法をコンピュータ装置に実行させる符号化プログラムにおいて、符号化方法は、画像データに基づくデータをビットプレーンに分解する分解のステップと、分解のステップによりビットプレーンに分解されたデータを、ビット位置が最上位のビットプレーンから所定ビット位置に対応するビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力する出力のステップとを有することを特徴とする符号化プログラムである。
本発明の第2の側面の復号装置は、ビットプレーンに分解され、ビットプレーンが、ビット位置が最上位のビットプレーンから所定ビット位置のビットプレーンに向けて順次、供給される、画像データに基づくデータがビットプレーン毎に所定に符号化された符号化データに対してビットプレーンの供給順に従いビットプレーン毎の符号を復号する復号部を有することを特徴とする復号装置である。
本発明の第2の側面の復号方法は、ビットプレーンに分解され、ビットプレーンが、ビット位置が最上位のビットプレーンから所定ビット位置のビットプレーンに向けて順次、供給される、画像データに基づくデータがビットプレーン毎に所定に符号化された符号化データに対してビットプレーンの供給順に従いビットプレーン毎の符号を復号する復号のステップ有することを特徴とする復号方法である。
本発明の第2の側面の復号プログラムは、ビットプレーンに分解され、ビットプレーンが、ビット位置が最上位のビットプレーンから所定ビット位置のビットプレーンに向けて順次、供給される、画像データに基づくデータがビットプレーン毎に所定に符号化された符号化データに対してビットプレーンの供給順に従いビットプレーン毎の符号を復号する復号のステップ有する復号方法をコンピュータ装置に実行させることを特徴とする復号プログラムである。
本発明の第1の側面においては、画像データに基づくデータがビットプレーンに分解され、ビットプレーンに分解されたデータが、ビット位置が最上位のビットプレーンから所定ビット位置に対応するビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力されるようになされているため、画質に与える影響が大きいデータを選択的に出力することができ、出力するデータのビットレートを容易に制御できると共に、復号後の画像の主観画質を良好とすることができる。
本発明の第2の側面においては、ビットプレーンに分解され、ビットプレーンが、ビット位置が最上位のビットプレーンから所定ビット位置のビットプレーンに向けて順次、供給される、画像データに基づくデータがビットプレーン毎に所定に符号化された符号化データに対してビットプレーンの供給順に従いビットプレーン毎の符号が復号されるようにしているため、画質に与える影響が大きいデータが選択的に供給された符号化データを復号することができ、復号後の画像において良好な主観画質を得ることができる。
この発明は、上述したように、画像データに基づくデータをビットプレーンに分解し、ビットプレーンに分解されたデータを、ビット位置が最上位のビットプレーンから所定ビット位置に対応するビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力するようにしている。そのため、出力するデータのビットレートを容易に制御できるという効果がある。また、画質に与える影響が大きいデータを選択的に出力することができるので、復号後の画像の主観画質を良好とすることができる効果がある。
10 スイッチ部, 11 フィールド遅延部, 12 加算器, 13 減算器, 14 イントラ符号化部, 15 イントラ符号化部, 16 レート制御部, 17 符号化ストリーム合成部, 18 加減算器, 20 符号化ストリーム分解部, 21 イントラ復号部, 22 イントラ復号部, 23 加算器, 24 減算器, 26 フィールド遅延部, 27 スイッチ部, 28 加減算器, 32 ウェーブレット変換部, 33 量子化部, 34 ビットプレーン分解部, 35 エントロピ符号化部, 36 符号量制御部, 37 符号量加算部, 40 エントロピ復号部, 41 逆量子化部,42 ウェーブレット逆変換部, 50 イントラ符号化部, 60 イントラ復号部
図1は、この発明の実施の一形態に適用可能な一例の画像符号化装置の構成を示す。図1の例では、画像符号化装置は、スイッチ部10、フィールド遅延部11、加算器12、減算器13、イントラネット符号化部14およびイントラ符号化部15、レート制御部16、ならびに、符号化ストリーム合成部17を有する。なお、以下において、加算器12および減算器13をまとめて加減算器18と称することもある。
インタレース走査による動画像データがスイッチ部10の端子10inに入力される。スイッチ部10は、入力された画像データのフィールドタイミング毎に選択出力端10oddおよび選択出力端10evenが切り換えられるようになっている。
ここで、インタレース走査による動画像データについて、概略的に説明する。図2に概略的に示されるように、インタレース走査によれば、1フレームの画像のラインを1ラインおきに間引いて走査した2枚の画像を、1フレーム時間内に交互に表示することで、動画像を構成する。すなわち、インタレース走査では、それぞれライン数が1フレームの画像の略半分とされた2フィールドの画像を用い、1フレーム時間の半分の時間でフィールド画像を伝送する。以下では、1フレームの画像における上端のラインを第1ラインとするとき、奇数番目のラインからなるフィールドを奇数フィールド、偶数番目のラインからなるフィールドを偶数フィールドと呼ぶ。
一例として、HDTV(High Definition Television)に適用される、フレーム周波数が30Hz(29.97Hz)、1920画素×1080ライン、インタレース走査(1080Iと称される)による動画像データは、それぞれ1920画素×540ラインの奇数フィールドおよび偶数フィールドを、フィールド周波数60Hz(59.94Hz)で交互に伝送してなる。
スイッチ部10は、入力された動画像データの奇数フィールドの期間は、選択出力端10oddが選択され、偶数フィールドの期間は、選択出力端10evenが選択されるように制御される。選択出力端10oddの出力は、フィールド遅延部11に供給される。フィールド遅延部11は、供給された奇数フィールドの画像データを、1フィールド分遅延させて出力する。
例えば、フィールド遅延部11は、バッファメモリを有し、供給された奇数フィールドの画像データをバッファメモリに一旦格納する。そして、バッファメモリに格納された奇数フィールドの画像データを、偶数フィールドのタイミングで読み出し出力する。
フィールド遅延部11の出力は、加算器12および減算器13にそれぞれ供給される。また、スイッチ部10の選択出力端10evenの出力も、加算器12および減算器13にそれぞれ供給される。上述したように、奇数フィールドの画像データがフィールド遅延部11で1フィールド分遅延されているので、加算器12および減算器13には、同一フレームを構成する奇数フィールドと偶数フィールドとが同じタイミングでそれぞれ供給されることになる。
加算器12は、供給された奇数フィールドの画像データと、偶数フィールドの画像データとを加算する。同様に、減算器13は、供給された奇数フィールドの画像データと、偶数フィールドの画像データとの間で減算処理を行う。この加算器12および減算器13の加算処理および減算処理は、画素毎になされ、奇数フィールドおよび偶数フィールドの対応するラインがそれぞれ加算および減算される。
加算器12による加算結果の加算画像データは、イントラ符号化部14に供給される。また、減算器13による減算結果の減算画像データは、イントラ符号化部15に供給される。イントラ符号化部14およびイントラ符号化部15は、それぞれレート制御部16に符号化ビットレートを制御されて、供給された加算または減算画像データに対して1フィールド内で符号が完結するイントラ符号化を施す。
イントラ符号化部14およびイントラ符号化部15に適用可能な符号化方式は、1フィールド内で符号が完結する符号化方式であれば、特に種類を問わない。例えば、DCT(Discrete Cosine Transform)を用いて画像データの圧縮符号化を行うJPEG(Joint Photographic Experts Group)方式や、ウェーブレット変換を用いて画像データの圧縮符号化を施すJPEG2000方式を、イントラ符号化部14およびイントラ符号化部15に適用することができる。
イントラ符号化部14およびイントラ符号化部15で圧縮符号化された加算画像データによる符号化データ(以下、加算画像符号化データ)と、減算画像データによる符号化データ(以下、減算画像符号化データ)は、それぞれ符号化ストリーム合成部17に供給され、1本の符号化ストリームに合成されて出力される。
符号化ストリーム合成部17におけるデータの合成方法は、様々に考えられる。例えば、イントラ符号化部14およびイントラ符号化部15の出力を、それぞれ所定のデータブロック単位でパケッタイズし、時分割で出力することが考えられる。この場合、パケットのそれぞれには、ヘッダ情報として、パケットのペイロードに格納されるデータを識別するための識別情報が付加される。
上述のように、奇数フィールドおよび偶数フィールドの画像データに対して加算処理および減算処理を行うことで、画像データのダイナミックレンジを2倍とすることができる。このとき、単純にダイナミックレンジを2倍にするような処理を行うと、圧縮符号化した符号化データのデータ量が多くなってしまう。そこで、加算器12の出力と、減算器13の出力とのバランスを所定に制御することで、符号化後のデータ量を抑えることができる。
すなわち、加算処理は、2フィールドの平均を求める処理であると考えることができ、また、減算処理は、2フィールド間の差分を求める処理である。加算器12の加算結果と、減算器13の減算結果との符号量の特徴について図3を参照して説明する。なお、図3において、縦軸は符号量を示し、横軸は奇数フィールドおよび偶数フィールド間での動き量を示す。例えば奇数フィールドと偶数フィールドとが全く同じ画像であれば、動き量が0となり、奇数フィールドおよび偶数フィールドが例えばそれぞれ画素単位のランダムノイズのような画像であれば、動き量が最大に近くなる。
図3に例示されるように、動き量が0、すなわち、奇数フィールドと偶数フィールドとが同一データであれば、減算処理の結果は、0となる。また、動き量が大きくなるに連れ、符号量はある一定値に収束する傾向にある。そこで、加算器12の加算結果に対する圧縮符号化と、減算器13の減算結果に対する圧縮符号化を所定に制御することで、復号後の画質を良好に保ちつつ、符号化データのデータ量を抑えることが可能となる。例えば、レート制御部16で、加算結果に対するイントラ符号化部14の目標符号量と、減算結果に対するイントラ符号化部15の目標符号量とをそれぞれ設定する。イントラ符号化部14およびイントラ符号化部15において、符号化データの符号量が目標符号量になるように、符号化処理を制御する。
図4は、図1の画像符号化装置に対応する画像復号装置の一例の構成を示す。この画像復号装置は、符号化ストリーム分解部20、イントラ復号部21およびイントラ復号部22、加算器23、減算器24、除算部25Aおよび除算部25B、フィールド遅延部26、ならびに、スイッチ部27とを有する。なお、以下において、加算器23および減算器24をまとめて加減算器28と称することもある。
符号化ストリーム分解部20に対して、上述の図1で説明した画像符号化装置の符号化ストリーム合成部17から出力された符号化ストリームが供給される。符号化ストリーム分解部20は、供給された符号化ストリームを、加算画像符号化データと、減算画像符号化データとに分解する。
例えば、符号化ストリーム合成部17において、加算画像符号化データと減算画像符号化データとがそれぞれパケッタイズされて時分割で出力されている場合には、パケットのヘッダ情報などを参照して符号化データの振り分けを行い、符号化ストリームを分解する。
符号化ストリーム分解部20で分解された加算画像符号化データと、減算画像符号化データのうち一方がイントラ復号部21に供給され、他方がイントラ復号部22に供給される。以下では、説明のため、加算画像符号化データがイントラ復号部21供給され、減算画像符号化データがイントラ復号部22に供給されるものとする。
イントラ復号部21およびイントラ復号部22のそれぞれは、供給された符号化データに対して所定に復号処理を施し、復号された画像データを出力する。イントラ復号部21およびイントラ復号部22の復号出力は、一方が復号された加算画像データとなり、他方が復号された減算画像データとなる。そのため、イントラ復号部21およびイントラ復号部22の出力は、それぞれ加算器23および減算器24に供給され、互いに加算および減算処理され、さらに、それぞれ除算部25Aおよび除算部25Bに供給されて2で除される。その結果、除算部25Aおよび除算部25Bからは、復号された奇数フィールドおよび偶数フィールドの画像データがそれぞれ出力される。
すなわち、上述の画像符号化装置の処理において、奇数フィールドの画像データをa、偶数フィールドの画像データをbとすると、加算器12から出力される加算画像データmおよび減算器13から出力される減算画像データnは、以下の式(1)および式(2)にそれぞれ示すようになる。
m=a+b ・・・(1)
n=a−b ・・・(2)
n=a−b ・・・(2)
これら加算画像データmおよび減算画像データnがイントラ符号化部14およびイントラ符号化部15でそれぞれ符号化される。
一方、画像復号装置においては、例えば符号化された加算画像データmがイントラ復号部21で復号されて、データ復号された加算画像データm'(=a'+b')が得られ、符号化された減算画像データnがイントラ復号部22で復号されて、復号された減算画像データn'(=a'−b')が得られる。これにより、加算器23の加算結果および減算器24の減算結果は、次式(3)および式(4)にそれぞれ示すようになる。
m'+n'=(a'+b')+(a'−b')=2a' ・・・(3)
m'−n'=(a'+b')−(a'−b')=2b' ・・・(4)
m'−n'=(a'+b')−(a'−b')=2b' ・・・(4)
したがって、加算器23および減算器24の出力をそれぞれ2で除することで、奇数フィールドの復号された画像データa'および偶数フィールドの復号された画像データb'を抽出することができる。
除算部25Aから出力された、奇数フィールドの復号された画像データがスイッチ部27の選択入力端27oddに供給される。一方、除算部25Bから出力された、偶数フィールドの復号された画像データは、フィールド遅延部26で1フィールドタイミング分遅延され、スイッチ部27の選択入力端27evenに供給される。フィールド遅延部26は、例えば供給された偶数フィールドの画像データを格納するバッファメモリを有し、バッファメモリに格納された画像データを読み出すタイミングを制御することで、1フィールド分の遅延を実現することができる。
スイッチ部27は、フィールドタイミング毎に選択入力端27oddおよび選択入力端27evenを切り換えられるようになっている。選択入力端27oddおよび選択入力端27evenに供給された奇数フィールドおよび偶数フィールドの画像データは、スイッチ部27の切換制御により、奇数フィールドおよび偶数フィールドがフィールドのタイミングに基づき交互に切り換えられ、奇数フィールドと偶数フィールドとが正しいタイミングに並び替えられて、スイッチ部27の出力端27outから出力される。
次に、この発明の実施の一形態による画像符号化装置に適用可能な符号化方式について説明する。上述したように、図1に示す画像符号化装置におけるイントラ符号化部14およびイントラ符号化部15に適用可能な符号化方式は、圧縮符号化が1フィールドの画像データ内で完結すれば、種類を問わない。ここでは、このような符号化方式として、ウェーブレット変換を用いた方法をイントラ符号化部14およびイントラ符号化部15に適用した例について説明する。
図5は、この実施の一形態による画像符号化装置に適用可能な、ウェーブレット変換を用いて画像データを符号化するようにしたイントラ符号化部14の一例の構成を示す。なお、イントラ符号化部14およびイントラ符号化部15は、同一の構成で実現できるため、以下では、煩雑さを避けるため、イントラ符号化部14およびイントラ符号化部15を、イントラ符号化部14で代表させて説明する。
図5に一例が示されるイントラ符号化部14は、ウェーブレット変換部32、量子化部33、ビットプレーン分解部34、エントロピ符号化部35、符号量制御部36および符号量加算部37を有する。加算器12から出力された画像データがウェーブレット変換部32に供給される。ウェーブレット変換部32では、供給された画像データに対してウェーブレット変換を施す。
ここで、ウェーブレット変換について概略的に説明する。画像データに対するウェーブレット変換では、図6に概略的に示されるように、画像データを空間周波数の高い帯域と低い帯域とに分割する処理を、分割の結果得られる空間周波数の低い帯域のデータに対して再帰的に繰り返す。こうして、空間周波数の低い帯域のデータをより小さな領域に追い込んでいくことで、効率的な圧縮符号化を可能とする。
なお、図6は、画像データの最低域成分領域に対する低域成分の領域Lおよび高域成分の領域Hへの分割処理を3回、繰り返し、分割レベル=3とした場合の例である。図6において、"L"および"H"は、それぞれ低域成分および高域成分を表し、"L"および"H"の順序は、前側が横方向に分割した結果の帯域を示し、後側が縦方向に分割した結果の帯域を示す。また、"L"および"H"の前の数字は、その領域の分割レベルを示す。
また、図6の例から分かるように、画面の右下の領域から左上の領域にかけて段階的に処理がなされ、低域成分が追い込まれていく。すなわち、図6の例では、画面の右下の領域が最も低域成分の少ない(高域成分が最も多く含まれる)領域3HHとされる、画面が4分割された左上の領域は、さらに4分割され、この4分割された領域のうち左上の領域がさらに4分割される。最も左上隅の領域は、最も低域成分を多く含む領域0LLとされる。
低域成分に対して繰り返し変換および分割を行うのは、画像のエネルギーが低域成分に集中しているためである。このことは、図7のAに一例が示される分割レベル=1の状態から、図7のBに一例が示される分割レベル=3の状態のように分割レベルを進めていくに従って、図7のBに示されるようにしてサブバンドが形成されていくことからも、理解される。例えば、図6におけるウェーブレット変換の分割レベルは3であり、この結果、10個のサブバンドが形成されている。
ウェーブレット変換部32は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクを用いて、上述のような処理を行う。なお、ディジタルフィルタは、通常、複数タップ長のインパルス応答すなわちフィルタ係数を持っているため、フィルタ処理を行えるだけの入力画像データまたは係数データを予めバッファリングしておく必要がある。また、ウェーブレット変換を多段にわたって行う場合も同様に、前段で生成したウェーブレット変換係数を、フィルタ処理が行える数だけバッファリングしておく必要がある。
例えば、ウェーブレット変換部32に入力された画像データは、バッファに一時的に溜め込まれる。ウェーブレット変換部32は、バッファに溜め込まれた画像データに対してウェーブレット変換を施す。すなわち、ウェーブレット変換部32は、バッファから画像データを読み出してフィルタ処理を施して低域成分および高域成分の係数のデータを生成し、生成された係数データを再びバッファに格納する。ウェーブレット変換部32は、バッファに格納された係数データを読み出し、読み出した係数データに対して分析フィルタによるフィルタ処理を施して、高域成分および低域成分の係数のデータをさらに生成する。生成された係数データは、さらに再びバッファに格納される。
ウェーブレット変換部32は、この処理を繰り返して分解レベルが所定レベルに達したら、バッファから係数データを読み出して出力する。
なお、図6の例では、説明のためウェーブレット変換の分解レベルを分解レベル=3としたが、これはこの例に限られず、さらに分解レベルを上げることができる。分解レベルを上げるほど、より高圧縮率を実現することができる。例えば、一般的には、ウェーブレット変換においては、分解レベル=4までフィルタ処理が繰り返される。
ウェーブレット変換部32から出力された係数データは、量子化部33に供給され、量子化される。量子化部33による係数データの量子化方法としては、例えば、JPEG2000で採用されているスカラ量子化を用いることができる。スカラ量子化では、次式(5)に一例が示されるように、ウェーブレット変換で得られたウェーブレット変換係数Wを、量子化ステップサイズΔで除算した値を量子化係数値qとしている。
q=W/Δ ・・・(5)
量子化部33から出力された量子化係数qは、ビットプレーン分解部34に供給され、ビットプレーンに分解される。ビットプレーンは、図8に概略的に示されるように、ビット表現された複数のデータの同一ビット位置からなる平面である。図8のBに一例が示されるように、ビットプレーンを例えば、LSB(Least Significant Bit)からMSB(Most Significant Bit)に向けて積み重ねることで、複数のデータについて、同一ビット位置のビット値を容易に取得することができる。
例えば、16個の量子化係数qを考えた場合、図8のAに一例が示されるように、4行×4列のマトリクス状に並べられた16個の係数について、ビット位置毎にビットプレーンが形成される(図8のB)。
この図8の例では、16個の係数のうち絶対値が最大のものは、値が10進表記で「13」であって、ビット表現すなわち2進表記で「1101」となり、4桁の数値である。したがって、この係数の絶対値のビットプレーンは、図8のBに示されるように、4枚のビットプレーンから構成される。すなわち、最もLSB側は、ビット位置が20のビットプレーンであって、その上がビット位置21のビットプレーン、さらにその上がビット位置22のビットプレーンとされ、最もMSB側は、ビット位置23のビットプレーンである。
各ビットプレーンの要素は、全て0または1の値を取る。係数は、負の値も取り得るので、係数の符号を表現するためのビットプレーンが別途、用意される。図8のAの例では、4行×4列からなるビットプレーンの右上隅の係数が値「−6」(10進表記)であって、負の値とされ、他の値は0または正の値となっている。この場合の符号のビットプレーンの例を図8のCに示す。データの位置に対応して、正符号「+」、負符号「−」および「0」の何れかの値とされる。
ビットプレーン分解部34は、供給された量子化係数qを、それぞれビットプレーンに分解する。このとき、例えば1フィールド分の画像データを複数のブロックに分割し、ビットプレーンの分割をブロック毎に行うと、後のエントロピ符号化などの処理をきめ細かく制御でき、好ましい。
ビットプレーン分解部34でビットプレーンに分解された量子化係数qは、エントロピ符号化部35に供給される。エントロピ符号化部35では、供給された量子化係数qをビットプレーン毎に、例えばハフマン符号化や算術符号化といった所定のエントロピ符号化方式で符号化し、符号化ストリームとして出力する。エントロピ符号化部35から出力された符号化ストリームは、符号量加算部37を介してイントラ符号化部14から出力される。
なお、ハフマン符号化は、値の出現頻度に合わせて予め作成したハフマン符号化テーブルを参照して、符号を生成する符号化方式であって、MPEGやJPEGによる圧縮符号化方式に採用されている。また、算術符号化は、ITU−T(通信規格標準化)勧告H.264やJPEG2000による圧縮符号化方式に採用されている。
符号量加算部37は、供給された符号化ストリームの符号量を1フィールド内で累積しながら、累積符号量を符号量制御部36に供給する。符号量制御部36は、供給された累積符号量に基づき、1フィールドの符号量が目標符号量に達した時点で、エントロピ符号化部35に対してエントロピ符号化を停止させるような制御信号を出力する。この制御信号に応じて、エントロピ符号化部35において、供給される量子化係数qに対するエントロピ符号化処理が停止される。
次に、エントロピ符号化部35、符号量制御部36、および符号量加算部37において行われる符号量制御について説明する。この発明の実施の一形態では、ビットプレーンの構造を利用して符号量の制御を行う。先ず、図9を用いて、ビットプレーンの構造を利用した符号量制御について、概念的に説明する。
図9において、縦軸はビット位置を示し、下側から上側に向けてLSBからMSBとなっている。横軸は、矩形ブロックを示す。上述の図6のようにサブバンドが形成された画像データが、ビット位置が対応するビットからなるビットプレーンに分解される。それと共に、サブバンドが形成された画像データは、図10に一例が示されるように、さらにブロックに分割される。すなわち、画像データは、ビットプレーンに分解されると共に、ブロックBlock0、Block1、・・・、Blocknに分解される。したがって、分割されたブロックBlock0、Block1、・・・、Blocknそれぞれは、ビットプレーン構造を有する。
図9に示す各ブロックは、実際には、複数のデータからなるビットプレーンを表している。図9では、説明のため、各ブロックを1のデータで代表させて示し、以下では適宜、各ブロックのデータを当該1のデータで代表させて説明する。これは、後述する同様の図(図11、図18および図25)でも共通である。
エントロピ符号化は、ビットプレーン毎に行われる。したがって、MSBからLSBの順番でビットプレーン毎に符号を選択して符号量の累積を行い、累積された符号量が目標値に達した時点でエントロピ符号化を停止させるように制御する。すなわち、MSBに近いビットプレーンほど、復号した際の画像データの画質に対する影響が大きい。そこで、図9に矢印で例示されるように、最もMSB側のビットプレーンからエントロピ符号化を行い、以下、LSB側に向けて順次、ビットプレーンのエントロピ符号化を行う。
図9の例では、ブロックBlock0が画像データ全体で最もMSB側のビットプレーンを有し、ブロックBlock1がブロックBlock1よりもビット位置が2桁低いビットプレーンまでしか持たない。ブロックBlock1のさらに隣のブロックは、ブロックBlock0よりビット位置が1桁低いビットプレーンまでを有する。また、ブロックBlocknは、ブロックBlock0より4桁以上低いビット位置までのビットプレーンまでしか持たない。
エントロピ符号化は、画像データ全体のビットプレーン毎に行われる。そのため、図9の例においては、ビット位置がMSBのビットプレーンから、順次、LSB側に向けてビットプレーン毎に符号化がなされる。これをブロック単位で見ると、図9中の各ブロックのビットプレーン(n)が、ビットプレーン(1)、ビットプレーン(2)、ビットプレーン(3)、・・・、ビットプレーン(9)、・・・の順番にエントロピ符号化されていく。エントロピ符号化された符号化データの符号量を累積し、符号量の累積値が所定の目標符号量に達したら、エントロピ符号化を停止するように制御する。この図9の例では、ビットプレーン(9)をエントロピ符号化した時点で符号量が目標符号量に達したとして、エントロピ符号化が停止されている。
符号量の制御を、符号化されたデータの符号量のに基づきエントロピ符号化を停止することで行うため、画像符号化装置では、極めて小さい負担で符号量制御を行うことができる。
なお、図9において、空白領域は、ゼロ・ビットプレーンと称され、ビット値が全て0であるので、エントロピ符号化を行う必要が無い。また、上述の図10では、エントロピ符号化を矩形ブロック単位で行うように説明したが、これはこの例に限定されず、例えばエントロピ符号化をライン単位で行うようにしてもよい。ライン単位のエントロピ符号化の詳細については後述する。
MSBより所定以上低位のビット位置のビットプレーン(図9の例では、MSBより4桁以上低いビット位置以下のビットプレーン)は、復号後の画質に与える影響が小さいとして、エントロピ符号化を行わないように制御することができる。
このビットプレーン構造を利用した符号量制御を、この実施の一形態による、図1を用いて説明した画像符号化装置に適用する例について説明する。既に説明したように、図1に示す画像符号化装置では、奇数フィールドおよび偶数フィールドの画像データの加算結果および減算結果を、イントラ符号化部14およびイントラ符号化部15でそれぞれエントロピ符号化するようにしている。
そこで、この実施の一形態では、図11に例示されるように、奇数フィールドおよび偶数フィールドの画像データの加算結果および減算結果それぞれについてビットプレーン分解を行う。そして、加算結果に基づくビットプレーンと、減算結果に基づくビットプレーンとのそれぞれについて、MSB側からLSB側に向けて、ビットプレーン毎にエントロピ符号化を行う。加算結果および減算結果のそれぞれに対して符号量制御を適切に行うことが可能とされ、復号後の画像データの画質を向上させることができる。
図11のAは、加算器12の加算結果に基づくビットプレーン(以下、加算画像用ビットプレーンと呼ぶ)に対して、ゼロ・ビットプレーンを除くMSB側のビットプレーンからLSB側のビットプレーンに向けてエントロピ符号化を行いながら、符号化ストリームを生成する例を示す。同様に、図11のBは、減算器13の減算結果に基づくビットプレーン(以下、減算画像用ビットプレーンと呼ぶ)に対して、ゼロ・ビットプレーンを除くMSB側のビットプレーンからLSB側のビットプレーンに向けてエントロピ符号化を行いながら、符号化ストリームを生成する例を示す。
なお、この図11においても、上述した図9の例と同様に、画像データが矩形のブロックBlock0、Block1、・・・、Blocknに分割されたブロック毎にエントロピ符号化がなされる。勿論、エントロピ符号化の単位は、矩形ブロック単位に限らず、例えばライン単位としてもよい。
ビットプレーン分解は、例えばデータをメモリ上にビット単位でマッピングすることで実現できる。一例として、図11のAおよび図11のBに示す加算画像用ビットプレーンおよび減算画像用ビットプレーンについて、各ビット位置のビットプレーンに対して、メモリ上のアドレスをそれぞれ対応させる。ビットプレーン分解部34は、量子化部33から出力された量子化係数qをビット位置毎のビット値に分解し、分解されたビット値のそれぞれをメモリ上のビット位置が対応するビットプレーンに所定に書き込む。エントロピ符号化部35は、メモリに書き込まれた量子化係数qを、MSB側からビットプレーン毎に読み出し、エントロピ符号化する。符号量制御部36からエントロピ符号化を停止するような制御信号が供給されたら、メモリからの量子化係数qの読み出しを、ビットプレーン単位で停止させる。
図1で説明したこの実施の一形態による画像符号化装置では、加算器12の加算結果に基づく符号化を行うイントラ符号化部14と、減算器13の減算結果に基づく符号化を行うイントラ符号化部15とがそれぞれ設けられ、レート制御部16によりイントラ符号化部14およびイントラ符号化部15それぞれの符号量を制御することができるようにされている。
例えば、レート制御部16は、イントラ符号化部14およびイントラ符号化部15それぞれが有する符号量制御部36と、対応する符号量加算部37から供給された累積符号量の情報をやりとりし、加算画像符号化データの累積符号量と、減算画像符号化データの累積符号量とをそれぞれ制御するように、イントラ符号化部14およびイントラ符号化部15がそれぞれ有する符号量制御部36に対して、目標符号量を設定する。このとき、レート制御部16は、イントラ符号化部14が有する符号量制御部36と、イントラ符号化部15が有する符号量制御部36とのそれぞれに、個別に目標符号量を設定することができる。
図11の例では、図11のAに示される加算画像用ビットプレーンにおいては、ブロックBlocknのビットプレーン(10)までエントロピ符号化した時点で、加算結果に対する目標符号量に達したことが示されている。一方、図11のBに示される減算画像用ビットプレーンにおいては、ブロックBlock1のビットプレーン(9)までエントロピ符号化した時点で、減算結果に対する目標符号量に達したことが示されている。
なお、図11のBにおいて、ブロックBlock1のビットプレーン(9)に対応する他のブロックのビットプレーンは、係数が全て0となっていることが示されている。
符号化データは、例えば、エントロピ符号化がなされた順にビットプレーン毎に出力される。例えば、図11のAに例示される加算画像用ビットプレーンの符号化データは、ブロック単位のビットプレーンで見た場合、ビットプレーン(1)、ビットプレーン(2)、・・・、ビットプレーン(10)の順に伝送される。このとき、各ビットプレーンの符号化データに対して、加算画像用または減算画像用何れのビットプレーンの符号化データかを示す情報、ブロックを識別する情報、ビットプレーンのビット位置を示す情報などといった、ビットプレーンを識別するための識別情報を所定に付加するとよい。
図12は、図4を用いて説明した、この発明の実施の一形態による画像復号装置に適用可能なイントラ復号部21の一例の構成を示す。なお、イントラ復号部21およびイントラ復号部22は、同一の構成で実現できるため、以下では、煩雑さを避けるため、イントラ復号部21およびイントラ復号部22を、イントラ復号部21で代表させて説明する。
イントラ復号部21は、エントロピ復号部40、逆量子化部41およびウェーブレット逆変換部42を有する。図4の符号化ストリーム分解部20から出力された符号化データがエントロピ復号部40に供給される。エントロピ復号部40は、図5を用いて説明したエントロピ符号化部35のエントロピ符号化方式に対応したエントロピ復号方式により、供給された符号化データを復号する。復号の結果、量子化係数q’が生成される。
エントロピ復号部40で生成された量子化係数q’は、逆量子化部41に供給される。逆量子化部41は、以下の式(6)に示すような、上述した式(5)と逆の処理を量子化係数q’に施すことにより、ウェーブレット変換係数W’を得る。
W’=q’×Δ ・・・(6)
逆量子化部41で得られたウェーブレット変換係数W’は、ウェーブレット逆変換部42に供給される。ウェーブレット逆変換部42では、供給されたウェーブレット変換係数W’に対して、図5を用いて説明したウェーブレット変換部32によるウェーブレット変換方式に対応したウェーブレット逆変換処理を施し、ベースバンドの画像データを生成する。このベースバンドの画像データが復号画像データとして出力される。
このように、この発明の実施の一形態では、奇数フィールドおよび偶数フィールドの加算結果および減算結果に対して、それぞれ目標符号量を設定することができると共に、設定された目標符号量に基づき、当該加算結果および減算結果に対して、復号後の画質により影響が強い係数から順に、エントロピ符号化を行うことができる。そのため、画像符号化装置から出力される符号化ストリームのデータレートを抑えつつ、より高画質の復号画像データを得ることが可能な圧縮符号化を実現することが可能となる。
また、符号化が、奇数フィールドおよび偶数フィールドに対して加算処理および減算処理された加算画像データおよび減算画像データのそれぞれで符号が化完結するイントラ符号化を用いてなされているため、符号化データを後に編集する際に、極めて操作性が良好にできる。
以上のような、画像データを符号化する画像符号化処理、および、復号画像データを得る画像復号処理の流れについて説明する。
最初に、図13のフローチャートを参照して、図1の画像符号化装置による画像符号化処理の流れの例を説明する。
画像符号化処理が開始されると、ステップS1において、スイッチ部10は、1フレーム分の画像データ入力を受け付ける。画像データ入力を受け付けると、スイッチ部10は、その画像データを奇数フィールドと偶数フィールドに分離する。
ステップS2において、加減算器18の加算器12は、フィールド遅延部11を介して取得した奇数フィールドと、フィールド遅延部11を介さずに取得した偶数フィールドとの加算結果を算出する。レート制御部16は、ステップS3において、その加算結果を符号化するための目標符号量を設定する。ステップS4において、イントラ符号化部14は、その目標符号量を用いて、加算結果を符号化する。
また、ステップS5において、加減算器18の減算器13は、フィールド遅延部11を介して取得した奇数フィールドから、フィールド遅延部11を介さずに取得した偶数フィールドを減算した減算結果を算出する。レート制御部16は、ステップS6において、その減算結果を符号化するための目標符号量を設定する。ステップS7において、イントラ符号化部15は、その目標符号量を用いて、減算結果を符号化する。
以上のように符号化されて得られた加算画像符号化データと、減算画像符号化データは、上述したように、符号化ストリーム合成部17により、1本の符号化ストリームに合成されて出力される。
ステップS8において、スイッチ部10は、次のフレームの画像データ入力を受け付けるか否かを判定する。まだ、画像データ入力が供給され続けており、画像データ入力を受け付けると判定された場合、処理はステップS1に戻され、次のフレームに対してステップS1以降の処理が繰り返される。また、ステップS8において、スイッチ部10が画像データ入力を受け付けないと判定された場合、画像符号化処理は終了される。
次に、図14のフローチャートを参照して、図4の画像復号装置による画像復号処理の流れの例を説明する。
画像復号処理が開始されると、ステップS21において、符号化ストリーム分解部20は、符号化ストリームを受け付ける。符号化ストリームを受け付けると、符号化ストリーム分解部20は、その符号化ストリームを、加算画像符号化データと、減算画像符号化データに分解する。
ステップS22において、イントラ復号部21は、加算結果の符号化ストリームである加算画像符号化データを復号する。ステップS23において、イントラ復号部22は、減算結果の符号化ストリームである減算画像符号化データを復号する。
加減算器28、並びに、除算部25Aおよび除算部25Bは、ステップS24において、イントラ復号部21およびイントラ復号部22によるデコード結果の加減算、および除算を行い、ベースバンドの奇数フィールドの画像データと、ベースバンドの偶数フィールドの画像データを生成する。これらの画像データは、スイッチ部27により交互に並べられてベースバンドの復号画像データとして出力される。
ステップS25において、符号化ストリーム分解部20は、次の符号化ストリームを受け付けるか否かを判定する。まだ、符号化ストリームが供給され続けており、次の符号化ストリームを受け付けると判定された場合、処理はステップS21に戻され、次の符号化ストリームに対してステップS21以降の処理が繰り返される。また、ステップS25において、符号化ストリーム分解部20が符号化ストリームを受け付けないと判定された場合、画像復号処理は終了される。
次に、本発明の実施の形態の、他の例について説明する。図15は、画像符号化装置の構成例を示すブロック図である。なお、この図15において、上述の図1と共通する部分には同一の符号を付し、詳細な説明を省略する。
図15に示される画像符号化装置は、図1を参照して説明した画像符号化装置のイントラ符号化部14およびイントラ符号化部15の代わりに、イントラ符号化部50が1つのみ設けられており、このイントラ符号化部50により、奇数フィールドおよび偶数フィールドの加算器12による加算結果と、減算器13による減算結果とを統合的に符号化するようになされている。イントラ符号化部50により符号化される符号化ストリームの符号量は、図1のレート制御部16に対応するレート制御部51により制御される。
インタレース走査による動画像データがスイッチ部10の端子10inに入力され、フィールドタイミング毎に選択出力端10oddおよび選択出力端10evenが切り換えられ、奇数フィールドおよび偶数フィールドが振り分けられる。選択出力端10oddから出力された奇数フィールドの画像データは、フィールド遅延部11で1フィールドタイミング分遅延され、加算器12および減算器13にそれぞれ供給される。また、選択出力端10evenから出力された偶数フィールドの画像データが加算器12および減算器13にそれぞれ供給される。
加算器12で奇数フィールドおよび偶数フィールドの画像データが加算され、加算結果がイントラ符号化部50に供給される。また、減算器13で奇数フィールドおよび減算フィールドの画像データが減算され、減算結果がイントラ符号化部50に供給される。
イントラ符号化部50は、レート制御部51に符号化ビットレートを制御されて、供給された、加算器12の加算結果による画像データと、減算器13の減算結果による画像データとに対して、1フィールド内で符号化完結するイントラ符号化を施す。符号化は、加算画像データと、減算画像データとに対して統合的になされる。イントラ符号化された符号化ストリームがイントラ符号化部50から出力される。
図16は、図15の画像符号化装置に対応する画像復号装置の構成例を示すブロック図である。本実施の形態による画像復号装置は、図4を用いて説明した画像復号装置と基本的に同様の構成を有するが、図4の符号化ストリーム分解部20、イントラ復号部21、およびイントラ復号部22の代わりに、1つのイントラ復号部60を有する。なお、この図16において、上述の図4と共通する部分には同一の符号を付し、詳細な説明を省略する。
イントラ復号部60に対して、図15を参照して説明した画像符号化装置から出力された符号化ストリームが供給される。イントラ復号部60は、供給された符号化ストリームに対して所定に復号処理を施し、奇数フィールドと偶数フィールドとの加算結果に基づく加算復号画像データと、減算結果に基づく減算復号画像データとを出力する。加算復号画像データおよび減算復号画像データは、それぞれ、加減算器28の加算器23と減算器24の両方に供給される。
加算器23は、加算復号画像データと減算復号画像データとの加算を行う。減算器24は、加算復号画像データより減算復号画像データを減算する。図4の画像復号装置の場合と同様に、上述の式(1)乃至式(4)に従い、加算器23および減算器24、ならびに、除算部25Aおよび除算部25Bの演算により、復号された奇数フィールドの画像データと、復号された偶数フィールドの画像データが得られる。
除算部25Aの出力がスイッチ部27の選択入力端27oddに入力され、除算部25Bの出力がフィールド遅延部26で1フィールドタイミングだけ遅延されてスイッチ部27の選択入力端27evenに入力される。スイッチ部27において、選択入力端27oddおよび選択入力端27evenがフィールドタイミング毎に切り換えられて、奇数フィールドの復号画像データと偶数フィールドの復号画像データとが1本の画像データとして出力される。
図17は、図15を参照して説明した画像符号化装置に適用可能なイントラ符号化部50の詳細な構成の例を示すブロック図である。このように、イントラ符号化部50は、図5を参照して説明したイントラ符号化部14と基本的に同様の構成を有するが、イントラ符号化部14のウェーブレット変換部32および量子化部33を、加算器12および減算器13の出力のそれぞれに対応して設けている。なお、図17において、上述の図5と共通する部分には同一の符号を付し、詳細な説明を省略する。
図17において、ウェーブレット変換部32Aおよび量子化部33Aは、加算器12から出力される加算画像データに対してウェーブレット変換およびウェーブレット変換係数Wに対する量子化を行う。同様に、ウェーブレット変換部32Bおよび量子化部33Bは、減算器13から出力される減算画像データに対してウェーブレット変換およびウェーブレット変換係数Wに対する量子化を行う。
量子化部33Aおよび量子化部33Bで加算画像および減算画像符号化データが量子化された量子化係数qが、ビットプレーン分解部61に供給される。ビットプレーン分解部61は、図5のビットプレーン分解部34に対応し、供給された加算画像および減算画像符号化データに基づく量子化係数qを、例えばメモリ上にマッピングすることでビットプレーンに分解し、加算画像用ビットプレーンおよび減算画像用ビットプレーンを形成する。
エントロピ符号化部35は、ビットプレーン分解部61においてビットプレーンに分解されて供給される量子化係数qに対して、順次、エントロピ符号化を行う。
ここで、このエントロピ符号化部35は、イントラ符号化部50に対して入力された加算器12の出力と減算器13の出力とに対して、統合的にエントロピ符号化を行うことになる。そのため、この場合のエントロピ符号化部35は、例えば図18に一例が示されるように、加算画像用ビットプレーンと減算画像用ビットプレーンとを横断するように、ビットプレーン毎のエントロピ符号化を行う。すなわち、図18に例示されるように、ゼロ・ビットプレーンを除くMSB側のビットプレーンからLSB側に向けて、加算器12の出力に基づく量子化係数qによる矩形ブロックと、減算器13の出力に基づく量子化係数qによる矩形ブロックとを横断的にエントロピ符号化する。
エントロピ符号化された符号化データは、符号化ストリームとされて符号量加算部37を介して出力される。符号量加算部37では、供給された符号化データを累積しながら、累積符号量を符号量制御部36に供給する。符号量制御部36は、供給された累積符号量に基づき符号化データ量が目標符号化量に達した時点で、エントロピ符号化部35に対してエントロピ符号化を停止させるような制御信号を供給する。
図18の例では、加算画像用ビットプレーンと減算画像用ビットプレーンとを横断的に、MSB側からLSB側に向けてビットプレーン毎に、ブロック単位でブロック(1)、ブロック(2)、・・・の順にエントロピ符号化し、ブロック(19)まで符号化した時点で符号量が目標符号量に達したことが示されている。
符号化データは、例えば、エントロピ符号化がなされた順にビットプレーン毎に出力される。一例として、エントロピ符号化部35でエントロピ符号化された符号化データは、符号化順に、ビットプレーン毎にブロック単位で伝送される。図18の例では、ブロック単位のビットプレーンで見た場合、ビットプレーン(1)、ビットプレーン(2)、・・・、ビットプレーン(19)の順に伝送される。このとき、各ビットプレーンの符号化データに対して、加算画像用のビットプレーンの符号化データであるか、または、減算画像用のビットプレーンの符号化データであるかを示す情報、ブロックを識別する識別情報、およびビットプレーンのビット位置を示す情報などといった、ビットプレーンを識別するための識別情報を所定に付加するようにしてもよい。
図19は、図16を参照して説明した画像復号装置に適用可能なイントラ復号部60の構成例を示すブロック図である。イントラ復号部60は、エントロピ復号部40、スイッチ部70、逆量子化部41Aおよび逆量子化部41B、ならびに、ウェーブレット逆変換部42Aおよびウェーブレット逆変換部42Bを有する。
エントロピ復号部40は、図17を用いて説明したエントロピ符号化部35のエントロピ符号化方式に対応したエントロピ復号方式により、供給された符号化データのエントロピ符号を復号する。つまり、図12を参照して説明したエントロピ復号部40と同等である。このとき、エントロピ復号部40は、例えば符号化データが供給された順に、ビットプレーンをブロック単位で復号する。例えば、上述した図18を参照して説明したエントロピ符号化部35より符号化データとして供給されたビットプレーン(1)、ビットプレーン(2)、・・・、ビットプレーン(19)を順次、復号する。復号されたデータは、スイッチ部70の入力端70inに入力される。
スイッチ部70は、入力端70inに入力されたデータを、加算画像用ビットプレーンのデータと、減算画像用ビットプレーンのデータとに振り分ける。例えば、データ毎にビットプレーンを識別する識別情報が付加されていれば、スイッチ部70において、その識別情報に基づき振り分けが行われる。
スイッチ部70で振り分けられた加算画像用ビットプレーンのデータは、選択出力端70addから出力され、逆量子化部41Aに供給される。一方、スイッチ部70で振り分けられた減算画像用ビットプレーンのデータは、選択出力端70subから出力され、逆量子化部41Bに供給される。
逆量子化部41Aは、例えばバッファメモリを有し、スイッチ部70の選択出力端70addから供給された加算画像用ビットプレーンのデータを、例えば1フィールド分、蓄積する。そして、加算画像用ビットプレーンによる1フィールド分のデータがバッファメモリに蓄積されたら、逆量子化部41Aは、蓄積されたデータに対して上述の式(6)に従い逆量子化を施す。図18の例でいえば、逆量子化部41Aは、ブロック単位のビットプレーン(1)、ビットプレーン(2)、ビットプレーン(3)、ビットプレーン(7)、ビットプレーン(8)、ビットプレーン(9)、ビットプレーン(13)、ビットプレーン(14)、ビットプレーン(15)、およびビットプレーン(16)のデータが蓄積されたら、蓄積されたデータに対して逆量子化を行う。
逆量子化部41Aで逆量子化されて得られたウェーブレット変換係数Wは、ウェーブレット逆変換部42Aに供給される。ウェーブレット逆変換部42Aでは、供給されたウェーブレット変換係数Wに対して、図17を用いて説明したウェーブレット変換部32Aによるウェーブレット変換方式に対応したウェーブレット逆変換処理を施し、画像データを生成する。ここで生成される画像データは、画像符号装置における加算画像データに基づく。
逆量子化部41Bおよびウェーブレット逆変換部42Bにおける減算画像用ビットプレーンに対する処理も、上述した逆量子化部41Aおよびウェーブレット逆変換部42Aによる処理と略同一なので、煩雑さを避けるために、説明を省略する。なお、ウェーブレット逆変換部42Bで生成される画像データは、画像符号装置における減算画像データに基づく。
上述のような処理により、イントラ復号部60から、加算画像データおよび減算画像データに基づく復号画像データがそれぞれ出力される。
この実施の形態の場合、画像符号化装置においてイントラ符号化部50が1つだけあればよいので、図1の画像符号化装置に対して回路規模を小さく構成することができる。また、復号後の画質に影響が大きい量子化係数qは、よりMSB側のビットプレーンに存在することになるので、奇数フィールドおよび偶数フィールドの加算結果および減算結果のそれぞれに対する符号量の割り当てを考慮しなくても、適切な符号量制御を行うことができる。
以上のような、画像データを符号化する画像符号化処理、および、復号画像データを得る画像復号処理の流れについて説明する。
最初に、図20のフローチャートを参照して、図15の画像符号化装置による画像符号化処理の流れの例を説明する。
画像符号化処理が開始されると、ステップS41において、スイッチ部10は、1フレーム分の画像データ入力を受け付ける。画像データ入力を受け付けると、スイッチ部10は、その画像データを奇数フィールドと偶数フィールドに分離する。
ステップS42において、加減算器18の加算器12は、フィールド遅延部11を介して取得した奇数フィールドと、フィールド遅延部11を介さずに取得した偶数フィールドとの加算結果を算出する。また、ステップS43において、加減算器18の減算器13は、フィールド遅延部11を介して取得した奇数フィールドから、フィールド遅延部11を介さずに取得した偶数フィールドを減算した減算結果を算出する。
レート制御部51は、ステップS44において、加算結果および減算結果を統合的に符号化するための目標符号量を設定する。ステップS45において、イントラ符号化部50は、その目標符号量を用いて、加算結果および減算結果を統合的に符号化する。
以上のように符号化されて得られた符号化ストリームは画像符号化装置の外部に出力される。
ステップS46において、スイッチ部10は、次のフレームの画像データ入力を受け付けるか否かを判定する。まだ、画像データ入力が供給され続けており、画像データ入力を受け付けると判定された場合、処理はステップS41に戻され、次のフレームに対してステップS41以降の処理が繰り返される。また、ステップS46において、スイッチ部10が画像データ入力を受け付けないと判定された場合、画像符号化処理は終了される。
次に、図21のフローチャートを参照して、図16の画像復号装置による画像復号処理の流れの例を説明する。
画像復号処理が開始されると、ステップS61において、イントラ復号部60は、符号化ストリームを受け付ける。符号化ストリームを受け付けると、イントラ復号部60は、ステップS62において、加算結果および減算結果の符号化ストリームを復号する。
加減算器28、並びに、除算部25Aおよび除算部25Bは、ステップS63において、イントラ復号部60によるデコード結果の加減算および除算を行い、ベースバンドの奇数フィールドの画像データと、ベースバンドの偶数フィールドの画像データを生成する。これらの画像データは、スイッチ部27により交互に並べられてベースバンドの復号画像データとして出力される。
ステップS64において、イントラ復号部60は、次の符号化ストリームを受け付けるか否かを判定する。まだ、符号化ストリームが供給され続けており、次の符号化ストリームを受け付けると判定された場合、処理はステップS61に戻され、次の符号化ストリームに対してステップS61以降の処理が繰り返される。また、ステップS64において、イントラ復号部60が符号化ストリームを受け付けないと判定された場合、画像復号処理は終了される。
なお、上述した各実施の形態の画像符号化装置による画像符号化処理、および、画像復号装置による画像復号処理は、各部の動作が、例えば図示されないCPU(Central Processing Unit)により、所定のプログラムに従い制御される。プログラムは、例えば図示されないROM(Read Only Memory)に予め記憶される。これに限らず、画像符号化装置や画像復号装置を構成する各要素間でタイミング信号や制御信号を互いにやりとりして、全体として動作させることも可能である。また、画像符号化装置や画像復号装置は、コンピュータ装置上で動作するソフトウェアで実現することも可能である。
次に、この発明の実施の、さらに他の形態について説明する。この実施の形態では、ウェーブレット変換の特徴を利用して符号化ストリームを構成することで、符号化ストリームのビットレートを抑えつつ、復号後の画像の主観画質を向上させるようにしている。
図6および図7を用いて既に説明したように、ウェーブレット変換によって画像データに対して複数のサブバンドが形成される。この複数のサブバンドにおいて、画像の特性上、最低域に最もエネルギーが集中し、高域には、画像の輪郭などの成分が主に存在することがわかる(図7参照)。したがって、エントロピ符号化の際に、高域成分よりも低域成分により多くの符号量を割り当てることで、復号後の画像における主観画質が向上されることが期待できる。
すなわち、既に述べた、画像データをビットプレーンに分解し、ビットプレーン毎にブロック単位でエントロピ符号化する方法において、図22に一例が示されるように、同じビット位置のビットプレーンについては、最低域のサブバンドから最高域のサブバンドの順に符号化を行うようにすればよい。図22の例では、同一ビット位置のビットプレーンにおいて、最低域領域である領域0LLが最初にエントロピ符号化され、以降、領域1HL、領域1LH、領域1HH、領域2HL、・・・、領域3LH、領域3HHというように、最低域領域から最高域領域に向けて、順次、エントロピ符号化が行われる。
例えば、上述した図11や図18の例では、番号の小さいブロックほど低域の係数であり、番号が大きくなるに連れ、より高域の係数となる。したがって、この方法によって、低域成分から高域成分の順番に、ビットプレーン毎のエントロピ符号化を実現できる。
より具体的な例として、図23に一例が示されるように、画像データが複数のブロックに分割されている場合には、同じビット位置のビットプレーンにおいて、分解レベル=3の最低域領域0LLに対応するブロック(1)が最初にエントロピ符号化され、次に、分解レベル=2の最低域領域に対応するブロック(2)、ブロック(3)、ブロック(4)の順にエントロピ符号化がなされる。さらに、分解レベル=1の最低域領域に対応するブロック(5)、ブロック(6)、・・・、ブロック(16)の順にエントロピ符号化がなされる。以降、分解レベル=1の領域3HLのブロック(17)、ブロック(18)、・・・、ブロック(32)、領域3LHのブロック(33)、ブロック(34)、・・・、ブロック(48)、領域3HHのブロック(49)、ブロック(50)、・・・、ブロック(64)の順に、低域領域から高域領域に向けて、順次、同一ビット位置のビットプレーンにおいてブロック単位で、エントロピ符号化がなされる。なお、各領域内におけるブロックの符号化順は、この例に限られない。
このような順序でエントロピ符号化を行うことで、所望のビットプレーンの所望のブロックで符号化を停止した場合に、復号後の画像データにおいて、符号化を停止した時点で最も主観画質が高いと考えられる画像を得ることができる。
すなわち、画像復号装置における復号の際には、同じビット位置のビットプレーンについては、最低域領域から高域領域に向けて、エントロピ符号の復号を行うようにする。図23の例では、復号の際にも、同じビット位置のビットプレーンにおいて、ブロック(1)、ブロック(2)、・・・、ブロック(32)、ブロック(33)、・・・、ブロック(64)の順に、エントロピ符号の復号がなされる。エントロピ符号が復号されたデータは、それぞれ逆量子化、ウェーブレット逆変換処理を施され、復号加算画像データおよび復号減算画像データが生成される。そして、これら復号加算画像データおよび復号減算画像データについて、それぞれ加算処理および減算処理、ならびに、2での除算処理を行い、奇数フィールドおよび偶数フィールドの画像データが得られる。よりエネルギーの集中している領域から先にエントロピ符号の復号がなされ、復号後の画像において、高い主観画質を得ることができる。
なお、この実施の形態によれば、ビットプレーン内の任意の位置で符号化を停止させることができる。この場合、当該ビットプレーンにおける符号化が停止された位置以降のビットは、値を0とするとよい。また、符号化が停止されたビットプレーンよりビット位置が下位のビットプレーンは、エントロピ符号化を行わないようにする。
なお、この実施の形態には、上述した実施の他の形態による画像符号化装置および画像復号装置を、そのまま適用可能であるので、画像符号化装置および画像復号装置についての詳細な説明は省略する。
次に、本発明の実施の、さらに他の形態について説明する。本実施の形態では、符号化の際に、符号化されるデータ種類に応じて優先順位を設けるようにしている。最終的な符号化ストリームには、優先順位に応じて符号化データが含められる。
実際の動画像データは、一般的には色情報を有しており、輝度成分および色度成分とに分けられる。本実施の形態では、動画像データが持つ輝度成分Yおよび色差成分Cb、Crに対して優先度を設定し、優先度の高い成分を重点的に最終的な符号化ストリームに含ませるようにしている。符号化ストリームのデータレートを抑えつつ、復号後の画像データをより高画質とすることができる。
なお、色差成分Cbは、青色成分の色差を示し、色差成分Crは、赤色成分の色差を示す。また、輝度成分Yは、色情報を持たず明るさの情報のみからなる。
上述した、奇数フィールドおよび偶数フィールドを加算した加算画像データ、ならびに、奇数フィールドおよび偶数フィールドに対して減算を行った減算画像データは、それぞれ輝度成分Yおよび色差成分Cb、Crを有する。加算画像データおよび減算画像データが有するこれらの成分のうち、どの成分を優先的に選択して最終的な符号化ストリームに含ませるかが、復号後の画像データの画質を決める重要な要因となると考えられる。
上述したように、本発明の実施の、各形態では、奇数フィールドおよび偶数フィールドの加算および減算を行うようにされ、各々のデータのダイナミックレンジが元のデータの2倍となっている。この2倍のダイナミックレンジのデータを、如何に効率よく符号化するかが重要となる。すなわち、一般的に、ダイナミックレンジが大きくなると、その分、符号化ビット量が大きくなってしまうからである。
そこで、本実施の形態では、加算画像データおよび減算画像データ、ならびに、輝度成分Y、色差成分Cbおよび色差成分Crに対して優先順位を設定する。そして、優先順位の高いデータほど重点的に符号化データに取り込むようにする。優先順位を符号化データに反映させる方法としては、例えば、優先順位に応じてデータに重み付けを行う方法が考えられる。
加算画像データおよび減算画像データ、ならびに、輝度成分Y、色差成分Cbおよび色差成分Crに対して、例えば下記の条件(1)のように優先順位を設定することが考えられる。
Y(加算)>Cb(加算)>Cr(加算)>Y(減算)>Cb(減算)>Cr(減算)
・・・条件(1)
・・・条件(1)
なお、Y、CbおよびCrは、それぞれ輝度成分Y、青色の色差成分Cbおよび赤色の色差成分Crを表す。また、(加算)は、加算画像データを表し、(減算)は、減算画像データを表す。また、記号「>」は、左側が右側よりも優先順位が高いことを示す。これは後述する条件(2)においても同様である。
この条件(1)は、インタレース走査による動画像データの特徴に基づく。すなわち、インタレース走査においては、フィールド周波数が例えば60Hzとされ(NTSC(National Television System Committee)の場合)、奇数フィールドおよび偶数フィールドの間隔が1/60秒となり、比較的短い。
したがって、隣接する奇数フィールドおよび偶数フィールドにおいて、対応する位置にある画素同士は、近い値を持っていると考えられる。そのため、図3を参照して説明したように、奇数フィールドおよび偶数フィールドの減算結果は、0近傍の値に集中することになる。一方、奇数フィールドおよび偶数フィールドの加算結果は、元のデータの2倍に近い値に集中することになる。また、動きの非常に速い動画像データの場合は、隣接フィールド間の動き量が大きくなるため、減算データの値も、動き量に応じて大きくなる。
このように、奇数フィールドおよび偶数フィールドの加算結果の方が減算結果よりも、より大きなダイナミックレンジを持っている確率が非常に高いと考えられるため、上述した条件(1)のように、加算画像データの優先順位を、減算画像データの優先順位よりも高く設定することが、復号後の画像データの高画質化には有効である。
加算画像データおよび減算画像データ、ならびに、輝度成分Y、色差成分Cbおよび色差成分Crに対する優先順位付けは、上述の条件(1)に限られない。例えば、下記の条件(2)のように優先順位付けを行うことも考えられる。
Y(加算)>Y(減算)>Cb(加算)>Cb(減算)>Cr(加算)>Cr(減算)
・・・条件(2)
・・・条件(2)
この条件(2)は、画像の性質に基づく。すなわち、画像において、輝度成分は、色差成分よりも多くの情報量を有することと、画像の輝度成分に対する人間の視覚特性が色差成分に対する特性よりも敏感であることに基づく。換言すれば、人間の目には、色差成分の劣化よりも輝度成分の劣化の方が、より目立ち易い。そのため、条件(2)に示すように、奇数フィールドおよび偶数フィールドの加算結果および減算結果の全てにわたって、輝度成分の優先順位を色差成分の優先順位よりも高く設定することが、復号後の画像データの高画質化には有効である。
なお、上述した条件(1)および条件(2)において、色差成分Cbおよび色差成分Crの順序は、この順序に限らず、逆にしてもよい。すなわち、色差成分CbおよびCrの優先順位は、対象となる画像に応じて決めることができる。例えば、青味が強い画像の場合には、色差成分Cbの優先順位を色差成分Crより高く設定し、赤味が強い画像の場合には、色差成分Crの優先順位を色差成分Cbよりも高く設定する。エントロピ符号化を行う際に、予め対象となる画像データの色情報を分析し、分析結果に応じて、色差成分CbおよびCrの優先順位を適応的に設定することが考えられる。
本実施の形態において、画像復号装置では、符号化の際の優先順位に従い、最も高い優先順位が設定されたデータから順に、優先順位がより低く設定されたデータに向けて、復号処理が行われる。
なお、この実施の形態には、上述した実施の、他の形態による画像符号化装置および画像復号装置をそのまま適用可能であるので、画像符号化装置および画像復号装置についての詳細な説明は省略する。
本発明の実施の、さらに他の形態について説明する。以上においては、加算画像データおよび減算画像データ、ならびに、輝度成分Y、色差成分Cbおよび色差成分Crに対して設定された優先順位に応じて、それぞれのデータに対して重み付けを行うように説明した。これに対して、本実施の形態では、上述したビットプレーン構造を用いて、設定された優先順位を符号化ストリームに反映させる。
図24は、上述した条件(1)または条件(2)に従い、輝度成分Y>色差成分Cb>色差成分Crの順に優先順位を設定した場合の、一例のエントロピ符号化の順序を示す。図24に例示されるように、先ず、輝度成分Yについて、最低域領域0LLから最高域領域3HHに向けて、ビット位置がMSBのビットプレーンに対してエントロピ符号化を行い、次に、色差成分Cbについて、輝度成分Yに対してエントロピ符号化を行ったビットプレーンと同一ビット位置のビットプレーンに対して、最低域領域0LLから最高域領域3HHに向けてエントロピ符号化を行う。色差成分Cbのエントロピ符号化が終わったら、次に、色差成分Crについて同様にして、輝度成分Yに対してエントロピ符号化を行ったビットプレーンと同一ビット位置のビットプレーンに対して、最低域領域0LLから最高域領域3HHに向けてエントロピ符号化を行う。
色差成分Crの対象ビットプレーンに対するエントロピ符号化が終了したら、再び輝度成分Yに戻り、次のビット位置のビットプレーンに対するエントロピ符号化が、上述と同様にして行われる。
図25は、上述の処理を、ビットプレーンの観点から示す。図中、空白部分はゼロ・ビットプレーンあって、符号化ストリームには含まれない。斜線を付した部分が実際に符号化ストリームに含まれる部分となる。
図25に一例が示されるように、輝度成分Yにおいて、最低域領域である領域Y−0LLから、最高域領域である領域Y−3HHまでが、輝度成分Yのサブバンドとなっている。同様に、色差成分Cbにおいて、最低域領域である領域Cb−0LLから、最高域領域である領域Cb−3HHまでが、色差成分Cbのサブバンドになっており、色差成分Crにおいて、最低域領域である領域Cr−0LLから、最高域領域である領域Cr−3HHまでが、色差成分Crのサブバンドになっている。各サブバンドは、それぞれ所定サイズのブロックBxに分割される。
輝度成分Yの領域Y−0LLから色差成分Crの領域Cr−3HHまで、ゼロ・ビットプレーンを除いて、上位ビット位置のビットプレーンから、下位ビット位置のビットプレーンの順番に、ビットプレーン毎にブロック単位でエントロピ符号化を行う。そして、符号量が目標符号量に達した時点で、エントロピ符号化を停止させるように、エントロピ符号化部の符号化を制御する。
図25の例では、ブロック単位のビットプレーン(1)、ビットプレーン(2)、・・・の順にエントロピ符号化が行われ、ビットプレーン(X)の符号化が終了した時点で符号量が目標符号量に達し、符号化が停止されている。ビットプレーン(X)よりも下位のビット位置のビットプレーンは、エントロピ符号化された符号化ストリームにおいて、未使用とされる。この未使用の部分は、ビット位置がLSB若しくはLSBに近いビットプレーンであって、符号化ストリームに含めなくても復号後の画像データの画質に与える影響が小さいと考えられる。
なお、上述では、加算画像データおよび減算画像データについて、説明を省略しているが、加算および減算画像データを考慮に入れた場合も、同様の処理とされる。
例えば、上述の条件(1)では、加算画像用ビットプレーンについて、領域Y−0LLから領域Cr−3HHまで、ビットプレーン毎にエントロピ符号化を行い、所望のビットプレーンまで符号化が終了したら、次に、減算画像用ビットプレーンについて、領域Y−0LLから領域Cr−3HHまでビットプレーン毎にエントロピ符号化を行う。
このように、この条件(1)では、加算画像データに対するエントロピ符号化が全て終了した後に、減算画像データに対するエントロピ符号化を行うように、優先順位が設定されている。そのため、加算画像データおよび減算画像データのそれぞれに対してイントラ符号化部14およびイントラ符号化部15を独立的に持つような構成に、この条件(1)を適用すると好ましい。画像復号装置は、上述した実施の、他の形態による構成をそのまま適用することができ、復号の方法も、同様である。
すなわち、本実施の形態の画像復号装置においては、条件(1)による符号化ストリームに対しては、符号化の際の優先順位に従い、加算画像用ビットプレーンについて、領域Y−0LLから領域Cr−3HHまで、ビットプレーン毎にエントロピ符号を復号し、次に、減算画像用ビットプレーンについて、領域Y−0LLから領域Cr−3HHまでビットプレーン毎にエントロピ符号を復号する。エントロピ符号が復号されたデータは、それぞれ逆量子化、ウェーブレット逆変換処理を施され、復号加算画像データおよび復号減算画像データが生成される。そして、これら復号加算画像データおよび復号減算画像データについて、それぞれ加算処理および減算処理、ならびに、2での除算処理を行い、奇数フィールドおよび偶数フィールドの画像データが得られる。
一方、上述の条件(2)では、輝度成分Yについて、加算画像用ビットプレーンの領域Y−0LLから領域Y−3HHまでビットプレーン毎のエントロピ符号化を行い、次に、減算画像用ビットプレーンの領域Y−0LLから領域Y−3HHまでビットプレーン毎のエントロピ符号化を行う。輝度成分Yに対するエントロピ符号化が終了したら、色差成分Cbについて、加算画像用ビットプレーンおよび減算画像用ビットプレーンに対して、それぞれ所定にエントロピ符号化を行い、色差成分Cbに対する符号化の終了後に、色差成分Crについて、加算画像用ビットプレーンおよび減算画像用ビットプレーンに対するエントロピ符号化を行う。
このように、この条件(2)では、輝度成分Y、色差成分Cbおよび色差成分Crのそれぞれについて、加算画像用ビットプレーンのエントロピ符号化と、減算画像用ビットプレーンのエントロピ符号化とを連続的に行うように、優先順位が設定されている。そのため、上述した実施の、他の形態による、イントラ符号化部50を1つだけ有し、加算画像用ビットプレーンおよび減算画像用ビットプレーンを統合的にエントロピ符号化するような構成に、この条件(2)を適用すると好ましい。画像復号装置は、上述した実施の、他の形態による構成をそのまま適用することができ、復号の方法も、同様である。
すなわち、この実施の形態の画像復号装置においては、条件(2)による符号化ストリームに対しては、輝度成分Yについて、加算画像用ビットプレーンの領域Y−0LLから領域Y−3HHまでビットプレーン毎のエントロピ符号の復号を行い、次に、減算画像用ビットプレーンの領域Y−0LLから領域Y−3HHまでビットプレーン毎のエントロピ符号の復号を行う。輝度成分Yに対する復号が終了したら、色差成分Cbについて、加算画像用ビットプレーンおよび減算画像用ビットプレーンに対して、それぞれ所定にエントロピ符号の復号を行い、色差成分Cbに対する復号の終了後に、色差成分Crについて、加算画像用ビットプレーンおよび減算画像用ビットプレーンに対するエントロピ符号の復号を行う。
エントロピ符号が復号されたデータは、それぞれ逆量子化、ウェーブレット逆変換処理を施され、復号加算画像データおよび復号減算画像データが生成される。そして、これら復号加算画像データおよび復号減算画像データについて、それぞれ加算処理および減算処理、ならびに、2での除算処理を行い、奇数フィールドおよび偶数フィールドの画像データが得られる。
なお、上述の条件(1)および条件(2)の何れの場合においても、データの存在する全てのビットプレーンを対象に、順次エントロピ符号化を行い、符号量が目標符号量になった時点で、符号化を停止することが考えられる。また、これに限らず、例えば、所定ビット位置以下のビットプレーンに対するエントロピ符号化を行わないように予め設定しておくこともできる。
以上においては、この発明が画像データの奇数フィールドおよび偶数フィールドの加減算処理を行った結果に対してビットプレーン毎のエントロピ符号化を行った例について説明したが、この発明は、この例に限定されるものではない。すなわち、この発明は、ビットプレーンに分解されたデータの、MSB側から任意のビット位置までのビットプレーンを用いた場合に意味のある結果が得られるような構造のデータであれば、他の種類のデータにも適用させることができる。
この発明は、例えば、画像データの例であれば、時間的に隣接するフレームに対して加減算処理を行った場合にも適用できるし、単独のフィールドやフレームに適用することも可能である。また、動画像データに限らず、静止画像データに適用してもよい。
以上においては画像符号化装置が、加算結果と減算結果をそれぞれ符号化するか、若しくは、加算結果及び減算結果を統合的に符号化するかのいずれかの場合について説明した。同様に、画像復号装置も、加算結果に対応する復号処理と減算結果に対応する復号処理をそれぞれ行うか、若しくは、加算結果及び減算結果の両方に対応する復号処理を行うかのいずれかの場合について説明した。
これ以外にも、例えば、画像符号化装置が、加算結果と減算結果をそれぞれ符号化するか、若しくは、加算結果及び減算結果を統合的に符号化するかを適宜選択することができるようにしてもよく、画像復号装置が、その画像符号化装置の選択に応じて、いずれの場合もコードストリームを復号することができるようにしてもよい。
例えば、図15に示される画像符号化装置において、イントラ符号化部50が、供給される、加算結果と減算結果に対して、それぞれを個別に符号化するか、両方を統合的に符号化するかを選択し、選択した方法で符号化を行うことができるようにしてもよい。
その場合の、画像符号化装置による画像符号化処理の流れの例を図26のフローチャートを参照して説明する。ここでは、図15に示される画像符号化装置が行うものとして説明する。
画像符号化処理が開始されると、ステップS81において、スイッチ部10は、1フレーム分の画像データ入力を受け付ける。画像データ入力を受け付けると、スイッチ部10は、その画像データを奇数フィールドと偶数フィールドに分離する。
ステップS82において、加減算器18の加算器12は、フィールド遅延部11を介して取得した奇数フィールドと、フィールド遅延部11を介さずに取得した偶数フィールドとの加算結果を算出する。また、ステップS83において、加減算器18の減算器13は、フィールド遅延部11を介して取得した奇数フィールドから、フィールド遅延部11を介さずに取得した偶数フィールドを減算した減算結果を算出する。
ステップS84において、イントラ符号化部50は、得られた加算結果と減算結果を個別に符号化するか否かを判定する。この判定は、例えば、ユーザ等の外部からの指示、符号化する画像データの画像の特徴、画像符号化装置全体の負荷状況、符号化ストリームの伝送路の帯域、または、画像復号装置の復号方法等に基づいて行われる。もちろんこれ以外の情報を根拠として判断するようにしてもよい。
ステップS84において加算結果と減算結果を個別に符号化すると判定された場合、処理はステップS85に進む。ステップS85において、レート制御部51は、加算結果を符号化するための目標符号量を設定する。ステップS86において、イントラ符号化部50は、その目標符号量に基づいて加算結果を符号化する。ステップS87において、レート制御部51は、減算結果を符号化するための目標符号量を設定する。ステップS88において、イントラ符号化部50は、その目標符号量に基づいて減算結果を符号化する。
以上のように符号化されて得られた加算画像符号化データおよび減算画像符号化データは、1本の符号化ストリームに合成されて画像符号化装置の外部に出力される。ステップS88の処理が終了されると、処理は、ステップS91に進む。
また、ステップS84において、加算結果と減算結果を統合的に符号化すると判定された場合、処理はステップS89に進む。ステップS89において、レート制御部51は、加算結果および減算結果を統合的に符号化するための目標符号量を設定する。ステップS90において、イントラ符号化部50は、その目標符号量に基づいて加算結果および減算結果を統合的に符号化する。
以上のように符号化されて得られた符号化ストリームは画像符号化装置の外部に出力される。ステップS90の処理が終了されると、処理は、ステップS91に進む。
ステップS91において、スイッチ部10は、次のフレームの画像データ入力を受け付けるか否かを判定する。まだ、画像データ入力が供給され続けており、画像データ入力を受け付けると判定された場合、処理はステップS81に戻され、次のフレームに対してステップS81以降の処理が繰り返される。また、ステップS91において、スイッチ部10が画像データ入力を受け付けないと判定された場合、画像符号化処理は終了される。
以上のように処理を行うことにより、画像符号化装置は、加算結果と減算結果をそれぞれ符号化するか、若しくは、加算結果及び減算結果を統合的に符号化するかを適宜選択することができる。
これに対して、画像復号装置も、画像符号化装置が、加算結果と減算結果をそれぞれ符号化するか、若しくは、加算結果及び減算結果を統合的に符号化するかのいずれを選択した場合でも、その選択された符号化方法に対応する復号方法で、符号化ストリームを復号することができるようにしてもよい。つまり、画像復号装置が、図4に示される画像復号装置のように、画像符号化装置において個別に符号化されて得られた加算画像符号化データおよび減算画像符号化データを、それぞれ復号することもできるし、図16に示される画像復号装置のように、画像符号化装置において加算結果及び減算結果が統合的に符号化された符号化ストリームを復号することもできるようにしてもよい。
その場合の、画像復号装置による画像復号処理の流れの例を図27のフローチャートを参照して説明する。ここでは、図16に示される画像復号装置が行うものとして説明する。
画像復号処理が開始されると、ステップS111において、イントラ復号部60は、符号化ストリームを受け付ける。符号化ストリームを受け付けると、イントラ復号部60は、ステップS112において、受け付けた符号化ストリームを解析し、符号化ストリームが、加算画像符号化データおよび減算画像符号化データの2つに分かれているか否かを判定する。
イントラ復号部60は、例えば、符号化ストリームのメタデータやパケットのヘッダ情報等を参照したり、符号化ストリームのデータ量等の特徴を解析したりすることにより、得られた符号化ストリームが、画像符号化装置において加算画像符号化データおよび減算画像符号化データを合成したものであるか否かを判定する。
符号化ストリームが加算画像符号化データおよび減算画像符号化データの2つに分かれていると判定された場合、処理はステップS113に進む。その場合、イントラ復号部60は、ステップS113において、加算結果の符号化ストリームである加算画像符号化データを復号し、ステップS114において、減算結果の符号化ストリームである減算画像符号化データを復号する。復号が終了すると、処理は、ステップS116に進む。
また、ステップS112において、符号化ストリームが加算画像符号化データおよび減算画像符号化データの2つに分かれていないと判定された場合、処理はステップS115に進む。その場合、イントラ復号部60は、ステップS115において、加算結果および減算結果が統合的に符号化された符号化ストリームを復号する。復号が終了すると、処理は、ステップS116に進む。
ステップS116において、加減算器28、並びに、除算部25Aおよび除算部25Bは、イントラ復号部60によるデコード結果の加減算および除算を行い、ベースバンドの奇数フィールドの画像データと、ベースバンドの偶数フィールドの画像データを生成する。これらの画像データは、スイッチ部27により交互に並べられてベースバンドの復号画像データとして出力される。
ステップS117において、イントラ復号部60は、次の符号化ストリームを受け付けるか否かを判定する。まだ、符号化ストリームが供給され続けており、次の符号化ストリームを受け付けると判定された場合、処理はステップS111に戻され、次の符号化ストリームに対してステップS111以降の処理が繰り返される。また、ステップS117において、イントラ復号部60が符号化ストリームを受け付けないと判定された場合、画像復号処理は終了される。
以上のように復号処理を行うことにより画像復号装置は、加算結果と減算結果が個別に符号化された符号化ストリームも復号することができ、さらに、加算結果と減算結果が統合的に符号化された符号化ストリームも復号することができる。
なお、ステップS112の判定は、例えば、画像符号化装置より符号化ストリームとは別に送られてきた、符号化方法に関する情報に基づいて行われるようにしてもよい。
また、以上においては、図26のフローチャートを参照して説明した画像符号化処理を図15に示される構成の画像符号化装置が行い、図27のフローチャートを参照して説明した画像復号処理を図16に示される構成の画像復号装置が行うように説明したが、これらの処理を実行する画像符号化装置および画像復号装置の構成は任意であり、図15または図16に示される構成以外のものであってもよい。
このような画像符号化処理を行う画像符号化装置と画像復号処理を行う画像復号装置を用いることにより、各種条件に応じて適宜最適な符号化方法および復号方法を選択し実行する、適応能力の高い画像処理システムを実現することができる。
次にイントラ符号化部やイントラ復号部の具体的な例について説明する。
図28は、イントラ符号化部の構成例を示すブロック図である。イントラ符号化部201は、ウェーブレット変換部210、途中計算用バッファ部211、係数並び替え用バッファ部212、係数並び替え部213、レート制御部214、およびエントロピ符号化部215を有する。イントラ符号化部201は、例えば、図1のイントラ符号化部14やイントラ符号化部15、または図15のイントラ符号化部50に対応する、画像データを符号化する処理部である。
入力された画像データは、途中計算用バッファ部211に一時的に溜め込まれる。例えば、イントラ符号化部201を図1の画像符号化装置のイントラ符号化部14として適用する場合、入力される画像データは、加減算器18の加算器12より供給される、奇数フィールドの画像データと偶数フィールドの画像データとの加算結果である。また、イントラ符号化部201を図1の画像符号化装置のイントラ符号化部15として適用する場合、入力される画像データは、加減算器18の減算器13より供給される、奇数フィールドの画像データから偶数フィールドの画像データを減算した減算結果である。さらに、イントラ符号化部201を図15の画像符号化装置のイントラ符号化部50として適用する場合、入力される画像データは、加減算器18の加算器12より供給される奇数フィールドの画像データと偶数フィールドの画像データとの加算結果と、減算器13より供給される、奇数フィールドの画像データから偶数フィールドの画像データを減算した減算結果の両方である。
ウェーブレット変換部210は、途中計算用バッファ部211に溜め込まれた画像データに対してウェーブレット変換を施す。すなわち、ウェーブレット変換部210は、途中計算用バッファ部211から画像データを読み出して分析フィルタによりフィルタ処理を施して低域成分および高域成分の係数のデータを生成し、生成された係数データを途中計算用バッファ部211に格納する。ウェーブレット変換部210は、水平分析フィルタと垂直分析フィルタとを有し、画像データ群に対して、画面水平方向と画面垂直方向の両方について分析フィルタ処理を行う。ウェーブレット変換部210は、途中計算用バッファ部211に格納された低域成分の係数データを再度読み出し、読み出した係数データに対して分析フィルタによるフィルタ処理を施して、高域成分および低域成分の係数のデータをさらに生成する。生成された係数データは、途中計算用バッファ部211に格納される。
ウェーブレット変換部210は、この処理を繰り返して分解レベルが所定レベルに達したら、途中計算用バッファ部211から係数データを読み出し、読み出された係数データを係数並び替え用バッファ部212に書き込む。
係数並び替え部213は、係数並び替え用バッファ部212に書き込まれた係数データを所定の順序で読み出し、エントロピ符号化部215に供給する。エントロピ符号化部215は、供給された係数データを、例えばハフマン符号化や算術符号化といった所定のエントロピ符号化方式で符号化する。
エントロピ符号化部215は、レート制御部214と連動的に動作し、出力される圧縮符号化データのビットレートが略一定値となるように制御される。すなわち、レート制御部214は、エントロピ符号化部215からの符号化データ情報に基づき、エントロピ符号化部215により圧縮符号化されたデータのビットレートが目標値に達した時点あるいは目標値に達する直前でエントロピ符号化部215による符号化処理を終了するように制御する制御信号を、エントロピ符号化部215に対して供給する。エントロピ符号化部215は、レート制御部214から供給される制御信号に応じて符号化処理が終了した時点で、符号化データを出力する。
ウェーブレット変換部210で行われる処理について、より詳細に説明する。このウェーブレット変換部210によるウェーブレット変換処理の概略は、図6および図7を参照して説明した場合と同様である。
つまり、ウェーブレット変換部210は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクを用いて、図6および図7を参照して説明したような処理を行う。なお、この場合も、ウェーブレット変換部210は、フィルタ処理を行えるだけの入力画像データまたは係数データを予めバッファリングしておく必要があり、さらに、前段で生成したウェーブレット変換係数を、フィルタ処理が行える数だけバッファリングしておく必要がある。
次に、本実施の形態におけるウェーブレット変換の具体的な例として、5×3フィルタを用いた方法について説明する。この5×3フィルタを用いた方法は、従来技術で既に説明したJPEG2000規格でも採用されており、少ないフィルタタップ数でウェーブレット変換を行うことができる点で、優れた方法である。
5×3フィルタのインパルス応答(Z変換表現)は、次の式(7)および式(8)に示すように、低域フィルタH0(z)と、高域フィルタH1(z)とから構成される。式(7)および式(8)から、低域フィルタH0(z)は、5タップで、高域フィルタH1(z)は、3タップであることが分かる。
H0(z)=(-1+2z-1+6z-2+2z-3-z-4)/8 ・・・(7)
H1(z)=(-1+2z-1-z-2)/2 ・・・(8)
H1(z)=(-1+2z-1-z-2)/2 ・・・(8)
これら式(7)および式(8)によれば、低域成分および高域成分の係数を、直接的に算出することができる。ここで、リフティング(Lifting)技術を用いることで、フィルタ処理の計算を減らすことができる。図29を用いて、5×3フィルタに対してリフティング技術を適用した場合の、ウェーブレット変換を行う分析フィルタ側の処理について、概略的に説明する。
図29において、最上段部、中段部および最下段部は、それぞれ入力画像の画素列、高域成分出力および低域成分出力を示す。最上段は、入力画像の画素列に限らず、先のフィルタ処理で得られた係数でもよい。ここでは、最上段部が入力画像で画素列であるものとし、四角印(■)が偶数番目(最初を0番目とする)の画素またはライン、丸印(●)が奇数番目の画素またはラインとする。
先ず第1段階として、次式(9)により入力画素列から高域成分の係数di 1を生成する。
di 1=di 0-1/2(si 0+si+1 0) ・・・(9)
次に第2段階として、この生成された高域成分の係数と、入力画像の奇数番目の画素とを用いて、次式(10)により低域成分の係数si 1を生成する。
si 1=si 0+1/4(di-1 1+di 1) ・・・(10)
分析フィルタ側では、このようにして、フィルタリング処理により入力画像の画素データを低域成分と高域成分とに分解する。
図30を用いて、ウェーブレット変換により生成された係数を復元するウェーブレット逆変換を行う合成フィルタ側の処理について、概略的に説明する。この図30は、上述の図29と対応し、5×3フィルタを用い、リフティング技術を適用した例を示す。図30において、最上段部は、ウェーブレット変換により生成された入力係数を示し、丸印(●)が高域成分の係数、四角印(■)が低域成分の係数をそれぞれ示す。
先ず第1段階として、次式(11)に従い、入力された低域成分および高域成分の係数から、偶数番目(最初を0番目とする)の係数si 0が生成される。
si 0=si 1-1/4(di-1 1+di 1) ・・・(11)
次に第2段階として、次式(12)に従い、上述の第1段階で生成された偶数番目の係数si 0と、入力された高域成分の係数di 1とから、奇数番目の係数di 0が生成される。
di 0=di 1+1/2(si 0+si+1 0) ・・・(12)
合成フィルタ側では、このようにして、フィルタリング処理により低域成分および高域成分の係数を合成し、ウェーブレット逆変換を行う。
次に、本実施の形態によるウェーブレット変換方法について説明する。図31は、図29を用いて説明した5×3フィルタのリフティングによるフィルタ処理を、分解レベル=2まで実行した例を示す。なお、図31において、図の左側に分析フィルタとして示される部分は、イントラ符号化部201側におけるウェーブレット変換部210のフィルタである。また、図の右側に合成フィルタとして示される部分は、後述するイントラ復号部側におけるウェーブレット逆変換部のフィルタである。
なお、以下の説明では、例えば表示デバイスなどにおいて画面の左上隅の画素を先頭として、画素が画面の左端から右端に向けて走査されて1ラインが構成され、ライン毎の走査が画面の上端から下端に向けて行われて1画面が構成されるものとする。
図31において、左端列は、原画像データのライン上の対応する位置にある画素データが縦方向に並べられて示されている。すなわち、ウェーブレット変換部210におけるフィルタ処理は、垂直フィルタを用いて画面上を画素が縦に走査されて行われる。左端から1列目乃至3列目が分割レベル=1のフィルタ処理を示し、4列目乃至6列目が分割レベル=2のフィルタ処理を示す。左端から2列目は、左端の原画像データの画素に基づく高域成分出力、左端から3列目は、原画像データおよび高域成分出力に基づく低域成分出力を示す。分割レベル=2のフィルタ処理は、左端から4列目乃至6列目に示されるように、分割レベル=1のフィルタ処理の出力に対して処理がなされる。
分解レベル=1のフィルタ処理において、第1段階のフィルタ処理として、原画像データの画素に基づき高域成分の係数データが算出され、第2段階のフィルタ処理として、第1段階のフィルタ処理で算出された高域成分の係数データと、原画像データの画素とに基づき低域成分の係数データが算出される。分解レベル=1の一例のフィルタ処理を、図31における左側(分析フィルタ側)の第1列目乃至第3列目に示す。算出された高域成分の係数データは、図28で説明した係数並び替え用バッファ部212に格納される。また、算出された低域成分の係数データのは、途中計算用バッファ部211に格納される。
図31においては、係数並び替え用バッファ部212は、一点鎖線で囲まれた部分として示し、途中計算用バッファ部211は、点線で囲まれた部分として示す。
途中計算用バッファ部211に保持された分解レベル=1のフィルタ処理の結果に基づき、分解レベル=2のフィルタ処理が行われる。分解レベル=2のフィルタ処理では、分解レベル=1のフィルタ処理において低域成分の係数として算出された係数データを、低域成分および高域成分を含んだ係数データと見做して、分解レベル=1と同様のフィルタ処理を行う。分解レベル=2のフィルタ処理により算出された、高域成分の係数データおよび低域成分の係数データは、図28で説明した係数並び替え用バッファ部212に格納される。
ウェーブレット変換部210では、上述したようなフィルタ処理を、画面の水平方向および垂直方向にそれぞれ行う。例えば、先ず、分解レベル=1のフィルタ処理を水平方向に行い、生成された高域成分および低域成分の係数データを途中計算用バッファ部211に格納する。次に、途中計算用バッファ部211に格納された係数データに対して、垂直方向に分解レベル=1のフィルタ処理を行う。この分解レベル=1の水平および垂直方向の処理により、高域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域HHおよび領域HLと、低域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域LHおよび領域LLとの4領域が形成される。
そして、分解レベル=2では、水平方向および垂直方向のそれぞれについて、分解レベル=1で生成された低域成分の係数データに対してフィルタ処理が行われる。すなわち、分解レベル=2では、分解レベル=1で分割されて形成された領域LLがさらに4分割され、領域LL内にさらに領域HH、領域HL、領域LHおよび領域LLが形成される。
この実施の形態では、ウェーブレット変換によるフィルタ処理を、画面の縦方向について、数ライン毎の処理に分割して、複数回に分けて段階的に行うようにしている。図31の例では、画面上の第1ラインからの処理になる1回目の処理は、7ラインについてフィルタ処理を行い、8ライン目からの処理になる2回目以降の処理は、4ライン毎にフィルタ処理を行っている。このライン数は、高域成分と低域成分とに2分解した後に、1ライン分の最低域成分が生成されるために必要なライン数に基づく。
なお、以下において、この最低域成分の1ライン分(最低域成分のサブバンドの1ライン分の係数データ)を生成するために必要な、他のサブバンドも含めたラインの集まりを、ラインブロック(またはプレシンクト)と称する。ここでラインとは、ウェーブレット変換前の画像データに対応するピクチャ若しくはフィールド内、または各サブバンド内において形成される1行分の画素データ若しくは係数データのことを示す。すなわち、ラインブロック(プレシンクト)とは、ウェーブレット変換前の元の画像データにおける、ウェーブレット変換後の最低域成分のサブバンド1ライン分の係数データを生成するために必要なライン数分の画素データ群、または、その画素データ群をウェーブレット変換して得られる各サブバンドの係数データ群のことを示す。
図31によれば、分解レベル=2のフィルタ処理結果で得られる係数C5は、係数C4および途中計算用バッファ部211に格納された係数Caに基づき算出され、係数C4は、途中計算用バッファ部211に格納された係数Ca、係数Cbおよび係数Ccに基づき算出される。さらに、係数Ccは、係数並び替え用バッファ部212に格納される係数C2および係数C3、並びに、第5ラインの画素データに基づき算出される。また、係数C3は、第5ライン乃至第7ラインの画素データに基づき算出される。このように、分割レベル=2における低域成分の係数C5を得るためには、第1ライン乃至第7ラインの画素データが必要とされる。
これに対して、2回目以降のフィルタ処理においては、前回までのフィルタ処理で既に算出され係数並び替え用バッファ部212に格納されている係数データを用いることができるので、必要なライン数が少なくて済む。
すなわち、図31によれば、分解レベル=2のフィルタ処理結果で得られる低域成分の係数のうち、係数C5の次の係数である係数C9は、係数C4および係数C8、並びに、途中計算用バッファ部211に格納された係数Ccに基づき算出される。係数C4は、上述した1回目のフィルタ処理により既に算出され、係数並び替え用バッファ部212に格納されている。同様に、係数Ccは、上述の1回目のフィルタ処理により既に算出され、途中計算用バッファ部211に格納されている。したがって、この2回目のフィルタ処理においては、係数C8を算出するためのフィルタ処理のみが、新たになされることになる。この新たなフィルタ処理は、第8ライン乃至第11ラインがさらに用いられてなされる。
このように、2回目以降のフィルタ処理は、前回までのフィルタ処理により算出され途中計算用バッファ部211および係数並び替え用バッファ部212に格納されたデータを用いることができるので、それぞれ4ライン毎の処理で済むことになる。
なお、画面上のライン数が符号化のライン数と合致しない場合は、原画像データのラインを所定に複製してライン数を符号化のライン数と合わせて、フィルタ処理を行う。
詳細は後述するが、この発明では、このように、最低域成分1ライン分の係数データが得られるだけのフィルタ処理を段階的に、画面全体のラインに対して複数回に分けて(ラインブロック単位で)行うことで、符号化データを伝送した際に低遅延で復号画像を得ることを可能としている。
ウェーブレット変換を行うためには、ウェーブレット変換そのものを実行するために用いられる第1のバッファと、所定の分割レベルまで処理を実行する間に生成される係数を格納するための第2のバッファとが必要とされる。第1のバッファは、途中計算用バッファ部211に対応し、図31においては点線で囲まれて示されている。また、第2のバッファは、係数並び替え用バッファ部212に対応し、図31においては一点鎖線に囲まれて示されている。第2のバッファに格納された係数は、復号の際に用いられるため、後段のエントロピ符号化処理の対象とされる。
次に、係数並び替え部213の処理について説明する。上述したように、ウェーブレット変換部210で算出された係数データは、係数並び替え用バッファ部212に格納され、係数並び替え部213により順序を並び替えられて読み出され、エントロピ符号化部215に送出される。
既に説明したように、ウェーブレット変換においては、高域成分側から低域成分側へと係数が生成されていく。図31の例では、1回目において、原画像の画素データにより、分解レベル=1のフィルタ処理で、高域成分の係数C1、係数C2および係数C3が順次生成される。そして、分解レベル=1のフィルタ処理で得られた低域成分の係数データに対して分解レベル=2のフィルタ処理を行い、低域成分の係数C4および係数C5が順次生成される。すなわち、第1回目では、係数C1、係数C2、係数C3、係数C4、係数C5の順に、係数データが生成される。この係数データの生成順は、ウェーブレット変換の原理上、必ずこの順序(高域から低域の順)になる。
これに対して、復号側では、低遅延で即座に復号を行うためには低域成分から画像の生成および出力を行う必要がある。そのため、符号化側で生成された係数データを最低域成分側から高域成分側に向けて並び替えて復号側に供給することが望ましい。
図31の例を用いて、より具体的に説明する。図31の右側は、逆ウェーブレット変換を行う合成フィルタ側を示す。復号側の、出力画像データの第1ライン目を含む1回目の合成処理(逆ウェーブレット変換処理)は、符号化側の1回目のフィルタ処理で生成された最低域成分の係数C4および係数C5と、係数C1とを用いて行われる。
すなわち、1回目の合成処理においては、係数C5、係数C4、係数C1の順に符号化側から復号側に係数データを供給し、復号側では、分解レベル=2に対応する合成処理である合成レベル=2の処理で、係数C5および係数C4に対して合成処理を行って係数Cfを生成し、バッファに格納する。そして、分解レベル=1に対応する合成処理である合成レベル=1の処理で、この係数Cfと係数C1に対して合成処理を行って、第1ラインを出力する。
このように、第1回目の合成処理においては、符号化側で係数C1、係数C2、係数C3、係数C4、係数C5の順に生成され係数並び替え用バッファ部212に格納された係数データが、係数C5、係数C4、係数C1、・・・の順に並び替えられて復号側に供給される。
なお、図31の右側に示す合成フィルタ側では、符号化側から供給される係数について、括弧内に符号化側での係数の番号を記し、括弧外に合成フィルタのライン順を記す。例えば係数C1(5)は、図31の左側の分析フィルタ側では係数C5であって、合成フィルタ側では第1ライン目であることを示す。
符号化側の2回目以降のフィルタ処理で生成された係数データによる復号側の合成処理は、前回の合成処理の際に合成あるいは符号化側から供給された係数データを用いて行うことができる。図31の例では、符号化側の2回目のフィルタ処理で生成された低域成分の係数C8および係数C9を用いて行う、復号側の2回目の合成処理は、符号化側の1回目のフィルタ処理で生成された係数C2および係数C3がさらに必要とされ、第2ライン乃至第5ラインが復号される。
すなわち、2回目の合成処理においては、係数C9、係数C8、係数C2、係数C3の順に符号化側から復号側に係数データを供給する。復号側では、合成レベル=2の処理において、係数C8および係数C9と、1回目の合成処理の際に符号化側から供給された係数C4とを用いて係数Cgを生成し、バッファに格納する。この係数Cgと、上述の係数C4と、1回目の合成処理により生成されバッファに格納された係数Cfとを用いて係数Chを生成し、バッファに格納する。
そして、合成レベル=1の処理において、合成レベル=2の処理で生成されバッファに格納された係数Cgおよび係数Chと、符号化側から供給された係数C2(合成フィルタでは係数C6(2)と示されている)および係数C3(合成フィルタでは係数C7(3)と示されている)とを用いて合成処理が行われ、第2ライン乃至第5ラインが復号される。
このように、第2回目の合成処理においては、符号化側で係数C2、係数C3、(係数C4、係数C5)、係数C6、係数C7、係数C8、係数C9の順に生成された係数データが、係数C9、係数C8、係数C2、係数C3、・・・の順に並び替えられて復号側に供給される。
3回目以降の合成処理においても、同様にして、係数並び替え用バッファ部212に格納された係数データが所定に並び替えられて復号部に供給され、4ラインずつ、ラインが復号される。
なお、符号化側において画面の下端のラインを含むフィルタ処理(以下、最後の回と呼ぶ)に対応する復号側の合成処理では、それまでの処理で生成されバッファに格納された係数データを全て出力することになるため、出力ライン数が多くなる。図31の例では、最後の回に8ラインが出力される。
なお、係数並び替え部213による係数データの並び替え処理は、例えば、係数並び替え用バッファ部212に格納された係数データを読み出す際の読み出しアドレスを、所定の順序に設定することでなされる。
図32を用いて、上述までの処理をより具体的に説明する。図32は、5×3フィルタを用いて、分解レベル=2までウェーブレット変換によるフィルタ処理を施した例である。ウェーブレット変換部210において、図32のAに一例が示されるように、入力画像データの第1ラインから第7ラインに対して1回目のフィルタ処理が水平および垂直方向にそれぞれ行われる(図32のAのIn-1)。
1回目のフィルタ処理の分解レベル=1の処理において、係数C1、係数C2、および係数C3の3ライン分の係数データが生成され、図32のBに一例が示されるように、分解レベル=1で形成される領域HH、領域HLおよび領域LHのそれぞれに配置される(図32のBのWT-1)。
また、分解レベル=1で形成される領域LLは、分解レベル=2による水平および垂直方向のフィルタ処理でさらに4分割される。分解レベル=2で生成される係数C5および係数C4は、分解レベル=1による領域LL内において、領域LLに係数C5による1ラインが配置され、領域HH、領域HLおよび領域LHのそれぞれに、係数C4による1ラインが配置される。
ウェーブレット変換部210による2回目以降のフィルタ処理では、4ライン毎にフィルタ処理が行われ(図32のAのIn-2・・・)、分解レベル=1で2ラインずつの係数データが生成され(図32のBのWT-2)、分解レベル=2で1ラインずつの係数データが生成される。
図31の2回目の例では、分解レベル=1のフィルタ処理で係数C6および係数C7の2ライン分の係数データが生成され、図32のBに一例が示されるように、分解レベル1で形成される領域HH、領域HLおよび領域LHの、1回目のフィルタ処理で生成された係数データの次から配置される。同様に、分解レベル=1による領域LL内において、分解レベル=2のフィルタ処理で生成された1ライン分の係数C9が領域LLに配置され、1ライン分の係数C8が領域HH、領域HLおよび領域LHにそれぞれ配置される。
図32のBのようにウェーブレット変換されたデータを復号した際には、図32のCに一例が示されるように、符号化側の第1ライン乃至第7ラインによる1回目のフィルタ処理に対して、復号側の1回目の合成処理による第1ラインが出力される(図32のCのOut-1)。以降、符号化側の2回目から最後の回の前までのフィルタ処理に対して、復号側で4ラインずつが出力される(図32のCのOut-2・・・)。そして、符号化側の最後の回のフィルタ処理に対して、復号側で8ラインが出力される。
ウェーブレット変換部210で高域成分側から低域成分側へと生成された係数データは、係数並び替え用バッファ部212に順次格納される。係数並び替え部213は、上述した係数データの並び替えが可能となるまで係数並び替え用バッファ部212に係数データが蓄積されると、係数並び替え用バッファ部212から合成処理に必要な順に並び替えて係数データを読み出す。読み出された係数データは、エントロピ符号化部215に順次、供給される。
エントロピ符号化部215は、供給された係数データに対して、レート制御部214から供給される制御信号に基づき出力データのビットレートが目標ビットレートになるように符号化動作を制御して、エントロピ符号化を施す。エントロピ符号化された符号化データは、復号側に供給される。符号化方式としては、既知の技術であるハフマン符号化や算術符号化などが考えられる。勿論、これらに限らず、可逆的な符号化処理が可能であれば、他の符号化方式を用いてもよい。
なお、エントロピ符号化部215が、係数並び替え部213から読み出された係数データに対して、最初に量子化を行い、得られた量子化係数に対してハフマン符号化や算術符号化等の情報源符号化処理を施すようにすれば、さらに圧縮効果の向上を期待することができる。この量子化の方法としてはどのようなものを用いても良く、例えば、一般的な手段、つまり、以下の式(13)に示されるような、係数データWを量子化ステップサイズΔで除算する手法を用いれば良い。
量子化係数=W/Δ ・・・(13)
図31および図32を用いて説明したように、この実施の形態では、ウェーブレット変換部210は、画像データの複数ライン毎(ラインブロック毎)にウェーブレット変換処理を行う。エントロピ符号化部215では符号化された符号化データは、このラインブロック毎に出力される。すなわち、上述の、5×3フィルタを用い、分解レベル=2まで処理を行った場合には、1画面のデータの出力において、最初が1ライン、2回目以降最後の回の前までが4ラインずつ、最後の回が8ラインの出力が得られる。
なお、係数並び替え部213で並び替えられた後の係数データをエントロピ符号化する場合、例えば図31で示した1回目のフィルタ処理では、最初の係数C5のラインをエントロピ符号化する際には、未だ過去のラインすなわち既に係数データが生成されたラインが存在していない。したがって、この場合には、この1ラインだけをエントロピ符号化する。これに対して、係数C1のラインを符号化する際には、係数C5および係数C4のラインが過去のラインとなっている。これら近接する複数ラインは、似たデータで構成されていることが考えられるので、これら複数ラインを纏めてエントロピ符号化することは、有効である。
また、上述では、ウェーブレット変換部210において、5×3フィルタを用いてウェーブレット変換によるフィルタ処理を行う例について説明したが、これはこの例に限られない。例えば、ウェーブレット変換部210では、例えば9×7フィルタといった、さらにタップ数の長いフィルタを用いることができる。この場合、フィルタのタップ数が長ければ、フィルタに蓄積されるライン数も多くなるので、画像データの入力から符号化データの出力までの遅延時間が長くなることになる。
また、上述では、説明のためウェーブレット変換の分解レベルを分解レベル=2としたが、これはこの例に限られず、さらに分解レベルを上げることができる。分解レベルを上げるほど、より高圧縮率を実現することができる。例えば、一般的には、ウェーブレット変換においては、分解レベル=4までフィルタ処理が繰り返される。なお、分解レベルが上がれば、遅延時間も増大することになる。
したがって、実際のシステムにこの発明の実施の形態を適用する際には、当該システムに要求される遅延時間や復号画像の画質などに応じて、フィルタのタップ数や、分解レベルを決めることが好ましい。このフィルタのタップ数や、分解レベルは、固定値とせずに、適応的に選択するようにもできる。
次に、以上のようなイントラ符号化部201による符号化処理全体の具体的な流れの例を図33のフローチャートを参照して説明する。
符号化処理が開始されると、ウェーブレット変換部210は、ステップS201において、処理対象ラインブロックの番号Aを初期設定にする。通常の場合、番号Aは「1」に設定される。設定が終了すると、ウェーブレット変換部210は、ステップS202において、最低域サブバンドにおいて上からA番目の1ラインを生成するのに必要なライン数(すなわち、1ラインブロック)の画像データを取得し、その画像データに対して、ステップS203において画面垂直方向に並ぶ画像データに対して分析フィルタリングを行う垂直分析フィルタリング処理を行い、ステップS204において画面水平方向に並ぶ画像データに対して分析フィルタリング処理を行う水平分析フィルタリング処理を行う。
ステップS205においてウェーブレット変換部210は、分析フィルタリング処理を最終レベルまで行ったか否かを判定し、分解レベルが最終レベルに達していないと判定した場合、処理をステップS203に戻し、現在の分解レベルに対して、ステップS203およびステップS204の分析フィルタリング処理を繰り返す。
ステップS205において、分析フィルタリング処理が最終レベルまで行われたと判定した場合、ウェーブレット変換部210は、処理をステップS206に進める。
ステップS206において、係数並び替え部213は、ラインブロックA(ピクチャ(インタレース方式の場合フィールド)の上からA番目のラインブロック)の係数を低域から高域の順番に並び替える。エントロピ符号化部215は、ステップS207において、その係数に対してライン毎にエントロピ符号化する。エントロピ符号化が終了すると、エントロピ符号化部215は、ステップS208においてラインブロックAの符号化データを外部に送出する。
ウェーブレット変換部210は、ステップS209において番号Aの値を「1」インクリメントして次のラインブロックを処理対象とし、ステップS210において、処理対象のピクチャ(インタレース方式の場合フィールド)について、未処理の画像入力ラインが存在するか否かを判定し、存在すると判定した場合、処理をステップS202に戻し、新たな処理対象のラインブロックに対してそれ以降の処理を繰り返す。
以上のようにステップS202乃至ステップS210の処理が繰り返し実行され、各ラインブロックが符号化される。そして、ステップS210において、未処理の画像入力ラインが存在しないと判定した場合、ウェーブレット変換部210は、そのピクチャに対する符号化処理を終了する。次のピクチャに対しては新たに符号化処理が開始される。
従来のウェーブレット変換の方法の場合、まず、水平分析フィルタリング処理をピクチャ(インタレース方式の場合フィールド)全体に対して行い、次に垂直分析フィルタリング処理をそのピクチャ全体に対して行う。そして得られた低域成分全体に対して同様の水平分析フィルタリング処理と垂直分析フィルタリング処理を順に行う。以上のように、分解レベルが最終レベルに達するまで、分析フィルタリング処理が再帰的に繰り返される。従って、各分析フィルタリング処理の結果をバッファに保持させる必要があるが、その際、バッファは、ピクチャ(インタレース方式の場合フィールド)全体、若しくは、その時点の分解レベルの低域成分全体のフィルタリング結果を保持する必要があり、多大なメモリ容量を必要とすることになる(保持するデータ量が多い)。
また、この場合、ピクチャ(インタレース方式の場合フィールド)内において全てのウェーブレット変換が終了しないと、後段の係数並び替えやエントロピ符号化を行うことができず、遅延時間が増大する。
これに対して、イントラ符号化部201のウェーブレット変換部210の場合、上述したようにラインブロック単位で垂直分析フィルタリング処理および水平分析フィルタリング処理を最終レベルまで連続して行うので、従来の方法と比較して、一度に(同時期に)保持する(バッファリングする)必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、最終レベルまで分析フィルタリング処理が行われることにより、後段の係数並び替えやエントロピ符号化等の処理も行うことができる(つまり、係数並び替えやエントロピ符号化をラインブロック単位で行うことができる)。従って、従来の方法と比較して遅延時間を大幅に低減させることができる。
つまり、図1の画像符号化装置は、イントラ符号化部14やイントラ符号化部15として、このイントラ符号化部201を適用することにより、従来の方法と比較して遅延時間を大幅に低減させながら、符号化効率を高めることができ、復号後の画像の主観画質を向上させることができる。また、出力するデータのビットレートを容易に制御することもできる。これにより、画像符号化装置の適用可能範囲がより拡張され、より多様なシステムに対応することができるようになる。例えばカメラにより撮影されて得られた動画像データのような実時間で得られる画像データを順次符号化して転送するようなシステムにも容易に適用可能であり、その場合においても、上述した効果を期待することができる。
また、図15の画像符号化装置がイントラ符号化部50として、このイントラ符号化部201を適用することにより、上述の効果に加えて、さらに、回路規模の縮小、コストの低減、適切な符号量制御の容易な実現等の効果も同時に得ることができる。
図34は、図28のイントラ符号化部201に対応するイントラ復号部の一例の構成を示す。図28のイントラ符号化部201のエントロピ符号化部215から出力された符号化データ(図28の符号化データ出力)は、図34のイントラ復号部220のエントロピ復号部221に供給され(図34の符号化データ入力)、エントロピ符号を復号され、係数データとされる。係数データは、係数バッファ部222に格納される。ウェーブレット逆変換部223は、係数バッファ部222に格納された係数データを用いて、例えば図30および図31を用いて説明したようにして合成フィルタによる合成フィルタ処理を行い、合成フィルタ処理の結果を再び係数バッファ部222に格納する。ウェーブレット逆変換部223は、この処理を分解レベルに応じて繰り返して、復号された画像データ(出力画像データ)を得る。
次に、以上のようなイントラ復号部220による復号処理全体の具体的な流れの例を図35のフローチャートを参照して説明する。
復号処理が開始されると、エントロピ復号部221は、ステップS231において、符号化データを取得し、ステップS232において、ライン毎に符号化データをエントロピ復号する。ステップS233において、係数バッファ部222は、その復号されて得られた係数を保持する。ステップS234においてウェーブレット逆変換部223は、係数バッファ部222に1ラインブロック分の係数が蓄積されたか否かを判定し、蓄積されていないと判定した場合、処理をステップS231に戻し、それ以降の処理を実行させ、係数バッファ部222に1ラインブロック分の係数が蓄積されるまで待機する。
ステップS234において係数バッファ部222に1ラインブロック分の係数が蓄積されたと判定した場合、ウェーブレット逆変換部223は、処理をステップS235に進め、係数バッファ部222に保持されている係数を1ラインブロック分読み出す。
そしてその読み出した係数に対して、ウェーブレット逆変換部223は、ステップS236において、画面垂直方向に並ぶ係数に対して合成フィルタリング処理を行う垂直合成フィルタリング処理を行い、ステップS237において、画面水平方向に並ぶ係数に対して合成フィルタリング処理を行う水平合成フィルタリング処理を行い、ステップS238において、合成フィルタリング処理がレベル1(分解レベルの値が「1」のレベル)まで終了したか否か、すなわち、ウェーブレット変換前の状態まで逆変換したか否かを判定し、レベル1まで達していないと判定した場合、処理をステップS236に戻し、ステップS236およびステップS237のフィルタリング処理を繰り返す。
ステップS238において、レベル1まで逆変換処理が終了したと判定した場合、ウェーブレット逆変換部223は、処理をステップS239に進め、逆変換処理により得られた画像データを外部に出力する。
ステップS240において、エントロピ復号部221は、復号処理を終了するか否かを判定し、符号化データの入力が継続しており、復号処理を終了しないと判定した場合、処理をステップS231に戻し、それ以降の処理を繰り返す。また、ステップS240において、符号化データの入力が終了するなどして復号処理を終了すると判定した場合、エントロピ復号部221は、復号処理を終了する。
従来のウェーブレット逆変換の方法の場合、処理対象の分解レベルの全係数に対して、まず、画面水平方向に水平合成フィルタリング処理を行い、次に画面垂直方向に垂直合成フィルタリング処理を行っていた。つまり、各合成フィルタリング処理の度に、その合成フィルタリング処理の結果をバッファに保持させる必要があるが、その際、バッファは、その時点の分解レベルの合成フィルタリング結果と、次の分解レベルの全係数を保持する必要があり、多大なメモリ容量を必要とすることになる(保持するデータ量が多い)。
また、この場合、ピクチャ(インタレース方式の場合フィールド)内において全てのウェーブレット逆変換が終了するまで画像データ出力が行われないので、入力から出力までの遅延時間が増大する。
これに対して、イントラ復号部220のウェーブレット逆変換部223の場合、上述したようにラインブロック単位で垂直合成フィルタリング処理および水平合成フィルタリング処理をレベル1まで連続して行うので、従来の方法と比較して、一度に(同時期に)バッファリングする必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、レベル1まで合成フィルタリング処理(ウェーブレット逆変換処理)が行われることにより、ピクチャ内の全画像データが得られる前に(ラインブロック単位で)画像データを順次出力させることができ、従来の方法と比較して遅延時間を大幅に低減させることができる。
つまり、図4の画像復号装置は、イントラ復号部21やイントラ復号部22として、このイントラ復号部220を適用することにより、従来の方法と比較して遅延時間を大幅に低減させながら、符号化装置における符号化効率を高めることができ、復号後の画像の主観画質を向上させることができる。また、符号化装置においてデータのビットレートを容易に制御することも可能になる。
また、図16の画像復号装置は、イントラ復号部60として、このイントラ復号部220を適用することにより、さらに、回路規模の縮小、製造コストの低減、符号化装置における適切な符号量制御の容易な実現等の効果も同時に得ることができる。
なお、図28に示されるイントラ符号化部201や、図34に示されるイントラ復号部220の各要素の動作(図33の符号化処理や図35の復号処理)は、例えば図示されないCPU(Central Processing Unit)により、所定のプログラムに従い制御される。プログラムは、例えば図示されないROM(Read Only Memory)に予め記憶される。これに限らず、イントラ符号化部やイントラ復号部を構成する各要素間でタイミング信号や制御信号を互いにやりとりして、全体として動作させることも可能である。また、イントラ符号化部やイントラ復号部は、コンピュータ装置上で動作するソフトウェアで実現することも可能である。
次に、他の実施の形態について説明する。この実施の形態では、上述の実施の形態で説明したシステムにおいて、イントラ符号化部201およびイントラ復号部220の各要素を並列的に動作させ、画像の圧縮符号化および復号処理をより低遅延で行うようにしたものである。
なお、この実施の形態では、図28乃至図35を用いて説明したイントラ符号化部201およびイントラ復号部220、ならびに、符号化方法および復号方法をそのまま適用可能なので、これらの説明は、煩雑さを避けるために省略する。
図36は、イントラ符号化部201およびイントラ復号部220の各要素の一例の並列動作を概略的に示す。この図36は、上述した図32と対応するものである。画像データの入力In-1(図36のA)に対して、エントロピ符号化部215で1回目のウェーブレット変換WT-1が施される(図36のB)。図31を参照し説明したように、この1回目のウェーブレット変換WT-1は、最初の3ラインが入力された時点で開始され、係数C1が生成される。すなわち、画像データIn-1の入力からウェーブレット変換WT-1が開始されるまで、3ライン分の遅延が生じる。
生成された係数データは、係数並び替え用バッファ部212に格納される。以降、入力された画像データに対してウェーブレット変換が施され、1回目の処理が終了すると、そのまま2回目のウェーブレット変換WT-2に処理が移行する。
2回目のウェーブレット変換WT-2のための画像データIn-2の入力と、当該2回目のウェーブレット変換WT-2の処理と並列的に、係数並び替え部213により3個の、係数C1、係数C4、および係数C5の並び替えOrd-1が実行される(図36のC)。
なお、ウェーブレット変換WT-1の終了から並び替えOrd-1が開始されるまでの遅延は、例えば、並び替え処理を係数並び替え部213に指示する制御信号の伝達に伴う遅延や、制御信号に対する係数並び替え部213の処理開始に要する遅延、プログラム処理に要する遅延といった、装置やシステム構成に基づく遅延であって、符号化処理における本質的な遅延ではない。
係数データは、並び替えが終了した順に係数並び替え用バッファ部212から読み出され、エントロピ符号化部215に供給され、エントロピ符号化EC-1が行われる(図36のD)。このエントロピ符号化EC-1は、3個の、係数C1、係数C4、および係数C5の、全ての並び替えの終了を待たずに開始することができる。例えば、最初に出力される係数C5による1ラインの並び替えが終了した時点で、当該係数C5に対するエントロピ符号化を開始することができる。この場合、並び替えOrd-1の処理開始からエントロピ符号化EC-1の処理開始までの遅延は、1ライン分となる。
エントロピ符号化部215によるエントロピ符号化EC-1が終了した符号化データは、何らかの伝送路を介してイントラ復号部220に伝送される(図36のE)。符号化データが伝送される伝送路としては、例えばインターネットなどの通信ネットワークが考えられる。この場合、符号化データは、IP(Internet Protocol)により伝送される。これに限らず、符号化データの伝送路としては、USB(Universal Serial Bus)やIEEE1394(Institute Electrical and Electronics Engineers 1394)といった通信インタフェースや、IEEE802.11規格などに代表される無線通信も考えられる。
イントラ符号化部201に対して、1回目の処理による7ライン分の画像データ入力に続けて、画面上の下端のラインまで画像データが順次、入力される。イントラ符号化部201では、画像データの入力In-n(nは2以上)に伴い、上述したようにして、4ライン毎にウェーブレット変換WT-n、並び替えOrd-nおよびエントロピ符号化EC-nを行う。イントラ符号化部201における最後の回の処理に対する並び替えOrdおよびエントロピ符号化ECは、6ラインに対して行われる。これらの処理は、イントラ符号化部201において、図36のA乃至図36のDに例示されるように、並列的に行われる。
イントラ符号化部201によるエントロピ符号化EC-1により符号化された符号化データが、イントラ復号部220に伝送路を介して伝送され、エントロピ復号部221に供給される。エントロピ復号部221は、供給された、エントロピ符号化EC-1により符号化された符号化データに対して、順次、エントロピ符号の復号iEC-1を行い、係数データを復元する(図36のF)。復元された係数データは、順次、係数バッファ部222に格納される。ウェーブレット逆変換部223は、係数バッファ部222にウェーブレット逆変換が行えるだけ係数データが格納されたら、係数バッファ部222から係数データを読み出して、読み出された係数データを用いてウェーブレット逆変換iWT-1を行う(図36のG)。
図31を参照して説明したように、ウェーブレット逆変換部223によるウェーブレット逆変換iWT-1は、係数C4および係数C5が係数バッファ部222に格納された時点で開始することができる。したがって、エントロピ復号部221による復号iEC-1が開始されてからウェーブレット逆変換部223によるウェーブレット逆変換iWT-1が開始されるまでの遅延は、2ライン分となる。
ウェーブレット逆変換部223において、1回目のウェーブレット変換による3ライン分のウェーブレット逆変換iWT-1が終了すると、ウェーブレット逆変換iWT-1で生成された画像データの出力Out-1が行われる(図36のH)。出力Out-1では、図31および図32を用いて説明したように、第1ライン目の画像データが出力される。
イントラ復号部220に対して、イントラ符号化部201における1回目の処理による3ライン分の符号化された係数データの入力に続けて、エントロピ符号化EC-n(nは2以上)により符号化された係数データが順次、入力される。イントラ復号部220では、入力された係数データに対して、上述したようにして、4ライン毎にエントロピ復号iEC-nおよびウェーブレット逆変換iWT-nを行い、ウェーブレット逆変換iWT-nにより復元された画像データの出力Out-nを順次、行う。イントラ符号化部201の最後の回に対応するエントロピ復号iECおよびウェーブレット逆変換iWTは、6ラインに対して行われ、出力Outは、8ラインが出力される。これらの処理は、イントラ復号部220において、図36のF乃至図36のHに例示されるように、並列的に行われる。
上述のようにして、画面上部から下部の方向に順番に、イントラ符号化部201およびイントラ復号部220における各処理を並列的に行うことで、画像圧縮処理および画像復号処理をより低遅延で行うことが可能となる。
図36を参照して、5×3フィルタを用いて分解レベル=2までウェーブレット変換を行った場合の、画像入力から画像出力までの遅延時間を計算してみる。第1ライン目の画像データがイントラ符号化部201に入力されてから、この第1ライン目の画像データがイントラ復号部220から出力されるまでの遅延時間は、下記の各要素の総和となる。なお、ここでは、伝送路における遅延や、装置各部の実際の処理タイミングに伴う遅延などの、システムの構成により異なる遅延は、除外している。
(1)最初のライン入力から7ライン分のウェーブレット変換WT-1が終了するまでの遅延D_WT
(2)3ライン分の計数並び替えOrd-1に伴う時間D_Ord
(3)3ライン分のエントロピ符号化EC-1に伴う時間D_EC
(4)3ライン分のエントロピ復号iEC-1に伴う時間D_iEC
(5)3ライン分のウェーブレット逆変換iWT-1に伴う時間D_iWT
(2)3ライン分の計数並び替えOrd-1に伴う時間D_Ord
(3)3ライン分のエントロピ符号化EC-1に伴う時間D_EC
(4)3ライン分のエントロピ復号iEC-1に伴う時間D_iEC
(5)3ライン分のウェーブレット逆変換iWT-1に伴う時間D_iWT
図36を参照して、上述の各要素による遅延の計算を試みる。(1)の遅延D_WTは、10ライン分の時間である。(2)の時間D_Ord、(3)の時間D_EC、(4)の時間D_iEC、および(5)の時間D_iWTは、それぞれ3ライン分の時間である。また、イントラ符号化部201において、並び替えOrd-1が開始されてから1ライン後には、エントロピ符号化EC-1を開始することができる。同様に、イントラ復号部220において、エントロピ復号iEC-1が開始されてから2ライン後には、ウェーブレット逆変換iWT-1を開始することができる。また、エントロピ復号iEC-1は、エントロピ符号化EC-1で1ライン分の符号化が終了した時点で処理を開始することができる。
したがって、この図36の例では、イントラ符号化部201に第1ライン目の画像データが入力されてから、イントラ復号部220から当該第1ライン目の画像データが出力されるまでの遅延時間は、10+1+1+2+3=17ライン分となる。
遅延時間について、より具体的な例を挙げて考察する。入力される画像データがHDTV(High Definition Television)のインタレースビデオ信号の場合、例えば1920画素×1080ラインの解像度で1フレームが構成され、1フィールドは、1920画素×540ラインとなる。したがって、フレーム周波数を30Hzとした場合、1フィールドの540ラインが16.67msec(=1sec/60フィールド)の時間に、イントラ符号化部201に入力されることになる。
したがって、7ライン分の画像データの入力に伴う遅延時間は、0.216msec(=16.67msec×7/540ライン)であり、例えば1フィールドの更新時間に対して非常に短い時間となる。また、上述した(1)の遅延D_WT、(2)の時間D_Ord、(3)の時間D_EC、(4)の時間D_iEC、および(5)の時間D_iWTの総和についても、処理対象のライン数が少ないため、遅延時間が非常に短縮される。各処理を行う要素をハードウェア化すれば、処理時間をさらに短縮することも可能である。
次に、他の実施の形態について説明する。上述した例では、イントラ符号化部201において、ウェーブレット変換を行った後に係数データの並び替えを行っていた。これに対して、この実施の形態では、係数データの並び替えを、エントロピ符号化の後に行うようにしている。すなわち、この場合のイントラ符号化部では、入力された画像データに対してウェーブレット変換を行い生成された係数に対してエントロピ符号化を施し、エントロピ符号化されたデータに対して並び替え処理を行う。このように、係数データの並び替えをエントロピ符号化の後で行うことで、係数並び替えバッファにおいて必要とされる記憶容量を抑えることができる。
例えば、入力画像データのビット精度が8ビットの場合、ウェーブレット変換を複数レベル分解まで行うと、生成される係数データのビット精度が例えば12ビット程度となる。エントロピ符号化処理の前に係数並び替え処理を行う場合、係数並び替え用バッファ部は、このビット精度12ビットの係数データを、所定ライン数分、格納する必要がある。ウェーブレット変換で生成された係数データをエントロピ符号化した後に並び替え処理するようにすれば、係数並び替え用バッファは、エントロピ符号化により圧縮されたデータを格納すればよいので、より小さい記憶容量で済むことになる。
図37は、この実施の形態によるイントラ符号化部の構成例を示すブロック図である。なお、図37において、上述した図28と共通する部分には同一の符号を付し、詳細な説明を省略する。
このイントラ符号化部230は、図28のイントラ符号化部201に対応するものである。従って、図37に示されるイントラ符号化部230においても、イントラ符号化部201の場合と同様に、入力画像データは、途中計算用バッファ部211に一旦格納される。ウェーブレット変換部210は、途中計算用バッファ部211に格納された画像データに対して、イントラ符号化部201の場合と同様にウェーブレット変換を所定に施す。ウェーブレット変換で生成された係数データは、エントロピ符号化部215に供給される。エントロピ符号化部215は、レート制御部214と連動的に動作し、出力される圧縮符号化データのビットレートが略一定値となるように制御され、供給された係数データに対してエントロピ符号化処理を行う。つまり、エントロピ符号化部215は、係数の順序に関わらず、取得した係数を、その取得した順序で同様に符号化する。
ウェーブレット変換により生成された係数データがエントロピ符号化部215でエントロピ符号化された符号化データは、符号並び替え用バッファ部231に一旦格納される。符号並び替え部232は、符号並び替え用バッファ部231に並び替える符号化データが格納され次第、符号並び替え用バッファ部231から符号化データを並び替えて読み出す。上述したように、ウェーブレット変換部210で生成された係数データは、高域成分から低域成分の順に、画面の上端側から下端側に向けて生成される。復号側において低遅延で画像データの出力を行うためには、符号並び替え用バッファ部231に格納された符号化データを、ウェーブレット変換による係数データの低域成分から高域成分の順に並び替えて読み出す。
符号並び替え用バッファ部231から読み出された符号化データが出力の符号化データとして、例えば伝送路に送出される。
なお、この実施の形態によるイントラ符号化部230で符号化され出力されたデータは、図34を用いて既に説明した、実施の形態によるイントラ復号部220により、イントラ符号化部201において符号化されたデータを復号する場合と同様に復号することができる。すなわち、例えば伝送路を介してイントラ復号部220に入力された符号化データは、エントロピ復号部221でエントロピ符号の復号がなされ、係数データが復元される。復元された係数データは、係数バッファ部222に順次、格納される。ウェーブレット逆変換部223は、係数バッファ部222に格納された係数データに対してウェーブレット逆変換を施し、画像データを出力する。
次に、さらに他の実施の形態について説明する。上述までの、各実施の形態では、ウェーブレット変換で生成された係数データの並び替え処理を、図38に一例が示されるように、イントラ符号化部側で行っていた。これに対して、この実施の形態では、ウェーブレット変換により生成された係数データの並び替え処理を、図39で一例が示されるように、イントラ復号部側で行うようにしている。
ウェーブレット変換で生成された係数データを並び替える処理では、以上において説明したように、係数並び替え用バッファの記憶容量として比較的大容量が必要となると共に、係数並び替えの処理自体にも、高い処理能力が要求される。この場合でも、イントラ符号化部側の処理能力がある程度以上高い場合には、上述した各実施の形態で説明したように、イントラ符号化部側で係数並び替え処理を行っても、何ら問題は生じない。
ここで、携帯電話端末やPDA(Personal Digital Assistant)といった所謂モバイル端末などの、比較的処理能力の低い機器にイントラ符号化部が搭載される場合について考える。例えば、近年では、携帯電話端末に対して撮像機能を付加した製品が広く普及している(カメラ機能付き携帯電話端末と呼ぶ)。このようなカメラ機能付き携帯電話端末で撮像された画像データをウェーブレット変換およびエントロピ符号化により圧縮符号化し、無線あるいは有線通信を介して伝送することが考えられる。
このような例えばモバイル端末は、CPUの処理能力も限られ、また、メモリ容量にもある程度の上限がある。そのため、上述したような係数並び替えに伴う処理の負荷などは、無視できない問題となる。
そこで、図39に一例が示されるように、並び替え処理をイントラ復号部側に組み入れることで、イントラ符号化部側の負荷が軽くなり、イントラ符号化部をモバイル端末などの比較的処理能力が低い機器に搭載することが可能となる。
図40は、この場合のイントラ符号化部の構成例を示すブロック図である。なお、この図40において、上述の図28と共通する部分には同一の符号を付して、詳細な説明を省略する。
この図40に示されるイントラ符号化部241の構成は、上述の図28で示したイントラ符号化部201の構成に対して係数並び替え部213および係数並び替え用バッファ部212を除去した構成となっている。すなわち、この実施の形態では、イントラ符号化部241としては、従来から用いられる、ウェーブレット変換部210、途中計算用バッファ部211、エントロピ符号化部215およびレート制御部214を組み合わせた構成を適用することが可能である。
入力された画像データは、途中計算用バッファ部211に一時的に溜め込まれる。ウェーブレット変換部210は、途中計算用バッファ部211に溜め込まれた画像データに対してウェーブレット変換を施し、生成された係数データを、係数データの生成順に順次、エントロピ符号化部215に供給する。すなわち、エントロピ符号化部215に対して、ウェーブレット変換の順序に従い高域成分から低域成分の順に、生成された係数データが供給される。エントロピ符号化部215は、供給された係数に対して、レート制御部214により出力データのビットレートを制御されながらエントロピ符号化を施す。エントロピ符号化部215から、ウェーブレット変換により生成された係数データがエントロピ符号化された符号化データが出力される。
図41は、この実施の形態によるイントラ復号部の構成例を示すブロック図である。なお、この図41において、上述の図34と共通する部分には同一の符号を付し、詳細な説明を省略する。
図40で説明したイントラ符号化部241のエントロピ符号化部215から出力された符号化データは、図41のイントラ復号部242のエントロピ復号部221に供給され、エントロピ符号を復号され係数データとされる。係数データは、係数バッファ部222を介して係数並び替え用バッファ部243に格納される。ウェーブレット逆変換部223は、係数並び替え用バッファ部243に係数データの並び替えが可能となるまで係数データが蓄積されると、係数並び替え用バッファ部243に格納された係数データを、低域成分から高域成分の順に並び替えて読み出し、読み出された順に係数データを用いてウェーブレット逆変換処理を行う。5×3フィルタを用いる場合は、上述の図39で示したようになる。
すなわち、ウェーブレット逆変換部223は、例えば1フレームの先頭からの処理であれば、係数並び替え用バッファ部243にエントロピ符号の復号がなされた係数C1、係数C4、および係数C5が格納された時点で、係数並び替え用バッファ部243から係数データを読み出し、ウェーブレット逆変換処理を行う。ウェーブレット逆変換部223でウェーブレット逆変換を施されたデータは、順次、出力画像データとして出力される。
なお、この実施の形態の場合でも、図36を用いて説明した場合と同様ように、イントラ符号化部241における各要素の処理と、伝送路に対する符号化データの伝送と、イントラ復号部242における各要素の処理とが並列的に実行される。
次に、他の実施の形態について説明する。この実施の形態では、上述した各実施の形態によるイントラ符号化部とイントラ復号部の間で授受される符号化データがパケット化される。
図42は、その符号化データの授受の様子の例を説明する模式図である。図42に示される例の場合においても、上述した他の実施の形態と同様に、画像データは、ラインブロック毎に、所定のライン数分だけ入力されながらウェーブレット変換される(サブバンド251)。そして、所定のウェーブレット変換分解レベルまで達した際に、最低域サブバンドから最高域サブバンドまでの係数ラインが、生成された順序とは逆に、つまり低域から高域の順番に並び替えられる。
図42のサブバンド251において、斜め線、縦線、および波線の模様分けされた部分は、それぞれ異なるラインブロックである(矢印で示されるように、サブバンド251の白ヌキ部分も同様にラインブロック毎に分割して処理される)。並び替えられた後のラインブロックの係数が上述した様にエントロピ符号化され、符号化データが生成される。
ここで、例えばイントラ符号化部が符号化データをそのまま送出すると、イントラ復号部が各ラインブロックの境界を識別することが困難な(若しくは煩雑な処理が必要になる)場合がある。そこで、本実施の形態においては、イントラ符号化部が、符号化データに例えばラインブロック単位でヘッダを付加し、ヘッダと符号化データとから成るパケットとして送出するようにする。
つまり、イントラ符号化部は、図42に示されるように、1番目のラインブロック(Lineblock-1)の符号化データ(エンコードデータ)を生成すると、それをパケット化し、送信パケット261としてイントラ復号部に送出する。イントラ復号部は、そのパケットを受信すると(受信パケット271)、その符号化データを復号(デコード)する。
同様に、イントラ符号化部は、2番目のラインブロック(Lineblock-2)の符号化データを生成すると、それをパケット化し、送信パケット262としてイントラ復号部に送出する。イントラ復号部は、そのパケットを受信すると(受信パケット272)、その符号化データを復号(デコード)する。さらに同様に、イントラ符号化部は、3番目のラインブロック(Lineblock-3)の符号化データを生成すると、それをパケット化し、送信パケット263としてイントラ復号部に送出する。イントラ復号部は、そのパケットを受信すると(受信パケット273)、その符号化データを復号(デコード)する。
イントラ符号化部およびイントラ復号部は、以上のような処理を、X番目の最終ラインブロック(Lineblock-X)まで繰り返す(送信パケット264、受信パケット274)。以上のようにしてイントラ復号部において復号画像281が生成される。
図43にヘッダの構成例を示す。上述したようにパケットはヘッダ(Header)291と符号化データにより構成されるが、そのヘッダ291には、ラインブロックの番号(NUM)293と符号化データ長(LEN)294の記述が含まれている。
イントラ復号部は、受信した符号化データに付加されたヘッダに含まれるこれらの情報を読み取ることにより、各ラインブロックの境界を容易に識別することができ、復号処理の負荷や処理時間を低減させることができる。
なお、図43に示されるように、さらに、ラインブロックを構成するサブバンド毎の量子化ステップサイズ(Δ1乃至ΔN)292の記述を付加するようにしてもよい。これにより、イントラ復号部は、サブバンド毎の逆量子化を行うことができ、イントラ符号化部において行われるビットプレーンによるビットレートの制御に加えて、よりきめ細かな画質制御を行うことが出来る。
また、イントラ符号化部およびイントラ復号部は、上述したような符号化、パケット化、パケットの送受信、および復号等の各処理を、上述したように、ラインブロック毎に、同時並行的に(パイプライン化して)実行するようにしてもよい。
このようにすることにより、イントラ復号部において画像出力が得られるまでの遅延時間を大幅に低減させることができる。図42においては一例として、インタレース動画(60フィールド/秒)での動作例を示している。この例において、1フィールドの時間は、1秒÷60=約16.7msecであるが、同時並行的に各処理を行うようにすることにより、約5msecの遅延時間で画像出力が得られるようにすることが出来る。
次に、さらに他の実施の形態について説明する。この実施の形態では、上述した各実施の形態におけるイントラ符号化部におけるエントロピ符号化と、イントラ復号部におけるエントロピ復号の具体的な例を示す。上述した各実施の形態において、エントロピ符号化はどのような方法を用いるようにしてもよいが、本実施の形態に示される方式を用いることにより、イントラ符号化部は、より容易な演算により符号化を行うことができるので、遅延時間、消費電力、およびバッファメモリ量等を低減させることができる。
また、詳細については後述するが、本実施の形態に示される符号化方式においては、画像データに基づくデータをビットプレーンに分解して行うので、上述したように、画像データに基づくデータをビットプレーンに分解し、ビットプレーンに分解されたデータを、ビット位置が最上位のビットプレーンから所定ビット位置に対応するビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力する方法にも容易に適用することができ、出力するデータのビットレートを容易に制御することができるという利点を残したまま、符号化演算の負荷も軽減させ、遅延時間、消費電力、およびバッファメモリ量等を低減させることができる。
なお、上述したように、各実施の形態において、エントロピ符号化の際に係数データを量子化してから符号化を行うことができるが、本実施の形態においても同様であり、係数データの量子化を行ってからエントロピ符号化を行うようにしてもよいし、量子化を行わずに係数データをエントロピ符号化するようにしてもよい。ただし、後述するように、量子化を行う場合の方が画質をより向上させることができるので、以下においては、量子化を行う場合のエントロピ符号化についてのみ説明する。換言すれば、量子化を行わない場合のエントロピ符号化についての説明は省略するが、量子化を行う場合のエントロピ符号化の説明を適用することができる。
また、以下においては、係数並び替えについての説明を省略する。上述した各実施の形態においては、並び替えられた係数データをエントロピ符号化する場合、エントロピ符号化を行った符号化データを並び替える場合、および、エントロピ復号の後に係数データを並び替える場合について説明したが、この並び替えは基本的にウェーブレット逆変換処理を高速に行うための処理であり、基本的にエントロピ符号化処理(およびエントロピ復号処理)とは関係が無い。また、係数並び替えを行う場合であっても、その並び替えはラインブロック内において行われるため、具体的な内容については後述するが、基本的に本実施の形態において説明するエントロピ符号化には影響しない。つまり、順番を並び替えられた係数データを符号化する場合、並び替える前の係数データを符号化する場合のいずれの場合も本実施の形態のエントロピ符号化方法を同様に適用することができる。従って、以下においては説明の簡略化のため係数並び替えについての説明を省略する。
換言すれば、以下においては、本実施の形態のエントロピ符号化を、図40に示されるイントラ符号化部241のエントロピ符号化部215において量子化処理を行う場合について説明する。なお、イントラ復号部についても同様の理由から、その場合のイントラ符号化部に対応するものについてのみ説明し、係数並び替えを行う場合や、逆量子化を行わない場合のイントラ復号部についての説明は省略する。
図44は、本発明を適用したイントラ符号化部の構成例を示すブロック図である。
イントラ符号化部311は、ウェーブレット変換部321、量子化部322、およびエントロピ符号化部323を有する。
ウェーブレット変換部321は、例えば、図40のウェーブレット変換部210に対応し、同様の処理を行う。つまり、ウェーブレット変換部321には、例えば、必要に応じてDCレベルシフトが施されたコンポーネント信号である画像(データ)が入力される。ウェーブレット変換部321は、その入力された画像をウェーブレット変換して複数のサブバンドに分解する。ウェーブレット変換部321は、ウェーブレット変換により得られたサブバンドのウェーブレット係数を量子化部322に供給する。
量子化部322は、ウェーブレット変換部321から供給されたウェーブレット係数を量子化し、その結果として得られた量子化係数をエントロピ符号化部323に供給する。
エントロピ符号化部323は、量子化部322から供給された量子化係数をエントロピ符号化し、これにより得られた符号を符号化された画像(データ)として出力する。エントロピ符号化部323から出力された画像は、例えば、レート制御処理された後、パケット化されて記録されたり、イントラ符号化部311に接続された他の装置(図示せず)に供給されたりする。
すなわち、量子化部322およびエントロピ符号化部323は、例えば図40のエントロピ符号化部215およびレート制御部214に対応する。
次に、図45および図46を参照して、図44のエントロピ符号化部323が行うエントロピ符号化について説明する。
例えば、図45に示すように、1つのサブバンドがラインL1乃至ラインL6の6本のラインから構成されているとし、xy座標系におけるライン上の画素に対応する位置を(x,y)とする。ここで、各ラインの図中、左端の位置のx座標は0とされ、ラインL1のy座標は0とされる。
量子化部322からエントロピ符号化部323には、ビットプレーン表現された、サブバンドの各位置(x,y)における量子化係数がラインL1からラインL6までラスタスキャン順に入力される。
換言すれば、エントロピ符号化部323には、まず、ラインL1の左端の位置(0,0)に対応する量子化係数が入力される。次にその位置(0,0)の右隣の位置(1,0)に対応する量子化係数がエントロピ符号化部323に入力され、ラインL1の右端の位置まで、量子化係数が入力された位置の右隣の位置に対応する量子化係数がエントロピ符号化部323に順次入力される。そして、ラインL1上の位置の量子化係数が全て入力されると、ラインL2の左端の位置(0,1)から順番に右端の位置まで、ラインL2上の各位置に対応する量子化係数がエントロピ符号化部323に入力され、同様にラインL3からラインL6まで、各ライン上の位置に対応する量子化係数がエントロピ符号化部323に入力される。
例えば、図46の図中、左上に示すように、図45のラインL1の左端の位置の量子化係数から順番に、12個の量子化係数がエントロピ符号化部323に入力されると、エントロピ符号化部323は、予め定められた所定の数w(図46ではw=4)ずつ量子化係数を符号化する。
ここで、図46の左上に示された各量子化係数は、その符号の絶対値が2進数の桁に分けられて表現されて(ビットプレーン表現されて)おり、図46の例では、エントロピ符号化部323には、1つのライン(図45のラインL1)の量子化係数“-0101”、“+0011”、“-0110”、“+0010”、“+0011”、“+0110”、“0000”、“-0011”、“+1101”、“-0100”、“+0111”、および“-1010”が順番に入力される。
1つの量子化係数は、“+”(正)または“−”(負)で表わされる量子化係数の符号(以下、量子化係数のサイン(Sign)と称する。)と、2進数で表わされた量子化係数の絶対値とからなる。図46では、量子化係数の絶対値の各桁の値を示す各ビットのうち、図中、最も上側のビットが最上位ビット(最上位の桁のビット)を表わしている。したがって、例えば、量子化係数“-0101”は、そのサインが“−”であり、2進数で表わされた絶対値が“0101”であるので、この量子化係数は10進数で表わすと“-5”となる。
まず、エントロピ符号化部323は、入力された1つのラインの量子化係数(の絶対値)が全て0であるか否かを判定し、その判定結果に応じて、これから符号化するラインの量子化係数が全て0であるか否かを示す符号を出力する。量子化係数が全て0であると判定した場合、エントロピ符号化部323は、ラインの量子化係数が全て0であるか否かを示す符号として0を出力して、現在行っているラインの量子化係数の符号化を終了する。また、全ての量子化係数の値が0ではない(0の量子化係数のみではない)と判定した場合、エントロピ符号化部323は、ラインの量子化係数が全て0であるか否かを示す符号として1を出力する。
図中、左上に示した12個の量子化係数が入力された場合、入力されたラインの量子化係数は0のみではないので、図中、右上に示すように、エントロピ符号化部323は符号として1を出力する。
ラインの量子化係数が全て0であるか否かを示す符号として、量子化係数が全て0でないことを示す符号1が出力されると、次に、エントロピ符号化部323は、入力された最初の4つ(w個)の量子化係数“-0101”、“+0011”、“-0110”、および“+0010”の符号化を行う。
エントロピ符号化部323は、今回入力された連続する4つの量子化係数の最大有効桁数(図46における変数Bの値)と、前回符号化した(入力された)4つ(w個)の量子化係数の最大有効桁数とを比較し、最大有効桁数が変化したか否かを判定して、量子化係数の最大有効桁数を示す符号を出力する。
ここで、最大有効桁数とは、まとめて符号化する4つ(w個)の量子化係数のうち、絶対値が最も大きい量子化係数の有効桁数をいう。換言すれば、最大有効桁数は、4つの量子化係数のうち、絶対値が最も大きい量子化係数の最上位にある1が何桁目にあるかを示す。したがって、例えば、まとめて符号化する4つの量子化係数“-0101”、“+0011”、“-0110”、および“+0010”の最大有効桁数は、絶対値が最も大きい量子化係数“-0110”の最上位にある1の桁である“3”とされる。
また、量子化係数の最大有効桁数を示す符号は、最大有効桁数が変化したか否かを示す符号、最大有効桁数が増加したか、または減少したかを示す符号、および最大有効桁数の変化量を示す符号からなり、最大有効桁数が変化していない場合、最大有効桁数が増加したか、または減少したかを示す符号、および最大有効桁数の変化量を示す符号は出力されない。
エントロピ符号化部323は、最大有効桁数の比較の結果、最大有効桁数が変化した場合、最大有効桁数が変化したことを示す符号1を出力し、最大有効桁数が変化していない場合、最大有効桁数が変化していないことを示す符号0を出力する。
なお、最大有効桁数が変化したか否かを判定する場合に、今回初めて4つの量子化係数が入力されるとき、すなわち、符号化するサブバンドの量子化係数が初めて入力されるとき(例えば、図45のラインL1の左端から順番に4つの量子化係数が入力されるとき)、前回、そのサブバンドの量子化係数は符号化されていないので、前回符号化した4つ(w個)の量子化係数の最大有効桁数は0とされる。
したがって、エントロピ符号化部323は、今回入力された4つの量子化係数“-0101”、“+0011”、“-0110”、および“+0010”の最大有効桁数3と、前回符号化した量子化係数の最大有効桁数0とを比較し、最大有効桁数が変化したので符号1を出力する。
また、エントロピ符号化部323は、最大有効桁数が変化したことを示す符号1に続いて、最大有効桁数が増加したか、または減少したかを示す符号を出力する。ここで、エントロピ符号化部323は、最大有効桁数が増加した場合には0を出力し、最大有効桁数が減少した場合には1を出力する。
前回の最大有効桁数は0であり、今回の最大有効桁数は3であるので、図中、右上に示すように、エントロピ符号化部323は、最大有効桁数が増加したことを示す符号0を出力する。
さらに、エントロピ符号化部323は、最大有効桁数が増加したか、または減少したかを示す符号を出力すると、最大有効桁数がどれだけ増加または減少したかを示す符号、すなわち、最大有効桁数の変化量を示す符号を出力する。具体的には、エントロピ符号化部323は、最大有効桁数の変化量(すなわち、増加量または減少量)をnとすると、(n-1)個の符号0を出力し、それらの0に続いて符号1を出力する。
図3の最初の4つの量子化係数を符号化する場合、最大有効桁数の変化量は3(=3-0)であるので、エントロピ符号化部323は符号として、2(=3-1)個の0を出力し、さらに1を出力する。
次に、エントロピ符号化部323は、今回符号化する4つ(w個)の量子化係数のそれぞれの絶対値を示す最大有効桁数分の符号を出力する。すなわち、エントロピ符号化部323は、それぞれの量子化係数について、最大有効桁数により示される有効桁の最大の桁から順番に最小の桁まで、量子化係数の絶対値の各桁の値を示す符号を出力する。
今回符号化する量子化係数は、“-0101”、“+0011”、“-0110”、および“+0010”であるので、エントロピ符号化部323は、まず、最初に入力された量子化係数“-0101”の絶対値を示す最大有効桁数分の符号を出力する。ここで、今回の最大有効桁数は3であるので、エントロピ符号化部323は、量子化係数“-0101”の最大有効桁数により示される有効桁の最大の桁(すなわち、3桁目)の値“1”、最大の桁より1つ下の桁(2桁目)の値“0”、および最下位の桁の値“1”を出力する。これにより、量子化係数“-0101”の絶対値を示す有効桁数分の符号“101”が出力される。
同様に、エントロピ符号化部323は、量子化係数“+0011”、“-0110”、および“+0010”の絶対値を示す有効桁数分の符号“011”、“110”、および“010”を順番に出力する。したがって、量子化係数は、“-0101”、“+0011”、“-0110”、および“+0010”のそれぞれの絶対値を示す最大有効桁数分の符号として、“101011110010”が出力される。このように、エントロピ符号化部323からは、量子化係数の絶対値を示す符号として、符号化する4つの量子化係数の最大有効桁数に応じた長さの符号が出力される。
そして最後に、エントロピ符号化部323は、4つ(w個)の量子化係数のうち、絶対値が0でない量子化係数のそれぞれのサインを示す符号を出力する。ここで、エントロピ符号化部323は、量子化係数のサインが“+”(正)である場合、符号0を出力し、サインが“−”(負)である場合、符号1を出力する。
今回符号化する量子化係数は、“-0101”、“+0011”、“-0110”、および“+0010”であり、これらの量子化係数のサインは、順に負、正、負、正であるので、図中、右上に示すように、エントロピ符号化部323は、量子化係数のそれぞれのサインを示す符号として、“1010”を出力する。
最初に入力された4つの量子化係数が符号化されると、エントロピ符号化部323は、続いて、次の連続する4つの量子化係数“+0011”、“+0110”、“0000”、および“-0011”の符号化を行う。
最初に(前回)入力された量子化係数の符号化における場合と同様に、まず、エントロピ符号化部323は、今回、新たに入力された4つ(w個)の量子化係数の最大有効桁数と、前回符号化した4つの量子化係数の最大有効桁数とを比較する。
今回入力された4つ(w個)の量子化係数“+0011”、“+0110”、“0000”、および“-0011”の最大有効桁数は、絶対値が最も大きい量子化係数“+0110”の最上位にある1の桁である“3”であり、前回符号化した量子化係数の最大有効桁数“3”と同じであるので、エントロピ符号化部323は、最大有効桁数が変化していないことを示す符号0を出力する。
続いて、エントロピ符号化部323は、今回符号化する4つ(w個)の量子化係数“+0011”、“+0110”、“0000”、および“-0011”のそれぞれの絶対値を示す最大有効桁数分の符号“011”、“110”、“000”、および“011”が順番に並べられた符号“011110000011”を出力する。
そして、量子化係数の絶対値を示す符号が出力されると、エントロピ符号化部323は、4つの量子化係数のうち、絶対値が0でない量子化係数のそれぞれのサインを示す符号を出力する。
今回符号化する量子化係数は、“+0011”、“+0110”、“0000”、および“-0011”であり、3つ目の量子化係数“0000”はその絶対値が0であるので、エントロピ符号化部323は、0でない量子化係数“+0011”、“+0110”、および“-0011”のそれぞれのサイン(正、正、負)を示す符号“001”を出力する。
4つの量子化係数“+0011”、“+0110”、“0000”、および“-0011”が符号化されると、さらに、エントロピ符号化部323は、次の4つの量子化係数“+1101”、“-0100”、“+0111”、および“-1010”の符号化を行う。
まず、エントロピ符号化部323は、今回、新たに入力された4つ(w個)の量子化係数の最大有効桁数と、前回符号化した4つの量子化係数の最大有効桁数とを比較する。
今回入力された4つ(w個)の量子化係数“+1101”、“-0100”、“+0111”、および“-1010”の最大有効桁数は、絶対値が最も大きい量子化係数“+1101”の最上位にある1の桁である“4”であり、前回符号化した量子化係数の最大有効桁数“3”とは異なるので、エントロピ符号化部323は、最大有効桁数が変化したことを示す符号1を出力する。
また、前回の最大有効桁数は3であり、今回の最大有効桁数は4であるので、エントロピ符号化部323は、図中、右側に示すように、最大有効桁数が増加したことを示す符号0を出力する。
さらに、エントロピ符号化部323は、最大有効桁数がどれだけ増加または減少したかを示す符号を出力する。この場合、最大有効桁数の変化量は1(=4-3)であるので、エントロピ符号化部323は符号として、0(=1-1)個の0を出力し、さらに1を出力する(すなわち、符号1を出力する)。
次に、エントロピ符号化部323は、今回符号化する4つ(w個)の量子化係数“+1101”、“-0100”、“+0111”、および“-1010”のそれぞれの絶対値を示す最大有効桁数分の符号“1101”、“0100”、“0111”、および“1010”が順番に並べられた符号“1101010001111010”を出力する。
そして、量子化係数の絶対値を示す符号が出力されると、エントロピ符号化部323は、4つの量子化係数のうち、0でない量子化係数のそれぞれのサインを示す符号を出力する。
今回符号化する量子化係数は、“+1101”、“-0100”、“+0111”、および“-1010”であり、これらの量子化係数のサインは、順番に正、負、正、負であるので、図中、右下に示すように、エントロピ符号化部323は、量子化係数のそれぞれのサインを示す符号として、“0101”を出力する。
このようにして、エントロピ符号化部323は、入力された量子化係数を、連続する予め定められた数(w個)ずつ符号化する。これにより、エントロピ符号化部323からは、符号化するラインの量子化係数が全て0であるか否かを示す符号が出力され、ラインの量子化係数が全て0でないことを示す符号が出力されると、次に、w個の量子化係数の最大有効桁数を示す符号、w個の量子化係数の絶対値(ビットプレーン表現)を示す符号、およびそれらの量子化係数のサインを示す符号が出力される。
そして、これらのw個の量子化係数の最大有効桁数を示す符号、w個の量子化係数の絶対値を示す符号、および量子化係数のサインを示す符号のそれぞれは、そのラインの量子化係数が全て符号化されるまで、次のw個の量子化係数の最大有効桁数を示す符号、量子化係数の絶対値を示す符号、および量子化係数のサインを示す符号が繰り返し出力される。
なお、量子化係数がラスタスキャン順に符号化されると説明したが、量子化係数が符号化される順番は必ずしもラスタスキャン順である必要はない。例えば、図45に示したサブバンドの量子化係数が符号化される場合、最初に位置(0,0)、(0,1)、(0,2)、および(0,3)(すなわち、ラインL1乃至ラインL4のそれぞれの図中、左端の位置)の量子化係数が符号化され、次に、位置(1,0)、(1,1)、(1,2)、および(1,3)の量子化係数が符号化されるといったように、図中、縦方向に並ぶ4つの位置の量子化係数をw個の量子化係数として、w個ずつ順番に符号化するようにしてもよい。
以上において説明した処理を行う図28のエントロピ符号化部323は、より詳細には、図47に示すように構成される。
エントロピ符号化部323は、ライン判定部361、VLC(Variable Length Coding)符号化部362、最大有効桁数計算部363、VLC符号化部364、有効桁抽出部365、VLC符号化部366、サイン抽出部367、VLC符号化部368、および符号連結部369を有する。
量子化部322(図44)から出力された量子化係数は、ライン判定部361、最大有効桁数計算部363、有効桁抽出部365、およびサイン抽出部367に供給(入力)される。
ライン判定部361は、量子化部322から入力された、これから符号化する1つのラインの量子化係数が全て0であるか否かを判定し、その判定の結果を示す情報をVLC符号化部362に供給する。
VLC符号化部362は、ライン判定部361からの判定の結果を示す情報に基づいて、符号化するラインの量子化係数が全て0であるか否かを示す符号を符号連結部369に出力する。
最大有効桁数計算部363は、量子化部322から入力された、連続するw個の量子化係数の最大有効桁数を計算し、その計算の結果を示す情報をVLC符号化部364および有効桁抽出部365に供給する。
VLC符号化部364は、最大有効桁数計算部363からの計算の結果を示す情報に基づいて、w個の量子化係数の最大有効桁数を示す符号を符号連結部369に供給する。
有効桁抽出部365は、最大有効桁数計算部363からの計算の結果を示す情報に基づいて、量子化部322から供給されたw個の量子化係数の有効桁を抽出し、抽出した量子化係数の有効桁(のデータ)をVLC符号化部366およびサイン抽出部367に供給する。
VLC符号化部366は、有効桁抽出部365からの量子化係数の有効桁に基づいて、これらの量子化係数の絶対値を符号化し、これにより得られた量子化係数の絶対値を示す符号を符号連結部369に供給する。
サイン抽出部367は、有効桁抽出部365からの量子化係数の有効桁に基づいて、量子化部322から供給された量子化係数のサインを抽出して、抽出したサイン(のデータ)をVLC符号化部368に供給する。
VLC符号化部368は、サイン抽出部367からのサイン(のデータ)を符号化し、これにより得られる量子化係数のサインを示す符号を符号連結部369に供給する。
符号連結部369は、VLC符号化部362、VLC符号化部364、VLC符号化部366、およびVLC符号化部368のそれぞれから供給された、ラインの量子化係数が全て0であるか否かを示す符号、最大有効桁数を示す符号、量子化係数の絶対値を示す符号、および量子化係数のサインを示す符号のそれぞれを連結し、符号化された画像(データ)として出力する。
次に、図48のフローチャートを参照して、イントラ符号化部311(図44)による、符号化処理について説明する。この符号化処理は、ウェーブレット変換部321に、符号化する画像(データ)が入力されると開始される。
ステップS311において、ウェーブレット変換部321は、入力された画像にウェーブレット変換を施して、入力された画像を複数のサブバンドに分解し、各サブバンドのウェーブレット係数を量子化部322に供給する。
ステップS312において、量子化部322は、ウェーブレット変換部321から供給されたウェーブレット係数を量子化し、その結果得られた量子化係数をエントロピ符号化部323に供給する。これにより、エントロピ符号化部323には、例えば、図46を参照して説明したビットプレーン表現された、サブバンドの各位置の量子化係数が入力される。
ステップS313において、エントロピ符号化部323は、エントロピ符号化処理を行い、符号化処理を終了する。なお、エントロピ符号化処理の詳細は後述するが、エントロピ符号化部323は、エントロピ符号化処理において、図46を参照して説明したように、量子化部322から供給された量子化係数を所定の数(w個)ずつ符号化し、符号化するラインの量子化係数が全て0であるか否かを示す符号、量子化係数の最大有効桁数を示す符号、量子化係数の絶対値を示す符号、および量子化係数のサインを示す符号を、符号化された画像(データ)として出力する。
このようにして、イントラ符号化部311は、入力された画像を符号化して出力する。
次に、図49のフローチャートを参照して、図48のステップS313の処理に対応するエントロピ符号化処理について説明する。
図48のステップS312において、量子化部322から出力された量子化係数は、エントロピ符号化部323(図47)のライン判定部361、最大有効桁数計算部363、有効桁抽出部365、およびサイン抽出部367に供給(入力)される。
ステップS341において、ライン判定部361は、これから符号化するサブバンドのラインを示す変数yをy=0として、これを記憶する。
例えば、図45に示したサブバンドの量子化係数を符号化する場合、ライン判定部361は、そのサブバンドのライン(ラインL1乃至ラインL6)を示す変数yを、y=0とする。なお、ここで、変数yにより示されるラインyは、サブバンドのライン上の各位置(x,y)のy座標がyであるラインを示している。したがって、例えば、ライン判定部361が記憶している変数yがy=0である場合、その変数により示されるラインは、ライン上の各位置のy座標が0であるラインL1となる。
ステップS342において、最大有効桁数計算部363は、ライン判定部361が記憶している変数yにより示されるラインyよりも1つ前のライン(y-1)上の最初に入力されるw個の量子化係数の最大有効桁数を示す変数BinitをBinit=0として、これを記憶する。
例えば、ライン(y−1)が、図45に示したラインL1である場合、ライン(y−1)上の最初に入力されるw個の量子化係数の最大有効桁数を示す変数Binitの値は、ラインL1の図中、左端の位置からw個の量子化係数、すなわち、位置(0,0)、(1,0)、・・・、(w-1,0)のw個の量子化係数の最大有効桁数となる。また、ライン判定部361が記憶している変数yがy=0である場合、ライン(y−1)は存在しないので、変数Binitの値は、Binit=0とされる。
ステップS343において、ライン判定部361は、記憶している変数yにより示されるラインyの量子化係数(の絶対値)が全て0であるか否かを判定する。例えば、ラインyが、図45に示したラインL1である場合、ライン判定部361は、ラインL1上の位置(x,y)の量子化係数が全て0であるとき、量子化係数が全て0であると判定する。
ステップS343において、量子化係数が全て0であると判定した場合、ライン判定部361は、量子化係数が全て0である旨の情報を生成してそれをVLC符号化部362および最大有効桁数計算部363に供給し、処理をステップS344に進める。
ステップS344において、VLC符号化部362は、ライン判定部361からの量子化係数が全て0である旨の情報に基づいて、符号化するラインの量子化係数が全て0であることを示す符号0を符号連結部369に出力(供給)する。符号連結部369は、VLC符号化部362から供給された符号0を、ラインyの量子化係数の符号化の結果得られた符号として、そのまま出力する。
ステップS345において、最大有効桁数計算部363は、ライン判定部361からの量子化係数が全て0である旨の情報に基づいて、記憶している変数Binitの値をBinit=0とし、変数Binitを更新する。
ステップS346において、ライン判定部361は、符号化しているサブバンドのラインのうち、未処理のラインがあるか否かを判定する。すなわち、ライン判定部361は、符号化しているサブバンドの全てのラインの量子化係数を符号化したか否かを判定する。例えば、図45に示したサブバンドの量子化係数を符号化している場合、ラインL1乃至ラインL6上の全ての位置の量子化係数が符号化されたとき、ライン判定部361は、未処理のラインが存在しないと判定する。
そのステップS346において、未処理のラインがあると判定した場合、ライン判定部361は、次のライン、すなわち、ライン(y+1)上の各位置の量子化係数を符号化するので、処理をステップS347に進める。
ステップS347において、ライン判定部361は、記憶しているラインを示す変数yをインクリメントしてy=y+1とし、処理をステップS343に戻し、上述したそれ以降の処理を再び実行させる。
これに対して、ステップS346において、未処理のラインが無いと判定した場合、ライン判定部361は、サブバンドを構成する全てのラインについて量子化係数を符号化したので、エントロピ符号化処理を終了し、処理を図48のステップS313に戻し、符号化処理を終了させる。
また、図49のステップS343において、ラインyの量子化係数が全て0でない(0でない量子化係数が存在する)と判定した場合、ライン判定部361は、量子化係数が全て0でない(0でない量子化係数が存在する)旨の情報を生成してそれをVLC符号化部362および最大有効桁数計算部363に供給し、ステップS348に処理を進める。
ステップS348において、VLC符号化部362は、ライン判定部361からの量子化係数が全て0でない旨の情報に基づいて、符号化するラインの量子化係数が全て0でないことを示す符号1を符号連結部369に出力(供給)する。
ステップS349において、最大有効桁数計算部363は、ライン判定部361からの量子化係数が全て0でない旨の情報に基づいて、これから符号化するw個の量子化係数のうち、最初に入力される量子化係数に対応するラインy上の位置のx座標を示す変数xの値をx=0として、この変数xを記憶する。
例えば、ラインyが、図45に示したラインL1である場合、最大有効桁数計算部363が記憶している変数xの値は、これから符号化しようとするラインL1上の連続するw個の位置(x,0)、(x+1,0)、・・・、(x+w−1,0)のうちの図中、一番左側の位置(x,0)のx座標を示している。
また、ステップS349において、最大有効桁数計算部363は、前回符号化されたw個の量子化係数の最大有効桁数を示す変数Bの値をB=Binitとして、この変数Bを記憶する。すなわち、最大有効桁数計算部363は、変数Bの値を記憶している変数Binitの値として変数Bを更新し、更新された変数Bの値を記憶する。
最大有効桁数計算部363は変数Bの値を更新すると、更新された変数B(最大有効桁数)の値を示す情報をVLC符号化部364および有効桁抽出部365に供給する。また、VLC符号化部364および有効桁抽出部365は、それぞれ最大有効桁数計算部363から供給された変数Bの値を記憶する。
ステップS350において、エントロピ符号化部323はw個組符号化処理を行う。なお、w個組符号化処理の詳細は後述するが、w個組符号化処理において、エントロピ符号化部323は、ライン判定部361が記憶している変数yにより示されるラインy上の連続するw個の量子化係数を符号化する。
ここで、ライン判定部361が記憶している変数yおよび、最大有効桁数計算部363が記憶している変数xにより特定されるラインy上の位置を(x,y)とすると、ラインy上のw個の連続する位置は、ラインy上の連続する位置(x,y)、(x+1,y)、・・・、(x+w−1,y)とされる。すなわち、w個組符号化処理において、エントロピ符号化部323は、位置(x,y)、(x+1,y)、・・・、(x+w−1,y)のそれぞれの量子化係数を符号化する。
ステップS351において、最大有効桁数計算部363は、ラインyに未処理の量子化係数があるか否かを判定する。すなわち、最大有効桁数計算部363は、ライン判定部361が記憶している変数yにより示されるラインy上の位置の全ての量子化係数を符号化したか否かを判定する。
ステップS351において、ラインyに未処理の量子化係数があると判定した場合、最大有効桁数計算部363は、次のw個の量子化係数を符号化するので、処理をステップS352に進める。
ステップS352において、最大有効桁数計算部363は、記憶している変数xを、x=x+wとし、処理をステップS350に戻す。これにより、その後のステップS350の処理において、ラインy上の位置(x+w,y)、(x+w+1,y)、・・・、(x+2w−1,y)のそれぞれの量子化係数が符号化される。
また、ステップS351において、ラインyに未処理の量子化係数がないと判定した場合、最大有効桁数計算部363は、ラインy上の一の全ての位置の量子化係数が符号化されたので、処理をステップS346に戻し、それ以降の処理を実行させる。
このようにして、エントロピ符号化部323は、サブバンドの各位置の量子化係数を所定の数ずつラスタスキャン順に符号化する。
このように、サブバンドの各位置の量子化係数を所定の数ずつラスタスキャン順に符号化することによって、入力された量子化係数を入力された順番に処理することができ、量子化係数の符号化により生じる遅延をより少なくすることができる。
次に、図50のフローチャートを参照して、図49のステップS350の処理に対応するw個組符号化処理について説明する。
ステップS381において、最大有効桁数計算部363は、記憶している変数xにより特定されるラインy上の位置を(x,y)として、連続するw個の位置(x,y)、(x+1,y)、・・・、(x+w−1,y)の量子化係数のうち、絶対値が最も大きい量子化係数の有効桁数を、これから符号化するw個の量子化係数の最大有効桁数を示す変数Bnewの値として、この変数Bnewを記憶する。
また、最大有効桁数計算部363は、求められたw個の量子化係数の最大有効桁数、すなわち、変数Bnewの値をVLC符号化部364および有効桁抽出部365に供給する。
例えば、w個の連続する位置の量子化係数のそれぞれが、図46に示した量子化係数“-0101”、“+0011”、“-0110”、および“+0010”である場合、これらの量子化係数のうち、絶対値が最大の量子化係数は“-0110”であり、その有効桁数は“-0110”の最上位にある1の桁である“3”であるので、変数Bnewの値は3とされる。
ステップS382において、VLC符号化部364は、B=Bnewであるか否かを判定する。すなわち、VLC符号化部364は、記憶している、前回符号化されたw個の量子化係数の最大有効桁数を示す変数Bの値が、最大有効桁数計算部363から供給された、これから符号化するw個の量子化係数の最大有効桁数を示す変数Bnewの値と同じであるか否かを判定する。
ステップS382において、B=Bnewであると判定した場合、VLC符号化部364は、処理をステップS383に進め、これから符号化するw個の量子化係数の最大有効桁数を示す符号として、最大有効桁数が変化していないことを示す符号0を符号連結部369に出力する。そして、最大有効桁数を示す符号0が出力すると、VLC符号化部364は、ステップS384の処理乃至ステップS388の処理をスキップし、ステップS389に処理を進める。
これに対して、ステップS382において、B=Bnewでないと判定した場合、VLC符号化部364は、処理をステップS384に進め、(最大有効桁数が変化したので、)最大有効桁数が変化したことを示す符号1を符号連結部369に出力する。
ステップS385において、VLC符号化部364は、次式(14)を満たす整数nおよびmを求める。
Bnew=B+(n+1)×(−1)^m ・・・(14)
ここで、式(14)における記号“^”は、冪乗を表わしている。したがって、(−1)^mは、(−1)のm乗を表わしている。
例えば、Bnew=3であり、B=0である場合、式(14)を満たすnおよびmとして、それぞれn=2、およびm=0が求まる。変数Bnewおよび変数Bを比較した場合、変数Bnewの値の絶対値と変数Bの値の絶対値の差が大きいほど、式(14)におけるnの値は大きくなる。したがってnの値は、最大有効桁数の変化量を示しているということができる。また、変数Bnewの値が変数Bの値よりも大きい場合、mの値は0となり、逆に変数Bnewの値が変数Bの値よりも小さい場合、mの値は1となる。したがって、式(14)におけるmの値は、最大有効桁数が増加したか、または減少したかを示しているということができる。
ステップS386において、VLC符号化部364は、最大有効桁数が増加したか、または減少したかを示す符号として、式(14)を満たすmの値を1ビットの符号で符号連結部369に出力する。例えば、式(14)を満たすmの値が0である場合、VLC符号化部364は、最大有効桁数が増加したことを示す符号0を出力する。
ステップS387において、VLC符号化部364は、最大有効桁数の変化量を示す符号として、式(14)を満たすnの値だけ連続する0に続けて1個の1を符号連結部369に出力する。すなわち、VLC符号化部364は、n個の0および1個の1を最大有効桁数の変化量を示す符号として出力する。
例えば、式(14)を満たすnの値が2である場合、VLC符号化部364は、最大有効桁数の変化量を示す符号として“001”を符号連結部369に出力する。
これにより、VLC符号化部364から符号連結部369には、これから符号化するw個の量子化係数の最大有効桁数を示す符号として、最大有効桁数が変化したことを示す符号、最大有効桁数が増加したか、または減少したかを示す符号、および最大有効桁数の変化量を示す符号が出力される。
ステップS388において、最大有効桁数計算部363は、記憶している変数Bの値をB=Bnewとし、処理をステップS389に進める。すなわち、最大有効桁数計算部363は、記憶している変数Bの値を、記憶している変数Bnewの値として変数Bを更新する。また、VLC符号化部364および有効桁抽出部365も記憶している変数Bの値をB=Bnewとする。
ステップS388において、変数Bの値がB=Bnewとされるか、またはステップS383において、量子化係数の最大有効桁数を示す符号が出力されると、ステップS389において、最大有効桁数計算部363は、記憶している変数xの値が0である場合、記憶している変数Binitの値をBinit=Bとする。
すなわち、最大有効桁数計算部363は、記憶している変数xの値が0である場合、記憶している、ライン(y−1)上の最初に入力されるw個の量子化係数の最大有効桁数を示す変数Binitの値を、前回符号化されたw個の量子化係数の最大有効桁数を示す変数Bの値として、変数Binitを更新する。
このように、変数x=0である場合に、変数Binitの値をBinit=Bとすることで、次のライン(例えば、ライン(y+1))のx=0から始まるw個の量子化係数について、前のライン(例えば、ラインy)のx=0から始まるw個の量子化係数の最大有効桁数との相関関係を利用して量子化係数の符号化を行うことができる。
ステップS390において、有効桁抽出部365は、所定の変数をiとして、変数iを0から(w−1)まで変化させて、量子化部322から供給された、ラインy上の位置(x+i,y)の量子化係数から、量子化係数の有効桁を抽出する。有効桁抽出部365は、抽出した量子化係数の有効桁(のデータ)をVLC符号化部366およびサイン抽出部367に供給する。また、VLC符号化部366は、有効桁抽出部365から供給された有効桁に基づいて(有効桁を符号化して)、w個の量子化係数の絶対値を示す符号を符号連結部369に出力する。
ここで、位置(x+i,y)におけるxの値は、最大有効桁数計算部363が記憶している変数xの値とされる。例えば、最大有効桁数計算部363が記憶している変数xの値が0であり、有効桁抽出部365が記憶している変数Bの値が3であり、さらに、量子化部322から有効桁抽出部365に、位置(x+i,y)(0≦i≦3)のそれぞれ、すなわち位置(0,y)、(1,y)、(2,y)、および(3,y)の量子化係数に対応する図46に示したw個(4個)の量子化係数“-0101”、“+0011”、“-0110”、および“+0010”が供給されたとすると、有効桁抽出部365は、これらの量子化係数から有効桁を抽出する。
この場合、有効桁抽出部365が記憶している変数Bの値は3であり、有効桁は3桁であるから、有効桁抽出部365は、位置(x,y)に対応する量子化係数“-0101”から、最下位から3桁の値“101”を抽出する。
同様に、有効桁抽出部365は、位置(x+1,y)、位置(x+2,y)、および位置(x+3,y)のそれぞれの量子化係数“+0011”、“-0110”、および“+0010”から、順次、これらの最下位から3桁の値“011”、“110”、および“010”を抽出する。これにより、有効桁抽出部365からVLC符号化部366およびサイン抽出部367には、量子化係数“-0101”、“+0011”、“-0110”、および“+0010”の有効桁(の符号)“101”、“011”、“110”、および“010”が出力される。VLC符号化部366は、有効桁抽出部365から供給された符号“101”、“011”、“110”、および“010”を符号化して、w個(4個)の量子化係数の絶対値を示す符号“101011110010”を、符号連結部369に出力する。
ステップS391において、サイン抽出部367は、所定の変数をiとして、変数iを0から(w−1)まで変化させて、量子化部322から供給された、量子化係数の絶対値が0でないラインy上の位置(x+i,y)の量子化係数から、量子化係数のサインを抽出し、抽出したサイン(のデータ)をVLC符号化部368に供給する。VLC符号化部368は、サイン抽出部367からのサインを符号化し、これにより得られる量子化係数のサインを示す符号を符号連結部369に出力する。
符号連結部369は、VLC符号化部368から量子化係数のサインを示す符号が供給されると、VLC符号化部362、VLC符号化部364、VLC符号化部366、およびVLC符号化部368のそれぞれから供給された、量子化係数が全て0であるか否かを示す符号、量子化係数の最大有効桁数を示す符号、量子化係数の絶対値を示す符号、および量子化係数のサインを示す符号のそれぞれを連結して、連結された符号を符号化された画像として出力し、w個組符号化処理を終了し、図49のステップS350に処理を戻し、ステップS351以降の処理を実行する。
ここで、位置(x+i,y)におけるxの値は、最大有効桁数計算部363が記憶している変数xの値とされる。例えば、最大有効桁数計算部363が記憶している変数xの値が0であり、量子化部322からサイン抽出部367に、位置(x+i,y)(0≦i≦3)のそれぞれ、すなわち位置(0,y)、(1,y)、(2,y)、および(3,y)の量子化係数に対応する図46に示したw個(4個)の量子化係数“-0101”、“+0011”、“-0110”、および“+0010”が供給されたとすると、量子化係数“-0101”、“+0011”、“-0110”、および“+0010”のそれぞれは0ではないので、サイン抽出部367は、これらの量子化係数からサインを抽出する。
この場合、サイン抽出部367は、位置(x,y)に対応する量子化係数“-0101”から量子化係数のサイン“−”を抽出する。
同様に、サイン抽出部367は、位置(x+1,y)、位置(x+2,y)、および位置(x+3,y)のそれぞれの量子化係数“+0011”、“-0110”、および“+0010”から、順次、これらの量子化係数のサイン“+”、“−”、および“+”を抽出する。これにより、サイン抽出部367からVLC符号化部368には、量子化係数“-0101”、“+0011”、“-0110”、および“+0010”のサイン“−”、“+”、“−”、および“+”が出力される。VLC符号化部368は、サイン抽出部367から供給された量子化係数のサイン“−”、“+”、“−”、および“+”を符号化する。
例えば、VLC符号化部368は、サイン“−”が入力されると符号1を出力し、サイン“+”が入力されると符号0を出力することにより、入力されたサインを符号化する。この場合、VLC符号化部368には、量子化係数のサイン“−”、“+”、“−”、および“+”が入力されるので、VLC符号化部368は、符号“1”、“0”、“1”、“0”からなる符号“1010”を量子化係数のサインを示す符号として符号連結部369に出力する。
このようにして、エントロピ符号化部323は、サブバンドの量子化係数を、予め定められた所定の数ずつまとめて符号化し、量子化係数の最大有効桁数を示す符号、量子化係数の絶対値を示す符号、および量子化係数のサインを示す符号を出力する。
このように、サブバンドの量子化係数を、予め定められた所定の数ずつまとめて符号化することで、例えば、JPEG2000方式により画像を符号化する場合とは異なり、複数のコーディングパスに基づいて、ビットプレーンごとに複数の処理を行う必要がなく、また、可変長符号化を行うので、符号化の処理量を大幅に低減することができる。これにより、より高速に画像の符号化を行うことができ、高解像度の画像をリアルタイムで符号化するための符号化装置を安価で実現することができる。
さらに、イントラ符号化部311においては、画像を符号化する場合に、符号の長さを明示的に符号化する必要がないため、符号量を少なくすることができ、符号の長さの情報を管理する必要もない。
なお、以上においては、w個の量子化係数のうち、絶対値の最も大きい量子化係数の有効桁数を、最大有効桁数を示す変数Bnewの値とすると説明したが、変数Bnewの値は、w個の量子化係数のうち、絶対値の最も大きい量子化係数の有効桁数以上の値であればよい。変数Bnewの値が大きくなると、量子化係数の絶対値を示す符号の符号量が多くなるが、変数Bnewの値を、絶対値の最も大きい量子化係数の有効桁数以上の値とすることで、量子化係数の最大有効桁数を示す符号の符号量を少なくすることができる。
次に、イントラ符号化部311により符号化された画像を復号するイントラ復号部について説明する。
図51は、イントラ復号部の構成例を示すブロック図である。
イントラ復号部411は、エントロピ復号部421、逆量子化部422、およびウェーブレット逆変換部423から構成され、エントロピ復号部421には、符号化された画像(データ)が入力される。
エントロピ復号部421は、入力された符号化された画像としての符号をエントロピ復号し、これにより得られた量子化係数を逆量子化部422に供給する。
逆量子化部422は、エントロピ復号部421から供給された量子化係数を逆量子化し、逆量子化により得られた各サブバンドのウェーブレット係数をウェーブレット逆変換部423に供給する。
ウェーブレット逆変換部423は、逆量子化部422から供給された、各サブバンドのウェーブレット係数にウェーブレット逆変換を施し、その結果得られた画像を、復号された画像として出力する。
また、このような処理を行うイントラ復号部411のエントロピ復号部421は、より詳細には、例えば、図52に示すように構成される。
エントロピ復号部421は、より詳細には、符号分割部451、ライン判定部452、発生部453、VLC復号部454、VLC復号部455、VLC復号部456、量子化係数合成部457、および切替部458を有する。
符号分割部451は、ライン判定部452、VLC復号部454、VLC復号部455、およびVLC復号部456のそれぞれから供給される情報に基づいて、入力された、符号化された画像としての符号を分割し、分割された所定の長さの符号をライン判定部452、VLC復号部454、VLC復号部455、またはVLC復号部456に供給する。
すなわち、符号分割部451は、入力された符号を、符号化された1つのラインの量子化係数が全て0であるか否かを示す符号、符号化されたw個の量子化係数の最大有効桁数を示す符号、符号化されたw個の量子化係数の絶対値を示す符号、および符号化された量子化係数のサインを示す符号のそれぞれに分割し、ライン判定部452、VLC復号部454、VLC復号部455、およびVLC復号部456のそれぞれに供給する。
ライン判定部452は、符号分割部451から供給された符号に基づいて、符号化されたサブバンドの1つのラインの量子化係数が全て0であるか否かを判定し、その判定の結果を示す情報を、符号分割部451、発生部453、およびVLC復号部454に供給する。
発生部453は、ライン判定部452からの判定の結果を示す情報に基づいて、1ライン分の0である量子化係数を示す符号を発生して切替部458に供給する。
VLC復号部454は、符号分割部451から供給された、符号化されたw個の量子化係数の最大有効桁数を示す符号を復号して、符号化されたw個の量子化係数の最大有効桁数を求め、求めた最大有効桁数を示す情報を符号分割部451、VLC復号部455、および量子化係数合成部457に供給する。
VLC復号部455は、VLC復号部454からの最大有効桁数を示す情報に基づいて、符号分割部451から供給された量子化係数の絶対値を示す符号を復号し、これにより得られたw個の量子化係数の有効桁(のデータ)を、VLC復号部456および量子化係数合成部457に供給する。また、VLC復号部455は、量子化係数の絶対値を示す符号の復号の結果を示す情報を符号分割部451に供給する。
VLC復号部456は、VLC復号部455から供給された量子化係数の有効桁に基づいて、符号分割部451から供給された量子化係数のサインを示す符号を復号し、これにより得られる量子化係数のサイン(のデータ)を量子化係数合成部457に供給する。また、VLC復号部456は、量子化係数のサインを示す符号の復号の結果を示す情報を符号分割部451に供給する。
量子化係数合成部457は、VLC復号部454からの最大有効桁数を示す情報に基づいて、VLC復号部455から供給された量子化係数の有効桁およびVLC復号部456から供給された量子化係数のサインを合成し、これにより得られたw個の量子化係数を切替部458に供給する。
切替部458は、発生部453または量子化係数合成部457からの量子化係数を出力する。
図53は、符号分割部451のより詳細な構成例を示すブロック図である。
符号分割部451は、制御部471およびメモリ472を有している。制御部471は、符号化された画像としての符号が入力されると、入力された符号をメモリ472に供給して一時的に記憶させる。
そして、制御部471は、図52に示したライン判定部452、VLC復号部454、VLC復号部455、およびVLC復号部456のそれぞれから供給される情報に基づいて、メモリ472に一時的に記憶されている符号のうち、所定の長さの符号を読み出して、ライン判定部452、VLC復号部454、VLC復号部455、またはVLC復号部456に供給する。
また、符号分割部451は、図53に示した構成例の他、例えば、図54に示すように構成されてもよい。
図54に示す符号分割部451は、制御部491、スイッチ492、並びに、ノード493-1乃至ノード493-4を有する。
制御部491は、符号化された画像としての符号が符号分割部451に入力されると、図52に示したライン判定部452、VLC復号部454、VLC復号部455、およびVLC復号部456のそれぞれから供給される情報に基づいて、スイッチ492を制御し、入力された符号のうち、所定の長さの符号をライン判定部452、VLC復号部454、VLC復号部455、またはVLC復号部456に供給させる。
すなわち、ノード493-1乃至ノード493-4のそれぞれは、ライン判定部452、VLC復号部454、VLC復号部455、およびVLC復号部456のそれぞれに接続されており、制御部491は、符号の供給先として、ノード493-1乃至ノード493-4のいずれかを選択し、スイッチ492と、選択されたノードとの接続を制御する。
スイッチ492が制御部491の制御に基づいて選択されたノードを入力と接続するので、符号分割部451に入力された符号は、スイッチ492、およびスイッチ492と接続されたノードを介して、符号の供給先として選択されたライン判定部452、VLC復号部454、VLC復号部455、またはVLC復号部456に供給される。
次に、図55のフローチャートを参照して、イントラ復号部411による復号処理について説明する。この復号処理は、エントロピ復号部421に符号化された画像としての符号が入力されると開始される。
ステップS431において、エントロピ復号部421は、エントロピ復号処理を行い、入力された画像としての符号をエントロピ復号し、これにより得られた量子化係数を逆量子化部422に供給する。なお、エントロピ復号処理の詳細は後述するが、このエントロピ復号処理において、エントロピ復号部421は、符号化されたサブバンドのライン上の連続する位置の量子化係数をw個ずつ復号し、復号された量子化係数を逆量子化部422に供給する。
ステップS432において、逆量子化部422は、エントロピ復号部421から供給された量子化係数を逆量子化し、逆量子化により得られた各サブバンドのウェーブレット係数をウェーブレット逆変換部423に供給する。
ステップS433において、ウェーブレット逆変換部423は、逆量子化部422から供給された、各サブバンドのウェーブレット係数にウェーブレット逆変換を施し、その結果得られた画像を出力して復号処理は終了する。
このようにして、イントラ復号部411は、符号化された画像を復号して出力する。
次に、図56のフローチャートを参照して、図55のステップS431の処理に対応するエントロピ復号処理について説明する。
ステップS461において、ライン判定部452は、これから復号するサブバンドのラインを示す変数yをy=0として、これを記憶する。
ステップS462において、VLC復号部454は、ライン判定部452が記憶している変数yにより示されるラインyよりも1つ前のライン(y−1)上の最初に入力されるw個の量子化係数の最大有効桁数を示す変数BinitをBinit=0として、これを記憶する。
例えば、ライン(y−1)が、図45に示したラインL1である場合、ライン(y−1)上の最初に入力されるw個の量子化係数の最大有効桁数を示す変数Binitの値は、ラインL1の図中、左端の位置からw個の量子化係数の最大有効桁数となる。また、ライン判定部452が記憶している変数yがy=0である場合、ライン(y−1)は存在しないので、変数Binitの値は、Binit=0とされる。
また、ステップS462において、符号分割部451は、入力された符号のうち、最初の1ビットの符号を、これから復号するラインの量子化係数が全て0であるか否かを示す符号として、ライン判定部452に供給する。
ステップS463において、ライン判定部452は、符号分割部451から読み込んだ(供給された)1ビットの符号が0であるか否かを判定し、その判定の結果を示す情報を生成して発生部453、VLC復号部454、および符号分割部451に供給する。
ステップS463において、符号が0であると判定した場合、ラインyの量子化係数が全て0であるので、ライン判定部452は、処理をステップS464に進める。ステップS464において発生部453は、ライン判定部452からの判定の結果を示す情報に基づいて、ラインyの量子化係数を全て0とする。そして、発生部453は、ラインyの量子化係数を示す符号を発生して切替部458に供給する。
例えば、図46に示したように、1つの量子化係数が4桁で表わされ、1つのラインの量子化係数が5個である場合、発生部453は、ラインyの量子化係数を示す符号として、20(=4×5)個の0を発生して切替部458に供給する。切替部458は、発生部453から供給された連続する20個の0を、1つのラインの量子化係数を示す符号として、逆量子化部422に出力する。
ステップS465において、VLC復号部454は、ライン判定部452からの判定の結果を示す情報に基づいて、記憶している変数Binitの値をBinit=0とし、変数Binitを更新する。
ステップS466において、ライン判定部452は、復号しているサブバンドのラインのうち、未処理のラインがあるか否かを判定する。すなわち、ライン判定部452は、復号しているサブバンドの全てのライン上の位置の量子化係数を復号したか否かを判定する。
ステップS466において、未処理のラインがあると判定した場合、ライン判定部452は、自分自身が記憶している変数yにより示されるラインyの次のライン(y+1)上の各位置の量子化係数を復号するので、処理をステップS467に進める。
ステップS467において、ライン判定部452は、記憶しているラインを示す変数yをインクリメントしてy=y+1とし、処理をステップS463に戻し、それ以降の処理を実行させる。
これに対して、ステップS466において、未処理のラインが無いと判定した場合、サブバンドを構成する全てのラインについて量子化係数が復号されたので、ライン判定部452は、エントロピ復号処理を終了し、処理を図55のステップS431に戻し、ステップS432以降の処理を実行させる。
また、図56のステップS463において、符号が0でないと判定した場合、ライン判定部452は、処理をステップS468に進める。ステップS468において、VLC復号部454は、ライン判定部452からの判定の結果を示す情報に基づいて、これから復号するw個の量子化係数のうち、最初に入力される量子化係数に対応するラインy上の位置のx座標を示す変数xの値をx=0として、この変数xを記憶する。
また、ステップS468において、VLC復号部454は、前回復号されたw個の量子化係数の最大有効桁数を示す変数Bの値をB=Binitとして、この変数Bを記憶する。すなわち、VLC復号部454は、変数Bの値を記憶している変数Binitの値として変数Bを更新し、更新された変数Bの値を記憶する。
さらに、ステップS468において、符号分割部451は、ライン判定部452からの判定の結果を示す情報に基づいて、入力された符号の次の1ビットの符号を、これから復号するw個の量子化係数の最大有効桁数が変化したか否かを示す符号として、VLC復号部454に供給する。
ステップS469において、エントロピ復号部421は、w個組復号処理を行う。なお、w個組復号処理の詳細は後述するが、このw個組復号処理において、エントロピ復号部421は、ライン判定部452が記憶している変数yにより示されるラインy上の連続するw個の位置の量子化係数を復号する。
ステップS470において、VLC復号部454は、ラインyに未処理の量子化係数があるか否かを判定する。すなわち、VLC復号部454は、ライン判定部452が記憶している変数yにより示されるラインy上の位置の全ての量子化係数を復号したか否かを判定する。
ステップS470において、ラインyに未処理の量子化係数があると判定した場合、次のw個の量子化係数を復号するので、VLC復号部454は、処理をステップS471に進める。
ステップS471において、VLC復号部454は、記憶している変数xを、x=x+wとして、処理をステップS469に戻す。これにより、その後のステップS469の処理において、ラインy上の位置(x+w,y)、(x+w+1,y)、・・・、(x+2w−1,y)のそれぞれの量子化係数が復号される。
また、ステップS470において、ラインyに未処理の量子化係数がないと判定した場合、VLC復号部454は、ラインy上の全ての位置の量子化係数が復号されたので、処理をステップS466に戻し、それ以降の処理を実行させる。
このようにして、エントロピ復号部421は、サブバンドの各位置の量子化係数を所定の数ずつラスタスキャン順に復号する。
このように、サブバンドの各位置の量子化係数を所定の数ずつラスタスキャン順に復号することによって、符号化された量子化係数を、入力された順番に処理することができ、量子化係数の復号により生じる遅延をより少なくすることができる。
次に、図57のフローチャートを参照して、図56のステップS469の処理に対応するw個組復号処理について説明する。
上述したように、図56のステップS468において、符号分割部451からVLC復号部454には、これから復号するw個の量子化係数の最大有効桁数が変化したか否かを示す1ビットの符号が供給される。
図57のステップS511において、VLC復号部454は、読み込んだ(供給された)1ビットの符号が0であるか否かを判定する。
ステップS511において、読み込んだ符号が0であると判定した場合、最大有効桁数は変化していないので、VLC復号部454は、最大有効桁数が変化していない旨の情報を生成し、それを符号分割部451、VLC復号部455、および量子化係数合成部457に供給し、ステップS512乃至ステップS514の各処理をスキップして、ステップS515に処理を進める。
すなわち、最大有効桁数が変化したか否かを示す符号が0である場合、図46を参照して説明したように、最大有効桁数が変化したか否かを示す1ビットの符号0の後には、最大有効桁数が増加したか、または減少したかを示す符号、および最大有効桁数の変化量を示す符号ではなく、量子化係数の絶対値を示す符号が入力されるので、最大有効桁数が増加したか、または減少したかを示す符号、および最大有効桁数の変化量を示す符号を復号する処理であるステップS512乃至ステップS514の各処理はスキップされる。
これに対して、ステップS511において、読み込んだ1ビットの符号が0でないと判定した場合、最大有効桁数が変化したので、VLC復号部454は、処理をステップS512に進め、符号分割部451から符号を1ビット読み込み、その値を所定の変数mとして記憶する。
ステップS513において、VLC復号部454は、符号が1となるまで(符号1を読み込むまで)符号分割部451から符号を読み込み、それまでに読み込んだ符号0の数を所定の変数nとして記憶する。例えば、VLC復号部454が符号分割部451から読み込んだ3つ目の符号が1であった場合、すなわち、VLC復号部454が符号“001”を読み込んだ場合、VLC復号部454が符号1を読み込むまでに、読み込んだ符号0の数は2であるので、VLC復号部454は、読み込んだ符号0の数である2を変数nの値として記憶する。
ステップS514において、VLC復号部454は、最大有効桁数を示す変数Bの値を以下の式(15)により求め、求められた変数Bの値を記憶する。
B=B+(n+1)×(−1)^m ・・・(15)
ここで、式(15)における左辺は、新たに求められる変数Bの値を表わしており、右辺のBは記憶している変数Bの値を表わしている。また、式(15)における記号“^”は、冪乗を表わしている。したがって、(−1)^mは、(−1)のm乗を表わしている。
VLC復号部454は、記憶している変数B、変数m、および変数nに基づいて、式(15)を計算して記憶している変数Bを更新する。VLC復号部454は、最大有効桁数を示す変数Bを更新すると、更新された最大有効桁数を示す情報を生成して、符号分割部451、VLC復号部455、および量子化係数合成部457に供給する。
ステップS514において新たな最大有効桁数を求めるか、ステップS511において、読み込んだ1ビットの符号が0であると判定すると、VLC復号部454は、ステップS515に処理を進め、記憶している変数xの値が0である場合、記憶している変数Binitの値をBinit=Bとする。
すなわち、VLC復号部454は、記憶している変数xの値が0である場合、記憶している、ライン(y−1)上の最初に入力されるw個の量子化係数の最大有効桁数を示す変数Binitの値を、これから復号するw個の量子化係数の最大有効桁数を示す変数Bの値として、変数Binitを更新する。
このように、変数x=0である場合に、変数Binitの値をBinit=Bとすることで、次のライン(例えば、ライン(y+1))のx=0から始まるw個の量子化係数について、前のライン(例えば、ラインy)のx=0から始まるw個の量子化係数の最大有効桁数との相関関係を利用して量子化係数の復号を行うことができる。
ステップS516において、VLC復号部455は、所定の変数をiとして、変数iを0から(w−1)まで変化させて、符号分割部451から符号をBビットずつ読み込み、読み込んだBビットの符号を、ラインy上の位置(x+i,y)の量子化係数の有効桁を示す符号として、VLC復号部456および量子化係数合成部457に供給(出力)する。また、VLC復号部455は、量子化係数の有効桁を示す情報を生成して、符号分割部451に供給する。
ここで、位置(x+i,y)におけるxの値は、VLC復号部454が記憶している変数xの値とされる。例えば、VLC復号部454が記憶している変数xの値が0であり、VLC復号部455が記憶している変数Bの値が3である場合、VLC復号部455は、変数i=0として符号分割部451から3ビットの符号を読み込み、読み込んだ3ビットの符号を位置(0,y)における量子化係数の有効桁として出力する。
同様に、VLC復号部455は、変数i=1として符号分割部451からさらに3ビットの符号を読み込み、その符号を位置(1,y)における量子化係数の有効桁として出力し、変数i=2として符号分割部451から次の3ビットの符号を読み込み、その符号を位置(2,y)における量子化係数の有効桁として出力し、変数i=3として符号分割部451から、さらに次の3ビットの符号を読み込み、その符号を位置(3,y)における量子化係数の有効桁として出力する。
ステップS517において、VLC復号部456は、所定の変数をiとして、変数iを0から(w−1)まで変化させて、ラインy上の位置(x+i,y)の量子化係数の有効桁(絶対値)が0でなければ、符号分割部451から符号を1ビット読み込む。そして、VLC復号部456は、読み込んだ符号を復号し、これにより得られた符号を量子化係数のサインとして量子化係数合成部457に供給(出力)する。また、VLC復号部456は、量子化係数のサインを示す情報を生成して、符号分割部451に供給する。
ここで、位置(x+i,y)におけるxの値は、VLC復号部454が記憶している変数xの値とされる。例えば、VLC復号部454が記憶している変数xの値が0であり、VLC復号部455から0でない有効桁(を示す符号)が供給された場合、VLC復号部456は、変数i=0として符号分割部451から1ビットの符号を読み込み、その符号が0であれば、位置(0,y)における量子化係数のサイン“−”を示す符号を量子化係数合成部457に供給し、読み込んだ符号が1であれば、位置(0,y)における量子化係数のサイン“+”を示す符号を量子化係数合成部457に供給する。
また、VLC復号部456は、VLC復号部455から供給された有効桁(を示す符号)の絶対値が0である場合、位置(0,y)における量子化係数のサインはないので、符号分割部451から符号を読み込まない。
同様にして、VLC復号部455から次に供給された有効桁(の絶対値)が0でない場合、VLC復号部456は、変数i=1として符号分割部451から1ビットの符号を読み込み、その符号が0であれば、サイン“−”を示す符号を、読み込んだ符号が1であれば、サイン“+”を示す符号を量子化係数合成部457に供給する。
さらに、VLC復号部455から次に供給された有効桁が0でない場合、VLC復号部456は、変数i=2として符号分割部451から1ビットの符号を読み込み、その符号が0であれば、サイン“−”を示す符号を、読み込んだ符号が1であれば、サイン“+”を示す符号を量子化係数合成部457に供給する。また、VLC復号部455から次に供給された有効桁が0でない場合、VLC復号部456は、変数i=3として符号分割部451から1ビットの符号を読み込み、その符号が0であれば、サイン“−”を示す符号を、読み込んだ符号が1であれば、サイン“+”を示す符号を量子化係数合成部457に供給する。
ステップS518において、量子化係数合成部457は、VLC復号部455から供給された有効桁、およびVLC復号部455から供給されたサインを合成し、これにより得られた量子化係数を、切替部458を介して逆量子化部422に出力し、w個組復号処理を終了して処理を図56のステップS469に戻し、ステップS470以降の処理を実行させる。
例えば、出力する量子化係数の絶対値の桁数は予め定められている。予め定められた出力する量子化係数の絶対値の桁数が4桁であり、VLC復号部454からの最大有効桁数を示す情報により示される最大有効桁数が3である場合、VLC復号部455から有効桁“101”が供給され、VLC復号部455からサイン“−”を示す符号が供給されたとき、量子化係数合成部457は、量子化係数“-0101”を出力する。
すなわち、量子化係数合成部457は、量子化係数の絶対値の桁数は4桁であり、有効桁は“101”(3桁)であるので、有効桁“101”の最上位のビットのさらに1つ上位のビットを0として、量子化係数の絶対値を4桁である“0101”とする。そして、さらに、量子化係数のサイン“−”と、量子化係数の絶対値“0101”とを合成して得られる“-0101”を量子化係数として出力する。
なお、量子化係数合成部457は、VLC復号部455から供給された有効桁が0である場合には、サインのない量子化係数を出力する。例えば、予め定められた出力する量子化係数の絶対値の桁数が4桁であり、VLC復号部454からの最大有効桁数を示す情報により示される最大有効桁数が3である場合、VLC復号部455から有効桁“000”が供給されたとき、量子化係数合成部457は、量子化係数“0000”を出力する。
このようにして、エントロピ復号部421は、符号化されたサブバンドの量子化係数を、予め定められた所定の数ずつまとめて復号する。
このように、符号化されたサブバンドの量子化係数を、予め定められた所定の数ずつまとめて復号することで、例えば、JPEG2000方式により画像を復号する場合とは異なり、複数のコーディングパスに基づいて、ビットプレーンごとに複数の処理を行う必要がなく、より高速に画像の復号を行うことができる。これにより、高解像度の画像をリアルタイムで復号するためのイントラ復号部を安価で実現することができる。
ところで、以上において説明したイントラ符号化部311(またはイントラ復号部411)においては、量子化係数の絶対値を符号化(または復号)する場合に、予め定められたw個の量子化係数の絶対値を順番に符号化すると説明したが、汎用DSP(Digital Signal Processor)や、汎用CPUにおいて用いられているSIMD(Single Instruction Multiple Data)演算命令を利用して、w個の量子化係数を同時に(並列に)符号化(または復号)することにより、より高速に画像を符号化(または復号)することができる。
ここで、SIMD演算命令の一例としては、例えば、インテル株式会社のCPUにおいて用いられているMMX(MultiMedia eXtension)、SSE(Streaming SIMD Extensions)、SSE2、SSE3などがある。
このようなSIMD演算命令を利用して量子化係数の絶対値を符号化する場合、イントラ符号化部311のエントロピ符号化部323は、例えば、図58に示すように構成される。
図58に示すエントロピ符号化部323は、ライン判定部361、VLC符号化部362、最大有効桁数計算部363、VLC符号化部364、有効桁抽出部365、VLC符号化部366、サイン抽出部367、およびVLC符号化部368が設けられている点において、図47に示したエントロピ符号化部323と同様であり、符号連結部369に新たにバッファ601が設けられている点において異なる。なお、図58において、図47における場合と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
符号連結部369のバッファ601には、VLC符号化部362、VLC符号化部364、VLC符号化部366、およびVLC符号化部368のそれぞれから供給された、ラインの量子化係数が全て0であるか否かを示す符号、最大有効桁数を示す符号、量子化係数の絶対値を示す符号、および量子化係数のサインを示す符号のそれぞれが一時的に記憶される。
バッファ601の記憶領域は、32ビットごとに管理され、バッファ601に入力される符号(データ)は、スカラ演算処理に用いられる符号と、ベクトル演算処理に用いられる符号とに分けられて記憶される。すなわち、1つの32ビットの記憶領域には、一時的に記憶する符号(データ)として、スカラ演算処理に用いられる符号、またはベクトル演算処理に用いられる符号が記憶される。
図58のエントロピ符号化部323においては、量子化係数の絶対値がSIMD演算命令を利用して並列に符号化されるので、量子化係数の絶対値を示す符号がベクトル演算処理に用いられる符号とされ、その他の符号は、スカラ演算処理に用いられる符号とされる。
なお、以下の説明においては、バッファ601に設けられる32ビットの記憶領域のうち、スカラ演算処理に用いられる符号が記憶される記憶領域をスカラ領域とも称し、ベクトル演算処理に用いられる符号が記憶される記憶領域をベクトル領域とも称する。
次に、図59を参照して、図58のエントロピ符号化部323が行うエントロピ符号化について説明する。
例えば、図59の左上に示すように、図46に示した12個の量子化係数“-0101”、“+0011”、“-0110”、“+0010”、“+0011”、“+0110”、“0000”、“-0011”、“+1101”、“-0100”、“+0111”、および“-1010”がエントロピ符号化部323に順番に入力されたとする。
すると、図46を参照して説明した場合と同様に、エントロピ符号化部323の符号連結部369には、これから符号化するラインの量子化係数が全て0であるか否かを示す符号“1”、および最初に入力された4つの量子化係数“-0101”、“+0011”、“-0110”、および“+0010”の最大有効桁数を示す符号“10001”が供給される。
そして、これらの量子化係数が全て0であるか否かを示す符号“1”、および量子化係数の最大有効桁数を示す符号“10001”からなる符号“110001”は、矢印A11に示すように、符号連結部369のバッファ601に設けられた32ビットのスカラ領域に記憶される。
図59の例においては、スカラ領域は、さらに4つの8ビットの領域に分けられており、スカラ領域には、その領域に記憶される符号が図中、左から右方向に、上位のビットから順番に格納されて記憶される。そして、1つのスカラ領域の全体に符号が格納されると、すなわち、1つのスカラ領域に32ビットの符号が格納されると、バッファ601には、新たな1つのスカラ領域が設けられ、新たに設けられたスカラ領域に、順次スカラ演算処理に用いられる符号が格納されていく。
量子化係数が全て0であるか否かを示す符号“1”、および量子化係数の最大有効桁数を示す符号“10001”からなる符号“110001”がスカラ領域に記憶されると、次に、エントロピ符号化部323は、最初に入力されたw個(4個)の量子化係数“-0101”、“+0011”、“-0110”、および“+0010”のそれぞれの絶対値を示す最大有効桁数分の符号を、同時に(並列に並べて)ベクトル領域に記憶する。
量子化係数“-0101”、“+0011”、“-0110”、および“+0010”の最大有効桁数は、図46を参照して説明したように、“3”であるから、これらの4個の量子化係数の絶対値を示す符号は、それぞれ“101”、“011”、“110”、および“010”となり、矢印A12に示すように、量子化係数の絶対値を示す符号“101”、“011”、“110”、および“010”は、バッファ601に設けられた1つのベクトル領域に並列に並べられて格納され、記憶される。
ここで、ベクトル領域は、さらに4つの8ビットの領域に分けられており、ベクトル領域の4つの領域のそれぞれには、同じ長さの(ビット長の)4つの量子化係数の絶対値を示す符号のそれぞれが、図中、左から右方向に、上位のビットから順番に格納されて記憶される。
矢印A12により示されるベクトル領域においては、図中、左側の8ビットの領域に量子化係数の絶対値を示す符号“101”が左側から格納され、左から2番目の8ビットの領域に符号“011”が左側から格納され、右から2番目の領域に符号“110”が左側から格納され、さらに、一番右側の領域には符号“010”が左側から格納されて記憶されている。
また、ベクトル領域もスカラ領域における場合と同様に、1つのベクトル領域の全体に符号が格納されると、すなわち、1つのベクトル領域に32ビットの符号が格納されると、バッファ601には、新たな1つのベクトル領域が設けられ、新たに設けられたベクトル領域に、順次ベクトル演算処理に用いられる符号が格納されていく。
そして、4つの量子化係数“-0101”、“+0011”、“-0110”、および“+0010”の絶対値を示す符号がベクトル領域に記憶されると、エントロピ符号化部323は、矢印A13に示すように、これらの4つの量子化係数のサインを示す符号をスカラ領域に格納して記憶する。
矢印A11に示したようにスカラ領域には、量子化係数が全て0であるか否かを示す符号“1”、および量子化係数の最大有効桁数を示す符号“10001”からなる符号“110001”が既に記憶されているので、エントロピ符号化部323は、矢印A13に示すように、量子化係数“-0101”、“+0011”、“-0110”、および“+0010”のサインを示す符号“1010”を、スカラ領域の既に記憶されている符号“110001”の右側に(符号“110001”に続けて)格納して記憶する。
さらに、最初の4つの量子化係数が符号化されると、エントロピ符号化部323は、次の4つの量子化係数“+0011”、“+0110”、“0000”、および“-0011”を符号化する。
まず、エントロピ符号化部323は、前回符号化した4つの量子化係数の最大有効桁数“3”と、今回符号化する量子化係数“+0011”、“+0110”、“0000”、および“-0011”の最大有効桁数“3”とを比較し、最大有効桁数が変化していないので、矢印A14に示すように、最大有効桁数を示す符号として、最大有効桁数が変化していないことを示す符号“0”を、既に記憶されている符号“1100011010”に続けてスカラ領域に格納して記憶する。
次に、エントロピ符号化部323は、今回入力されたw個(4個)の量子化係数“+0011”、“+0110”、“0000”、および“-0011”のそれぞれの絶対値を示す最大有効桁数分の符号“011”、“110”、“000”、および“011”のそれぞれを、矢印A15に示すようにベクトル領域に同時に格納して記憶する。
矢印A12に示したように、ベクトル領域の図中、左側の8ビットの領域、左から2番目の8ビットの領域、右から2番目の8ビットの領域、および一番右側の8ビットの領域のそれぞれには、既に符号“101”、“011”、“110”、および“010”のそれぞれが記憶されているので、エントロピ符号化部323は、矢印A15に示すように、今回入力された量子化係数の絶対値を示す符号“011”、“110”、“000”、および“011”のそれぞれを、ベクトル領域に既に記憶されている符号“101”、“011”、“110”、および“010”のそれぞれの右側に続けて格納して記憶する。
さらに、エントロピ符号化部323は、矢印A16に示すように、今回入力された4つの量子化係数“+0011”、“+0110”、“0000”、および“-0011”のうち、絶対値が0でない量子化係数のサインを示す符号“001”を、スカラ領域内の既に記憶されている符号“11000110100”の右側に続けて格納して記憶する。
そして、4つの量子化係数“+0011”、“+0110”、“0000”、および“-0011”が符号化されると、エントロピ符号化部323は、次の4つの量子化係数“+1101”、“-0100”、“+0111”、および“-1010”の符号化を行う。
まず、エントロピ符号化部323は、今回入力された4つの量子化係数“+1101”、“-0100”、“+0111”、および“-1010”の最大有効桁数“4”と、前回符号化した4つの量子化係数“3”とを比較して、矢印A17に示すように、最大有効桁数が変化したことを示す符号“1”、最大有効桁数が増加したことを示す符号“0”、および最大有効桁数の変化量を示す符号“1”からなる、最大有効桁数を示す符号“101”をスカラ領域に格納して記憶する。
この場合、スカラ領域には、矢印A16に示したように、既に符号“11000110100001”が記憶されているので、エントロピ符号化部323は、矢印A17に示すように、この符号“11000110100001”の図中、右側に最大有効桁数を示す符号“101”を格納する。
さらに、4つの量子化係数“+1101”、“-0100”、“+0111”、および“-1010”の最大有効桁数を示す符号が記憶されると、エントロピ符号化部323は、これらの量子化係数の絶対値を示す符号“1101”、“0100”、“0111”、および“1010”のそれぞれを、矢印A18に示すようにベクトル領域に同時に格納して記憶する。
矢印A15に示したように、ベクトル領域の図中、左側の8ビットの領域、左から2番目の8ビットの領域、右から2番目の8ビットの領域、および一番右側の8ビットの領域のそれぞれには、既に符号“101011”、“011110”、“110000”、および“010011”のそれぞれが記憶されており、左側の8ビットの領域、左から2番目の8ビットの領域、右から2番目の8ビットの領域、および一番右側の8ビットの領域のそれぞれには、それぞれ2ビットの符号しか記憶することができない。
そこで、エントロピ符号化部323は、矢印A18に示すように、バッファ601に新たなベクトル領域を確保し(設け)、今回入力された量子化係数の絶対値を示す符号“1101”、“0100”、“0111”、および“1010”のそれぞれのうちの上位の2ビットの符号“11”、“01”、“01”、および“10”のそれぞれを、ベクトル領域に既に記憶されている符号“101011”、“011110”、“110000”、および“010011”のそれぞれの右側に続けて格納して記憶し、今回入力された量子化係数の絶対値を示す符号“1101”、“0100”、“0111”、および“1010”のそれぞれのうちの下位の2ビットの符号“01”、“00”、“11”、および“10”のそれぞれを、新たに設けられたベクトル領域(矢印A18により示される2つのベクトル領域のうち、図中、下側のベクトル領域)の図中、左側の8ビットの領域、左から2番目の8ビットの領域、右から2番目の8ビットの領域、および一番右側の8ビットの領域のそれぞれの左側に格納して記憶する。
そして、4つの量子化係数“+1101”、“-0100”、“+0111”、および“-1010”の絶対値を示す符号が記憶されると、矢印A19に示すように、エントロピ符号化部323は、これらの4つの量子化係数のうち、絶対値が0でない量子化係数のサインを示す符号“0101”を、スカラ領域内の既に記憶されている符号“11000110100001101”の右側に続けて格納して記憶する。
このようにして、入力された量子化係数が符号化されると、エントロピ符号化部323は、矢印A19により示されるスカラ領域に記憶されている符号、矢印A19により示される2つのベクトル領域のうちの図中、上側のベクトル領域に記憶されている符号、および下側のベクトル領域に記憶されている符号を、符号化された画像として順番に出力する。
この場合、矢印A19により示されるスカラ領域の図中、右側の11ビットには、符号が格納されていない。また、矢印A19により示される2つのベクトル領域のうちの下側のベクトル領域の左側の8ビットの領域、左から2番目の8ビットの領域、右から2番目の8ビットの領域、および一番右側の8ビットの領域のそれぞれの右側の6ビットの領域にも、符号が格納されていない。
このように、スカラ領域およびベクトル領域に格納されて記憶されている符号を、符号化された画像として出力する場合に、入力された量子化係数の符号化が終了した時点において、スカラ領域およびベクトル領域に符号が格納されていない領域があるときには、その符号が格納されていない領域に、例えば符号“0”などの任意の符号が格納されて記憶されてから、スカラ領域およびベクトル領域に記憶された符号が符号化された画像として出力される。
したがって、例えば、矢印A19に示す例においては、符号化された画像として、スカラ領域に格納された符号“11000110100001101010100000000000”、図中、上側のベクトル領域に記憶された符号“10101111011110011100000101001110”、および下側のベクトル領域に記憶された符号“01000000000000001100000010000000”が順番に出力される。ここで、スカラ領域およびベクトル領域のうち、量子化係数の符号化が終了した時点で符号が格納されていなかった領域に格納される任意の符号は、復号時に読み込まれることはないので、どのような符号が格納されてもよい。
イントラ符号化部311は、SIMD演算命令を利用して量子化係数の絶対値を符号化する場合においても、画像が入力されると、図48のフローチャートを参照して説明した符号化処理を行う。また、図48のステップS313の処理に対応する図49のエントロピ符号化処理においては、図49のステップS341乃至ステップS349の各処理、ステップS351の処理、およびステップS352の処理については、イントラ符号化部311は、SIMD演算命令を利用しない場合と同様の処理(図49を参照して説明した処理)を行い、ステップS350に対応するw個組符号化処理において、SIMD演算命令を利用しない場合とは異なる処理を行う。
以下、図60のフローチャートを参照して、イントラ符号化部311がSIMD演算命令を利用して量子化係数の絶対値を符号化する場合における、w個組符号化処理について説明する。なお、ステップS611乃至ステップS619の各処理は、図50のステップS381乃至ステップS389の各処理にそれぞれ対応し、それぞれ同様に実行される。従って、それらの説明は繰り返しになるので省略する。
また、SIMD演算命令を利用して量子化係数の絶対値を符号化する場合、図49または図60を参照して説明した処理において、VLC符号化部362から符号連結部369に供給される、これから符号化するラインの量子化係数の絶対値が全て0であるか否かを示す符号、VLC符号化部364から符号連結部369に供給される量子化係数の最大有効桁数を示す符号、およびVLC符号化部368から符号連結部369に供給される量子化係数のサインを示す符号のそれぞれは、図59を参照して説明したように、符号連結部369のバッファ601に設けられたスカラ領域に格納されて記憶される。
ステップS620において、有効桁抽出部365は、量子化部322から供給された、w個の連続するラインy上の位置(x,y)、(x+1,y)、・・・、(x+w−1,y)の量子化係数から、量子化係数の有効桁を同時に抽出する。有効桁抽出部365は、抽出した量子化係数の有効桁をVLC符号化部366およびサイン抽出部367に供給する。また、VLC符号化部366は、有効桁抽出部365から供給された有効桁に基づいて(有効桁を符号化して)、w個の量子化係数の絶対値を示す符号を同時に符号連結部369に出力する。
ここで、位置(x,y)におけるxの値は、最大有効桁数計算部363が記憶している変数xの値とされ、yの値は、ライン判定部361が記憶している変数yの値とされる。例えば、有効桁抽出部365が量子化係数の有効桁として、有効桁“101”、“011”、“110”、および“010”を抽出した場合、VLC符号化部366から符号連結部369には4つの量子化係数の絶対値を示す符号“101”、“011”、“110”、および“010”が供給されるので、符号連結部369は、供給されたこれらの量子化係数の絶対値を示す符号を符号化して、図59の矢印A12に示したように、ベクトル領域に格納して記憶させる。
ステップS621において、サイン抽出部367は、所定の変数をiとして、変数iを0から(w−1)まで変化させて、量子化部322から供給された、量子化係数が0でないラインy上の位置(x+i,y)の量子化係数から、量子化係数のサインを抽出し、抽出したサイン(のデータ)をVLC符号化部368に供給する。ここで、位置(x,y)におけるxの値は、最大有効桁数計算部363が記憶している変数xの値とされ、yの値は、ライン判定部361が記憶している変数yの値とされる。
VLC符号化部368は、サイン抽出部367からのサインを符号化し、これにより得られる量子化係数のサインを示す符号を符号連結部369に出力する。また、符号連結部369は、図59を参照して説明したように、VLC符号化部368から供給された量子化係数のサインを示す符号を、バッファ601のスカラ領域に格納して記憶させる。
符号連結部369は、量子化係数のサインを示す符号をバッファ601のスカラ領域に格納して記憶させると、図59を参照して説明したように、バッファ601のスカラ領域に記憶されている符号、およびベクトル領域に記憶されている符号を連結して、連結された符号を符号化された画像として出力し、w個組符号化処理を終了し、処理を図49のステップS350に戻し、ステップS351以降の処理を実行させる。
このようにして、エントロピ符号化部323は、予め定められた数の量子化係数の絶対値を同時に符号化する。
従来のJPEG2000方式によるエントロピ符号化においては、複数のコーディングパスに基づいて、量子化係数をビットプレーンごとに算術符号化するため、エントロピ符号化における所定の処理を並列して同時に行うことは困難であったが、エントロピ符号化部323においては、ビットプレーン単位で複雑な処理を行う必要はないので、複数の量子化係数の絶対値を同時に符号化することができる。
このように、予め定められた数の量子化係数の絶対値を同時に符号化することによって、複数の処理を同時(並列)に行うことができ、より高速に画像を符号化することができる。
なお、ステップS621の処理において、w個の量子化係数のサインの符号化を順番に行うと説明したが、量子化係数の絶対値の符号化における場合と同様に、SIMD演算命令を利用することで、w個の量子化係数のサインの符号化を同時に行うようにしてもよい。この場合、符号化により得られたw個の量子化係数のサインを示す符号のそれぞれは、バッファ601のベクトル領域にw個に分けられて格納される。
また、バッファ601においては、1つのスカラ領域またはベクトル領域を32ビットの領域とし、その32ビットの領域をさらに4つの8ビットの領域に分けて使用すると説明したが、1つのスカラ領域またはベクトル領域の大きさなどは任意の大きさとすることができる。例えば、1つのスカラ領域またはベクトル領域を128ビットの領域とし、その128ビットの領域を8つの16ビットの領域に分けて使用するようにしてもよい。
さらに、SIMD演算命令を利用して符号化された画像を復号する場合、画像を復号するイントラ復号部411の符号分割部451(図52)は、例えば、図53に示した構成とされ、メモリ472には、符号化された画像としての符号が、図59を参照して説明したように、32ビットずつ格納されて記憶される。
制御部471は、メモリ472から符号を読み出して出力する場合、まず、最初の32ビットの符号が格納されている記憶領域をスカラ領域として、スカラ領域の先頭から順番に、これから復号するラインの量子化係数の絶対値が全て0であるか否かを示す符号、量子化係数の最大有効桁数を示す符号、または量子化係数のサインを示す符号を読み出して出力する。
また、制御部471は、メモリ472から量子化係数の絶対値を示す符号を読み出す場合、メモリ472のスカラ領域とされた記憶領域の次の32ビットの記憶領域(したがって、この記憶領域からはまだ符号が読み出されていない)をベクトル領域として、このベクトル領域から量子化係数の絶対値を示す符号を読み出して出力する。
なお、画像が符号化される場合、復号時において最初に量子化係数の絶対値を示す符号を読み出すときに、スカラ領域とされた記憶領域の次の32ビットの記憶領域に、必ず量子化係数の絶対値を示す符号(ベクトル演算に用いられる符号)が格納されているように画像の符号化が行われる。
さらに、符号化された画像としての符号が何ビットの記憶領域に分けられてメモリ472に格納されるかは、イントラ符号化部311において画像が符号化される場合に、1つのスカラ領域およびベクトル領域が何ビットとされるかに応じて変化する。すなわち、画像としての符号が分けられて格納されるメモリ472内の複数の記憶領域のそれぞれの大きさは、画像が符号化される場合における1つのスカラ領域およびベクトル領域の大きさと同じ大きさとされる。
イントラ復号部411は、SIMD演算命令を利用して量子化係数の絶対値を復号する場合においても、符号化された画像が入力されると、図55のフローチャートを参照して説明した復号処理を行う。また、図55のステップS431の処理に対応する図56のエントロピ復号処理においては、図56のステップS461乃至ステップS468の各処理、ステップS470の処理、並びにステップS471の処理については、イントラ復号部411は、SIMD演算命令を利用しない場合と同様の処理(図56を参照して説明した処理)を行い、ステップS469に対応するw個組復号処理において、SIMD演算命令を利用しない場合とは異なる処理を行う。
以下、図61のフローチャートを参照して、イントラ復号部411がSIMD演算命令を利用して量子化係数の絶対値を復号する場合における、w個組復号処理について説明する。
なお、ステップS651乃至ステップS655の各処理は、図57のステップS511乃至ステップS515の各処理とそれぞれ対応し、それぞれ同様に実行される。従って、それらについての説明は繰り返しになるので省略する。
また、SIMD演算命令を利用して量子化係数の絶対値を復号する場合、符号分割部451のメモリ472には、例えば、図59の矢印A19に示したように、画像としての符号が3つの32ビットの領域に分けられて記憶される。そして、ライン判定部452、VLC復号部454、およびVLC復号部456のそれぞれは、3つの32ビットの領域のうち、図59中、一番上の領域をスカラ領域として、スカラ領域の先頭(図中、左側)からラインの量子化係数が全て0であるか否かを示す符号、量子化係数の最大有効桁数を示す符号、および量子化係数のサインを示す符号のそれぞれを順番に読み出して復号する。
ステップS656において、VLC復号部455は、符号分割部451から、連続するBビットの符号をw個同時に読み込み、読み込んだw個のBビットの符号のそれぞれを、ラインy上の位置(x,y)、(x+1,y)、・・・、(x+w−1,y)の量子化係数の有効桁を示す符号として、VLC復号部456および量子化係数合成部457に供給(出力)する。また、VLC復号部455は、量子化係数の有効桁を示す情報を生成して、符号分割部451に供給する。ここで、位置(x,y)におけるxの値は、VLC復号部454が記憶している変数xの値とされ、yの値は、ライン判定部452が記憶している変数yの値とされる。
例えば、予め定められた数wが4であり、変数Bの値が3であり、符号分割部451のメモリ472に、図59の矢印A19に示したように、画像としての符号が3つの32ビットの記憶領域に分けられて記憶されているとすると、図59中、一番上側の32ビットの記憶領域は、既にスカラ領域とされて、ラインの量子化係数が全て0であるか否かを示す符号、および量子化係数の最大有効桁数を示す符号が読み出されており、次の32ビットの記憶領域(上から2番目の記憶領域)からは、まだ符号が読み出されていないので、VLC復号部455は、上から2番目の記憶領域をベクトル領域として、このベクトル領域の左側の8ビットの領域、左から2番目の8ビットの領域、右から2番目の8ビットの領域、および一番右側の8ビットの領域のそれぞれの図中左側から、位置(x,y)、(x+1,y)、(x+2,y)、および(x+3,y)の量子化係数の有効桁を示す符号“101”、“011”、“110”、および“010”のそれぞれを同時に読み出して出力する。
w個の量子化係数の有効桁を示す符号が、VLC復号部456および量子化係数合成部457に供給されると、その後、ステップS657の処理およびステップS658の処理が行われるが、これらの処理は、図57のステップS517の処理およびステップS518の処理と同様なので、その説明は省略する。
このようにして、エントロピ復号部421は、予め定められた数の量子化係数の絶対値を同時に復号する。
このように、予め定められた数の量子化係数の絶対値を同時に復号することによって、複数の処理を同時(並列)に行うことができ、より高速に画像を復号することができる。
なお、ステップS657の処理において、w個の量子化係数のサインを示す符号のそれぞれの復号を順番に行うと説明したが、w個の量子化係数のサインを示す符号のそれぞれの復号を、SIMD演算命令を利用して同時に(並列に)行うようにしてもよい。
以上のように、従来のJPEG2000方式による画像の符号化(または復号)とは異なり、複数のコーディングパスに基づいて、量子化係数をビットプレーンごとに算術符号化する必要がないため、より簡単な処理でより高速に画像を符号化(または復号)することができる。
従来のJPEG2000方式においては、複数のコーディングパスに基づいて、ビットプレーン毎に処理を行うので、それらの処理を行う場合に、おおよそ量子化係数にビットプレーンの数を掛け合わせた回数程度、量子化係数にアクセスしなければならず、処理量が多かった。
また、符号化された画像をパケット化する場合に、1つの画像の符号化が完全に終了しなければパケット化の処理を開始することができないため、その分だけ遅延が生じる。さらに、JPEG2000方式においては、例えば、図6に示したサブバンド上のx方向およびy方向に平行な辺からなる矩形領域内の位置に対応する(符号化された)量子化係数が1つのパケットに格納されるため、その矩形領域のy方向の長さに応じた遅延も生じる。従来のJPEG2000方式においては、このような符号化による遅延が生じるため、リアルタイムでの処理は困難であった。なお、サブバンド上の矩形領域のy方向の長さを短くすることにより、遅延を低減することは可能であったが、この場合、符号化効率が悪くなってしまう。
これに対して、イントラ符号化部311においては、上述したように、複数のコーディングパスに基づいて、量子化係数をビットプレーンごとに算術符号化する必要はなく、画像の符号化を行う場合に、量子化係数の絶対値を示す符号を出力するとき、最大有効桁数を示す符号を出力するとき、および量子化係数のサインを示す符号を出力するときに量子化係数にアクセスするだけなので、より簡単に画像を符号化することができる。
なお、最大有効桁数を示す符号および量子化係数のサインを示す符号は1ビットや0ビットであることもあるので、実質的には、画像の符号化を行う場合に、おおよそ2回程度量子化係数にアクセスするだけで画像を符号化することができる。また、画像を復号する場合、量子化係数には1度だけアクセスすればよいので、より簡単により高速に画像を復号することができる。
イントラ符号化部311またはイントラ復号部411においては、サブバンドの量子化係数をラスタスキャン順に符号化または復号するので、量子化係数をバッファリングする必要がなく、符号化または復号による遅延を低減することができる。
さらに、実際に横1920画素×縦1080画素のYUV4:2:2形式の画像を、SIMD演算命令を利用して(但し、w=4)実際に符号化および復号したところ、次のような結果が得られた。なお、符号化を行う場合、画像をウェーブレット変換して5段階のサブバンド分解を行い、さらに、各サブバンドのウェーブレット係数を量子化して得られた量子化係数を符号化した。また、符号化および復号に必要な機能ブロック(例えば、図58のエントロピ符号化部323および図52のエントロピ復号部421)、並びにJPEG2000方式により画像を符号化および復号する機能ブロックは、Pentium(登録商標)4(インテル株式会社の商標)と称されるCPU(クロック周波数3.0GHz)に所定のプログラムを実行させることにより実現させた。
従来のJPEG2000方式により1フレーム分の画像を符号化した場合、その符号量は291571バイトであり、符号化に必要とされた時間は、0.26157秒であった。また、符号化された画像を復号するために必要な時間は0.24718秒であった。
これに対して、図58のエントロピ符号化部323により、1フレーム分の画像を符号化した場合、その符号量は343840バイトであり、符号化に必要とされた時間は、0.03453秒であった。また、符号化された画像を、図52のエントロピ復号部421により復号するために必要な時間は0.02750秒であった。
動画像においては、多くの場合、1秒間に30フレーム表示されるので、1フレーム当たり0.033(=1/30)秒で符号化または復号することができれば、画像をリアルタイムに処理することができる。JPEG2000方式では、符号化に必要な時間は0.26157秒であり、復号に必要な時間は0.24718秒であるので、画像をリアルタイムに処理することは困難であるが、図58のエントロピ符号化部323により画像を符号化させる場合には、符号化に必要な時間は0.03453秒であり、ほぼリアルタイムに画像を処理することができる。また、図52のエントロピ復号部421により画像を復号する場合、復号に必要な時間は0.02750秒であるので、十分にリアルタイムで処理を行うことができる。
以上においては、画像データを符号化する例、または、画像データが符号化された符号化データを復号する例について説明したが、画像データに限らず、例えば、音声データなどを符号化する場合や、音声データ等が符号化された符号化データを復号する場合にも適用することが可能である。例えば、音声データを符号化する場合、音声データとして入力された符号により表わされるw個の所定の数値の最大有効桁数を示す符号、それらの数値の絶対値を示す符号、およびそれらの数値のサインを示す符号が符号化された音声データとして出力される。
また本実施の形態の特徴についてさらに付言すると、本実施の形態において説明した符号化方式では、量子化係数が可逆符号化される。そのため、例えば、人間の視覚特性に合わせて高域の係数ほど大きな量子化ステップサイズで量子化されるようにすることにより、発生符号量あたりの画質を大きく向上させることが出来る。また、例えば、特定の空間範囲で用いる量子化ステップサイズを小さくするようにすることにより、その空間範囲の画質を向上させることもできる。
さらに、本実施の形態において説明した符号化方式では、絶対値の有効桁部分を並べたものが符号される。仮に、絶対値の有効桁部分がVLC符号化されて送出されるようにすると、絶対値の有効桁数がNの場合には、2^(N*W)個のエントリを持つ非常に大きなVLCテーブルが必要になる(演算処理の負荷や処理時間だけでなく、VLCテーブルを保持するのに必要なメモリの容量も増大する)。これに対して、本実施の形態において説明した符号化方式においてはこのような大きなテーブルを使う必要がない(演算処理の負荷や処理時間だけでなく、メモリの容量を低減させることができる)。
また、VLCよりも圧縮率が高い算術符号を使うことも考えられるが、例えばJPEG2000のような算術符号化を用いた圧縮方式を用いた場合でも、本実施の形態において説明した符号化方式の場合と比べて、圧縮率が大きく向上することはない。つまり、本実施の形態において説明した符号化方式は、符号化処理が容易でありながら圧縮率が高い。
本実施の形態において説明した符号化方式は、w個組の係数における絶対値の最大有効桁数を符号化するので、隣同士の係数の有効桁数が似ていることを利用して発生符号量を低減させることができる。
また、本実施の形態において説明した符号化方式は、w個組の係数における絶対値の最大有効桁数を符号化するときに差分符号化を行うので、この点でも隣同士の係数の有効桁数が似ていることを利用して発生符号量を低減させることができる。
以上に説明した実施の形態のエントロピ符号化部323によるエントロピ符号化処理、およびエントロピ復号部421によるエントロピ復号処理は、上述した各実施の形態のそれぞれに適用することができ、画像符号化処理や画像復号処理全体の遅延時間、消費電力、および処理に必要なバッファメモリ量等をさらに低減させることができる。例えば、エントロピ符号化部323を図28のイントラ符号化部201のエントロピ符号化部215として適用してもよい(つまり、エントロピ符号化部215が、エントロピ符号化部323と同様にエントロピ符号化処理を実行するようにすることができる)。また、例えば、エントロピ復号部421を図34のイントラ復号部220のエントロピ復号部221として適用してもよい(つまり、エントロピ復号部221が、エントロピ復号部421と同様にエントロピ復号処理を実行するようにすることができる)。
つまり、このエントロピ符号化処理は、上述した各実施の形態のそれぞれに適用することにより、各実施の形態のウェーブレット変換部からの係数の出力順の特徴(つまり連続する係数の有効桁数が似ていること)を生かして発生符合量を低減させることができる。また、係数の並び替えを行う場合であっても、ウェーブレット変換部がラインブロック単位でウェーブレット変換を行うので、連続する係数の有効桁数が似ているという特徴には大きな影響を与えることがなく、エントロピ符号化処理の発生符号量は大きく変化しない。
以上のように、エントロピ符号化処理は、上述した各実施の形態において説明したウェーブレット変換処理と、処理される係数データの特徴や期待される効果が似ており、互いに親和性が高い。従って、上述した各実施の形態において説明したウェーブレット変換処理に対して、他の符号化方式を適用する場合よりも、本実施の形態のエントロピ符号化処理を適用する場合の方が、画像符号化処理全体においてより大きな効果を得ることを期待することができる。
以上においては、画像符号化装置は、1段の加減算器18により加算結果および減算結果が1つずつ得て、それらを符号化するように説明したが、この加減算器18を複数段設けるようにしてもよい。その場合、加減算器18の段数に応じて得られる加算結果や減算結果の数も増える。
図62は、加減算器18を2段設ける場合の画像符号化装置の構成例を示すブロック図である。図62に示される画像符号化装置701の符号化方法は、基本的に、図15を参照して説明した画像符号化装置の符号化方法と同様であり、加減算器18によってフィールド間の加算結果や減算結果を得て、それらを互いに独立に、若しくは統合的にイントラ符号化する。ただし、画像符号化装置701の場合、加減算器18を直列方向に2段設けており、4つの演算結果を得て、それらを互いに独立に、若しくは統合的にイントラ符号化する。
そのため、画像符号化装置701は、図15に示される画像符号化装置が入力動画像データの各フレームを奇数フィールドと偶数フィールドに分離していたのに対し、入力動画像データの2フレームを4つのフィールドデータに分離する。そのために画像符号化装置701は、スイッチ部10とフィールド遅延部11がそれぞれ3つずつ設けられている。図62において、「SW」で示されるスイッチ部10-1乃至スイッチ部10-3は、それぞれ、図15のスイッチ部10に対応し、「D」で示されるフィールド遅延部11-1乃至フィールド遅延部11-3は、それぞれ、図15のフィールド遅延部11に対応する。
図62に示されるように、スイッチ部10-1乃至スイッチ部10-3並びにフィールド遅延部11-1乃至フィールド遅延部11-3は、交互に直列に並べられる。スイッチ部10-1は、入力動画像データの2フレーム(フレームAおよびフレームB)毎に、2番目のフレームであるフレームBの偶数フィールドBeを抽出し、残り(フレームAおよびフレームBの奇数フィールドBo)をフィールド遅延部11-1に供給する。フィールド遅延部11-1は、供給されたデータを1フィールド分遅延させてからスイッチ部10-2に供給する。
同様に、スイッチ部10-2は、入力動画像データの2フレーム(フレームAおよびフレームB)毎に、2番目のフレームであるフレームBの奇数フィールドBoを抽出し、残り(フレームA)をフィールド遅延部11-2に供給する。フィールド遅延部11-2は、供給されたデータを1フィールド分遅延させてからスイッチ部10-3に供給する。さらに、スイッチ部10-3も同様に、入力動画像データの2フレーム(フレームAおよびフレームB)毎に、1番目のフレームであるフレームAの偶数フィールドAeを抽出し、残り(フレームAの奇数フィールドAo)をフィールド遅延部11-3に供給する。フィールド遅延部11-3は、供給されたデータを1フィールド分遅延させてから出力する。
画像符号化装置701は、加減算器18-1乃至加減算器18-4を有する。加減算器18-1乃至加減算器18-4は、それぞれ、図15の画像符号化装置の加減算器18と同等の処理部であり、内部に加算器12および減算器13を有しており、2系統の入力を互いに加算および減算し、その加算結果および減算結果をそれぞれ出力する。
図62に示されるように、以上の様にして分離された4つのフィールドデータを処理するために、加減算器18-1および加減算器18-2が1段目として並列に配置され、加減算器18-3および加減算器18-4が2段目として並列に配置される。
図62に示されるように、フレームAの奇数フィールドAoと偶数フィールドAeが加減算器18-1に供給され、フレームBの奇数フィールドBoと偶数フィールドBeが加減算器18-2に供給される。これらのフィールドデータは、フィールド遅延部11-1乃至フィールド遅延部11-3により上述したように適宜遅延されており、互いに同じタイミングで加減算器18-1または加減算器18-2に供給される。
つまり、入力されてから加減算器18-1または加減算器18-2に入力されるまでに、入力動画像データは、最大3フィールド分遅延する。換言すれば、加減算器18-1および加減算器18-2には、2フレーム毎に1回フィールドデータが入力される。
加減算器18-1は、入力されたフレームAの奇数フィールドAoと偶数フィールドAeを加算および減算し、加算結果Ao+Aeと減算結果Ao-Aeを出力する。同様に、加減算器18-2は、入力されたフレームBの奇数フィールドBoと偶数フィールドBeを加算および減算し、加算結果Bo+Beと減算結果Bo-Beを出力する。図62に示されるように、この加算結果Ao+Aeと加算結果Bo+Beは、2段目の加減算器18-3に供給され、減算結果Ao-Aeと減算結果Bo-Beは、2段目の加減算器18-4に供給される。
加減算器18-3は、入力された加算結果Ao+Aeと加算結果Bo+Beに対して、加減算器18-1や加減算器18-2と同様に加算および減算を行い、加算結果Ao+Ae+Bo+Beと減算結果Ao+Ae-Bo-Beを出力する。加減算器18-4も同様に、入力された減算結果Ao-Aeと減算結果Bo-Beに対して加算および減算を行い、加算結果Ao-Ae+Bo-Beと減算結果Ao-Ae-Bo+Beを出力する。
加減算器18-3より出力される加算結果Ao+Ae+Bo+Beと減算結果Ao+Ae-Bo-Be、並びに、加減算器18-4より出力される加算結果Ao-Ae+Bo-Beと減算結果Ao-Ae-Bo+Beは、それぞれ、イントラ符号化部712に供給される。
レート制御部711は、イントラ符号化部712が各演算結果を個別に符号化する場合は各演算結果について目標符号量を設定し、イントラ符号化部712が各演算結果を統合的に符号化する場合は全演算結果を統合的に符号化するための目標符号量を設定する。イントラ符号化部712は、レート制御部711において設定された目標符号量を取得すると、それに基づいて、入力された4つの演算結果を符号化し、必要に応じて符号化データを合成し、1つの符号化ストリームとして出力する。
このように、フィールドデータの加算および減算を複数回繰り返して符号化することにより、図1や図15において説明した、フィールドデータの加算および減算を1回ずつ行い符号化する場合よりもさらに符号化効率を高めることができ、復号後の画像の主観画質を向上させられる効果がある。
図63は、図62の画像符号化装置701に対応する画像復号装置の構成例を示すブロック図である。図63に示されるように、画像符号化装置701に対応する画像復号装置721も、画像符号化装置701と同様に4つの加減算器28-1乃至加減算器28-4が2段構成として設けられている。つまり、画像符号化装置において行われる加減算の回数と、画像復号装置において行われる加減算の回数は互いに一致させる必要がある。
なお、この加減算器28-1乃至加減算器28-4は、それぞれ、図4や図16の画像符号化装置の加減算器28と同等の処理部であり、内部に加算器23および減算器24を有しており、2系統の入力を互いに加算および減算し、その加算結果および減算結果をそれぞれ出力する。つまり、加減算器28-1乃至加減算器28-4は、上述した加減算器18-1乃至加減算器18-4とも同等である。
イントラ復号部731は、図16のイントラ復号部60に対応する復号処理部である。ただし、イントラ復号部60が符号化ストリームを復号して加算結果と減算結果を1つずつ、つまり合計2つの復号データを得るのに対し、イントラ復号部731は、符号化ストリームを復号して加算結果と減算結果を2つずつ、つまり合計4つの復号データを得る。
符号化ストリームが入力されると、イントラ復号部731は、その符号化方法に応じて復号し、図62において説明した加算結果Ao+Ae+Bo+Be、減算結果Ao+Ae-Bo-Be、加算結果Ao-Ae+Bo-Be、および減算結果Ao-Ae-Bo+Beを復元し、その加算結果Ao+Ae+Bo+Beと減算結果Ao+Ae-Bo-Beを1段目の加減算器28-1に供給し、加算結果Ao-Ae+Bo-Beと減算結果Ao-Ae-Bo+Beを1段目の加減算器28-2に供給する。
加減算器28-1乃至加減算器28-4は、2段構成に配置されており、加減算器28-1および加減算器28-2が1段目として並列に配置され、加減算器28-3および加減算器28-4が2段目として並列に配置される。
加減算器28-1は、入力された加算結果Ao+Ae+Bo+Beと減算結果Ao+Ae-Bo-Beに対して加算および減算を行い、加算結果2(Ao+Ae)と減算結果2(Bo+Be)を出力する。加減算器28-2は、入力された加算結果Ao-Ae+Bo-Beと減算結果Ao-Ae-Bo+Beに対して加算および減算を行い、加算結果2(Ao-Ae)と減算結果2(Bo-Be)を出力する。
この加算結果2(Ao+Ae)と加算結果2(Ao-Ae)は、2段目の加減算器28-3に供給され、減算結果2(Bo+Be)と減算結果2(Bo-Be)は、加減算器28-4に供給される。
加減算器28-3は、入力された加算結果2(Ao+Ae)と加算結果2(Ao-Ae)に対して加算および減算を行い、加算結果4Aoと減算結果4Aeを出力する。加減算器28-4は、入力された減算結果2(Bo+Be)と減算結果2(Bo-Be)に対して加算および減算を行い、加算結果4Boと減算結果4Beを出力する。
加算結果4Aoは、除算部732-1において4で除され、フレームAの奇数フィールドAoが復元される。このフィールドAoは、SWで示されるスイッチ部27-1に供給される。減算結果4Aeは、除算部732-2において4で除され、フレームAの偶数フィールドAeが復元される。このフィールドAeは、Dで示されるフィールド遅延部26において1フィールド分遅延された後スイッチ部27-1に供給される。つまり、スイッチ部27-1には、フレームAの奇数フィールドAoが供給された後に、フレームAの偶数フィールドAeが供給される。スイッチ部27-1は、入力を切り替えることにより、これらのフィールドデータを、順次、SWで示されるスイッチ部27-2に出力する。
また、加算結果4Boは、除算部732-3において4で除され、フレームBの奇数フィールドBoが復元される。このフィールドBoは、2Dで示されるフィールド遅延部734において2フィールド分遅延された後スイッチ部27-2に供給される。つまり、スイッチ部27-2には、3フィールド分のフィールドデータが、奇数フィールドAo、偶数フィールドAe、奇数フィールドBoの順で供給される。スイッチ部27-2は、入力を切り替えることにより、これらのフィールドデータを、順次、SWで示されるスイッチ部27-3に出力する。
さらに、加算結果4Beは、除算部732-4において4で除され、フレームBの偶数フィールドBeが復元される。このフィールドBeは、3Dで示されるフィールド遅延部735において3フィールド分遅延された後スイッチ部27-3に供給される。つまり、スイッチ部27-3には、2フレーム分のフィールドデータが、奇数フィールドAo、偶数フィールドAe、奇数フィールドBo、偶数フィールドBeの順で供給される。スイッチ部27-3は、入力を切り替えることにより、これらのフィールドデータを、順次、画像復号装置721の外部に出力する。
以上のように、画像復号装置721は、2フレーム分の画像データを用いて4つの演算結果が符号化された符号化ストリームを復号し、復号画像データを得ることができる。すなわち、画像復号装置721は、画像符号化装置701により符号化されて得られた符号化ストリームを復号することができる。
なお、画像符号化装置701による画像符号化処理の流れは、図13、図20、および図26のフローチャートを参照して説明した各場合の流れと基本的に同様であり、加算および減算の回数がそれぞれ2回ずつになるのみであるので、その説明は省略する。つまり、画像符号化装置701が、各演算結果を個別に符号化する場合の画像符号化処理の流れは、図13のフローチャートに対応し、各演算結果を統合的に符号化する場合の画像符号化処理の流れは、図20のフローチャートに対応し、各演算結果を個別に符号化するか統合的に符号化するかを選択可能とする場合の画像符号化処理の流れは、図26のフローチャートに対応する。
この画像符号化装置701の場合と同様に、画像復号装置721による画像復号処理の流れも、図14、図21、および図27のフローチャートを参照して説明した各場合の流れと基本的に同様であり、加算および減算の回数がそれぞれ2回ずつになるのみであるので、その説明は省略する。
なお、加減算の回数は何段であってもよく、さらに増やして、3段以上であってももちろんよい。加減算の段数を増やすほど、理論的には、より符号化効率を高めることができ、復号後の画像の主観画質を向上させることができる。ただし、加減算の段数を増やすほど、1組とする加減算の結果の数は増加する。つまり、画像データのフィールドデータがより多く必要になるので、その分遅延時間は増大する。
図64は、加減算を3段にする場合の画像符号化装置の構成例を示すブロック図である。
この画像符号化装置741の構成は、処理するフィールド数が増えただけで、基本的に図62に示される画像符号化装置701と同様である。図64に示される画像符号化装置741は、入力画像データをフィールド単位で分離させるフィールド分離部751と、各フィールドデータの加減算と、その結果の符号化を行う加減算符号化部752を有する。
図64において、フィールド分離部751と加減算符号化部752を結ぶ矢印で示されるように、この画像符号化装置741においては、加減算を3回繰り返すために8つのフィールドデータ、すなわち、4フレーム分の画像データが必要になる。
図65は、図64のフィールド分離部751の詳細な構成例を示すブロック図である。図65に示されるように、フィールド分離部751は、SWで示されるスイッチ部10-1乃至スイッチ部10-7と、Dで示されるフィールド遅延部11-1乃至フィールド遅延部11-7が交互に直列に配置されている。
スイッチ部10-1乃至スイッチ部10-7は、図15のスイッチ部10に対応して画像データをフィールド単位で分離するものであり、フィールド遅延部11-1乃至フィールド遅延部11-7は、図15のフィールド遅延部11に対応し、画像データを1フィールド分遅延させる。
図65の構成は、その数が異なるだけで、基本的に、図62を参照して説明した画像符号化装置701におけるスイッチ部10-1乃至スイッチ部10-3、並びに、フィールド遅延部11-1乃至フィールド遅延部11-3の構成と同様である。
つまり、フィールド分離部751は、スイッチ部10-1乃至スイッチ部10-7、並びに、フィールド遅延部11-1乃至フィールド遅延部11-7を用いて、図62の場合と同様に、4フレームの画像データを1フィールドずつ遅延させながら、1フィールドずつ分離して抽出し、各フィールドデータを互いに同タイミングで加減算符号化部752に供給する。フィールド分離部751は、入力される画像データに対して、この処理を4フレーム毎に繰り返す。
なお、ここでは、この4フレーム単位の画像データの内、1フレーム目をフレームAとし、その奇数フィールドをAo、偶数フィールドをAeとし、2フレーム目をフレームBとし、その奇数フィールドをBo、偶数フィールドをBeとし、3フレーム目をフレームCとし、その奇数フィールドをCo、偶数フィールドをCeとし、4フレーム目をフレームDとし、その奇数フィールドをDo、偶数フィールドをDeとしている。
図66は、図64の加減算符号化部752の詳細な構成例を示すブロック図である。図66に示されるように、加減算符号化部752においては、12個の加減算器18(加減算器18-1乃至加減算器18-12)が4つずつ並列に、3段に配置される。加減算器18-1乃至加減算器18-12は、それぞれ加減算器18と同等の機能を有する。
加減算器18-1は、フィールド分離部751より供給された奇数フィールドAoと偶数フィールドAeに対して加算および減算を行い、加算結果Ao+Aeを2段目の加減算器18-5に供給し、減算結果Ao-Aeを2段目の加減算器18-6に供給する。加減算器18-2は、フィールド分離部751より供給された奇数フィールドBoと偶数フィールドBeに対して加算および減算を行い、加算結果Bo+Beを2段目の加減算器18-5に供給し、減算結果Bo-Beを2段目の加減算器18-6に供給する。
加減算器18-3は、フィールド分離部751より供給された奇数フィールドCoと偶数フィールドCeに対して加算および減算を行い、加算結果Co+Ceを2段目の加減算器18-7に供給し、減算結果Co-Ceを2段目の加減算器18-8に供給する。加減算器18-4は、フィールド分離部751より供給された奇数フィールドDoと偶数フィールドDeに対して加算および減算を行い、加算結果Do+Deを2段目の加減算器18-7に供給し、減算結果Do-Deを2段目の加減算器18-8に供給する。
2段目の加減算器18-5は、加算結果Ao+Aeと加算結果Bo+Beに対して加算および減算を行い、加算結果Ao+Ae+Bo+Beを3段目の加減算器18-9に供給し、減算結果Ao+Ae-Bo-Beを3段目の加減算器18-11に供給する。加減算器18-6は、減算結果Ao-Aeと減算結果Bo-Beに対して加算および減算を行い、加算結果Ao-Ae+Bo-Beを3段目の加減算器18-10に供給し、減算結果Ao-Ae-Bo+Beを3段目の加減算器18-12に供給する。
2段目の加減算器18-7は、加算結果Co+Ceと加算結果Do+Deに対して加算および減算を行い、加算結果Co+Ce+Do+Deを3段目の加減算器18-9に供給し、減算結果Co+Ce-Do-Deを3段目の加減算器18-11に供給する。加減算器18-8は、減算結果Co-Ceと減算結果Do-Deに対して加算および減算を行い、加算結果Co-Ce+Do-Deを3段目の加減算器18-10に供給し、減算結果Co-Ce-Do+Deを3段目の加減算器18-12に供給する。
3段目の加減算器18-9は、加算結果Ao+Ae+Bo+Beと加算結果Co+Ce+Do+Deに対して加算および減算を行い、加算結果Ao+Ae+Bo+Be+Co+Ce+Do+Deと減算結果Ao+Ae+Bo+Be-Co-Ce-Do-Deをイントラ符号化部762に供給する。加減算器18-10は、加算結果Ao-Ae+Bo-Beと加算結果Co-Ce+Do-Deに対して加算および減算を行い、加算結果Ao-Ae+Bo-Be+Co-Ce+Do-Deと減算結果Ao-Ae+Bo-Be-Co+Ce-Do+Deをイントラ符号化部762に供給する。
加減算器18-11は、減算結果Ao+Ae-Bo-Beと減算結果Co+Ce-Do-Deに対して加算および減算を行い、加算結果Ao+Ae-Bo-Be+Co+Ce-Do-Deと減算結果Ao+Ae-Bo-Be-Co-Ce+Do+Deをイントラ符号化部762に供給する。加減算器18-12は、減算結果Ao-Ae-Bo+Beと減算結果Co-Ce-Do+Deに対して加算および減算を行い、加算結果Ao-Ae-Bo+Be+Co-Ce-Do+Deと減算結果Ao-Ae-Bo+Be-Co+Ce+Do-Deをイントラ符号化部762に供給する。
レート制御部761は、イントラ符号化部762が各演算結果を個別に符号化する場合は各演算結果について目標符号量を設定し、イントラ符号化部762が各演算結果を統合的に符号化する場合は全演算結果を統合的に符号化するための目標符号量を設定する。イントラ符号化部762は、レート制御部761において設定された目標符号量を取得すると、それに基づいて、入力された8つの演算結果を符号化し、必要に応じて符号化データを合成し、1つの符号化ストリームとして出力する。
つまり、レート制御部761およびイントラ符号化部762は、並列に扱う演算結果の数が異なるものの、基本的にレート制御部711およびイントラ符号化部712と同様に、目標符号量を設定し、それに基づいて符号化を行う。以上のように、出力された符号化ストリームは、画像符号化装置741に対応する画像復号装置に供給される。
図67は、図64に示される、加減算を3段階行う画像符号化装置に対応する画像復号装置の構成例を示すブロック図である。
図67に示される画像復号装置771は、入力された符号化ストリームを復号して、さらに得られた8つの復号結果に対して加減算を行い、8つのフレームに関するデータを生成する復号加減算部781と、8つのフレームに関するデータから各フィールドデータを復元し、そのフィールドデータを合成して元の動画像データを復元するフィールド合成部782を有する。
この画像復号装置771の構成も、処理するフィールド数が増えただけで、基本的に図63に示される画像復号装置721と同様である。
図68は、図67の復号加減算部781の詳細な構成例を示すブロック図である。
イントラ復号部791は、イントラ復号部60やイントラ復号部731と同様に、画像符号化装置741より供給された符号化ストリームを、画像符号化装置741における符号化方法に対応する方法で符号化し、8つの演算結果を得る。
図68に示されるように、復号加減算部781には、12個の加減算器28(加減算器28-1乃至加減算器28-12)が4つずつ並列に、3段に配置される。加減算器28-1乃至加減算器28-12は、それぞれ加減算器28と同等の機能を有する。
イントラ復号部791は、その復元した8つの演算結果の内、加算結果Ao+Ae+Bo+Be+Co+Ce+Do+Deと減算結果Ao+Ae+Bo+Be-Co-Ce-Do-Deを加減算器28-1に供給し、加算結果Ao-Ae+Bo-Be+Co-Ce+Do-Deと減算結果Ao-Ae+Bo-Be-Co+Ce-Do+Deを加減算器28-2に供給し、加算結果Ao+Ae-Bo-Be+Co+Ce-Do-Deと減算結果Ao+Ae-Bo-Be-Co-Ce+Do+Deを加減算器28-3に供給し、加算結果Ao-Ae-Bo+Be+Co-Ce-Do+Deと減算結果Ao-Ae-Bo+Be-Co+Ce+Do-Deを加減算器28-4に供給する。
加減算器28-1は、加算結果Ao+Ae+Bo+Be+Co+Ce+Do+Deと減算結果Ao+Ae+Bo+Be-Co-Ce-Do-Deに対して加算および減算を行い、加算結果2(Ao+Ae+Bo+Be)を2段目の加減算器28-5に供給し、減算結果2(Co+Ce+Do+De)を2段目の加減算器28-7に供給する。加減算器28-2は、加算結果Ao-Ae+Bo-Be+Co-Ce+Do-Deと減算結果Ao-Ae+Bo-Be-Co+Ce-Do+Deに対して加算および減算を行い、加算結果2(Ao-Ae+Bo-Be)を2段目の加減算器28-6に供給し、減算結果2(Co-Ce+Do-De)を2段目の加減算器28-8に供給する。
加減算器28-3は、加算結果Ao+Ae-Bo-Be+Co+Ce-Do-Deと減算結果Ao+Ae-Bo-Be-Co-Ce+Do+Deに対して加算および減算を行い、加算結果2(Ao+Ae-Bo-Be)を2段目の加減算器28-5に供給し、減算結果2(Co+Ce-Do-De)を2段目の加減算器28-7に供給する。加減算器28-4は、加算結果Ao-Ae-Bo+Be+Co-Ce-Do+Deと減算結果Ao-Ae-Bo+Be-Co+Ce+Do-Deに対して加算および減算を行い、加算結果2(Ao-Ae-Bo+Be)を2段目の加減算器28-6に供給し、減算結果2(Co-Ce-Do+De)を2段目の加減算器28-8に供給する。
2段目の加減算器28-5は、加算結果2(Ao+Ae+Bo+Be)と加算結果2(Ao+Ae-Bo-Be)に対して加算および減算を行い、加算結果4(Ao+Ae)を3段目の加減算器28-9に供給し、減算結果4(Bo+Be)を3段目の加減算器28-10に供給する。加減算器28-6は、加算結果2(Ao-Ae+Bo-Be)と加算結果2(Ao-Ae-Bo+Be)に対して加算および減算を行い、加算結果4(Ao-Ae)を3段目の加減算器28-9に供給し、減算結果4(Bo-Be)を3段目の加減算器28-10に供給する。
加減算器28-7は、減算結果2(Co+Ce+Do+De)と減算結果2(Co+Ce-Do-De)に対して加算および減算を行い、加算結果4(Co+Ce)を3段目の加減算器28-11に供給し、減算結果4(Do+De)を3段目の加減算器28-12に供給する。加減算器28-8は、減算結果2(Co-Ce+Do-De)と減算結果2(Co-Ce-Do+De)に対して加算および減算を行い、加算結果4(Co-Ce)を3段目の加減算器28-11に供給し、減算結果4(Do-De)を3段目の加減算器28-12に供給する。
3段目の加減算器28-9は、加算結果4(Ao+Ae)と加算結果4(Ao-Ae)に対して加算および減算を行い、加算結果8Aoと減算結果8Aeをフィールド合成部782に出力する。加減算器28-10は、減算結果4(Bo+Be)と減算結果4(Bo-Be)に対して加算および減算を行い、加算結果8Boと、減算結果8Beをフィールド合成部782に出力する。
加減算器28-11は、加算結果4(Co+Ce)と加算結果4(Co-Ce)に対して加算および減算を行い、加算結果8Coと減算結果8Ceをフィールド合成部782に出力する。加減算器28-12は、減算結果4(Do+De)と減算結果4(Do-De)に対して加算および減算を行い、加算結果8Doと、減算結果8Deをフィールド合成部782に出力する。
図69は、図67のフィールド合成部782の詳細な構成例を示すブロック図である。
図69に示されるように、フィールド合成部782は、入力された演算結果を8で除する除算部801-1乃至除算部801-8、入力されたデータを1フィールド分遅延させるフィールド遅延部26(D)、入力されたデータを2フィールド分遅延させるフィールド遅延部734(2D)、入力されたデータを3フィールド分遅延させるフィールド遅延部735(3D)、入力されたデータを4フィールド分遅延させるフィールド遅延部802(4D)、入力されたデータを5フィールド分遅延させるフィールド遅延部803(5D)、入力されたデータを6フィールド分遅延させるフィールド遅延部804(6D)、および、入力されたデータを7フィールド分遅延させるフィールド遅延部805(7D)、並びに、図4のスイッチ部27と同様のスイッチ部27-1乃至スイッチ部27-7を有する。
フィールド合成部782に入力された加算結果8Aoは、除算部801-1において8で除された後、スイッチ部27-1に供給される。また、加算結果8Boは、除算部801-2において8で除され、フィールド遅延部26において1フィールド分遅延された後、スイッチ部27-1に供給される。つまり、スイッチ部27-1には、フレームAの奇数フィールドAoと、フレームAの偶数フィールドAeが、この順で供給される。スイッチ部27-1は、入力を切り替えることにより、これらのフィールドデータを、順次、スイッチ部27-2に供給する。
また、フィールド合成部782に入力された加算結果8Boは、除算部801-3において8で除され、フィールド遅延部734において2フィールド分遅延された後、スイッチ部27-2に供給される。つまり、スイッチ部27-2には、フレームAの奇数フィールドAo、フレームAの偶数フィールドAe、およびフレームBの奇数フィールドBoがこの順で供給される。スイッチ部27-2は、入力を切り替えることにより、これらのフィールドデータを、供給された順でスイッチ部27-3に供給する。
さらに、フィールド合成部782に入力された加算結果8Beは、除算部801-4において8で除され、フィールド遅延部735において3フィールド分遅延された後、スイッチ部27-3に供給される。つまり、スイッチ部27-3には、フレームAの奇数フィールドAo、フレームAの偶数フィールドAe、フレームBの奇数フィールドBo、およびフレームBの偶数フィールドBeがこの順で供給される。スイッチ部27-3は、入力を切り替えることにより、これらのフィールドデータを、供給された順でスイッチ部27-4に供給する。
また、フィールド合成部782に入力された加算結果8Coは、除算部801-5において8で除され、フィールド遅延部802において4フィールド分遅延された後、スイッチ部27-4に供給される。つまり、スイッチ部27-4には、フレームAの奇数フィールドAo、フレームAの偶数フィールドAe、フレームBの奇数フィールドBo、フレームBの偶数フィールドBe、およびフレームCの奇数フィールドCoがこの順で供給される。スイッチ部27-4は、入力を切り替えることにより、これらのフィールドデータを、供給された順でスイッチ部27-5に供給する。
さらに、フィールド合成部782に入力された加算結果8Ceは、除算部801-6において8で除され、フィールド遅延部803において5フィールド分遅延された後、スイッチ部27-5に供給される。つまり、スイッチ部27-5には、フレームAの奇数フィールドAo、フレームAの偶数フィールドAe、フレームBの奇数フィールドBo、フレームBの偶数フィールドBe、フレームCの奇数フィールドCo、およびフレームCの偶数フィールドCeがこの順で供給される。スイッチ部27-5は、入力を切り替えることにより、これらのフィールドデータを、供給された順でスイッチ部27-6に供給する。
また、フィールド合成部782に入力された加算結果8Doは、除算部801-7において8で除され、フィールド遅延部804において6フィールド分遅延された後、スイッチ部27-6に供給される。つまり、スイッチ部27-6には、フレームAの奇数フィールドAo、フレームAの偶数フィールドAe、フレームBの奇数フィールドBo、フレームBの偶数フィールドBe、フレームCの奇数フィールドCo、フレームCの偶数フィールドCe、およびフレームDの奇数フィールドDoがこの順で供給される。スイッチ部27-6は、入力を切り替えることにより、これらのフィールドデータを、供給された順でスイッチ部27-7に供給する。
さらに、フィールド合成部782に入力された加算結果8Deは、除算部801-8において8で除され、フィールド遅延部805において7フィールド分遅延された後、スイッチ部27-7に供給される。つまり、スイッチ部27-7には、フレームAの奇数フィールドAo、フレームAの偶数フィールドAe、フレームBの奇数フィールドBo、フレームBの偶数フィールドBe、フレームCの奇数フィールドCo、フレームCの偶数フィールドCe、フレームDの奇数フィールドDo、およびフレームDの偶数フィールドDeがこの順で供給される。スイッチ部27-7は、入力を切り替えることにより、これらのフィールドデータを、供給された順で復号画像データとして画像復号装置771の外部に出力する。
以上のように、画像復号装置771は、4フレーム分の画像データを用いて8つの演算結果が符号化された符号化ストリームを復号し、復号画像データを得ることができる。すなわち、画像復号装置771は、画像符号化装置741により符号化されて得られた符号化ストリームを復号することができる。
なお、画像符号化装置741による画像符号化処理の流れは、画像符号化装置701の場合と同様に、図13、図20、および図26のフローチャートを参照して説明した各場合の流れと基本的に同様であり、加算および減算の回数がそれぞれ増えるのみであるので、その説明は省略する。つまり、画像符号化装置741が、各演算結果を個別に符号化する場合の画像符号化処理の流れは、図13のフローチャートに対応し、各演算結果を統合的に符号化する場合の画像符号化処理の流れは、図20のフローチャートに対応し、各演算結果を個別に符号化するか統合的に符号化するかを選択可能とする場合の画像符号化処理の流れは、図26のフローチャートに対応する。
この画像符号化装置741の場合と同様に、画像復号装置771による画像復号処理の流れも、画像復号装置721の場合と同様に、図14、図21、および図27のフローチャートを参照して説明した各場合の流れと基本的に同様であり、加算および減算の回数がそれぞれ増えるのみであるので、その説明は省略する。
以上のように、加減算の段数を増加させると、遅延時間が長くなるが、図28乃至図61を参照して説明したように、ラインブロック毎に符号化を行うことにより、ある程度遅延時間の増大を抑制することができる。
図70および図71は、以上のような加減算の繰り返し回数の、ビットレートと歪率の関係への影響の例を示すグラフである。図70および図71において、横軸がビットレート(Mbps)を示し、縦軸が歪率(PSNR(Peak Signal-to-Noise Ratio)[dB])を示す。なお、図70に結果が示される実験と図71に結果が示される実験とでは、符号化対象とする画像データとして、画像の特徴が互いに異なるものが使用されている。
歪率(PSNR)は、元画像データを符号化して復号し、得られた復号画像データと元画像データとで画像を比較し、その差異の程度を評価する指標であり、値が大きいほど2つの画像が近似していることを示す。
図70において、三角(△)は、従来のように、加減算を行わずに符号化する場合の、ビットレートと歪率の関係を示しており、縦十字(+)は、図1や図15の画像符号化装置のように加減算を1回行ってから符号化する場合の、ビットレートと歪率の関係を示している。図70において、両者を同ビットレートで比較すると、縦十字(+)の場合の方が、PSNRの値が大きく、画質が良好であることが示されている。つまり、フィールド間で加減算を行わない従来の方式よりも、本発明のようにフィールド間で加減算を1回行ってから符号化を行う場合の方が、復号後の画像の主観画質を向上させることができる。
また、図70において、四角(□)は、符号化対象の画像データをビットプレーンに分解して処理するものの、従来のように、加減算を行わずに符号化する場合の、ビットレートと歪率の関係を示しており、米印(※)は、符号化対象の画像データをビットプレーンに分解するとともに、図1や図15の画像符号化装置のように加減算を1回行ってから符号化する場合の、ビットレートと歪率の関係を示している。図70において、両者を同ビットレートで比較すると、米印(※)の場合の方が、PSNRの値が大きく、画質が良好であることが示されている。やはり、フィールド間で加減算を行わない従来の方式よりも、本発明のようにフィールド間で加減算を1回行ってから符号化を行う場合の方が、復号後の画像の主観画質を向上させることができる。
さらに、図70において、丸(○)は、従来のように、加減算を行わずに符号化する場合の、ビットレートと歪率の関係を示しており、かける(×)は、符号化対象の画像データをビットプレーンに分解するとともに、図62の画像符号化装置701のように加減算を2回行ってから符号化する場合の、ビットレートと歪率の関係を示している。図70において、両者を同ビットレートで比較すると、かける(×)の場合の方が、PSNRの値が大きく、画質が良好であることが示されている。やはり、フィールド間で加減算を行わない従来の方式よりも、本発明のようにフィールド間で加減算を2回行ってから符号化を行う場合の方が、復号後の画像の主観画質を向上させることができる。
なお、図70において、縦十字(+)とかける(×)を比較すると、かける(×)の場合の方が、PSNRの値が大きく、画質が良好であることが示されている。つまり、フィールド間で加減算を行う回数を増加させるほど、復号後の画像の主観画質を向上させることができる。
図71に示される、三角(△)、縦十字(+)、四角(□)、米印(※)、丸(○)、および、かける(×)は、それぞれ、図70の場合と同様のものを示している。すなわち、図71の場合においても、フィールド間で加減算を行う回数を増加させるほど、復号後の画像の主観画質を向上させることができるということがいえる。
なお、図1乃至図27を参照して説明したようにフィールドの加減算を行わずに、図28乃至図61を参照して説明したようなラインブロック毎の符号化方式および復号方式を、単独で画像符号化装置および画像復号装置として適用することも可能である。その場合、図72において斜線で示されるように、フィールドの加減算による遅延時間が発生しないので、より高速(低遅延)な符号化処理や復号処理が可能になる。
図72は、遅延時間の様子の例を説明する模式図であるが、図72の上側に示されるように、図28乃至図61を参照して説明したようなラインブロック毎の符号化方式および復号方式を、単独で適用する場合、遅延時間は1フィールドよりも短い「d」のみとなる。これに対して、図72の下側に示されるように、フィールドの加減算を行ってから符号化を行うようにする場合、遅延時間は、加減算において必要な1フィールド分の時間「i」と、「d」の合計時間となる。ラインブロック単位で符号化を行わない場合は、遅延時間はさらに延びる。
ただし、上述したように、フィールドの加減算を行う場合の方が復号後の画像の主観画質は向上する。つまり、図72の上側のように、フィールドの加減算を行わずにラインブロック毎に行う符号化方式は、画質よりも低遅延を優先させる低遅延優先モードの符号化であり、図72の下側のように、フィールドの加減算を行ってからラインブロック毎に行う符号化方式は、遅延時間よりも画質を優先させる画質優先モードの符号化であると言える。
この2つのモードのいずれかを適用するようにしてもよいが、さらに、画像符号化装置および画像復号装置が両方のモードに対応し、適宜一方のモードを選択して処理を行うことができるようにしてもよい。
以下において、そのような画像符号化装置および画像復号装置について説明する。
図73は、画像符号化装置の構成例を示すブロック図である。
図73において、画像符号化装置1001は、モード選択部1011、画質優先モード用画像符号化部1012、および低遅延優先モード用画像符号化部1013を有している。
モード選択部1011は、例えばユーザや外部機器等からの指示入力に基づいて、符号化処理を画質優先モードで行うか、低遅延優先モードで行うかを選択する処理部であり、制御部1021、セレクタ1022、セレクタ1023、および通知部1024を有している。
制御部1021は、外部より供給される指示入力に基づいてセレクタ1022およびセレクタ1023の動作を制御する。また、制御部1021は、通知部1024を制御し、選択したモードを画像復号装置側に通知させる。
セレクタ1022およびセレクタ1023は、制御部1021に制御されて、画質優先モード用画像符号化部1012と低遅延優先モード用画像符号化部1013の入出力を切り替える。つまり、制御部1021は、このセレクタ1022およびセレクタ1023を切り替えることにより、画質優先モード用画像符号化部1012と低遅延優先モード用画像符号化部1013のいずれを用いて符号化を行うかを制御することにより、符号化のモードを選択する。
通知部1024は、制御部1021に制御されて、制御部1021が選択した符号化のモードをモード情報として、符号化ストリームを供給する画像復号装置に通知する。
画質優先モード用画像符号化部1012は、図72を参照して説明したように、遅延時間の短縮よりも画質の向上を優先させる、フィールドの加減算を行ってからラインブロック単位で符号化を行う符号化部である。すなわち、画質優先モード用画像符号化部1012は、図28乃至図61を参照して説明したイントラ符号化部を図1や図15等に示される画像符号化装置に適用したものである。従って、この画質優先モード用画像符号化部1012の内部についての説明は省略するが、この画質優先モード用画像符号化部1012を用いて符号化を行うことにより、低遅延優先モード用画像符号化部1013を用いて符号化を行う場合よりも、復号後の画像の主観画質が向上する。
低遅延優先モード用画像符号化部1013は、図72を参照して説明したように、画質の向上よりも遅延時間の短縮を優先させる、フィールドの加減算を行わずにラインブロック単位で符号化を行う符号化部である。すなわち、低遅延優先モード用画像符号化部1013は、図28乃至図61を参照して説明したイントラ符号化部単体を画像符号化装置として適用したものである。従って、この低遅延優先モード用画像符号化部1013の内部についての説明は省略するが、この低遅延優先モード用画像符号化部1013を用いて符号化を行うことにより、画質優先モード用画像符号化部1012を用いて符号化を行う場合よりも、遅延時間が短縮される。
図74のフローチャートを参照して、この画像符号化装置1001のモード選択部1011によるモード選択処理の流れの例を説明する。
モード選択処理を開始すると、制御部1021は、ステップS1001において、外部からの指示入力を受け付け、指示入力を受け付けたと判定するまで待機する。ステップS1001において、採用するモードを指定する指示入力を受け付けたと判定すると、制御部1021は、ステップS1002において、セレクタ1022およびセレクタ1023を制御して指示されたモードに切り替える。つまり、制御部1021は、セレクタ1022を制御して、符号化する画像データを、画質優先モード用画像符号化部1012と低遅延優先モード用画像符号化部1013の内、指定されたモードの方に入力させるようにし、さらに、セレクタ1023を制御して、その符号化部より符号化ストリームが出力されるようにする。
この制御により、画質優先モード用画像符号化部1012と低遅延優先モード用画像符号化部1013の内、制御部1021に選択された方の符号化部が、入力された画像データに対して符号化を行い、符号化ストリームを出力することができるようになる。
モードを切り替えた制御部1021は、ステップS1003において通知部1024を制御し、選択したモードを特定するモード情報を、符号化ストリームを供給する画像復号装置に通知させる。
以上のように、制御部1021が外部の指示に基づいて、符号化処理を画質優先モードで行うか、低遅延優先モードで行うかを制御することにより、画像符号化装置1001は、多様な方法で符号化処理を行うことができ、適用された装置やシステム、若しくはユーザの意向に応じて、高画質化を優先させたり、遅延時間の短縮を優先させたり、最適な符号化方法を選択することができる。換言すれば、画像符号化装置1001の適用可能な範囲が拡張されることになるので、この画像符号化装置1001を適用することにより、その装置やシステムの開発コストや製造コストを低減させることもできる。
なお、このモード選択の根拠は、指示入力以外であってもよく、例えば、ユーザ等からの指示が無くても、符号化する画像データの内容に基づいて適応的に選択されるようにしてもよい。
図75は、その場合の画像符号化装置の構成例を示すブロック図である。図75において、画像符号化装置1101は、画像符号化装置1001と基本的に同様の構成を有するが、モード選択部1011の変わりにモード選択部1111を有する。モード選択部1111は、モード選択部1011の構成に加え、符号化される画像データの変位量を判定する変位量判定部1120をさらに有しており、制御部1121は、制御部1021と異なり、外部からの指示入力ではなく、この変位量判定部1120による判定結果に基づいて符号化のモードを画質優先モードにするか、低遅延優先モードにするかを選択する。そのモード選択の際の動作や、画像復号装置へのモード情報の通知等は、制御部1021の場合と同様である。
変位量判定部1120は、画像データの変位量を測定し、その測定結果を制御部1121に通知する。変位量としては例えば、画像データのフレーム間の画像の差(時間的な変化量)を示す動き情報がある。
図76は、変位量判定部1120の内部の構成例を示すブロック図である。
図76において、変位量判定部1120は、1つ前のフレームから注目フレームに向かう動きを表す動きベクトルの統計量を求め、それを注目フレームの動き情報とする。変位量判定部1120は、符号化される画像データの動き情報を算出する動き情報算出部1131を有する。動き情報算出部1131は、動きベクトル検出部1141および統計量算出部1142を有している。
動きベクトル検出部1141は、符号化される画像データのフレームを、順次、注目フレームとし、その注目フレームの1フレーム前のフレーム(以下、適宜、前フレームという)を、例えば、16×16画素のブロック(MPEGにおけるマクロブロック)に分割する。さらに、動きベクトル検出部1141は、前フレームの各マクロブロックについて、前フレームから注目フレームに向かう動きを表す動きベクトルを求め、統計量算出部1142に供給する。
統計量算出部1142は、その動きベクトル検出部1141からの、前フレームのマクロブロックについて求められた動きベクトルの統計量、例えば、マクロブロック毎の動きベクトルの絶対値の総和や平均値等を求め、注目フレームの動き情報として制御部1121に出力する。制御部1121は、その動き情報の値を所定の閾値と比較し、その大小に基づいて符号化のモードを設定する。
このようなモード選択部1111によるモード選択処理の流れの例を図77のフローチャートを参照して説明する。
モード選択処理が開始されると、動きベクトル検出部1141は、ステップS1131において、画像データより動きベクトルを求める。ステップS1132において、統計量算出部1142は、動き情報として、その求められた動きベクトルの統計情報を算出する。
制御部1121は、ステップS1133において、動き情報の値が閾値以上であるか否かを判定する。この動き情報の値が大きいということは、符号化される画像データにおいて時間的な変位量が大きいということであり、すなわち、符号化される画像データの画像の、フレーム間の変化が激しいことを示している。この場合、仮に、低画質であっても、画像を見たユーザにとって画質の劣化は目立たない。つまり、復号後の画像の主観画質は大きく低下しない。換言すれば、仮に画質を向上させても復号後の画像の主観画質は大きく向上しない。従って、制御部1121は、このような場合、画質の向上よりも遅延時間の短縮を優先させる。
ステップS1133において、動き情報の値が閾値以上であると判定した場合、制御部1121は、処理をステップS1134に進め、セレクタ1022およびセレクタ1023を制御して低遅延優先モードに設定し、処理をステップS1136に進める。
逆に、ステップS1134において、動き情報の値が閾値より小さいと判定した場合、符号化される画像データの画像の動きが少ないので、制御部1121は、処理をステップS1135に進め、セレクタ1022およびセレクタ1023を制御して画質優先モードに設定し、処理をステップS1136に進める。
ステップS1136において、通知部1024は、制御部1121が設定したモードを画像復号装置に通知し、モード選択処理を終了する。
このようにすることにより、画像符号化装置1101は、ユーザの指示なしに、符号化される画像データの画像の時間的変化量の大きさに応じて、適応的に符号化処理のモードを選択し、低遅延化または高画質化を優先させるることができる。
図78に示されるように、1つの画像データ内において、動きベクトルの統計量である動き情報の大きさ(変化量の大きさ)は、フレーム遷移に応じて変化する。制御部1121は、所定の閾値Thと、この変化量(動き情報)の大きさを比較し、変化量が閾値Th以上であるフレーム区間(図78の場合、フレームm1乃至フレームm2の区間B)については、低遅延モードにより符号化を行い、それ以外の区間(図78の場合、区間Aおよび区間C)については、高画質モードにより符号化を行うようにすることができる。つまり、画像符号化装置1101は、1つの画像データを符号化中においても、その符号化モードを切り替えることができるので、より好適な符号化処理を行うことができる。
また、動き情報の求め方はどのようなものであってもよく、動きベクトルの統計量以外にも、例えば、各フレームにおいてヒストグラムを求め、そのヒストグラムの変化量を動き情報として算出するようにしてもよい。
図79は、その場合の変化量判定部1120の構成例を示すブロック図である。
図79において、変化量判定部1120は、動き情報算出部1231を有する。この動き情報算出部1231は、ヒストグラム作成部1241、ヒストグラム記憶部1242、および差分演算部1243を有する。ヒストグラム作成部1241は、符号化される画像データの各フレームのヒストグラムを作成し、それをヒストグラム記憶部1242に供給するとともに、注目フレームのヒストグラムとして差分演算部1243にも供給する。ヒストグラム記憶部1242は、ヒストグラム作成部1241において作成されたヒストグラムを一時的に保持し、1フレーム分遅延させた後、そのヒストグラムを前フレームのヒストグラムとして差分演算部1243に供給する。差分演算部1243は、ヒストグラム作成部1241は、ヒストグラム作成部1241より供給された注目フレームのヒストグラムと、ヒストグラム記憶部1242より供給された前フレームのヒストグラムとで差分を算出し、その差分値を動き情報として、制御部1121に供給する。
この場合のモード選択処理の流れの例を図80のフローチャートを参照して説明する。
モード選択処理が開始されると、ヒストグラム作成部1241は、ステップS1231において、画像データより注目フレームの画素値のヒストグラムを作成する。ステップS1232において、差分演算部1243は、動き情報として、1つ前のフレームのヒストグラムと、注目フレームのヒストグラムとの差分絶対値和を求める。
制御部1121は、ステップS1233において、動き情報の値が閾値以上であるか否かを判定する。この場合も動きベクトルの場合と同様に、動き情報の値の大きさ、画像の時間的変化の激しさを示す。従って、制御部1121は、ステップS1233において、動き情報の値が閾値以上であると判定した場合、処理をステップS1234に進め、セレクタ1022およびセレクタ1023を制御して低遅延優先モードに設定し、処理をステップS1236に進める。
逆に、ステップS1234において、動き情報の値が閾値より小さいと判定した場合、符号化される画像データの画像の動きが少ないので、制御部1121は、処理をステップS1235に進め、セレクタ1022およびセレクタ1023を制御して画質優先モードに設定し、処理をステップS1236に進める。
ステップS1236において、通知部1024は、制御部1121が設定したモードを画像復号装置に通知し、モード選択処理を終了する。
もちろん、動き情報は、上述した以外のどのようなパラメータを用いて求めるようにしてもよい。
また、変位量判定部1120は、時間的変化量である動き情報以外にも、例えば、空間的な変化量である細かさ情報を求めるようにしてもよい。すなわち、この場合、制御部1121は、変位量判定部1120により求められた、画像データの画像がフレーム内においてどの程度変化するかを示す空間的な変化量に基づいて符号化のモードを選択する。
例えば、フレーム内の画素間において画素値の差が小さければ小さいほど、空間的な変化量は小さく、画像の周波数成分は低いといえる。つまり、この場合、フレーム画像内において変化が小さいので、仮に画質の劣化が比較的大きな低遅延優先モードで符号化されても、その画像を見たユーザにとって画質の劣化は目立たない。つまり、復号後の画像の主観画質は大きく低下しない。換言すれば、仮に画質の劣化が比較的小さい高画質優先モードで符号化を行っても、復号後の画像の主観画質は大きく向上しない。従って、制御部1121は、このような場合、画質の向上よりも遅延時間の短縮を優先させる。
これに対して、例えば隣り合う画素間で画素値が大きく異なるような、所謂エッジ成分が多く含まれている画像や、細かい絵柄の画像の場合、画像の周波数成分は高く、空間的な変化量も大きくなる。この場合、画質の劣化により、エッジがぼやけたり、模様が潰れたりする可能性が高く、画質の劣化が目立ちやすい。従って、制御部1121は、このような場合、遅延時間の短縮よりも画質の向上を優先させる。
図81は、その場合の変化量判定部1120の構成例を示すブロック図である。
図81に示されるように、変化量判定部1120は、変位量として、上述したような細かさ情報を求める細かさ情報算出部1331を有する。この細かさ情報算出部1331は、DCT(Discrete Cosine Transform)変換部1341、重み係数算出部1342、および積算部1343を有する。
DCT変換部1341には、符号化される画像データをフレーム単位で取得し、取得したフレームを注目フレームとし、その注目フレームを、例えば、8×8画素のブロックに分割する。さらに、DCT変換部1341は、注目フレームの各ブロックをDCT変換し、各ブロックについて得られる8×8個のDCT係数を、積算部1343に供給する。
重み係数算出部1342は、ブロックの8×8個のDCT係数それぞれに付す重みを求め、積算部1343に供給する。
積算部1343は、DCT変換部1341から供給されるブロックの8×8個のDCT係数それぞれに、重み係数算出部1342から供給される重みを付して積算し、積算値を求める。さらに、積算部1343は、注目フレームの各ブロックについて求められた積算値の総和を求め、注目フレームの細かさ情報として出力する。
この場合のモード選択処理の流れの例を図82のフローチャートを参照して説明する。
モード選択処理が開始されると、DCT変換部1341は、ステップS1331において、画像データの注目フレームをDCT変換する。ステップS1332において、重み係数算出部1342は、各ブロック内のDCT係数に付す重みを算出する。積算部1343は、ステップS1333において、ブロック毎に各係数に重みを付して積算し、ステップS1334において、細かさ情報としてブロック毎の積算値の総和を算出する。
ステップS1335において、制御部1121は、細かさ情報の値が閾値以上であるか否かを判定し、細かさ情報の値が閾値以上であると判定した場合、処理をステップS1336に進め、セレクタ1022およびセレクタ1023を制御して画質優先モードに設定し、処理をステップS1338に進める。
逆に、ステップS1335において、細かさ情報の値が閾値より小さいと判定した場合、制御部1121は、処理をステップS1337に進め、セレクタ1022およびセレクタ1023を制御して低遅延優先モードに設定し、処理をステップS1338に進める。
ステップS1338において、通知部1024は、制御部1121が設定したモードを画像復号装置に通知し、モード選択処理を終了する。
以上のようにすることにより、符号化される画像データの画像の細かさ等に応じて符号化のモードを適切に切り替えることができる。なお、この細かさ情報の場合も動き情報の場合と同様に、図78に示されるように、フレーム毎に変化量(細かさ情報の大きさ)が変化する。従って、制御部1121は、上述したようにモード選択を行うことにより、画像データを符号化中であっても、その画像データの細かさ情報の大きさに応じて、モードを適切に切り替えることができる。従って、画像符号化装置1101は、より好適な符号化を行うことができる。
なお、モード判定のパラメータは、上述したように1種類である必要はなく、複数のパラメータが用いられるようにしてもよい。
図83は、その場合の変化量判定部1120の構成例を示すブロック図である。図83の例の場合、変化量判定部1120は、上述した動き情報算出部1131と細かさ情報算出部1331の両方を有しており、符号化される画像データより、動き情報および細かさ情報の両方を求めることができる。
なお、図83において、動き情報算出部1131の代わりに動き情報算出部1231を適用するようにしてももちろんよい。
この場合の、モード選択処理の流れを図84のフローチャートを参照して説明する。
モード選択処理が開始されると、動き情報算出部1131は、ステップS1431において、符号化される画像データについて動き情報を求める。ステップS1432において、細かさ情報算出部1331は、符号化される画像データについて細かさ情報を求める。ステップS1433において、制御部1121は、動き情報および細かさ情報に基づいて符号化のモードを設定する。このとき制御部1121は、動き情報および細かさ情報のいずれか一方の情報を優先させて判断し、所望の結果が得られない場合のみ、他方の情報に基づいてモードを設定するようにしてもよい。
例えば、制御部1121が、まず動き情報を閾値と比較し、動き情報の値が閾値以上である場合モード設定を行い、閾値以下である場合、次に細かさ情報と閾値を比較するようにしてもよい。また、例えば、制御部1121が動き情報の比較結果と細かさ情報の比較結果の両方を用いて、所定の表や式等からモード選択の判定を行うようにしてもよい。
モードの設定が終了すると、ステップS1434において、通知部1024は、制御部1121が設定したモードを画像復号装置に通知し、モード選択処理を終了する。
このように複数のパラメータに基づいてモードを設定することにより制御部1121は、より多様な内容の画像データをより適切に符号化することができるようになる。なお、このパラメータの種類や数は任意である。また、上述した以外の判定方法であっても良い。
また、符号化モードの設定は、符号化される画像データ以外にも、例えば、符号化ストリームを画像復号装置に転送する際に利用されるネットワークの帯域に基づいて、行うようにしてもよい。
図85は、その場合の画像符号化装置の構成例を示すブロック図である。図85において画像符号化装置1501は、図75の画像符号化装置1101と基本的に同様の構成を有するが、モード選択部1111の代わりにモード選択部1511を有する。また、さらに通信部1512を有する。このモード選択部1511は、モード選択部1111の変化量判定部1120の変わりに、通信部1512より供給される帯域情報に基づいて、符号化ストリームを画像復号装置に転送する際に利用されるネットワークの使用可能な帯域幅を判定する帯域判定部1520を有する。
通信部1512は、セレクタ1023を介して供給される符号化ストリームや通知部1024より供給されるモード情報を画像復号装置に転送するだけでなく、その転送時に利用するネットワークの利用可能な帯域の幅を監視し、その帯域幅に関する情報である帯域情報を帯域判定部1520に供給する。
帯域判定部1520は、この帯域情報に基づいて帯域幅を判定し、その情報を制御部1521に通知する。制御部1521は、その判定結果に基づいて符号化のモードを選択する。
この場合の、モード選択処理の流れを図86のフローチャートを参照して説明する。
モード選択処理が開始されると、帯域判定部1520は、ステップS1501において、通信部1512より帯域情報を取得したか否かを判定し、取得したと判定するまで待機する。通信部1512は、定期的または不定期に帯域情報を帯域判定部1520に供給する。
帯域情報を取得すると、帯域判定部1520は、ステップS1502において、符号化ストリームやモード情報の転送のために確保可能な帯域が所定の閾値より広いか否かを判定する。帯域が広ければ、高速にデータを転送することができ、遅延を低減させる効果も大きい。従って、確保可能な帯域が所定の閾値より広いと判定された場合、制御部1521は、ステップS1503に処理を進め、低遅延優先モードに設定し、処理をステップS1505に進める。
これに対して、ネットワークが混雑する等して、確保可能な帯域が狭い場合、低遅延で符号化させても、転送能力が低いので結局遅延が生じてしまう恐れがある。その場合、低遅延に関して得られる効果が少ない。そこで、ステップS1502において、確保可能な帯域が所定の閾値より狭いと判定された場合、制御部1521は、ステップS1504に処理を進め、画質優先モードに設定し、処理をステップS1505に進める。
モードの設定が終了すると、ステップS1505において、通知部1024は、制御部1521が設定したモードを画像復号装置に通知し、モード選択処理を終了する。
以上のように、画像符号化装置1501は、ネットワークの帯域幅に応じて適切にモードを選択し、好適な符号化処理を行うことができる。なお、この場合も、符号化中にモード変更することが可能である。
図87は、図73乃至図86を参照して説明した各種の画像符号化装置に対応する画像復号装置の構成例を示すブロック図である。図87に示されるように、画像復号装置1601は、画像符号化装置の場合と同様に、画質の向上を優先させるように行われる符号化処理に対応する復号処理を行う画質優先モード用画像復号部1612と、遅延時間の短縮を優先させるように行われる符号化処理に対応する復号処理を行う低遅延優先モード用画像復号部1613の両方を有し、さらに、画像符号化装置より供給されるモード情報に基づいて、それらの内、いずれか一方を選択するモード選択部1611を有する。
画質優先モード用画像復号部1612は、図1乃至図27を参照して説明した各種の画像復号装置のイントラ復号部に、図28乃至図61を参照して説明した各種のイントラ復号部を適用したものであり、画質優先モード用画像符号化部1012に対応する復号部である。低遅延優先モード用画像復号部1613は、図28乃至図61を参照して説明した各種のイントラ復号部をそのまま画像復号装置として適用したものであり、低遅延優先モード用画像符号化部1013に対応する復号部である。
モード選択部1611は、通知取得部1620、制御部1621、セレクタ1622、およびセレクタ1623を有している。通知取得部1620は、画像符号化装置より供給されるモード情報を取得し、それを制御部1621に供給する。制御部1621は、通知取得部1620において取得されたモード情報に基づいて、復号処理のモードを選択し、セレクタ1622およびセレクタ1623により入出力を制御することによって、画質優先モード用画像復号部1612と低遅延優先モード用画像復号部1613の内、選択したモードに対応する復号部において復号処理が行われるようにする。
すなわち、画像符号化装置より供給される符号化ストリームは、セレクタ1622を介して、画質優先モード用画像復号部1612と低遅延優先モード用画像復号部1613の内、制御部1621において選択された方に供給され、復号されて、セレクタ1623を介して画像データとして出力される。
この場合のモード選択処理の流れの例を図88のフローチャートを参照して説明する。
モード選択処理が開始されると、通知取得部1620は、ステップS1601において、外部よりモードの通知を受け付けたか否かを判定し、受け付けたと判定するまで待機する。
モード情報を取得し、通知を受け付けたと判定した場合、通知取得部1620は、そのモードを制御部1621に通知する。制御部1621は、ステップS1602において、そのモード情報に基づいて、復号処理のモードを符号化処理のモードに一致させる。
モードを一致させると、制御部1621は、モード選択処理を終了する。
以上のようにすることにより、画像符号化装置においてどのようにモードの選択が行われても、復号処理のモードを符号化処理のモードに容易に一致させることができ、適切な復号処理を行うことができる。
なお、モード情報は、例えば、パケット化された符号化ストリームのヘッダ情報として転送されるようにしてもよいし、符号化ストリームとは異なるデータとして転送されるようにしてもよい。
以上のように、本発明の画像符号化装置は、多様な形態をとることができる。
次に、この画像符号化装置や画像復号装置の適用例について説明する。この実施の形態は、上述した各実施の形態による画像符号化装置および画像復号装置を、ディジタルトライアックスシステムに適用した例である。
トライアックスシステムは、テレビジョン放送局や制作スタジオなどにおいて、スタジオ収録や中継などの際に、ビデオカメラと、カメラコントロールユニットやスイッチャとを接続する1本の同軸ケーブルで、映像信号、音声信号、送り返し(リターン)の映像信号、同期信号など複数の信号を重畳させて送信すると共に、電源の供給も行うようにしたシステムである。
従来のトライアックスシステムは、アナログ信号を用いて上述の各信号の伝送を行うようにした例が大部分であった。しかしながら、近年では、システム全体のディジタル化に伴い、放送局内などで用いるトライアックスシステムのディジタル化が進んでいる。
既存のディジタルトライアックスシステムでは、トライアックスケーブルを介して伝送されるディジタルビデオ信号は、非圧縮のビデオ信号であった。これは、特に放送局などにおいては信号の遅延時間に対する要求スペックが厳しく、基本的に、撮像から例えばモニタ出力までの遅延時間が1フィールド(16.67msec)以内であることが要求されるためである。高圧縮率および高画質を実現したMPEG2(Moving Pictures Experts Group 2)やMPEG4といった圧縮符号化方式は、ビデオ信号の圧縮符号化や圧縮ビデオ信号の復号に際して数フレーム分の時間を要し、遅延時間が大きいため、トライアックスシステムに採用されることはなかった。
この発明による画像符号化および画像復号方法は、上述したように、画像データの入力から出力画像が得られるまでの遅延時間が1フィールド時間以内、例えば数ライン乃至数十ラインと極めて短く、ディジタルトライアックスシステムに対して用いて好適なものである。
図89は、この発明による画像符号化および画像復号方法を適用可能な、ディジタルトライアックスシステムの一例の構成を示す。送信ユニット2000とカメラ制御部2002とがトライアックスケーブル(同軸ケーブル)2001を介して接続される。送信ユニット2000からカメラ制御部2002に対する、実際に放映されたり素材として用いられたりするディジタルビデオ信号およびディジタルオーディオ信号(以下、本線信号と呼ぶ)の送出、カメラ制御部2002からビデオカメラ部2003に対する、インカム用のオーディオ信号およびリターン用のディジタルビデオ信号の送出が、トライアックスケーブル2001を介して行われる。
送信ユニット2000は、例えば図示されないビデオカメラ装置に内蔵される。これに限らず、送信ユニット2000がビデオカメラ装置に対する外部装置として、ビデオカメラ装置と所定に接続されて用いられるものとしてもよい。また、カメラ制御部2002は、例えば一般的にCCU(Camera Control Unit)と呼ばれる装置である。
なお、ディジタルオーディオ信号については、この発明の主旨と関わりが少ないので、煩雑さを避けるための説明を省略する。
ビデオカメラ部2003は、例えば図示されないビデオカメラ装置内に構成され、レンズ、フォーカス機構、ズーム機構、アイリス調整機構などを有する光学系2050を介して入射された被写体からの光を、CCD(Charge Coupled Device)などからなる図示されない撮像素子で受光する。撮像素子は、受光された光を光電変換で電気信号に変換し、さらに所定の信号処理を施してベースバンドのディジタルビデオ信号を出力する。このディジタルビデオ信号は、例えばHD-SDI(High Definition-Serial Data Interface)のフォーマットにマッピングして出力される。
また、ビデオカメラ部2003は、モニタ用に用いられる表示部2051と、外部と音声によるやりとりを行うためのインカム2052が接続される。
送信ユニット2000は、ビデオ信号符号化部2010およびビデオ信号復号部2011、ディジタル変調部2012およびディジタル復調部2013、アンプ2014およびアンプ2015、並びに、ビデオ分離/合成部2016を有する。
送信ユニット2000において、ビデオカメラ部2003から、例えばHD-SDIのフォーマットにマッピングされたベースバンドのディジタルビデオ信号が供給される。このディジタルビデオ信号は、ビデオ信号符号化部2010で圧縮符号化され、符号化ストリームとされてディジタル変調部2012に供給される。ディジタル変調部2012は、供給された符号化ストリームを、トライアックスケーブル2001を介した伝送に適した形式の信号に変調して出力する。ディジタル変調部2012から出力された信号は、アンプ2014を介してビデオ分離/合成部2016に供給される。ビデオ分離/合成部2016は、供給された信号をトライアックスケーブル2001に送出する。この信号は、トライアックスケーブル2001を介してカメラ制御部2002に受信される。
カメラ制御部2002から出力された信号が、トライアックスケーブル2001を介して送信ユニット2000に受信される。受信された信号は、ビデオ分離/合成部2016に供給され、ディジタルビデオ信号の部分とその他の信号の部分とが分離される。受信信号のうちディジタルビデオ信号の部分は、アンプ2015を介してディジタル復調部2013に供給され、カメラ制御部2002側でトライアックスケーブル2001を介した伝送に適した形式の信号に変調された信号を復調し、符号化ストリームを復元する。
符号化ストリームは、ビデオ信号復号部2011に供給され、圧縮符号を復号され、ベースバンドのディジタルビデオ信号とされる。この復号されたディジタルビデオ信号は、HD-SDIのフォーマットにマッピングされて出力され、リターン用のディジタルビデオ信号としてビデオカメラ部2003に供給される。このリターン用のディジタルビデオ信号は、ビデオカメラ部2003に接続される表示部2051に供給され、撮影者のためのモニタなどに利用される。
カメラ制御部2002は、ビデオ分離/合成部2020、アンプ2021およびアンプ2022、フロントエンド部2023、ディジタル復調部2024およびディジタル変調部2025、並びに、ビデオ信号復号部2026およびビデオ信号符号化部2027を有する。
送信ユニット2000から出力された信号が、トライアックスケーブル2001を介してカメラ制御部2002に受信される。受信された信号は、ビデオ分離/合成部2020に供給される。ビデオ分離/合成部2020は、供給された信号を、アンプ2021およびフロントエンド部2023を介してディジタル復調部2024に供給する。なお、フロントエンド部2023は、入力信号のゲインを調整するゲイン制御部や、入力信号に対して所定のフィルタ処理を施すフィルタ部などを有する。
ディジタル復調部2024は、送信ユニット2000側でトライアックスケーブル2001を介した伝送に適した形式の信号に変調された信号を復調し、符号化ストリームを復元する。この符号化ストリームは、ビデオ信号復号部2026に供給され、圧縮符号を復号され、ベースバンドのディジタルビデオ信号にとされる。この復号されたディジタルビデオ信号は、HD-SDIのフォーマットにマッピングされて出力され、本線信号として外部に出力される。
外部からカメラ制御部2002に対して、リターン用のディジタルビデオ信号と、ディジタルオーディオ信号とが供給される。ディジタルオーディオ信号は、例えば、撮影者のインカム2052に供給され、外部から撮影者に対する音声による指示を伝達するのに用いられる。
リターン用のディジタルビデオ信号は、ビデオ信号符号化部2027に供給されて圧縮符号化され、ディジタル変調部2025に供給される。ディジタル変調部2025は、供給された符号化ストリームを、トライアックスケーブル2001を介した伝送に適した形式の信号に変調して出力する。ディジタル変調部2025から出力された信号は、フロントエンド部2023およびアンプ2022を介してビデオ分離/合成部2020に供給される、ビデオ分離/合成部2020は、この信号を他の信号と多重化し、トライアックスケーブル2001に送出する。この信号は、トライアックスケーブル2001を介してビデオカメラ部2003に受信される。
この発明の実施の形態では、上述したビデオ信号符号化部2010およびビデオ信号符号化部2027、並びに、ビデオ信号復号部2011およびビデオ信号復号部2026に対して、上述した各実施の形態で説明した画像符号化装置および画像復号装置をそれぞれ適用する。
特に、画像符号化装置および画像復号装置における各要素の処理を並列的に行うようにした例は、ビデオカメラ部2003で撮影された映像がカメラ制御部2002から出力される際の遅延や、外部から供給されカメラ制御部2002からビデオカメラ部2003に送信されるリターン用のディジタルビデオ信号の遅延を低く抑えることができ、この発明の実施の形態に用いて好適である。
また、図89に例示したシステムの場合、送信ユニット2000およびカメラ制御部2002のそれぞれにおいて、信号処理能力やメモリ容量を、適宜、設定することができると考えられるので、係数データの並び替え処理を行う位置は、送信ユニット2000側およびカメラ制御部2002側の何れであってもよいし、エントロピ符号化を行う位置も同様に、並び替え処理の前後の何れであってもよい。
すなわち、送信ユニット2000側において、ビデオ信号符号化部2010は、供給されたディジタルビデオ信号に対して、この発明による方法に従いウェーブレット変換およびエントロピ符号化を施し、符号化ストリームを出力する。上述したように、ビデオ信号符号化部2010は、ウェーブレット変換に用いるフィルタのタップ数およびウェーブレット変換の分解レベル数に応じたライン数が入力されると、ウェーブレット変換を開始する。そして、図30、図31および図36などを用いて説明したように、画像符号化装置および画像復号装置(イントラ符号化部およびイントラ復号部)において、各要素に必要な係数データが蓄積されると、順次、各要素による処理が行われる。1フレームまたは1フィールドの下端のラインまで処理が終了したら、次の1フレームまたは1フィールドの処理が開始される。
カメラ制御部2002側から送信ユニット2000側に、リターン用のディジタルビデオ信号を送信する場合も、同様である。すなわち、カメラ制御部2002側において、ビデオ信号符号化部2027は、外部から供給されたリターン用のディジタルビデオ信号に対して、この発明による方法に従いウェーブレット変換およびエントロピ符号化を施し、符号化ストリームを出力する。
ここで、リターン用のディジタルビデオ信号は、本線信号のディジタルビデオ信号よりも画質が低くても構わないとされている場合が多い。そこで、ビデオ信号符号化部2027において、符号化時のビットレートを下げるようにするとよい。例えば、ビデオ信号符号化部2027において、レート制御部214(図28)により、エントロピ符号化部215(図28)でのエントロピ符号化処理をより低ビットレートになるまで行うように制御する。また例えば、カメラ制御部2002側では、ビデオ信号符号化部2027においてウェーブレット変換部210(図28)でより高い分解レベルまで変換処理を行い、送信ユニット2000側では、ビデオ信号復号部2011のウェーブレット逆変換部223(図34)におけるウェーブレット逆変換を、より低い分解レベルまでに止める方法も考えられる。カメラ制御部2002側のビデオ信号符号化部2027における処理は、この例に限らず、ウェーブレット変換における分解レベルをより低く抑えて変換処理による負担を軽減することも考えられる。
次に、他の実施の形態について説明する。この実施の形態では、この発明による画像符号化装置で符号化された符号化データの画像復号装置側への伝送を、無線通信を用いて行うようにしている。図90は、本実施の形態による無線伝送システムの構成例を示すブロック図である。なお、この図90の例では、ビデオ信号はビデオカメラまたは送信ユニット2100(以下、送信ユニット2100と略称する)側から受信装置2101側に、一方向的に送信される。オーディオ信号およびその他の信号は、送信ユニット2100と受信装置2101との間で双方向の通信が可能である。
送信ユニット2100は、例えばビデオカメラ部2102を有する図示されないビデオカメラ装置に内蔵される。これに限らず、送信ユニット2100がビデオカメラ部2102を有するビデオカメラ装置に対する外部装置として、ビデオカメラ装置と所定に接続されて用いられるものとしてもよい。
ビデオカメラ部2102は、例えば所定の光学系と、例えばCCDからなる撮像素子と、撮像素子から出力された信号をディジタルビデオ信号として出力する信号処理部とを有する。ビデオカメラ部2102から、例えばHD-SDIのフォーマットにマッピングされてディジタルビデオ信号が出力される。これはこの例に限らず、ビデオカメラ部2102から出力されるディジタルビデオ信号は、他のフォーマットでもよい。
送信ユニット2100は、ビデオ信号符号化部2110、ディジタル変調部2111および無線モジュール部2112を有する。送信ユニット2100において、ビデオカメラ部2102から、ベースバンドのディジタルビデオ信号が例えばHD-SDIのフォーマットにマッピングされて出力される。このディジタルビデオ信号は、ビデオ信号符号化部2110でこの発明に係る圧縮符号化方法により、ウェーブレット変換およびエントロピ符号化により圧縮符号化され、符号化ストリームとされてディジタル変調部2111に供給される。ディジタル変調部2111は、供給された符号化ストリームを、無線通信を行うために適した形式の信号にディジタル変調して出力する。
また、ディジタル変調部2111には、ディジタルオーディオ信号やその他の信号、例えば所定のコマンドやデータも供給される。例えば、ビデオカメラ部2102は、マイクロホンを有し、集音された音声を音声信号に変換し、さらに当該音声信号をA/D変換してディジタルオーディオ信号として出力する。また、ビデオカメラ部2102は、所定のコマンドやデータを出力できるようになっている。コマンドやデータは、ビデオカメラ部2102の内部で発生するようにしても良いし、ビデオカメラ部2102に操作部を設け、当該操作部に対するユーザの操作に応じてコマンドやデータを生成するようにしてもよい。ビデオカメラ部2102に対してコマンドやデータを入力する入力装置を接続するようにしてもよい。
ディジタル変調部2111は、これらディジタルオーディオ信号やその他の信号をディジタル変調し、出力する。ディジタル変調部2111から出力されたディジタル変調信号は、無線モジュール部2112に供給されアンテナ2113から電波として無線送信される。
なお、無線モジュール部2112は、受信装置2101側からの自動再送要求(ARQ:Auto Repeat Request)を受信すると、ディジタル変調部2111に対してこのARQを通知し、データの再送を要求する。
アンテナ2113から送信された電波は、受信装置2101側のアンテナ2120で受信され、無線モジュール部2121に供給される。無線モジュール部2121は、受信された電波に基づくディジタル変調信号をフロントエンド部2122に供給する。フロントエンド部2122は、供給されたディジタル変調信号に対して例えばゲイン制御といった所定の信号処理を施して、ディジタル復調部2123に供給する。ディジタル復調部2123は、供給されたディジタル変調信号を復調し、符号化ストリームを復元する。
ディジタル復調部2123で復元された符号化ストリームは、ビデオ信号復号部2124に供給され、この発明に係る復号方法により圧縮符号を復号され、ベースバンドのディジタルビデオ信号とされる。この復号されたディジタルビデオ信号は、例えばHD-SDIのフォーマットにマッピングされて出力される。
ディジタル復調部2123には、送信ユニット2100側でディジタル変調され送信された、ディジタルオーディオ信号やその他の信号も供給される。ディジタル復調部2123は、これらディジタルオーディオ信号やその他の信号がディジタル変調された信号を復調し、ディジタルオーディオ信号やその他の信号を復元して出力する。
また、フロントエンド部2122は、無線モジュール部2121から供給された受信信号に対して所定の方法でエラー検出を行い、例えば誤ったフレームが受信されたといったエラーが検出されると、ARQを出力する。ARQは、無線モジュール部2121に供給され、アンテナ2120から送信される。
このような構成において、送信ユニット2100を例えばビデオカメラ部2102を有する比較的小型のビデオカメラ装置に内蔵させ、受信装置2101にはモニタ装置を接続し、ビデオ信号復号部2124から出力されたディジタルビデオ信号をモニタ装置に供給する。受信装置2101に対して、送信ユニット2100の内蔵されたビデオカメラ装置が無線モジュール部2112から送信される電波の到達範囲内にあれば、ビデオカメラ装置で撮影された映像を、低遅延、例えば1フィールドまたは1フレーム時間以内の遅延でモニタ装置により見ることができる。
なお、図90では、送信ユニット2100と受信装置2101との間の通信を、無線通信を用いて行い、ビデオ信号を、無線通信を介して伝送するようにしているが、これはこの例に限定されない。例えば、送信ユニット2100と受信装置2101は、インターネットなどのネットワークを介して接続するようにしてもよい。この場合、送信ユニット2100側の無線モジュール部2112および受信装置2101側の無線モジュール部2121は、それぞれIP(Internet Protocol)を用いた通信が可能な通信インタフェースとされる。
この実施の形態によるシステムは、様々な応用が考えられる。例えば、この実施の形態によるシステムは、テレビジョン会議システムに応用することができる。例えば、USB(Universal Serial Bus)接続が可能な簡易的なビデオカメラ装置をパーソナルコンピュータといったコンピュータ装置に接続すると共に、コンピュータ装置側にビデオ信号符号化部2110およびビデオ信号復号部2124を搭載する。コンピュータ装置に搭載されるビデオ信号符号化部2110およびビデオ信号復号部2124は、ハードウェアで構成してもよいし、コンピュータ装置上で動作するソフトウェアとして実現することも可能である。
例えば、会議に参加するメンバそれぞれに、コンピュータ装置と当該コンピュータ装置に接続されるビデオカメラ装置が用意され、コンピュータ装置が例えばテレビジョン会議システムのサービスを提供するサーバ装置に、有線および/または無線によるネットワークを介して接続される。ビデオカメラ装置から出力されたビデオ信号は、USBケーブルを介してコンピュータ装置に供給され、コンピュータ装置内のビデオ信号符号化部2110で、この発明に係る符号化処理を施される。コンピュータ装置は、ビデオ信号が符号化された符号化ストリームを、ネットワークを介してサーバ装置などに送信する。
サーバ装置は、受信した符号化ストリームを、参加メンバそれぞれのコンピュータ装置にネットワークを介して送信する。この符号化ストリームは、参加メンバそれぞれのコンピュータ装置に受信され、コンピュータ装置内のビデオ信号復号部2124でこの発明に係る復号処理がなされる。ビデオ信号復号部2124から出力された画像データが、コンピュータ装置の表示部に映像として表示される。
すなわち、各参加メンバのコンピュータ装置の表示部には、他の参加メンバのビデオカメラ装置で撮影されたそれぞれの映像が表示されることになる。従って、ビデオカメラ装置での撮影によるビデオ信号の符号化から、他の参加メンバのコンピュータ装置で復号されるまでの遅延時間が短く、参加メンバのコンピュータ装置の表示部に表示される他の参加メンバそれぞれの映像の違和感を少なくできる。
さらに、ビデオ信号符号化部2110をビデオカメラ装置側に搭載することも考えられる。例えば、ビデオカメラ装置に送信ユニット2100を内蔵させる。このように構成することで、ビデオカメラ装置にコンピュータ装置などの他の装置を接続する必要が無くなる。
このような、送信ユニット2100が内蔵されたビデオカメラ装置と受信装置2101とからなるシステムは、上述したテレビジョン会議システムの他にも、様々な応用が考えられる。例えば、図91に概略的に示されるように、このシステムを家庭用ゲーム機器に適用することができる。図91において、ビデオカメラ装置2200は、この発明の実施の形態による送信ユニット2100が内蔵される。
家庭用ゲーム機器の本体2201は、例えばCPU、RAMおよびROMや、CD-ROM(Compact Disc-Read Only Memory)やDVD-ROM(Digital Versatile Disc-ROM)に対応したディスクドライブ装置、CPUにより生成された表示制御信号をビデオ信号に変換して出力するグラフィック制御部、オーディオ信号を再生するオーディオ再生部などが例えばバスで接続され、コンピュータ装置と略同様の構成とされる。家庭用ゲーム機器の本体2201は、ROMに予め記憶されたプログラムや、ディスクドライブ装置に装填されたCD-ROMやDVD-ROMに記録されたプログラムに従い、CPUにより全体が制御される。RAMは、CPUのワークメモリとして用いられる。この家庭用ゲーム機器の本体2201に対して、受信装置2101を内蔵する。受信装置2101から出力されるディジタルビデオ信号やその他の信号は、例えばバスを介してCPUに供給される。
このようなシステムにおいて、例えば、家庭用ゲーム機器の本体において、外部から供給されたディジタルビデオ信号による画像を、ゲーム内の画像として用いることができるようにされたゲームソフトウェアが起動されているものとする。例えば、このゲームソフトウェアは、外部から供給されたディジタルビデオ信号による画像をゲーム内の画像として用いることができると共に、当該画像内での人物(プレーヤ)などの動きを識別し、識別された動きに応じた動作を行うことが可能とされている。
ビデオカメラ装置2200は、撮影されたディジタルビデオ信号を、内蔵される送信ユニット2100において、ビデオ信号符号化部2110でこの発明に係る符号化方法で符号化し、符号化ストリームをディジタル変調部2111で変調して無線モジュール部2112に供給し、アンテナ2113から送信する。送信された電波は、家庭用ゲーム機器の本体2201に内蔵される受信装置2101においてアンテナ2120で受信され、受信信号が無線モジュール部2121およびフロントエンド部2122を介してディジタル復調部2123に供給される。受信信号は、ディジタル復調部2123で復調された符号化ストリームとされ、ビデオ信号復号部2124に供給される。ビデオ信号復号部2124では、供給された符号化ストリームを、この発明に係る復号方法で復号し、ベースバンドのディジタルビデオ信号を出力する。
ビデオ信号復号部2124から出力されたベースバンドのディジタルビデオ信号は、家庭用ゲーム機器の本体2201において、バスに送出され、例えばRAMに一時的に記憶される。CPUは、所定のプログラムに従い、RAMに記憶されたディジタルビデオ信号を読み出すことで、このディジタルビデオ信号による画像内の人物の動きを検出したり、当該画像をゲーム内で用いたりすることができるようにされる。
ビデオカメラ装置2200で撮影され、得られたディジタルビデオ信号が符号化されてから、家庭用ゲーム機器の本体2201で符号化ストリームが復号され画像が得られるまでの遅延時間が短いので、家庭用ゲーム機器の本体2201上で動作するゲームソフトウェアにおける、プレーヤの動きに対する応答性が良くなり、ゲームの操作性を向上させることができる。
なお、このような、家庭用ゲーム機器と共に用いられるビデオカメラ装置2200は、価格や大きさなどの面からみても簡易な構成とされることが多く、コンピュータ装置などのように、処理能力の高いCPUや、記憶容量の大きなメモリを搭載できないことが想定される。
つまり、一般的に、ビデオカメラ装置2200は、ビデオカメラ装置2200を利用するゲームをプレイする場合にのみ必要になる、家庭用ゲーム機器の本体2201の周辺機器であり、家庭用ゲーム機器の本体2201を用いてゲームをプレイするのに必要な装置ではない。そのような場合、ビデオカメラ装置2200が家庭用ゲーム機器の本体2201と別商品として販売される(所謂、別売り)ことが多い。その場合に、ビデオカメラ装置2200に、処理能力の高いCPUや記憶容量の大きなメモリを搭載し、高額な価格で販売するようにすると、一般的に販売数が低減する恐れがある。その場合、このビデオカメラ装置2200を利用するゲームの販売数も低減する恐れがあり、収益の低下につながる恐れがある。また、特に、家庭用ゲームにおいては普及率が販売数に対して強い影響を与えることも多く、ビデオカメラ装置2200の普及率が低いと、さらに販売数が低減する恐れがある。
逆に、ビデオカメラ装置2200を安価で多数販売して普及率を向上させることにより、このビデオカメラ装置2200を利用する家庭用ゲームの販売数や人気度を向上させることができ、さらに、そのことが家庭用ゲーム機器の本体2201のさらなる購買動機に繋がることを期待することができる。そのためにも、ビデオカメラ装置2200は、簡易な構成とすることが望ましい場合が多い。
この場合、例えば、ビデオカメラ装置2200に内蔵される送信ユニット2100のビデオ信号符号化部2110において、ウェーブレット変換を低い分解レベルで抑えて行うことが考えられる。こうすることで、係数並び替え用バッファ部に用いるメモリ容量が少なくて済む。
また、ビデオ信号符号化部2110に、上述した、図37に例示される画像符号化装置の構成を適用することが考えられる。さらに、ビデオ信号符号化部2110に、上述した、図40に例示される画像符号化装置の構成を適用すると、ビデオ信号符号化部2110側でウェーブレット変換係数データの並び替え処理を行う必要が無くなるため、ビデオカメラ装置2200側の負担をより減らすことが可能となり、好ましい。この場合、家庭用ゲーム機器の本体2201側に内蔵される受信装置2101において、ビデオ信号復号部2124として、上述した、図41に例示される画像復号装置を用いる必要がある。
なお、上述では、ビデオカメラ装置2200と家庭用ゲーム機器の本体2201とは、無線通信で接続されるように説明したが、これはこの例に限られない。すなわち、ビデオカメラ装置2200と家庭用ゲーム機器の本体2201とは、USBやIEEE1394といったインタフェースにより、有線で接続されていてもよい。
以上のように、本発明は、多様な形態に適用することができ、容易に多様な用途に応用することができる(すなわち汎用性が高い)ことも大きな効果である。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ、または、複数の装置よりなる情報処理システムの情報処理装置などに、プログラム記録媒体からインストールされる。
図92は、上述した一連の処理をプログラムにより実行する情報処理システムの構成の例を示すブロック図である。
図92に示されるように、情報処理システム2300は、情報処理装置2301、その情報処理装置2301とPCIバス2302によって接続された、記憶装置2303、複数台のビデオテープレコーダ(VTR)であるVTR2304-1乃至VTR2304-S、ユーザがこれらに対する操作入力を行うためのマウス2305、キーボード2306、並びに操作コントローラ2307により構成されるシステムであり、インストールされたプログラムによって、上述したような画像符号化処理や画像復号処理等を行うシステムである。
例えば情報処理システム2300の情報処理装置2301は、RAID(Redundant Arrays of Independent Disks)でなる大容量の記憶装置2303に記憶されている動画コンテンツを符号化して得られた符号化データを記憶装置2303に記憶させたり、記憶装置2303に記憶されている符号化データを復号して得られた復号画像データ(動画コンテンツ)を記憶装置2303に記憶させたり、符号化データや復号画像データをVTR2304-1乃至VTR2304-Sを介してビデオテープに記録したりすることができる。また、情報処理装置2301は、VTR2304-1乃至VTR2304-Sに装着されたビデオテープに記録された動画コンテンツを記憶装置2303に取り込み得るようにもなされている。その際、情報処理装置2301が、動画コンテンツを符号化するようにしてもよい。
情報処理装置2301は、マイクロプロセッサ2401、GPU(Graphics Processing Unit)2402、XDR(Extreme Data Rate)-RAM2403、サウスブリッジ2404、HDD2405、USBインタフェース(USB I/F)2406、およびサウンド入出力コーデック2407を有している。
GPU2402は専用のバス2411を介してマイクロプロセッサ2401に接続される。XDR-RAM2403は専用のバス2412を介してマイクロプロセッサ2401に接続される。サウスブリッジ2404は、専用のバスを介してマイクロプロセッサ2401のI/Oコントローラ2444に接続される。このサウスブリッジ2404には、HDD2405、USBインタフェース2406、および、サウンド入出力コーデック2407も接続されている。このサウンド入出力コーデック2407にはスピーカ2421が接続されている。また、GPU2402にはディスプレイ2422が接続されている。
またサウスブリッジ2404には、さらに、PCIバス2302を介して、マウス2305キーボード2306、VTR2304-1乃至VTR2304-S、記憶装置2303、並びに、操作コントローラ2307が接続されている。
マウス2305およびキーボード2306は、ユーザの操作入力を受け、PCIバス2302およびサウスブリッジ2404を介して、ユーザの操作入力の内容を示す信号を、マイクロプロセッサ2401に供給する。記憶装置2303およびVTR2304-1乃至VTR2304-Sは、所定のデータを記録または再生できるようになされている。
PCIバス2302にはさらに、必要に応じてドライブ2308が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア2311が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてHDD2405にインストールされる。
マイクロプロセッサ2401は、OS(Operating System)等の基本プログラムを実行する汎用のメインCPUコア2441と、メインCPUコア2441に内部バス2445を介して接続された複数(この場合8個)のRISC(Reduced Instruction Set Computer)タイプの信号処理プロセッサである、サブCPUコア2442-1乃至サブCPUコア2442-8と、例えば256[MByte]の容量を持つXDR-RAM2403に対するメモリコントロールを行うメモリコントローラ2443と、サウスブリッジ2404との間でデータの入出力を管理するI/O(In/Out)コントローラ2444とが1チップに集積されたマルチコア構成でなり、例えば動作周波数4[GHz]を実現している。
このマイクロプロセッサ2401は、起動時、HDD2405に格納された制御プログラムに基づき、HDD2405に格納されている必要なアプリケーションプログラムを読み出してXDR-RAM2403に展開し、この後このアプリケーションプログラム及びオペレータ操作に基づいて必要な制御処理を実行する。
また、マイクロプロセッサ2401は、ソフトウェアを実行することにより、例えば、上述した各実施の形態の画像符号化処理や画像復号処理を実現し、エンコードの結果得られた符号化ストリームを、サウスブリッジ2404を介して、HDD2405に供給して記憶させたり、デコードした結果得られる動画像コンテンツの再生映像を、GPU2402へデータ転送して、ディスプレイ2422に表示させたりすることができる。
マイクロプロセッサ2401内の各CPUコアの使用方法は任意であるが、例えば、メインCPUコア2441が、画像符号化処理や画像復号処理の制御に関する処理を行い、8個のサブCPUコア2442-1乃至サブCPUコア2442-8に、ウェーブレット変換、係数並び替え、エントロピ符号化、エントロピ復号、ウェーブレット逆変換、量子化、および逆量子化等の各処理を、例えば図11を参照して説明したように同時並列的に実行させるようにしてもよい。その際、メインCPUコア2441が、8個のサブCPUコア2442-1乃至サブCPUコア2442-8のそれぞれに対してラインブロック(プレシンクト)単位で処理を割り振るようにすれば、画像符号化処理や画像復号処理が、図11を参照して説明した場合と同様にラインブロック単位で同時並列的に実行される。つまり、画像符号化処理や画像復号処理の効率を向上させ、処理全体の遅延時間を短縮させ、さらに、負荷、処理時間、および、処理に必要なメモリ容量を低減させることができる。もちろん、これ以外の方法で各処理を行うようにしてもよい。
例えば、マイクロプロセッサ2401の8個のサブCPUコア2442乃至サブCPUコア2442-8のうちの一部がエンコード処理を、他の部分がデコード処理を、同時並列的に実行するようにすることも可能である。
また、例えば、PCIバス2302に、独立したエンコーダまたはデコーダ、もしくは、コーデック処理装置が接続されている場合、マイクロプロセッサ2401の8個のサブCPUコア2442乃至サブCPUコア2442-8が、サウスブリッジ2404およびPCIバス2302を介して、これらの装置が実行する処理を制御するようにしてもよい。さらに、これらの装置が複数接続されている場合、または、これらの装置が複数のデコーダまたはエンコーダを含んでいる場合、マイクロプロセッサ2401の8個のサブCPUコア2442乃至サブCPUコア2442-8は、複数のデコーダまたはエンコーダが実行する処理を、分担して制御するようにしてもよい。
このときメインCPUコア2441は、8個のサブCPUコア2442乃至サブCPUコア2442-8の動作を管理し、各サブCPUコアに対して処理を割り当てたり、処理結果を引き取ったりする。さらに、メインCPUコア2441は、これらのサブCPUコアが行う以外の処理も行う。例えば、メインCPUコア2441は、サウスブリッジ2404を介してマウス2305、キーボード2306、または、操作コントローラ2307から供給された命令を受け付け、命令に応じた種々の処理を実行する。
GPU2402は、ディスプレイ2422に表示する動画コンテンツの再生映像を動かすときのテクスチャの張り込みなどに関する最終的なレンダリング処理に加えて、動画コンテンツの再生映像及び静止画コンテンツの静止画像をディスプレイ2422に一度に複数表示するときの座標変換計算処理や、動画コンテンツの再生映像及び静止画コンテンツの静止画像に対する拡大・縮小処理等を行う機能を司り、マイクロプロセッサ2401の処理負担を軽減させるようになされている。
GPU2402は、マイクロプロセッサ2401の制御のもとに、供給された動画コンテンツの映像データや静止画コンテンツの画像データに対して所定の信号処理を施し、その結果得られた映像データや画像データをディスプレイ2422へ送出して、画像信号をディスプレイ2422へ表示させる。
ところで、マイクロプロセッサ2401における8個のサブCPUコア2442乃至サブCPUコア2442-8で同時並列的にデコードされた複数の動画コンテンツにおける再生映像は、バス2411を介してGPU2402へデータ転送されるが、このときの転送速度は、例えば、最大30[Gbyte/sec]であり、特殊効果の施された複雑な再生映像であっても高速かつ滑らかに表示し得るようになされている。
また、マイクロプロセッサ2401は、動画コンテンツの映像データ及び音声データのうち音声データに対して音声ミキシング処理を施し、その結果得られた編集音声データを、サウスブリッジ2404およびサウンド入出力コーデック2407を介して、スピーカ2421へ送出することにより、音声信号に基づく音声をスピーカ2421から出力させることもできる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図92に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM,DVDを含む)、光磁気ディスク(MDを含む)、もしくは半導体メモリなどよりなるリムーバブルメディア2311により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているHDD2405や記憶装置2303等で構成される。もちろん、記録媒体は、ROMやフラッシュメモリ等の半導体メモリであってもよい。
以上においては、マイクロプロセッサ2401内に8個のサブCPUコアが構成されるように説明したが、これに限らず、サブCPUコアの数は任意である。また、マイクロプロセッサ2401が、メインCPUコアとサブCPUコアのような複数のコアにより構成されていなくてもよく、シングルコア(1つのコア)により構成されるCPUを用いるようにしてもよい。また、マイクロプロセッサ2401の代わりに複数のCPUを用いるようにしてもよいし、複数の情報処理装置を用いる(すなわち、本発明の処理を実行するプログラムを、互いに連携して動作する複数の装置において実行する)ようにしてもよい。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表わすものである。
なお、以上において、1つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて1つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。
以上説明した用に、この発明は、画像を圧縮符号化して伝送し、伝送先で圧縮符号を復号して出力するような装置またはシステムであれば、様々なものに適用することができる。この発明は、特に、インタレース走査による動画像データを扱うシステムに用いて好適である。
さらに、この発明は、符号化ストリームのビットレートが低くても、復号後の画像データにおいて主観画像で高画質を得ることができるため、比較的伝送容量の小さい伝送路を用いる場合でも、復号側では高画質を得ることができる。これは、換言すれば、伝送容量が大きな伝送路を用いた場合には、より高速に符号化ストリームの伝送を行うことができるといえる。
例えば、この発明は、ビデオカメラで撮影された映像を見ながらマジックハンドを操作して治療行為を行うような、医用遠隔医療診断の用途に用いて好適である。また、この発明は、放送局内などのシステムにおける、ディジタルビデオ信号の圧縮符号化および伝送、ならびに、圧縮符号化されたディジタルビデオ信号の復号に用いて好適である。
さらに、実況中継される映像の配信を行うシステム、教育現場において生徒と教師との間でインタラクティブな通信を可能としたシステムなどに、この発明を適用することができる。
さらにまた、カメラ機能付き携帯電話端末といった、撮像機能を有するモバイル端末で撮影された画像データの送信や、テレビジョン会議システム、監視カメラおよび監視カメラで撮影された映像を記録するレコーダによるシステムなどに、この発明を適用することができる。
Claims (25)
- 画像データを圧縮符号化して出力する符号化装置において、
画像データに基づくデータをビットプレーンに分解する分解部と、
前記分解部で前記ビットプレーンに分解されたデータを、ビット位置が最上位の前記ビットプレーンから所定ビット位置に対応する前記ビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力する出力部と
を有する符号化装置。 - 前記画像データに対して階層的にフィルタ処理を行い、周波数帯域毎に分解された係数データからなる複数のサブバンドを生成するフィルタ部をさらに有し、
前記分解部は、前記フィルタ部で生成された前記係数データを前記ビットプレーンに分解する
請求項1に記載の符号化装置。 - 前記出力部は、ビット位置が同一の前記ビットプレーンについて、最低域の前記サブバンドから最高域の前記サブバンドに向けて順次、出力する
請求項2に記載の符号化装置。 - 前記出力部から出力される符号の符号量を制御する符号量制御部をさらに有し、
前記符号量制御部の制御に基づき、目標符号量に応じたビットプレーンで出力を停止するように前記所定ビット位置が設定される
請求項1に記載の符号化装置。 - 前記出力部は、出力される前記ビットプレーンを、ビットプレーン毎にエントロピ符号化するエントロピ符号化部を備える
請求項1に記載の符号化装置。 - 前記出力部は、出力されるデータの種類に応じて優先順位を設定し、出力されるストリームに対して該優先順位に応じて出力データを含めるようにした
請求項1に記載の符号化装置。 - 前記分解部は、前記画像データの輝度成分および色差成分のそれぞれを前記ビットプレーンに分解し、
前記優先順位は、前記画像データの輝度成分および色差成分に対して設定される
請求項6に記載の符号化装置。 - 前記画像データは、インタレース走査による画像データであって、
インタレース走査による画像データの1フレームを構成する第1のフィールドと第2のフィールドとの間で加算処理を行う加算部と、
前記第1のフィールドと前記第2のフィールドとの間で減算処理を行う減算部とをさらに有し、
前記分解部は、前記加算部から出力された加算画像データに基づくデータと前記減算部から出力された減算画像データに基づくデータとのそれぞれを、前記ビットプレーンに分解する
請求項1に記載の符号化装置。 - 前記出力部は、出力される前記ビットプレーンをビットプレーン毎にエントロピ符号化するエントロピ符号化部を備え、
前記エントロピ符号化部は、前記加算画像データに基づくビットプレーンと前記減算画像データに基づくビットプレーンとをそれぞれ独立的に前記エントロピ符号化する
請求項8に記載の符号化装置。 - 前記出力部から出力される符号の符号量を制御する符号量制御部をさらに有し、
前記符号量制御部の制御に基づき、目標符号量に応じたビットプレーンで出力を停止するように前記所定ビット位置が設定され、
前記目標符号量は、前記加算画像データに基づくデータおよび前記減算画像データに基づくデータのそれぞれに対して設定される
請求項9に記載の符号化装置。 - 前記出力部は、出力される前記ビットプレーンをビットプレーン毎にエントロピ符号化するエントロピ符号化部を備え、
前記エントロピ符号化部は、前記加算画像データに基づくビットプレーンと前記減算画像データに基づくビットプレーンとを統合的に前記エントロピ符号化する
請求項8に記載の符号化装置。 - 前記出力部から出力される符号の符号量を制御する符号量制御部をさらに有し、
前記符号量制御部の制御に基づき、目標符号量に応じたビットプレーンで出力を停止するように前記所定ビット位置が設定され、
前記目標符号量は、前記加算画像データに基づくデータおよび前記減算画像データに基づくデータに対して統合的に設定される
請求項11に記載の符号化装置。 - 前記出力部から出力される符号の符号量を制御する符号量制御部をさらに有し、
前記分解部は、前記加算画像データ、前記減算画像データ、前記画像データの輝度成分、ならびに、前記画像データの色差成分をそれぞれビットプレーンに分解し、
前記出力部は、前記加算画像データ、前記減算画像データ、前記画像データの輝度成分、ならびに、前記画像データの色差成分に対して優先順位を設定し、前記減算画像データ、前記画像データの輝度成分、ならびに、前記画像データの色差成分に基づくデータそれぞれのビットプレーンを前記優先順位に対応する順番で出力し、
前記符号量制御部の制御に基づき目標符号量に応じた前記ビットプレーンで出力を停止するように前記所定ビット位置を設定する
請求項8に記載の符号化装置。 - 前記優先順位は、前記加算画像データの前記輝度成分が最も順位が高く、前記加算画像データの前記色差成分、前記減算画像データの前記輝度成分、前記減算画像データの前記色差成分の順に順位が低くなるように設定される
請求項13に記載の符号化装置。 - 前記優先順位は、前記加算画像データの前記輝度成分が最も順位が高く、前記減算画像データの前記輝度成分、前記加算画像データの前記色差成分、前記減算画像データの前記色差成分の順に順位が低くなるように設定される
請求項13に記載の符号化装置。 - 画像データを圧縮符号化して出力する符号化方法において、
画像データに基づくデータをビットプレーンに分解する分解のステップと、
前記分解のステップにより前記ビットプレーンに分解されたデータを、ビット位置が最上位の前記ビットプレーンから所定ビット位置に対応する前記ビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力する出力のステップと
を有する符号化方法。 - 画像データを圧縮符号化して出力する符号化方法をコンピュータ装置に実行させる符号化プログラムにおいて、
前記符号化方法は、
画像データに基づくデータをビットプレーンに分解する分解のステップと、
前記分解のステップにより前記ビットプレーンに分解されたデータを、ビット位置が最上位の前記ビットプレーンから所定ビット位置に対応する前記ビットプレーンまで、ビット位置が上位のビットプレーンからビット位置が下位のビットプレーンに向けて順次、出力する出力のステップと
を有する符号化プログラム。 - ビットプレーンに分解され、該ビットプレーンが、ビット位置が最上位の該ビットプレーンから所定ビット位置の該ビットプレーンに向けて順次、供給される、画像データに基づくデータがビットプレーン毎に所定に符号化された符号化データに対して該ビットプレーンの供給順に従い該ビットプレーン毎の符号を復号する復号部を有する
ことを特徴とする復号装置。 - 前記符号化データは、画像データに対して階層的にフィルタ処理されて周波数帯域毎に分解された係数データが前記ビットプレーンに分解され、ビットプレーン毎に所定に符号化されてなり、
前記復号部で復号された前記ビットプレーンに基づき形成される前記係数データに対してフィルタ処理を行い、画像データを生成するフィルタ処理部をさらに有する
請求項18に記載の復号装置。 - 前記符号化データは、さらに、インタレース走査による前記画像データの1フレームを構成する第1のフィールドと第2のフィールドとの間で加算処理された加算画像データに基づきフィルタ処理されて生成された加算画像係数データをビットプレーンに分解した加算画像ビットプレーンが所定に符号化されたデータと、前記第1のフィールドと前記第2のフィールドとの間で減算処理された減算画像データに基づきフィルタ処理されて生成された減算画像係数データをビットプレーンに分解した減算画像ビットプレーンが所定に符号化されたデータとからなり、
前記復号部は、
前記加算画像ビットプレーンの符号を復号する第1の復号部と、
前記減算画像ビットプレーンの符号を復号する第2の復号部と
を備え、
前記フィルタ部は、
前記第1の復号部で復号された前記加算画像係数データに前記フィルタ処理を行う第1のフィルタ部と、
前記第2の復号部で復号された前記減算画像係数データに前記フィルタ処理を行う第2のフィルタ部と
を備え、
前記第1のフィルタ部から出力された前記加算画像データおよび前記第2のフィルタ部から出力された前記減算画像データとから前記第1のフィールドと前記第2のフィールドとを抽出する抽出部と、
前記抽出部で抽出された前記第1のフィールドと前記第2のフィールドとを正しいタイミングに並び替えて出力する出力部と
をさらに有する請求項19に記載の復号装置。 - 前記所定の符号化はエントロピ符号化であって、前記加算画像ビットプレーンおよび前記減算画像ビットプレーンのそれぞれが、ビット位置が最上位の該ビットプレーンからビット位置が下位の該ビットプレーンに向けてビットプレーン毎にエントロピ符号化され、
前記第1の復号部は、前記加算画像ビットプレーンをビット位置が最上位の前記ビットプレーンからビット位置が下位の前記ビットプレーンに向けてエントロピ符号を復号し、
前記第2の復号部は、前記減算画像ビットプレーンをビット位置が最上位の前記ビットプレーンからビット位置が下位の前記ビットプレーンに向けてエントロピ符号を復号する
請求項20に記載の復号装置。 - 前記符号化データは、さらに、インタレース走査による前記画像データの1フレームを構成する第1のフィールドと第2のフィールドとの間で加算処理された加算画像データに基づきフィルタ処理されて生成された加算画像係数データが分解された加算画像ビットプレーンと、前記第1のフィールドと前記第2のフィールドとの間で減算処理された減算画像データに基づきフィルタ処理されて生成された減算画像係数データが分解された減算画像ビットプレーンとが統合的に、ビット位置が同じ前記ビットプレーン毎にエントロピ符号化されてなり、
前記復号部は、前記加算画像ビットプレーンと前記減算画像ビットプレーンとを統合的に、ビット位置が最上位の前記ビットプレーンからビット位置が下位の前記ビットプレーンに向けてエントロピ符号を復号する
請求項19に記載の復号装置。 - 前記符号化データは、さらに、前記係数データが画像データの輝度成分および色差成分のそれぞれについてビットプレーンに分解され、該ビットプレーンに分解された、前記輝度成分および前記色差成分それぞれに基づく前記係数データが、ビット位置が最上位の該ビットプレーンからビット位置が下位の該ビットプレーンに向けて、前記輝度成分および前記色差成分によるそれぞれの前記ビットプレーンが、ビット位置が同じ前記ビットプレーン毎にエントロピ符号化されてなり、
前記復号部は、同じビット位置の前記ビットプレーンについては、前記輝度成分に基づく前記ビットプレーンから前記色差成分に基づく前記ビットプレーンの順にエントロピ符号を復号する
請求項19に記載の復号装置。 - ビットプレーンに分解され、該ビットプレーンが、ビット位置が最上位の該ビットプレーンから所定ビット位置の該ビットプレーンに向けて順次、供給される、画像データに基づくデータがビットプレーン毎に所定に符号化された符号化データに対して該ビットプレーンの供給順に従い該ビットプレーン毎の符号を復号する復号のステップを有する
復号方法。 - ビットプレーンに分解され、該ビットプレーンが、ビット位置が最上位の該ビットプレーンから所定ビット位置の該ビットプレーンに向けて順次、供給される、画像データに基づくデータがビットプレーン毎に所定に符号化された符号化データに対して該ビットプレーンの供給順に従い該ビットプレーン毎の符号を復号する復号のステップを有する
復号方法をコンピュータ装置に実行させる復号プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005353199 | 2005-12-07 | ||
JP2005353199 | 2005-12-07 | ||
PCT/JP2006/324417 WO2007066709A1 (ja) | 2005-12-07 | 2006-12-07 | 符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2007066709A1 true JPWO2007066709A1 (ja) | 2009-05-21 |
Family
ID=38122854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007549166A Pending JPWO2007066709A1 (ja) | 2005-12-07 | 2006-12-07 | 符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8665943B2 (ja) |
JP (1) | JPWO2007066709A1 (ja) |
CN (1) | CN101133649B (ja) |
WO (1) | WO2007066709A1 (ja) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8238624B2 (en) | 2007-01-30 | 2012-08-07 | International Business Machines Corporation | Hybrid medical image processing |
US20080189381A1 (en) * | 2007-02-01 | 2008-08-07 | Universal Data Protection Corporation | Method and system for secure communication between devices |
US8296662B2 (en) * | 2007-02-05 | 2012-10-23 | Brother Kogyo Kabushiki Kaisha | Image display device |
US8462369B2 (en) | 2007-04-23 | 2013-06-11 | International Business Machines Corporation | Hybrid image processing system for a single field of view having a plurality of inspection threads |
US8331737B2 (en) * | 2007-04-23 | 2012-12-11 | International Business Machines Corporation | Heterogeneous image processing system |
US8326092B2 (en) * | 2007-04-23 | 2012-12-04 | International Business Machines Corporation | Heterogeneous image processing system |
US8675219B2 (en) | 2007-10-24 | 2014-03-18 | International Business Machines Corporation | High bandwidth image processing with run time library function offload via task distribution to special purpose engines |
US9135073B2 (en) | 2007-11-15 | 2015-09-15 | International Business Machines Corporation | Server-processor hybrid system for processing data |
US9332074B2 (en) | 2007-12-06 | 2016-05-03 | International Business Machines Corporation | Memory to memory communication and storage for hybrid systems |
US8229251B2 (en) | 2008-02-08 | 2012-07-24 | International Business Machines Corporation | Pre-processing optimization of an image processing system |
US8379963B2 (en) | 2008-03-28 | 2013-02-19 | International Business Machines Corporation | Visual inspection system |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US8347023B2 (en) * | 2008-10-06 | 2013-01-01 | Marvell World Trade Ltd. | Compression based wear leveling for non-volatile memory |
JP5136470B2 (ja) * | 2009-03-06 | 2013-02-06 | 富士通株式会社 | 動画像符号化装置及び動画像符号化方法 |
JP5616439B2 (ja) * | 2009-06-16 | 2014-10-29 | コーニンクレッカ フィリップス エヌ ヴェ | 信号のスケーラブルビットストリームへの符号化及び斯様なビットストリームの復号化 |
CA2907353C (en) | 2009-10-20 | 2018-02-06 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values |
CN102598661B (zh) * | 2009-11-02 | 2015-04-15 | 松下电器(美国)知识产权公司 | 图像编码方法、图像解码方法、图像编码装置及图像解码装置 |
US20110122224A1 (en) * | 2009-11-20 | 2011-05-26 | Wang-He Lou | Adaptive compression of background image (acbi) based on segmentation of three dimentional objects |
JP5556996B2 (ja) * | 2010-01-06 | 2014-07-23 | ソニー株式会社 | 画像処理装置および方法 |
ES2532203T3 (es) | 2010-01-12 | 2015-03-25 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Codificador de audio, decodificador de audio, método para codificar y decodificar una información de audio y programa de computación que obtiene un valor de contexto de sub-región basado en una norma de valores espectrales previamente decodificados |
JP2011147050A (ja) * | 2010-01-18 | 2011-07-28 | Sony Corp | 画像処理装置および方法 |
US8934725B1 (en) * | 2010-08-30 | 2015-01-13 | Accusoft Corporation | Image coding and decoding methods and apparatus |
US8983213B1 (en) * | 2010-08-30 | 2015-03-17 | Accusoft Corporation | Image coding and decoding methods and apparatus |
GB2484736B (en) * | 2010-10-22 | 2014-11-05 | Displaylink Uk Ltd | Image generation |
JP6056124B2 (ja) * | 2011-09-05 | 2017-01-11 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
US9030908B2 (en) * | 2011-09-23 | 2015-05-12 | Texas Instruments Incorporated | Programmable wavelet tree |
KR20130049524A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
US10390016B2 (en) | 2011-11-04 | 2019-08-20 | Infobridge Pte. Ltd. | Apparatus of encoding an image |
US9432704B2 (en) * | 2011-11-06 | 2016-08-30 | Akamai Technologies Inc. | Segmented parallel encoding with frame-aware, variable-size chunking |
CN104509119A (zh) * | 2012-04-24 | 2015-04-08 | Vid拓展公司 | 用于mpeg/3gpp-dash中平滑流切换的方法和装置 |
EP2842339A1 (en) * | 2012-04-26 | 2015-03-04 | Huawei Technologies Co., Ltd | System and method for signaling segment encryption and key derivation for adaptive streaming |
JP6080405B2 (ja) * | 2012-06-29 | 2017-02-15 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
JP6045254B2 (ja) * | 2012-08-20 | 2016-12-14 | キヤノン株式会社 | 画像処理装置、その制御方法、および制御プログラム |
JP6125215B2 (ja) * | 2012-09-21 | 2017-05-10 | 株式会社東芝 | 復号装置、及び符号化装置 |
US8971407B2 (en) * | 2012-11-15 | 2015-03-03 | Pexip AS | Detection of skip mode |
US9165538B2 (en) | 2013-03-13 | 2015-10-20 | Displaylink (Uk) Limited | Image generation |
US9398312B2 (en) * | 2013-11-04 | 2016-07-19 | Samsung Display Co., Ltd. | Adaptive inter-channel transform for wavelet color image compression |
US9485456B2 (en) | 2013-12-30 | 2016-11-01 | Akamai Technologies, Inc. | Frame-rate conversion in a distributed computing system |
JP6358847B2 (ja) * | 2014-05-14 | 2018-07-18 | オリンパス株式会社 | 表示処理装置および撮像装置 |
JP2016021600A (ja) * | 2014-07-11 | 2016-02-04 | 株式会社リコー | 画像符号化装置、画像処理装置、画像送受信システム、画像符号化方法及び制御プログラム |
JP2017050592A (ja) * | 2015-08-31 | 2017-03-09 | ルネサスエレクトロニクス株式会社 | 画像符号化装置、画像復号化装置および画像伝送装置 |
US10827039B1 (en) | 2015-10-19 | 2020-11-03 | Quest Software Inc. | Systems and methods for dynamic compression of time-series data |
JP6420505B2 (ja) * | 2016-02-10 | 2018-11-07 | 株式会社日立国際電気 | 映像信号伝送装置 |
WO2018041843A1 (en) * | 2016-08-29 | 2018-03-08 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Encoder for Encoding, and Decoder for Decoding, a Digital Image Representation into a Data Stream using Indicating a Number of Leading Zero Bit Planes |
WO2018041379A1 (en) * | 2016-08-29 | 2018-03-08 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Improvements for greatest common line index (gcli) video coding |
CN107801026B (zh) * | 2017-11-09 | 2019-12-03 | 京东方科技集团股份有限公司 | 图像压缩方法及装置、图像压缩及解压缩系统 |
CN109842803B (zh) * | 2018-09-19 | 2021-06-29 | 华为技术有限公司 | 一种图像压缩的方法及装置 |
EP3700206A4 (en) * | 2018-12-17 | 2020-11-18 | LG Electronics Inc. | METHOD AND APPARATUS FOR DECISION OF THE TRANSFORMATION COEFFICIENT SCANNING SEQUENCE BASED ON THE HIGH-FREQUENCY ZERO-POINT RESET |
US10645386B1 (en) * | 2019-01-03 | 2020-05-05 | Sony Corporation | Embedded codec circuitry for multiple reconstruction points based quantization |
WO2020168501A1 (zh) * | 2019-02-21 | 2020-08-27 | 上海极清慧视科技有限公司 | 图像的编码方法、解码方法及所适用的设备、系统 |
US10924625B2 (en) * | 2019-03-20 | 2021-02-16 | Xerox Corporation | Dynamic compression acceleration using real-time image data entropy analysis |
CN112866723B (zh) * | 2019-11-28 | 2024-04-19 | 瑞昱半导体股份有限公司 | 图像数据处理方法与系统 |
CN113079378B (zh) * | 2021-04-15 | 2022-08-16 | 杭州海康威视数字技术股份有限公司 | 图像处理方法、装置和电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05153550A (ja) * | 1991-12-02 | 1993-06-18 | Matsushita Electric Ind Co Ltd | 映像信号の記録装置および再生装置 |
JPH06178280A (ja) * | 1992-12-08 | 1994-06-24 | Victor Co Of Japan Ltd | 画像情報符号化装置及び画像情報復号化装置 |
JPH07284108A (ja) * | 1994-02-21 | 1995-10-27 | Sony United Kingdom Ltd | ビデオ信号符号化及び復号方式 |
JPH08242379A (ja) * | 1994-12-05 | 1996-09-17 | Microsoft Corp | 離散ウエーブレット変換を用いた漸進的画像伝送方法及びそのためのデータ・ファイル |
JPH1146372A (ja) * | 1997-05-29 | 1999-02-16 | Sharp Corp | 画像符号化装置及び画像復号装置 |
JP2002034043A (ja) * | 2000-05-11 | 2002-01-31 | Canon Inc | 符号化装置及び符号化方法並びに記憶媒体 |
JP2002165098A (ja) * | 2000-11-27 | 2002-06-07 | Sony Corp | 画像符号化装置及び画像符号化方法 |
JP2003319185A (ja) * | 2002-04-19 | 2003-11-07 | Sony Corp | 画像符号化装置及び方法、並びに画像復号装置及び方法 |
JP2004104694A (ja) * | 2002-09-12 | 2004-04-02 | Sony Corp | 符号化装置と符号化方法と符号化プログラムおよび復号化装置と復号化方法と復号化プログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69028176T2 (de) * | 1989-11-14 | 1997-01-23 | Nippon Electric Co | Adaptive Transformationskodierung durch optimale Blocklängenselektion in Abhängigkeit von Unterschieden zwischen aufeinanderfolgenden Blöcken |
JPH06292179A (ja) | 1993-04-01 | 1994-10-18 | Matsushita Electric Ind Co Ltd | 直交変換符号化装置および直交変換復号化装置 |
JP3213222B2 (ja) * | 1995-11-02 | 2001-10-02 | 株式会社リコー | 符号化方法 |
EP0817494A3 (en) * | 1996-06-28 | 1998-07-22 | Oki Electric Industry Co., Ltd. | Image coding method and apparatus |
US6707948B1 (en) * | 1997-11-17 | 2004-03-16 | The Regents Of The University Of California | Image compression for memory-constrained decoders |
CN1329794A (zh) * | 1998-12-04 | 2002-01-02 | 通用仪器公司 | 使用变换系数的位平面编码的高粒度可量测性的改进 |
JP2002359853A (ja) | 2001-03-26 | 2002-12-13 | Sony Corp | 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体 |
US20030002582A1 (en) * | 2001-06-13 | 2003-01-02 | Pere Obrador | Multi-resolution boundary encoding applied to region based still image and video encoding |
JP3880050B2 (ja) | 2002-12-16 | 2007-02-14 | 梶原工業株式会社 | 調理装置 |
JP4045544B2 (ja) * | 2003-04-14 | 2008-02-13 | ソニー株式会社 | 符号化装置及び符号化方法 |
-
2006
- 2006-12-07 JP JP2007549166A patent/JPWO2007066709A1/ja active Pending
- 2006-12-07 WO PCT/JP2006/324417 patent/WO2007066709A1/ja active Application Filing
- 2006-12-07 CN CN200680006879.4A patent/CN101133649B/zh not_active Expired - Fee Related
- 2006-12-07 US US11/815,708 patent/US8665943B2/en not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05153550A (ja) * | 1991-12-02 | 1993-06-18 | Matsushita Electric Ind Co Ltd | 映像信号の記録装置および再生装置 |
JPH06178280A (ja) * | 1992-12-08 | 1994-06-24 | Victor Co Of Japan Ltd | 画像情報符号化装置及び画像情報復号化装置 |
JPH07284108A (ja) * | 1994-02-21 | 1995-10-27 | Sony United Kingdom Ltd | ビデオ信号符号化及び復号方式 |
JPH08242379A (ja) * | 1994-12-05 | 1996-09-17 | Microsoft Corp | 離散ウエーブレット変換を用いた漸進的画像伝送方法及びそのためのデータ・ファイル |
JPH1146372A (ja) * | 1997-05-29 | 1999-02-16 | Sharp Corp | 画像符号化装置及び画像復号装置 |
JP2002034043A (ja) * | 2000-05-11 | 2002-01-31 | Canon Inc | 符号化装置及び符号化方法並びに記憶媒体 |
JP2002165098A (ja) * | 2000-11-27 | 2002-06-07 | Sony Corp | 画像符号化装置及び画像符号化方法 |
JP2003319185A (ja) * | 2002-04-19 | 2003-11-07 | Sony Corp | 画像符号化装置及び方法、並びに画像復号装置及び方法 |
JP2004104694A (ja) * | 2002-09-12 | 2004-04-02 | Sony Corp | 符号化装置と符号化方法と符号化プログラムおよび復号化装置と復号化方法と復号化プログラム |
Non-Patent Citations (3)
Title |
---|
JPN6012027177; Christos Chrysafis and Antonio Ortega: 'Line-Based, Reduced Memory, Wavelet Image Compression' IEEE Transactions on Image Processing Vol.9, No.3, 200003, p.378-389, IEEE * |
JPN6012027178; David Taubman: 'High Performance Scalable Image Compression with EBCOT' IEEE Transactions on Image Processing Vol.9, No.7, 200007, p.1158-1170, IEEE * |
JPN6012027179; 福原隆浩: 次世代動画像符号化方式 Motion-JPEG2000 , 20020329, p.9-33,45-50,117-140, 株式会社トリケップス * |
Also Published As
Publication number | Publication date |
---|---|
US8665943B2 (en) | 2014-03-04 |
WO2007066709A1 (ja) | 2007-06-14 |
CN101133649A (zh) | 2008-02-27 |
US20090074052A1 (en) | 2009-03-19 |
CN101133649B (zh) | 2010-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2007066709A1 (ja) | 符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム | |
JPWO2007066710A1 (ja) | 符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム | |
JP4888729B2 (ja) | 符号化装置および方法、並びに、復号装置および方法 | |
US8107755B2 (en) | Information processing apparatus and method | |
JP4254866B2 (ja) | 情報処理装置および方法、プログラム、並びに記録媒体 | |
US8000548B2 (en) | Wavelet transformation device and method, wavelet inverse transformation device and method, program, and recording medium for performing wavelet transformation at a plurality of division levels | |
US8031960B2 (en) | Wavelet transformation device and method, wavelet inverse transformation device and method, program, and recording medium | |
US20080089406A1 (en) | Information processing device and method, and program | |
JP4841504B2 (ja) | 画像符号化装置および方法 | |
JP2006074130A (ja) | 画像復号方法、画像復号装置および撮像装置 | |
JP2005223852A (ja) | 画像符号化装置および方法、ならびに画像復号装置および方法 | |
JP4514464B2 (ja) | 画像符号化装置および画像復号装置、ならびにそれらを利用可能な画像表示装置および方法 | |
JP2008187571A (ja) | 情報処理装置および方法、並びにプログラム | |
JP2008187572A (ja) | 情報処理装置および方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120719 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130402 |