(57)【要約】      （修正有）【課題】マルチメディアデータの符号化における圧縮を改良することができる効率的な可変長コード表を切り替える方法を提供すること。【解決手段】可変長テーブルを決定するために、０以外の係数の個数に関する情報に加えて、隣接ブロックで用いた変換サイズに関する情報も利用する。これによって、より正確に可変長コードテーブルを選択できるようになり、圧縮の効率を向上させることができる。【選択図】図２
2006033148.tif 000002
【特許請求の範囲】
【請求項１】
隣接するブロックの情報を用いて可変長コードテーブルを切り替える方法であって、
上および左の隣接ブロックの両方が利用可能であるか否かを判定するステップと、
前記利用可能な隣接ブロックの変換サイズを求めるステップと、
前記隣接ブロックがともに利用可能である場合、当該隣接ブロックの変換サイズを比較するステップと、
前記隣接ブロックの０以外の係数の個数を求めるステップと、
対象ブロックの変換サイズを求めるステップと、
前記隣接するブロックの変換サイズと対象ブロックの変換サイズとを比較するステップと、
上および左の隣接ブロックがともに利用可能であり、かつ、それらのブロックの変換サイズが同じである場合、前記０以外の係数の個数の平均を算出するステップと、
前記隣接ブロックの少なくとも一方が利用可能でない場合、または、前記隣接ブロックの変換サイズの一方のみが前記対象ブロックの変換サイズと同じである場合、前記０以外の係数の個数の和を算出するステップと、
前記隣接ブロックの変換サイズが前記対象ブロックの変換サイズと異なる場合、スケーリング係数を用いて前記０以外の係数の個数の和または平均に対してスケーリングを行うステップと、
前記０以外の係数の個数の和または平均を用いて可変長コードテーブルを切り替えるステップと、
前記可変長コードテーブルを用いてシンタックス要素を復号するステップとを含む。
【請求項２】
請求項１に記載の可変長コードテーブル切り替え方法であって、前記ブロックのサイズは、当該ブロックの変換サイズにより決まる。
【請求項３】
請求項１に記載の可変長コードテーブル切り替え方法であって、前記変換サイズは、残差ブロックを空間領域から周波数領域に変換するために用いる２次元マトリックスの大きさである。
【請求項４】
請求項１に記載の可変長コードテーブル切り替え方法であって、ブロック間の変換サイズを比較するステップは、さらに、
各ブロックの前記変換サイズにおける係数の個数の最大値を求めるステップと、
前記ブロックの係数の個数の前記最大値を比較するステップとを含む。
【請求項５】
請求項１および４に記載の可変長コードテーブル切り替え方法であって、前記隣接ブロックの変換サイズを比較し、当該変換サイズの前記係数の個数の最大値が互いに等しい場合、当該変換サイズが互いに同じであるとみなす。
【請求項６】
請求項１に記載の可変長コードテーブル切り替え方法であって、一方の隣接ブロックが利用可能でない場合、当該隣接ブロックの前記０以外の係数の個数に０を設定する。
【請求項７】
請求項１および６に記載の可変長コードテーブル切り替え方法であって、一方の隣接ブロックの変換サイズが対象ブロックとは異なる場合、かつ、他方の隣接ブロックが利用可能であり、その変換サイズが対象ブロックと同じである場合、前記一方のブロックの前記０以外の係数の個数に０を設定する。
【請求項８】
請求項１、６および７に記載の可変長コードテーブル切り替え方法であって、対象ブロックの変換サイズが一方の隣接ブロックよりも大きい場合、当該一方の隣接ブロックの前記０以外の係数の個数に、最も近い隣接ブロックの０以外の係数の個数を設定する。
【請求項９】
請求項１、６および７に記載の可変長コードテーブル切り替え方法であって、対象ブロックの変換サイズが一方の隣接ブロックよりも大きい場合、当該一方の隣接ブロックの前記０以外の係数の個数に、複数の隣接ブロックの０以外の係数の個数の平均を設定する。
【請求項１０】
請求項１、６、７および９に記載の可変長コードテーブル切り替え方法であって、０以外の係数の個数の平均を算出するステップは、さらに、
対象ブロックの変換サイズを取得するステップと、
隣接ブロックの変換サイズを求めるステップと、
前記対象ブロックに対応する大きさの、より大きなブロックを形成するために必要な前記隣接ブロックの数を求めるステップと、
前記ブロックの０以外の係数の個数の和を求めるステップと、
前記和を前記ブロックの数で除算するステップとを含む。
【請求項１１】
請求項１に記載の可変長コードテーブル切り替え方法であって、前記平均を算出するステップは、さらに、
前記二つのブロックの前記０以外の係数の個数の和を求めるステップと、
１を加えて前記和を切り上げるステップと、
前記和の値を左に１だけシフトするステップとを含む。
【請求項１２】
請求項１に記載の可変長コードテーブル切り替え方法であって、前記スケーリング係数を求めるプロセスは、さらに、
対象ブロックの係数の個数の最大値を求めるステップと、
隣接ブロックの係数の個数の最大値を求めるステップと、
前記対象ブロックの係数の個数の最大値を、前記隣接ブロックの係数の個数の最大値で除算するステップとを含む。
【請求項１３】
請求項１、１１および１２に記載の可変長コードテーブル切り替え方法であって、前記スケーリングを行うステップと平均を算出するステップとは、前記シフトを行うステップにおいて実現される。
【請求項１４】
請求項１に記載の可変長コードテーブル切り替え方法であって、前記シンタックス要素を復号化するステップは、さらに、
対象ブロックの変換サイズが８×８であるか否かを判定するステップと、
可変長コードが用いられたか否かを示すフラグを復号するステップと、
シンタックス要素TotalCoeffおよびTrailingOnesを復号するステップと、
固定長コードを用いてtotal_zerosを復号するステップと、
可変長コードテーブルを用いてシンタックス要素run_beforeを復号するステップとを含む。
【請求項１５】
請求項１および１４に記載の可変長コードテーブル切り替え方法であって、前記フラグは、前記対象ブロックの変換サイズが８×８である場合に符号化および復号化される。
【請求項１６】
請求項１、１４および１５に記載の可変長コードテーブル切り替え方法であって、前記フラグは、ビットストリームに含まれるビットとして符号化および復号化される。
【請求項１７】
請求項１、１４、１５および１６に記載の可変長コードテーブル切り替え方法であって、前記シンタックス要素TotalCoeffおよびTrailingOnesは、前記フラグが１である場合に、可変長コードテーブルを用いて符号化および復号化される。
【請求項１８】
請求項１、１４、１５および１６に記載の可変長コードテーブル切り替え方法であって、前記可変長コードテーブルは、前記隣接ブロックの０以外の係数の個数の和または平均を用いて選択される。
【請求項１９】
請求項１、１４、１５および１６に記載の可変長コードテーブル切り替え方法であって、前記シンタックス要素TotalCoeffおよびTrailingOnesは、前記フラグが０である場合に、固定長コードを用いて符号化および復号化される。
【請求項２０】
請求項１、１４、１５、１６および１９に記載の可変長コードテーブル切り替え方法であって、TotalCoeffを符号化および復号化するのに用いる固定長コードの長さは６ビットである。
【請求項２１】
請求項１、１４、１５、１６および１９に記載の可変長コードテーブル切り替え方法であって、TrailingOnesを符号化および復号化するのに用いる固定長コードの長さは２ビットである。
【請求項２２】
請求項１および１４に記載の可変長コードテーブル切り替え方法であって、total_zerosを符号化および復号化するのに用いる固定長コードの長さは６ビットである。
【請求項２３】
請求項１および１４に記載の可変長コードテーブル切り替え方法であって、total_zeros を符号化および復号化するのに用いる固定長コードの長さは、６４からTotalCoeffの値を減算した値を２進数表現するために必要なビット数である。
【請求項２４】
請求項１および１４に記載の可変長コードテーブル切り替え方法であって、ブロック中の残りの０の個数が６よりも大きく、かつ、run_beforeの値が１４よりも大きい場合、前記シンタックス要素run_beforeは、１８ビットの固定長コードで符号化および復号化される。
【請求項２５】
請求項１、１４および２４に記載の可変長コードテーブル切り替え方法であって、前記１８ビットは、１１ビットの０と、これに続く１ビットの１と、これに続くrun_beforeを２進数表現した６ビットの値とで構成される。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、あらゆる高度なマルチメディアデータ符号化、特にISO/IEC 14496-1０規格に用いて符号化効率を向上させることができる。本発明は、マルチメディアデータの符号化における圧縮を改良することができる効率的な可変長コードテーブル切り替え方法を提供する。
【背景技術】
【０００２】
可変長符号化および算術符号化は、マルチメディアデータの符号化に用いられるエントロピー符号化方法を代テーブルする二つの方法である。可変長符号化方法は、JPEG、ISO/IEC 13818-2、ISO/IEC 14496-2、ISO/IEC 14496-10など、様々な規格で用いられている。特にISO/IEC 14496-10規格などにおけるマルチメディアデータ符号化の可変長符号化方法では、隣接ブロックから与えられる情報に基づいて可変長コードテーブルを切り替える必要がある。ISO/IEC 14496-10規格における可変長符号化の場合、隣接ブロックに含まれる、０以外の係数の個数に関する情報が必要となる。
【０００３】
図１は、ISO/IEC 14496-10規格で用いられる従来の可変長コードテーブル切り替え方法を示す。この従来技術では、まず、モジュール１０１に示されるように、上に位置するブロックが利用可能であるか否かがチェックされる。利用可能である場合、モジュール１０２において、ｎＢは上のブロックの０以外の係数の個数に設定される。上に位置するこのブロックが利用可能でない場合、モジュール１０３に示されるように、ｎＢは０に設定される。従来技術では、次にモジュール１０４において、対象ブロックの左に位置するブロックが利用可能であるか否かがチェックされる。左のブロックが利用可能である場合、モジュール１０６において、ｎＡに左のブロックの０以外の係数の個数が設定される。左のブロックが利用可能でない場合、ｎＡに０が設定される。従来技術では、モジュール１０７において、上のブロックおよび左のブロックの両方が利用可能であるか否かがチェックされる。両方のブロックが利用可能である場合、モジュール１０９において、ｎＡとｎＢの平均を求めることでｎＣを決定する。それ以外は、モジュール１０８において、ｎＡとｎＢの和を求めることでｎＣを決定する。最後に、ｎＣの値を用いて可変長コードテーブルを切り替える。
【０００４】
近年のマルチメディアデータ符号化技術の発展により、変換処理において異なるブロックサイズに対応することで符号化処理は大きく進歩している。ISO/IEC 14496-10規格は、４×４の逆変換および８×８の逆変換の２種類の逆変換方法を定義している。これら２つの異なる変換サイズを組み合わせて用いることで、これらの変換サイズのいずれかを単独で用いる場合に比べて符号化処理が改善した。
【０００５】
現在、ISO/IEC 14496-10規格では、８×８の変換サイズを用いた可変長符号化に対応していない。図３において影が付いていないモジュールが示すのは、ISO/IEC 14496-10規格で用いられる従来技術での、４×４変換サイズを用いた場合のシンタックス要素TotalCoeff、TrailingOnes、total_zerosおよびrun_beforeの復号処理である。まず、モジュール３０７において、変数ｎCに基づいて選択された可変長コードテーブルを用いてTotalCoeffおよびTrailingOnesが復号される。次にモジュール３０８において、TotalCoeffを用いて選択された可変長コードテーブルを用いてシンタックス要素total_zerosが復号される。最後にモジュール３０９において、total_zerosを用いて選択された可変長コードテーブルを用いてシンタックス要素が復号される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術では、隣接ブロックにおける０以外の係数の個数に基づいて可変長コードテーブルを切り替えている。しかしながら、隣接ブロック間で異なる変換サイズが用いられている場合、ブロックにおける０以外の係数の個数の最大値は、使用される変換サイズにより異なる。従って、これらの隣接ブロックの０以外の係数の個数の範囲を考慮せずに可変長コードテーブルを切り替えても効率が良くない。
【課題を解決するための手段】
【０００７】
この問題を解決するため、可変長コードテーブルを切り替える新しい方法を紹介する。この新しいテーブル切り替え方法により、従来技術に比べて符号化効率を向上させることができる。
【０００８】
現在、従来技術における可変長コードテーブルの切り替え方法では、隣接ブロックの０以外の係数の個数に関する情報のみが用いられている。本発明の新規性は、可変長テーブルを決定するために、０以外の係数の個数に関する情報に加えて、隣接ブロックで用いた変換サイズに関する情報をも利用する点にある。これによって、より正確に可変長コードテーブルを選択できるようになり、符号化の効率が向上する。
【０００９】
本発明の動作について以下に説明する。本発明は、符号化されたビットストリームを符号化もしくは復号化するために可変長コードテーブルを用いる前に利用できる。本発明は、変換後の係数ブロックを符号化または復号化するための最適な可変長コードテーブルを選択するために利用できる。
【発明の効果】
【００１０】
本発明は、異なる変換サイズが混在する場合にも可変長符号化テーブルを効率よく選択できるという効果を奏する。この効果は、可変長コードを用いた圧縮の形式において顕著である。
【発明を実施するための最良の形態】
【００１１】
本発明を用いて可変長コードテーブルを選択することで、従来技術に比べて圧縮技術が向上する。図２は、本発明における、０以外の係数の個数と使用した変換サイズとに基づく可変長コードテーブルの選択を示す。本発明では、図２のモジュール２０１において、上および左に位置するブロックが両方とも利用可能であるか否かをチェックする。少なくともいずれかのブロックが利用可能でない場合、本発明では、モジュール２０２において、対象ブロックの左のブロックが利用可能であるか否かをチェックする。左のブロックが利用可能である場合、モジュール２０３において、変数ｎＡ’に左のブロックの０以外の係数の個数を設定する。左のブロックが利用可能でない場合、モジュール２０６において、変数ｎＡに０を設定する。本発明は、モジュール２０４において、左のブロックの変換サイズと対象ブロックの変換サイズとを比較する。これらの変換サイズが同じでない場合、モジュール２０７において、変数ｎＡにｎＡ’をスケーリングした値を設定する。変換サイズが同じである場合、モジュール２０５においてｎＡにｎＡ’を設定する。
【００１２】
次に、本発明では、モジュール２０８において、上のブロックが利用可能であるか否かをチェックする。上のブロックが利用可能である場合、モジュール２０９において、変数ｎＢ’に上のブロックの０以外の係数の個数を設定する。左のブロックが利用可能でない場合、モジュール２１２において、変数ｎBに０を設定する。本発明では、モジュール２１０において、上のブロックの変換サイズと対象ブロックの変換サイズとを比較する。これらの変換サイズが同じでない場合、モジュール２１３において、変数ｎＢにｎB’をスケーリングした値を設定する。変換サイズが同じである場合、モジュール２１３において、ｎＢにｎB’を設定する。
【００１３】
モジュール２０１以降、上のブロックおよび左のブロックの両方が利用可能である場合、本発明では、モジュール２１４において、上のブロックおよび左のブロックの変換サイズが同じであるか否かをチェックする。これらの変換サイズが異なる場合、本発明では、モジュール２１５において、左のブロックの変換サイズが対象ブロックの変換サイズに等しいか否かをチェックする。これらが同じ場合、モジュール２１７において、変数ｎＢに０を設定し、変数ｎＡに左のブロックの０以外の係数の個数に等しい値を設定する。変換サイズが異なる場合、モジュール２１６において、変数ｎＡに０を設定し、変数ｎＢに上のブロックの０以外の係数の個数に等しい値を設定する。左のブロックの変換サイズと上のブロックの変換サイズが同じである場合、モジュール２１８において、変数ｎＡに左のブロックの０以外の係数の個数に等しい値を設定し、変数ｎＢに上のブロックの０以外の係数の個数に等しい値を設定する。次に、モジュール２１９において、ｎＡとｎＢの平均を求めることでｎＣ’を計算する。続いてモジュール２２０において、対象ブロックの変換サイズと上記２つのブロックの変換サイズとを比較する。これらの変換サイズが異なる場合、モジュール２２２において、変数ｎＣにｎＣ’をスケーリングした値を設定する。変換サイズが同じである場合、変数ｎＣをｎＣ’の値と等しくする。上記隣接ブロックのうち少なくとも一つの変換サイズが対象ブロックのそれと異なる場合、または、上記隣接ブロックのうち少なくとも一つが利用可能でない場合、モジュール２２３において、変数ｎＣにｎＡとｎＢとの和を設定する。最後に、変数ｎＣを用いて可変長コードテーブルを選択する。
【００１４】
対象ブロックの変換サイズが８×８であるのに対して、隣接ブロックが変換サイズ４×４で符号化されている場合、８×８の隣接ブロックに対応する４つの４×４ブロックの０以外の係数の個数の平均値を使って、モジュール２１８におけるｎＡおよびｎＢの両方を求めることも可能である。すなわち、４つの４×４ブロックで構成される８×８隣接ブロック全体の０以外の係数の個数の合計を４で除算する。
【００１５】
モジュール２０７、２１３、および２２２において、上記変数はスケーリング係数でスケーリングされる。このスケーリング係数は、ブロックの係数の最大値を用いて求めることができる。数式１は、スケーリング係数の求め方を示す。
【００１６】
【数１】
2006033148.tif 000003
ここで、ブロックNは変換サイズが異なる隣接ブロックを示す。係数の個数の最大値は変換サイズにより異なる。例えば、変換サイズが４×４である場合、係数の個数の最大値は１６となる。変換サイズが８×８である場合には、係数の個数の最大値は６４となる。従って、隣接ブロックが２つとも利用可能であり、かつ、それらのブロックの変換サイズが８×８である場合に、対象ブロックの変換サイズが４×４であれば、スケーリング係数は１／４となる。
【００１７】
図３は、本発明における、シンタックス要素TotalCoeff、TrailingOnes、total_zerosおよびrun_beforeの復号処理を示す。モジュール３０１において、対象ブロックが変換サイズ８×８で符号化されているか否かを判断する。変換サイズが８×８である場合、本発明では、モジュール３０２において、ビットストリームからuse_CALVC_mapping_tableフラグを復号する。use_CALVC_mapping_tableフラグが１と等しい場合、本発明では、モジュール３０５において、変数ｎC を用いて選択された可変長コードテーブルを用いてTotalCoeffおよびTrailingOnesを復号する。use_CALVC_mapping_tableフラグが０に等しい場合、本発明では、モジュール３０４において、ビットストリームから直接TotalCoeff およびTrailingOnesを読み出す。シンタックス要素TotalCoeffは６ビットの固定長コードで符号化され、シンタックス要素TrailingOnesは２ビットの固定長コードで符号化される。次に、本発明では、モジュール３０６において、ビットストリームから直接シンタックス要素total_zerosを読み出す。シンタックス要素total_zerosは固定長コードで符号化される。この固定長コードのサイズは、（６４−TotalCoeff）を２進数表現するのに必要なビット数の最大値により異なる。この固定長コードの大きさも６ビットであってもよい。最後に、本発明では、図４に示されるような新しい可変長コードテーブルからシンタックス要素run_beforeを直接読み出す。
【図面の簡単な説明】
【００１８】
【図１】隣接ブロックの０以外の係数の個数を用いて可変長コードテーブルを選択する従来技術の一例を示す図である。
【図２】隣接ブロックの０以外の係数の個数と変換サイズとを用いて可変長コードテーブルを選択する本発明の一例を示す図である。
【図３】シンタックス要素TotalCoeff、TrailingOnes、total_zerosおよびrun_beforeを復号する本発明の一例を示す図である。
【図４】シンタックス要素run_beforeを復号するために用いられる新しい可変長コードテーブルを示す図である。
【図１】
2006033148.tif 000004
【図２】
2006033148.tif 000005
【図３】
2006033148.tif 000006
【図４】
2006033148.tif 000007
【外国語明細書】
2006033148.tif 000008
2006033148.tif 000009
2006033148.tif 000010
2006033148.tif 000011
2006033148.tif 000012
2006033148.tif 000013
2006033148.tif 000014
2006033148.tif 000015
2006033148.tif 000016
【図１】
2006033148.tif 000017
【図２】
2006033148.tif 000018
【図３】
2006033148.tif 000019
【図４】
2006033148.tif 000020