(57)【特許請求の範囲】
【請求項１】
入力画像を所定の画像ブロックに分割し、上記入力画像とあらかじめ符号化された予測画像とから上記画像ブロックごとに動きベクトルを発生して上記動きベクトルに基づき上記予測画像の動きを補償する動き補償手段を有し、上記動き補償手段により動き補償して上記入力画像を符号化すると共に、指定されたコード長で上記動きベクトルを符号化する符号化手段と、
上記画像ブロックからなる所定の画像ユニットを単位として、上記動き補償手段で発生した上記動きベクトルを符号化するため、および上記動き補償手段による次のフレームに対する入力画像の動きベクトルの探索範囲を定めるために、上記符号化手段に対し上記動きベクトルのコード長を指定するコード長指定手段と、
上記符号化手段が次の画像ユニットに対する上記入力画像を符号化するに際し、上記動き補償手段が現在の画像ユニットで発生した動きベクトルの大きさに基づき、上記動きベクトルの大きさに応じた動きベクトルの探索範囲を表現するのに足りる最小のコード長を算出し、算出した上記最小のコード長に基づいて上記コード長指定手段が指定するコード長を更新するコード長更新手段と
を備えた動画像符号化装置において、
上記コード長更新手段は、
上記現在の画像ユニットで発生した動きベクトルの大多数となる所定の割合の動きベクトルの大きさが、上記現在の画像ユニットに対して上記コード長指定手段が指定するコード長より少ないコード長を用いて表現される場合、上記コード長指定手段が指定するコード長を、上記動きベクトルの大多数となる所定の割合の動きベクトルの大きさを表現するのに足りる最小のコード長に更新することを特徴とする動画像符号化装置。
【請求項２】
上記コード長更新手段は、
上記コード長指定手段が指定するコード長を用いて上記現在の画像ユニットで発生した動きベクトルの大きさを表現して上記入力画像を符号化したときに発生する第１の符号量と、上記動きベクトルの大きさを表現するのに足りる最小のコード長を用いて上記現在の画像ユニットで発生した動きベクトルを表現して上記入力画像を符号化したときに発生する第２の符号量とを求め、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値以下となる場合に上記コード長指定手段が指定するコード長を更新することを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
入力画像を所定の画像ブロックに分割し、上記入力画像とあらかじめ符号化された予測画像とから上記画像ブロックごとに動きベクトルを発生して上記動きベクトルに基づき上記予測画像の動きを補償する動き補償手段を有し、上記動き補償手段により動き補償して上記入力画像を符号化すると共に、指定されたコード長で上記動きベクトルを符号化する符号化手段と、
上記画像ブロックからなる所定の画像ユニットを単位として、上記動き補償手段で発生した上記動きベクトルを符号化するため、および上記動き補償手段による次のフレームに対する入力画像の動きベクトルの探索範囲を定めるために、上記符号化手段に対し上記動きベクトルのコード長を指定するコード長指定手段と、
上記符号化手段が次の画像ユニットに対する上記入力画像を符号化するに際し、上記動き補償手段が現在の画像ユニットで発生した動きベクトルの大きさに基づき、上記動きベクトルの大きさに応じた動きベクトルの探索範囲を表現するのに足りる最小のコード長を算出し、算出した上記最小のコード長に基づいて上記コード長指定手段が指定するコード長を更新するコード長更新手段と
を備えた動画像符号化装置において、
上記コード長更新手段は、
上記コード長指定手段が指定するコード長を用いて上記現在の画像ユニットで発生した動きベクトルの大きさを表現して上記入力画像を符号化したときに発生する第１の符号量と、上記コード長指定手段が指定するコード長よりも少ないコード長を用いて上記現在の画像ユニットで発生した動きベクトルを表現して上記入力画像を符号化したときに発生する第２の符号量とを求め、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値以下となる場合に上記コード長指定手段が指定するコード長を上記コード長指定手段が指定するコード長よりも少ないコード長に更新することを特徴とする動画像符号化装置。
【請求項４】
上記コード長更新手段は、
上記第１の符号量に対する上記第２の符号量の増分が所定の閾値を超える場合、上記符号化手段により上記入力画像を符号化したときに発生する符号量が上記所定の閾値以下となる範囲内で、上記コード長指定手段が指定するコード長を増やす方向に更新することを特徴とする請求項３に記載の動画像符号化装置。
【請求項５】
外部から指定されたコード長を入力するコード長入力手段をさらに備え、
上記コード長更新手段は、上記コード長更新手段が生成したコード長に基づいて符号化したときに発生する符号量と、上記コード長入力手段に入力されたコード長に基づいて符号化したときに発生する符号量との比較に基づいて、上記コード長更新手段が生成したコード長または上記コード長入力手段に入力されたコード長を選択して、上記コード長指定手段が指定するコード長を更新することを特徴とする請求項１ないし４のいずれかに記載の動画像符号化装置。
【請求項６】
上記コード長更新手段は、
上記画像ブロックに対して許容される動き探索範囲内で取り得る複数候補のコード長を生成し、上記複数候補のコード長を用いて上記動きベクトルを表現して上記入力画像をそれぞれ符号化したときに発生する符号量を比較し、上記複数候補のコード長の中から上記符号量が最も小さくなるコード長を選択することを特徴とする請求項５に記載の動画像符号化装置。
【請求項７】
上記コード長更新手段は、
上記コード長入力手段に入力されたコード長を用いて上記動きベクトルを表現して得られる符号量と、上記コード長更新手段が生成したコード長を用いて上記動きベクトルを表現して得られる符号量とをそれぞれ重み付けして比較し、該比較の結果に基づきコード長を選択することを特徴とする請求項５に記載の動画像符号化装置。
【請求項８】
上記画像ユニットは２以上のフレームからなり、上記画像ユニットをなすフレーム数を可変としたことを特徴とする請求項１ないし７のいずれかに記載の動画像符号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像を動き補償して符号化する動画像符号化装置に関する。
【０００２】
【従来の技術】
従来、動画像を動き補償して予測符号化することにより動画像の符号量（情報量）を低減させる動画像符号化技術が知られている。
例えば、特開平６−１０５２９９号公報には、動画像でなる入力画像の１画面を所定の画像ブロックに分割して各画像ブロックごとに複数候補の動きベクトルを用意し、フレーム間予測を行なうに際して符号化効率を最も改善する動きベクトルを選択する動画像圧縮装置が開示されている。
【０００３】
具体的に、その構成を図６に示す。
同図において、４３０はコントローラ、４３１は画像メモリ、４３２は減算器、４３３はＤＣＴ(Discrete Cosine Transform)演算部、４３４は量子化部、４３５は可変長符号化部（ＶＬＣ）、４３６はバッファ、４３８は逆量子化部、４３９は逆ＤＣＴ演算部（ＩＤＣＴ）、４４０は加算器、４４１ないし４４３はスイッチ、４４４および４４５は予測器である。また、上述の逆量子化部４３８、逆ＤＣＴ演算部４３９、加算器４４０、スイッチ４４１ないし４４３、予測器４４４および４４５は、動き補償フレーム間予測部（符号なし）を構成する。
【０００４】
以下、図７に示すフローチャートに沿って、図６に示す動画像圧縮装置の４種類の動作（第１ないし第４の動作）を説明する。
なお、第１ないし第４の各動作の説明では、図７に示すフローチャートの各ステップを引用するが、各動作の説明で引用されないステップについては、その動作に関する限り図７に示すフローチャートから削除するものとする。
【０００５】
まず、この動画像圧縮装置の第１の動作を説明する。
以下に述べる一連の動作はコントローラ４３０の制御の下に行われる。
画像メモリ４３１には外部からの画像データが蓄積される。減算器４３２は、画像メモリ４３１から読み出された画像データと後述の予測器４４４または４４５からの予測画像との差分を出力する。ＤＣＴ演算部４３３は、減算器４３２からの差分データを直交変換して周波数軸に変換する。量子化部４３４および可変長符号化部４３５は、ＤＣＴ演算部４３３からのデータをそれぞれ量子化して可変長符号化し、バッファ４３６を介して符号化データとして外部に出力する。
【０００６】
ここで、動き補償フレーム間予測部（符号なし）は、コントローラ４３０の制御の下に、時間軸方向の圧縮のためのフレーム間予測処理を行う。すなわち、量子化部４３４からのデータは、逆量子化部４３８および逆ＤＣＴ演算部４３９により復号されて予測器４４３または４４４からの予測画像に加算される。この予測画像に基づき、１画面を分割して得られる所定の画像ブロック（部分画像）ごとに複数候補の動きベクトルが検出されて用意される（ステップＳ１）。
【０００７】
そして、複数候補の動きベクトルの中から実際に符号化するときに最もよい符号化効率を与える動きベクトルが決定され（ステップＳ５）、既に符号化された画像（予測画像）を動きベクトル分だけ移動させて動き補償が行われ、フレーム間予測が行われる。
なお、スイッチ４４１ないし４４３は、画像モードおよび予測モードに応じて、コントローラ４３０により切り替えられる。
【０００８】
次に、この動画像圧縮装置の第２の動作を説明する。
上述の第１の動作と同様にフレーム間予測が行われ、各画像ブロックごとに複数候補の動きベクトルが検出されて用意される（ステップＳ１）。検出された複数候補の動きベクトルについて予測誤差が検出され、この予測誤差について最小予測誤差に対する誤差係数が算出される（ステップＳ２）。そして、算出された誤差係数に基づいて、複数候補の動きベクトルの中から実際に符号化するときに最もよい符号化効率を与える動きベクトルが決定される（ステップＳ５）。
【０００９】
次に、この動画像圧縮装置の第３の動作を説明する。
上述の第２の動作と同様にして複数候補の動きベクトルの予測誤差が検出されると（ステップＳ１〜ステップ２）、この複数候補の動きベクトルに対して実際に符号化対象となる動きベクトルの値が算出される（ステップＳ３）。算出された動きベクトルの値を基に、符号化したときのコード長が図８に例示するベクトル符号化係数として算出される（ステップＳ４）。そして、この符号化係数に基づいて、実際に符号化するときに最もよい符号化効率を与える動きベクトルが決定される（ステップＳ５）。
【００１０】
次に、この動画像圧縮装置の第４の動作を説明する。
上述の第３の動作と同様にして複数候補の動きベクトルの予測誤差が検出されると（ステップＳ１〜ステップＳ２）、複数候補の動きベクトルを基に、符号化したときのコード長がコード長ベクトル符号化係数として算出される（ステップＳ４）。そして、この符号化係数に基づいて、実際に符号化するとき最もよい符号化効率を与える動きベクトルが決定される（ステップＳ５）。
【００１１】
【発明が解決しようとする課題】
ところで、上述の従来技術にかかる動画像圧縮装置は、予め検出された複数候補の動きベクトルの中から最もよい符号化効率を与える動きベクトルを選択して符号化するものであって、動きベクトルのコード長は、その動きベクトルの大きさに関係なく設定される。このため、動きベクトルによっては、そのコード長が冗長となる場合があり、符号量を有効に低減できないという問題がある。
【００１２】
具体的には、上述の従来技術によれば、算出された符号化係数に基づいて動きベクトルが決定されるが、この符号化係数は動きベクトルの大きさに関係なく一意に定まり、動きベクトルを符号化するための規則は固定されている。したがって、最もよい符号化効率を与える動きベクトルであっても、そのコード長は固定されており、冗長となる場合を生じているのが現状である。
【００１３】
本発明は、このような問題に鑑みてなされたものであり、動きベクトルの大きさに応じて符号量を低減させ、符号化効率を改善することのできる動画像符号化装置を提供することを課題とする。
【００１４】
【課題を解決するための手段】
本発明は、前記課題を解決達成するため、以下の構成を有する。
即ち、本発明は、入力画像を所定の画像ブロックに分割し、上記入力画像とあらかじめ符号化された予測画像とから上記画像ブロックごとに動きベクトルを発生して上記動きベクトルに基づき上記予測画像の動きを補償する動き補償手段を有し、上記動き補償手段により動き補償して上記入力画像を符号化すると共に、指定されたコード長で上記動きベクトルを符号化する符号化手段と、上記画像ブロックからなる所定の画像ユニットを単位として、上記動き補償手段で発生した上記動きベクトルを符号化するため、および上記動き補償手段による次のフレームに対する入力画像の動きベクトルの探索範囲を定めるために、上記符号化手段に対し上記動きベクトルのコード長を指定するコード長指定手段と、上記符号化手段が次の画像ユニットに対する上記入力画像を符号化するに際し、上記動き補償手段が現在の画像ユニットで発生した動きベクトルの大きさに基づき、上記動きベクトルの大きさに応じた動きベクトルの探索範囲を表現するのに足りる最小のコード長を算出し、算出した上記最小のコード長に基づいて上記コード長指定手段が指定するコード長を更新するコード長更新手段とを備え、上記コード長更新手段は、上記現在の画像ユニットで発生した動きベクトルの大多数となる所定の割合の動きベクトルの大きさが、上記現在の画像ユニットに対して上記コード長指定手段が指定するコード長より少ないコード長を用いて表現される場合、上記コード長指定手段が指定するコード長を、上記動きベクトルの大多数となる所定の割合の動きベクトルの大きさを表現するのに足りる最小のコード長に更新する。
【００１７】
さらにまた、本発明の上記コード長更新手段は、上記コード長指定手段が指定するコード長を用いて上記現在の画像ユニットで発生した動きベクトルの大きさを表現して上記入力画像を符号化したときに発生する第１の符号量と、上記動きベクトルの大きさを表現するのに足りる最小のコード長を用いて上記現在の画像ユニットで発生した動きベクトルを表現して上記入力画像を符号化したときに発生する第２の符号量とを求め、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値以下となる場合に上記コード長指定手段が指定するコード長を更新する構成を有する。
【００１８】
さらにまた、本発明の上記コード長更新手段は、上記コード長指定手段が指定するコード長を用いて上記現在の画像ユニットで発生した動きベクトルの大きさを表現して上記入力画像を符号化したときに発生する第１の符号量と、上記コード長指定手段が指定するコード長よりも少ないコード長を用いて上記現在の画像ユニットで発生した動きベクトルを表現して上記入力画像を符号化したときに発生する第２の符号量とを求め、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値以下となる場合に上記コード長指定手段が指定するコード長を上記コード長指定手段が指定するコード長よりも少ないコード長に更新する構成を有する。
【００１９】
さらにまた、本発明の上記コード長更新手段は、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値を超える場合、上記符号化手段により上記入力画像を符号化したときに発生する符号量が上記所定の閾値以下となる範囲内で、上記コード長指定手段が指定するコード長を増やす方向に更新する構成を有する。
【００２０】
さらにまた、本発明は、外部から指定されたコード長を入力するコード長入力手段をさらに備え、上記コード長更新手段は、上記コード長更新手段が生成したコード長に基づいて符号化したときに発生する符号量と、上記コード長入力手段に入力されたコード長に基づいて符号化したときに発生する符号量との比較に基づいて、上記コード長更新手段が生成したコード長または上記コード長入力手段に入力されたコード長を選択して、上記コード長指定手段が指定するコード長を更新する構成を有する。
【００２１】
さらにまた、本発明の上記コード長更新手段は、上記画像ブロックに対して許容される動き探索範囲内で取り得る複数候補のコード長を生成し、上記複数候補のコード長を用いて上記動きベクトルを表現して上記入力画像をそれぞれ符号化したときに発生する符号量を比較し、上記複数候補のコード長の中から上記符号量が最も小さくなるコード長を選択する構成を有する。
【００２２】
さらにまた、本発明の上記コード長更新手段は、上記コード長入力手段に入力されたコード長を用いて上記動きベクトルを表現して得られる符号量と、上記コード長更新手段が生成したコード長を用いて上記動きベクトルを表現して得られる符号量とをそれぞれ重み付けして比較し、該比較の結果に基づきコード長を選択する構成を有する。
【００２３】
さらにまた、本発明は、上記画像ユニットが２以上のフレームからなり、上記画像ユニットをなすフレーム数を可変とした構成を有する。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
なお、各図において共通する要素には同一符号を付して、重複する説明を省略する。
【００２５】
実施の形態１．
図１に、本発明の実施の形態１にかかる動画像符号化装置の構成を示す。
同図において、１００は、動画像でなる入力画像１０を所定の画像ブロックに分割し、入力画像１０とあらかじめ符号化された予測画像１０Ａとから上記画像ブロックごとに動きベクトルを発生して上記動きベクトルに基づき予測画像１０Ａの動きを補償する動き補償予測部４４（動き補償手段）を有し、上記動き補償部４４により動き補償して入力画像１０を符号化すると共に、指定されたコード長で上記動きベクトルを符号化する符号化部（符号化手段）である。
【００２６】
また、５０は、上記画像ブロックからなる所定の画像ユニットを単位として、符号化部１００に対し動きベクトルのコード長を指定するコード長指定部（コード長指定手段）、６０は、符号化部１００が次に符号化の対象とされる画像ユニットに対する入力画像を符号化するに際し、動き補償予測部４４が現在符号化の対象とする画像ユニットで発生した動きベクトルの大きさに基づきコード長指定部５０が指定するコード長を更新するコード長更新部（コード長更新手段）である。
【００２７】
さらに、３１は、あらかじめ符号化された画像を格納する画像メモリ、３２は、入力画像１０と画像メモリ３１からの予測画像１０Ａとの差分を演算する差分演算器、３３は、差分演算器３２からの差分データを符号化する符号化器、３５は、符号化器３３からのデータを可変長符号化して符号化データを得る可変長符号化器（ＶＬＣ）、３６は、可変長符号化器３５からの符号化データを一時的に蓄積するバッファ、３８は、符号化器３３からのデータを局部的に復号する複号器、４０は、画像メモリ３１からの予測画像１０Ａと復号器３８からのデータとを加算する加算器である。
【００２８】
次に、フレーム間予測符号化を行う場合を例として、本実施の形態１にかかる動画像符号化装置の動作を説明する。
なお、本実施の形態１では、上述の「画像ユニット」を「フレーム」とし、各フレームをいくつかの所定の画像ブロックに分割して得られる各画像ブロックごとに符号化を行うものとする。
【００２９】
まず、画像メモリ３１から、現在符号化の対象とされる入力画像１０の画像ブロックと同位置の画像データまたは動き補償予測部４４が発生した動きベクトルにより指定された画像データが、予測画像１０Ａとして画像ブロックごとに読み出される。差分演算器３２は、画像メモリ３１からの予測画像１０Ａと入力画像１０との差分を演算し、歪み評価値４６と差分データとを得る。
【００３０】
ここで、動き補償予測部４４は、あらかじめ指定された動きベクトル探索範囲内での歪み評価値４６（たとえばブロック単位での差分絶対値和）が最小となるように、画像メモリ３１から入力画像１０に最も近い画像または一致する画像データを予測画像１０ａとして抽出して動きベクトルを検出する。
【００３１】
歪み評価値４６が最小を示すときの差分演算器３２からの差分データは、符号化器３３で符号化され、可変長符号化器３５で可変長符号化される。このとき、動き補償予測部４４により検出された動きベクトルは、後述のコード長指定部５０により指定されたコード長で符号化される。可変長符号化器３５で可変長符号化されたデータは、一旦バッファ３６に蓄積され、伝送レートにしたがって伝送路（図示なし）に符号化データ９０として出力される。
【００３２】
また、符号化器３３で符号化されたデータは、複号部３８により局部的に復号され、画像メモリ３１からの予測画像１０Ａと加算器４０にて復号加算されて画像メモリ３１に書き込まれる。これにより、画像メモリ３１の画像データが更新される。
以上により、入力画像１０に対してフレーム間予測符号化が行われる。
【００３３】
上述の一連のフレーム間予測符号化の動作の過程において、コード長指定部５０は、１フレーム（所定の画像ユニット）を単位として、符号化部１００を構成する可変長符号化器３５に対し動きベクトルのコード長を指定する。このコード長は、動きベクトルの符号化コードの一部であっても全部であってもよい。コード長指定部５０が指定したコード長は、動き補償予測部４４にも与えられ、動き補償予測部４４での動きベクトルの探索範囲を定める。
【００３４】
また、コード長更新部６０は、符号化部１００が次のフレームに対する入力画像１０を符号化するに際し、動き補償予測部４４が現在のフレームで発生した動きベクトルの大きさに基づき、コード長指定部５０が指定するコード長を更新する。
【００３５】
以下、コード長指定部５０およびコード長更新部６０の動作について、水平方向の動きベクトルの符号化コードの一部のコード長を指定（更新）する場合を例として具体的に説明する。
【００３６】
まず、動きベクトルの符号化コードの一部のコード長をpsizeとし、このコード長psizeを、動きベクトルの探索範囲を表すことができる整数Ｒで表現する。たとえば一例として、整数Ｒを下式（１）で表現する。ただし、式（１）において、記号「≪」は、ビットシフト演算子を表す。
【００３７】
R=1≪psize                                       （１）
【００３８】
この場合、整数Ｒは、psize[bit]分だけ「１」をＭＳＢ(Most Significant Bit：最上位ビット)側にビットシフトさせた２進数として表され、１０進数の２psizeと等価となる。
【００３９】
このようにコード長psizeを整数Ｒで表現した場合、動き補償の単位がＭ×Ｎ画素ブロック（Ｍ，Ｎは自然数）のとき、水平画素数は「Ｍ」であるから、発生しうる動きベクトルの最高値maxおよび最低値minは、下式（２）で表され、発生しうる動きベクトルの範囲rangeは、下式（３）で表される。
【００４０】
max=(M×R)-1，min={(-M)×R}                       （２）
【００４１】
range=(2M×R)                                    （３）
【００４２】
ここで、一例として、psize=3，M=8とすると、上式（２）および（３）より、R=1≪3=8，max=(8×8)-1=63，min=((-8)×8)=-64，range=128  を得る。
【００４３】
次に、-M≦mccode≦Mを満たす整数値mccodeとpsize[bit]のコード長で表される整数値mcresとをパラメータとして、動きベクトルの大きさの値ＭＶを整数値mccodeと整数値mcrecとの組み合わせで表現する。
【００４４】
一例として、R=1，mccode=0なる条件が満足された場合、動きベクトルの大きさの値ＭＶを下式（４）で表し、上述のR=1，mccode=0なる条件が満足されない場合には、動きベクトルの大きさの値ＭＶを下式（５）で表す。
ただし、式（５）において、abs(mccode)は、整数値mccodeの絶対値を表し、mccode<0のとき、MV=-MVとする。
【００４５】
MV=mccode                                       （４）
【００４６】
MV=[{abs(mccode)-1}×R]+mcres+1                  （５）
【００４７】
このように、動きベクトルの大きさの値ＭＶを表現した場合、動きベクトルの大きさの値ＭＶを整数Ｒで割った商{abs(mccode)-1}と剰余(mcres+1)とから整数値mccodeおよびmcresを設定することができる。
【００４８】
一例として、動きベクトルの大きさの値ＭＶとして「53」を表現する場合、「53」をM(=8)で割った商と余りは、それぞれ「6」と「5」であるから、mccode=6+1=7，mcres=5-1=4となる。このように整数値mccodeおよびmcresを設定した場合、上式（５）よりMV=((abs(7)-1)×8)+4+1=53が得られる。
【００４９】
他の例として、動きベクトルの大きさの値ＭＶとして「40」を表現する場合、「40」をM(=8)で割った商と余りは、それぞれ「5」と「0」である。この場合、余りが「0」となってmcresのコード長を与えるpsize[bit]も「0」となり、動きベクトルの大きさを表現できなくなる。
【００５０】
そこでこの場合、商の一部を余りに転化させて、商と余りを、それぞれ「4」と「8」とし、mccode=5，mcres=7（２進数表示では「111」）とする。このように整数値mccodeおよびmcresを設定した場合、上式（５）よりMV=((abs(5)-1)×8)+7+1=40が得られる。
以上の例から、動きベクトルの大きさの値ＭＶが、整数値mccodeとmcresとをパラメータとして表現されることが分かる。
【００５１】
仮に、動きベクトルの大きさの値ＭＶが「0」の近傍ほど高い確率で発生するなら、整数値mccodeについては可変長符号で表したほうが符号化効率がよくなる。
また、整数値mcresを可変長符号で表現すると、整数Ｒの倍数の前後の値の動きベクトルのコード長が逆転してしまうので、整数値mcresについては固定長符号で表現したほうが符号化効率がよくなる。
【００５２】
上述の式（４）および式（５）を用いて動きベクトルの大きさＭＶを表現することにより、コード長psizeから導かれる整数Ｒを単位として動きベクトルの探索範囲が決められ、整数値mcresにより整数Ｒでは表現できない探索範囲の隙間が埋められる。したがって、整数値mccodeおよびmcresにより動きベクトルの大きさＭＶが表現され、動きベクトルの大きさに基づきコード長psizeを決定することが可能となる。
【００５３】
ここで、再び説明を図１に戻す。
コード長指定部５０は、上述のように、動きベクトルの大きさに基づき決定されたコード長psizeを符号化部１００に対して指定する。このコード長psizeは、現在のフレームで発生する動きベクトルのコード長に影響を与え、動きベクトルのコード長psizeが大きいと動きベクトルの探索範囲（ベクトル分布範囲）が広くなり、小さいと逆に狭くなる。
【００５４】
一方、コード長更新部６０は、コード長指定手段５０が指定するコード長psizeの影響を受けて現在のフレームで発生した動きベクトルの大きさに基づき、次のフレーム全体で動きベクトルの符号量が少なくなるように、コード長指定部５０が指定するコード長psizeを更新する。
以上により、現在のフレームで発生した動きベクトルの大きさに基づき、動きベクトルのコード長が更新されて、次のフレームでの符号量が低減される。
【００５５】
上述した本実施の形態１では、値ＭＶを動きベクトルの大きさとしたが、現在のフレームで発生した動きベクトルの大きさの「分布」や、あらかじめ符号化された動きベクトルとの「差分」としてもよく、本発明の内容を制限するものではない。
【００５６】
また、整数値mccodeとmcresとをパラメータとして動きベクトルの大きさを表現したが、この表現方法に限定されることなく、動きベクトルの一部または全部の符号化コードのコード長が、コード長指定部５０が指定するコード長psizeによって変わるように表現されていればよい。さらに、歪み評価値４６として差分絶対値和を用いたが、たとえば差分二乗和であってもよい。
【００５７】
さらにまた、本実施の形態１では、フレーム間予測符号化を行うものとしたが、たとえばフレーム内符号化のように、典型的な動画像符号化装置として動作するように構成してもよい。この場合、入力画像１０を条件によりそのまま符号化器３３で符号化するように構成すればよい。
【００５８】
実施の形態２．
次に、図１を援用して、本発明の実施の形態２を説明する。
本実施の形態２では、コード長更新部５０（コード長更新手段）は、現在のフレーム（現在の画像ユニット）で発生したすべての動きベクトルの大きさが、現在のフレームに対してコード長指定部５０が指定するコード長psizeより少ないコード長を用いて表現される場合、コード長指定部５０が指定するコード長psizeを、上記すべての動きベクトルの大きさを表現するのに足りる最小のコード長qsizeに更新するように構成される。
【００５９】
たとえば、現在のフレームにおいて、psize=3，M=8である場合、現在のフレーム内で発生したすべての動きベクトルの大きさ(vector)が、-32≦vector≦32を満たす場合、すべての動きベクトルの大きさを表現するのに足りる最小のコード長は「2」となり、psize=2でもすべての動きベクトルを表現できる。
【００６０】
なぜなら、psize=2のとき、前述の式（１）および（２）より、動きベクトルの最高値maxは「31」，動きベクトルの大きさの最低値minは「-32」となるからである。そこで、コード長更新部６０は、コード長qsizeを「2」として、コード長指定部５０が指定するコード長psizeをコード長qsizeに更新する。
【００６１】
この場合、整数値mcresは２ビットで表現できるため、１動きベクトルあたりコード長が１ビットだけ削減される。よって、仮にコード長psizeを「2」として現在のフレームの動きベクトルを再符号化すれば、現在のフレームで発生する符号量を削減することができる。
【００６２】
しかし、実際には装置の演算処理速度の制約から、現在のフレームで再符号化する時間的余裕がない。仮に時間的余裕があったとしても、１フレーム分の符号化された動きベクトルを蓄積するだけのバッファ容量を確保することができない環境下にある場合には現在のフレームでの再符号化が困難となる。そこで、コード長更新部６０は、次のフレームでコード長psizeを「2」（qsize）に更新して符号化する。
【００６３】
ここで、一般に、動画像においては急激に動きの変化がない状態では隣接する画像フレームの動きが類似している傾向にあり、次のフレームでも現在のフレームでの動きベクトルに類似した動きベクトルが求められると予測される。したがって、次のフレームでコード長psizeを「2」（qsize）に更新して符号化しても、次のフレームで発生する符号量を有効に削減することができる。
【００６４】
なお、再符号化するに足りる演算処理速度を有し、またフレーム単位で符号化された動きベクトルを蓄積するだけのバッファ容量を有し、さらにバッファより伝送路に出力される符号化データが途切れることなく指定された伝送レートを維持することができるのであれば、現在のフレームでコード長を更新して再符号化してもよい。この場合、次のフレームでコード長を更新するよりも、より符号量を低く抑えることができる。
【００６５】
実施の形態３．
次に、図１を援用して、本発明の実施の形態３を説明する。
上述の実施の形態２では、現在のフレームで発生した「すべて」の動きベクトルをコード長qsizeを用いて表現できる場合にコード長を更新するとしたが、本実施の形態３では、コード長更新部５０は、現在のフレームで発生した動きベクトルの「大多数」となる所定の割合の動きベクトルの大きさが、上記現在の画像ユニットに対してコード長指定部５０が指定するコード長psizeより少ないコード長を用いて表現される場合、コード長指定部５０が指定するコード長psizeを、上記大多数となる所定の割合の動きベクトルの大きさを表現するのに足りる最小のコード長qsizeに更新するように構成される。
【００６６】
以下、上述の「大多数」となる所定の割合の動きベクトルに着目してコード長を更新することの妥当性を説明する。
隣接する動画像の動きの傾向が類似する場合、仮に現在のフレームの「すべて」の動きベクトルがコード長qsizeに基づいて表現できれば、次のフレームでも大多数の動きベクトルがコード長qsizeに基づいて表現できることが予測される。したがって、次のフレームでコード長qsizeを指定すれば、発生する符号量を極めて高い確率で減少させることができる。上述の実施の形態２では、この観点に立ってコード長を更新する。
【００６７】
しかし、現在のフレームで「すべて」の動きベクトルがコード長qsizeに基づいて表現できるベクトルであるとしても、次のフレームでも「すべて」の動きベクトルがコード長qsizeに基づいて表現できるベクトルであるとは限らない。また、現在のフレームで「大多数」の動きベクトルがコード長qsizeに基づいて表現できるベクトルであるときに、次のフレームでも「すべて」の動きベクトルがコード長qsizeに基づいて表現できるベクトルであることもある。
【００６８】
すなわち、次のフレームにおいて「大多数」の動きベクトルがコード長qsizeに基づいて表現できると予測できるのであれば、必ずしも現在のフレームで発生した動きベクトルの「すべて」に着目する必要はなく、「大多数」となる所定の割合の動きベクトルに着目すれば足りる。本実施の形態３では、この観点に立って、コード長更新部６０が、現在のフレームで「大多数」となる所定の割合の動きベクトルに着目してコード長を更新する。
【００６９】
実施の形態４．
次に、図２を参照して、本発明の実施の形態４を説明する。
上述の実施の形態２および３では、それぞれ「すべて」および「大多数」の動きベクトルがコード長qsizeに基づいて表現できるベクトルである場合、コード長psizeをコード長qsizeに更新するとしたが、本実施の形態４では、さらに条件を加えて、符号量の増分が所定の閾値以下となる場合にコード長を更新する。
【００７０】
すなわち、本実施の形態４にかかる動画像符号化装置は、図１に示す前述の実施の形態２または３の構成において、コード長更新部６０に代えて、コード長更新部６０Ａを備える。
【００７１】
このコード長更新部６０Ａは、コード長指定部５０が指定するコード長psizeを用いて現在のフレームで発生した動きベクトルの大きさを表現して入力画像１０を符号化したときに発生する第１の符号量と、現在のフレームでの動きベクトルの大きさを表現するのに足りる最小のコード長qsizeを用いて現在のフレームで発生した動きベクトルを表現して入力画像１０を符号化したときに発生する第２の符号量とを求め、第１の符号量に対する第２の符号量の増分が所定の閾値ＴＨ以下となる場合にコード長指定部５０が指定するコード長psizeをコード長qsizeに更新するように構成される。
【００７２】
以下、具体的に、本実施の形態４にかかるコード長更新部６０Ａの動作（コード長の更新方法）を説明する。
コード長psizeに基づいて符号化した場合とコード長qsizeに基づいて符号化した場合とで発生する動きベクトルの符号量を比較すると、少ないコード長qsizeに基づいて符号化した方が動きベクトル自体の符号量はより少なくなる。しかし、総符号量が減少するか否かについては、符号化器３３で発生する差分データの符号量も考慮して判断する必要がある。
【００７３】
以下、符号化器３３で発生する差分データの符号量を考慮した場合のコード長の更新方法を具体的に説明する。
現在のフレームで歪み評価値４６が最も小さい動きベクトルmvpはコード長psizeに基づいて符号化できるが、コード長qsizeに基づいて符号化することができない場合、動きベクトルmvpを採択することはできない。したがってこの場合、コード長qsizeに基づいた動き探索範囲内で歪み評価値４６が最も小さくなる動きベクトルmvqを用いて動き補償を行って符号化することになる。
【００７４】
ここで、動きベクトルmvpを用いて動き補償して符号化したときの１フレームあたりの符号量をfrcap（第１の符号量）、動きベクトルmvqを用いて動き補償を行って符号化したときの１フレームあたりの符号量をfrcaq（第２の符号量）とすると、符号化部３３においてコード長qsizeに更新することで増加する符号量は、(frcaq-frcap)である。現在のフレームで符号化される動きベクトルの数が十分多く、符号量の増分(frcaq-frcap)が十分小さい場合、次のフレームでコード長qsizeを指定すれば、次のフレームで発生する動きベクトル自体の符号量は削減される。
【００７５】
しかし、コード長qsizeに更新することで削減される動きベクトルの符号量ommvが、コード長qsizeに更新することで反対に増加する符号量(frcaq-frcap)より小さい場合、次のフレームでコード長qsizeを指定すると総符号量が増加し、符号化効率が悪くなる。そこで、コード長更新部６０Ａは、削減できる符号量ommvだけでなく、以下のように、増加する符号量(frcaq-frcap)も評価して、コード長qsizeを指定するかどうかを判定する。
【００７６】
１フレームあたり符号化される動きベクトルの数をafrmvとし、そのうちコード長qsizeに基づいても表すことができる動きベクトルの数をafrmvqとすると、コード長psizeをコード長qsizeに更新することにより１フレームあたり削減される符号量ommvは、ommv=(psize-qsize)×afrmvq[bit]である。
【００７７】
一方、コード長psizeをコード長qsizeに更新することにより１フレームあたり増加する符号量(frcaq-frcap)は、frcaq-frcap=(bcaq-bcap)×(afrmv-afrmvq)[bit]である。ここで、bcaqは、動きベクトルmvqを用いて動き補償を行って符号化したときの１符号化ブロック（画像ブロック）当たりの符号量、bcapは、動きベクトルmvpを用いて動き補償を行って符号化したときの１符号化ブロック当たりの符号量である。
【００７８】
コード長更新部５０は、１フレームあたり増加する符号量(frcaq-frcap)を閾値ＴＨと比較して判定し、現在のフレームにおいてTH≧(frcaq-frcap)なる判定条件が満足された場合に次のフレームではコード長qsizeに更新する。この閾値ＴＨは、１フレームあたり削減される符号量ommvに設定される。ここで、現在のフレームと次のフレームとで動きベクトルの発生特性が変わることを考慮してマージンを設定するために、符号量ommvの値に重み付けした値(w×ommv：たとえばw=0.7)を閾値ＴＨとして設定してもよい。
【００７９】
一例として、連続した複数のフレームにわたって動きベクトルの大きさの範囲が徐々に減少したり、反対に増加する特性がある場合、次のフレームでも同様の特性が期待される。しかし、被写体の動きが急激に変化して動きベクトルの発生特性が変わると、この期待が外れて全体の発生符号量の予想が大きく外れる場合が生じる。そこで、動きベクトルの発生特性が変わることにより発生符号量の予想が外れる可能性を考慮する場合、重み付け係数ｗを大きい値（１に近い少数）に設定する。
【００８０】
実施の形態５．
次に、図１を援用して、本発明の実施の形態５を説明する。
前述の実施の形態２ないし４では、現在のフレームで発生した「すべて」または「大多数」の動きベクトルの大きさに着目してコード長を更新するように構成したが、本実施の形態５では、「すべて」または「大多数」の動きベクトルに限定されることなく、現在のフレームで発生した符号量に着目して次のフレームでのコード長を指定（更新）する。
【００８１】
すなわち、援用する図１に示す本実施の形態５にかかるコード長更新部６０は、コード長指定部５０が指定するコード長psizeを用いて現在のフレームで発生した動きベクトルの大きさを表現して入力画像１０を符号化したときに発生する第１の符号量と、コード長指定部５０が指定するコード長psizeよりも少ないコード長qsizeを用いて現在のフレームで発生した動きベクトルを表現して入力画像１０を符号化したときに発生する第２の符号量とを求め、第１の符号量に対する第２の符号量の増分が所定の閾値ＴＨ以下となる場合にコード長指定部５０が指定するコード長psizeを、このコード長psizeよりも少ないコード長qsizeに更新するように構成される。
【００８２】
以下、本実施の形態５にかかるコード長更新部６０の動作を説明する。
実施の形態４で述べたように、コード長psizeをコード長qsizeに更新することにより１フレームあたり削減される符号量ommvは、ommv=(psize-qsize)×afrmvq[bit]であり、一方、増加する符号量(frcaq-frcap)は、frcaq-frcap=(bcaq-bcap)×(afrmv-afrmvq)[bit]である。
【００８３】
したがって、仮に現在のフレームで「すべて」または「大多数」の動きベクトルがコード長qsizeで表現できるのであれば、コード長qsizeに基づいて表すことができる動きベクトルの数afrmvqが十分大きくなり、ommv>>(frcaq-frcap)となる。
【００８４】
しかし、符号量ommvが符号量(frcaq-frcap)を超えなければ、符号化効率は改善されるので、必ずしも動きベクトルの数afrmvqが十分大きい値である必要はない。すなわち、ommv≧(frcaq-frcap)なる条件を満足しさえすれば、符号量frcapおよびfrcaqに基づいてコード長qsizeを指定することにより、次のフレームでの符号量を削減することができる。
【００８５】
実施の形態６．
次に、図１を援用して、本発明の実施の形態６を説明する。
上述の実施の形態５では、現在のフレームでの符号量に基づき、コード長指定部５０が指定するコード長を更新するようにしたが、本実施の形態６にかかるコード長更新部６０Ａは、第１の符号量に対する第２の符号量の増分が所定の閾値ＴＨを超える場合、符号化部１００により入力画像１０を符号化したときに発生する符号量が所定の閾値以下となる範囲内で、コード長指定部５０が指定するコード長psizeを増やす方向に更新するように構成される。
【００８６】
ここで、前述のように、第１の符号量は、コード長指定部５０が指定するコード長psizeを用いて現在のフレームで発生した動きベクトルの大きさを表現して入力画像１０を符号化したときに発生する符号量であり、第２の符号量は、コード長指定部５０が指定するコード長psizeよりも少ないコード長qsizeを用いて現在のフレームで発生した動きベクトルを表現して入力画像１０を符号化したときに発生する符号量である。
【００８７】
以下、本実施の形態６にかかるコード長更新部６０Ａの動作を説明する。
前述の実施の形態２ないし４では、「すべて」または「大多数」の動きベクトルに着目したので動きベクトルの数afrmvqが十分大きい値であったが、上述の実施の形態５のように、「すべて」または「大多数」の動きベクトルに着目しなくても、１フレームあたり削減される符号量ommvは、ommv≧(frcaq-frcap)を満足する可能性がある。
【００８８】
そこで、上述の実施の形態５では、閾値ＴＨを符号量ommvに設定し、現在のフレームにおいてTH≧(frcaq-frcap)なる判定条件が満足された場合に、コード長psizeに更新する。これにより、「すべて」または「大多数」の動きベクトルに着目することなく、発生符号量の削減を可能とした。
【００８９】
ところで、総符号量の増加分が動きベクトルの符号量の減少分を上回り、TH<(frcaq-frcap)が成り立つ場合もある。ただし、この閾値ＴＨは、符号量ommvまたはこの符号量ommvに重み付け係数ｗを乗じて重み付けした値(w×ommv)に設定される。そこで、本実施の形態６では、総符号量の増加分が動きベクトルの符号量の減少分を上回る場合、動き探索範囲がより広い範囲で許容されるならば、次のフレームではコード長を増やして指定する。
【００９０】
具体的には、入力画像１０を符号化したときに発生する符号量が後述の所定の閾値ＴＳ以下となる範囲内で、コード長指定部５０が指定するコード長psizeを増やす方向に更新し、コード長psizeよりも多いコード長rsizeに更新する。これにより、結果として、発生符号量を低く抑えられ、動き探索可能範囲の中で符号化効率のよいコード長を指定することができる。
【００９１】
ここで、前述の実施の形態１で述べたように、動きベクトルの探索範囲rangeは、range=(2M×R)であり、コード長rsizeの物理的な上限は整数Ｒのビット幅の制約を受けるが、所定の閾値ＴＳを導入してコード長rsizeの上限を定める。すなわち、コード長rsizeの上限は、入力画像１０を符号化したときに発生する符号量が所定の閾値ＴＳ以下となる範囲内で選ばれる。この閾値ＴＳは、符号量を有効に抑えることができる範囲内で適切に設定され、上述の閾値ＴＨであってもよい。
【００９２】
実施の形態７．
次に、図３を参照して、本発明の実施の形態７を説明する。
上述の実施の形態１ないし６では、コード長をコード更新部６０により更新するように構成したが、図３に示す本実施の形態７にかかる動画像符号化装置は、図１に示す前述の実施の形態１の構成において、外部から指定されたコード長を入力するコード長入力部７０をさらに備え、コード長更新部６０は、所定の条件に従って、コード長更新部６０が生成したコード長qsizeまたはコード長入力部７０に入力されたコード長exsizeを選択して、コード長指定部５０が指定するコード長qsizeを更新するように構成される。
【００９３】
以下、本実施の形態７にかかる動画像符号化装置の動作を説明する。
コード長更新部６０は、コード長入力部７０に入力されたコード長exsizeおよびコード長更新部６０が生成したコード長qsizeが、コード長指定部５０が指定するコード長psizeより少ない値であって、いずれのコード長exsizeおよびqsizeを採択してもコード長psizeに基づいて符号化した場合より発生する符号量が少なくなる場合、後述の所定の条件に従っていずれかを採択する。
【００９４】
また、逆に、コード長exsizeおよびコード長qsizeがコード長psizeより多い値ではあるが、いずれのコード長exsizeおよびコード長qsizeを採択してもコード長psizeに基づいて符号化した場合より発生する符号量が少なくなる場合にも同様に、所定の条件に従っていずれかを採択する。
【００９５】
ここで、上述の所定の条件として、コード長更新部６０が生成したコード長qsizeに基づいて符号化したときに発生する符号量と外部から指定されたコード長exsizeに基づいて符号化したときに発生する符号量とを比較し、符号化部１００により入力画像を符号化したときに発生する符号量がより小さくなるコード長を選択することが設定される。
【００９６】
また、上述の所定の条件として、外部からのコード長exsizeをコード長の上限とすることを設定してもよい。この所定の条件に従えば、実際にはコード長exsizeが与える探索範囲より広い範囲で動き探索ができる場合であっても、コード長qsizeがコード長exsizeを超えない場合にコード長qsizeが採択され、コード長qsizeがコード長exsizeを超える場合にコード長exsizeが採択される。
【００９７】
さらに、上述の所定の条件として、コード長exsizeをコード長の下限とすることを設定してもよい。この所定の条件に従えば、たとえば符号化データを蓄積するバッファ３６の容量上の制約により、少ないコード長で動きベクトルを符号化したい状況下において、通常の符号化を行う場合に次のフレームに対しコード長exsizeまたはコード長exsizeより多いコード長q-sizeに更新し、通常以外の符号化を行う場合に強制的に外部からのコード長exsizeを指定して更新することが可能となる。
上述のように、外部からコード長exsizeを導入することにより、符号化の方式に応じてコード長を使い分けることが可能となる。
【００９８】
なお、本実施の形態７では、コード長更新部６０が、コード長exsizeおよびコード長qsizeのいずれかを採択するものとしたが、これに限定されることなく、他の構成要素に割り付けてもよい。また、本実施の形態７では、実施の形態１の構成にコード長入力部７０を付加した場合を例として説明したが、他の実施の形態２ないし６に対して適用してもよい。
【００９９】
実施の形態８．
次に、図４を参照して、本発明の実施の形態８を説明する。
上述の実施の形態７では、外部からのコード長exsizeを選択して指定するように構成したが、本実施の形態８にかかる動画像符号化装置は、図３に示す実施の形態７の構成において、コード長更新部６０に代えて、コード長更新部６０Ｂを備える。
【０１００】
このコード長更新部６０Ｂは、画像ブロックに対して許容される動き探索範囲内で取り得る複数候補のコード長を生成し、上記複数候補のコード長を用いて動きベクトルを表現して入力画像１０をそれぞれ符号化したときに発生する符号量を比較し、複数候補のコード長の中から上記符号量が最も小さくなるコード長を選択するように構成される。
【０１０１】
以下、本実施の形態８にかかる動画像符号化装置の動作を説明する。
上述の実施の形態７によれば、実際には、コード長指定部５０が指定するコード長psizeより少ないコード長がよい符号化効率を与える場合もあり、逆に多いコード長がよい符号化効率を与える場合もある。そこで、本実施の形態８では、コード長指定部５０が指定するコード長psizeよりも多いコード長と少ないコード長とを含む複数のコード長を準備して、最も少ない符号量を与えるコード長を選択する。
【０１０２】
すなわち、コード長更新部６０Ｂは、図５に例示するように、現在のフレームで各画像ブロックに対して許容される動き探索範囲内で取り得る複数候補のコード長psize1ないしpsize4を生成して準備する。ここで、psize1は、最小コード長であり、現在符号化の対象とされているフレームでの最小の動き探索範囲を与える。また、psize4は、最大コード長であり、最大の動き探索範囲を与える。
【０１０３】
コード長更新部６０Ｂは、コード長psize1ないしpsize4のそれぞれのコード長ごとに、歪み評価値４６が最小となる各予測画像ブロックに基づいて符号化したときに符号化器３３で発生する符号量を求めて積算する。１フレーム分の符号化が終わった時点で、各コード長ごとに符号化部３３で発生した１フレーム分の符号量を得る。
【０１０４】
次に、各コード長ごとに符号化部３３で発生した符号量とコード長psizeを変更することに伴う動きベクトルの符号量の増減分とを合わせた総符号量を求める。ここで、コード長exsizeに基づいて符号化したときに発生する総符号量が最小となる場合は、コード長exsizeを選択する。
【０１０５】
また、コード長exsizeに基づいて符号化したときに発生する総符号量が最小とならない場合は、コード長psize1ないしコード長psize4の中から、総符号量が最小となるコード長を選択する。コード長更新部６０Ｂは、コード長指定部５０が指定するコード長psizeを、選択されたコード長に更新する。
【０１０６】
なお、本実施の形態８では、複数候補のコード長の生成から選択まで、コード長更新部６０Ｂが担うものとしたが、これに限定されることなく、他の構成要素に割り付けてもよく、本発明の本質を限定するものではない。また、図５では、複数候補のコード長として、４種類のコード長を例示したが、４種類に限定されることなく、必要に応じて複数候補のコード長を定めればよい。
【０１０７】
実施の形態９．
次に、図３を援用して、本発明の実施の形態９を説明する。
前述の実施の形態７では、所定の条件に従って外部から指定されたコード長を選択するように構成したが、本実施の形態９にかかる動画像符号化装置のコード長更新部６０は、コード長入力部７０に外部から入力されたコード長exsizeを用いて動きベクトルを表現して得られる符号量と、コード長更新部６０が生成したコード長qsizeを用いて上記動きベクトルを表現して得られる符号量とをそれぞれ重み付けして比較し、該比較の結果に基づきコード長を選択するように構成される。
【０１０８】
以下、本実施の形態９にかかる動画像符号化装置の動作を説明する。
前述の実施の形態７では、たとえば、最小となる総符号量を与えるコード長がコード長exsizeであったとき、内部で更新（指定）されるコード長qsize(psize)の値もコード長exsizeと同じ値となる。しかし、この場合、符号化部１００に対して、外部より指定されたコード長exsizeが優先的に選択されて指定されたわけではなく、最小の総符号量を与えるコード長qsize(psize)の値が、コード長exsizeの値に等しくなっているだけである。
【０１０９】
そこで、本実施の形態９にかかる動画像符号化装置のコード長更新部６０は、内部で発生したコード長qsize(psize)に基づいて符号化したときに発生する符号量を重み付けした重み付け符号量と、外部から指定されたコード長exsizeに基づいて符号化したときに発生する符号量を重み付けして比較し、より小さい重み付け符号量を与えるコード長qsize（psize)またはコード長exsizeを選択する。
【０１１０】
このように、各コード長に基づいて符号化したときに発生する符号量を重み付けして比較することにより、符号量（重み付けされていない符号量）が最小となるか否かによらず、外部より指定されたコード長exsizeを優先させて選択することが可能となる。
【０１１１】
なお、本実施の形態９では、コード長更新部６０が、符号量を重み付けして比較し、コード長を選択するものとしたが、これに限定されることなく、他の構成要素に割り付けてもよく、本発明の本質を限定するものではない。
【０１１２】
実施の形態１０．
次に、本発明の実施の形態１０を説明する。
上述の実施の形態１ないし９では、「所定の画像ユニット」を「１フレーム」としたが、本実施の形態１０にかかる動画像符号化装置は、図１に示す前述の実施の形態１の構成において、上記所定の画像ユニットは２以上のフレームから構成され、上記画像ユニットを構成するフレーム数が可変なように構成される。
【０１１３】
たとえば、現在のフレームで発生した動きベクトルの大きさに応じて「所定の画像ユニット」を構成するフレーム数を可変設定するものとした場合、画像の動きの大きさに応じて、コード長の指定（更新）に関する動作を簡略化することができる。
【０１１４】
具体的には、現在のフレームでの動きベクトルの大きさから、次の数フレームでも同様の大きさを有する動きベクトルが発生すると予測される場合、コード長指定部５０は、コード長更新部６０によるコード長の更新を拒否して、現在のフレームに対して指定したコード長を数フレームにわたって維持する。これにより、コード長の更新回数が減少し、更新動作が簡略化される。
【０１１５】
なお、実施の形態１０では、実施の形態１の構成においてフレーム数を可変としたが、他の実施の形態２ないし９に対して適用してもよい。
また、上述した実施の形態１ないし１０では、フレームを単位として画像ユニットを定義したが、１フレームの一部分を画像ユニットとして定義してもよく、必要に応じて画像ユニットの大きさを定義すればよい。さらに、画像ユニットをいくつかに分割して画像ブロックを定義したが、画像ブロックの大きさは、画像ユニットの大きさを超えなければよく、特に限定されない。
【０１１６】
【発明の効果】
以上の説明から明らかなように、本発明によれば以下のような効果を得ることができる。
すなわち、本発明によれば、入力画像を所定の画像ブロックに分割し、上記入力画像とあらかじめ符号化された予測画像とから上記画像ブロックごとに動きベクトルを発生して上記動きベクトルに基づき上記予測画像の動きを補償する動き補償手段を有し、上記動き補償手段により動き補償して上記入力画像を符号化すると共に、指定されたコード長で上記動きベクトルを符号化する符号化手段と、上記画像ブロックからなる所定の画像ユニットを単位として、上記動き補償手段で発生した上記動きベクトルを符号化するため、および上記動き補償手段による次のフレームに対する入力画像の動きベクトルの探索範囲を定めるために、上記符号化手段に対し上記動きベクトルのコード長を指定するコード長指定手段と、上記符号化手段が次の画像ユニットに対する上記入力画像を符号化するに際し、上記動き補償手段が現在の画像ユニットで発生した動きベクトルの大きさに基づき、上記動きベクトルの大きさに応じた動きベクトルの探索範囲を表現するのに足りる最小のコード長を算出し、算出した上記最小のコード長に基づいて上記コード長指定手段が指定するコード長を更新するコード長更新手段とを備えたので、動きベクトルの大きさに応じて符号量を低減させ、符号化効率を改善することができる。
【０１１７】
また、上記コード長更新手段は、上記現在の画像ユニットで発生したすべての動きベクトルの大きさが、上記現在の画像ユニットに対して上記コード長指定手段が指定するコード長より少ないコード長を用いて表現される場合、上記コード長指定手段が指定するコード長を、上記すべての動きベクトルの大きさを表現するのに足りる最小のコード長に更新するので、次の画像ユニット全体での符号量を低く抑えることができる。
【０１１８】
さらに、上記コード長更新手段は、上記現在の画像ユニットで発生した動きベクトルの大多数となる所定の割合の動きベクトルの大きさが、上記現在の画像ユニットに対して上記コード長指定手段が指定するコード長より少ないコード長を用いて表現される場合、上記コード長指定手段が指定するコード長を、上記動きベクトルの大多数となる所定の割合の動きベクトルの大きさを表現するのに足りる最小のコード長に更新するので、次の画像ユニット全体での符号量を実質的に低く抑えることができる。
【０１１９】
さらにまた、上記コード長更新手段は、上記コード長指定手段が指定するコード長を用いて上記現在の画像ユニットで発生した動きベクトルの大きさを表現して上記入力画像を符号化したときに発生する第１の符号量と、上記動きベクトルの大きさを表現するのに足りる最小のコード長を用いて上記現在の画像ユニットで発生した動きベクトルを表現して上記入力画像を符号化したときに発生する第２の符号量とを求め、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値以下となる場合に上記コード長指定手段が指定するコード長を更新するので、次の画像ユニット全体での符号量を有効に低く抑えることができる。
【０１２０】
さらにまた、上記コード長更新手段は、上記コード長指定手段が指定するコード長を用いて上記現在の画像ユニットで発生した動きベクトルの大きさを表現して上記入力画像を符号化したときに発生する第１の符号量と、上記コード長指定手段が指定するコード長よりも少ないコード長を用いて上記現在の画像ユニットで発生した動きベクトルを表現して上記入力画像を符号化したときに発生する第２の符号量とを求め、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値以下となる場合に上記コード長指定手段が指定するコード長を上記コード長指定手段が指定するコード長よりも少ないコード長に更新するので、次の画像ユニット全体での符号量を低く抑えることができる。
【０１２１】
さらにまた、上記コード長更新手段は、上記第１の符号量に対する上記第２の符号量の増分が所定の閾値を超える場合、上記符号化手段により上記入力画像を符号化したときに発生する符号量が上記所定の閾値以下となる範囲内で、上記コード長指定手段が指定するコード長を増やす方向に更新するので、動き探索可能範囲内で符号化効率が良くなるように、次の画像ユニット全体での符号量を有効に低く抑えることができる。
【０１２２】
さらにまた、外部から指定されたコード長を入力するコード長入力手段をさらに備え、上記コード長更新手段は、上記コード長更新手段が生成したコード長に基づいて符号化したときに発生する符号量と、上記コード長入力手段に入力されたコード長に基づいて符号化したときに発生する符号量との比較に基づいて、上記コード長更新手段が生成したコード長または上記コード長入力手段に入力されたコード長を選択して、上記コード長指定手段が指定するコード長を更新するので、所定の条件の下で符号化効率が改善されるように、次の画像ユニット全体での符号量を有効に低く抑えることができる。
【０１２３】
さらにまた、上記コード長更新手段は、上記画像ブロックに対して許容される動き探索範囲内で取り得る複数候補のコード長を生成し、上記複数候補のコード長を用いて上記動きベクトルを表現して上記入力画像をそれぞれ符号化したときに発生する符号量を比較し、上記複数候補のコード長の中から上記符号量が最も小さくなるコード長を選択するので、現在のフレームで許容される探索範囲の中で符号化効率が良くなるように、次の画像ユニット全体での符号量を有効に低く抑えることができる。
【０１２４】
さらにまた、上記コード長更新手段は、上記コード長入力手段に入力されたコード長を用いて上記動きベクトルを表現して得られる符号量と、上記コード長更新手段が生成したコード長を用いて上記動きベクトルを表現して得られる符号量とをそれぞれ重み付けして比較し、該比較の結果に基づきコード長を選択するので、コード長更新手段によるコード長の更新に優先させて、コード長入力手段を介して外部から指定されたコード長を指定することができる。
【０１２５】
さらにまた、上記画像ユニットは２以上のフレームからなり、上記画像ユニットをなすフレーム数を可変としたので、画像の変化の大きさに応じて、次の画像ユニット全体での符号量を低く抑えることができる。
【図面の簡単な説明】
【図１】本発明の実施形態１に係る動画像符号化装置の構成を示すブロック図である。
【図２】本発明の実施形態４に係る動画像符号化装置の構成を示すブロック図である。
【図３】本発明の実施形態７に係る動画像符号化装置の構成を示すブロック図である。
【図４】本発明の実施形態８に係る動画像符号化装置の構成を示すブロック図である。
【図５】本発明の実施形態８に係る動画像符号化装置のコード長更新部が生成するコード長と動き探索範囲との関係を説明するための図である。
【図６】従来技術に係る動画像圧縮装置のブロック図である。
【図７】従来技術に係る動画像圧縮装置の動作の流れを示すフローチャートである。
【図８】従来技術に係る動画像圧縮装置が内部で生成する係数を表す図である。
【符号の説明】
１０  入力画像、１０Ａ  予測画像、３１  画像メモリ、３２  差分演算器、３３  符号化器、３５  可変符号化器、３６  バッファ、３８  復号器、４０  加算器、４４  動き補償予測部、５０  コード長指定部、６０，６０Ａ，６０Ｂコード長更新部、７０  コード長入力部、９０  符号化データ、１００  符号化部。
【図１】
0004583514.tif 000002
【図２】
0004583514.tif 000003
【図３】
0004583514.tif 000004
【図４】
0004583514.tif 000005
【図５】
0004583514.tif 000006
【図６】
0004583514.tif 000007
【図７】
0004583514.tif 000008
【図８】
0004583514.tif 000009