近年、非特許文献1に記載されるようなDVC方式という新しい符号化方式が注目されている。
このDVC方式は、動画像の符号化において、数フレームおき(一定間隔でなくても良い)のキーとなるいくつかのフレームの画像(以下、キーフレーム若しくはキーフレーム画像と呼ぶ)についてはフレーム内符号化を適用し(なお、キーフレームのいくつかに対して、フレーム間符号化方式を適用しても良い)、一方、その他のフレーム(若しくは全て)のフレーム(Wyner−Zivフレーム(非キーフレーム))については、時間方向の予測誤差信号の誤り訂正符号のみを符号化して伝送するものである。
今日のDVC方式は、Slepian−Wolf定理及びWyner−Ziv定理という2つのキーとなる情報理論に基づいた新しい圧縮方式である。DVC方式は、Wyner−Zivフレーム符号化器で符号化するべき原画像(Wyner−Zivフレームの画像:以下、WZフレーム若しくはWZフレーム画像と呼ぶ)に対してSlepian−Wolf符号化処理を行い、その符号化データとWyner−Zivフレーム復号器側で得たWyner−Zivフレーム符号化器側の原画像の予測画像とを基にSlepian−Wolf復号を行う、新しい符号化方式である。
非特許文献1に記載されるようなDVC方式は、キーフレームの符号化、復号には特徴がないので、以下、非特許文献1の図1を参照しながら、WZフレームの符号化、復号の面から説明する。なお、図8は、非特許文献1の図1をそのまま示した図面である。
Wyner−Zivフレーム符号化器で、符号化するべきWZフレームを変換係数領域(周波数領域)に変換(DCT)した後、周波数領域における成分毎に、量子化(2MK level Quantizer)し、その量子化値(qk)をビット列コードに変換し、各ビットの情報を、例えば、1フレーム分集めた情報(Extract bit−planes;ビットプレーン)毎にSlepian−Wolf符号化(Turbo Encoder)を行い、その結果のうち、パリティビットのみを一時保存(Buffer)し、情報ビットは捨てられる(非特許文献1の図1には明確に図示されていない)。
Wyner−Zivフレーム復号器では、予測画像を生成し(Interpolation/Extrapolation)、その予測画像を変換係数領域に変換(DCT)し、周波数領域における成分毎に、サイドインフォメーション(Side Information;副次情報)としてSlepian−Wolf復号部(Turbo Decoder)に入力する。
Slepian−Wolf復号部は、Wyner−Zivフレーム符号化器に対して、一時保存しているパリティビットのうち一部に対して送信要求(Request bits)を行う。受信したパリティビットと、上述したサイドインフォメーションからSlepian−Wolf復号を行う。十分な復号が行えなかった場合には、再度、Wyner−Zivフレーム符号化器側にパリティビットの一部の追加送信要求(Request bits)を行い、受信したパリティビットと上述したサイドインフォメーションからSlepian−Wolf復号を行う。この処理を、十分な復号が行えるまで続ける。
その後、Slepian−Wolf復号の復号値とサイドインフォメーションから変換係数を再構築し、逆変換(IDCT)することで復号画像を得る。
このような非特許文献1で提案されているようなDVC方式は、誤り訂正符号の再送要求というフィードバックを行うため、遅延が生じることや、Wyner−Zivフレーム符号化器とWyner−Zivフレーム復号器が単独で動作できないという課題がある。
このような課題に対する解決方法が非特許文献2で記載されている。この記載方法では、誤り訂正符号の再送要求を避けるために、誤り訂正に必要な誤り訂正符号の量をWyner−Zivフレーム符号化器で計算する。すなわち、非特許文献2の記載方法は、Wyner−Zivフレーム復号器が作る予測画像を想定した予測画像をWyner−Zivフレーム符号器側で生成し、Wyner−Zivフレーム復号器が作る予測画像の誤りを推定し、訂正するための必要な誤り訂正符号の量を計算することにより、フィードバックを必要としない手法である。
非特許文献2に記載の送信符号量の推定手法は、「予測画像と原画像の係数の差分の分布はラプラス分布で近似できる」というモデルを利用し、この分布モデルを用いて予測画像と原画像の間の予測誤りの起こる確率を推定する。分布モデルを用いて誤り確率を推定し、推定した確率を用いて条件付きエントロピーを計算することによって、推定した誤りを訂正するのに必要な符号量を推定する。
しかしながら、Wyner−Zivフレーム符号化器とWyner−Zivフレーム復号器で生成する予測画像が異なることや、誤りの推定に用いる分布モデルは原画像と予測画像の関係を近似したものであること、エントロピーを計算することによって得られる符号量は理論値であり、Turbo復号やLDPC復号といったSlepian−Wolf復号の性能によっては理論値以上の符号量が必要であることなどの理由から、分布モデルから推定した符号量は、実際にSlepian−Wolf復号に必要な符号量は異なることがある。推定した符号量が復号に必要な符号量より少ない場合は、誤り訂正が正しく行われないことがあり、その結果、復号した画像に歪みとして現れることがある、という問題がある。この間題に対し、非特許文献2の記載方法では、relative error probabilityと呼ばれる補助情報を分布モデルから得られる符号量に加算することで補正し、送信符号量を決定している。
(A)主たる実施形態
以下、本発明による動画像符号化装置の一実施形態を、図面を参照しながら詳述する。
実施形態の整数/ビット列変換装置は、DVC方式の動画像符号化装置や、そのような動画像符号化装置に適用されている符号量制御装置に用いられている。以下では、実施形態の整数/ビット列変換装置の有用性を明らかにするため、実施形態の整数/ビット列変換装置を適用している動画像符号化装置についても説明する。以下における「実施形態の動画像符号化装置」や「実施形態の符号量制御装置」は、実施形態の整数/ビット列変換装置を適用している動画像符号化装置や符号量制御装置を表している。
(A−1)実施形態の構成
図1は、この実施形態の動画像符号化装置100の構成を示すブロック図である。実施形態の動画像符号化装置100は、ハードウェア的に各種回路を接続して構築されても良く、また、CPU、ROM、RAMなどを有する汎用的な装置が動画像符号化プログラムを実行することで動画像符号化装置としての機能を実現するように構築されても良い。いずれの構築方法を適用した場合であっても、動画像符号化装置100の機能的構成は、図1で表すことができる。
図1において、動画像符号化装置100は、キーフレーム符号化部101と、Wyner−Zivフレーム符号化部102とを有する。
キーフレーム符号化部101は、キーフレーム画像をMPEGやJPEGといった所定の符号化方式で符号化を行い、復号側へ符号化データを送信する。
DVC方式のフレームワークにおいては、入力されたWZフレームを符号化する際に、画素領域で処理を行う方法や、DCTなどの変換による変換係数領域(周波数領域)で処理を行う方法があるが、この実施形態は、上述した非特許文献1や非特許文献2の記載内容と同様に、変換係数領域(周波数領域)で処理を行う方法を適用している。
Wyner−Zivフレーム符号化部102は、サイドインフォメーション生成部103と、変換・量子化部104と、符号量制御部109と、Slepian−Wolf符号化部110とを有する。
サイドインフォメーション生成部103は、WZフレームの前、若しくは、WZフレームの後、若しくは、WZフレームの前後のキーフレームの符号化データを入力し、WZフレームの予測画像を生成するものである。WZフレームの前、WZフレームの後、若しくは、WZフレームの前後のキーフレームのいずれを適用するかは予め定められている。また、サイドインフォメーション生成部103は、キーフレームの符号化データを局部復号してキーフレームに戻した後に、WZフレームの予測画像を生成し、生成されたWZフレームの予測画像を変換係数領域(周波数領域)に変換した後、周波数領域の成分毎に量子化し、その量子化値をビット列コード(後述する図3参照)に変換した後、同一桁のビット毎にビットを集めたビットプレーンへ分割するものである。
変換・量子化部104は、WZフレーム画像を変換係数領域(周波数領域)に変換した後、周波数領域における成分毎に量子化し、その量子化値をビット列コード(後述する図3参照)に変換した後、同一ビット位置毎のビットを集めたビットプレーンヘ分割するものである。
サイドインフォメーション生成部103が適用している量子化値をビット列コードに変換する構成や、変換・量子化部104が適用している量子化値をビット列コードに変換する構成が、整数/ビット列変換装置の実施形態となっている。
符号量制御部109は、サイドインフォメーション生成部103の出力と変換・量子化部104の出力とから、送信符号量を計算するものである。ここで、符号量制御部109は、実施形態の符号量制御装置になっており、符号量制御部109をCPUとCPUが実行するプログラムで実現した場合、そのプログラムは実施形態の符号量制御プログラムになっている。
Slepian−Wolf符号化部110は、変換・量子化部104から入力されたビットプレーン毎のデータに対し、Turbo符号やLDPC符号といったSlepian−Wolf符号化を行い、送信符号量制御部109で計算された符号量に応じた誤り訂正符号を復号側へ送信するものである。
符号量制御部109は、サイドインフォメーション更新部105と、予測誤り箇所特定部106と、符号量割当部107とを有する。
サイドインフォメーション更新部105は、サイドインフォメーション生成部103の出力を、後述する動作の項で説明するようにして見直して適宜更新するものである。
予測誤り箇所特定部106は、変換・量子化部104の出力とサイドインフォメーション更新部105の出力とから、ビットプレーン毎のサイドインフォメーションの予測誤り箇所を、後述する動作の項で説明するようにして特定するものである。
符号量割当部107は、予測誤り箇所特定部106の出力から、Slepian−Wolf符号化部110へ出力する、現時点のWZフレームについて割り当てる符号量を、後述する動作の項で説明するようにして計算するものである。
(A−2)実施形態の動作
次に、実施形態の動画像符号化装置100における動作を説明する。なお、動画像符号化装置100の前段において、入力原データはキーフレームとWZフレームに分けられて動画像符号化装置100に入力され、それぞれの符号化が行われる。キーフレームとWZフレームの符号化を並列的に実行しても良く、時間順次に実行しても良いが、以下では、キーフレームとWZフレームを交互に符号化する場合を例に説明する。図2は、この場合の処理の流れを示すフローチャートである。図2は、新たなキーフレーム画像が動画像符号化装置100に入力されたときからの処理を示している。
まず、キーフレーム符号化部101において、キーフレーム画像を符号化する(ステップS101)。この符号化方法として、JPEG、MPEGなど任意の符号化方法を適用できる。
キーフレーム符号化部101の符号化で得られた符号化データは、サイドインフォメーション生成部103へ与えられると共に復号装置側へ送信される(ステップS102)。
サイドインフォメーション生成部103は、キーフレーム符号化部101から与えられたキーフレームの符号化データを局部復号してキーフレームに戻し、予め、定められている時間関係のキーフレームの局部復号データを適用して、符号化対象のWZフレームについての予測画像を生成し、生成されたWZフレームの予測画像を変換係数領域に変換した後、周波数領域の成分毎に量子化し、その量子化値をビット列コードに変換した後、同一ビット位置毎のビットを集めたビットプレーンへ分割する(ステップS103)。予測画像の生成方法としては、複数のキーフレームの局部復号データを適用し、時間関係を考慮して内挿又は外挿するなど、任意の方法を適用できる。なお、WZフレームの予測画像の生成に、動き推定や動き補償などの手法を適用しても良いが、DVC方式は、演算量の少ない符号化方式という特長を有しているので、予測画像の生成に簡易な方法を適用することが好ましい。また、上記では、WZフレームの予測画像の生成に、キーフレームの局部復号データを適用するように説明したが、予測画像の生成に用いる一部又は全てのキーフレームのデータが、動画像符号化装置100に入力されたキーフレームのデータそのものであっても良い。
キーフレーム画像の次のWZフレーム画像が動画像符号化装置100に入力されると、変換・量子化部104は、WZフレーム画像を変換係数領域に変換した後、周波数領域における成分毎に量子化し、その量子化値をビット列コードに変換した後、同一ビット位置毎のビットを集めたビットプレーンヘ分割し、符号量制御部109及びSlepian−Wolf符号化部110へ入力する(ステップS104)。
これ以降、分割されたビットプレーン単位での処理が実施される(ステップS105〜S110)。
新たなビットプレーンが処理対象のビットプレーンになると、処理対象のビットプレーンが最上位ビットプレーンか否か判断される(ステップS105)。
処理対象のビットプレーンが最上位ビットプレーン以外であると、サイドインフォメーション更新部105は、処理対象のビットプレーンのサイドインフォメーションを見直し、適宜更新する(ステップS106)。この更新方法については、後述する。
処理対象のビットプレーンが最上位ビットプレーンであると判断された場合、若しくは、処理対象のビットプレーンが最上位ビットプレーン以外であってサイドインフォメーションの見直し、更新が実行された場合には、予測誤り箇所特定部106は、ビットプレーン毎のサイドインフォメーションの予測誤り箇所を特定すると共に誤り数を計数する(ステップS107)。予測誤り箇所特定部106が予測誤り箇所を特定するサイドインフォメーションは、処理対象のビットプレーンが最上位ビットプレーンの場合には、サイドインフォメーション更新部105によって見直し、更新処理がなされないため、サイドインフォメーション生成部103の出力であり、処理対象のビットプレーンが最上位ビットプレーン以外のビットプレーンである場合(上位側から数えて2ビット目以降のビットプレーン)は、サイドインフォメーション更新部105の出力である。以下では、上位側から数えてXビット目のビットプレーンを「Xビットプレーン目」と呼ぶこととする。
予測誤り箇所特定部106は、例えば、サイドインフォメーション生成部103若しくはサイドインフォメーション更新部105から出力されたWZフレームの予測画像についてのビットプレーンを、変換・量子化部104から出力されたWZフレームの原画像についてのビットプレーンと照合し、両ビットプレーンで値が異なる箇所を予測誤り箇所とし、予測誤り箇所の数を誤り数として計数する。
次に、符号量割当部107は、WZフレームの原画像についてのビットプレーンに対する、WZフレームの予測画像についてのビットプレーンの精度を反映させた、必要な符号量を割当て、Slepian−Wolf符号化部110へ出力する(ステップS108)。符号量割当部107は、例えば、予測誤り箇所特定部106で求められた誤り数からエントロピーを求め、求められたエントロピーに見合ったビット数を必要な符号量として割り当てる。ここで、エントロピーを計算するとその結果は何ビット(小数のこともあり得る)という形で得られ、この数より大きいこの数に近い量子化値のビット数を必要な符号量として割り当てる。また例えば、誤り数を符号量に変換する変換テーブルを、ビットプレーンの桁毎に用意しておき、符号量を得るようにしても良い。
必要な符号量が割り当てられると、Slepian−Wolf符号化部110は、変換・量子化部104からの出力(処理対象のビットプレーン)に対して符号化を行い、符号量割当部107で割り当てられた符号量分の誤り訂正符号を復号装置側へ送信する(ステップS109)。例えば、Slepian−Wolf符号化部110がターボ符号化部で構成されており、パリティビットがLDPC符号で構成されていた場合には、Slepian−Wolf符号化部110は、符号量(ビット数)分のシンドロームビットを送信することとなる。
Slepian−Wolf符号化部110が誤り訂正符号を送信すると、今まで(直近)の処理対象のビットプレーンが最下位ビットプレーンであるか否かを判別し(ステップS110)、最下位ビットプレーンでなければ上述したステップS105に戻り、最下位ビットプレーンであれば、図2に示す一連の処理を終了する。
図2は、キーフレームとWZフレームを交互に符号化する場合の例を示しているが、キーフレームの後に、2つのWZフレームを順次符号化する場合であれば、前のWZフレームの処理が終了したときには(ステップS110でYes)、ステップS103に戻り、後のWZフレームの予測画像の生成などに移行することになり、この後のWZフレームの処理が終わったステップS110の判断でYesとなったときに一連の処理を終了することとなる。キーフレーム間のWZフレームの数が3以上の場合も、同様な処理の流れとなる。逆に、複数のキーフレームを連続させた後に、1つのWZフレームを入力させるものであっても良く、この場合には、各キーフレームについてステップS101及びS102を繰り返した後に、WZフレームの処理に移行することとなる。
次に、サイドインフォメーション更新部105が実行するサイドインフォメーションの見直し、更新方法について説明する。
処理対象のビットプレーンが2ビットプレーン目以降の場合は、それまでに処理された上位のビットプレーン(例えば、処理対象のビットプレーンが2ビットプレーン目の場合は、1ビットプレーン目(最上位ビットプレーン))の処理結果を用いる。具体的には、それまでに処理されたいずれかの上位のビットプレーンに対して、予測誤り箇所特定部106で予測誤り箇所だと判定された場合は、処理対象のビットプレーンの該当箇所のビットを見直す。なお、この見直しによって、該当箇所のビットが更新されることもあれば、更新されずに同じ論理値を継続することもある。
例えば、量子化値が3ビットコードに変換される場合において、最上位のビットプレーンについて予測誤り箇所と判定された場合には、その箇所について、2ビットプレーン目及び最下位ビットプレーン(3ビットプレーン目)が処理対象となったときに共に、見直しが実行される。すなわち、最上位のビットプレーンについて予測誤り箇所と判定され、2ビットプレーン目について予測誤り箇所と判定されない場合であっても、最下位ビットプレーン(3ビットプレーン目)が処理対象となったときに、最上位のビットプレーンについて予測誤り箇所と判定された箇所について見直しが実行される。また例えば、最上位のビットプレーンについて予測誤り箇所と判定されていないが、2ビットプレーン目について予測誤り箇所と判定された場合には、その箇所について、最下位ビットプレーン(3ビットプレーン目)が処理対象となったときに見直しが実行される。
サイドインフォメーション更新部105は、見直しを実行する箇所の情報を記憶する記憶部を内蔵していることになり、実行する箇所として一旦記憶されると、処理対象のWZフレームが次のWZフレームに変更されるまで、その記憶は維持されるようになっている。
更新ルールは、予測誤り箇所特定部106でビットプレーンにおける予測誤り箇所(予測誤り成分)と判定された成分が、DC成分(周波数変換した場合の直流成分)であるか、AC成分(周波数変換した場合の交流成分)であるかで異なっている。
DC成分についての更新ルールは、「DC成分≒画素値なので、予測画像が誤っていたとしても、その近辺に正解がある可能性が高い」という考え方に基づいている。DC成分についての更新ルールは、元のサイドインフォメーション(元の量子化値)に近付けるように更新するというものである。
図3及び図4はそれぞれ、DC成分についての更新ルールの説明図である。図3及び図4は、サイドインフォメーション生成部103が、生成されたWZフレームの予測画像を変換係数領域(周波数領域)に変換し、周波数領域の成分毎に量子化し、その量子化値を3ビットコードに変換する場合を示している。DC成分の3ビットコードは、図3及び図4に示すように、最上位ビット、2ビット目及び最下位ビットからなる。DC成分の最上位ビットが各AC成分の最上位ビットと共に最上位ビットプレーンを構成し、DC成分の2ビット目が各AC成分の2ビット目と共に2ビット目ビットプレーンを構成し、DC成分の最下位ビットが各AC成分の最下位ビットと共に最下位ビットプレーンを構成する。
サイドインフォメーション生成部103が得たDC成分の量子化値「−2」を変換して得た3ビットコード(更新前のサイドインフォメーション)が図3に示すように「001」であったとする。予測誤り箇所特定部106が、変換・量子化部104からの出力に基づいて、図3に示すように、WZフレームの原信号から得たDC成分の最上位ビットが「1」であり、更新前のサイドインフォメーションの最上位ビット「0」が誤りであると推測したとする。そのため、サイドインフォメーション更新部105は、2ビットプレーン目や最下位ビットプレーンが処理対象のビットプレーンとなったときに、DC成分を見直す。最上位ビットが「1」である3ビットコードの中で、サイドインフォメーション生成部103からの「001」(=「−2」)に最も近いコードは「111」(=「1」)である。サイドインフォメーション更新部105は、2ビットプレーン目が処理対象のビットプレーンとなったときには、DC成分の2ビット目を「0」から「1」へ更新し、最下位ビットプレーンが処理対象のビットプレーンとなったときには、見直すが、DC成分の最下位ビットの「1」を維持する。
なお、2ビットプレーン目が処理対象のビットプレーンとなったときには、最下位ビットプレーン(3ビットプレーン目)のビットの値は分からないが、元のサイドインフォメーション(元の量子化値)に近付けるように2ビット目を更新することとなる。
ここで、サイドインフォメーションの誤りであると推測された最上位ビット「0」は更新されない。当該Wyner−Zivフレーム符号化部102では、WZフレーム画像からの情報との比較で、推測誤りを捉えている。一方、図示しないWyner−Zivフレーム復号部では、例えば、訂正前の情報(復号部で形成したサイドインフォメーション)と訂正後の情報とで誤りがあったか否か判別することができる。すなわち、復号部では、推測誤りの最上位ビットの「0」が「1」に訂正されると捉えて良い。そのため、当該Wyner−Zivフレーム符号化部102においても、推測誤りの最上位ビットが「0」から「1」に訂正されたとして、2ビット目以降のサイドインフォメーションを、元のサイドインフォメーション(元の量子化値)に近付けるように更新する。図3は、このような考え方に従い、訂正されたと仮定した最上位ビット「1」を適用し、2ビット目以降の更新値を示している。
また、サイドインフォメーション生成部103が得たDC成分の量子化値「−2」を変換して得た3ビットコード(更新前のサイドインフォメーション)が図4に示すように「001」であったとする。予測誤り箇所特定部106が、変換・量子化部104からの出力に基づいて、図4に示すように、WZフレームの原信号から得たDC成分の2ビット目が「1」であり、更新前のサイドインフォメーションの2ビット目「0」が誤りであると推測したとする(但し、最上位ビットの一致は確認済)。そのため、サイドインフォメーション更新部105は、最下位ビットプレーンが処理対象のビットプレーンとなったときに、DC成分を見直す。上位2ビットが「01」である3ビットコードの中で、サイドインフォメーション生成部103からの「001」(=「−2」)に最も近いコードは「010」(=「−1」)である。サイドインフォメーション更新部105は、最下位ビットプレーンが処理対象のビットプレーンとなったときには、DC成分の最下位ビットを「1」から「0」へ更新する。
AC成分についての更新ルールは、「AC成分は、0(中央値)中心に信号値が分布しているので、サイドインフォメーションの更新は量子化値を「0」に近付けるようにした方が、正しい可能性が高い」という考え方に基づいている。すなわち、AC成分についての更新ルールは、量子化値を「0」に近付けるように更新するというものである。
図5は、AC成分についての更新ルールの説明図である。図5も、サイドインフォメーション生成部103が、生成されたWZフレームの予測画像を変換係数領域(周波数領域)に変換し、周波数領域の成分毎に量子化し、その量子化値をビット列表記に変換した場合において、量子化値を3ビットコードに変換する場合を示している。
サイドインフォメーション生成部103が得たAC成分の量子化値「4」を変換して得た3ビットコード(更新前のサイドインフォメーション)が図5に示すように「100」であったとする。予測誤り箇所特定部106が、変換・量子化部104からの出力に基づいて、図5に示すように、WZフレームの原信号から得たAC成分の2ビット目が「1」であり、更新前のサイドインフォメーションの2ビット目「0」が誤りであると推測したとする(但し、最上位ビットの一致は確認済)。そのため、サイドインフォメーション更新部105は、最下位ビットプレーンが処理対象のビットプレーンとなったときに、AC成分を見直す。上位2ビットが「11」である3ビットコードの中で、量子化値が「0」に最も近いコードは「111」(=「1」)である。サイドインフォメーション更新部105は、最下位ビットプレーンが処理対象のビットプレーンとなったときには、AC成分の最下位ビットを「0」から「1」へ更新する。
図3〜図5はそれぞれ、見方を変えれば、量子化値「−3」〜「4」を3ビットコード「000」〜「100」へ変換する対応表(以下、マッピングテーブルと呼ぶ)をも表している。この実施形態の場合、新規なマッピングテーブルを適用している。なお、既存のマッピングテーブルとしては、量子化値の最小値にオール0を割当ると共に、最大値にオール1を割当て、その間の量子化値については1大きくなる毎に2進数で次の値になるようなマッピングテーブルや、量子化値が1違うといずれかの1つの桁のビット値だけを変化させるマッピングテーブル(いわゆるグレイコード)などがある。
この実施形態のマッピングテーブルは、量子化値が「0」に近いほど3ビットコードにおいて「1」をとるビットが多くなり、かつ、「1」をとるビットの数が同じ場合には「0」に近い量子化値ほど上位桁のビットが「1」をとるようなマッピングテーブルとなっている。なお、図6は、実施形態の考え方に従っている、量子化値を4ビットコードに変換するとした場合のマッピングテーブルを示す説明図である。図3及び図6から明らかなように、量子化値を3ビットコードや4ビットコードに変換する場合に、上述した考え方に従ったマッピングテーブルを構成でき、図示は省略するが、量子化値を5ビット以上のコードに変換する場合にも、上述した考え方に従ったマッピングテーブルを構成することができる。
このようなマッピングテーブルは、「量子化値を「0」に近付けるように更新する」というサイドインフォメーションのAC成分についての更新ルールを考慮したものである。因みに、WZフレームの予測画像や原画像を変換係数領域に変換すると、DC成分は1つである一方、AC成分は多数存在するので、AC成分についての更新ルールを考慮することは重要である。
図7(A)及び(B)は、この実施形態のマッピングテーブルを適用することによる効果の説明図である。
図7(A)は、最初に生成したAC成分のサイドインフォメーションが量子化値「−2」(3ビットコード「001」)である場合を示しており、最上位ビットが本来「1」であることを予測誤り箇所特定部106が検出したとする。この場合、最上位ビットが「1」である中で量子化値が最も0に近い値に更新する必要がある。最上位ビットが「1」である中で量子化値が最も0に近い3ビットコードは「111」である。すなわち、誤りが判明した最上位ビット以外のビットは全て「1」にすれば良い。図7(B)は、最初に生成したAC成分のサイドインフォメーションが量子化値「4」(3ビットコード「100」)である場合を示しており、最上位ビットが本来「0」であることを予測誤り箇所特定部106が検出したとする。この場合、最上位ビットが「0」である中で量子化値が最も0に近い値に更新する必要がある。最上位ビットが「0」である中で量子化値が最も0に近い3ビットコードは「011」である。すなわち、誤りが判明した最上位ビット以外のビットは全て「1」にすれば良い。仮に、最上位ビットより下位桁のビットで誤りが初めて判明した場合も、サイドインフォメーションの更新では、誤りが判明した桁より下位のビットの値を全て「1」にすれば良い。
上述のようにマッピングテーブルを構成することにより、上位ビットのサイドインフォメーションに予測誤りがあった場合には、それより下位のビット全てを一律に「1」に更新すれば良く、下位ビットの更新処理が容易になる。
なお、図3〜図5、図7に示したマッピングテーブルに代え、そのマッピングテーブルにおける最上位ビットの「1」及び「0」だけをそれぞれ、逆の論理値「0」、「1」に置き換えたマッピングテーブルを適用しても良く、この場合には、上位ビットのサイドインフォメーションに予測誤りがあった場合には、それより下位のビット全てを一律に「1」に更新すれば良く、この場合も、下位ビットの更新処理が容易になるという効果が得られる。
また、図3〜図5、図7に示したマッピングテーブルに代え、そのマッピングテーブルにおける「1」及び「0」をそれぞれ、「0」、「1」に置き換えたマッピングテーブルを適用しても良く、この場合には、上位ビットのサイドインフォメーションに予測誤りがあった場合には、それより下位のビット全てを一律に「0」に更新すれば良く、この場合も、下位ビットの更新処理が容易になるという効果が得られる。
(A−3)実施形態の効果
上記実施形態によれば、量子化値をビット列に正しく変換できる、仮に誤りが生じてもその影響を最小限に留めることができる整数/ビット列変換装置を実現できる。
このような整数/ビット列変換装置を適用していることも相俟って、実施形態の動画像符号化装置や符号量制御装置は、以下のような効果を奏する。
実施形態の装置によれば、サイドインフォメーション更新部105を設けて、サイドインフォメーション生成部103において形成されたサイドインフォメーションを、WZフレームの予測画像と原画像との一致不一致に応じて更新し、更新後のサイドインフォメーションを適用して、復号器側に与える誤り訂正符号の符号量を定めるようにしたので、復号器側に与える誤り訂正符号の符号量が過剰となることを防止できる。すなわち、圧縮率を高めることができる。
ここで、サイドインフォメーション更新部105による処理は、DC成分であれば、元の量子化値に近付くように更新し、AC成分であれば、量子化値が0に近付くように更新するという簡単な処理であり、ソフトウェアで実現すればステップ数を少なく抑えることができ、ハードウェアで実現すれば規模を抑えることができる。特に、実施形態のようなマッピングテーブルを適用した場合・BR>ノは、かかる処理の容易化の効果は大きい。
サイドインフォメーション更新部105の更新を考慮すると、WZフレームの予測画像に対する要求精度はシビアではなく、WZフレームの予測画像の生成に、動き探索、動き補償など処理量の多い仕組みを適用しないようにすることもできる。
(B)他の実施形態
上記実施形態の動画像符号化装置から、対向する動画像復号装置間の通信路は、狭義の通信路に限定されるものではなく、広義の通信路であって良い。すなわち、リアルタイムの通信だけでなく、動画像符号化装置が符号化したデータを記録媒体に記録し、動画像復号装置が記録媒体から読み出したデータを処理するものであっても良い。
また、Slepian−Wolf符号化の具体例として、Turbo符号、LDPC符号を用いて説明したが、他の誤り訂正符号を用いても良いことは勿論である。
さらに、上記実施形態では、WZフレームの予測画像や原画像に対して変換係数領域(周波数領域)に変換して処理するものを示したが、周波数領域に変換することなく、画素領域のまま処理する場合にも、本発明の技術思想を適用することができる。例えば、画素値を量子化した後、所定のビット列コードに変換し、ビットプレーンを構成して処理する。この場合におけるサイドインフォメーション更新部の更新ルールとしては、例えば、「予測画像が誤っていたとしても、その近辺に正解がある可能性が高い」という考え方に基づき、元のサイドインフォメーション(元の量子化値)に近付けるように更新するというものを適用できる。