(57)【特許請求の範囲】
【請求項１】
動画像に関するデータを符号化する符号化装置であって、
量子化されたＤＣＴ係数又は動きベクトルを示す多値データを二値化した二値データのビット長の最大値が小さくなるように前記多値データをコード化する多値データコード化手段と、
前記多値データコード化手段によって得られたコード化データを前記二値データに変換する変換手段と、
前記変換手段によって得られた二値データを算術符号化する算術符号化手段と
を備えることを特徴とする符号化装置。
【請求項２】
前記多値データコード化手段は、前記多値データを二値化する二値化手段と、前記二値化手段によって得られた二値データをコード化するコード化手段とを有し、
前記変換手段は、前記コード化手段によって得られたコード化データを前記二値データに変換する
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記コード化手段は、前記二値化手段によって得られた二値データのビット長が所定の長さ以下であるか否かを判定し、判定した結果を判定ビットとして値を保存しておき、前記二値データのビット長が所定の長さ以下である場合は、二値データであることを示す判定ビットを前記二値データに付加し、前記二値データのビット長が所定の長さを超える場合は、多値データであることを示す判定ビットを前記多値データに付加し、
前記変換手段は、前記コード化手段によって得られたコード化データに二値データであることを示す判定ビットが付加されている場合は、その判定ビットを除いたビット列を得ることによって、前記コード化データに多値データであることを示す判定ビットが付加されている場合は、その判定ビットを除いたビット列を二値化することによって、前記コード化データを前記二値データに変換する
ことを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記所定の長さは、前記多値データのビット長である
ことを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記コード化手段は、前記二値化手段によって得られた二値データの先頭から１が連続する個数を示す第１ビット列の後に、前記二値データにおいて最初に現れる０に後続する第２ビット列を付加することによって、前記二値データをコード化し、
前記変換手段は、前記コード化手段によって得られたコード化データの前記第１ビット列が示す個数だけ１を連続させた後に、０と前記第２ビット列とを付加することによって、前記コード化データを前記二値データに変換する
ことを特徴とする請求項２に記載の符号化装置。
【請求項６】
前記第１ビット列のビット長は、前記二値データの先頭から１が連続する個数の最大値を表現するために最低限必要なビット長である
ことを特徴とする請求項５に記載の符号化装置。
【請求項７】
前記符号化装置はさらに、
データを一時格納するバッファを前記コード化手段と前記変換手段との間に備える
ことを特徴とする請求項２に記載の符号化装置。
【請求項８】
前記符号化装置はさらに、
前記二値化手段によって得られた二値データと、前記コード化手段によって得られたコード化データのうちの一方を選択する第１の選択手段を前記バッファの前段に備え、
前記第１の選択手段によって前記二値データが選択された場合は、前記バッファに一時格納されている二値データを選択し、前記第１の選択手段によって前記コード化データが選択された場合は、前記変換手段によって得られた二値データを選択する第２の選択手段を前記算術符号化手段の前段に備える
ことを特徴とする請求項７に記載の符号化装置。
【請求項９】
前記二値化手段は、二値データを選択させるための選択指示ビットを前記二値データの先頭に付加し、
前記コード化手段は、コード化データを選択させるための選択指示ビットを前記コード化データの先頭に付加し、
前記第１の選択手段及び前記第２の選択手段は、前記選択指示ビットを参照することによって、前記二値データと前記コード化データのうちの一方を選択する
ことを特徴とする請求項８に記載の符号化装置。
【請求項１０】
前記選択指示ビットは、ＤＣＴ係数ごと、動きベクトルごと、マクロブロックごと、スライスごと、又はピクチャごとに付加される
ことを特徴とする請求項９に記載の符号化装置。
【請求項１１】
前記ＤＣＴ係数は、Ｈ．２６４／ＡＶＣにおけるｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１である
ことを特徴とする請求項１に記載の符号化装置。
【請求項１２】
前記二値データは、Ｇｏｌｏｍｂ符号化されたデータである
ことを特徴とする請求項１に記載の符号化装置。
【請求項１３】
動画像に関するデータを復号化する復号化装置であって、
算術符号化されたデータを算術復号化する算術復号化手段と、
前記算術復号化手段によって得られた二値データのビット長の最大値が小さくなるように前記二値データをコード化するコード化手段と、
前記コード化手段によって得られたコード化データを、量子化されたＤＣＴ係数又は動きベクトルに変換するコード化データ変換手段と
を備えることを特徴とする復号化装置。
【請求項１４】
前記コード化データ変換手段は、前記コード化手段によって得られたコード化データを前記二値データに変換する第１の変換手段と、前記第１の変換手段によって得られた二値データを、量子化されたＤＣＴ係数又は動きベクトルに変換する第２の変換手段とを有する
ことを特徴とする請求項１３に記載の復号化装置。
【請求項１５】
前記コード化手段は、前記算術復号化手段によって得られた二値データのビット長が所定の長さ以下であるか否かを判定し、判定した結果を判定ビットとして値を保存しておき、前記二値データのビット長が所定の長さ以下である場合は、二値データであることを示す判定ビットを前記二値データに付加し、前記二値データのビット長が所定の長さを超える場合は、算術符号化されたデータであることを示す判定ビットを前記算術符号化されたデータに付加し、
前記第１の変換手段は、前記コード化手段によって得られたコード化データに二値データであることを示す判定ビットが付加されている場合は、その判定ビットを除いたビット列を得ることによって、前記コード化データに算術符号化されたデータであることを示す判定ビットが付加されている場合は、その判定ビットを除いたビット列を二値データに変換することによって、前記コード化データを前記二値データに変換する
ことを特徴とする請求項１４に記載の復号化装置。
【請求項１６】
前記所定の長さは、前記算術符号化されたデータのビット長である
ことを特徴とする請求項１５に記載の復号化装置。
【請求項１７】
前記コード化手段は、前記算術復号化手段によって得られた二値データの先頭から１が連続する個数を示す第１ビット列の後に、前記二値データにおいて最初に現れる０に後続する第２ビット列を付加することによって、前記二値データをコード化し、
前記第１の変換手段は、前記コード化手段によって得られたコード化データの前記第１ビット列が示す個数だけ１を連続させた後に、０と前記第２ビット列とを付加することによって、前記コード化データを二値化する
ことを特徴とする請求項１４に記載の復号化装置。
【請求項１８】
前記第１ビット列のビット長は、前記二値データの先頭から１が連続する個数の最大値を表現するために最低限必要なビット長である
ことを特徴とする請求項１７に記載の復号化装置。
【請求項１９】
前記復号化装置はさらに、
データを一時格納するバッファを前記コード化手段と前記第１の変換手段との間に備える
ことを特徴とする請求項１４に記載の復号化装置。
【請求項２０】
前記復号化装置はさらに、
前記算術復号化手段によって得られた二値データと、前記コード化手段によって得られたコード化データのうちの一方を選択する第１の選択手段を前記バッファの前段に備え、
前記第１の選択手段によって前記二値データが選択された場合は、前記バッファに一時格納されている二値データを選択し、前記第１の選択手段によって前記コード化データが選択された場合は、前記第１の変換手段によって得られた二値データを選択する第２の選択手段を前記第２の変換手段の前段に備える
ことを特徴とする請求項１９に記載の復号化装置。
【請求項２１】
前記算術復号化手段は、二値データを選択させるための選択指示ビットを前記二値データの先頭に付加し、
前記コード化手段は、コード化データを選択させるための選択指示ビットを前記コード化データの先頭に付加し、
前記第１の選択手段及び前記第２の選択手段は、前記第１の選択指示ビット及び前記第２の選択指示ビットを参照することによって、前記二値データと前記コード化データのうちの一方を選択する
ことを特徴とする請求項２０に記載の復号化装置。
【請求項２２】
前記選択指示ビットは、ＤＣＴ係数ごと、動きベクトルごと、マクロブロックごと、スライスごと、又はピクチャごとに付加される
ことを特徴とする請求項１３に記載の復号化装置。
【請求項２３】
前記ＤＣＴ係数は、Ｈ．２６４／ＡＶＣにおけるｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１である
ことを特徴とする請求項１３に記載の復号化装置。
【請求項２４】
前記二値データは、Ｇｏｌｏｍｂ符号化されたデータである
ことを特徴とする請求項１３に記載の復号化装置。
【請求項２５】
動画像に関するデータを符号化する符号化方法であって、
量子化されたＤＣＴ係数又は動きベクトルを示す多値データを二値化した二値データのビット長の最大値が小さくなるように前記多値データをコード化する多値データコード化ステップと、
前記多値データコード化ステップにおいて得られたコード化データを前記二値データに変換する変換ステップと、
前記変換ステップにおいて得られた二値データを算術符号化する算術符号化ステップと
を含むことを特徴とする符号化方法。
【請求項２６】
動画像に関するデータを復号化する復号化方法であって、
算術符号化されたデータを算術復号化する算術復号化ステップと、
前記算術復号化ステップにおいて得られた二値データのビット長の最大値が小さくなるように前記二値データをコード化するコード化ステップと、
前記コード化ステップにおいて得られたコード化データを、量子化されたＤＣＴ係数又は動きベクトルに変換するコード化データ変換ステップと
を含むことを特徴とする復号化方法。
【請求項２７】
動画像に関するデータを符号化する集積回路であって、
量子化されたＤＣＴ係数又は動きベクトルを示す多値データを二値化した二値データのビット長の最大値が小さくなるように前記多値データをコード化する多値データコード化手段と、
前記多値データコード化手段によって得られたコード化データを前記二値データに変換する変換手段と、
前記変換手段によって得られた二値データを算術符号化する算術符号化手段と
を備えることを特徴とする集積回路。
【請求項２８】
動画像に関するデータを復号化する集積回路であって、
算術符号化されたデータを算術復号化する算術復号化手段と、
前記算術復号化手段によって得られた二値データのビット長の最大値が小さくなるように前記二値データをコード化するコード化手段と、
前記コード化手段によって得られたコード化データを、量子化されたＤＣＴ係数又は動きベクトルに変換するコード化データ変換手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像に関するデータを符号化する符号化装置、及び復号化する復号化装置に関し、特に、ＣＡＢＡＣ符号化装置、及びＣＡＢＡＣ復号化装置に関する。
【背景技術】
【０００２】
デジタル技術の発展と共に、映像を符号化する技術も進化・発展してきている。しかし、映像（特に動画像）は、そのデータ量が非常に大きいので、デジタル映像を符号化したものを放送やDVD等のメディアで転送する場合は、転送量が非常に大きくなってしまう。特に、最近実用化されているハイビジョン放送などでは、従来のSD(Standard Definition)映像と比べて6倍のデータ量が必要となっている。
【０００３】
デジタル映像技術の発展に伴い、増大するデータ量を処理するために、データを圧縮する技術がデジタル映像データに使用されて発展してきた。その発展は、映像データの特性を生かした、映像データに特化した圧縮技術となっている。コンピュータの情報処理能力の向上に伴い、圧縮技術における複雑な演算も可能となり、映像データの圧縮率は大幅に高められてきている。例えば、衛星、地上波デジタルハイビジョン放送で採用されている圧縮技術は、MPEG2と呼ばれる方式である。
【０００４】
MPEG2の次の映像圧縮技術として規格化されたAVC/H.264は、MPEG2の2倍前後の圧縮率を実現する規格である。AVC/H.264では、多くの圧縮化技術を実装し、それらを組み合わせることで高い圧縮率を実現している。そのため、演算量も大幅に増加している。
【０００５】
AVC/H.264で実装されている圧縮化技術の一つにエントロピー符号化（可変長符号化）がある。エントロピー符号化の方式として、CAVLCとＣＡＢＡＣという2つの方式が用意されている。CAVLCは、ＤＣＴ係数を符号化する際、連続する0の長さであるランとレベルとを可変長符号化テーブルを用いてスキャンの方向と反対の方向から符号化を行なう。
【０００６】
ＣＡＢＡＣは、Context-based Adaptive Binary Arithmatic Coding（コンテキスト適応型二値算術符号化方式）の略である。すなわち、時間とともに変化する符号化対象の出現頻度を変化させる方式で、一般に算術符号化と呼ばれる方式である（例えば、特許文献１参照）。ＣＡＢＡＣでは、通常の算術符号化のほかに、圧縮すべき符号ごとにコンテキストを付け、そのコンテキストごとに出現頻度の変更を行なっている。
【０００７】
ＣＡＢＡＣでの符号化は主に2つの処理に分けられる。1つ目の処理は、符号化すべき多値データを二値データに変換する二値化（binarization）と呼ばれる処理である。ここでいう「符号化すべき多値データ」とは、具体的にはマクロブロック情報・ＤＣＴ係数・動きベクトルなどであり、これらは一括してシンタクスと呼ばれる。2つ目の処理は、二値化処理によって得られた二値データに対してコンテキストを算出し、算術符号化を行なう処理である。
【０００８】
二値化処理は、符号化の単位である16×16の画素からなるマクロブロック単位に行なわれることが一般的であり、DCT・量子化後の符号値の大きさによって二値データの量は上下する。それに対して、算術符号化処理は1ビット毎に行なわれるため、演算スピードは通常１ビット/１クロックとなる。
【０００９】
このため、二値データの量がマクロブロックごとに大きく異なる場合、例えば、符号化単位であるスライスの最後に二値データが集中した場合は、算術符号化処理で二値データを処理しきれなくなり、オーバーフローを起こしてしまう。そこで、二値化回路と算術符号化回路との間にｂｉｎバッファと呼ばれるバッファを設け、このｂｉｎバッファに二値データを一旦格納する。これによって、二値データの量がマクロブロックごとに大きく異なる場合でも、算術符号化処理でオーバーフローを起こす問題を避けることが可能となる。
【００１０】
図２０は、ＣＡＢＡＣを用いた従来の符号化回路構成図である。
量子化されたＤＣＴ係数は、ＤＣＴ係数二値化部２によって二値データに変換される。この二値データは、一旦ｂｉｎバッファ３に格納された後、算術符号化部４によって1ビットずつ符号化されて出力される。
【００１１】
図２１は、ＣＡＢＡＣを用いた従来の復号化回路構成図である。
算術符号化されたＤＣＴ係数は、算術復号化部５によって１ビットずつ復号化されて二値データに変換される。この二値データは、一旦ｂｉｎバッファ３に格納された後、ＤＣＴ係数変換部６によって多値化され、量子化されたＤＣＴ係数に変換される。
【００１２】
このような符号化・復号化処理は、ＤＣＴ係数以外のシンタクス（動きベクトルやマクロブロック情報）についても同様に行なわれる。
【特許文献１】特開２００４−１３５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ＣＡＢＡＣでは、二値化方式としてUEGk(Concatenated unary/k-th order Exp-Golomb)符号化を用いている。UEGkは、TU(Trancated Unary)符号と、Exp-Golomb符号とを連接したものである。例えば、ＤＣＴ係数coeff_abs_level_minus1（値：ｘ）をUEGk符号化を用いて二値化する場合、xが１４未満であるときは、x がTU (cMax=14)で二値化される。他方、x が１４以上であるときは、x-14がexp_Golombで二値化されてビット列「11111111111111」の後ろに結合される。
【００１４】
二値データのビット長は、xが14のときは15ビット、xが15のときは１７ビット、xが17のときは19ビットとなる。このように、xが大きくなるにつれて二値データのビット長も大きくなる。そして、xの最大値(xは１７ビットのデータ)を二値化すると、その二値データのビット長は４９ビットとなる。
【００１５】
前述したように、二値データは、一旦ｂｉｎバッファ３に格納されるが、大きい値のＤＣＴ係数が連続した場合は、ビット長の大きい二値データを連続してｂｉｎバッファ３に書き込まなければならない。つまり、大きい値のＤＣＴ係数が連続した場合は、ｂｉｎバッファ３へのデータ転送レートが高くなるので、広いバンド幅を持つｂｉｎバッファを用意する必要がある。
【００１６】
例えば、1フレーム1920×1088画素で構成されたハイビジョン映像を毎秒30フレームで符号化する場合、1マクロブロック(16×16画素)の符号化にかかる時間は、1÷(8160×30)≒4.08μs となる。そして、このマクロブロックで大きい値を持つＤＣＴ係数が連続し、1マクロブロックの二値データが8000ビットとなった場合、データ転送レートは1.96Gbpsとなる。
【００１７】
以上のように、従来の構成によると、大きい値を持つＤＣＴ係数が連続する場合、ｂｉｎバッファ３へのデータ転送レートが非常に高くなるという問題がある。このような問題は、符号化装置だけでなく復号化装置についても同様に生じる。
【００１８】
本発明は、このような問題点に鑑みてなされたものであり、最大データ転送レートを低下させた符号化装置及び復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
前記目的を達成するために、本発明に係る符号化装置は、動画像に関するデータを符号化する符号化装置であって、量子化されたＤＣＴ係数又は動きベクトルを示す多値データをコード化する手段があり、そのコード化手段は、量子化されたＤＣＴ係数又は動きベクトルを示す多値データを二値化した二値データのビット長が、特定の長さよりも大きい場合に、二値データのビット長よりも小さくする。これによって、二値データの最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。
【００２０】
前記符号化装置はさらに、前記コード化手段によって得られたコード化データを元の二値データに変換する変換手段を備えてもよい。これによって、コード化データを元の二値データに変換することができる。
【００２１】
具体的には、前記符号化装置はさらに、量子化されたＤＣＴ係数又は動きベクトルを示す多値データを二値化する二値化手段と、前記変換手段によって得られた二値データを算術符号化する算術符号化手段とを備え、前記コード化手段は、前記二値化手段によって得られた二値データのビット長が所定の長さ以下であるか否かを判定し、判定した結果を判定ビットとして値を保存しておき、前記二値データのビット長が所定の長さ以下である場合は、二値データであることを示す判定ビットを前記二値データに付加し、前記二値データのビット長が所定の長さを超える場合は、多値データであることを示す判定ビットを前記多値データに付加し、前記変換手段は、前記コード化手段によって得られたコード化データに二値データであることを示す判定ビットが付加されている場合は、その判定ビットを除いたビット列を得ることによって、前記コード化データに多値データであることを示す判定ビットが付加されている場合は、その判定ビットを除いたビット列を二値化することによって、前記コード化データを元の二値データに変換する。これによって、二値データの最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。
【００２２】
ここで、前記所定の長さは、前記多値データのビット長であるのが好ましい。前記所定の長さを前記多値データのビット長よりも大きくした場合は、コード化データのビット長が不要に大きくなり、前記所定の長さを前記多値データのビット長よりも小さくした場合も、コード化データのビット長が不要に大きくなるからである。
【００２３】
あるいは、前記符号化装置はさらに、量子化されたＤＣＴ係数又は動きベクトルを示す多値データを二値化する二値化手段と、前記変換手段によって得られた二値データを算術符号化する算術符号化手段とを備え、前記コード化手段は、前記二値化手段によって得られた二値データの先頭から１が連続する個数を示す第１ビット列の後に、前記二値データにおいて最初に現れる０に後続する第２ビット列を付加することによって、前記二値データをコード化し、前記変換手段は、前記コード化手段によって得られたコード化データの前記第１ビット列が示す個数だけ１を連続させた後に、０と前記第２ビット列とを付加することによって、前記コード化データを元の二値データに変換してもよい。この構成によっても、二値データの最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。
【００２４】
ここで、前記第１ビット列のビット長は、前記二値データの先頭から１が連続する個数の最大値を表現するために最低限必要なビット長であるのが好ましい。前記第１ビット列のビット長を前記最低限必要なビット長よりも大きくした場合は、コード化データのビット長が不要に大きくなるからである。
【００２５】
また、前記符号化装置はさらに、データを一時格納するバッファを前記コード化手段と前記変換手段との間に備える。これによって、算術符号化処理でオーバーフローを起こす問題を避けることが可能となる。
【００２６】
また、前記符号化装置はさらに、前記二値化手段によって得られた二値データと、前記コード化手段によって得られたコード化データのうちの一方を選択する第１の選択手段を前記バッファの前段に備え、前記第１の選択手段によって前記二値データが選択された場合は、前記バッファに一時格納されている二値データを選択し、前記第１の選択手段によって前記コード化データが選択された場合は、前記変換手段によって得られた二値データを選択する第２の選択手段を前記算術符号化手段の前段に備えてもよい。これによって、必要な場合のみコード化処理が行なわれるので、コード化処理の負荷を最小限に抑えることが可能となる。
【００２７】
また、前記二値化手段は、二値データを選択させるための選択指示ビットを前記二値データの先頭に付加し、前記コード化手段は、コード化データを選択させるための選択指示ビットを前記コード化データの先頭に付加し、前記第１の選択手段及び前記第２の選択手段は、前記第１の選択指示ビット及び前記第２の選択指示ビットを参照することによって、前記二値データと前記コード化データのうちの一方を選択してもよい。これによって、前記二値データと前記コード化データのうちの一方を簡便に選択することが可能となる。
【００２８】
また、前記選択指示ビットは、ＤＣＴ係数ごと、動きベクトルごと、マクロブロックごと、スライスごと、又はピクチャごとに付加されてもよい。これによって、本発明の適用場面に応じた単位で選択指示ビットを付加することが可能となる。
【００２９】
また、前記ＤＣＴ係数は、具体的には、Ｈ．２６４／ＡＶＣにおけるｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１である。また、前記二値データは、具体的には、Ｇｏｌｏｍｂ符号化されたデータである。
【００３０】
なお、本発明は、このような符号化装置として実現することができるだけでなく、復号化装置としても実現することができる。また、このような符号化装置が備える特徴的な手段をステップとする符号化方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【００３１】
また、構成図（図１等）の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００３２】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【００３３】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行なってもよい。バイオ技術の適応等が可能性としてありえる。
【発明の効果】
【００３４】
以上の説明から明らかなように、本発明に係る符号化装置によれば、二値データの最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。このようにｂｉｎバッファ３への最大データ転送レートが低下すると、ｂｉｎバッファ３の最大バンド幅を小さくすることが可能となる。
【００３５】
同様に、本発明に係る復号化装置によれば、二値データの最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。このようにｂｉｎバッファ３への最大データ転送レートが低下すると、ｂｉｎバッファ３の最大バンド幅を小さくすることが可能となる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００３７】
（実施の形態１）
図１は、実施の形態１におけるＣＡＢＡＣ符号化装置の構成図である。このＣＡＢＡＣ符号化装置は、動画像に関するデータを符号化する装置であって、機能的には、シンタクス二値化部１と、ＤＣＴ係数二値化部１１と、二値係数コード化部１２と、ｂｉｎバッファ３と、コード化係数−二値係数変換部２０と、算術符号化部４とを備えている。
【００３８】
シンタクス二値化部１は、入力されたシンタクスを二値化し、二値化されたシンタクスを出力する二値化回路等である。ＤＣＴ係数二値化部１１は、入力されたＤＣＴ係数を二値化し、二値化されたＤＣＴ係数（以下「二値係数」という）を出力する二値化回路等である。二値係数コード化部１２は、入力された二値係数をコード化し、コード化された二値係数（以下「コード化係数」という）を出力するコード化回路等である。ｂｉｎバッファ３は、コード化係数等のデータを一時格納するRAM等である。コード化係数−二値係数変換部２０は、入力されたコード化係数を元の二値係数に変換して出力する変換回路等である。算術符号化部４は、入力された二値係数を算術符号化して出力する算術符号化回路等である。
【００３９】
図２は、ＤＣＴ係数（coeff_abs_level_minus1）についての二値化処理の説明図である。
【００４０】
既に説明したように、ＣＡＢＡＣでは、二値化方式としてUEGk符号化を用いている。UEGkは、TU符号とExp-Golomb符号とを連接したものであり、パラメータとしてk、signedValFlag、uCoffの３つを持つ。
【００４１】
前半部分（UEGk prefix）ではTU符号化を用いる。パラメータ uCoffは、このTU符号化される部分の最大値を示す。元の符号値（ＤＣＴ係数の値）がuCoff未満である場合は、元の符号値だけ１を並べた後に０が付加され、元の符号値がuCoff以上である場合は、1をuCoff個並べた符号になる。
【００４２】
後半部分(UEG0 suffix）ではExp-Golomb符号化を用いる。ここでは、簡単のためUEGk suffixをPrefix, Separator, Suffix, Signに分けて考える。元の符号値をsynElValとすると、UEGk suffixは、図３に示すような擬似プログラムによって生成される。
【００４３】
ＤＣＴ係数（coeff_abs_level_minus1)においては、UEG0、signedValFlag = 0、uCoff = 14が用いられる。「UEG0」は、前記したパラメータkが0であることを意味する。「signedValFlag = 0」は、最後に極性を示すビットが付加されないことを意味する。「uCoff = 14」は、TUの最大値が１４であることを意味する。
【００４４】
従って、前半部分（UEG0 prefix）は、元の符号値が１４未満である場合は、元の符号値だけ１を並べた後に０が付加され、元の符号値が１４以上である場合は、1を１４個並べた符号になる。また、後半部分(UEG0 suffix）は、元の符号値が１４未満である場合は、UEG0 prefixのみとなりUEG0 suffixは付加されない。なお、Exp-Golomb符号については、前記擬似プログラム（図３参照）に示す通りであるため、ここでは詳しい説明を省略する。
【００４５】
図４は、本実施の形態１におけるコード化処理の説明図である。
既に説明したように、ＤＣＴ係数（coeff_abs_level_minus1）は１７ビットのデータである。従って、ここでは、二値係数のビット長が１７ビット以下である場合と１７ビットを超える場合とでコード化の方式を変えるようにしている。
【００４６】
すなわち、ＤＣＴ係数の値が１６以下である場合、二値係数のビット長は１７ビット以下となる。この場合は、二値係数の先頭に判定ビット「0」を付加したビット列をコード化係数とする。例えば、ＤＣＴ係数の値が１６である場合、二値係数は「11111111111111101」であるので、この二値係数「11111111111111101」の先頭に判定ビット「0」を付加したビット列「011111111111111101」がコード化係数となる。
【００４７】
他方、ＤＣＴ係数の値が１６を超える場合、二値係数のビット長は１７ビットを超える。この場合は、ＤＣＴ係数の先頭に判定ビット「1」を付加したビット列をコード化係数とする。例えば、ＤＣＴ係数の値が１７である場合、このＤＣＴ係数は「00000000000010001」であるので、このＤＣＴ係数「00000000000010001」の先頭に判定ビット「1」を付加した「100000000000010001」がコード化係数となる。
【００４８】
なお、図１では、二値係数コード化部１２に入力されるデータは、ＤＣＴ係数二値化部１１からの二値係数であるので、前記のようにＤＣＴ係数「00000000000010001」をコード化処理において利用するためには、ＤＣＴ係数二値化部１１からの二値係数を多値化することが必要となる。もっとも、二値化される前のＤＣＴ係数をそのままコード化する構成を採用してもよい。この構成については後述する。
【００４９】
図５は、本実施の形態１におけるコード化処理の効果を示す図である。ここでは、ＤＣＴ係数の値が大きくなるに従って、二値係数のビット長とコード化係数のビット長とが変化する様子を示している。二値係数のビット長が変化する様子は、波形Ｌ１として実線で描いており、コード化係数のビット長が変化する様子は、波形Ｌ２として破線で描いている。
【００５０】
この図に示すように、ＤＣＴ係数の値が１６以下である場合は、コード化係数のビット長よりも二値係数のビット長の方が小さくなる。他方、ＤＣＴ係数の値が１６を越える場合は、二値係数のビット長よりもコード化係数のビット長の方が小さくなる。
【００５１】
ＤＣＴ係数の最大値を二値化すると、その二値係数のビット長は４９ビットにもなるが、その場合のコード化係数のビット長は１８ビットで済む。すなわち、コード化係数のビット長は最大でも１８ビットであるので、本実施の形態１におけるコード化処理を行なうと、ｂｉｎバッファ３への最大データ転送レートを低下させることができる。
【００５２】
このように生成されたコード化係数は、ｂｉｎバッファ３に一旦格納された後、コード化係数−二値係数変換部２０に入力される。これによって、コード化係数−二値係数変換部２０は、コード化係数の先頭に付加されている判定ビットの値に応じて以下の処理を行なう。
【００５３】
すなわち、判定ビットの値が「0」である場合は、その判定ビット「0」を除いたビット列を算術符号化部４に出力する。例えば、コード化係数が「011111111111111101」である場合は、その判定ビット「0」を除いたビット列「11111111111111101」を算術符号化部４に出力する。このビット列「11111111111111101」は、ＤＣＴ係数の値が１６である場合の二値係数に等しい。
【００５４】
他方、判定ビットの値が「1」である場合は、その判定ビット「1」を除いたビット列を二値化し、その二値化された係数を算術符号化部４に出力する。例えば、コード化係数が「100000000000010001」である場合は、その判定ビット「1」を除いたビット列「00000000000010001」を二値化し、その二値化された係数「1111111111111111000」を算術符号化部４に出力する。このビット列「1111111111111111000」は、ＤＣＴ係数の値が１７である場合の二値係数に等しい。
【００５５】
これによって、二値係数が算術符号化部４に入力されることになり、算術符号化部４は、入力された二値係数を1ビットずつ符号化して出力する。この算術符号化処理は従来と同様であるため、ここでは説明を省略する。
【００５６】
以上のように、本実施の形態１によれば、二値係数の最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。このようにｂｉｎバッファ３への最大データ転送レートが低下すると、ｂｉｎバッファ３の最大バンド幅を小さくすることが可能となる。
【００５７】
なお、ここでは、二値係数のビット長が１７ビット以下である場合と１７ビットを超える場合とでコード化の方式を変えることとしているが、コード化の方式を変える境界は１７ビットに限定されるものではない。もっとも、ＤＣＴ係数は１７ビットのデータであるため、ここでは１７ビットを境界とするのが好ましい。境界を１７ビットよりも大きくした場合もしくは小さくした場合は、コード化係数のビット長が不要に大きくなる場合が生じるからである。
【００５８】
また、二値係数のビット長が１７ビットを超える場合のコード化方式、すなわち、二値化前のＤＣＴ係数を結合する方式のみを採用するようにしてもかまわない。このようにすると、最大ビット長が１７ビットでコード化されるので、ｂｉｎバッファ３への最大データ転送レートを低下させるという目的は達成することができる。
【００５９】
また、ここでは、ＤＣＴ係数を二値化する構成部とコード化する構成部とを別個に備えた構成を例示したが、本発明はこれに限定されるものではない。すなわち、ＤＣＴ係数の値から判断することによって、ＤＣＴ係数から直接コード化係数を得るようにしても同様の効果を得ることができる。このように、二値化処理とコード化処理の両方を行なう構成部のことを以下「ＤＣＴ係数コード化部１０」と呼ぶ。このＤＣＴ係数コード化部１０は、ＤＣＴ係数を二値化した後のビット列の長さを出力することなく、前記したように、ＤＣＴ係数から直接コード化係数を得る。
【００６０】
また、マクロブロック情報についての処理は本発明の主眼とするところではないので、ここでは詳しい説明を省略しているが、シンタクスに含まれる情報のうち、本発明の適用対象である情報（例えばＤＣＴ係数）と適用対象でない情報（例えばマクロブロック情報）とを区別する手法は特に限定されるものではない。例えば、図１に示すように、本発明の適用対象である情報と適用対象でない情報とによって処理系統を分けてもよいし、あるいは、単一の処理系統において選択的に本発明を適用してもよい。このように選択的に本発明を適用する場合は、本発明の適用対象である情報と適用対象でない情報とを識別するために、装置に、シンタクスを識別する手段を用意しておく。
【００６１】
（実施の形態２）
本実施の形態２では、実施の形態１と異なるコード化方式を採用している。すなわち、本発明に係るコード化方式は、二値データのビット長よりも小さくなるようにＤＣＴ係数又は動きベクトルをコード化する方式であればよい。以下、本実施の形態２におけるコード化方式について、実施の形態１と異なる点を中心に説明する。
【００６２】
図６は、本実施の形態２におけるコード化処理の説明図である。
ＤＣＴ係数（coeff_abs_level_minus1）の二値データは、元の符号値xが１４未満である場合は、xの値だけ1が連続した後に０が付加され、元の符号値xが１４以上である場合は、14+Ceil(log2(x-13))だけ1が連続した符号になる。1は最大で30個連続する。
【００６３】
そこで、本実施の形態２では、このような二値データの性質を利用したコード化方式を採用している。すなわち、二値係数コード化部１２は、二値係数の先頭から１が連続する個数を示す５ビットのビット列（以下「第１ビット列」という）の後に、二値係数において最初に現れる０に後続するビット列（以下「第２ビット列」という）を付加する。
【００６４】
例えば、ＤＣＴ係数の値が１４である場合、二値係数は「111111111111110」である。この二値係数「111111111111110」の先頭から１が連続する個数は１４であるので、１４を２進表記したビット列「01110」が前記第１ビット列となる。他方、この二値係数「111111111111110」においては、０は最後に１つ現れるだけであるので、前記第２ビット列は存在しない。従って、コード化係数としては「01110」が得られることになる。
【００６５】
また、ＤＣＴ係数の値が１５である場合、二値係数は「11111111111111100」である。この二値係数「11111111111111100」の先頭から１が連続する個数は１５であるので、１５を２進表記したビット列「01111」が前記第１ビット列となる。他方、この二値係数「11111111111111100」において最初に現れる０に後続するビット列は「0」であるので、この「0」が前記第２ビット列となる。従って、コード化係数としては、第１ビット列「01111」の後に第２ビット列「0」を付加した「011110」が得られることになる。
【００６６】
図７は、本実施の形態２におけるコード化処理の効果を示す図である。ここでも、図５と同様、二値係数のビット長が変化する様子を波形Ｌ１として実線で描いており、コード化係数のビット長が変化する様子を波形Ｌ２として破線で描いている。
【００６７】
この図に示すように、ＤＣＴ係数の値が４未満である場合は、コード化係数のビット長よりも二値係数のビット長の方が小さくなる。他方、ＤＣＴ係数の値が４を越える場合は、二値係数のビット長よりもコード化係数のビット長の方が小さくなる。なお、ＤＣＴ係数の値が４である場合は、コード化係数のビット長と二値係数のビット長とは一致する。
【００６８】
このように生成されたコード化係数は、ｂｉｎバッファ３に一旦格納された後、コード化係数−二値係数変換部２０に入力される。これによって、コード化係数−二値係数変換部２０は、コード化係数の第１ビット列が示す個数だけ１を連続させた後に０と第２ビット列とを付加する。
【００６９】
例えば、コード化係数が「01110」である場合、その先頭５ビット（第１ビット列）が示す個数だけ１を連続させる。第１ビット列「01110」を１０進表記すると１４であるので、この場合はビット列「11111111111111」が得られる。そして、このビット列「11111111111111」の後に０と第２ビット列とを付加する。ここでは、第２ビット列（コード化係数の６ビット目以降のビット列）は存在しないので、ビット列「11111111111111」の後に「0」だけを付加したビット列「111111111111110」を算術符号化部４に出力する。このビット列「111111111111110」は、ＤＣＴ係数の値が１４である場合の二値係数に等しい。
【００７０】
また、コード化係数が「011110」である場合、その先頭５ビット（第１ビット列）が示す個数だけ１を連続させる。第１ビット列「01111」を１０進表記すると１５であるので、この場合はビット列「111111111111111」が得られる。そして、このビット列「111111111111111」の後に０と第２ビット列とを付加する。ここでは、第２ビット列（コード化係数の６ビット目以降のビット列）は「0」であるので、ビット列「111111111111111」の後に「00」を付加したビット列「11111111111111100」を算術符号化部４に出力する。このビット列「11111111111111100」は、ＤＣＴ係数の値が１５である場合の二値係数に等しい。
【００７１】
以上のように、本実施の形態２によっても、二値係数の最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。このようにｂｉｎバッファ３への最大データ転送レートが低下すると、ｂｉｎバッファ３の最大バンド幅を小さくすることが可能となる。
【００７２】
なお、ここでは、第１ビット列のビット長を５ビットとしているが、本発明はこれに限定されるものではない。すなわち、第１ビット列のビット長は、二値係数において１が連続する個数の最大値を表現するに必要なビット長であればよい。もっとも、コード化係数のビット長を小さくするためには、前記最大値を表現するに必要なビット長のうち、最小のビット長を採用するのが好ましい。
【００７３】
（実施の形態３）
実施の形態１や２では、二値化されたＤＣＴ係数をコード化する場合について説明したが、コード化する対象は、ＤＣＴ係数に限定されるものではない。すなわち、動画像に関するデータである以上、本発明を適用することができる。
【００７４】
以下、二値化された動きベクトルをコード化する手法について、実施の形態１と異なる点を中心に説明する。なお、以下の説明では、二値化された動きベクトルを「二値ベクトル」、コード化された二値ベクトルを「コード化ベクトル」という。
【００７５】
図８は、実施の形態３におけるＣＡＢＡＣ符号化装置の構成図である。このＣＡＢＡＣ符号化装置は、シンタクス二値化部１と、動きベクトル二値化部１１と、二値ベクトルコード化部１２と、ｂｉｎバッファ３と、コード化ベクトル−二値ベクトル変換部２０と、算術符号化部４とを備えている。各部の機能は、コード化する対象がＤＣＴ係数から動きベクトルに変わった点を除き、実施の形態1と同じである。
【００７６】
図９は、動きベクトル（mvd_l0, mvd_l1）についての二値化処理の説明図である。
動きベクトル（mvd_l0, mvd_l1）においては、UEG3、signedValFlag = 1、uCoff = 9が用いられる。「UEG3」は、前記したパラメータkが3であることを意味する。「signedValFlag = 1」は、最後に極性を示すビットが付加されることを意味する。「uCoff = 9」は、TUの最大値が９であることを意味する。
【００７７】
前半部分（UEG3 prefix）ではTU符号化を用いる。従って、元の符号値（動きベクトルの値）の絶対値が8以下である場合は、元の符号値だけ１を並べた後に０が付加され、元の符号値の絶対値が9以上である場合は1を9個並べた符号になる。
【００７８】
後半部分(UEG3 suffix）ではExp-Golomb符号化を用いる。従って、元の符号値の絶対値が8以下である場合はUEG3 prefixのみとなりUEG3 suffixは付加されない。なお、Exp-Golomb符号については、前記擬似プログラム（図３参照）に示す通りであるため、ここでは詳しい説明を省略する。
【００７９】
図１０は、本実施の形態３におけるコード化処理の説明図である。
動きベクトル（mvd_l0, mvd_l1）は1４ビットのデータである。従って、ここでは、二値ベクトルのビット長が１４ビット以下である場合と１４ビットを超える場合とでコード化の方式を変えるようにしている。
【００８０】
すなわち、動きベクトルの絶対値が１６以下である場合、二値ベクトルのビット長は１４ビット以下となる。この場合は、二値ベクトルの先頭に判定ビット「0」を付加したビット列をコード化ベクトルとする。例えば、動きベクトルの値が−１６である場合、二値ベクトルは「11111111101111」であるので、この二値ベクトル「11111111101111」の先頭に判定ビット「0」を付加したビット列「011111111101111」がコード化ベクトルとなる。
【００８１】
他方、動きベクトルの絶対値が１６を超える場合、二値ベクトルのビット長は１４ビットを超える。この場合は、動きベクトルの先頭に判定ビット「1」を付加したビット列をコード化ベクトルとする。例えば、動きベクトルの値が１７である場合、この動きベクトルは「00000000010001」であるので、この動きベクトル「00000000010001」の先頭に判定ビット「1」を付加した「100000000010001」がコード化ベクトルとなる。
【００８２】
図１１は、本実施の形態３におけるコード化処理の効果を示す図である。ここでは、動きベクトルの絶対値が大きくなるに従って、二値ベクトルのビット長とコード化ベクトルのビット長とが変化する様子を示している。二値ベクトルのビット長が変化する様子は、波形Ｌ１として実線で描いており、コード化ベクトルのビット長が変化する様子は、波形Ｌ２として破線で描いている。
【００８３】
この図に示すように、動きベクトルの絶対値が１６以下である場合は、コード化ベクトルのビット長よりも二値ベクトルのビット長の方が小さくなる。他方、動きベクトルの絶対値が１６を越える場合は、二値ベクトルのビット長よりもコード化ベクトルのビット長の方が小さくなる。コード化ベクトルのビット長は最大でも１５ビットであるので、本実施の形態３におけるコード化処理を行なうと、ｂｉｎバッファ３への最大データ転送レートを低下させることができる。
【００８４】
このように生成されたコード化ベクトルは、ｂｉｎバッファ３に一旦格納された後、コード化ベクトル−二値ベクトル変換部２０に入力される。これによって、コード化ベクトル−二値ベクトル変換部２０は、コード化ベクトルの先頭に付加されている判定ビットの値に応じて以下の処理を行なう。
【００８５】
すなわち、判定ビットの値が「0」である場合は、その判定ビット「0」を除いたビット列を算術符号化部４に出力する。例えば、コード化ベクトルが「011111111101111」である場合は、その判定ビット「0」を除いたビット列「11111111101111」を算術符号化部４に出力する。このビット列「11111111101111」は、動きベクトルの値が−１６である場合の二値ベクトルに等しい。
【００８６】
他方、判定ビットの値が「1」である場合は、その判定ビット「1」を除いたビット列を二値化し、その二値化されたベクトルを算術符号化部４に出力する。例えば、コード化ベクトルが「100000000010001」である場合は、その判定ビット「1」を除いたビット列「00000000010001」を二値化し、その二値化されたベクトル「11111111101111」を算術符号化部４に出力する。このビット列「11111111101111」は、動きベクトルの値が１７である場合の二値ベクトルに等しい。
【００８７】
以上のように、本実施の形態３によれば、二値ベクトルの最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。このようにｂｉｎバッファ３への最大データ転送レートが低下すると、ｂｉｎバッファ３の最大バンド幅を小さくすることが可能となる。
【００８８】
なお、ここでは、二値ベクトルのビット長が１４ビット以下である場合と１４ビットを超える場合とでコード化の方式を変えることとしているが、コード化の方式を変える境界は１４ビットに限定されるものではない。もっとも、動きベクトルは１４ビットのデータであるため、１４ビットを境界とするのが好ましい。
【００８９】
また、二値ベクトルのビット長が１４ビットを超える場合のコード化方式、すなわち、二値化前の動きベクトルのみをｂｉｎバッファに格納するようにしてもかまわない。このようにすると、最大ビット長が１４ビットまでコード化されるので、ｂｉｎバッファ３への最大データ転送レートを低下させるという目的は達成することができる。
【００９０】
（実施の形態４）
本実施の形態４では、実施の形態２におけるコード化方式を動きベクトルに適用した場合について説明する。以下、本実施の形態４を実施の形態２と異なる点を中心に説明する。
【００９１】
図１２は、本実施の形態４におけるコード化処理の説明図である。
実施の形態２と同様、二値ベクトルコード化部１２は、二値ベクトルの先頭から１が連続する個数を示す５ビットのビット列（以下「第１ビット列」という）の後に、二値ベクトルにおいて最初に現れる０に後続するビット列（以下「第２ビット列」という）を付加する。
【００９２】
例えば、動きベクトルの値が−１６である場合、二値ベクトルは「11111111101111」である。この二値ベクトル「11111111101111」の先頭から１が連続する個数は９であるので、９を２進表記したビット列「01001」が前記第１ビット列となる。他方、この二値ベクトル「11111111101111」において最初に現れる０に後続するビット列は「1111」であるので、このビット列「1111」が前記第２ビット列となる。従って、コード化ベクトルとしては、第１ビット列「01001」の後に第２ビット列「1111」を付加した「010011111」が得られることになる。
【００９３】
また、動きベクトルの値が１７である場合、二値ベクトルは「1111111111000000」である。この二値ベクトル「1111111111000000」の先頭から１が連続する個数は１０であるので、１０を２進表記したビット列「01010」が前記第１ビット列となる。他方、この二値ベクトル「1111111111000000」において最初に現れる０に後続するビット列は「00000」であるので、この「00000」が前記第２ビット列となる。従って、コード化ベクトルとしては、第１ビット列「01010」の後に第２ビット列「00000」を付加した「0101000000」が得られることになる。
【００９４】
図１３は、本実施の形態４におけるコード化処理の効果を示す図である。ここでも、図７と同様、二値ベクトルのビット長が変化する様子を波形Ｌ１として実線で描いており、コード化ベクトルのビット長が変化する様子を波形Ｌ２として破線で描いている。
【００９５】
この図に示すように、動きベクトルの絶対値が４未満である場合は、コード化ベクトルのビット長よりも二値ベクトルのビット長の方が小さくなる。他方、動きベクトルの絶対値が４を越える場合は、二値ベクトルのビット長よりもコード化ベクトルのビット長の方が小さくなる。なお、動きベクトルの絶対値が４である場合は、コード化ベクトルのビット長と二値ベクトルのビット長とは一致する。
【００９６】
このように生成されたコード化ベクトルは、ｂｉｎバッファ３に一旦格納された後、コード化ベクトル−二値ベクトル変換部２０に入力される。これによって、コード化ベクトル−二値ベクトル変換部２０は、コード化ベクトルの第１ビット列が示す個数だけ１を連続させた後に０と第２ビット列とを付加する。
【００９７】
例えば、コード化ベクトルが「010011111」である場合、その先頭５ビット（第１ビット列）が示す個数だけ１を連続させる。第１ビット列「01001」を１０進表記すると９であるので、この場合はビット列「111111111」が得られる。そして、このビット列「111111111」の後に０と第２ビット列とを付加する。ここでは、第２ビット列（コード化ベクトルの６ビット目以降のビット列）は「1111」であるので、ビット列「111111111」の後に「01111」を付加したビット列「11111111101111」を算術符号化部４に出力する。このビット列「11111111101111」は、動きベクトルの値が−１６である場合の二値ベクトルに等しい。
【００９８】
また、コード化ベクトルが「0101000000」である場合、その先頭５ビット（第１ビット列）が示す個数だけ１を連続させる。第１ビット列「01010」を１０進表記すると１０であるので、この場合はビット列「1111111111」が得られる。そして、このビット列「1111111111」の後に０と第２ビット列とを付加する。ここでは、第２ビット列（コード化ベクトルの６ビット目以降のビット列）は「00000」であるので、ビット列「1111111111」の後に「000000」を付加したビット列「1111111111000000」を算術符号化部４に出力する。このビット列「1111111111000000」は、動きベクトルの値が１７である場合の二値ベクトルに等しい。
【００９９】
以上のように、本実施の形態４によっても、二値ベクトルの最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。このようにｂｉｎバッファ３への最大データ転送レートが低下すると、ｂｉｎバッファ３の最大バンド幅を小さくすることが可能となる。
【０１００】
なお、ここでは、第１ビット列のビット長を５ビットとしているが、本発明はこれに限定されるものではない。すなわち、第１ビット列のビット長は、二値ベクトルにおいて１が連続する個数の最大値を表現するに必要なビット長であればよい。もっとも、コード化ベクトルのビット長を小さくするためには、前記最大値を表現するに必要なビット長のうち、最小のビット長を採用するのが好ましい。
【０１０１】
（実施の形態５）
実施の形態１から４では、二値データをコード化することとしているが、本発明はこれに限定されるものではない。例えば、符号化すべき画像の絵柄が複雑である場合は、二値データのビット長が大きくなるので、その二値データをコード化するようにし、符号化すべき画像の絵柄が複雑でない場合は、二値データのビット長が小さくなるので、その二値データをコード化することなくｂｉｎバッファ３に格納するようにしてもよい。
【０１０２】
図１４は、実施の形態５におけるＣＡＢＡＣ符号化装置の構成図である。このＣＡＢＡＣ符号化装置は、シンタクス二値化部１と、ＤＣＴ係数二値化部１１と、二値係数コード化部１２と、第１の選択部Ｓ１と、ｂｉｎバッファ３と、コード化係数−二値係数変換部２０と、第２の選択部Ｓ２と、算術符号化部４とを備えている。
【０１０３】
第１の選択部Ｓ１は、ＤＣＴ係数二値化部１１によって得られた二値データと、二値係数コード化部１２によって得られたコード化データのうちの一方を選択してｂｉｎバッファ３に出力するセレクタ等である。第２の選択部Ｓ２は、第１の選択部Ｓ１によって二値データが選択された場合は、ｂｉｎバッファ３に一時格納されている係数データをそのまま算術符号化部４に出力し、第１の選択部Ｓ１によってコード化データが選択された場合は、コード化係数−二値係数変換部２０によって得られた二値データを選択して算術符号化部４に出力するセレクタ等である。第１の選択部Ｓ１によって二値データが選択されたのかコード化データが選択されたのかを第２の選択部Ｓ２が認識する手法は特に限定されるものではないが、ここでは、以下に説明する選択指示ビットを二値データとコード化データとに付加する手法を採用している。
【０１０４】
図１５は、選択指示ビットが付加された二値係数とコード化係数とを示す図である。
ＤＣＴ係数二値化部１１は、二値係数の先頭に選択指示ビット「０」を付加し、二値係数コード化部１２は、コード化係数の先頭に選択指示ビット「１」を付加する。これによって、第１の選択部Ｓ１は、二値係数を選択する必要がある場合は、先頭が「０」から始まるビット列を選択し、コード化係数を選択する必要がある場合は、先頭が「１」から始まるビット列を選択する。第２の選択部Ｓ２も同様、二値係数を選択する必要がある場合は、先頭が「０」から始まるビット列を選択し、コード化係数を選択する必要がある場合は、先頭が「１」から始まるビット列を選択する。
【０１０５】
二値係数とコード化係数のいずれを選択する必要があるのかを第１の選択部Ｓ１及び第２の選択部Ｓ２が判定する手法は特に限定されるものではないが、例えば、図示しない制御部からの通知に基づいて判定することができる。例えば、符号化すべき画像の絵柄が複雑である場合はコード化係数を選択するように、符号化すべき画像の絵柄が複雑でない場合は二値係数を選択するように、制御部が第１の選択部Ｓ１及び第２の選択部Ｓ２に通知するようにすればよい。
【０１０６】
以上のように、本実施の形態５によれば、必要な場合のみコード化処理が行なわれるので、コード化処理の負荷を最小限に抑えることが可能となるとともに、ｂｉｎバッファに格納するデータ量を減らすことが可能となる。
【０１０７】
なお、ここでは、ＤＣＴ係数ごとに選択指示ビットが付加される構成を例示したが、本発明はこれに限定されるものではない。すなわち、選択指示ビットは、マクロブロックごと付加されてもよいし、スライスごとに付加されてもよいし、ピクチャごとに付加されてもよい。どの単位で選択指示ビットを付加するかという点については特に限定されるものではないが、細かい単位で選択指示ビットを付加するほど、細かい選択指示が可能となる反面、全体の選択指示ビット数が多くなる。従って、選択指示ビットを付加する単位は、本発明の適用場面に応じて決定するのが好ましい。
【０１０８】
図１６は、第１の選択部Ｓ１と第２の選択部Ｓ２とを備えた別の構成図である。
第１の選択部Ｓ１は、ＤＣＴ係数二値化部１１によって得られた二値データと、ＤＣＴ係数コード化部１０によって得られたコード化データのうちの一方を選択してｂｉｎバッファ３に出力する。前記したように、ＤＣＴ係数コード化部１０は、ＤＣＴ係数の値をみることによって、ＤＣＴ係数から直接コード化係数を得る。
【０１０９】
また、ここでは、ＤＣＴ係数を符号化する場合について説明したが、動きベクトルを符号化する場合も同様であることはいうまでもない。
【０１１０】
（実施の形態６）
実施の形態１から５では、ＤＣＴ係数等を符号化する装置について説明したが、本発明は、ＤＣＴ係数等を復号化する装置にも適用することができる。
【０１１１】
図１７は、実施の形態６におけるＣＡＢＡＣ復号化装置の構成図である。このＣＡＢＡＣ復号化装置は、動画像に関するデータを復号化する装置であって、機能的には、算術復号化部５と、二値係数コード化部３０と、ｂｉｎバッファ３と、コード化係数二値化部４２と、ＤＣＴ係数変換部４１と、シンタクス多値化部７とを備えている。
【０１１２】
算術復号化部５は、算術符号化されたデータを算術復号化することによって二値係数を出力する算術復号化回路等である。二値係数コード化部３０は、二値係数をコード化することによってコード化係数を出力するコード化回路等である。コード化係数二値化部４２は、コード化係数を二値係数に変換して出力するコード化回路等である。ＤＣＴ係数変換部４１は、二値係数を多値化することによって、量子化されたＤＣＴ係数を出力する変換回路等である。シンタクス多値化部７は、二値化されたシンタクスを多値化することによって、量子化されたシンタクスを出力する多値化回路等である。
【０１１３】
本実施の形態６においても、実施の形態１から４で説明したコード化方式を採用している。従って、本実施の形態６におけるＣＡＢＡＣ復号化装置よれば、ＣＡＢＡＣ符号化装置の場合と同様、二値係数の最大ビット長が小さくなるので、最大データ転送レートを低下させることができる。このようにｂｉｎバッファ３への最大データ転送レートが低下すると、ｂｉｎバッファ３の最大バンド幅を小さくすることが可能となる。
【０１１４】
なお、実施の形態５において説明した第１の選択部Ｓ１と第２の選択部Ｓ２とをＣＡＢＡＣ復号化装置に備えることも可能である。図１８及び図１９は、第１の選択部Ｓ１と第２の選択部Ｓ２を備えたＣＡＢＡＣ復号化装置の構成図である。図１８は、図１４に示すＣＡＢＡＣ符号化装置に対応しており、図１９は、図１６に示すＣＡＢＡＣ符号化装置に対応している。各構成部の機能については、既に説明したので省略する。
【０１１５】
また、ここでは、ＤＣＴ係数を復号化する場合について説明したが、動きベクトルを復号化する場合も同様であることはいうまでもない。
【産業上の利用可能性】
【０１１６】
本発明に係る符号化装置及び復号化装置は、最大データ転送レートを低下させることが必要なＣＡＢＡＣ符号化装置及びＣＡＢＡＣ復号化装置等の用途に適用することができる。
【図面の簡単な説明】
【０１１７】
【図１】実施の形態１におけるＣＡＢＡＣ符号化装置の構成図である。
【図２】ＤＣＴ係数についての二値化処理の説明図である。
【図３】UEGk suffixを生成するための擬似プログラムを示す図である。
【図４】実施の形態１におけるコード化処理の説明図である。
【図５】実施の形態１におけるコード化処理の効果を示す図である。
【図６】実施の形態２におけるコード化処理の説明図である。
【図７】実施の形態２におけるコード化処理の効果を示す図である。
【図８】実施の形態３におけるＣＡＢＡＣ符号化装置の構成図である。
【図９】動きベクトルについての二値化処理の説明図である。
【図１０】実施の形態３におけるコード化処理の説明図である。
【図１１】実施の形態３におけるコード化処理の効果を示す図である。
【図１２】実施の形態４におけるコード化処理の説明図である。
【図１３】実施の形態４におけるコード化処理の効果を示す図である。
【図１４】実施の形態５におけるＣＡＢＡＣ符号化装置の構成図である。
【図１５】選択指示ビットが付加された二値係数とコード化係数とを示す図である。
【図１６】実施の形態５におけるＣＡＢＡＣ符号化装置の構成図である。
【図１７】実施の形態６におけるＣＡＢＡＣ復号化装置の構成図である。
【図１８】実施の形態６におけるＣＡＢＡＣ復号化装置の構成図である。
【図１９】実施の形態６におけるＣＡＢＡＣ復号化装置の構成図である。
【図２０】ＣＡＢＡＣを用いた従来の符号化回路構成図である。
【図２１】ＣＡＢＡＣを用いた従来の復号化回路構成図である。
【符号の説明】
【０１１８】
１    シンタクス二値化部
３    ｂｉｎバッファ
４    算術符号化部
５    算術復号化部
７    シンタクス多値化部
１０  ＤＣＴ係数コード化部（動きベクトルコード化部）
１１  ＤＣＴ係数二値化部（動きベクトル二値化部）
１２  二値係数コード化部（二値ベクトルコード化部）
２０  コード化係数−二値係数変換部（コード化ベクトル−二値ベクトル変換部）
３０  二値係数コード化部
４０  コード化係数−ＤＣＴ係数変換部
４１  ＤＣＴ係数変換部
４２  コード化係数二値化部
Ｓ１  第１の選択部
Ｓ２  第２の選択部
【図１】
0004540585.tif 000002
【図２】
0004540585.tif 000003
【図３】
0004540585.tif 000004
【図４】
0004540585.tif 000005
【図５】
0004540585.tif 000006
【図６】
0004540585.tif 000007
【図７】
0004540585.tif 000008
【図８】
0004540585.tif 000009
【図９】
0004540585.tif 000010
【図１０】
0004540585.tif 000011
【図１１】
0004540585.tif 000012
【図１２】
0004540585.tif 000013
【図１３】
0004540585.tif 000014
【図１４】
0004540585.tif 000015
【図１５】
0004540585.tif 000016
【図１６】
0004540585.tif 000017
【図１７】
0004540585.tif 000018
【図１８】
0004540585.tif 000019
【図１９】
0004540585.tif 000020
【図２０】
0004540585.tif 000021
【図２１】
0004540585.tif 000022