(57)【要約】ビデオ画像のマクロブロックのサンプル・ブロックの変換係数は、後続１係数の前にある非０係数の数と後続１係数の数を、組み合わせた形で、適応符号化することにより符号化される。変換係数は、さらに、後続１係数の正負符号、非０係数のレベル尺度、非０係数の中に差し挟まれている０係数の総数、と０係数のそれぞれのランレングスのうち１つまたは複数を適応符号化することにより符号化できる。数と後続１係数の適応符号化は、１つまたは複数の隣接サンプル・ブロックを考慮して実行することができるが、レベル尺度の適応符号化は、マクロブロックの量子化パラメータとすでに符号化されているレベル尺度を考慮して実行することができる。復号化は、これを逆にして実行できる。
2005521356.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体と、
前記記憶媒体に格納される複数のコードワード・テーブルであって、その複数のコードワード・テーブルはそれぞれ、サンプル・ブロック・タイプに少なくとも一部基づき、選択的にアクセスされる複数のコードワードを含み、少なくとも、
画像のマクロブロックのサンプル・ブロックの変換係数列の係数の数と後続１係数の数を組み合わせた形で、符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の係数の数と後続１係数の数の組み合わされた符号化内容を復号化することの少なくとも１つを実行するための複数のコードワード・テーブルを備える装置。
【請求項２】
前記コードワード・テーブルのうちの少なくとも選択された１つは、輝度サンプル・ブロックの変換係数列の係数の数と後続１係数の数を組み合わせて符号化することと、その組み合わされた符号化内容を復号化することの少なくとも一方を実行するため画像のマクロブロックの輝度サンプル・ブロックについて選択的にアクセスされるコードワードを含む請求項１に記載の装置。
【請求項３】
複数のコードワード・テーブルは、以下の選択された１つのコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項２に記載の装置。
【表１】
2005521356.tif 000025
2005521356.tif 000026
2005521356.tif 000027
【請求項４】
さらに、前記コードワード・テーブルとＦＬＣのうちの１つを選択し、画像のマクロブロックの輝度サンプル・ブロックの変換係数列を符号化／復号化する、記憶媒体に結合されているロジックを備える請求項２に記載の装置。
【請求項５】
前記コードワード・テーブルとＦＬＣの１つを選択し、画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックの１つまたは複数の変換係数列内の係数の数に少なくとも一部は基づき、適応型方式で、画像のマクロブロックの輝度サンプル・ブロックの変換係数列を符号化／復号化するロジックを備える請求項４に記載の装置。
【請求項６】
画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックは、画像のマクロブロックの上に隣接する輝度サンプル・ブロックと左に隣接する輝度サンプル・ブロックのうちの少なくとも一方を含む請求項５に記載の装置。
【請求項７】
複数のコードワード・テーブルのうちの少なくとも選択された１つは、画像のマクロブロックのクロマ・サンプル・ブロックの変換係数列内の係数の数と後続１係数の数を組み合わせて符号化することと、その組み合わされた符号化内容を復号化することの少なくとも一方を実行するために選択的にアクセスされるコードワード含む請求項１に記載の装置。
【請求項８】
複数のコードワード・テーブルは、以下のコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項５に記載の装置。
【表２】
2005521356.tif 000028
【請求項９】
さらに、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号を符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号の符号化内容を復号化することのうちの少なくとも一方を実行するロジックを備える請求項１に記載の装置。
【請求項１０】
さらに、前記符号化／復号化を実行するため前記コードワード・テーブルの前記コードワードに選択的にアクセスする記録媒体に結合されているプロセッサを備える請求項１に記載の装置。
【請求項１１】
手のひらサイズのコンピューティング・デバイス、携帯電話、デジタル・パーソナル・アシスタント、ラップトップ・コンピューティング・デバイス、デスクトップ・コンピューティング・デバイス、セットトップ・ボックス、サーバ、コンパクト・ディスク・プレーヤ、デジタル多用途ディスク・プレーヤ、テレビジョン、ディスプレイ・モニタのうちの選択された１つを含む請求項１に記載の装置。
【請求項１２】
ビデオ・ドーター・カードとビデオ機能を集積化したマザーボードを備える請求項１に記載の装置。
【請求項１３】
記憶媒体と、
前記記憶媒体に格納される複数のコードワード・テーブルであって、前記コードワード・テーブルのそれぞれは、
画像のマクロブロックのサンプル・ブロックの変換係数のレベル尺度の符号化であって、前記符号化はサンプル・ブロックの変換係数の係数の数に無関係である符号化と、
画像のマクロブロックのサンプル・ブロックの変換係数のレベル尺度の符号化内容の復号化であって、前記復号化はサンプル・ブロックの変換係数の係数の数に無関係である復号化のうち少なくとも一方を実行するため適応的にアクセスされる複数のコードワードを含む、複数のコードワード・テーブルとを備える装置。
【請求項１４】
画像のマクロブロックのサンプル・ブロックの変換係数は、画像のマクロブロックの輝度サンプル・ブロックとクロマ・サンプル・ブロックのうちの選択された１つの変換係数を含む請求項１３に記載の装置。
【請求項１５】
複数のコードワード・テーブルは、以下の選択された１つのコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項１３に記載の装置。
1
01
001
..
00000000000001
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1x
01x
001x
..
00000000000001x
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xx
01xx
001xx
..
00000000000001xx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxx
01xxx
001xxx
..
00000000000001xxx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxxx
01xxxx
001xxxx
..
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
【請求項１６】
さらに、マクロブロックの量子化パラメータ、ブロック内の係数の数、すでに符号化された／復号化された変換係数のうちの１つまたは複数の係数のレベルのうちの１つまたは複数に少なくとも一部は基づき、画像のマクロブロックのサンプル・ブロックの変換係数のレベル尺度を符号化／復号化するために前記コードワード・テーブルの１つを適応的に選択する記憶媒体に結合されロジックを備える請求項１３に記載の装置。
【請求項１７】
複数のコードワード・テーブルは異なる数のコードワードを含み、
より大きなコードワード・テーブルを選択する前により小さなコードワード・テーブルを対称的に選択することで、変換係数を符号化／復号化するロジックが備えられている請求項１６に記載の装置。
【請求項１８】
後ろから前への処理順と前から後ろへの処理順のうちの選択された一方で変換係数を処理するロジックが備えられている請求項１６に記載の装置。
【請求項１９】
さらに、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号を符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号の符号化内容を復号化することのうちの少なくとも一方を実行するロジックを備える請求項１３に記載の装置。
【請求項２０】
さらに、前記符号化／復号化を実行するため前記コードワード・テーブルの前記コードワードに選択的にアクセスする記録媒体に結合されているプロセッサを備える請求項１３に記載の装置。
【請求項２１】
手のひらサイズのコンピューティング・デバイス、携帯電話、デジタル・パーソナル・アシスタント、ラップトップ・コンピューティング・デバイス、デスクトップ・コンピューティング・デバイス、セットトップ・ボックス、サーバ、コンパクト・ディスク・プレーヤ、デジタル多用途ディスク・プレーヤ、テレビジョン、ディスプレイ・モニタのうちの選択された１つを含む請求項１３に記載の装置。
【請求項２２】
ビデオ・ドーター・カードとビデオ機能を集積化したマザーボードを備える請求項１３に記載の装置。
【請求項２３】
記憶媒体と、
前記記憶媒体に格納される複数のコードワード・テーブルであって、前記コードワード・テーブルはそれぞれ、サンプル・ブロック・タイプに少なくとも一部基づき、選択的にアクセスされる複数のコードワードを含み、少なくとも、
画像のマクロブロックのサンプル・ブロックの変換係数列の非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスを符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスの符号化内容を復号化することのうち少なくとも一方を実行する、複数のコードワード・テーブルとを備える装置。
【請求項２４】
複数のコードワード・テーブルは、画像のマクロブロックの輝度サンプル・ブロックの変換係数列の非０係数の間に差し挟まれている０係数の数を符号化／復号化するための複数のコードワードからなるコードワード・テーブルを含む請求項２３に記載の装置。
【請求項２５】
複数のコードワード・テーブルは、以下のコードワードの大半を含むコードワード・テーブルを含む請求項２４に記載の装置。
【表３】
2005521356.tif 000029
2005521356.tif 000030
【請求項２６】
複数のコードワード・テーブルは、画像のマクロブロックのクロマ・サンプル・ブロックの変換係数列の非０係数の間に差し挟まれている０係数の数を符号化／復号化するための複数のコードワードからなるコードワード・テーブルを含む請求項２３に記載の装置。
【請求項２７】
複数のコードワード・テーブルは、以下のコードワードの大半を含むコードワード・テーブルを含む請求項２６に記載の装置。
【表４】
2005521356.tif 000031
【請求項２８】
複数のコードワード・テーブルは、画像のマクロブロックのサンプル・ブロックの変換係数列のそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスを符号化／復号化するための複数のコードワードからなるコードワード・テーブルを含む請求項２３に記載の装置。
【請求項２９】
複数のコードワード・テーブルは、以下のコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項２８に記載の装置。
【表５】
2005521356.tif 000032
【請求項３０】
さらに、前記符号化／復号化を実行するため前記コードワード・テーブルの前記コードワードに選択的にアクセスする記録媒体に結合されているプロセッサを備える請求項２３に記載の装置。
【請求項３１】
手のひらサイズのコンピューティング・デバイス、携帯電話、デジタル・パーソナル・アシスタント、ラップトップ・コンピューティング・デバイス、デスクトップ・コンピューティング・デバイス、セットトップ・ボックス、サーバ、コンパクト・ディスク・プレーヤ、デジタル多用途ディスク・プレーヤ、テレビジョン、ディスプレイ・モニタのうちの選択された１つを含む請求項２３に記載の装置。
【請求項３２】
ビデオ・ドーター・カードとビデオ機能を集積化したマザーボードを備える請求項２３に記載の装置。
【請求項３３】
記録可能媒体と、
装置をプログラムするために取り出される記録可能媒体に記録される複数のコードワード・テーブルであって、前記複数のコードワード・テーブルのそれぞれは、装置がコードワードに選択的にアクセスし，
画像のマクロブロックのサンプル・ブロックの変換係数列の係数の数と後続１係数の数を、組み合わせた形で、符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の係数の数と後続１係数の数の組み合わされた符号化内容を復号化することの少なくとも１つを実行できるようにする複数のコードワードを含む複数のコードワード・テーブルとを備える製品。
【請求項３４】
複数のコードワード・テーブルは、以下の選択された１つのコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項３３に記載の製品。
【表６】
2005521356.tif 000033
2005521356.tif 000034
【請求項３５】
さらに、装置が前記コードワード・テーブルとＦＬＣのうちの１つを選択し、画像のマクロブロックの輝度サンプル・ブロックの変換係数列を符号化／復号化できるように装置をプログラムする、記録可能媒体に記録されているプログラミング命令を備える請求項３３に記載の製品。
【請求項３６】
プログラミング命令は、前記コードワード・テーブルとＦＬＣの１つを選択し、画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックの１つまたは複数の変換係数列内の係数の数に少なくとも一部は基づき、適応型方式で、画像のマクロブロックの輝度サンプル・ブロックの変換係数列を符号化／復号化する機能を装置に付加するように設計されている請求項３５に記載の製品。
【請求項３７】
画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックは、画像のマクロブロックの上の隣接輝度サンプル・ブロックと左の隣接輝度サンプル・ブロックのうちの少なくとも一方を含む請求項３６に記載の製品。
【請求項３８】
さらに、装置をプログラムする方法により装置に、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号を符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号の符号化内容を復号化することのうちの少なくとも一方を実行する機能を付加するように設計されているプログラミング命令を備える請求項３３に記載の製品。
【請求項３９】
記録可能媒体と、
装置をプログラムするために取り出される前記記録可能媒体に記録される複数のコードワード・テーブルであって、前記コードワード・テーブルのそれぞれは、
画像のマクロブロックのサンプル・ブロックの変換係数のレベル尺度の符号化であって、前記符号化はサンプル・ブロックの変換係数の係数の数に無関係である符号化と、
画像のマクロブロックのサンプル・ブロックの変換係数のレベル尺度の符号化内容の復号化であって、前記復号化はサンプル・ブロックの変換係数の係数の数の符号化に無関係である復号化のうち少なくとも一方を実行するため装置により選択的にアクセスされる複数のコードワードを含む、複数のコードワード・テーブルとを備える製品。
【請求項４０】
複数のコードワード・テーブルは、以下の選択された１つのコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項３９に記載の製品。
1
01
001
..
00000000000001
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1x
01x
001x
..
00000000000001x
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xx
01xx
001xx
..
00000000000001xx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxx
01xxx
001xxx
..
00000000000001xxx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxxx
01xxxx
001xxxx
..
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
【請求項４１】
さらに、マクロブロックの量子化パラメータ、ブロック内の係数の数、すでに符号化された／復号化された変換係数のうちの１つまたは複数の係数のレベルのうちの１つまたは複数に少なくとも一部は基づき、装置が画像のマクロブロックのサンプル・ブロックの変換係数のレベル尺度を符号化／復号化するために前記コードワード・テーブルの１つを選択できるように装置をプログラムする設計のプログラミング命令を備える請求項３９に記載の製品。
【請求項４２】
製品であって、
複数のコードワード・テーブルは異なる数のコードワードを含み、
プログラミング命令は、より大きなコードワード・テーブルを選択する前により小さなコードワード・テーブルを対称的に選択して、変換係数を符号化／復号化する機能を装置に付加するように設計されている請求項４１に記載の製品。
【請求項４３】
プログラミング命令は、装置が後ろから前への処理順と前から後ろへの処理順のうちの選択された一方から変換係数を符号化することができるように設計されている請求項４１に記載の製品。
【請求項４４】
さらに、装置をプログラムすることで、装置が、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号を符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の後続１係数の正負符号の符号化内容を復号化することのうちの少なくとも一方を実行することができるように設計されているプログラミング命令を備える請求項３９に記載の製品。
【請求項４５】
記録可能媒体と、
装置をプログラムするために取り出される前記記録可能媒体に記録される複数のコードワード・テーブルであって、前記コードワード・テーブルのそれぞれは、
画像のマクロブロックのサンプル・ブロックの変換係数列の非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスを符号化することと、
画像のマクロブロックのサンプル・ブロックの変換係数列の非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスの符号化内容を復号化することのうち少なくとも一方を実行するために装置により選択的にアクセスされる複数のコードワードを含む、複数のコードワード・テーブルとを備える製品。
【請求項４６】
複数のコードワード・テーブルは、以下のコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項４５に記載の製品。
【表７】
2005521356.tif 000035
2005521356.tif 000036
【請求項４７】
複数のコードワード・テーブルは、以下のコードワードの大半を含む少なくとも１つのコードワード・テーブルを含む請求項４５に記載の製品。
【表８】
2005521356.tif 000037
【請求項４８】
ビデオ符号化方法であって、
画像のマクロブロックのサンプル・ブロックの変換係数列内の係数の数と後続１係数の数を組み合わせた形で、符号化することと、
後続１係数の正負符号を符号化することと、
後続１係数の前にある非０変換係数のそれぞれのレベル尺度を符号化することと、
後続１係数の前にある非０係数の間に差し挟まれている０係数の数と後続１係数の前のそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスを符号化することを含む方法。
【請求項４９】
画像のマクロブロックのサンプル・ブロックの変換係数列内の後続１係数の数と後続１係数の前にある非０係数の数を、組み合わせた形で、前記符号化することは、以下の選択された１つのコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルにアクセスすることを含む請求項４８に記載の方法。
【表９】
2005521356.tif 000038
2005521356.tif 000039
2005521356.tif 000040
【請求項５０】
輝度サンプル・ブロックに関して、画像のマクロブロックのサンプル・ブロックの変換係数列の係数の数と後続１係数の数とを、組み合わせた形で符号化することは、複数のコードワード・テーブルとＦＬＣのうちの１つを選択することを含む請求項４７に記載の方法。
【請求項５１】
複数のコードワード・テーブルとＦＬＣのうち１つの前記選択は、画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックの１つまたは複数の変換係数列内の係数の数に少なくとも一部は基づき、適応型方式で、実行される請求項４９に記載の方法。
【請求項５２】
画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックは、画像のマクロブロックの上の隣接輝度サンプル・ブロックと左の隣接輝度サンプル・ブロックのうちの少なくとも一方を含む請求項５１に記載の方法。
【請求項５３】
後続１係数の前にあるそれぞれの非０変換係数のレベル尺度の前記符号化は、以下の選択された１つのコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルに選択的にアクセスすることを含む請求項４６に記載の方法。
1
01
001
..
00000000000001
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1x
01x
001x
..
00000000000001x
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xx
01xx
001xx
..
00000000000001xx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxx
01xxx
001xxx
..
00000000000001xxx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxxx
01xxxx
001xxxx
..
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
【請求項５４】
後続１係数の前にあるそれぞれの非０変換係数のレベル尺度の前記符号化は、マクロブロックの量子化パラメータ、ブロック内の係数の数、すでに符号化され／復号化された変換係数のうちの１つまたは複数のレベルのうちの１つまたは複数に少なくとも一部は基づき、コードワード・テーブルを選択することを含む請求項４８に記載の方法。
【請求項５５】
複数のコードワード・テーブルは異なる数のコードワードを含み、
後続１係数の前にあるそれぞれの非０変換係数のレベル尺度を前記符号化することは、より大きなコードワード・テーブルを選択する前により小さなコードワード・テーブルを対称的に選択することを含む請求項５４に記載の方法。
【請求項５６】
後続１係数の前にある非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスの前記符号化は、下記表のコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルに選択的にアクセスすることを含む請求項４８に記載の方法。
【表１０】
2005521356.tif 000041
2005521356.tif 000042
【請求項５７】
ビデオ復号化方法であって、
画像のマクロブロックのサンプル・ブロックの変換係数列の係数の数と後続１係数の数の組み合わされた符号化内容を復号化することと、
後続１係数の正負符号の符号化内容を復号化することと、
後続１係数の前にある非０変換係数のレベル尺度の符号化内容を復号化することと、
非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスの符号化内容を復号化することを含むビデオ復号化方法。
【請求項５８】
画像のマクロブロックのサンプル・ブロックの変換係数列内の係数の数と後続１係数の数の組み合わされた符号化内容の前記復号化は、以下の選択された１つのコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルにアクセスすることを含む請求項５７に記載の方法。
【表１１】
2005521356.tif 000043
2005521356.tif 000044
2005521356.tif 000045
【請求項５９】
輝度サンプル・ブロックに関して、画像のマクロブロックのサンプル・ブロックの変換係数列内の係数の数と後続１係数の数の組み合わされた符号化内容の前記復号化は、複数のコードワード・テーブルとＦＬＣのうちの１つを選択することを含む請求項５８に記載の方法。
【請求項６０】
複数のコードワード・テーブルとＦＬＣのうち１つの前記選択は、画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックの１つまたは複数の変換係数列内の係数の数に少なくとも一部は基づき、適応型方式で、実行される請求項５９に記載の方法。
【請求項６１】
画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックは、画像のマクロブロックの上に隣接する輝度サンプル・ブロックと左に隣接する輝度サンプル・ブロックのうちの少なくとも一方を含む請求項６０に記載の方法。
【請求項６２】
後続１係数の前にある非０変換係数のレベル尺度の符号化内容の前記復号化は、以下の選択された１つのコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルに選択的にアクセスすることを含む請求項５７に記載の方法。
1
01
001
..
00000000000001
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1x
01x
001x
..
00000000000001x
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xx
01xx
001xx
..
00000000000001xx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxx
01xxx
001xxx
..
00000000000001xxx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxxx
01xxxx
001xxxx
..
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
【請求項６３】
後続１係数の前にある非０変換係数のレベル尺度の符号化内容の前記復号化は、マクロブロックの量子化パラメータ、ブロック内の係数の数、すでに符号化され／復号化された変換係数のうちの１つまたは複数のレベル、のうちの１つまたは複数に少なくとも一部は基づき、コードワード・テーブルを選択することを含む請求項５８に記載の方法。
【請求項６４】
複数のコードワード・テーブルは異なる数のコードワードを含み、
後続１係数の前にある非０変換係数のレベル尺度の符号化内容の前記復号化は、より大きなコードワード・テーブルを選択する前により小さなコードワード・テーブルを対称的に選択することを含む請求項６３に記載の方法。
【請求項６５】
後続１係数の前にある非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスの符号化内容の前記復号化は、以下のコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルに選択的にアクセスすることを含む請求項５５に記載の方法。
【表１２】
2005521356.tif 000046
2005521356.tif 000047
2005521356.tif 000048
【請求項６６】
システムにおけるビデオ符号化と復号化方法であって、
画像のマクロブロックのサンプル・ブロックの変換係数列を符号化する第１のデバイスであって、前記符号化のために
変換係数列内の係数の数と後続１係数の数を、組み合わせた形で、符号化することと、
後続１係数の正負符号を符号化することと、
後続１係数の前にある非０変換係数のそれぞれのレベル尺度を符号化することと、
非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスを符号化することと、を行う第１のデバイスと、
サンプル・ブロックを復元する第２のデバイスであって、復元のために
変換係数列内の係数の数と後続１係数の数の組み合わせた符号化内容を復号化することと、
後続１係数の正負符号の符号化内容を復号化することと、
後続１係数の前にある非０変換係数のレベル尺度の符号化内容を復号化することと、
非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスの符号化内容を復号化することと、を行う第２のデバイスを含むビデオ符号化と復号化方法。
【請求項６７】
画像のマクロブロックのサンプル・ブロックの変換係数列内の係数の数と後続１係数の数の前記第１のデバイスによる組み合わせた形での前記符号化、第２のデバイスによる組み合わされた符号化内容の前記復号化は、以下の選択された１つのコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルにアクセスすることを含む請求項６５に記載の方法。
【表１３】
2005521356.tif 000049
2005521356.tif 000050
2005521356.tif 000051
【請求項６８】
輝度サンプル・ブロックに関して、さらに画像のマクロブロックのサンプル・ブロックの変換係数列内の係数の数と後続１係数の数の第１のデバイスによる組み合わせた形での前記符号化と第２のデバイスによる組み合わされた符号化内容の前記復号化は、複数のコードワード・テーブルとＦＬＣのうちの１つを選択することを含む請求項６４に記載の方法。
【請求項６９】
複数のコードワード・テーブルとＦＬＣのうち１つの前記選択は、画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックの１つまたは複数の変換係数列内の係数の数に少なくとも一部は基づき、適応型方式で、実行される請求項６８に記載の方法。
【請求項７０】
画像のマクロブロックの１つまたは複数の隣接する輝度サンプル・ブロックは、画像のマクロブロックの上の隣接輝度サンプル・ブロックと左の隣接輝度サンプル・ブロックのうちの少なくとも一方を含む請求項６９に記載の方法。
【請求項７１】
後続１係数の前にある非０変換係数のレベル尺度の第１のデバイスによる前記符号化と第２のデバイスによるレベル尺度符号化内容の前記復号化は、以下の選択された１つのコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルに選択的にアクセスすることを含む請求項６６に記載の方法。
1
01
001
..
00000000000001
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1x
01x
001x
..
00000000000001x
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xx
01xx
001xx
..
00000000000001xx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxx
01xxx
001xxx
..
00000000000001xxx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
1xxxx
01xxxx
001xxxx
..
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
【請求項７２】
後続１係数の前にある非０変換係数のレベル尺度の第１のデバイスによる前記符号化と第２のデバイスによるレベル尺度符号化内容の前記復号化は、マクロブロックの量子化パラメータ、ブロック内の係数の数、すでに符号化され／復号化された変換係数のうちの１つまたは複数のレベル、のうちの１つまたは複数に少なくとも一部は基づき、コードワード・テーブルを選択することを含む請求項６６に記載の方法。
【請求項７３】
複数のコードワード・テーブルは異なる数のコードワードを含み、
後続１係数の前にある非０変換係数のレベル尺度の第１のデバイスによる前記符号化と第２のデバイスによるレベル尺度の前記復号化は、より大きなコードワード・テーブルを選択する前により小さなコードワード・テーブルを対称的に選択することを含む請求項７２に記載の方法。
【請求項７４】
非０係数の間に差し挟まれている０係数の数とそれぞれの非０係数の前にある０係数の１つまたは複数のランレングスの第１のデバイスによる前記符号化ならびに第２のデバイスによる０係数の数とランレングス符号化内容の前記復号化は、以下のコードワードの大半が含まれる少なくとも１つのコードワード・テーブルを含む１つまたは複数のコードワード・テーブルに選択的にアクセスすることを含む請求項６６に記載の方法。
【表１４】
2005521356.tif 000052
2005521356.tif 000053
【発明の詳細な説明】
【関連出願】
【０００１】
（関連出願）
本出願は、２００２年３月２２日に出願された仮出願番号６０／３６７０３２の非仮出願であり、明細書が参照により完全に組み込まれている前記仮出願の優先権を主張する。
【技術分野】
【０００２】
本発明は、ビデオ符号化／復号化の分野に関する。より具体的には、本発明は、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数の符号化と符号化内容の復号化に関係する。
【背景技術】
【０００３】
マイクロプロセッサとビデオ関連技術が進歩したことで、さまざまな種類のビデオ・デバイスが広く行き渡り、採用されるに至っている。このようなビデオ・デバイスの例としては、デジタル・ビデオカメラ、デジタル多用途ディスク（ＤＶＤ）プレーヤ、ビデオ対応ラップトップとデスクトップ・コンピューティング・デバイス、さらにはサーバなども挙げられる。
【０００４】
また、ネットワーク、遠距離通信、衛星、その他の関連技術が進歩したことで、インターネットなどの公衆回線網による配信をはじめとする、ビデオのオンデマンドおよび／またはリアルタイム・オンライン配信が増大した。
【０００５】
ビデオをオフラインで配信するか（例えば、ＤＶＤプレーヤから）オンラインで配信するか（例えば、内ビデオ・サーバから）に関係なく、高品質のビデオには、本質的に大量のデータが必要になる。したがって、ビデオ配信とレンダリングは、多くの場合、格納、取り出し、および／または送信が行われるデータの量を減らすために符号化と復号化を伴う。
【０００６】
ビデオの符号化／復号化は、ビデオを画像のストリームとして処理することを伴うことが多い。それぞれの画像は、フィールドまたはフレーム（通常、２つのインターリーブされたフィールドからなる）であり、多数のマクロブロックに分解することができる。それぞれのマクロブロックは、多くの場合、さまざまなサイズの複数のブロックに細分され、これらはさまざまな種類の多数のサンプル、すなわち輝度および／またはクロマ・サンプルに変換され量子化される。
【０００７】
当業では、多数の符号化／復号化手法が知られている。例えば、一手法では、単一の可変長符号化（ＶＬＣ）方式を使用してマクロブロックのさまざまなパラメータを符号化している。この手法は、実施するのには単純であるが、データの削減量、つまり圧縮の効果は中程度でしかない。
【０００８】
Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ（ＣＡＢＡＣ）などの他の手法では、コンテキスト適応と算術演算符号化を採用して、全体的有効性を高めている。しかし、ＣＡＢＡＣなどの手法は、複雑であり、大量のメモリを必要とし、また実施することが困難である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
必要なのは、従来の非コンテキスト適応型手法よりも効果が高く、しかも現在までに知られているコンテキスト適応型手法よりも実行方法があまり複雑でない、コンテキスト適応型手法である。
【００１０】
本発明は、類似の参照は類似の要素を表している付属の図面で制限としてではなく例示される実施形態を使用して説明される。
【課題を解決するための手段】
【００１１】
本発明は、コンテキスト適応型ＶＬＣ変換係数エンコーダ、相補型デコーダ、それらのエンコーダおよび／またはデコーダを備えるデバイス、そのようなデバイスからなるシステム、ならびにそれらの要素、デバイス、とシステムのオペレーションと関連する主題の方法を含む。
【発明を実施するための最良の形態】
【００１２】
以下の説明では、本発明のさまざまな態様を説明する。ただし、当業者には、本発明は本発明のごく一部の態様または全部の態様により実施できることは明白であろう。説明のため、本発明を完全に理解できるように具体的な番号、材料、と構成を述べてある。ただし、当業者であれば、本発明はこれらの特定の詳細がなくても実施できることは明白であろう。他の場合には、本発明を分かりにくくしないために、よく知られている特徴は省くか、または簡略化している。
【００１３】
用語
説明の一部は、当業者がその作業内容を他の当業者に伝達するために一般的に使用している方法と矛盾しない形で、画像、マクロブロック、ブロック、サンプル、輝度、クロマ、変換係数、ジグザグ走査順、数値、符号、レベル、ランレングスなどのビデオの符号化と復号化の用語で行われている。これらの用語は当業者であればよく理解できるであろ。とりわけ、ビデオ・デバイスでは、これらの数量は、プロセッサの電気的および／または光学的コンポーネントとそのサブシステムを通じて格納、転送、組み合わせ、さらには他の何らかの方法による操作を行うことができる電気信号、磁気信号、または光信号の形を取る。
【００１４】
さまざまなビデオ符号化／復号化規格において、符号化はいくつかの構文規則に従って系統立てられており、したがって「構文要素」とも呼ばれる。
【００１５】
節の見出し、説明の順序、実施形態
節の見出しは、単に読みやすくするために採用されているだけであり、本発明を制限するまたはその範囲を狭めるものと解釈すべきではない。
【００１６】
さまざまなオペレーションは、複数の別々のステップとして次々に、本発明の理解に最も役立つ形で説明されるが、説明の順序は、それらのオペレーションが必ず順序に依存することを意味すると解釈すべきではない。特に、それらのオペレーションは、取りあげられている順序で実行する必要はない。
【００１７】
「一実施形態では」という語句は、繰り返し使用される。この語句は、一般に、同じ実施形態を指し示さないが、指し示すこともあり得る。「備える」、「持つ（格納する、含む、備える）」、と「含む」は、文脈の中で別に指示されていない限り、同義である。
【００１８】
概要
図１は、一実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数を符号化するための本発明のコンテキスト適応型ＶＬＣエンコーダの概要の図である。例示されているように、この実施形態では、コンテキスト適応型ＶＬＣエンコーダ１００がエンコーダ・ブロック１０２〜１０６を備え、これらのブロックはエンコーダ１００の入力１０８に並列に結合されており、ビデオの画像のマクロブロックの（輝度／クロマ）ブロックの量子化された変換係数を受け取る。エンコーダ・ブロック１０２〜１０４は、応答として、（輝度／クロマ）ブロックの受け取った変換係数をＶＬＣコードワードに符号化し、ＶＬＣコードワードを出力１１０でビット・ストリームとして出力する。ＶＬＣコードワードは、変換係数の「符号化」（または「構文要素」）とも呼ばれる。
【００１９】
より具体的には、エンコーダ・ブロック１０２は、ＶＬＣコードワード・テーブル１２２と符号化ロジック１２４を備え、これにより、ＶＬＣコードワード・テーブル１２２の１つを適応的に選択し、マクロブロックの各ブロック内の係数の数と後続１係数の数を組み合わせた形で符号化する（Ｎｕｍ−Ｔｒａｉｌ）。つまり、マクロブロックの各ブロック内の係数の数と後続１係数の数は、単一のＶＬＣコードワードにより都合よく符号化されるということである。エンコーダ・ブロック１０２は、略して、Ｎｕｍ−Ｔｒａｉｌエンコーダ・ブロック１０２と呼ばれる。
【００２０】
「後続１係数」は、その名が示すように、通常ジグザグ走査順に従って配されている、ブロックの変換係数の「後」にある「１」値係数を指している。ジグザグ走査順は、（おおよそ）最低の空間周波数から最高の空間周波数への変換係数の連続的順序付けである。「前」と「後」の向きは、「順序」視点から見られる。例えば、サンプル・ブロックの変換係数が５００１２０１１０１００１１１１の場合、最後の４つの「１」変換係数（後ろから数えて）は、後続１係数、つまりＴ１と呼ばれる。
【００２１】
一実施形態では、後続１係数の長さは、３（変換係数の系列の「後」から数えて）でクリップされる。つまり、この実施形態では、符号化の目的のために、Ｔ１係数の最も長い長さは３に制限される。「除外」後続１係数は、「通常」、後続１係数の前の「非０係数」として符号化される。
【００２２】
他の実施形態では、本発明は、Ｔ１係数に対するより大きな、またはより小さな、最も長い長さで実施できる。
【００２３】
エンコーダ・ブロック１０４は、ＶＬＣコードワード・テーブル１３２と符号化ロジック１３４を備え、これにより、ＶＬＣコードワード・テーブル１３２の１つを適応的に選択し、（もしあれば「除外」または「クリップ」された後続１係数を含む）サンプル・ブロックの後続１係数の前の各非０係数のレベル尺度（または単に、レベル）を符号化する。つまり、本発明では、従来技術とは異なり、係数の数と非０係数のレベルは別々に符号化すると都合がよいということである。エンコーダ・ブロック１０４は、略して、レベル・エンコーダ・ブロック１０４と呼ばれる。
【００２４】
一実施形態では、さらにＴ１係数の符号（ＳｉｇｎＴｒａｉｌ）を符号化するレベル・エンコーダ・ブロック１０４が備えられている。他の実施形態では、Ｔ１係数の符号を符号化することは、例えば、代わりにＮｕｍ＿Ｔｒａｉｌエンコーダ１０２により符号化することもできる。
【００２５】
エンコーダ・ブロック１０６は、ＶＬＣコードワード・テーブル１４２と符号化ロジック１４４を備え、ブロックの非０係数の間に差し挟まれた０係数の総数とそれぞれのランレングス（ＴｏｔａｌＺｅｒｏｓとＲｕｎＬｅｎｇｔｈｓ）を符号化する。前の例では、非ゼロの間に全部で６個の０が差し挟まってており、それぞれのランレングスは２、１、１、２である。エンコーダ・ブロック１０６は、ＴｏｔａｌＺｅｒｏ−ＲｕｎＬｅｎｇｔｈ  エンコーダ・ブロック１０６と呼ばれる。
【００２６】
一実施形態では、各マクロブロックは、輝度サンプルの１６個の（４×４）のブロック、８個の対応する４×４クロマＡＣブロック、２個の２×２クロマＤＣブロックを含む。対応する出力形式は次のとおりである。
輝度
{[NumTrail Sign-Trail Levels(16) TotalZeros RunLengths]*4}*4
クロマＤＣ
[NumTrail Sign-Trail Levels(4) TotalZeros RunLengths]*2
クロマＡＣ
{[NumTrail Sign-Trail Levels(15) TotalZeros RunLengths]*4}*2
【００２７】
Ｉｎｔｒａ  １６×１６というマクロブロック・タイプでは、１つのＩｎｔｒａ  １６×１６  ＤＣサンプル・ブロックと１６個のＩｎｔｒａ  ４×４  ＡＣサンプル・ブロックがあり、対応する出力形式は以下のとおりである。
Ｉｎｔｒａ  １６×１６  ＤＣ
NumTrail Sign-Trail Levels(16)TotalZeros RunLengths
Ｉｎｔｒａ  １６×１６  ＡＣ
[NumTrail Sign-Trail Levels(15)TotalZeros RunLengths]*16(4×4blocks)
【００２８】
新規のＶＬＣコードワード・テーブル１２２、１３２、１４２と、エンコーダ・ブロック１０２〜１０６に供給される適切なＶＬＣコードワード・テーブルを適応的に選択するための符号化ロジック１２４、１３４、１４４を除き、エンコード・ブロック１０２〜１０６の他の態様を含む、エンコーダ１００の他の態様も知られているため、これ以上詳しくは説明しない。
【００２９】
さまざまな実施形態において、符号化ブロック１０２〜１０６を含むエンコーダ１００は、例えば、特定用途向け集積回路（ＡＳＩＣ）を使用してハードウェアにより、またはＣなどのプログラミング言語を使ってソフトウェアにより、またはそれらの手段を組み合わせて実装することができる。
【００３０】
数と後続１係数のエンコーダ・ブロック
さまざまな実施形態において、Ｎｕｍ−Ｔｒａｉｌエンコーダ・ブロック１０２は、輝度サンプル・ブロックの変換係数を符号化するための３つのＶＬＣコードワード・テーブルと、クロマ・サンプル・ブロックの変換係数を符号化するための１つのＶＬＣコードワード・テーブルとを含む。
【００３１】
より具体的には、一実施形態において、輝度サンプル・ブロックの変換係数を符号化するための３つのコードワード・テーブルは以下のとおりである。
【００３２】
【表１】
2005521356.tif 000003
2005521356.tif 000004
【００３３】
【表２】
2005521356.tif 000005
【００３４】
【表３】
2005521356.tif 000006
2005521356.tif 000007
【００３５】
クロマ・サンプル・ブロックの変換係数を符号化する単一のコードワード・テーブルは以下のとおりである。
【００３６】
【表４】
2005521356.tif 000008
【００３７】
他の実施形態では、ＶＬＣコードワードの格納の仕方を含む、異なる数のＶＬＣコードワード・テーブルと異なるＶＬＣコードワードを使用することができる。より具体的には、いくつかの実施形態では、ＶＬＣコードワードは、それ自体、ｐをコードワードの明示的に列挙されている部分、Ｌを特定のコードワードの長さとする｛ｐ，Ｌ｝の形式を保存する格納領域に格納することができる。ＶＬＣコードワードの非列挙部分は、ＶＬＣコードワードが使用されるときに前から０が詰められ、例えば、「０１００８」は０００００１００となる。
【００３８】
特に、一実施形態では、輝度サンプル・ブロックの変換係数を符号化するためのＶＬＣコードワード・テーブルは以下のとおりである。
【００３９】
【表５】
2005521356.tif 000009
2005521356.tif 000010
【００４０】
【表６】
2005521356.tif 000011
2005521356.tif 000012
【００４１】
【表７】
2005521356.tif 000013
【００４２】
クロマ・サンプル・ブロックの変換係数を符号化するコードワード・テーブルは以下のとおりである。
【００４３】
【表８】
2005521356.tif 000014
【００４４】
図２は、実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数列の係数の数とＴ１係数の数を、組み合わせた形で、符号化するための図１のエンコーダ・ブロックの関連する態様の動作流れ図である。例示されているように、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数を受け取ると、Ｎｕｍ−Ｔｒａｉｌエンコーダ・ブロック１０２の符号化ロジック１２４は、まず最初に、輝度サンプル・ブロックかクロマ・サンプル・ブロックかを判定する（ブロック２０１）。さまざまな実施形態において、現在の変換係数が輝度サンプル・ブロックの係数かクロマ・サンプル・ブロックの係数かどうかを表している情報が係数に関して供給され、符号化ロジック１２４は、供給される随伴情報に基づいてサンプル・ブロック・タイプを決定する。
【００４５】
３輝度および１クロマＶＬＣコードワード・テーブルの実施形態では、サンプル・ブロックがクロマ・サンプル・ブロックであることを判別した後、Ｎｕｍ−Ｔｒａｉｌエンコーダ・ブロック１０２の符号化ロジック１２４は変換係数を符号化するクロマＶＬＣコードワード・テーブルを選択する、ブロック２０４に進む。
【００４６】
しかし、現在のサンプル・ブロックが輝度サンプル・ブロックである場合、Ｎｕｍ−Ｔｒａｉｌエンコーダ・ブロック１０２の符号化ロジック１２４は、まず、用意された複数の輝度ＶＬＣコードワード・テーブルの１つについてのコンテキスト適応型選択の補助に使用するコンテキスト測定基準を決定する。さまざまな実施形態では、Ｎｕｍ−Ｔｒａｉｌエンコーダ・ブロック１０２の符号化ロジック１２４は、１つまたは複数の選択された隣接サンプル・ブロック内の変換係数の平均数をコンテキスト測定基準（Ａｖｇ）として計算する。より具体的には、一実施形態（マクロブロックのサンプル・ブロックが従来のジグザグ方式で供給される）では、符号化ロジック１２４は、上のサンプル・ブロックと現在のサンプル・ブロックの左にあるサンプル・ブックのＡｖｇをコンテキスト測定基準として計算する。
【００４７】
上のサンプル・ブロックがない退化ケースでは、Ａｖｇは現在のサンプル・ブロックの左にあるサンプル・ブロックの変換係数の数に設定される。同様に、現在のサンプル・ブロックの左にサンプル・ブロックがない退化ケースでは、Ａｖｇは上のサンプル・ブロックの変換係数の数に設定される。上にサンプル・ブロックがなく、また現在のサンプル・ブロックの左にもサンプル・ブロックがない退化ケースでは、Ａｖｇは０に設定される。
【００４８】
一実施形態では、Ｎｕｍ−Ｔｒａｉｌエンコーダ・ブロック１０２の符号化ロジック１２４は以下のようにしてＶＬＣコードワード・テーブルを選択する。
（０≦Ａｖｇ＜２）ならば、コードワード・テーブルＮｕｍ−ＶＬＣ０／Ｎｕｍ−ＶＬＣ０’を選択する
（２≦Ａｖｇ＜４）ならば、コードワード・テーブルＮｕｍ−ＶＬＣ１／Ｎｕｍ−ＶＬＣ１’を選択する
（４≦Ａｖｇ＜８）ならば、コードワード・テーブルＮｕｍ−ＶＬＣ２／Ｎｕｍ−ＶＬＣ２’を選択する
（８≦Ａｖｇ）ならば、６ビット固定長のコードワード（ＦＬＣ）ｘｘｘｘｙｙを生成する。ただしｘｘｘｘは係数の数を表し、ｙｙはＴ１を表す。
【００４９】
一実施形態では、Ａｖｇ≧８であり、かつ現在のサンプル・ブロックの係数の数が０であれば、特別なコードワード００００１１が使用される。
【００５０】
引き続き図２を参照すると、これ以降、つまり、ＶＬＣコードワード・テーブル（または、輝度サンプル・ブロックの場合にはＦＬＣ）を選択した後、符号化ロジック１２４は係数の数と現在のサンプル・ブロックのＴ１を判別するブロック２０６〜２０８に進む。その後、ロジック１２４は、それに応じて現在のサンプル・ブロックの係数の数とＴ１を符号化するが、その際に、選択されたＶＬＣコードワード・テーブル（または、輝度サンプル・ブロックの場合にはＦＬＣ）を使用する。
【００５１】
レベル・エンコーダ・ブロック
さまざまな実施形態では、レベル・エンコーダ・ブロック１０３は、輝度とともにクロマのサンプル・ブロックの変換係数のレベルを符号化するための複数のＶＬＣコードワード・テーブルを含む。
【００５２】
より具体的には、一実施形態では、複数のＶＬＣコードワード・テーブルは５つの構造化されたコードワード・テーブルから「派生」され、それらの構造化されたコードワード・テーブルは以下のとおりである。
【００５３】
1
01
001
..
00000000000001
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
表９−Ｌｅｖ−ＶＬＣ０
【００５４】
1x
01x
001x
..
00000000000001x
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
表１０−Ｌｅｖ−ＶＬＣ０
【００５５】
1xx
01xx
001xx
..
00000000000001xx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
表１１−Ｌｅｖ−ＶＬＣ０
【００５６】
1xxx
01xxx
001xxx
..
00000000000001xxx
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
表１２−Ｌｅｖ−ＶＬＣ０
【００５７】
1xxxx
01xxxx
001xxxx
..
000000000000001xxxx
0000000000000001xxxxxxxxxxxx
表１３−Ｌｅｖ−ＶＬＣ０
【００５８】
各ＶＬＣコードワード・テーブル内のコードワードは先行０の数に応じて増大し、ｘｘｘという文字列は可能な組み合わせの順序を表し、例えば、０１ｘｘｘｘと表されるコードワードでは、コードワードは０１００００、０１０００１、０１００１０、．．．、０１１１１１となる。
【００５９】
レベルは、昇順コード番号のペアに従って割り当てられる。レベルの正の値では、コード番号ペアの低い方のコード番号が得られ、レベルの負の値では、コード番号ペアの高い方のコード番号ペアが得られる。
【００６０】
それぞれのテーブル内の最後の２つのエントリは、エスケープ・コードと考えることができ、４個の「ｘ」がある第１のエスケープ・コードは、最後の通常通り符号化されたレベルよりも上の８つのレベルを符号化するために使用され、１２個の「ｘ」がある次のエスケープ・コードは、残りすべてのレベルを符号化するために使用される。
【００６１】
一般に、符号化されるレベルは値±１、±２など（レベル）を取る。しかし、符号化される最初の係数については（Ｔ１の後、変換係数列の後からの処理）、Ｔ１＜３またはＮｕｍｂｅｒ＿ｏｆ＿ｃｏｅｆｆｉｃｉｅｎｔｓ＝Ｔ１であれば、符号化されるレベルは値±２、±３など（Ｌｅｖｅｌ’）を取る。したがって、第１の係数を符号化するためにＬｅｖ−ＶＬＣ０またはＬｅｖ−ＶＬＣ１が使用される場合（Ｔ１の後、後からの処理）、レベルは±２から始まってよい。
【００６２】
説明のため、各Ｌｅｖ−ＶＬＣテーブルのコードワードの選択を一覧にした、以下の例の「派生された」ＶＬＣコードワード・テーブルを考察する。
【００６３】
【表９】
2005521356.tif 000015
2005521356.tif 000016
2005521356.tif 000017
【００６４】
図３は、一実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数のレベル尺度を符号化するための図１のレベル・エンコーダ・ブロックの関連する態様の動作流れ図である。図に例示されているように、実施形態では、（輝度／クロマ）ブロックの変換係数を受け取った後、レベル・エンコーダ・ブロック１０４の符号化ロジック１３４は、最初に、Ｔ１の正負符号を符号化する（ブロック３０２）。実施形態では、正負符号を符号化するのに１ビットを使用する。
【００６５】
さらに、レベル・エンコーダ・ブロック１０４の符号化ロジック１３４は、Ｔ１の後の最初の非０係数によるレベル符号化を開始する（後からの処理）（ブロック３０４）。実施形態では、レベル・エンコーダ・ブロック１０４の符号化ロジック１３４は、符号化を実行するため適切なレベルＶＬＣコードワード・テーブルの適応的に選択を補助するコンテキスト測定基準を計算する（ブロック３０６）。さまざまな実施形態において、コンテキスト測定基準は、現在のマクロブロックの量子化パラメータ値であり、その値はさらに、ブロック内の係数の数とブロックの変換係数のレベルに関して与えられる。
【００６６】
一実施形態では、レベル・エンコーダ・ブロック１０４は以下のようにしてレベルＶＬＣコードワード・テーブルを選択する。
【００６７】
インター・マクロブロックに量子化パラメータがあるか、またはイントラ・マクロブロックの量子化パラメータ値≧９であれば、
第１の係数について、Ｌｅｖ−ＶＬＣ０を選択し、
その次の係数について、Ｌｅｖ−ＶＬＣ１を選択し、
それ以降、レベルの絶対値＞３であれば、次に「高い」Ｌｅｖ−ＶＬＣｘコードワード・テーブルを選択し、それよりも「高い」２つのコードワード・テーブルまで続け、
イントラ・マクロブロックの量子化パラメータ値＜９であれば、
（係数の数＞１０）であれば、
第１の係数について、Ｌｅｖ−ＶＬＣ１を選択し、
次の係数について、Ｌｅｖ−ＶＬＣ２を選択し、
そうでなければ、
第１の係数について、Ｌｅｖ−ＶＬＣ０を選択し、
次の係数について、Ｌｅｖ−ＶＬＣ１を選択し、
それ以降、レベルの絶対値＞３であり、かつＶＬＣコードワード・テーブルがＬｅｖ−ＶＬＣ１であれば、Ｌｅｖ−ＶＬＣ２を選択し、
レベルの絶対値＞５であり、かつＶＬＣコードワード・テーブル≧Ｌｅｖ−ＶＬＣ２であれば、次に「高い」Ｌｅｖ−ＶＬＣｘコードワード・テーブルを選択し、それよりも「高い」４つのコードワード・テーブルまで続ける。
【００６８】
引き続き図３を参照すると、適切なＶＬＣコードワード・テーブルを選択した後、符号化ロジック１３４は符号化される現在の非０変換係数のレベルを符号化する（ブロック３１０）。
【００６９】
次に、符号化ロジック１３４は、Ｔ１係数の前のすべての非０係数がレベル符号化されたかどうかを判別する（ブロック３１２）。レベル符号化されていなければ、符号化ロジック１３４は、すでに述べたようにブロック３０４でオペレーションを続行する。Ｔ１係数の前のすべての非０係数がレベル符号化されている場合、符号化ロジック１３４は現在のサンプル・ブロックに対するレベル符号化処理を終了する。
【００７０】
全０とランレングス・エンコーダ・ブロック
さまざまな実施形態において、ＴｏｔａｌＺｅｒｏ−ＲｕｎＬｅｎｇｔｈエンコーダ・ブロック１０６は、間に差し挟まれた０係数の数と非０係数、さらにそれぞれのランレングスを符号化するための複数のＶＬＣコードワード・テーブルを含む。
【００７１】
より具体的には、一実施形態では、ＴｏｔａｌＺｅｒｏ−ＲｕｎＬｅｎｇｔｈエンコーダ・ブロック１０６は、「トータル・ゼロ」を符号化するための、輝度サンプル・ブロックの変換係数用に１つとクロマ・サンプル・ブロックの変換係数用に１つの、２つのＶＬＣコードワード・テーブルと、いずれかのタイプのサンプル・ブロックの「ランレングス」を符号化するためのＶＬＣコードワード・テーブルとを含む。ＶＬＣコードワード・テーブルは以下のとおりである。
【００７２】
【表１０】
2005521356.tif 000018
【００７３】
【表１１】
2005521356.tif 000019
【００７４】
【表１２】
2005521356.tif 000020
【００７５】
同様に、他の実施形態では、ＶＬＣコードワードの異なる格納の仕方を含む、異なる数のＶＬＣコードワード・テーブルと異なるＶＬＣコードワードを使用して、本発明を実施することができる。特に、一実施形態では、本発明は、代わりに、以下の３つのＶＬＣコードワード・テーブルにより実施することができる。
【００７６】
【表１３】
2005521356.tif 000021
2005521356.tif 000022
【００７７】
【表１４】
2005521356.tif 000023
【００７８】
【表１５】
2005521356.tif 000024
【００７９】
表１４〜１６のＶＬＣコードワードはすでに述べた同じ領域節約形式で表されている。
【００８０】
図４は一実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの非０係数の間に差し挟まれた０係数の数と変換係数のそれぞれのランレングスを符号化するためのＴｏｔａｌＺｅｒｏ−ＲｕｎＬｅｎｇｔｈエンコーダ・ブロック１４２の符号化ロジック１４４の関連する態様の動作流れ図である。
【００８１】
図に例示されているように、実施形態では、（輝度／クロマ）ブロックの変換係数を受け取った後、符号化ロジック１４４は、非０係数の間に差し挟まれた０係数の数（トータル・ゼロ）を判別する（ブロック４０２）。次に、符号化ロジック１４４は、ブロック内の係数の数に対応する適切なコードワード・テーブルとサンプル・ブロック・タイプを選択する（ブロック４０４）。他の実施形態では、他の基準を使用してコードワード・テーブルを選択することができる。次に、符号化ロジック１４４は、選択されたコードワード・テーブルを使用してトータル・ゼロ情報を符号化する。
【００８２】
さらに、符号化ロジック１４４は、差し挟まれている０の第１のランを選択し（後から処理、または他の実施形態では前から処理）、ランレングス（ＲｕｎＬｅｎｇｔｈ）を判定する（ブロック４０６〜４０８）。次に、符号化ロジック１４４は、差し挟まれることになっている０の数に基づき適切なコードワード・テーブルを選択する（ブロック４０７）。次に、符号化ロジック１４４は、選択されたランレングスコードワード・テーブルを使用してランレングス情報を符号化する。その後、符号化ロジック１４４は、差し挟まれているすべての０が符号化されたかどうか判定する（ブロック４１０）。符号化されていなければ、符号化ロジック１４４は、すでに述べたようにブロック４０６に戻って続行する。差し挟まれているすべての０ランが符号化された場合、トータル・ゼロとランレングス符号化処理は終了する。
【００８３】
デコーダ
図５は、一実施形態による、図１のエンコーダの原理と似た符号化原理により符号化された変換係数を復号化するための本発明のコンテキスト適応型ＶＬＣデコーダの概要の図である。例示されているように、実施形態では、コンテキスト適応型ＶＬＣデコーダ５００は、エンコーダ１００と同様に構成され、デコーダ・ブロック５０２〜５０６を備え、これらのブロックはデコーダ５００の入力５１０に並列に結合され、ビデオの画像のマクロブロックの（輝度／クロマ）ブロックの量子化された変換係数を符号化するＶＬＣコードワードのビット・ストリームを受け取る。それに対する応答として、デコーダ・ブロック５０２〜５０６は、（輝度／クロマ）ブロックの変換係数の受け取った符号化内容を量子化形式に復号化して戻し、出力１０８から出力する。
【００８４】
これらの実施形態では、デコーダ・ブロック５０２〜５０６はエンコーダ・ブロック１０２〜１０６と同様に構成される。つまり、デコーダ・ブロック５０２は、ＶＬＣコードワード・テーブル５２２と符号化ロジック５２４を備え、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数列の係数とＴ１係数の数の組み合わせたＶＬＣコードワードを復号化する。さらに、デコーダ・ブロック５０４は、ＶＬＣコードワード・テーブル５３２と符号化ロジック５３４を備えており、（輝度／クロマ）ブロックの変換係数のレベルのＶＬＣコードワードを復号化する。同様に、デコーダ・ブロック５０６は、ＶＬＣコードワード・テーブル５３２と符号化ロジック５３４を備えており、（輝度／クロマ）ブロックの非０変換係数のトータル・ゼロとそれぞれの「ゼロ」ランレングスのＶＬＣコードワードを復号化する。
【００８５】
本発明の応用例
図６は、一実施形態による本発明の教示により組み込まれているビデオ・デバイスを示す図である。例示されているように、ビデオ・デバイス６００は、デバイスの入力と出力に結合されているエンコーダ６１０とデコーダ６２０を備える。すでに述べたように、エンコーダ６１０は、ビデオの画像のマクロブロックの（輝度／クロマ）ブロックの量子化された変換係数６３２ａを受け取り、応答してそれをＶＬＣコードワード６３４ａに適合的に符号化するように設計されている。デコーダ６２０は、もう１つのビデオの画像のマクロブロックの（輝度／クロマ）ブロックの変換係数のＶＬＣコードワード６３４ｂを受け取り、それに対する応答として、コードワードを適応復号化して係数６３２ｂに戻すように設計されている。
【００８６】
エンコーダ６１０とデコーダ６２０は、すでに述べたエンコーダ１００とデコーダ５００と同様に構成されている。さまざまな実施形態において、エンコーダ６１０とデコーダ６２０は、少なくとも一部は、その構成テーブルと符号化ロジックを共有することができる（エンコーダ６１０とデコーダ６２０の交差ブロックで示されているように）。
【００８７】
さまざまな実施形態において、ビデオ・デバイス６００は、デジタル・カメラ、ＤＶＤプレーヤ、ビデオ監視カメラ、ビデオ会議デバイス、医療用画像処理デバイス、これらに類似のその他のビデオ・デバイスであってよい。他の実施形態では、ビデオ・デバイス６００は、携帯電話、パーソナル・デジタル・アシスタントなどの手のひらサイズのコンピューティング・デバイス、ラップトップ・コンピューティング・デバイス、デスクトップ・コンピューティング・デバイス、セット・トップ・ボックス、サーバ、類似のその他のコンピューティング・デバイスであってよい。これらのビデオ・デバイスの１つ（６００）を実行するアプリケーションには、インスタント・メッセージングおよび／またはビデオが含まれる電子メールが考えられる。さらに他の実施形態では、ビデオ・デバイス６００は、ビデオ「アドオン」回路基板（ドーター・ボードとも呼ばれる）、マザーボード、と類似のその他の回路基板などの回路基板コンポーネントとすることができる。
【００８８】
図７は、すでに述べたエンコーダ１００および／またはデコーダ５００のソフトウェアによる実施形態を実施するプログラミング命令を格納する記録可能媒体７００を含む製品を例示している。エンコーダ１００および／またはエンコーダ５００のソフトウェアによる実施形態を実施するプログラミング命令は、ビデオ・デバイス７１０が本発明の符号化と復号化機能を備えるようにビデオ・デバイス７１０をプログラムするために使用できるように設計されている。
【００８９】
実施形態では、ビデオ・デバイス７１０は、エンコーダ１００および／またはデコーダ５００のソフトウェアによる実施形態を実施するプログラミング命令の作業用コピーの少なくとも一部を格納するための記憶媒体７１２とプログラミング命令を実行するため記憶媒体７１２に結合されている少なくとも１つのプロセッサ７１４を備える。
【００９０】
ビデオ・デバイス７１０は、先に列挙したデバイス例のデバイスまたは類似のその他のビデオ・デバイスのうちの任意の１つでよい。製品７１２は、例えば、ディスケット、コンパクト・ディスク（ＣＤ）、ＤＶＤまたは類似のその他のコンピュータ可読媒体とすることができる。他の実施形態では、製品７１２は、インターネットなどの専用通信回線および／または公衆通信回線を介して、エンコーダ１００および／またはデコーダ５００をオンラインで配信する配信サーバとすることができる。一実施形態では、製品７１２はＷｅｂサーバである。
【００９１】
図８は、ビデオ送信機８０２とビデオ受信機８０４が図に示されているように互いに結合されて通信し、ビデオ送信機８０２は本発明の教示によりビデオを符号化して、符号化されたビデオをビデオ受信機８０４に供給し、次に、ビデオ受信機８０４は符号化されたビデオを復号化してビデオをレンダリングする、システム例を示している。ビデオ送信機８０２とビデオ受信機８０４は、すでに述べたエンコーダ１００とデコーダ５００をそれぞれ備える。
【００９２】
ビデオ送信機８０２の例は、ビデオ・サーバであるが、ビデオ受信機８０４の例は、ビデオ送信機８０２に結合されているクライアント・デバイスである。
【００９３】
結論と結びの言葉
したがって、上の説明から、この方法により組み込まれたエンコーダ、デコーダ、デバイス、とシステムを含む、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数を符号化し復号化する新規性のある方法が説明されていることは理解できるであろう。
【００９４】
本発明は、前記の実施形態と応用例に関して説明されているが、当業者であれば、本発明が説明されている実施形態と応用例に限られないことを理解するであろう。本発明は、付属の請求項の精神と範囲内であれば修正と変更を加えて実施することができる。例えば、異なる数のエンコーダ／デコーダ・ブロック、さまざまなエンコーダ／デコーダ・ブロック内の異なる数のコードワード・テーブル、異なるコードワード・テーブル、異なるコードワード・テーブル選択ロジック、と異なる符号化指令を、代わりに実施することもできる。
【００９５】
したがって、この説明は、本発明に対する制約ではなく、例示するものとみなすべきである。
【図面の簡単な説明】
【００９６】
【図１】一実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数を符号化するための本発明のコンテキスト適応型ＶＬＣエンコーダの概要の図である。
【図２】一実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数列の係数の数と後続１係数の数を、組み合わせた形で、符号化するための図１のエンコーダ・ブロックの関連する態様の動作流れ図である。
【図３】一実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの変換係数のレベル尺度を符号化するための図１のエンコーダ・ブロックの関連する態様の動作流れ図である。
【図４】一実施形態による、画像のマクロブロックの（輝度／クロマ）ブロックの非０係数の間に差し挟まれた０係数の数と変換係数のそれぞれのランレングスを符号化するための図１のエンコーダ・ブロックの関連する態様の動作流れ図である。
【図５】一実施形態による、図１のエンコーダの原理と似た符号化原理により符号化された変換係数を復号化するための本発明のコンテキスト適応型ＶＬＣデコーダの概要の図である。
【図６】一実施形態による本発明の符号化／復号化の教示によりエンコーダとデコーダが組み込まれているビデオ・デバイスを示す図である。
【図７】一実施形態による本発明の符号化／復号化機能を備えるようにデバイスをプログラムするために使用する設計の本発明のエンコーダ／エンコーダのソフトウェア実装を格納する記録可能媒体を備える製品の図である。
【図８】一実施形態による本発明の符号化／復号化の教示によりビデオ送信機デバイスとビデオ受信機デバイスが組み込まれているシステムを示す図である。
【図１】
2005521356.tif 000054
【図２】
2005521356.tif 000055
【図３】
2005521356.tif 000056
【図４】
2005521356.tif 000057
【図５】
2005521356.tif 000058
【図６】
2005521356.tif 000059
【図７】
2005521356.tif 000060
【図８】
2005521356.tif 000061
【国際調査報告】
2005521356.tif 000062
2005521356.tif 000063
2005521356.tif 000064
2005521356.tif 000065
2005521356.tif 000066
2005521356.tif 000067