(57)【要約】  ランレベル集計部（１０２）は、１次元データに変換された信号における連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルを集計する。レベル値補正判定部（１０３）は、集計されたランおよびレベルからなる事象のうち、ランの値が予め設定されたラン閾値より大きく、レベルの値が予め設定されたレベル閾値より小さい事象をレベル値の補正を行う事象として決定する。レベル値補正処理部（１０４）は、レベル値の補正を行うと決定された事象のレベルの絶対値を小さくする補正を行う。符号テーブル参照処理部（１０５）は、可変長符号テーブルを参照して、レベル値補正後の事象の可変長符号化を行う。【特許請求の範囲】
【請求項１】
入力された画像ブロックを可変長符号により符号化するための可変長符号化装置であって、
符号化を行おうとする画素ブロックを１次元データに変換する走査変換処理部と、
前記走査変換処理部により変換された１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルを集計するランレベル集計部と、
前記ランレベル集計部において集計されたランおよびレベルからなる事象のうち、ランの値が予め設定されたラン閾値より大きく、レベルの値が予め設定されたレベル閾値より小さい事象をレベル値の補正を行う事象として決定するレベル値補正判定部と、
前記レベル値補正判定部によりレベル値の補正を行うと決定された事象のレベルの絶対値を小さくする補正を行うレベル値補正処理部と、
符号化を行おうとする事象と可変長符号とが対応付けられている可変長符号テーブルを参照して、前記レベル値補正判定部によりレベル値の補正を行わないと判定された事象および前記レベル値補正処理部によりレベル値の補正が行われた事象の可変長符号化を行う符号テーブル参照処理部と、を備えた可変長符号化装置。
【請求項２】
前記レベル値補正判定部は、前記事象が前記可変長符号テーブルに存在せず、レベル補正を行わないと固定長符号化が行われる場合にのみ、当該事象のレベル値補正を行うものと決定する請求項１記載の可変長符号化装置。
【請求項３】
前記レベル値補正処理部は、補正後のレベルの絶対値が補正前のレベルの絶対値より１小さくなるようなレベル値の補正を行う請求項１記載の可変長符号化装置。
【請求項４】
前記レベル値補正処理部は、補正後のレベルの絶対値が補正前のレベルの絶対値より１小さくなるようなレベル値の補正を行う請求項２記載の可変長符号化装置。
【請求項５】
入力された画像ブロックを可変長符号により符号化するための可変長符号化方法であって、
符号化を行おうとする画素ブロックを１次元データに変換するステップと、
前記１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルを集計するステップと、
集計されたランおよびレベルからなる事象のうち、ランの値が予め設定されたラン閾値より大きく、レベルの値が予め設定されたレベル閾値より小さい事象をレベル値の補正を行う事象として決定するステップと、
レベル値の補正を行うと決定された事象のレベルの絶対値を小さくする補正を行うステップと、
符号化を行おうとする事象と可変長符号とが対応付けられている可変長符号テーブルを参照して、レベル値の補正を行わないと判定された事象およびレベル値の補正が行われた事象の可変長符号化を行うステップと、を備えた可変長符号化方法。
【請求項６】
前記レベル値の補正を行う事象を決定するステップでは、前記事象が前記可変長符号テーブルに存在せず、レベル補正を行わないと固定長符号化が行われる場合にのみ、当該事象のレベル値補正を行うものと決定する請求項５記載の可変長符号化方法。
【請求項７】
前記レベルの絶対値を小さくする補正を行うステップでは、補正後のレベルの絶対値が補正前のレベルの絶対値より１小さくなるようなレベル値の補正を行う請求項５記載の可変長符号化方法。
【請求項８】
前記レベルの絶対値を小さくする補正を行うステップでは、補正後のレベルの絶対値が補正前のレベルの絶対値より１小さくなるようなレベル値の補正を行う請求項６記載の可変長符号化方法。
【請求項９】
入力された画像ブロックを可変長符号により符号化するための可変長符号化方法をコンピュータに実行させるためのプログラムであって、
符号化を行おうとする画素ブロックを１次元データに変換する処理と、
前記１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルを集計する処理と、
集計されたランおよびレベルからなる事象のうち、ランの値が予め設定されたラン閾値より大きく、レベルの値が予め設定されたレベル閾値より小さい事象をレベル値の補正を行う事象として決定する処理と、
レベル値の補正を行うと決定された事象のレベルの絶対値を小さくする補正を行う処理と、
符号化を行おうとする事象と可変長符号とが対応付けられている可変長符号テーブルを参照して、レベル値の補正を行わないと判定された事象およびレベル値の補正が行われた事象の可変長符号化を行う処理とをコンピュータに実行させるためのプログラム。
【請求項１０】
前記レベル値の補正を行う事象を決定する処理では、前記事象が前記可変長符号テーブルに存在せず、レベル補正を行わないと固定長符号化が行われる場合にのみ、当該事象のレベル値補正を行うものと決定する請求項９記載のプログラム。
【請求項１１】
前記レベルの絶対値を小さくする補正を行う処理では、補正後のレベルの絶対値が補正前のレベルの絶対値より１小さくなるようなレベル値の補正を行う請求項９記載のプログラム。
【請求項１２】
前記レベルの絶対値を小さくする補正を行う処理では、補正後のレベルの絶対値が補正前のレベルの絶対値より１小さくなるようなレベル値の補正を行う請求項１０記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ符号化技術に関し、特に入力された画像ブロックを可変長符号により符号化するための可変長符号化方法、装置及びそのプログラムに関する。
【背景技術】
【０００２】
動画像信号を記録、あるいは伝送する際の圧縮符号化では、符号化効率を高めるために、可変長符号化が用いられている。可変長符号化は、信号の発生確率の偏りを利用して情報量を削減する方法であり、発生確率が高い情報には短い符号語を割り当て、発生確率が低い情報には長い符号語を割り当てる。ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ)をはじめとする映像符号化方式ではこの可変長符号化が広く利用されている。【０００３】
このような映像符号化方式では、映像信号は、動き補償予測、離散コサイン変換、量子化処理され、水平方向８画素、垂直方向８画素のブロックを単位として可変長符号化されることが一般的である。【０００４】
２次元配列であるブロックデータは、例えば図１に示されるような決められた走査順序にしたがって１次元データに並び替えられる。【０００５】
この１次元のデータ列から、連続するゼロデータの個数であるラン（Ｒｕｎ）と、連続するゼロデータの次に現れる非ゼロの係数の値であるレベル（Ｌｅｖｅｌ）の組合せを生成する。このランとレベルとからなる各事象に対して、符号テーブルを参照して符号化する。符号テーブルは、各事象に可変長符号を割り当てたものであり、あらかじめ用意しておく。【０００６】
しかし、映像の符号化においては事象の種類が多く存在するため、すべての事象の可変長符号を用意しないことが一般的である。つまり、事象の発生頻度が高いものだけに可変長符号を持たせ、事象の発生頻度が低いものは可変長符号化せずに固定長符号化により符号化する。この場合、ランとレベルのそれぞれを固定長符号化する。【０００７】
このように固定長符号化が行われた場合には、可変長符号化による符号と区別する必要があるため、符号が固定長符号であることを表すための特別な符号をランとレベルの固定長符号の前に付加する。この特別な符号はエスケープコードと呼ばれる。【０００８】
したがって固定長符号で符号化された場合、その事象の符号長はランの符号の符号長とレベルの符号の符号長とエスケープコードの符号長を合計したものとなる。【０００９】
図２はＭＰＥＧ−２方式で採用されている可変長符号を行おうとする事象と符号長の対応を示したものである。ランとレベルの値が小さいほど短い符号長になるような符号テーブルになっている。例えば、ランの値が２で、レベルの値が４の事象の場合、１３ビットの符号長の符号により符号化されることになる。【００１０】
そして、図２中にて符号長が記載されていないランとレベルの組合せに対しては固定長符号が用いられる。例えばＭＰＥＧ−２方式ではエスケープコードに６ビット、ランに６ビット、レベルに１２ビット、合計２４ビットを使い固定長符号化される。【００１１】
したがって固定長符号が用いられる事象では、可変長符号が用いられる事象よりも符号長が長くなる。また、可変長符号が用いられる事象においても発生頻度が低い事象は符号長が長くなる。しかし、このような符号長が長い事象が多く発生すると、符号化効率が低下して符号化後の画質が低下する。【００１２】
上記のような可変長符号と固定長符号が混在する符号化方式において、符号長が長くなる固定長符号の発生を抑制する方法の一例が、特開２００３-１８６０１号公報、特開平１０-１７４１０２号公報に記載されている。【００１３】
特開２００３-１８６０１号公報に記載されている符号化方法では、符号テーブルに記載されていない事象が出現したとき、一定の規則にしたがいランおよびレベル値を変換し、再度符号テーブルを参照し可変長符号化することで効率的に可変長符号化をおこなう。【００１４】
特開平１０-１７４１０２号公報に記載されている符号化方法では、長い符号長の符号の発生量が一定量を超えたら、それ以降符号を発生させないようにすることで符号量増加を抑制する。
【発明の開示】
【００１５】
上述した従来の符号化方法では、下記のような問題点があった。
【００１６】
（１）特開２００３-１８６０１号公報で開示されている方法を用いる場合、この方法を符号化方式の機能の一部として定義する必要があり、ＭＰＥＧ−２など既存の符号化方式には適用できないという問題がある。
【００１７】
（２）特開平１０-１７４１０２号公報で開示されている方法を用いた場合、符号化自体を省略するため、符号化後の映像は画質の劣化が目立つものになってしまうという問題がある。
【００１８】
本発明の目的は、画質の劣化を目立たせることなく、長い符号長の符号の発生を抑制し、符号化効率を向上させ、結果として平均的な画質を向上させることが可能な可変長符号化方法、装置およびプログラムを提供することである。
【００１９】
上記目的を達成するために、本発明は、入力された画像ブロックを可変長符号により符号化するための可変長符号化装置であって、
符号化を行おうとする画素ブロックを１次元データに変換する走査変換処理部と、
前記走査変換処理部により変換された１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルを集計するランレベル集計部と、
前記ランレベル集計部において集計されたランおよびレベルからなる事象のうち、ランの値が予め設定されたラン閾値より大きく、レベルの値が予め設定されたレベル閾値より小さい事象をレベル値の補正を行う事象として決定するレベル値補正判定部と、
前記レベル値補正判定部によりレベル値の補正を行うと決定された事象のレベルの絶対値を小さくする補正を行うレベル値補正処理部と、
符号化を行おうとする事象と可変長符号とが対応付けられている可変長符号テーブルを参照して、前記レベル値補正判定部によりレベル値の補正を行わないと判定された事象および前記レベル値補正処理部によりレベル値の補正が行われた事象の可変長符号化を行う符号テーブル参照処理部とを備えている。
【００２０】
また、前記レベル値補正判定部は、前記事象が前記可変長符号テーブルに存在せず、レベル補正を行わないと固定長符号化が行われる場合にのみ、当該事象のレベル値補正を行うものと決定するようにしてもよい。
【００２１】
さらに、前記レベル値補正処理部は、補正後のレベルの絶対値が補正前のレベルの絶対値より１小さくなるようなレベル値の補正を行うようにしてもよい。
【００２２】
本発明によれば、レベル値が小さく、ランの値が大きい事象については、レベルの絶対値が小さくなるようにレベル値の補正を行うようにしてから符号化を行うようにしている。レベル値の補正を行うことにより、補正前は可変長符号テーブルに存在しなかったため固定長符号に符号化されてしまっていた事象が、補正後は可変長符号テーブルに存在するようになれば可変長符号により符号化されることになる。そのため、少ない符号量での符号化が可能となる。また、レベル値を補正する事象は、レベル絶対値が小さく、ランの値が大きい事象のみを対象とし、比較的高い周波数領域でレベルが小さい場所でのみ行われるようにしているので、補正によって生じる誤差は、人間の目には感知し難いものとなる。そして、レベル補正により発生符号量を抑制できるので、補正した場所以降では抑制した分の符号量を以降のデータの符号化に割り当てることが可能になるので符号化後の平均的な画質は向上することになる。
【００２３】
つまり、本発明によれば、人の目につきにくい長い符号長の符号の発生を抑制し、その分の符号量を他の部分の符号化に割り当てることができるため、高画質な映像符号化ができるという効果を得ることができる。
【図面の簡単な説明】
【００２４】
【図１】画素ブロック内の各データの走査順を示す図である。
【図２】可変長符号化における事象と符号長の対応を示す図である。
【図３】本発明の第１の実施形態の可変長符号化装置の構成を示すブロック図である。
【図４】本発明の第１の実施形態の可変長符号化装置の動作を示すフローチャートである。
【図５】本発明の第２の実施形態の可変長符号化装置の動作を示すフローチャートである。
【図６】本発明の第３の実施形態の可変長符号化装置の構成を示すブロック図である。
【図７】本発明の実施例において符号化を行う画素ブロックを示す図である。
【図８】図７に示した画素ブロックの走査変換後のデータ列を示す図である。
【図９】図８に示したデータ列をランとレベルの組にまとめたものを示す図である。
【図１０】図９に示したランとレベルの組（事象）に対してレベル調整を行ったものを示す図である。
【発明を実施するための最良の形態】
【００２５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。【００２６】
（第１の実施形態）
先ず、本発明の第１の実施形態の可変長符号化装置について説明する。図３を参照すると、本発明の第１の実施形態の可変長符号化装置は、走査変換処理部１０１と、ランレベル集計部１０２と、レベル値補正判定部１０３と、レベル値補正処理部１０４と、符号テーブル参照処理部１０５とから構成されている。【００２７】
走査変換処理部１０１は、映像データを入力し、符号化を行おうとする画素ブロックを１次元データに変換する。ランレベル集計部１０２は、走査変換処理部１０１により変換された１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルを集計する。【００２８】
レベル値補正判定部１０３は、ランレベル集計部１０２において集計されたランおよびレベルからなる事象のうち、ランの値が予め設定されたラン閾値より大きく、レベルの値が予め設定されたレベル閾値より小さい事象をレベル値の補正を行う事象として決定する。なお、レベル値補正判定部１０３は、ランの値とレベルの値とからレベル値補正を行うか否かの判定を行うようにせずに、事象が可変長符号テーブルに存在せず、レベル補正を行わないと固定長符号化が行われる場合にのみ、当該事象のレベル値補正を行うものと決定するようにしてもよい。【００２９】
レベル値補正処理部１０４は、レベル値補正判定部１０３によりレベル値の補正を行うと決定された事象のレベルの絶対値を小さくする補正を行う。【００３０】
符号テーブル参照処理部１０５は、符号化を行おうとする事象と可変長符号とが対応付けられている可変長符号テーブルを参照して、レベル値補正判定部１０３によりレベル値の補正を行わないと判定された事象およびレベル値補正処理部１０４によりレベル値の補正が行われた事象の可変長符号化を行う。【００３１】
次に、本実施形態の可変長符号化装置の全体の動作について図４のフローチャートを参照して詳細に説明する。【００３２】
図４は、符号化を行おうとする事象が可変長符号テーブルに存在するか、つまり可変長符号化が可能かどうかということと、レベルが予め設定されたレベル閾値ＬｅｖｅｌＴｈより小さいか否かによりレベル補正を行うかどうかを決定する場合の動作を示すフローチャートである。【００３３】
まず、ランレベル集計部１０２は、画素ブロックの先頭のデータを抽出し、可変長符号化処理を開始する(ステップＡ１)。そして、ランレベル集計部１０２は、抽出データと、先行するゼロデータの個数から、ランとレベルを求める（ステップＡ２）。【００３４】
次に、レベル値補正判定部１０３は、求めたランとレベルから構成される事象が符号化テーブルに存在するかどうかを調べる（ステップＡ３）。そして、符号テーブル参照処理部１０５では、事象が符号化テーブルに存在する場合は符号化テーブルに従い可変長符号化をおこなう（ステップＡ８）。事象が符号化テーブルに存在しない場合は、レベル値補正判定部１０３において、レベルの絶対値があらかじめ用意されたレベル閾値ＬｅｖｅｌＴｈより小さいかどうかを調べる（ステップＡ４）。レベルの絶対値がＬｅｖｅｌＴｈより大きい場合、その事象についてはレベル値の補正が行われず、ステップＡ８にてエスケープコードとそれに続く固定長符号からなる符号を出力する。【００３５】
レベルの絶対値がＬｅｖｅｌＴｈより小さい場合は、レベル値補正処理部１０４において、レベルの値の正負を調べる（ステップＡ５）。そして、レベルの値が正の場合、レベル値補正処理部１０４は、レベルの値を１減算する（ステップＡ６）。また、レベルの値が負の場合、レベル値補正処理部１０４は、レベルの値を１加算する（ステップＡ７）。そして、補正されたレベルの値と、先に求めたランの値からなる事象は、符号テーブル参照処理部１０５において符号化される（ステップＡ８）。【００３６】
次に、画素ブロック内のすべてのデータが符号化されたかどうかが調べられる（ステップＡ９）。そして、すべてのデータの符号化が完了していなければ、ランレベル集計部１０２は、後続データの符号化のためにランとレベルの値をゼロにリセットする（ステップＡ１０）。次に、定められた走査順序にしたがって次のデータが抽出され（ステップＡ１１）、ランレベル集計部１０２において、このデータがゼロかどうかが調べられる（ステップＡ１２）。データの値がゼロの場合は、ランレベル集計部１０２は、ランの値を１加算してステップＡ１１に戻る（ステップＡ１３）。データの値がゼロでない場合は、ランレベル集計部１０２は、この値をレベル値としてステップＡ２に戻る（ステップＡ１４）。すべてのデータの符号化が完了していれば、その画素ブロックの符号化処理は終了する。【００３７】
この図４に示したフローチャートによる処理が行われることにより、本実施形態の可変長符号化装置では、符号化を行おうとする事象が可変長符号テーブルに存在せずに固定長符号となってしまう場合であって、かつ、レベルの絶対値がレベル閾値ＬｅｖｅｌＴｈより小さい場合に、レベルの絶対値が１小さくなるように補正してから符号化をおこなう。レベル値を補正することにより、補正後の事象が符号化テーブルに存在するようになる場合があり、この場合、補正したことにより、可変長符号化が可能になり少ない符号量で符号化できる。【００３８】
補正したことにより、本来の事象とは異なる事象として符号化されるため、補正時に誤差が発生することになるが、補正はレベル絶対値が小さく、ランが大きい場所、つまり比較的高い周波数領域でレベルが小さい場所でのみおこなわれるので、補正による生じる誤差は、人間の目には感知し難いものとなる。【００３９】
そして、レベル補正により発生符号量を抑制できるので、補正した場所以降では抑制した分の符号量を以降のデータの符号化に割り当てることが可能になるので符号化後の平均的な画質は向上することになる。【００４０】
なお、図４に示したフローチャートでは、ランの値の大きさを判定することなくレベル値補正を行うか否かの判定を行っている。しかし、ランの値が小さいほどその事象は可変長テーブルに存在する可能性が高いため、ある事象が可変長符号テーブルに存在せず、レベルの絶対値がレベル閾値よりも小さい場合、必然的にランの値はある値より大きな値となる。そのため、符号化を行おうとする事象が可変長符号テーブルに存在するか否かを判定することにより、間接的にはランの値の大きさを判定していることになる。【００４１】
（第２の実施形態）
次に、本発明の第２の実施形態の可変長符号化装置について説明する。上記で説明した第１の実施形態の可変長符号化装置の動作を説明する図４のフローチャートでは、符号化を行うとする事象が可変長符号テーブルに存在せず、かつ、レベルの値がレベル閾値ＬｅｖｅｌＴｈより小さい場合にレベル補正を行うようにしていた。本実施形態の可変長符号化装置では、符号化を行おうとする事象のランの値がラン閾値ＲｕｎＴｈより大きいか否かということと、レベルが予め設定されたレベル閾値ＬｅｖｅｌＴｈより小さいか否かによりレベル補正を行うかどうかを決定するようにする。【００４２】
次に、図５のフローチャートを参照して本実施形態の可変長符号化装置の動作について説明する。本実施形態の可変長符号化装置の構成についても、図３に示した可変長符号化装置と同様な構成であるため、図３中の符号を参照して説明を行う。【００４３】
まず、画素ブロックの先頭のデータを抽出し、可変長符号化処理を開始する(ステップＢ１)。次に、ランレベル集計部１０２は、抽出データと、先行するゼロデータの個数から、ランとレベルを求める（ステップＢ２）。【００４４】
次に、レベル値補正判定部１０３は、求めたランがあらかじめ用意されたラン閾値ＲｕｎＴｈより大きいかどうかを調べる（ステップＢ３）。そして、ランがＲｕｎＴｈより小さい場合は、符号テーブル参照処理部１０５は、符号化テーブルに従い可変長符号化、もしくは固定長符号化をおこなう（ステップＢ８）。ランがラン閾値ＲｕｎＴｈより大きい場合は、レベル値補正版知恵部１０３は、レベルの絶対値があらかじめ用意されたレベル閾値ＬｅｖｅｌＴｈより小さいかどうかを調べる（ステップＢ４）。レベルの絶対値がレベル閾値ＬｅｖｅｌＴｈより大きい場合、レベル値の補正は行われず、符号テーブル参照処理部１０５は、可変長符号テーブルを参照して、可変長符号化もしくは固定長符号化をおこなう（ステップＢ８）。【００４５】
そして、レベルの絶対値がレベル閾値ＬｅｖｅｌＴｈより小さい場合は、レベル値補正処理部１０４は、レベルの値の正負を調べる（ステップＢ５）。そして、レベルの値が正の場合、レベル値補正処理部１０４は、レベルの値を１減算する（ステップＢ６）。また、レベルの値が負の場合、レベル値補正処理部１０４は、レベルの値を１加算する（ステップＢ７）。そして、補正されたレベルの値と、先に求めたランの値からなる事象は、符号テーブル参照処理部１０５において符号化される。（ステップＢ８）
次に、画素ブロック内のすべてのデータが符号化されたかどうかを調べる（ステップＢ９）。そして、すべてのデータの符号化が完了していなければ、ランレベル集計部１０２は、後続データの符号化のためにランとレベルの値をゼロにリセットする（ステップＢ１０）。次に、定められた走査順序にしたがって次のデータを抽出し（ステップＢ１１）、ランレベル集計部１０２において、このデータがゼロかどうかを調べる（ステップＢ１２）。データの値がゼロの場合は、ランレベル集計部１０２は、ランの値を１加算してステップＢ１１に戻る（ステップＢ１３）。データの値がゼロでない場合は、ランレベル集計部１０２は、この値をレベル値としてステップＢ２に戻る（ステップＢ１４）。すべてのデータの符号化が完了していれば、その画素ブロックの符号化処理を終了する。【００４６】
この図５に示したフローチャートによる処理が行われることにより、本実施形態の可変長符号化装置では、符号化を行おうとする事象のレベルの絶対値がレベル閾値ＬｅｖｅｌＴｈより小さく、かつ、ランの値がラン閾値より大きい場合に、レベルの絶対値が１小さくなるように補正してから符号化をおこなう。レベル値を補正することにより、補正後の事象が補正前の事象よりも符号長が短くなる場合がある。この場合、補正したことにより、より少ない符号量で符号化できる。【００４７】
補正したことにより、本来の事象とは異なる事象として符号化されるため、補正時に誤差が発生することになるが、補正はレベル絶対値が小さく、ランが大きい場所、つまり比較的高い周波数領域でレベルが小さい場所でのみおこなわれるので、補正による生じる誤差は、人間の目には感知しづらいものとなる。【００４８】
そして、レベル補正により発生符号量を抑制できるので、補正した場所以降では抑制した分の符号量を以降のデータの符号化に割り当てることが可能になるので符号化後の平均的な画質は向上することになる。【００４９】
（第３の実施形態）
次に、本発明の第３の実施形態の可変長符号化装置について図６を参照して詳細に説明する。【００５０】
本発明の第３の実施形態は、上述した第１、第２の実施形態に示される可変長符号化方法をコンピュータシステムにより実行する場合についての具体的な構成を示したものである。図６は、本発明の第３の実施形態におけるコンピュータシステムを示すブロック図である。【００５１】
このコンピュータシステムには、プログラム制御プロセッサ４０１が装備されている。プログラム制御プロセッサ４０１には、入力データバッファ４１１および出力データバッファ４１２の他に、必要なプログラムを格納したプログラムメモリ４０２と符号テーブルメモリ４１３が接続されている。【００５２】
プログラムメモリ４０２に格納されるプログラムモジュールは、メインプログラムの他に、走査変換処理４１４、ランレベル集計処理４１５、レベル値補正判定処理４１６、レベル値補正処理４１７、符号テーブル参照処理４１８を実現するためのプログラムにより構成される。【００５３】
メインプログラムは、可変長符号化を実行する主プログラムである。走査変換処理４１４、ランレベル集計処理４１５、レベル値補正判定処理４１６、レベル値補正処理４１７、符号テーブル参照処理４１８のプログラムモジュールは、図３に示した走査変換処理部１０１、ランレベル集計部１０２、レベル値補正判定部１０３、レベル値補正処理部１０４と、符号テーブル参照処理部１０５をそれぞれ機能的に実現する。メインプログラムおよび各機能モジュールをプログラム制御プロセッサ４０１で実行することで、本発明による可変長符号化が実行される。【００５４】
以上第１から第３の実施形態について説明を行ったが、この可変長符号化方法を例えばＭＰＥＧ―２アルゴリズムに基づく動画像圧縮方法に適用してもよいが、勿論本発明はこのような場合には限定されない。本発明は、可変長符号化を用いるものであれば全ての方法に適用可能であることは言うまでもない。
【実施例】
【００５５】
次に、具体的な実施例を用いて本発明の具体的な動作について説明を行う。【００５６】
ここでは、図７に示す画素ブロックのデータが入力されたときの、符号化を考える。ランとレベルの組合せによる可変長符号は、図２に示した符号長をもつものとする。【００５７】
図２に記載されていない事象については固定長符号をおこなうものとし、その符号長は２４ビットであるものとする。また、画素ブロックの符号化における最後の非ゼロデータの後に、その画素ブロックの終端であることをあらわす２ビットの符号（ＥＯＢコード）を付加する。【００５８】
また、本実施例では固定長符号化となるケースで、レベル絶対値が２より小さく、かつランが１７より大きい場合にレベル補正をおこなうものとする。【００５９】
画素ブロックは図１で示されたジグザグスキャン順で走査され、図８に示したような１次元データに変換される。この１次元データは図９に示したように、ランとレベルの組合せであらわすことができる。【００６０】
この場合図９の下段に示されるように、図２の表と照らし合わせると、この画素ブロックを符号化するために９５（１４＋１４＋５＋１３＋８＋１７＋２４）ビットの符号量が必要となる。本実施例ではレベル絶対値が２より小さく、かつランが１７より大きい場合にレベル補正をおこなうため、最後の事象（レベルの値１、ランの値１９の事象）でレベルの補正が発生する。本来のレベルが１であるため、１減算してこの事象ではレベルがゼロとなる。【００６１】
このようにレベルの補正をおこなったあとのランとレベルの組合せは図１０のようになり、この画素ブロックを符号化するために必要となる符号量は７１（１４＋１４＋５＋１３＋８＋１７）ビットとなり、２４ビット分の符号量を抑制できる。補正した事象があるため、この画素ブロックには誤差が発生することになるが、抑制した２４ビット分の符号量を以降の符号化のために使うことができるようになるので映像全体の画質は向上することになる。
【図１】
2006059424.tif 000002
【図２】
2006059424.tif 000003
【図３】
2006059424.tif 000004
【図４】
2006059424.tif 000005
【図５】
2006059424.tif 000006
【図６】
2006059424.tif 000007
【図７】
2006059424.tif 000008
【図８】
2006059424.tif 000009
【図９】
2006059424.tif 000010
【図１０】
2006059424.tif 000011
【手続補正書】
【提出日】平成18年7月6日(2006.7.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】請求の範囲
【請求項１】  入力された画像ブロックを可変長符号により符号化するための可変長符号化装置であって、
画素ブロックを１次元データに変換する走査変換処理部と、
前記１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルを集計するランレベル集計部と、
符号化を行おうとするランとレベルとの組み合わせと可変長符号とが対応付けられている可変長符号テーブルを参照してレベル値の補正を行うか否かを決定するレベル値補正判定部と、
前記レベル値補正判定部により前記レベル値の補正を行うと決定された場合、前記レベル値を補正するレベル値補正処理部と、
前記可変長符号テーブルを参照して、可変長符号化を行う符号テーブル参照処理部とを備え、
前記レベル値補正判定部は、ランとレベルとの組み合わせが前記可変長符号テーブルに存在しない場合に、前記可変長符号テーブルに存在するレベルとランとの組み合わせのうち前記レベルに最も近いレベルとランとの組み合わせへと補正する可変長符号化装置。
【請求項２】  前記レベル値補正判定部は、前記可変長符号テーブルに存在しないランとレベルとの組み合わせのうち、前記レベルの絶対値が小さく、且つ周波数の高い領域のみを補正対象とすることを特徴とする請求項１に記載の可変長符号化装置。
【請求項３】  前記レベル値補正判定部は、前記可変長符号テーブルに存在しないレベルとランとの組み合わせのうち、レベル値を１だけ変化させた場合に前記可変長符号テーブルに存在するレベルと一致する前記レベルとランとの組み合わせのみを補正対象とすることを特徴とする請求項１に記載の可変長符号化装置。
【請求項４】  前記レベル値補正判定部は、前記可変長符号テーブルに存在しないレベルとランとの組み合わせのうち、レベル値を１だけ変化させた場合に前記可変長符号テーブルに存在するレベルと一致する前記レベルとランとの組み合わせのみを補正対象とすることを特徴とする請求項２に記載の可変長符号化装置。
【請求項５】  入力された画像ブロックを可変長符号により符号化するための可変長符号化方法であって、
画素ブロックを１次元データに変換するステップと、
前記１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルとを集計するステップと、
符号化を行おうとするランとレベルとの組み合わせと可変長符号とが対応付けられている可変長符号テーブルを参照してレベル値の補正を行うか否かを決定するステップと、
前記レベル値の補正を行うと決定された場合、前記レベル値を補正するステップと、
前記可変長符号テーブルを参照して、可変長符号化を行うステップとを備え、
前記レベル値の補正を行うか否かを決定するステップは、ランとレベルとの組み合わせが前記可変長符号テーブルに存在しない場合に、前記可変長符号テーブルに存在するレベルとランとの組み合わせのうち前記レベルに最も近いレベルとランとの組み合わせへと補正する可変長符号化方法。
【請求項６】  前記レベル値の補正を行うか否かを決定するステップは、前記可変長符号テーブルに存在しないランとレベルとの組み合わせのうち、前記レベルの絶対値が小さく、且つ周波数の高い領域のみを補正対象とすることを特徴とする請求項５に記載の可変長符号化方法。
【請求項７】  前記レベルの補正を行うか否かを決定するステップは、前記可変長符号テーブルに存在しないレベルとランとの組み合わせのうち、レベル値を１だけ変化させた場合に前記可変長符号テーブルに存在するレベルと一致する前記レベルとランとの組み合わせのみを補正対象とすることを特徴とする請求項５に記載の可変長符号化方法。
【請求項８】  前記レベルの補正を行うか否かを決定するステップは、前記可変長符号テーブルに存在しないレベルとランとの組み合わせのうち、レベル値を１だけ変化させた場合に前記可変長符号テーブルに存在するレベルと一致する前記レベルとランとの組み合わせのみを補正対象とすることを特徴とする請求項６に記載の可変長符号化方法。
【請求項９】  入力された画像ブロックを可変長符号により符号化するための可変長符号化方法をコンピュータに実行させるためのプログラムであって、
画素ブロックを１次元データに変換する処理と、
前記１次元データにおける連続するゼロデータの個数であるランと、連続したゼロデータの次に現れる非ゼロの係数の値であるレベルとを集計する処理と、
符号化を行おうとするランとレベルとの組み合わせと可変長符号とが対応付けられている可変長符号テーブルを参照してレベル値の補正を行うか否かを決定する処理と、
前記レベル値の補正を行うと決定された場合、前記レベル値を補正する処理と、
前記可変長符号テーブルを参照して、可変長符号化を行う処理とをコンピュータに実行させ、
前記レベル値の補正を行うか否かを決定する処理は、ランとレベルとの組み合わせが前記可変長符号テーブルに存在しない場合に、前記可変長符号テーブルに存在するレベルとランとの組み合わせのうち前記レベルに最も近いレベルとランとの組み合わせへと補正するプログラム。
【請求項１０】  前記レベル値の補正を行うか否かを決定する処理は、前記可変長符号テーブルに存在しないランとレベルとの組み合わせのうち、前記レベルの絶対値が小さく、且つ周波数の高い領域のみを補正対象とすることを特徴とする請求項９に記載のプログラム。
【請求項１１】  前記レベルの補正を行うか否かを決定する処理は、前記可変長符号テーブルに存在しないレベルとランとの組み合わせのうち、レベル値を１だけ変化させた場合に前記可変長符号テーブルに存在するレベルと一致する前記レベルとランとの組み合わせのみを補正対象とすることを特徴とする請求項９に記載のプログラム。
【請求項１２】  前記レベルの補正を行うか否かを決定する処理は、前記可変長符号テーブルに存在しないレベルとランとの組み合わせのうち、レベル値を１だけ変化させた場合に前記可変長符号テーブルに存在するレベルと一致する前記レベルとランとの組み合わせのみを補正対象とすることを特徴とする請求項１０に記載のプログラム。
【国際調査報告】
2006059424.tif 000012
2006059424.tif 000013
2006059424.tif 000014
2006059424.tif 000015