(A)第1の実施形態
以下、本発明による動画像符号化装置及びプログラム、並びに、動画像配信システムの第1の実施形態を、図面を参照しながら詳述する。
(A−1)第1の実施形態の構成
図2は、この実施形態の動画像配信システム10の全体構成を示すブロック図である。なお、図2において括弧内の符号は、後述する第2〜第4の実施形態の説明において用いられるものである。
動画像配信システム10は、動画像配信装置10及び動画像受信装置20を有している。動画像配信装置10は、動画像符号化装置100を有しており、動画像符号化装置100により入力された映像信号を符号化して動画像データを生成し、図示しない通信部により動画像受信装置20に向けて送出する。
動画像符号化装置100に対して入力される映像信号は、この実施形態においては、フレーム単位の映像信号(例えば、CCDカメラから入力される映像信号等)の列(以下、「入力シーケンス」という)を適用するものとして説明する。その他にも、動画像符号化装置100に、ビデオカメラ等によるアナログ形式の映像信号を入力して、動画像符号化装置100がフレーム単位の画像データに変換するキャプチャを別途備えるようにしても良い。このように、動画像符号化装置100に対して入力される映像信号の形式は限定されないものである。
図1は、動画像符号化装置100内部の機能的構成について示したブロック図である。
動画像符号化装置100は、例えば、CPU、ROM、RAM、EEPROM、ハードディスクなどのプログラムの実行構成に、実施形態の動画像符号化プログラムをインストールすることにより構築するようにしても良いが、その場合でも、機能的には、図1のように表すことができる。また、動画像配信装置10は、例えば、ハードウェア的な通信部の他は、通信処理やデータ処理等を実行するためのCPU、ROM、RAM等を有しており、CPUが実行するプログラム(実施形態の動画像符号化プログラムを含む)をインストールすることにより構築しても良く、上述したプログラムを含め、動画像配信装置10の機能的構成を示すと図1に示すようになる。
動画像受信装置20は、動画像復号化装置200を有しており、動画像配信装置10から送信された動画像データを受信し、動画像復号化装置200により、受信した符号化された動画像データを復号化して、動画像の信号を生成して所定の出力(例えば、ディスプレイへの出力や、復号化した動画像データの記憶媒体への書き込み等、出力方法限定されないものである)を行う。
動画像受信装置20(動画像復号化装置200)については、既存の動画像配信システムにおける受信装置(例えば、非特許文献2における復号化方式を適用したもの)と同様のものを適用することができるので、ここでは詳しい説明は省略する。
次に、動画像符号化装置100の構成の詳細について説明する。
動画像符号化装置100は、Wyner−Zivフレーム符号化部110及びキーフレーム符号化部160を有している。動画像符号化装置100では、映像信号として入力されるフレームを、Wyner−Zivフレーム(非キーフレーム)、キーフレームのいずれかに分類して符号化し、Wyner−ZivフレームはWyner−Zivフレーム符号化部110により符号化され、キーフレームはキーフレーム符号化部160に符号化されて、それぞれ動画像受信装置20に符号化した動画像データを送信する。
Wyner−Zivフレームとキーフレームを分類する方法としては、例えば、フレームの順序に応じて決定するようにしても良い。動画像符号化装置100では、入力シーケンスの1番目のフレームをキーフレームとして分類し、2番目のフレームをWyner−Zivフレームに分類するといった動作を繰り返して、入力シーケンスのフレームを交互にキーフレーム又はWyner−Zivフレームのいずれかに分類するものとする。なお、動画像符号化装置100において、入力シーケンスのフレームを分類する順序は限定されるものではなく、例えば、連続して同一種類のフレーム(Wyner−Zivフレーム又はキーフレーム)として分類するようにしても良い。また、Wyner−Zivフレームとキーフレームを分類する方法は、既存のDVC方式を利用した動画像符号化装置と同様の方法を適用することができる。
キーフレーム符号化部160は、入力シーケンスからキーフレームを得て、既存の符号化方式(例えば、非特許文献1などと同じくJPEGやMPEGのIフレームのようなフレーム内符号化)で符号化を行い、動画像受信装置20側へ符号化データを送信する。
DVCのフレームワークにおいては、入力されたWyner−Zivフレームを符号化する際に画素領域で処理を行う方法や、DCTなどの変換を行い、変換係数領域で処理を行う方法がある。ここでは、動画像符号化装置100は、非特許文献1と同じく、変換を行い変換計数領域で処理を行う方法で説明を行う例について説明するが、他の方式を用いるようにしても良い。
Wyner−Zivフレーム符号化部110は、量子化部120、Slepian−Wolf符号化部130、送信符号量推定部140及びSide Information生成部150を有している。
量子化部120は、入力シーケンスからWyner−Zivフレームを得て、変換・量子化しビットプレーン単位へ分割して、Slepian−Wolf符号化部130及び送信符号量推定部140に与える。
Side Information生成部150は、Wyner−Zivフレームの前、もしくは後ろ、もしくは前後のキーフレーム画像に基づいて、Wyner−Zivフレーム画像の予測画像を生成し、変換・量子化し、ビットプレーンへ分割する。
送信符号量推定部140は、入力されたビットプレーンに対して、入力フレームである原画像とSide Information生成部150で生成される予測画像を利用して、予測誤りが訂正できる符号量の推定を行う。なお、送信符号量推定部140の詳細については後述する。
Slepian−Wolf符号化部130は、量子化部120から入力された各ビットプレーンに対し、例えば、Turbo符号やLDPC符号等を用いて、Slepian−Wolf符号化を行い、送信符号量推定部140で計算された符号量に応じた誤り訂正符号を受信側に与える。
次に、送信符号量推定部140の構成について説明する。
送信符号量推定部140は、分布モデルエントロピー計算部141、ビット誤りエントロピー計算部142、選択部143、符号化量計算部144を有している。なお、送信符号量推定部140の各部の処理については、後述する動作説明において詳述する。
分布モデルエントロピー計算部141は、量子化部120で得られたWyner−Zivフレームの原画像のビットプレーンと、これに対応する予測画像の変換係数をSide Information生成部150から得て、分布モデルを利用してビットプレーン中の各ビットの誤り確率を推定したのち、その誤りに係るエントロピーを計算する。
ビット誤りエントロピー計算部142は、量子化部で得られたWyner−Zivフレームの原画像のビットプレーンと、これに対応する予測画像のビットプレーンをSide Information生成部150から得て、異なり(誤り)を計測することにより、その誤りに係るエントロピーを計算する。
選択部143は、分布モデルエントロピー計算部141から得られる分布モデルを用いたエントロピーと、ビット誤りエントロピー計算部142から得られる原画像と予測画像の間の誤りから得たエントロピーを比較することで、どちらのエントロピーを符号量の計算に用いるかを選択する。
符号化量計算部144は、選択部143で選択されたエントロピーを用いて送信符号量を計算する。
(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態の動画像配信システム1の動作、特に動画像符号化装置100の動作を中心に説明する。
入力シーケンスはキーフレームとWyner−Zivフレームに分けられ、それぞれの符号化・復号が行われる。ここでは、入力シーケンスをキーフレームとWyner−Zivフレームを交互に符号化する例について説明を行う。
動画像符号化装置100では、入力シーケンスの1フレーム目はキーフレームとして符号化が行われる。1フレーム目は、キーフレーム符号化部160において、非特許文献1などと同じくJPEGやMPEGのIフレームのようなフレーム内符号化がおこなわれ、受信側に与えられる。次に、2フレーム目はWyner−Zivフレームとして、Wyner−Zivフレーム符号化部110により符号化が行われる。ここでは、この2フレーム目のデータが、Wyner−Zivフレーム符号化部110により符号化される場合を例として、Wyner−Zivフレーム符号化部110の動作について説明する。
図3〜5は、Wyner−Zivフレーム符号化部110の動作について示したフローチャートである。
まず、入力シーケンスから2フレーム目の原画像データが量子化部120に取り込まれたものとする(S301)。
次に、量子化部120により、ステップS301で取り込まれた2フレーム目の原画像が変換係数領域に変換(DCT)され、帯域ごとに量子化される(S302)。なお、ステップS302では、各帯域の量子化された変換係数を2値化し、ビットプレーンヘ分割する。帯域毎にビットプレーン化する際に、1フレーム全体の長さでビットプレーンヘ分割してもよいし、画面内の領域ごと、といった形でグループ化した長さで区切り、ビットプレーンヘ分割してもよい。
そして、キーフレーム符号化部160から前または後、または両方のキーフレーム画像がSide Information生成部150に入力される(S303)。
次に、Side Information生成部150において2フレーム目(Wyner−Zivフレーム)の予測画像が生成される(S304)。ステップS304における予測画像の生成には、前のキーフレームを利用する方法や、前後のキーフレーム画像の平均を取るなどの方法や、範囲の絞った動き探索などの方法を適用することができる。
次に、Side Information生成部150において生成した予測画像に対して、変換・量子化が行われ、ビットプレーンに分割される(S305)。ステップS305では、このときのビットプレーンの長さは量子化部120と同様の分割方法で行われる。
そして、量子化部120から1フレーム分の原画像の変換係数が分布モデルエントロピー計算郡105へ入力される(S306)。なお、以降のステップの処理により、分布モデルエントロピー計算部141では、原画像と予測画像の変換係数の差分の分布はラプラス分布で近似できるという性質を用いて、原画像と予測画像の間の予測誤りの推定が行われ、エントロピーが計算される。
次に、Side Information生成部150から1フレーム分の予測画像の変換係数が分布モデルエントロピー計算部141へ入力される(S307)。
次に、分布モデルエントロピー計算部141にて、帯域ごとにラプラス分布の分布パラメータαが計算される(S308)。ラプラス分布の分布パラメータαと分散σ
2には以下の(1)式の関係がある。ここでは、平均(差分)が0である分布を仮定し、原画像の係数値をX、予測画像の係数値を、ビットプレーンの長さをNとすると、分散σ
2は以下の(2)式のように計算できる。
次に、量子化部120から原画像のビットプレーンが分布モデルエントロピー計算部141へ入力される(S309)。
次に、Side Information生成部150から予測画像のビットプレーンが分布モデルエントロピー計算部141へ入力される(S310)。
次に、分布モデルエントロピー計算部141にて、分布モデルを用いた誤り確率の計算が行われる(S311)。
ステップS311では、原画像のある係数値の確率変数をX、予測画像の係数の確率変数をYとすると、予測画像の係数値の分布は、分布モデルエントロピー計算部141において、以下の(3)式のように表すことができる。ここで、分布モデルエントロピー計算部141では、入力されたピットプレーンのうちのある1ビット(nビット目)に注目し、予測画像と原画像とで異なり(誤り)が生じる確率を計算される。また、入力されたビットプレーンが上位からjビットプレーン目であるとするとき、jビットプレーン目の原画像のビットと予測画像のビットが異なる確率P
rが、以下の(4)式により求められる。そして、これをビットプレーンで平均することで、平均誤り確率P
eが、以下の(5)式により求められる。
次に、分布モデルエントロピー計算部141では、平均誤り確率からエントロピーが以下の(6)式により計算される(S312)。ここでは、平均誤り確率Peを二元対称通信路による誤りとして考えると、その誤りを訂正する符号量はエントロピーを求めることにより求められる。ここで求めたエントロピーを、ここでは「分布モデルエントロピー」と呼ぶものとする。
H(Pe)=−Pelog(Pe)−(1−Pe)log(1−Pe)…(6)
次に、分布モデルエントロピー計算部141で計算した分布モデルエントロピーが選択部143へ入力される(S313)。
分布モデルエントロピー計算部141で計算した分布モデルエントロピーでは予測画像に分布モデルの想定できる誤りよりも大きな誤りが起こった場合は、復号に必要な符号量が得られないことがある。そこで、以降のステップの処理では、ビット誤りエントロピー計算部142において、分布モデルとは異なる尺度で誤り率が計算され、エントロピーが計算される。
まず、量子化部120から原画像データのビットプレーンが、ビット誤りエントロピー計算部142へ入力される(S314)。
そして、Side Information生成部150から予測画像のビットプレーンがビット誤りエントロピー計算部142へ入力される(S315)。
次に、ビット誤りエントロピー計算部142では、原画像と予測画像が比較され、誤り数eを得て、これを元にエントロピーが計算される。得られたeをビットプレーン長Nで割ることで、ビット誤り率errが得られる(err=e/N)(S316)。ビット誤りエントロピー計算部142では、ここで得られたビット誤り率からエントロピーH(err)が以下の(7)式により計算される。ここでは、このエントロピーH(err)を「ビット誤りエントロピー」と呼ぶものとする。
H(err)=−errlog(err)−(1−err)log(1−err)…(7)
次に、ビット誤りエントロピー計算部142で得られたビット誤りエントロピーが選択部143へ入力される(S317)。
そして、選択部143において入力された分布モデルエントロピーH(Pe)とビット誤りエントロピーH(err)の比較により、分布モデルエントロピーで復号可能かが判定され、分布モデルエントロピーで復号可能な場合は分布モデルエントロピーが選択され、そうでない場合はビット誤りエントロピーが選択される(S318)。
分布モデルエントロピーは、分布による近似から得られた誤りを訂正するのに必要な量、つまり、モデルから得られる平均的な誤りを訂正するのに必要な情報量と考えられる。一方、ビット誤りエントロピーは実際の原画像とエンコーダで生成した予測画像から得られた誤り量を復号するのに必要な情報量であると考えられる。ビット誤りエントロピーのほうが分布モデルエントロピーよりも大きい値を示す場合は、分布の想定する平均的な誤り量よりも、実際に生じた誤りが大きいと考えることができる。この場合、分布モデルエントロピーから得られる符号量では誤りが訂正できないと考えられる。この判定には、単純に大小関係を比較し、以下の(8)式の関係が成り立つ場合は、分布モデルエントロピーでは誤りを訂正するのに必要な符号量が得られないと判定し、ビット誤りエントロピーを送信符号量の計算に用いるエントロピーに選択する。また、これ満たさない場合は、選択部143では、分布モデルエントロピーを送信符号量の計算に用いるエントロピーとし、これを選択する。このような判定の計算方法は、これに限らず、両者の関係に閾値を与えて比較を行ってもよい。たとえば、以下の(9)式のように、両者の差に閾値tを設け判定を行ってもよいし、以下の(10)式でのように、両者の比に閾値tを設け判定を行ってもよい。このとき、閾値tは固定値でもよいし、上位ビットプレーンであるほど、復号画質に与える影響が大きいため、ビットプレーン毎に値を変えることで判定の条件を変えてもよい。
H(Pe)<H(err) …(8)
H(err)−H(pe)>t …(9)
H(Pe)/H(err)>t …(10)
次に、選択部143で選択したエントロピーが符号化量計算部144へ入力される(S319)。
次に、符号化量計算部144において、入力された情報量から符号量が計算される(S320)。
エントロピーを計算することによって得られる符号量は理論値であり、Turbo復号やLDPC復号といったSlepian−Wolf復号の性能によっては理論値以上の符号量が必要となる場合があるため、補正を行い、送信する符号量が得られる。補正方法は、非特許文献2にあるように、あらかじめ多量のシーケンスを符号化・復号し、エントロピーと復号結果との関係を観測し、その関係を利用した補正を行ってもよいし、エントロピーに対して補正項kを加えてもよい。このときkは固定の値であってもよいし、ビットプレーン毎に変わる値をとるなどの変動値であってもよい。また、補正方法は、入力されたエントロピーが分布モデルエントロピーかビット誤りエントロピーかによって変えてもよい。
次に、符号化量計算部144により、計算した送信符号量がSlepian−Wolf符号化部130へ入力される(S321)。
そして、量子化部120から符号化を行うビットプレーンがSlepian−Wolf符号化部130へ入力されると(S322)、Slepian−Wolf符号化部130では、入力されたピットプレーンがSlepian−Wolf符号化される(S323)。
次に、Slepian−Wolf符号化部130により、Slepian−Wolf符号化されたビットプレーンについて、送信符号量推定部140で得られた符号量に応じた符号量が、受信側へ送信される(S324)。
次に、Wyner−Zivフレーム符号化部110では、1フレームの全てのビットプレーンを処理したか否かが判定され(S325)、全てのビットプレーンの処理が完了した場合には当該フレームに係る処理を終了し、そうでない場合には、上述のステップS309の処理に戻って動作する。
(A−3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
動画像符号化装置100では、分布モデルエントロピー計算部141、及び、ビット誤りエントロピー計算部142を設け、選択部143により、複数の計算結果を比較して最適な計算結果を選択し、その選択した計算結果を用いて送信符号量を決定しているので、一つの計算方法(例えば、従来の分布モデルを用いた計算方法)だけでは予測できない誤りが生じた場合に対しても、復号に必要な符号量を得ることができる。そのため、復号側で誤りが訂正できないと判定される頻度が少なくなり、符号化されたデータの品質を向上させ、送信した誤り訂正符号を有効に利用することができる。
(B)第2の実施形態
以下、本発明による動画像符号化装置及びプログラム、並びに、動画像配信システムの第2の実施形態を、図面を参照しながら詳述する。
(B−1)第2の実施形態の構成
第2の実施形態の動画像配信システム1Aの全体構成も図1を用いて説明することができる。
第2の実施形態の動画像配信システム1Aは、動画像配信装置10A及び動画像受信装置20を有している。動画像受信装置20は、第1の実施形態と同様のものであるので詳しい説明を省略する。また、動画像配信装置10Aは、動画像符号化装置100Aを有している。
図6は、動画像符号化装置100A内部の機能的構成について示した説明図である。
動画像符号化装置100Aは、第1の実施形態のWyner−Zivフレーム符号化部110がWyner−Zivフレーム符号化部110Aに置き換わっただけであるので、その他の構成については詳しい説明を省略する。そして、Wyner−Zivフレーム符号化部110Aは、送信符号量推定部140が、送信符号量推定部140Aに置き換わっただけであるので、それ以外の構成について詳しい説明は省略する。
送信符号量推定部140Aは、分布モデル誤り計算部145、ビット誤り計算部146、選択部143A、符号化量計算部144を有している。
分布モデル誤り計算部145は、量子化部120で得られたWyner−Zivフレームの原画像のビットプレーンと、これに対応する予測画像の変換係数をSide Information生成部150から得、分布モデルを利用してビットプレーン中の各ビットの誤り確率を計算する。
ビット誤り計算部146は、量子化部で得られたWyner−Zivフレームの原画像のビットプレーンと、これに対応する予測画像のビットプレーンをSide Information生成部150から得て、異なり(誤り)を計測し、誤り率を計算する。
選択部143Aは、分布モデル誤り計算部145から得られる分布モデルを用いた誤り確率と、ビット誤り計算部146から得られる原画像と予測画像の間の異なりから得た誤り率を比較し、それぞれの誤りから得られるエントロピーのうち、どちらのエントロピーであれば復号可能な符号量を得られるかを判定し、選択された誤り率からエントロピーを計算する。
符号化量計算部144は、選択部143Aで選択されたエントロピーを用いて送信符号量を計算する。
(B−2)第2の実施形態の動作
次に、以上のような構成を有する第2の実施形態の動画像配信システム1Aの動作、特に動画像符号化装置100Aの動作を中心に説明する。
第1の実施形態と同様に、入力シーケンスはキーフレームとWyner−Zivフレームに分けられ、それぞれの符号化・復号が行われ、入力シーケンスをキーフレームとWyner−Zivフレームを交互に符号化する例について説明を行う。そして、動画像符号化装置100Aでは、第1の実施形態と同様に、入力シーケンスの1フレーム目はキーフレームとして符号化が行われ、2フレーム目はWyner−Zivフレームとして、Wyner−Zivフレーム符号化部110Aにより符号化が行われる。ここでは、この2フレーム目のデータが、Wyner−Zivフレーム符号化部110Aにより符号化される場合を例として、Wyner−Zivフレーム符号化部110Aの動作について説明する。
図7〜9は、Wyner−Zivフレーム符号化部110Aの動作について示したフローチャートである。
まず、量子化部120で入力シーケンスを変換・量子化したのちビットプレーンヘ分割し、Side Information生成部150で、予測画像が生成される(S501〜S505)が、ステップS501〜S505動作は第1の実施例の動作におけるステップS301〜ステップS305と同様であるため、詳しい説明を省略する。
分布モデル誤り計算部145では、原画像と予測画像の変換係数の差分の分布はラプラス分布で近似できるという性質を用いて、原画像と予測画像の間の予測誤りの推定を行い、誤り確率を計算する。
そして、量子化部120から1フレーム分の原画像の変換係数が分布モデル誤り計算部145へ入力される(S506)。
次に、Side Information生成部150から1フレーム分の予測画像の変換係数が分布モデル誤り計算部145へ入力される(S507)。
次に、分布モデル誤り計算部145にて、帯域ごとにラプラス分布の分布パラメータαが計算される(S508)。ラプラス分布の分布パラメータαと分散σ2には、上述の通り上記の(1)式の関係がある。ここでは、平均(差分)が0である分布を仮定し、原画像の係数値をX、予測画像の係数値を、ビットプレーンの長さをNとすると、分散は上記の(2)式のように計算できる。
次に、量子化部120から原画像のビットプレーンが分布モデル誤り計算部145へ入力される(S509)。
次に、Side Information生成部150から予測画像のビットプレーンが分布モデル誤り計算部145へ入力される(S510)。
次に、分布モデル誤り計算部145にて、分布モデルを用いた誤り確率の計算が行われる(S511)。
原画像のある係数値の確率変数をX、予測画像の係数の確率変数をYとすると、予測画像の係数値の分布は、第1の実施形態と同様に上記の(3)式で示される。ここで、入力されたビットプレーンのうちのある1ビット(nビット目)に注目し、予測画像と原画像とで異なり(誤り)が生じる確率が計算される。入力されたビットプレーンが上位からjビットプレーン目であるとするとき、jビットプレーン目の原画像のビットと予測画像のビットが異なる確率Prが、第1の実施形態と同様に上記の(4)式により求められる。これをビットプレーンで平均することで、平均誤り確率Peが、第1の実施形態と同様に上記の(5)式により求められる。ここで得た平均誤り確率Peを、ここでは、「分布モデル誤り率」と呼ぶものとする。
次に、分布モデル誤り計算部145で計算した分布モデル誤りが選択部143Aへ入力される(S512)。
そして、分布モデル誤り計算部145から計算できるエントロピーでは予測画像に分布モデルの想定できる誤りよりも大きな誤りが起こった場合は、復号に必要な符号量が得られないことがある。そこで、ビット誤り計算部146では、分布モデルとは異なる尺度で誤り率が計算される。
まず、量子化部120から原画像のビットプレーンがビット誤り計算部146へ入力される(S513)。
そして、Side Information生成部150から予測画像のビットプレーンがビット誤り計算部146へ入力される(S514)。
次に、ビット誤り計算部146では、原画像と予測画像を比較し、誤り数eを得て、ビットプレーン長Nで割ることで、ビット誤り率errが得られる(err=e/N)(S515)。
次に、ビット誤り率が、ビット誤り計算部146から選択部143Aへ入力される(S516)。
次に、選択部143Aにおいて入力された、分布モデル誤り率Peと、ビット誤り率errとの比較により、分布モデル誤りから得られるエントロピーで復号可能かが判定され、分布モデル誤りから得られるエントロピーで復号可能な場合は分布モデル誤りPeからエントロピーが計算され、そうでない場合は、ビット誤り率errからエントロピーが計算される(S517)。
分布モデルから得られる誤り確率は、分布による近似から得られた誤り、つまり、モデルから得られる平均的な誤りの確率と考えられる。一方、ビット誤り率は実際の原画像とエンコーダで生成した予測画像から得られた誤り量であるため、ビット誤り率のほうが分布モデル誤りよりも大きい値を示す場合は、分布の想定する平均的な誤り量よりも、実際に生じた誤りが大きいと考えることができる。この場合、分布モデル誤りから得たエントロピーで計算した符号量では誤りが訂正できないと考えられる。この判定には、大小関係を用いて、以下の(11)式の場合は、分布モデル誤りから得られたエントロピーでは復号可能な符号量が得られないと判定し、ビット誤りerrからエントロピーを計算するようにビット誤りerrを選択する。このような判定には上記のように大小関係を用いても、両者の関係に閾値を与えて比較を行ってもよい。たとえば、以下の(12)式のように、両者の差に閾値tを設け判定を行ってもよいし、以下の(13)式のように、両者の比にtを設け判定を行ってもよい。
Pe<err …(11)
err−Pe>t …(12)
Pe/err>t …(13)
このとき、閾値tは固定値でもよいし、上位ビットプレーンであるほど、復号画質に与える影響が大きいため、ビットプレーン毎に値を変えることで判定の条件を変えてもよい。
次に、選択された誤り率からエントロピーが計算される(S518)。ステップS517で得られた誤りをPとし、これを二元対称通信路による誤りとして考えると、その誤りを訂正する符号量は、以下の(14)式によりエントロピーH(P)を求めることにより求められる。
H(P)=−Plog(P)−(1−P)log(1−P)…(14)
次に、選択部143Aで得たエントロピーが符号量計算部208へ入力される(S519)。
次に、符号化量計算部144において、入力された情報量から符号量が計算される(S520)。
エントロピーを計算することによって得られる符号量は理論値であり、Turbo復号やLDPC復号といったSlepian−Wolf復号の性能によっては理論値以上の符号量が必要となる場合があるため、補正を行い、送信する符号量を得る。補正方法は、非特許文献2にあるように、あらかじめ多量のシーケンスを符号化・復号し、エントロピーと復号結果との関係を観測し、その関係を利用した補正を行ってもよいし、エントロピーに対して補正項kを加えてもよい。このときkは固定の値であってもよいし、ビットプレーン毎に変わる値をとるなどの変動値であってもよい。また、補正方法は、入力されたエントロピーが分布モデル誤りから得たエントロピーかビット誤りから得たエントロピーかによって変えてもよい。
次に、符号化量計算部144により、計算した送信符号量がSlepian−Wolf符号化部110へ入力される(S521)。
次に、量子化部120から符号化を行うビットプレーンがSlepian−Wolf符号化部110へ入力される(S522)。
次に、入力したビットプレーンがSlepian−Wolf符号化される(S523)。
次に、Slepian−Wolf符号化されたビットプレーンを送信符号量推定郡209で得られた符号量に応じた符号量を、動画像復号化装置200へ送信される(S524)。
次に、Wyner−Zivフレーム符号化部110Aでは、1フレームの全てのビットプレーンを処理したか否かが判定され(S525)、全てのビットプレーンの処理が完了した場合には当該フレームに係る処理を終了し、そうでない場合には、上述のステップS509の処理に戻って動作する。
(B−3)第2の実施形態の効果
第2の実施形態によれば、第1の実施形態の効果に加えて、以下のような効果を奏することができる。
動画像符号化装置100Aでは、分布モデル誤り計算部145とビット誤り計算部146が計算した誤り率を比較して、どちらの誤り率から得られるエントロピーであれば復号できる符号量が得られるかを判定し、選択された誤り率に対してのみエントロピーを計算するため、それぞれの誤りに対しエントロピーを計算する演算を行わないため、第1の実施形態と比較して符号化に係る処理量を軽減させることができる。
(C)第3の実施形態
以下、本発明による動画像符号化装置及びプログラム、並びに、動画像配信システムの第3の実施形態を、図面を参照しながら詳述する。
(C−1)第3の実施形態の構成
第3の実施形態の動画像配信システム1Bの全体構成も図2を用いて説明することができる。
第3の実施形態の動画像配信システム1Bは、動画像配信装置10B及び動画像受信装置20を有している。動画像受信装置20は、第1の実施形態と同様のものであるので詳しい説明を省略する。また、動画像配信装置10Bは、動画像符号化装置100Bを有している。
図10は、動画像符号化装置100Bの機能的構成について示したブロック図である。
動画像符号化装置100Bは、第1の実施形態のWyner−Zivフレーム符号化部110がWyner−Zivフレーム符号化部110Bに置き換わっただけであるので、その他の構成については詳しい説明を省略する。そして、Wyner−Zivフレーム符号化部110Bは、送信符号量推定部140が、送信符号量推定部140Bに置き換わっただけであるので、それ以外の構成について詳しい説明は省略する。
送信符号量推定部140Bは、分布モデルエントロピー計算部141、ビット誤りエントロピー計算部142、選択部143B、符号化量計算部144、判定テーブル147を有している。なお、分布モデルエントロピー計算部141、ビット誤りエントロピー計算部142、符号化量計算部144は、第1の実施形態と同様のものであるので詳しい説明を省略する。
判定テーブル147は、分布モデルエントロピー計算部141から得られるエントロピーと、ビット誤りエントロピー計算部142から得られる原画像と予測画像の間の異なりから得たエントロピーのうち、どちらのエントロピーであれば復号可能な符号量を得られるかを判定する計算をあらかじめ行っておき、その判定結果を保持するものである。
そして、選択部143Bは、判定テーブル147を参照し、分布モデルから得られるエントロピーと原画像と予測画像の異なりから得られるエントロピーのどちらを符号量の計算に用いるかを選択する点で、第1の実施形態のものと異なっている。
(C−2)第3の実施形態の動作
次に、以上のような構成を有する第3の実施形態の動画像配信システム1Bの動作、特に動画像符号化装置100Bの動作を中心に説明する。
第1の実施形態と同様に、入力シーケンスはキーフレームとWyner−Zivフレームに分けられ、それぞれの符号化・復号が行われ、入力シーケンスをキーフレームとWyner−Zivフレームを交互に符号化する例について説明を行う。そして、動画像符号化装置100Bでは、第1の実施形態と同様に、入力シーケンスの1フレーム目はキーフレームとして符号化が行われ、2フレーム目はWyner−Zivフレームとして、Wyner−Zivフレーム符号化部110Aにより符号化が行われる。ここでは、この2フレーム目のデータが、Wyner−Zivフレーム符号化部110Bにより符号化される場合を例として、Wyner−Zivフレーム符号化部110Bの動作について説明する。
図11〜13は、Wyner−Zivフレーム符号化部110Bの動作について示したフローチャートである。
まず、量子化部120で入力シーケンスを変換・量子化したのちビットプレーンヘ分割し、Side Information生成部150で予測画像が生成され、分布モデルエントロピー計算部141で分布モデルエントロピーが計算される(S701〜S712)が、ステップS701〜S712動作は第1の実施例の動作におけるステップS301〜ステップS312と同様であるため、詳しい説明を省略する。
そして、分布モデルエントロピー計算部141で計算した分布モデルエントロピーが選択部143Bへ入力される(S713)。
分布モデルエントロピー計算部141で計算した分布モデルエントロピーでは予測画像に分布モデルの想定できる誤りよりも大きな誤りが起こった場合は、復号に必要な符号量が得られないことがある。そこで、ビット誤りエントロピー計算部142において、分布モデルとは異なる尺度で誤り率を計算し、エントロピーを計算する。
まず、量子化部120から原画像のビットプレーンがビット誤りエントロピー計算部142へ入力される(S714)。
そして、Side Information生成部150から予測画像のビットプレーンがビット誤りエントロピー計算部142へ入力される(S715)。
次に、ビット誤りエントロピー計算部142では、原画像と予測画像が比較され、誤り数eを得て、これを元にエントロピーが計算される。そして、ビット誤りエントロピー計算部142では、得られたeをビットプレーン長Nで割ることで、ビット誤り率errが得られる(err=e/N)(S716)。ここで得られたビット誤り率からエントロピーH(err)が、上記の(7)式を用いて計算される。なお、ここでは、このエントロピーを「ビット誤りエントロピー」と呼ぶものとする。
次に、ビット誤りエントロピー計算部142で得られたビット誤りエントロピーが選択部143Bへ入力される(S717)。
次に、選択部143Bにおいて、入力された分布モデルエントロピーH(Pe)とビット誤りエントロピーH(err)から、判定テーブル147を参照することで、それぞれのエントロピーのうち、どちらのエントロピー用いて送信符号量を計算するかが判定される(S718)。
判定テーブル147には、選択部143Bに入力される分布モデルエントロピーとビット誤りエントロピーの取りうる値の組み合わせに対して、どちらのエントロピーを用いて送信符号量を計算するかという判定の計算をあらかじめ行っておき、判定結果を記録しておく。判定の計算は、たとえば、第1の実施形態でも示したように、分布モデルエントロピーとビット誤りエントロピーの大小関係から得る方法があり、上記の(8)式の場合はビット誤りエントロピーを選択するという判定結果をとる方法や、両者の関係に閾値を設けて判定を行う方法、例えば、上記の(9)式のように、両者の差に閾値tを設け判定した結果を用いてもよいし、上記の(10)式のように、両者の比に閾値tを設け判定した結果を用いてもよい。
次に、選択部143Bで選択したエントロピーが符号化量計算部144へ入力される(S719)。
次に、符号化量計算部144において、入力された情報量から符号量が計算される(S720)。
エントロピーを計算することによって得られる符号量は理論値であり、Turbo復号やLDPC復号といったSlepian−Wolf復号の性能によっては理論値以上の符号量が必要となる場合があるため、補正を行い、送信する符号量を得る。補正方法は、非特許文献2にあるように、あらかじめ多量のシーケンスを符号化・復号し、エントロピーと復号結果との関係を観測し、その関係を利用した補正を行ってもよいし、エントロピーに対して補正項kを加えてもよい。このときkは固定の値であってもよいし、ビットプレーン毎に変わる値をとるなどの変動値であってもよい。また、補正方法は、入力されたエントロピーが分布モデルエントロピーかビット誤りエントロピーかによって変えてもよい。
次に、符号化量計算部144により、計算した送信符号量がSlepian−Wolf符号化部110へ入力される(S721)。
次に、量子化部103から符号化を行うビットプレーンがSlepian−Wolf符号化部110へ入力される(S722)。
次に、Slepian−Wolf符号化部110において入力したビットプレーンがSlepian−Wolf符号化される(S723)。
次に、Slepian−Wolf符号化されたビットプレーンを送信符号量推定部209で得られた符号量に応じた符号量が、動画像受信装置20側へ送信される(S724)。
次に、Wyner−Zivフレーム符号化部110Bでは、1フレームの全てのビットプレーンを処理したか否かが判定され(S725)、全てのビットプレーンの処理が完了した場合には当該フレームに係る処理を終了し、そうでない場合には、上述のステップS709の処理に戻って動作する。
(C−3)第3の実施形態の効果
第3の実施形態によれば、第1の実施形態の効果に加えて、以下のような効果を奏することができる。
動画像符号化装置100Bでは、判定テーブル147に、あらかじめ分布モデルエントロピーと、ビット誤りエントロピーのどちらを送信符号量の計算に用いるか、という判定の計算をあらかじめ行ったものをテーブルとして保持しておくことで、選択における演算が省略されるため、第1の実施形態と比較して、符号化に係る処理量を低減させることができる。
(D)第4の実施形態
以下、本発明による動画像符号化装置及びプログラム、並びに、動画像配信システムの第4の実施形態を、図面を参照しながら詳述する。
(D−1)第4の実施形態の構成
第4の実施形態の動画像配信システム1Cの全体構成も図1を用いて説明することができる。
第4の実施形態の動画像配信システム1Cは、動画像配信装置10及び動画像受信装置20を有している。動画像受信装置20は、第1の実施形態と同様のものであるので詳しい説明を省略する。また、動画像配信装置10Cは、動画像符号化装置100Cを有している。
図14は、動画像符号化装置100C内部の機能的構成について示した説明図である。
動画像符号化装置100Cは、第1の実施形態のWyner−Zivフレーム符号化部110がWyner−Zivフレーム符号化部110Cに置き換わっただけであるので、その他の構成については詳しい説明を省略する。そして、Wyner−Zivフレーム符号化部110Cは、送信符号量推定部140が、送信符号量推定部140Cに置き換わっただけであるので、それ以外の構成について詳しい説明は省略する。
送信符号量推定部140Cは、選択部143C、符号化量計算部144、分布モデル誤り計算部145、ビット誤り計算部146、判定テーブル147Cを有している。
符号化量計算部144、分布モデル誤り計算部145、ビット誤り計算部146については、第2の実施形態と同様のものであるので詳しい説明は省略する。
判定テーブル147Cは、分布モデル誤り計算部145から得られる分布モデルを用いた誤り確率と、ビット誤り計算部146から得られる原画像と予測画像の間の異なりから得た誤り率に対し、それぞれの誤りから得られるエントロピーのうち、どちらのエントロピーであれば復号可能な符号量を得られるかを判定する計算をあらかじめ行っておき、さらに、判定の結果選択される計算済のエントロピーを保持しておくものである。
選択部143Cは、判定テーブル147Cを参照し、分布モデルから得られるエントロピーと原画像と予測画像の異なりから得られるエントロピーのどちらを符号量の計算に用いるかを選択する。
(D−2)第4の実施形態の動作
次に、以上のような構成を有する第4の実施形態の動画像配信システム1Aの動作、特に動画像符号化装置100Cの動作を中心に説明する。
第1の実施形態と同様に、入力シーケンスはキーフレームとWyner−Zivフレームに分けられ、それぞれの符号化・復号が行われ、入力シーケンスをキーフレームとWyner−Zivフレームを交互に符号化する例について説明を行う。そして、動画像符号化装置100Aでは、第1の実施形態と同様に、入力シーケンスの1フレーム目はキーフレームとして符号化が行われ、2フレーム目はWyner−Zivフレームとして、Wyner−Zivフレーム符号化部110Cにより符号化が行われる。ここでは、この2フレーム目のデータが、Wyner−Zivフレーム符号化部110Cにより符号化される場合を例として、Wyner−Zivフレーム符号化部110Cの動作について説明する。
図15〜17は、Wyner−Zivフレーム符号化部110Cの動作について示したフローチャートである。
このうち、量子化部120で入力シーケンスを変換・量子化したのちビットプレーンへ分割し、Side Information生成部150で予測画像を生成し、分布モデル誤り計算部145で分布モデルから得られる誤り確率を計算される(S901〜S911)が、これらの動作は、第2の実施形態の動作におけるステップS501〜S511と同様であるため、詳しい説明を省略する。
次に、分布モデル誤り計算部145で計算した分布モデルを用いた誤り確率が、選択部143Cへ入力される(S912)。
分布モデル誤り計算部145の計算結果から計算できるエントロピーでは予測画像に分布モデルの想定できる誤りよりも大きな誤りが起こった場合は、復号に必要な符号量が得られないことがある。そこで、分布モデル誤り計算部145により、分布モデルとは異なる尺度で誤り率を計算する。
まず、量子化部120から、原画像のビットプレーンがビット誤り計算部146へ入力される(S913)。
そして、Side Information生成部150から、予測画像のビットプレーンがビット誤り計算部146へ入力される(S914)。
次に、ビット誤り計算部146において、原画像と予測画像が比較され、誤り数eを得て、ビットプレーン長Nで割ることで、ビット誤り率errが得られる(err=e/N)(S915)。
次に、ビット誤り計算部146から誤り率が選択部143Cへ入力される(S916)。
次に、選択部143Cにおいて、入力された分布モデル誤りとビット誤りから、判定テーブル147Cを参照することで、それぞれの誤りから得られるエントロピーのうち、どちらのエントロピー用いて送信符号量を計算するかが判定され、判定結果から得られるエントロピーが得られる(S917)。
なお、判定テーブル147Cには、選択部143Cに入力される、分布モデル誤り計算部145からの誤り確率と、ビット誤り計算部146からの誤り率の、取りうる値の組み合わせに対して、どちらの誤り率から得られるエントロピーを用いて送信符号量を計算するかという判定の計算をあらかじめ行っておき、判定の結果、選択されるエントロピーを記録しておく。判定の計算は、入力されたそれぞれの誤りに対して、例えば、第2の実施形態と同様に大小関係から得る方法がある。
例えば、第2の実施形態と同様に上記の(11)式の場合はビット誤りから得られるエントロピーH(err)を判定結果として記録しておく。他の判定方法としては、それぞれの誤りから得られるエントロピー間の関係に閾値を設ける方法、たとえば、上記の(12)式のように、両者の差に閾値tを設け判定を行ってもよいし、上記の(13)式のように、両者の比に閾値tを設け判定を行ってもよい。このとき、閾値tは固定値でもよいし、上位ピノトプレーンであるほど、復号画質に与える影響が大きいため、ビットプレーン毎に値を変えることで判定の条件を変えてもよい。
このような、入力された二つの誤り率に対しての判定結果のエントロピーを記録した判定テーブルを参照することにより送信符号量を計算するのに用いるエントロピーを得る。
なお、判定テーブル147Cには、選択部143Cに入力され得る値の組み合わせに対して選択されるエントロピーを記録しておくのではなく、選択部143Cに入力され得る値の組み合わせに対して、分布モデル誤り計算部145とビット誤り計算部146のどちらの計算結果を選択するかという情報だけを登録しておいて、選択された計算結果から、第2の実施形態と同様にエントロピーを計算により求めるようにしても良い。
次に、選択部143Cで選択したエントロピーが符号化量計算部144へ入力される(S918)。
次に、符号化量計算部144において、入力された情報から符号量が計算される(S919)。
エントロピーを計算することによって得られる符号量は理論値であり、Turbo復号やLDPC複号といったSlepian−Wolf複号の性能によっては理論値以上の符号量が必要となる場合があるため、補正を行い、送信する符号量を得る。補正方法は、非特許文献2にあるように、あらかじめ多量のシーケンスを符号化・復号し、エントロピーと復号結果との関係を観測し、その関係を利用した補正を行ってもよいし、エントロピーに対して補正項kを加えてもよい.このときkは固定の値であってもよいし、ビットプレーン毎に変わる値をとるなどの変動値であってもよい。また、補正方法は、入力されたエントロピーが分布モデルエントロピーかビット誤りエントロピーかによって変えてもよい。
次に、符号化量計算部144により、計算した送信符号量がSlepian−Wolf符号化部130へ入力される(S920)。
次に、量子化部120から符号化を行うビットプレーンがSlepian−Wolf符号化部130へ入力される(S921)。
次に、Slepian−Wolf符号化部130において、入力されたビットプレーンがSlepian−Wolf符号化される(S922)。
次に、Slepian−Wolf符号化されたビットプレーンが送信符号量推定部140Cで得られた符号量に応じた符号量が、受信側へ送信される(S923)。
次に、Wyner−Zivフレーム符号化部110Cでは、1フレームの全てのビットプレーンを処理したか否かが判定され(S924)、全てのビットプレーンの処理が完了した場合には当該フレームに係る処理を終了し、そうでない場合には、上述のステップS909の処理に戻って動作する。
(D−3)第4の実施形態の効果
第4の実施形態によれば、第1の実施形態の効果に加えて、以下のような効果を奏することができる。
動画像符号化装置100Cでは、判定テーブル147Cにあらかじめ分布モデルエントロピーとビット誤りエントロピーのどちらを送信符号量の計算に用いるか、という選択における計算をあらかじめ行い、その結果のエントロピーをテ−ブルとして保持しておくことで、選択における演算と誤りからエントロピーを計算する演算が省略され、第1の実施形態と比較して、符号化に係る処理量を低減させることができる。
(E)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(E−1)なお、図2においては、動画像符号化装置は、動画像配信装置の一部を構成するものとして図示しているが、動画像符号化装置を、単体の装置として構築し、単に入力シーケンスから符号化データを生成して出力(ディスク装置や記憶媒体等に記憶させたり、他の装置に出力したり等、方法は限定されないものである)する装置として構築するようにしても良い。
(E−2)上記の第1及び第3の実施形態では、動画像符号化装置の送信符号量推定部は、2つのエントロピー計算部(分布モデルエントロピー計算部、ビット誤りエントロピー計算部)を有しているが、他の方法によりエントロピーを計算する手段を追加又は置き換えるようにしても良い。すなわち、送信符号量推定部において、それぞれ異なる計算方法によりエントロピーを計算する複数のエントロピー計算手段を有し、いずれかのエントロピー計算手段の計算結果を、送信符号量の計算に適用するものとして選択できれば、エントロピー計算手段の数や具体的な計算方法は限定されないものである。
これは、第2及び第4の実施形態においても同様であり、送信符号量推定部において、それぞれ異なる計算方法によりエントロピーを計算する複数のエントロピー計算手段を有し、まず、それぞれのエントロピー計算手段が計算するエントロピーに係る誤り率を算出する。そして、その誤り率に基づいて送信符号量として適用するエントロピー計算手段を選択し、選択したエントロピー計算手段により計算したエントロピーを送信符号量の計算に適用するものとして選択できれば、エントロピー計算手段の数や具体的な計算方法は限定されないものである。