(57)【要約】【課題】本発明は、表示映像に影響を与えることなく且つ容易に特定されないマークをビデオストリームに含める符号化装置及び符号化方法を提供することを目的とする。【解決手段】符号化装置は、入力データが第１の符号表と一致する場合に入力データに対応する第１の符号表の第１の符号を出力し、入力データが第１の符号表と一致しない場合に入力データに対応する第２の符号表の第２の符号を出力する符号化部と、入力データが第１の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部を含み、条件判定部により入力データが第１の符号表と一致するデータであり且つ所定の条件を満たすと判断されると、符号化部に第１の符号の代わりに第２の符号を出力させることを特徴とする。【選択図】図６
2009055124.tif 000002
【特許請求の範囲】
【請求項１】
入力データが第１の符号表と一致する場合に該入力データに対応する該第１の符号表の第１の符号を出力し、該入力データが該第１の符号表と一致しない場合に該入力データに対応する第２の符号表の第２の符号を出力する符号化部と、
該入力データが該第１の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部
を含み、該条件判定部により該入力データが該第１の符号表と一致するデータであり且つ該所定の条件を満たすと判断されると、該符号化部に該第１の符号の代わりに該第２の符号を出力させることを特徴とする符号化装置。
【請求項２】
該所定の条件は、該入力データが該第１の符号表中の特定のパターンと一致するデータであることを少なくとも条件の一部とすることを特徴とする請求項１記載の符号化装置。
【請求項３】
該所定の条件は、入力データストリーム中で該特定のパターンと一致する複数個の入力データのうち特定のものを指定する条件を含むことを特徴とする請求項２記載の符号化装置。
【請求項４】
該入力データは各フレームが複数のスライス及び複数のブロックを含む映像データであり、該所定の条件は、該フレーム、該スライス、及び該ブロックの少なくとも１つを参照して該複数個の入力データのうち特定のものを指定することを特徴とする請求項３記載の符号化装置。
【請求項５】
該第１の符号表は可変長符号表であり該第２の符号表は固定長符号表であることを特徴とする請求項１記載の符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に符号化装置に関し、詳しくは可変長符号化処理を用いた符号化装置に関する。
【背景技術】
【０００２】
図１は、ＭＰＥＧ方式に基づく一般的なビデオ符号化装置のブロック構成図である。図１のビデオ符号化装置１０は、ＤＣＴ部１１、量子化部１２、可変長符号化部１３、逆量子化部１４、逆ＤＣＴ部１５、フレームメモリ１６、動き予測部１７、及び減算器１８を含む。
【０００３】
まず入力ビデオ信号に対して、動き予測処理に基づいた画像間の差分を減算器１８により計算し、差分信号を求める。その差分信号に対してＤＣＴ部１１によるＤＣＴ（Discrete Cosine Transform）変換処理及び量子化部１２による量子化処理を施した後、量子化後のＤＣＴ係数を可変長符号化部１３により可変長符号化処理することによりビデオストリームを生成して出力する。この処理と並行して、量子化後の信号に逆ＤＣＴ部１５による逆量子化処理及び逆ＤＣＴ部１５による逆ＤＣＴ変換処理を施して、得られたデコード画像をフレームメモリ１６に一時的に保存する。動き予測部１７が、フレームメモリ１６に保存されたデコード画像を演算により求めた動きベクトル分だけ移動させて画像を再構築するとともに、減算器１８が、その再構築画像と入力ビデオ信号の元画像との差分を求めることにより、上記動き予測処理を実行する。なお入力ビデオ信号中のフレーム内符号化ピクチャは、そのピクチャの情報のみによって符号化され、動き予測処理の対象とはならない。
【０００４】
図２は、ＭＰＥＧ方式に基づく一般的なビデオ復号装置のブロック構成図である。図２のビデオ復号装置２０は、可変長復号化部２１、逆量子化部２２、逆ＤＣＴ部２３、フレームメモリ２４、動き補償部２５、及び加算部２６を含む。
【０００５】
ビデオ復号装置２０では、受信したビデオストリームを可変長復号化部２１による可変長復号化により量子化後のＤＣＴ係数信号に戻し、量子化後のＤＣＴ係数信号に逆量子化部２２による逆量子化処理及び逆ＤＣＴ部２３による逆ＤＣＴ変換処理を施すことにより、デコードされた差分画像を復元する。この処理と並行して、逆ＤＣＴ変換処理後のデコード画像を一時的にフレームメモリ２４に保存する。動き補償部２５が、フレームメモリ２４に保存されたデコード画像を動きベクトル分だけ移動させて画像を再構築し、加算部２６が、この再構築画像と差分画像とを加算することにより動き補償処理を実行する。加算部２６による加算後の信号が、復号されたビデオ信号として出力される。なおフレーム内符号化ピクチャは、そのピクチャの情報のみによって復号化され、動き補償処理の対象とはならない。
【０００６】
上記のようなビデオ符号化装置１０で生成されビデオ復号装置２０により復号されるべきビデオストリームを配布する場合、配布ビデオストリームに何らかのマークをつけることにより、そのビデオストリームが正当な権利（ライセンス）に基づいて符号化されたものであることを示すことが望まれる。このようなマークの有無により、正当な権利に基づいて符号化されたビデオストリームであるか否かを判断できるようにすれば、不当な手段（違法コピー等）を用いて生成されたビデオストリームを排除することが可能になる。
【０００７】
例えば、元の映像の一部分に会社名等のロゴをマークとして挿入したり、またはビデオストリームのユーザーデータ領域に個別情報をマークとして添付したりする手法が考えられる。しかしながら映像にロゴを挿入してしまうと、表示される画面に常にロゴが表示されることになり、観賞性を著しく損なってしまう恐れがある。またユーザーデータ領域に添付された個別情報は、エディタ等で容易に改竄されてしまう恐れがあるため、このような個別情報を添付する手法は最適なものであるとは言えない。即ち、ユーザーデータ領域等の容易に特定されてしまう位置に個別情報等の容易に識別可能なマークを挿入する手法は、改竄が容易であるために好ましくない。
【特許文献１】特開平６−１０５２９６号公報
【特許文献２】特開平９−１２８８７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上を鑑みて本発明は、表示映像に影響を与えることなく且つ容易に特定されないマークをビデオストリームに含める符号化装置及び符号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
符号化装置は、入力データが第１の符号表と一致する場合に該入力データに対応する該第１の符号表の第１の符号を出力し、該入力データが該第１の符号表と一致しない場合に該入力データに対応する第２の符号表の第２の符号を出力する符号化部と、該入力データが該第１の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部を含み、該条件判定部により該入力データが該第１の符号表と一致するデータであり且つ該所定の条件を満たすと判断されると、該符号化部に該第１の符号の代わりに該第２の符号を出力させることを特徴とする。
【００１０】
符号化方法は、入力データが第１の符号表と一致し且つ所定の条件を満たさない場合に該入力データに対応する該第１の符号表の符号を出力し、該入力データが該第１の符号表と一致しない場合に該入力データに対応する第２の符号表の符号を出力し、該入力データが該第１の符号表と一致するデータであり且つ該所定の条件を満たす場合に該入力データに対応する該第２の符号表の符号を出力する各段階を含むことを特徴とする。
【発明の効果】
【００１１】
本発明の少なくとも１つの実施例によれば、表示映像に影響を与えることなく、且つ容易に特定、改竄、模倣されないマークをビデオストリームに含めることができる。また本発明の実施例により生成されたビデオストリームは、ＭＰＥＧの規格に完全に準拠するものであるので、受信側の復号化装置で何らの問題もなく正常に復号化することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１３】
図３は、本発明によるＭＰＥＧ方式に基づくビデオ符号化装置のブロック構成図である。図３において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００１４】
図３のビデオ符号化装置３０は、ＤＣＴ部１１、量子化部１２、可変長符号化部３３、逆量子化部１４、逆ＤＣＴ部１５、フレームメモリ１６、動き予測部１７、及び減算器１８を含む。図１の従来技術のビデオ符号化装置１０と比較して、可変長符号化部１３が可変長符号化部３３により置き換えられている点が異なる。
【００１５】
可変長符号化部３３における可変長符号化においては、量子化処理後のＤＣＴ係数に対してゼロランレングス符号が割り当てられる。ゼロランレングス符号とは、符号化対象となる信号中の連続するゼロレベル信号とそれに続くゼロレベル以外の信号との組み合わせに対して一つの符号を割り当てる方式である。この際、複数個のゼロレベル信号の数（ＲＵＮ）と、ゼロレベル以外の信号の値（ＬＥＶＥＬ）と、符号とを組として第１の符号表を作成しておく。ＲＵＮとＬＥＶＥＬとの組み合わせの頻度に応じてハフマン符号を割り当てることにより、頻度の高い組み合わせには短い符号を割り当て、頻度の低い組み合わせに対しては長い符号を割り当てる。即ち、第１の符号表は可変長符号表である。
【００１６】
図４は、可変長符号表の一例を示す図である。図４に示されるように、可変長符号表には、可変長符号が、ＲＵＮ及びＬＥＶＬの組み合わせと対応付けて格納されている。例えばＲＵＮが１でＬＥＶＥＬが１、即ち符号化対象データが"０１"である場合、可変長符号０１０ｓが割り当てられる。ここで末尾のｓは符号を表し、ｓ＝０ならＬＥＶＥＬの値が正であることを示し、ｓ＝１ならＬＥＶＥＬの値が負であることを示す。従って、符号化対象データが"０，＋１"に対応する可変長符号は０１００であり、符号化対象データが"０，−１"に対応する可変長符号は０１０１である。また例えば、例えばＲＵＮが０でＬＥＶＥＬが−３、即ち符号化対象データが"−３"である場合、可変長符号は０１１１１となる。また例えば、ＲＵＮが３でＬＥＶＥＬが＋１、即ち符号化対象データが"０，０，０，＋１"である場合、可変長符号は００１１１０となる。
【００１７】
一般的に、ＲＵＮとＬＥＶＥＬの組み合わせは多数存在するため、発生確率の高いＲＵＮ及びＬＥＶＥＬの組み合わせの分のみを図４のような可変長符号化表として用意しておく。可変長符号表に存在しないＲＵＮ及びＬＥＶＥＬの組み合わせに対しては、エスケープ（Ｅｓｃａｐｅ）符号と、それに続くＲＵＮに対応する固定長符号、更にそれに続くＬＥＶＥＬに対応する固定長符号が用いられる。ＲＵＮに対する固定長符号表及びＬＥＶＥＬに対する固定長符号表は第２の符号表として用意されている。
【００１８】
図５は、ＲＵＮに対する固定長符号表及びＬＥＶＥＬに対する固定長符号表を示す図である。図５（ａ）にはＲＵＮに対する固定長符号表が示される。図に示されるように、例えばＲＵＮが２の場合には６ビットの固定長符号００００１０が使用される。図５（ｂ）にはＬＥＶＥＬに対する固定長符号表が示される。図に示されるように、例えばＬＥＶＥＬが＋２０４７の場合には、１２ビットの固定長符号０１１１１１１１１１１１が使用される。従って、ＲＵＮが２でＬＥＶＥＬが＋２０４７の場合、即ち符号化対象データが"０，０，＋２０４７"である場合、固定長符号は００００１０＋０１１１１１１１１１１１となる（"＋"記号は見やすくするために挿入したものであり実際には存在しない）。この１８ビットの固定長符号が、エスケープ符号０００００１（図４の可変長符号表に定義されている）に続いて出力される。
【００１９】
このようにエスケープ符号を用いると、符号長が長くなってしまうという短所がある。しかしエスケープ符号を用いさえすれば、全てのＲＵＮ及びＬＥＶＥＬの組み合わせに対して符号を割り当てることが可能となる。
【００２０】
一般に、図５の固定長符号表を用いるのは、符号化対象データが図４の可変長符号表に存在しないＲＵＮとＬＥＶＥＬとの組み合わせの場合である。即ち、図１に示す従来技術の可変長符号化部１３では、符号化対象である入力データ（入力ビデオ信号の量子化ＤＣＴ係数）が可変長符号表に一致する場合にその入力データに対応する可変長符号表の符号を出力し、入力データが可変長符号表と一致しない場合にその入力データに対応する固定長符号表の符号を出力する。
【００２１】
それに対して本願発明の可変長符号化部３３においては、以下に説明するように、図４の可変長符号表に存在するＲＵＮとＬＥＶＥＬとの組み合わせの符号化対象データであっても、所定の条件を満たす場合には、図５の固定長符号表を用いて、（エスケープ符号）＋（ＲＵＮの固定長符号）＋（ＬＥＶＥＬの固定長符号）を符号化対象データに割り当てる。即ち、入力データが可変長符号表と一致するデータであり且つ所定の条件を満たすと判断されると、その入力データに対応する可変長符号表の符号ではなく、その入力データに対応する固定長符号表の符号を出力するように構成する。
【００２２】
上記の所定の条件は、入力データが可変長符号表中の特定のパターンと一致するデータであることを少なくとも条件の一部としてよい。即ち、図４の可変長符号表中で例えばＲＵＮが２でＬＥＶＥＬが−１のパターン（組み合わせ）を、上記の所定の条件としてもよい。この場合、入力データストリーム中に入力データ"０，０，−１"（ＲＵＮが２でＬＥＶＥＬが−１）が出現すると、本来この入力データに対応する可変長符号は００１０１１であるが、図３の可変長符号化部３３は、この可変長符号の代わりに、図５の固定長符号表から抽出された固定長符号００００１０＋１１１１１１１１１１１１をエスケープ符号の後に続けて出力する。
【００２３】
また上記所定の条件は、入力データストリーム中で特定のパターンと一致する複数個の入力データのうち特定のものを指定する条件を含んでよい。例えば上記の例では、入力データストリーム中に出現する入力データ"０，０，−１"を全てエスケープ符号に続く固定長符号に変換してしまうと、符号化効率の劣化が好ましくないレベルに達してしまう可能性がある。また正当な権利に基づくビデオストリームであるか否かを示すマークを改竄或いは模倣しようとするものにとっては、本来可変長符号表に対応する入力データ"０，０，−１"が常にエスケープ符号に続く固定長符号に置き換えられていると、比較的容易にそのマーク生成のアルゴリズムが解読されてしまう。
【００２４】
そこで入力データストリーム中に出現する複数の入力データ"０，０，−１"の全てに対して、エスケープ符号に続く固定長符号を割り当てるのではなく、そのような複数の入力データのうちで特定のものに対してのみ、エスケープ符号に続く固定長符号を割り当て、それ以外には通常の可変長符号を割り当てるようにしてよい。例えば、後述するように、各ピクチャ（フレーム）内で最初に出現した入力データ"０，０，−１"のみをエスケープ符号に続く固定長符号に変換し、それ以外の入力データ"０，０，−１"を可変長符号に変換してよい。
【００２５】
図６は、可変長符号化部３３が実行する可変長符号化処理の手順を示すフローチャートである。この可変長符号化処理は、入力ビデオ信号の着目ブロックの量子化処理後のＤＣＴ係数に対して実行される。
【００２６】
ステップＳ１において、量子化処理後のＤＣＴ係数を低周波数領域側から高周波数領域側に向けて走査し、ゼロ以外の係数が存在するか否かを判定する。ゼロ以外の係数が出現すると（ステップＳ１でＹｅｓ）、ステップＳ２において、ＲＵＮとＬＥＶＥＬとの組み合わせ（ＲＵＮ，ＬＥＶＥＬ）を抽出する。
【００２７】
ステップＳ３で、抽出された（ＲＵＮ，ＬＥＶＥＬ）の組み合わせが可変長符号表に存在するか否かを判定する。存在する場合には、ステップＳ４において、抽出された（ＲＵＮ，ＬＥＶＥＬ）の組み合わせが指定された条件を満たしているか否かを判定する。指定された条件を満たしていない場合には、ステップＳ５で、抽出された（ＲＵＮ，ＬＥＶＥＬ）の組み合わせに対して、可変長符号表に従い可変長符号を割り当てる。
【００２８】
抽出された（ＲＵＮ，ＬＥＶＥＬ）の組み合わせが可変長符号表に存在しないとステップＳ３で判定された場合、或いは抽出された（ＲＵＮ，ＬＥＶＥＬ）の組み合わせが指定された条件を満たしているとステップＳ４で判定された場合、処理はステップＳ６に進む。ステップＳ６では、エスケープ符号を挿入する。更にステップＳ７で、抽出された（ＲＵＮ，ＬＥＶＥＬ）の組み合わせに対して固定長符号表の対応する固定長符号を割り当てる。以上ステップＳ６及びＳ７の処理により、エスケープ符号とそれに続く固定長符号として、符号化データが生成される。
【００２９】
ステップＳ５又はステップＳ７で符号化データが生成されると、ステップＳ１に戻り以降の処理を繰り返す。ステップＳ１でゼロ以外の係数が存在しない場合、即ち着目ブロックの終わりまでゼロが続く場合には、ステップＳ８に進み、ＥＯＢ（End of Block）符号を挿入する。即ち、図４の可変長符号表に示すＥＯＢに対応する符号を符号化データとして出力する。以上で、着目ブロックに対する符号化処理が終了する。
【００３０】
図７は、図３の可変長符号化部３３の構成の一例を示すブロック構成図である。図７の可変長符号化部３３は、係数位置カウンター４１、レベル検出部４２、零ラン数検出部４３、固定長符号割り当て部４４、可変長符号割り当て部４５、条件判定部４６、セレクタ４７、セレクタ４８、ＥＯＢ符号割り当て部４９、及びセレクタ５０を含む。
【００３１】
可変長符号化部３３による可変長符号化処理は、入力ビデオ信号の着目ブロックの量子化処理後のＤＣＴ係数に対して実行される。この着目ブロックの量子化処理後のＤＣＴ係数は、ブロック内を所定の走査パターンで走査した順番に供給される。
【００３２】
まず係数位置カウンター４１が、入力ＤＣＴ係数をカウントすることにより走査カウント位置（０〜６３）を求め、求めた走査カウント位置（０〜６３）出力する。またレベル検出部４２が、入力ＤＣＴ係数のレベル（係数値）を検出することにより、ＤＣＴ係数値が零レベルである期間を示すＺｅｒｏ＿Ｅｎａｂｌｅ指示信号を出力する。
【００３３】
零ラン数検出部４３は、走査カウント位置とＺｅｒｏ＿Ｅｎａｂｌｅ指示信号とに応じてゼロラン数ＲＵＮを生成して出力する。このゼロラン数ＲＵＮは、走査順で供給されるＤＣＴ係数列においてゼロ以外の係数が出現した時点で出力される。現在のＤＣＴ係数が着目ブロックの最後である場合、零ラン数検出部４３は、ＥＯＢ＿Ｅｎａｂｌｅ指示信号をアサートする。
【００３４】
固定長符号割り当て部４４は、零ラン数検出部４３からのＲＵＮ及びレベル検出部４２からのＬＥＶＥＬに応じて対応する固定長符号を特定し、エスケープ符号に続いて当該特定した固定長符号が並ぶ符号化データを出力する。具体的には、固定長符号割り当て部４４は内部に図５に示す固定長符号表を備えており、入力されたＲＵＮ及びＬＥＶＥＬに一致する固定長符号表中の固定長符号を特定する。更に、エスケープ符号に特定した固定長符号を繋げて、（エスケープ符号）＋（ＲＵＮの固定長符号）＋（ＬＥＶＥＬの固定長符号）を出力する。
【００３５】
可変長符号割り当て部４５は、零ラン数検出部４３からのＲＵＮ及びレベル検出部４２からのＬＥＶＥＬを可変長符号表と照合し、入力されるＲＵＮ及びＬＥＶＥＬの組み合わせが可変長符号表中の何れかのＲＵＮ及びＬＥＶＥＬの組み合わせと一致するときにＶＬＣ＿Ｅｎａｂｌｅ指示信号を１に設定し、一致しないときにはＶＬＣ＿Ｅｎａｂｌｅ指示信号を０に設定する。また可変長符号割り当て部４５は更に、入力されるＲＵＮ及びＬＥＶＥＬの組み合わせが可変長符号表中の何れかのＲＵＮ及びＬＥＶＥＬの組み合わせと一致するとき、入力されるＲＵＮ及びＬＥＶＥＬの組み合わせに対応する可変長符号を符号化データとして出力する。具体的には、可変長符号割り当て部４５は内部に図４に示す可変長符号表を備えており、入力されたＲＵＮ及びＬＥＶＥＬの組み合わせに一致するＲＵＮ及びＬＥＶＥＬの組み合わせを可変長符号表中で検索し、一致するものがある場合には、一致したＲＵＮ及びＬＥＶＥＬの組み合わせに対応する可変長符号を出力する。
【００３６】
条件判定部４６は、零ラン数検出部４３からのＲＵＮ及びレベル検出部４２からのＬＥＶＥＬと、可変長符号化部３３に外部から供給される指定条件及び位置情報とに応じて、ＥＳＣ＿Ｅｎａｂｌｅ指示信号を１又は０に設定する。具体的には、例えば指定条件が満たされる場合にはＥＳＣ＿Ｅｎａｂｌｅ指示信号が１に設定され、指定条件が満たされない場合にはＥＳＣ＿Ｅｎａｂｌｅ指示信号が０に設定される。
【００３７】
ここで指定条件は、特定のＲＵＮとＬＥＶＥＬとの組み合わせをエスケープ処理（強制的に固定長符号を割り当てる処理）の対象とする場合には、そのＲＵＮとＬＥＶＥＬとの組み合わせを示す情報を含んでよい。例えば前述の例のように、入力データ"０，０，−１"（ＲＵＮが２でＬＥＶＥＬが−１）をエスケープ処理の対象とする場合には、ＲＵＮが２でＬＥＶＥＬが−１であることを示す情報が指定条件に含まれる。
【００３８】
また指定条件には、例えば各ピクチャ（フレーム）内で最初に出現した特定のＲＵＮとＬＥＶＥＬとの組み合わせのみをエスケープ処理の対象とすること等が指示されてよい。或いは、各スライスで最初に出現した特定のＲＵＮとＬＥＶＥＬとの組み合わせのみをエスケープ処理の対象とすること等が指示されてよい。このように指定条件は、複数個の入力データが特定のＲＵＮとＬＥＶＥＬとの組み合わせに該当する場合に、これら複数個の入力データのうち特定の入力データのみをエスケープ処理の対象として指定してよい。このような指定をするためには、フレーム、スライス、マクロブロック、及びブロック等の単位を参照することにより、入力データの現在位置を特定することが必要になる。この目的のために、条件判定部４６には、現在のフレーム、現在のスライス、現在のマクロブロック、及び現在のブロックの位置（番号）を示す位置情報などが供給されてよい。
【００３９】
セレクタ４７は、固定長符号割り当て部４４からのエスケープ及び固定長符号又は可変長符号割り当て部４５からの可変長符号の何れかを、セレクタ４８の出力に応じて選択する。セレクタ４８の出力が１の場合には可変長符号割り当て部４５からの可変長符号が選択される。セレクタ４８の出力が０の場合には固定長符号割り当て部４４からのエスケープ及び固定長符号が選択される。
【００４０】
セレクタ４８は、可変長符号割り当て部４５が出力するＶＬＣ＿Ｅｎａｂｌｅ指示信号と０との何れかを、条件判定部４６からのＥＳＣ＿Ｅｎａｂｌｅ指示信号に応じて選択し出力する。具体的には、ＥＳＣ＿Ｅｎａｂｌｅ指示信号が０の場合にはＶＬＣ＿Ｅｎａｂｌｅ指示信号が選択出力され、ＥＳＣ＿Ｅｎａｂｌｅ指示信号が１の場合には０が選択出力される。
【００４１】
セレクタ４７の出力は、セレクタ５０に供給される。セレクタ５０は、零ラン数検出部４３からのＥＯＢ＿Ｅｎａｂｌｅ指示信号がアサート状態であればＥＯＢ符号割り当て部４９が供給するＥＯＢ符号を選択して出力し、ＥＯＢ＿Ｅｎａｂｌｅ指示信号がネゲート状態であればセレクタ４７の出力を選択して出力する。
【００４２】
以上の構成により、入力データが可変長符号表と一致する場合にその入力データに対応する可変長符号表の可変長符号を出力し、入力データが可変長符号表と一致しない場合にその入力データに対応する固定長符号表の固定長符号を出力する符号化部において、入力データが可変長符号表と一致するデータであり且つ所定の条件を満たすと判断されると、可変長符号の代わりに固定長符号を出力することができる。
【００４３】
図８は、指定条件の一例を説明するための図である。図８の例では、ピクチャ内で一番最初に出現した所定の組み合わせの（ＲＡＮ，ＬＥＶＥＬ）をエスケープ処理の対象とすることを、指定条件とする。図８に示す例では、一枚のピクチャ６０は複数のスライス（Ｓｌｉｃｅ１乃至Ｓｌｉｃｅ８）に区画化されており、更に各スライスが複数のマクロブロック（ＭＢ１乃至ＭＢ１２）に分割されている。１つのマクロブロックには、４つの輝度ブロックが示されている。この例では、例えば（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）を特定のパターンとして指定し、このパターンに一致する入力データがエスケープ処理の候補となる。
【００４４】
図中の△印は、（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）であるデータが出現したピクチャ６０中の箇所を示す。また×印は、（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である複数個のデータのうちで、ピクチャ６０内で最初に出現したものの位置を示す。図８に示す例では、この×印の位置にある（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である入力データを、強制的に（エスケープ符号）＋（ＲＵＮの固定長符号）＋（ＬＥＶＥＬの固定長符号）に変換し、その他の位置にある（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である入力データについては、通常通りの可変長符号に変換する。
【００４５】
図９は、指定条件の別の一例を説明するための図である。図９の例では、各スライスにおいて２番目のマクロブロックで最初に出現した所定の組み合わせの（ＲＡＮ，ＬＥＶＥＬ）をエスケープ処理の対象とすることを、指定条件とする。図８と同様に、一枚のピクチャ６０は複数のスライス（Ｓｌｉｃｅ１乃至Ｓｌｉｃｅ８）に区画化されており、更に各スライスが複数のマクロブロック（ＭＢ１乃至ＭＢ１２）に分割されている。１つのマクロブロックには、４つの輝度ブロックが示されている。この例では、例えば（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）を特定のパターンとして指定し、このパターンに一致する入力データがエスケープ処理の候補となる。
【００４６】
図中の△印は、（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）であるデータが出現したピクチャ６０中の箇所を示す。また×印は、（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である複数個のデータのうちで、各スライスにおいて２番目のマクロブロックで最初に出現したものの位置を示す。図９に示す例では、この×印の位置にある（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である入力データを、強制的に（エスケープ符号）＋（ＲＵＮの固定長符号）＋（ＬＥＶＥＬの固定長符号）に変換し、その他の位置にある（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である入力データについては、通常通りの可変長符号に変換する。
【００４７】
図１０は、指定条件の別の一例を説明するための図である。図１０の例では、ピクチャ内で一番最初に出現したブロック番号０のブロック内の所定の組み合わせの（ＲＡＮ，ＬＥＶＥＬ）をエスケープ処理の対象とすることを、指定条件とする。図８と同様に、ピクチャ６０が複数のスライス及び複数のマクロブロックに分割され、各マクロブロックがブロック番号０乃至３の４つの輝度ブロックを含む。各マクロブロックの左上のブロックがブロック番号０の輝度ブロックである。この例では、例えば（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）を特定のパターンとして指定し、このパターンに一致する入力データがエスケープ処理の候補となる。
【００４８】
図中の△印は、（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）であるデータが出現したピクチャ６０中の箇所を示す。また×印は、（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である複数個のデータのうちで、ブロック番号０のブロックにおいてピクチャ内で一番最初に出現したものの位置を示す。図９に示す例では、この×印の位置にある（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である入力データを、強制的に（エスケープ符号）＋（ＲＵＮの固定長符号）＋（ＬＥＶＥＬの固定長符号）に変換し、その他の位置にある（ＲＡＮ，ＬＥＶＥＬ）が（２，−１）である入力データについては、通常通りの可変長符号に変換する。
【００４９】
図１１は、図７に示す条件判定部４６によるＥＳＣ＿Ｅｎａｂｌｅ指示信号の設定動作を示すフローチャートである。
【００５０】
まずステップＳ１で、ＥＳＣ＿Ｃｏｕｎｔ及びＥＳＣ＿Ｅｎａｂｌｅがそれぞれ０に初期設定される。なおＥＳＣ＿Ｃｏｕｎｔは、指定条件を満たした回数をカウントするために使用される変数である。またＥＳＣ＿Ｅｎａｂｌｅは、指定条件が満たされる場合に１に設定され、指定条件が満たされない場合に０に設定される変数であり、図７のＥＳＣ＿Ｅｎａｂｌｅ指示信号に対応する。
【００５１】
ステップＳ２で、ＥＳＣカウンタ初期化条件が満たされるか否かが判定される。即ち、ＥＳＣ＿Ｃｏｕｎｔを０に初期化するべきか否かが判定される。このＥＳＣカウンタ初期化条件は、エスケープ処理を実行する指定条件により異なる。例えば、図８に示す例の指定条件の場合は、各ピクチャの先頭においてＥＳＣカウンタを初期化する必要がある。従って、現在の入力データの位置がピクチャの先頭に対応するのであれば、ＥＳＣカウンタ初期化条件が満たされることになる。また図９に示す例の指定条件の場合は、各スライスの先頭においてＥＳＣカウンタを初期化する必要がある。従って、現在の入力データの位置が各スライスの先頭に対応するのであれば、ＥＳＣカウンタ初期化条件が満たされることになる。また図１０に示す例の指定条件の場合は、各ピクチャの先頭においてＥＳＣカウンタを初期化する必要がある。従って、現在の入力データの位置がピクチャの先頭に対応するのであれば、ＥＳＣカウンタ初期化条件が満たされることになる。
【００５２】
ステップＳ３で、ＥＳＣ＿Ｃｏｕｎｔを０に設定する。ステップＳ４で、入力データの（ＲＵＮ，ＬＥＶＥＬ）の組み合わせが、指定条件に指定された（ＲＵＮ，ＬＥＶＥＬ）の組み合わせと一致するか否かが判定される。一致する場合にはステップＳ５で、ＥＳＣ使用条件が満たされるか否かを判定する。ＥＳＣ使用条件は、エスケープ処理を実行する指定条件により異なる。例えば、図８に示す例の指定条件の場合、ＥＳＣ使用条件の指定はなく、ステップＳ５の判断結果は常にＹｅｓとなる。また図９に示す例の指定条件の場合、現在の入力データが各スライスの２番目のマクロブロックのものであるか否かがＥＳＣ使用条件となる。即ち、現在の入力データが各スライスの２番目のマクロブロックである場合、ステップＳ５の判断結果はＹｅｓとなる。また図１０に示す例の指定条件の場合、現在の入力データがブロック番号０のブロックのものであるか否かがＥＳＣ使用条件となる。即ち、現在の入力データがブロック番号０のブロックのものである場合、ステップＳ５の判断結果はＹｅｓとなる。
【００５３】
ステップＳ６で、ＥＳＣ＿Ｃｏｕｎｔが０であるか否かが判定される。この判定結果がＹｅｓとなるのは、ステップＳ２のＥＳＣカウンタ初期化条件が満たされて以来、初めてエスケープ処理を実行する指定条件が満たされる場合である。ステップＳ６に続きステップＳ７でＥＳＣ＿Ｅｎａｂｌｅを１に設定し、更にステップＳ８でＥＳＣ＿Ｃｏｕｎｔを１に設定し、処理はステップＳ２に戻る。またステップＳ４乃至ステップＳ６の何れかのステップで判定結果がＮｏの場合、ステップＳ９において、ＥＳＣ＿Ｅｎａｂｌｅを０に設定する。
【００５４】
上述の処理を条件判定部４６が実行することにより、ＥＳＣ＿Ｅｎａｂｌｅ指示信号を設定する。これによって、図８乃至図１０の各例に示されるように、×印の箇所においてのみＥＳＣ＿Ｅｎａｂｌｅ指示信号を１に設定することができる。
【００５５】
図１０の例において、各スライスにおいて２番目のマクロブロックで最初に出現した所定の組み合わせの（ＲＡＮ，ＬＥＶＥＬ）をエスケープ処理の対象としているが、２番目ではなく他の所望の位置のマクロブロック（Ｎ番目のマクロブロック）を対象としてもよい。また図１１の例において、ピクチャ内で最初に出現したブロック番号０のブロックの所定の組み合わせの（ＲＡＮ，ＬＥＶＥＬ）をエスケープ処理の対象としているが、ブロック番号０ではなく他の所望の位置のブロック（ブロック番号Ｍのブロック）を対象としてもよい。また図８乃至図１０の各例において、最初に出現したデータという条件ではなく、例えば２番目に出現したデータといった条件にしてもよい。
【００５６】
また例えばピクチャカウント値を３で割った時の余りの値が０の時は図８に示す指定条件を用い、ピクチャカウント値を３で割った時の余りの値が1の時は図９に示す指定条件を用い、ピクチャカウント値を３で割った時の余りの値が２の時は図１０に示す指定条件を用いるというように、各ピクチャ毎に指定条件を変えるようにしてもよい。
【００５７】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００５８】
なお本発明は以下の内容を含むものである。
（付記１）
入力データが第１の符号表と一致する場合に該入力データに対応する該第１の符号表の第１の符号を出力し、該入力データが該第１の符号表と一致しない場合に該入力データに対応する第２の符号表の第２の符号を出力する符号化部と、
該入力データが該第１の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部
を含み、該条件判定部により該入力データが該第１の符号表と一致するデータであり且つ該所定の条件を満たすと判断されると、該符号化部に該第１の符号の代わりに該第２の符号を出力させることを特徴とする符号化装置。
（付記２）
該所定の条件は、該入力データが該第１の符号表中の特定のパターンと一致するデータであることを少なくとも条件の一部とすることを特徴とする付記１記載の符号化装置。
（付記３）
該所定の条件は、入力データストリーム中で該特定のパターンと一致する複数個の入力データのうち特定のものを指定する条件を含むことを特徴とする付記２記載の符号化装置。
（付記４）
該入力データは各フレームが複数のスライス及び複数のブロックを含む映像データであり、該所定の条件は、該フレーム、該スライス、及び該ブロックの少なくとも１つを参照して該複数個の入力データのうち特定のものを指定することを特徴とする付記３記載の符号化装置。
（付記５）
該第１の符号表は可変長符号表であり該第２の符号表は固定長符号表であることを特徴とする付記１記載の符号化装置。
（付記６）
該符号化部は、該第２の符号をエスケープ符号に続いて出力するように構成されることを特徴とする付記１記載の符号化装置。
（付記７）
入力データが第１の符号表と一致し且つ所定の条件を満たさない場合に該入力データに対応する該第１の符号表の符号を出力し、
該入力データが該第１の符号表と一致しない場合に該入力データに対応する第２の符号表の符号を出力し、
該入力データが該第１の符号表と一致するデータであり且つ該所定の条件を満たす場合に該入力データに対応する該第２の符号表の符号を出力する
各段階を含むことを特徴とする符号化方法。
（付記８）
該第１の符号表は可変長符号表であり該第２の符号表は固定長符号表であることを特徴とする付記７記載の符号化方法。
（付記９）
該第２の符号表の符号を出力する場合には、まずエスケープ符号を出力し、該エスケープ符号に続いて該第２の符号表の符号を出力することを特徴とする付記７記載の符号化方法。
【図面の簡単な説明】
【００５９】
【図１】ＭＰＥＧ方式に基づく一般的なビデオ符号化装置のブロック構成図である。
【図２】ＭＰＥＧ方式に基づく一般的なビデオ復号装置のブロック構成図である。
【図３】本発明によるＭＰＥＧ方式に基づくビデオ符号化装置のブロック構成図である。
【図４】可変長符号表の一例を示す図である。
【図５】ＲＵＮに対する固定長符号表及びＬＥＶＥＬに対する固定長符号表を示す図である。
【図６】図３の可変長符号化部が実行する可変長符号化処理の手順を示すフローチャートである。
【図７】図３の可変長符号化部の構成の一例を示すブロック構成図である。
【図８】指定条件の一例を説明するための図である。
【図９】指定条件の別の一例を説明するための図である。
【図１０】指定条件の別の一例を説明するための図である。
【図１１】図７に示す条件判定部によるＥＳＣ＿Ｅｎａｂｌｅ指示信号の設定動作を示すフローチャートである。
【符号の説明】
【００６０】
１１  ＤＣＴ部
１２  量子化部
１３  可変長符号化部
１４  逆量子化部
１５  逆ＤＣＴ部
１６  フレームメモリ
１７  動き予測部
１８  減算器
３３  可変長符号化部
４１  係数位置カウンター
４２  レベル検出部
４３  零ラン数検出部
４４  固定長符号割り当て部
４５  可変長符号割り当て部
４６  条件判定部
４７  セレクタ
４８  セレクタ
４９  ＥＯＢ符号割り当て部
５０  セレクタ
【図１】
2009055124.tif 000003
【図２】
2009055124.tif 000004
【図３】
2009055124.tif 000005
【図４】
2009055124.tif 000006
【図５】
2009055124.tif 000007
【図６】
2009055124.tif 000008
【図７】
2009055124.tif 000009
【図８】
2009055124.tif 000010
【図９】
2009055124.tif 000011
【図１０】
2009055124.tif 000012
【図１１】
2009055124.tif 000013