説明

符号化装置

【課題】本発明は、表示映像に影響を与えることなく且つ容易に特定されないマークをビデオストリームに含める符号化装置及び符号化方法を提供することを目的とする。
【解決手段】符号化装置は、入力データが第1の符号表と一致する場合に入力データに対応する第1の符号表の第1の符号を出力し、入力データが第1の符号表と一致しない場合に入力データに対応する第2の符号表の第2の符号を出力する符号化部と、入力データが第1の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部を含み、条件判定部により入力データが第1の符号表と一致するデータであり且つ所定の条件を満たすと判断されると、符号化部に第1の符号の代わりに第2の符号を出力させることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に符号化装置に関し、詳しくは可変長符号化処理を用いた符号化装置に関する。
【背景技術】
【0002】
図1は、MPEG方式に基づく一般的なビデオ符号化装置のブロック構成図である。図1のビデオ符号化装置10は、DCT部11、量子化部12、可変長符号化部13、逆量子化部14、逆DCT部15、フレームメモリ16、動き予測部17、及び減算器18を含む。
【0003】
まず入力ビデオ信号に対して、動き予測処理に基づいた画像間の差分を減算器18により計算し、差分信号を求める。その差分信号に対してDCT部11によるDCT(Discrete Cosine Transform)変換処理及び量子化部12による量子化処理を施した後、量子化後のDCT係数を可変長符号化部13により可変長符号化処理することによりビデオストリームを生成して出力する。この処理と並行して、量子化後の信号に逆DCT部15による逆量子化処理及び逆DCT部15による逆DCT変換処理を施して、得られたデコード画像をフレームメモリ16に一時的に保存する。動き予測部17が、フレームメモリ16に保存されたデコード画像を演算により求めた動きベクトル分だけ移動させて画像を再構築するとともに、減算器18が、その再構築画像と入力ビデオ信号の元画像との差分を求めることにより、上記動き予測処理を実行する。なお入力ビデオ信号中のフレーム内符号化ピクチャは、そのピクチャの情報のみによって符号化され、動き予測処理の対象とはならない。
【0004】
図2は、MPEG方式に基づく一般的なビデオ復号装置のブロック構成図である。図2のビデオ復号装置20は、可変長復号化部21、逆量子化部22、逆DCT部23、フレームメモリ24、動き補償部25、及び加算部26を含む。
【0005】
ビデオ復号装置20では、受信したビデオストリームを可変長復号化部21による可変長復号化により量子化後のDCT係数信号に戻し、量子化後のDCT係数信号に逆量子化部22による逆量子化処理及び逆DCT部23による逆DCT変換処理を施すことにより、デコードされた差分画像を復元する。この処理と並行して、逆DCT変換処理後のデコード画像を一時的にフレームメモリ24に保存する。動き補償部25が、フレームメモリ24に保存されたデコード画像を動きベクトル分だけ移動させて画像を再構築し、加算部26が、この再構築画像と差分画像とを加算することにより動き補償処理を実行する。加算部26による加算後の信号が、復号されたビデオ信号として出力される。なおフレーム内符号化ピクチャは、そのピクチャの情報のみによって復号化され、動き補償処理の対象とはならない。
【0006】
上記のようなビデオ符号化装置10で生成されビデオ復号装置20により復号されるべきビデオストリームを配布する場合、配布ビデオストリームに何らかのマークをつけることにより、そのビデオストリームが正当な権利(ライセンス)に基づいて符号化されたものであることを示すことが望まれる。このようなマークの有無により、正当な権利に基づいて符号化されたビデオストリームであるか否かを判断できるようにすれば、不当な手段(違法コピー等)を用いて生成されたビデオストリームを排除することが可能になる。
【0007】
例えば、元の映像の一部分に会社名等のロゴをマークとして挿入したり、またはビデオストリームのユーザーデータ領域に個別情報をマークとして添付したりする手法が考えられる。しかしながら映像にロゴを挿入してしまうと、表示される画面に常にロゴが表示されることになり、観賞性を著しく損なってしまう恐れがある。またユーザーデータ領域に添付された個別情報は、エディタ等で容易に改竄されてしまう恐れがあるため、このような個別情報を添付する手法は最適なものであるとは言えない。即ち、ユーザーデータ領域等の容易に特定されてしまう位置に個別情報等の容易に識別可能なマークを挿入する手法は、改竄が容易であるために好ましくない。
【特許文献1】特開平6−105296号公報
【特許文献2】特開平9−128874号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
以上を鑑みて本発明は、表示映像に影響を与えることなく且つ容易に特定されないマークをビデオストリームに含める符号化装置及び符号化方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
符号化装置は、入力データが第1の符号表と一致する場合に該入力データに対応する該第1の符号表の第1の符号を出力し、該入力データが該第1の符号表と一致しない場合に該入力データに対応する第2の符号表の第2の符号を出力する符号化部と、該入力データが該第1の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部を含み、該条件判定部により該入力データが該第1の符号表と一致するデータであり且つ該所定の条件を満たすと判断されると、該符号化部に該第1の符号の代わりに該第2の符号を出力させることを特徴とする。
【0010】
符号化方法は、入力データが第1の符号表と一致し且つ所定の条件を満たさない場合に該入力データに対応する該第1の符号表の符号を出力し、該入力データが該第1の符号表と一致しない場合に該入力データに対応する第2の符号表の符号を出力し、該入力データが該第1の符号表と一致するデータであり且つ該所定の条件を満たす場合に該入力データに対応する該第2の符号表の符号を出力する各段階を含むことを特徴とする。
【発明の効果】
【0011】
本発明の少なくとも1つの実施例によれば、表示映像に影響を与えることなく、且つ容易に特定、改竄、模倣されないマークをビデオストリームに含めることができる。また本発明の実施例により生成されたビデオストリームは、MPEGの規格に完全に準拠するものであるので、受信側の復号化装置で何らの問題もなく正常に復号化することができる。
【発明を実施するための最良の形態】
【0012】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0013】
図3は、本発明によるMPEG方式に基づくビデオ符号化装置のブロック構成図である。図3において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0014】
図3のビデオ符号化装置30は、DCT部11、量子化部12、可変長符号化部33、逆量子化部14、逆DCT部15、フレームメモリ16、動き予測部17、及び減算器18を含む。図1の従来技術のビデオ符号化装置10と比較して、可変長符号化部13が可変長符号化部33により置き換えられている点が異なる。
【0015】
可変長符号化部33における可変長符号化においては、量子化処理後のDCT係数に対してゼロランレングス符号が割り当てられる。ゼロランレングス符号とは、符号化対象となる信号中の連続するゼロレベル信号とそれに続くゼロレベル以外の信号との組み合わせに対して一つの符号を割り当てる方式である。この際、複数個のゼロレベル信号の数(RUN)と、ゼロレベル以外の信号の値(LEVEL)と、符号とを組として第1の符号表を作成しておく。RUNとLEVELとの組み合わせの頻度に応じてハフマン符号を割り当てることにより、頻度の高い組み合わせには短い符号を割り当て、頻度の低い組み合わせに対しては長い符号を割り当てる。即ち、第1の符号表は可変長符号表である。
【0016】
図4は、可変長符号表の一例を示す図である。図4に示されるように、可変長符号表には、可変長符号が、RUN及びLEVLの組み合わせと対応付けて格納されている。例えばRUNが1でLEVELが1、即ち符号化対象データが"01"である場合、可変長符号010sが割り当てられる。ここで末尾のsは符号を表し、s=0ならLEVELの値が正であることを示し、s=1ならLEVELの値が負であることを示す。従って、符号化対象データが"0,+1"に対応する可変長符号は0100であり、符号化対象データが"0,−1"に対応する可変長符号は0101である。また例えば、例えばRUNが0でLEVELが−3、即ち符号化対象データが"−3"である場合、可変長符号は01111となる。また例えば、RUNが3でLEVELが+1、即ち符号化対象データが"0,0,0,+1"である場合、可変長符号は001110となる。
【0017】
一般的に、RUNとLEVELの組み合わせは多数存在するため、発生確率の高いRUN及びLEVELの組み合わせの分のみを図4のような可変長符号化表として用意しておく。可変長符号表に存在しないRUN及びLEVELの組み合わせに対しては、エスケープ(Escape)符号と、それに続くRUNに対応する固定長符号、更にそれに続くLEVELに対応する固定長符号が用いられる。RUNに対する固定長符号表及びLEVELに対する固定長符号表は第2の符号表として用意されている。
【0018】
図5は、RUNに対する固定長符号表及びLEVELに対する固定長符号表を示す図である。図5(a)にはRUNに対する固定長符号表が示される。図に示されるように、例えばRUNが2の場合には6ビットの固定長符号000010が使用される。図5(b)にはLEVELに対する固定長符号表が示される。図に示されるように、例えばLEVELが+2047の場合には、12ビットの固定長符号011111111111が使用される。従って、RUNが2でLEVELが+2047の場合、即ち符号化対象データが"0,0,+2047"である場合、固定長符号は000010+011111111111となる("+"記号は見やすくするために挿入したものであり実際には存在しない)。この18ビットの固定長符号が、エスケープ符号000001(図4の可変長符号表に定義されている)に続いて出力される。
【0019】
このようにエスケープ符号を用いると、符号長が長くなってしまうという短所がある。しかしエスケープ符号を用いさえすれば、全てのRUN及びLEVELの組み合わせに対して符号を割り当てることが可能となる。
【0020】
一般に、図5の固定長符号表を用いるのは、符号化対象データが図4の可変長符号表に存在しないRUNとLEVELとの組み合わせの場合である。即ち、図1に示す従来技術の可変長符号化部13では、符号化対象である入力データ(入力ビデオ信号の量子化DCT係数)が可変長符号表に一致する場合にその入力データに対応する可変長符号表の符号を出力し、入力データが可変長符号表と一致しない場合にその入力データに対応する固定長符号表の符号を出力する。
【0021】
それに対して本願発明の可変長符号化部33においては、以下に説明するように、図4の可変長符号表に存在するRUNとLEVELとの組み合わせの符号化対象データであっても、所定の条件を満たす場合には、図5の固定長符号表を用いて、(エスケープ符号)+(RUNの固定長符号)+(LEVELの固定長符号)を符号化対象データに割り当てる。即ち、入力データが可変長符号表と一致するデータであり且つ所定の条件を満たすと判断されると、その入力データに対応する可変長符号表の符号ではなく、その入力データに対応する固定長符号表の符号を出力するように構成する。
【0022】
上記の所定の条件は、入力データが可変長符号表中の特定のパターンと一致するデータであることを少なくとも条件の一部としてよい。即ち、図4の可変長符号表中で例えばRUNが2でLEVELが−1のパターン(組み合わせ)を、上記の所定の条件としてもよい。この場合、入力データストリーム中に入力データ"0,0,−1"(RUNが2でLEVELが−1)が出現すると、本来この入力データに対応する可変長符号は001011であるが、図3の可変長符号化部33は、この可変長符号の代わりに、図5の固定長符号表から抽出された固定長符号000010+111111111111をエスケープ符号の後に続けて出力する。
【0023】
また上記所定の条件は、入力データストリーム中で特定のパターンと一致する複数個の入力データのうち特定のものを指定する条件を含んでよい。例えば上記の例では、入力データストリーム中に出現する入力データ"0,0,−1"を全てエスケープ符号に続く固定長符号に変換してしまうと、符号化効率の劣化が好ましくないレベルに達してしまう可能性がある。また正当な権利に基づくビデオストリームであるか否かを示すマークを改竄或いは模倣しようとするものにとっては、本来可変長符号表に対応する入力データ"0,0,−1"が常にエスケープ符号に続く固定長符号に置き換えられていると、比較的容易にそのマーク生成のアルゴリズムが解読されてしまう。
【0024】
そこで入力データストリーム中に出現する複数の入力データ"0,0,−1"の全てに対して、エスケープ符号に続く固定長符号を割り当てるのではなく、そのような複数の入力データのうちで特定のものに対してのみ、エスケープ符号に続く固定長符号を割り当て、それ以外には通常の可変長符号を割り当てるようにしてよい。例えば、後述するように、各ピクチャ(フレーム)内で最初に出現した入力データ"0,0,−1"のみをエスケープ符号に続く固定長符号に変換し、それ以外の入力データ"0,0,−1"を可変長符号に変換してよい。
【0025】
図6は、可変長符号化部33が実行する可変長符号化処理の手順を示すフローチャートである。この可変長符号化処理は、入力ビデオ信号の着目ブロックの量子化処理後のDCT係数に対して実行される。
【0026】
ステップS1において、量子化処理後のDCT係数を低周波数領域側から高周波数領域側に向けて走査し、ゼロ以外の係数が存在するか否かを判定する。ゼロ以外の係数が出現すると(ステップS1でYes)、ステップS2において、RUNとLEVELとの組み合わせ(RUN,LEVEL)を抽出する。
【0027】
ステップS3で、抽出された(RUN,LEVEL)の組み合わせが可変長符号表に存在するか否かを判定する。存在する場合には、ステップS4において、抽出された(RUN,LEVEL)の組み合わせが指定された条件を満たしているか否かを判定する。指定された条件を満たしていない場合には、ステップS5で、抽出された(RUN,LEVEL)の組み合わせに対して、可変長符号表に従い可変長符号を割り当てる。
【0028】
抽出された(RUN,LEVEL)の組み合わせが可変長符号表に存在しないとステップS3で判定された場合、或いは抽出された(RUN,LEVEL)の組み合わせが指定された条件を満たしているとステップS4で判定された場合、処理はステップS6に進む。ステップS6では、エスケープ符号を挿入する。更にステップS7で、抽出された(RUN,LEVEL)の組み合わせに対して固定長符号表の対応する固定長符号を割り当てる。以上ステップS6及びS7の処理により、エスケープ符号とそれに続く固定長符号として、符号化データが生成される。
【0029】
ステップS5又はステップS7で符号化データが生成されると、ステップS1に戻り以降の処理を繰り返す。ステップS1でゼロ以外の係数が存在しない場合、即ち着目ブロックの終わりまでゼロが続く場合には、ステップS8に進み、EOB(End of Block)符号を挿入する。即ち、図4の可変長符号表に示すEOBに対応する符号を符号化データとして出力する。以上で、着目ブロックに対する符号化処理が終了する。
【0030】
図7は、図3の可変長符号化部33の構成の一例を示すブロック構成図である。図7の可変長符号化部33は、係数位置カウンター41、レベル検出部42、零ラン数検出部43、固定長符号割り当て部44、可変長符号割り当て部45、条件判定部46、セレクタ47、セレクタ48、EOB符号割り当て部49、及びセレクタ50を含む。
【0031】
可変長符号化部33による可変長符号化処理は、入力ビデオ信号の着目ブロックの量子化処理後のDCT係数に対して実行される。この着目ブロックの量子化処理後のDCT係数は、ブロック内を所定の走査パターンで走査した順番に供給される。
【0032】
まず係数位置カウンター41が、入力DCT係数をカウントすることにより走査カウント位置(0〜63)を求め、求めた走査カウント位置(0〜63)出力する。またレベル検出部42が、入力DCT係数のレベル(係数値)を検出することにより、DCT係数値が零レベルである期間を示すZero_Enable指示信号を出力する。
【0033】
零ラン数検出部43は、走査カウント位置とZero_Enable指示信号とに応じてゼロラン数RUNを生成して出力する。このゼロラン数RUNは、走査順で供給されるDCT係数列においてゼロ以外の係数が出現した時点で出力される。現在のDCT係数が着目ブロックの最後である場合、零ラン数検出部43は、EOB_Enable指示信号をアサートする。
【0034】
固定長符号割り当て部44は、零ラン数検出部43からのRUN及びレベル検出部42からのLEVELに応じて対応する固定長符号を特定し、エスケープ符号に続いて当該特定した固定長符号が並ぶ符号化データを出力する。具体的には、固定長符号割り当て部44は内部に図5に示す固定長符号表を備えており、入力されたRUN及びLEVELに一致する固定長符号表中の固定長符号を特定する。更に、エスケープ符号に特定した固定長符号を繋げて、(エスケープ符号)+(RUNの固定長符号)+(LEVELの固定長符号)を出力する。
【0035】
可変長符号割り当て部45は、零ラン数検出部43からのRUN及びレベル検出部42からのLEVELを可変長符号表と照合し、入力されるRUN及びLEVELの組み合わせが可変長符号表中の何れかのRUN及びLEVELの組み合わせと一致するときにVLC_Enable指示信号を1に設定し、一致しないときにはVLC_Enable指示信号を0に設定する。また可変長符号割り当て部45は更に、入力されるRUN及びLEVELの組み合わせが可変長符号表中の何れかのRUN及びLEVELの組み合わせと一致するとき、入力されるRUN及びLEVELの組み合わせに対応する可変長符号を符号化データとして出力する。具体的には、可変長符号割り当て部45は内部に図4に示す可変長符号表を備えており、入力されたRUN及びLEVELの組み合わせに一致するRUN及びLEVELの組み合わせを可変長符号表中で検索し、一致するものがある場合には、一致したRUN及びLEVELの組み合わせに対応する可変長符号を出力する。
【0036】
条件判定部46は、零ラン数検出部43からのRUN及びレベル検出部42からのLEVELと、可変長符号化部33に外部から供給される指定条件及び位置情報とに応じて、ESC_Enable指示信号を1又は0に設定する。具体的には、例えば指定条件が満たされる場合にはESC_Enable指示信号が1に設定され、指定条件が満たされない場合にはESC_Enable指示信号が0に設定される。
【0037】
ここで指定条件は、特定のRUNとLEVELとの組み合わせをエスケープ処理(強制的に固定長符号を割り当てる処理)の対象とする場合には、そのRUNとLEVELとの組み合わせを示す情報を含んでよい。例えば前述の例のように、入力データ"0,0,−1"(RUNが2でLEVELが−1)をエスケープ処理の対象とする場合には、RUNが2でLEVELが−1であることを示す情報が指定条件に含まれる。
【0038】
また指定条件には、例えば各ピクチャ(フレーム)内で最初に出現した特定のRUNとLEVELとの組み合わせのみをエスケープ処理の対象とすること等が指示されてよい。或いは、各スライスで最初に出現した特定のRUNとLEVELとの組み合わせのみをエスケープ処理の対象とすること等が指示されてよい。このように指定条件は、複数個の入力データが特定のRUNとLEVELとの組み合わせに該当する場合に、これら複数個の入力データのうち特定の入力データのみをエスケープ処理の対象として指定してよい。このような指定をするためには、フレーム、スライス、マクロブロック、及びブロック等の単位を参照することにより、入力データの現在位置を特定することが必要になる。この目的のために、条件判定部46には、現在のフレーム、現在のスライス、現在のマクロブロック、及び現在のブロックの位置(番号)を示す位置情報などが供給されてよい。
【0039】
セレクタ47は、固定長符号割り当て部44からのエスケープ及び固定長符号又は可変長符号割り当て部45からの可変長符号の何れかを、セレクタ48の出力に応じて選択する。セレクタ48の出力が1の場合には可変長符号割り当て部45からの可変長符号が選択される。セレクタ48の出力が0の場合には固定長符号割り当て部44からのエスケープ及び固定長符号が選択される。
【0040】
セレクタ48は、可変長符号割り当て部45が出力するVLC_Enable指示信号と0との何れかを、条件判定部46からのESC_Enable指示信号に応じて選択し出力する。具体的には、ESC_Enable指示信号が0の場合にはVLC_Enable指示信号が選択出力され、ESC_Enable指示信号が1の場合には0が選択出力される。
【0041】
セレクタ47の出力は、セレクタ50に供給される。セレクタ50は、零ラン数検出部43からのEOB_Enable指示信号がアサート状態であればEOB符号割り当て部49が供給するEOB符号を選択して出力し、EOB_Enable指示信号がネゲート状態であればセレクタ47の出力を選択して出力する。
【0042】
以上の構成により、入力データが可変長符号表と一致する場合にその入力データに対応する可変長符号表の可変長符号を出力し、入力データが可変長符号表と一致しない場合にその入力データに対応する固定長符号表の固定長符号を出力する符号化部において、入力データが可変長符号表と一致するデータであり且つ所定の条件を満たすと判断されると、可変長符号の代わりに固定長符号を出力することができる。
【0043】
図8は、指定条件の一例を説明するための図である。図8の例では、ピクチャ内で一番最初に出現した所定の組み合わせの(RAN,LEVEL)をエスケープ処理の対象とすることを、指定条件とする。図8に示す例では、一枚のピクチャ60は複数のスライス(Slice1乃至Slice8)に区画化されており、更に各スライスが複数のマクロブロック(MB1乃至MB12)に分割されている。1つのマクロブロックには、4つの輝度ブロックが示されている。この例では、例えば(RAN,LEVEL)が(2,−1)を特定のパターンとして指定し、このパターンに一致する入力データがエスケープ処理の候補となる。
【0044】
図中の△印は、(RAN,LEVEL)が(2,−1)であるデータが出現したピクチャ60中の箇所を示す。また×印は、(RAN,LEVEL)が(2,−1)である複数個のデータのうちで、ピクチャ60内で最初に出現したものの位置を示す。図8に示す例では、この×印の位置にある(RAN,LEVEL)が(2,−1)である入力データを、強制的に(エスケープ符号)+(RUNの固定長符号)+(LEVELの固定長符号)に変換し、その他の位置にある(RAN,LEVEL)が(2,−1)である入力データについては、通常通りの可変長符号に変換する。
【0045】
図9は、指定条件の別の一例を説明するための図である。図9の例では、各スライスにおいて2番目のマクロブロックで最初に出現した所定の組み合わせの(RAN,LEVEL)をエスケープ処理の対象とすることを、指定条件とする。図8と同様に、一枚のピクチャ60は複数のスライス(Slice1乃至Slice8)に区画化されており、更に各スライスが複数のマクロブロック(MB1乃至MB12)に分割されている。1つのマクロブロックには、4つの輝度ブロックが示されている。この例では、例えば(RAN,LEVEL)が(2,−1)を特定のパターンとして指定し、このパターンに一致する入力データがエスケープ処理の候補となる。
【0046】
図中の△印は、(RAN,LEVEL)が(2,−1)であるデータが出現したピクチャ60中の箇所を示す。また×印は、(RAN,LEVEL)が(2,−1)である複数個のデータのうちで、各スライスにおいて2番目のマクロブロックで最初に出現したものの位置を示す。図9に示す例では、この×印の位置にある(RAN,LEVEL)が(2,−1)である入力データを、強制的に(エスケープ符号)+(RUNの固定長符号)+(LEVELの固定長符号)に変換し、その他の位置にある(RAN,LEVEL)が(2,−1)である入力データについては、通常通りの可変長符号に変換する。
【0047】
図10は、指定条件の別の一例を説明するための図である。図10の例では、ピクチャ内で一番最初に出現したブロック番号0のブロック内の所定の組み合わせの(RAN,LEVEL)をエスケープ処理の対象とすることを、指定条件とする。図8と同様に、ピクチャ60が複数のスライス及び複数のマクロブロックに分割され、各マクロブロックがブロック番号0乃至3の4つの輝度ブロックを含む。各マクロブロックの左上のブロックがブロック番号0の輝度ブロックである。この例では、例えば(RAN,LEVEL)が(2,−1)を特定のパターンとして指定し、このパターンに一致する入力データがエスケープ処理の候補となる。
【0048】
図中の△印は、(RAN,LEVEL)が(2,−1)であるデータが出現したピクチャ60中の箇所を示す。また×印は、(RAN,LEVEL)が(2,−1)である複数個のデータのうちで、ブロック番号0のブロックにおいてピクチャ内で一番最初に出現したものの位置を示す。図9に示す例では、この×印の位置にある(RAN,LEVEL)が(2,−1)である入力データを、強制的に(エスケープ符号)+(RUNの固定長符号)+(LEVELの固定長符号)に変換し、その他の位置にある(RAN,LEVEL)が(2,−1)である入力データについては、通常通りの可変長符号に変換する。
【0049】
図11は、図7に示す条件判定部46によるESC_Enable指示信号の設定動作を示すフローチャートである。
【0050】
まずステップS1で、ESC_Count及びESC_Enableがそれぞれ0に初期設定される。なおESC_Countは、指定条件を満たした回数をカウントするために使用される変数である。またESC_Enableは、指定条件が満たされる場合に1に設定され、指定条件が満たされない場合に0に設定される変数であり、図7のESC_Enable指示信号に対応する。
【0051】
ステップS2で、ESCカウンタ初期化条件が満たされるか否かが判定される。即ち、ESC_Countを0に初期化するべきか否かが判定される。このESCカウンタ初期化条件は、エスケープ処理を実行する指定条件により異なる。例えば、図8に示す例の指定条件の場合は、各ピクチャの先頭においてESCカウンタを初期化する必要がある。従って、現在の入力データの位置がピクチャの先頭に対応するのであれば、ESCカウンタ初期化条件が満たされることになる。また図9に示す例の指定条件の場合は、各スライスの先頭においてESCカウンタを初期化する必要がある。従って、現在の入力データの位置が各スライスの先頭に対応するのであれば、ESCカウンタ初期化条件が満たされることになる。また図10に示す例の指定条件の場合は、各ピクチャの先頭においてESCカウンタを初期化する必要がある。従って、現在の入力データの位置がピクチャの先頭に対応するのであれば、ESCカウンタ初期化条件が満たされることになる。
【0052】
ステップS3で、ESC_Countを0に設定する。ステップS4で、入力データの(RUN,LEVEL)の組み合わせが、指定条件に指定された(RUN,LEVEL)の組み合わせと一致するか否かが判定される。一致する場合にはステップS5で、ESC使用条件が満たされるか否かを判定する。ESC使用条件は、エスケープ処理を実行する指定条件により異なる。例えば、図8に示す例の指定条件の場合、ESC使用条件の指定はなく、ステップS5の判断結果は常にYesとなる。また図9に示す例の指定条件の場合、現在の入力データが各スライスの2番目のマクロブロックのものであるか否かがESC使用条件となる。即ち、現在の入力データが各スライスの2番目のマクロブロックである場合、ステップS5の判断結果はYesとなる。また図10に示す例の指定条件の場合、現在の入力データがブロック番号0のブロックのものであるか否かがESC使用条件となる。即ち、現在の入力データがブロック番号0のブロックのものである場合、ステップS5の判断結果はYesとなる。
【0053】
ステップS6で、ESC_Countが0であるか否かが判定される。この判定結果がYesとなるのは、ステップS2のESCカウンタ初期化条件が満たされて以来、初めてエスケープ処理を実行する指定条件が満たされる場合である。ステップS6に続きステップS7でESC_Enableを1に設定し、更にステップS8でESC_Countを1に設定し、処理はステップS2に戻る。またステップS4乃至ステップS6の何れかのステップで判定結果がNoの場合、ステップS9において、ESC_Enableを0に設定する。
【0054】
上述の処理を条件判定部46が実行することにより、ESC_Enable指示信号を設定する。これによって、図8乃至図10の各例に示されるように、×印の箇所においてのみESC_Enable指示信号を1に設定することができる。
【0055】
図10の例において、各スライスにおいて2番目のマクロブロックで最初に出現した所定の組み合わせの(RAN,LEVEL)をエスケープ処理の対象としているが、2番目ではなく他の所望の位置のマクロブロック(N番目のマクロブロック)を対象としてもよい。また図11の例において、ピクチャ内で最初に出現したブロック番号0のブロックの所定の組み合わせの(RAN,LEVEL)をエスケープ処理の対象としているが、ブロック番号0ではなく他の所望の位置のブロック(ブロック番号Mのブロック)を対象としてもよい。また図8乃至図10の各例において、最初に出現したデータという条件ではなく、例えば2番目に出現したデータといった条件にしてもよい。
【0056】
また例えばピクチャカウント値を3で割った時の余りの値が0の時は図8に示す指定条件を用い、ピクチャカウント値を3で割った時の余りの値が1の時は図9に示す指定条件を用い、ピクチャカウント値を3で割った時の余りの値が2の時は図10に示す指定条件を用いるというように、各ピクチャ毎に指定条件を変えるようにしてもよい。
【0057】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0058】
なお本発明は以下の内容を含むものである。
(付記1)
入力データが第1の符号表と一致する場合に該入力データに対応する該第1の符号表の第1の符号を出力し、該入力データが該第1の符号表と一致しない場合に該入力データに対応する第2の符号表の第2の符号を出力する符号化部と、
該入力データが該第1の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部
を含み、該条件判定部により該入力データが該第1の符号表と一致するデータであり且つ該所定の条件を満たすと判断されると、該符号化部に該第1の符号の代わりに該第2の符号を出力させることを特徴とする符号化装置。
(付記2)
該所定の条件は、該入力データが該第1の符号表中の特定のパターンと一致するデータであることを少なくとも条件の一部とすることを特徴とする付記1記載の符号化装置。
(付記3)
該所定の条件は、入力データストリーム中で該特定のパターンと一致する複数個の入力データのうち特定のものを指定する条件を含むことを特徴とする付記2記載の符号化装置。
(付記4)
該入力データは各フレームが複数のスライス及び複数のブロックを含む映像データであり、該所定の条件は、該フレーム、該スライス、及び該ブロックの少なくとも1つを参照して該複数個の入力データのうち特定のものを指定することを特徴とする付記3記載の符号化装置。
(付記5)
該第1の符号表は可変長符号表であり該第2の符号表は固定長符号表であることを特徴とする付記1記載の符号化装置。
(付記6)
該符号化部は、該第2の符号をエスケープ符号に続いて出力するように構成されることを特徴とする付記1記載の符号化装置。
(付記7)
入力データが第1の符号表と一致し且つ所定の条件を満たさない場合に該入力データに対応する該第1の符号表の符号を出力し、
該入力データが該第1の符号表と一致しない場合に該入力データに対応する第2の符号表の符号を出力し、
該入力データが該第1の符号表と一致するデータであり且つ該所定の条件を満たす場合に該入力データに対応する該第2の符号表の符号を出力する
各段階を含むことを特徴とする符号化方法。
(付記8)
該第1の符号表は可変長符号表であり該第2の符号表は固定長符号表であることを特徴とする付記7記載の符号化方法。
(付記9)
該第2の符号表の符号を出力する場合には、まずエスケープ符号を出力し、該エスケープ符号に続いて該第2の符号表の符号を出力することを特徴とする付記7記載の符号化方法。
【図面の簡単な説明】
【0059】
【図1】MPEG方式に基づく一般的なビデオ符号化装置のブロック構成図である。
【図2】MPEG方式に基づく一般的なビデオ復号装置のブロック構成図である。
【図3】本発明によるMPEG方式に基づくビデオ符号化装置のブロック構成図である。
【図4】可変長符号表の一例を示す図である。
【図5】RUNに対する固定長符号表及びLEVELに対する固定長符号表を示す図である。
【図6】図3の可変長符号化部が実行する可変長符号化処理の手順を示すフローチャートである。
【図7】図3の可変長符号化部の構成の一例を示すブロック構成図である。
【図8】指定条件の一例を説明するための図である。
【図9】指定条件の別の一例を説明するための図である。
【図10】指定条件の別の一例を説明するための図である。
【図11】図7に示す条件判定部によるESC_Enable指示信号の設定動作を示すフローチャートである。
【符号の説明】
【0060】
11 DCT部
12 量子化部
13 可変長符号化部
14 逆量子化部
15 逆DCT部
16 フレームメモリ
17 動き予測部
18 減算器
33 可変長符号化部
41 係数位置カウンター
42 レベル検出部
43 零ラン数検出部
44 固定長符号割り当て部
45 可変長符号割り当て部
46 条件判定部
47 セレクタ
48 セレクタ
49 EOB符号割り当て部
50 セレクタ

【特許請求の範囲】
【請求項1】
入力データが第1の符号表と一致する場合に該入力データに対応する該第1の符号表の第1の符号を出力し、該入力データが該第1の符号表と一致しない場合に該入力データに対応する第2の符号表の第2の符号を出力する符号化部と、
該入力データが該第1の符号表と一致するデータであり且つ所定の条件を満たすか否かを判定する条件判定部
を含み、該条件判定部により該入力データが該第1の符号表と一致するデータであり且つ該所定の条件を満たすと判断されると、該符号化部に該第1の符号の代わりに該第2の符号を出力させることを特徴とする符号化装置。
【請求項2】
該所定の条件は、該入力データが該第1の符号表中の特定のパターンと一致するデータであることを少なくとも条件の一部とすることを特徴とする請求項1記載の符号化装置。
【請求項3】
該所定の条件は、入力データストリーム中で該特定のパターンと一致する複数個の入力データのうち特定のものを指定する条件を含むことを特徴とする請求項2記載の符号化装置。
【請求項4】
該入力データは各フレームが複数のスライス及び複数のブロックを含む映像データであり、該所定の条件は、該フレーム、該スライス、及び該ブロックの少なくとも1つを参照して該複数個の入力データのうち特定のものを指定することを特徴とする請求項3記載の符号化装置。
【請求項5】
該第1の符号表は可変長符号表であり該第2の符号表は固定長符号表であることを特徴とする請求項1記載の符号化装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−55124(P2009−55124A)
【公開日】平成21年3月12日(2009.3.12)
【国際特許分類】
【出願番号】特願2007−217452(P2007−217452)
【出願日】平成19年8月23日(2007.8.23)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】