(57)【要約】【課題】係数をジグザグ方向の逆順に一回で判読して符号化に必要な係数情報を発生させる動作と、発生した係数情報に応答してビットデータを発生させる動作とを並列に行う内容適応可変長符号化装置及び方法を提供する。【解決手段】映像データが変換された係数を所定サイズのマクロブロックに分割し、マクロブロックを複数のブロックに分割して、分割されたブロックの係数を内容適応可変長符号化する装置であって、情報発生制御信号に応答して現在判読される現在ブロックの係数の符号化に必要な係数情報を発生させる係数情報発生部と、ビット発生制御信号に応答して現在ブロック直前に判読された以前ブロックの係数情報に応答して、以前ブロックの係数を符号化するビットデータ発生部と、情報発生制御信号及びビット発生制御信号を発生させて、係数情報発生部とビットデータ発生部とが同時に動作するように制御する制御部と、を備える内容適応可変長符号化装置。【選択図】      図２
2006197610.tif 000002
【特許請求の範囲】
【請求項１】
映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数を内容適応可変長符号化する装置において、
情報発生制御信号に応答して現在判読される現在ブロックの係数の符号化に必要な係数情報を発生させる係数情報発生部と、
ビット発生制御信号に応答して前記現在ブロック直前に判読された以前ブロックの係数情報に応答して、前記以前ブロックの係数を符号化するビットデータ発生部と、
前記情報発生制御信号及び前記ビット発生制御信号を発生させて、前記係数情報発生部と前記ビットデータ発生部とが同時に動作するように制御する制御部と、を備えることを特徴とする内容適応可変長符号化装置。
【請求項２】
前記現在ブロックが含まれたマクロブロックと、前記現在ブロックが含まれたマクロブロックと上側に隣接したマクロブロックの所定の全体係数を保存する全体係数保存部と、
前記係数情報のうち一部の係数情報を保存する係数情報保存部と、をさらに備え、
前記一部の係数情報は、トレーリング１、レベル、及びランであることを特徴とする請求項１に記載の内容適応可変長符号化装置。
【請求項３】
前記制御部は、
（前記ブロックの数＋１）までカウントするカウンタと、
前記カウンタの出力に応答して前記情報発生制御信号及び前記ビット発生制御信号を発生させる制御信号発生部と、を備えることを特徴とする請求項１に記載の内容適応可変長符号化装置。
【請求項４】
前記制御信号発生部は、
前記カウンタの最初のカウントでは前記情報発生制御信号のみを発生させ、前記カウンタの二番目から前記ブロックの数までのカウントでは、前記情報発生制御信号及び前記ビット発生制御信号をいずれも発生させ、前記カウンタの（前記ブロックの数＋１）番目のカウントでは前記ビット発生制御信号のみを発生させることを特徴とする請求項３に記載の内容適応可変長符号化装置。
【請求項５】
前記係数情報発生部は、
前記現在ブロックの係数をジグザグ方向の逆順に１回のみ判読する係数判読部と、
前記判読された係数及び以前に判読された係数に応答して、前記係数情報を発生させるための臨時情報を発生させる係数判定及び制御部と、
前記臨時情報を保存する臨時保存部と、
前記ブロックの隣接したブロックの全体係数を更新して保存する内部全体係数保存部と、
前記臨時情報に応答して前記係数情報を生成する係数情報生成部と、を備えることを特徴とする請求項１に記載の内容適応可変長符号化装置。
【請求項６】
前記臨時保存部は、
０でない前記係数が判読されたことを表わす係数有効フラグ、前記０でない係数の数を累積して保存する全体係数臨時情報、前記０でない係数の値を保存するレベル臨時情報、初めて絶対値が１である係数が連続的に判読されたことを表わすトレーリング１有効フラグ、初めて判読された絶対値が１である連続的な係数の数を累積して保存するトレーリング１臨時情報、及び前記０でない係数間の連続的な０である係数の数を累積して保存するラン臨時情報を保存することを特徴とする請求項５に記載の内容適応可変長符号化装置。
【請求項７】
前記係数判定及び制御部は、
前記判読された係数に応答して、前記係数有効フラグ及び前記トレーリング１有効フラグをセットまたはリセット状態にし、前記全体係数臨時情報、トレーリング１臨時情報、及びラン臨時情報の値を増加させ、レベル臨時情報を更新することを特徴とする請求項６に記載の内容適応可変長符号化装置。
【請求項８】
前記係数情報生成部は、
前記判読された係数が０である場合、前記ラン臨時情報の値を増加させ、
前記判読された係数が０でない場合、前記レベル臨時情報及び前記ラン臨時情報を前記レベル及び前記ランとして前記係数情報保存部に保存した後、前記判読された係数を前記レベル臨時情報として更新して保存し、前記ラン臨時情報をリセットすることを特徴とする請求項７に記載の内容適応可変長符号化装置。
【請求項９】
前記係数判定及び制御部は、
前記０でない判読された係数の絶対値が１である場合、前記トレーリング１有効フラグに応答して前記トレーリング１臨時情報の値を増加させることを特徴とする請求項８に記載の内容適応可変長符号化装置。
【請求項１０】
前記係数判定及び制御部は、
前記現在ブロック内の係数をいずれも判読した場合、前記臨時情報に応答して前記トレーリング１、レベル、及びランを前記係数情報保存部に保存し、所定の全体係数、及び全体０を前記ビットデータ発生部に伝送することを特徴とする請求項７に記載の内容適応可変長符号化装置。
【請求項１１】
前記係数情報生成部は、
前記トレーリング１臨時情報、前記レベル臨時情報、及び前記ラン臨時情報を前記トレーリング１、レベル、及びランとして前記係数情報保存部に保存することを特徴とする請求項１０に記載の内容適応可変長符号化装置。
【請求項１２】
前記全体０は、
前記現在ブロックの係数の数と前記現在ブロックの全体係数との差であることを特徴とする請求項１０に記載の内容適応可変長符号化装置。
【請求項１３】
前記所定の全体係数は、
前記現在ブロックの全体係数、及び前記現在ブロックの左側と上側ブロックの全体係数であることを特徴とする請求項１０に記載の内容適応可変長符号化装置。
【請求項１４】
前記内部全体係数保存部は、
前記現在ブロックが含まれたマクロブロックの左側ブロックの全体係数を更新して保存する複数の左側バッファと、
前記現在ブロックが含まれたマクロブロックの上側ブロックの全体係数を更新して保存する複数の上側バッファと、を備えることを特徴とする請求項５に記載の内容適応可変長符号化装置。
【請求項１５】
前記係数情報生成部は、
前記現在ブロックの全体係数が発生する度に、前記現在ブロックの全体係数、及び前記現在ブロックに対応する左側バッファ及び上側バッファに保存された全体係数を前記ビットデータ発生部に伝送した後、前記左側バッファ及び上側バッファに保存された全体係数を前記現在ブロックの全体係数に更新して保存することを特徴とする請求項１４に記載の内容適応可変長符号化装置。
【請求項１６】
前記係数情報生成部は、
前記現在ブロックが、前記現在ブロックが含まれたマクロブロックで最初のブロックである場合、前記現在ブロックの全体係数を発生させる前に、前記現在ブロックが含まれたマクロブロック及び上側に隣接したマクロブロックに対する所定の全体係数を前記全体係数保存部で判読して前記内部全体係数保存部に保存し、
前記現在ブロックが、前記現在ブロックが含まれたマクロブロックで最後のブロックである場合、前記現在ブロックの全体係数を発生させた後に、前記内部全体係数保存部に保存された所定の全体係数を前記全体係数保存部に保存することを特徴とする請求項１４に記載の内容適応可変長符号化装置。
【請求項１７】
前記所定の全体係数は、
前記内部全体係数保存部の上側バッファに保存された全体係数であることを特徴とする請求項２に記載の内容適応可変長符号化装置。
【請求項１８】
ビットデータ発生部は、
前記係数情報に応答して選択される所定のテーブルによって、前記係数情報をビットデータに符号化することを特徴とする請求項１に記載の内容適応可変長符号化装置。
【請求項１９】
前記所定のテーブルは、
全体係数を符号化するための全体係数テーブル、レベルを符号化するためのレベルテーブルを備え、
前記全体係数テーブルは、前記以前ブロックの全体係数及び前記以前ブロックの左側と上側ブロックの全体係数に応答して決定され、
前記レベルテーブルは、前記レベルに応答して決定されることを特徴とする請求項１８に記載の内容適応可変長符号化装置。
【請求項２０】
映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数を内容適応可変長符号化する方法において、
現在判読される現在ブロックの係数をジグザグ方向の逆順に１回のみ判読して、前記現在ブロックの係数の符号化に必要な係数情報を発生させるステップと、
所定の符号化テーブルによって前記現在ブロック直前に判読された以前ブロックの係数を符号化するステップと、を含み、
前記係数情報を発生させるステップと前記係数を符号化するステップとは同時に行われることを特徴とする内容適応可変長符号化方法。
【請求項２１】
前記係数情報は、全体係数、トレーリング１、レベル、ラン、及び全体０であることを特徴とする請求項２０に記載の内容適応可変長符号化方法。
【請求項２２】
前記係数情報を発生させるステップは、
前記係数情報をリセットし、前記現在ブロックの係数をジグザグ方向の逆順に１回のみ判読するステップと、
判読された順に前記判読されたデータが０であるかどうかを判断するステップと、
前記判読された係数が０であれば、ランを増加させ、前記判読された係数が０でなければ、前記判読された係数に応答して、前記ランを除外した係数情報を計算するステップと、
前記現在ブロックの係数をいずれも判読していなければ、前記判読されたデータの次に判読されたデータに対して前記０であるかどうかを判断するステップに進み、前記現在ブロックの係数をいずれも判読したならば、前記全体係数、トレーリング１、レベル、ラン、及び全体０を保存するステップと、を含むことを特徴とする請求項２０に記載の内容適応可変長符号化方法。
【請求項２３】
前記ランを除外した係数情報を計算するステップは、
全体係数を増加させた後、前記判読された係数の絶対値が１であるかどうかを判断するステップと、
前記絶対値が１でなければ、トレーリング１有効フラグをリセット状態にした後、係数有効フラグがセット状態であるかどうかを判断し、前記判読された係数の絶対値が１であれば、トレーリング１を演算した後、前記係数有効フラグがセット状態であるかどうかを判断するステップと、
前記係数有効フラグがセット状態でなければ、係数有効フラグをセット状態にした後、前記レベルを前記判読された係数に更新して前記ランをリセットし、前記有効フラグがセット状態であれば、前記レベル及び前記ランを保存した後、前記レベルを前記判読された係数に更新して前記ランをリセットするステップと、を含み、
前記全体係数、トレーリング１、レベル、ラン、及び全体０を保存するステップは、前記係数有効フラグをリセット状態にするステップをさらに含むことを特徴とする請求項２２に記載の内容適応可変長符号化方法。
【請求項２４】
前記トレーリング１を演算するステップは、
前記係数を判読する前に絶対値が１である係数が判読されていなければ、トレーリング１有効フラグをセット状態にしてトレーリング１を増加させるステップと、
前記係数を判読する前に絶対値が１である係数が判読されたならば、前記係数を判読する直前に判読された係数の絶対値が１であるかどうか、前記トレーリング１有効フラグ、及び前記トレーリング１に応答してトレーリング１を増加または維持するステップと、を含み、
前記トレーリング１を増加または維持するステップは、
前記直前に判読された係数の絶対値が１であり、トレーリング１有効フラグがセット状態であり、そして、前記トレーリング１が３より小さければ、前記トレーリング１を増加させるステップと、
前記直前に判読された係数の絶対値が１でなければ、前記トレーリング１有効フラグをリセット状態にして前記トレーリング１を維持するステップと、
前記直前に判読された係数の絶対値が１であり、トレーリング１有効フラグがセット状態ではないか、または前記直前に判読された係数の絶対値が１であり、トレーリング１有効フラグがセット状態であり、そして前記トレーリング１が３より小さくなければ、トレーリング１を維持するステップと、を含むことを特徴とする請求項２３に記載の内容適応可変長符号化方法。
【請求項２５】
前記全体係数を保存するステップは、
前記現在ブロックが、前記現在ブロックが含まれたマクロブロックの最初のブロックであるかどうかを判断するステップと、
前記現在ブロックが最初のブロックでなければ、前記現在ブロックの全体係数を計算し、前記現在ブロックが最初であれば、前記現在ブロックが含まれたマクロブロックの上側マクロブロックに含まれた所定のブロックの全体係数を判読して内部メモリに保存した後、前記現在ブロックの全体係数を計算するステップと、
前記計算された現在ブロックの全体係数を前記内部メモリに更新して保存するステップと、
前記現在ブロックが、前記現在ブロックが含まれたマクロブロックでの最後のブロックでなければ、前記最初のブロックであるかどうかを判断するステップに進み、前記現在ブロックが前記現在ブロックが含まれたマクロブロックでの最後のブロックであれば、前記内部メモリに保存された所定の全体係数を保存するステップと、を含むことを特徴とする請求項２２に記載の内容適応可変長符号化方法。
【請求項２６】
前記係数を符号化するステップは、
前記以前ブロックの全体係数と前記以前ブロックの左側及び上側ブロックの全体係数に応答して選択される所定の全体係数テーブルによって、前記以前ブロックの全体係数を符号化するステップと、
前記以前ブロックのレベルによって選択される所定のレベルテーブルによって前記以前ブロックのレベルを符号化するステップと、
前記以前ブロックの全体係数に応答して選択される所定のテーブルによって前記以前ブロックの全体０を符号化するステップと、
前記以前ブロックのランを符号化するステップと、を含むことを特徴とする請求項２０に記載の内容適応可変長符号化方法。
【請求項２７】
映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して前記分割されたブロックの係数を内容適応可変長符号化する方法を行うプログラムを記録したコンピュータで読み取り可能な記録媒体において、
現在判読される現在ブロックの係数をジグザグ方向の逆順に１回のみ判読して、前記現在ブロックの係数の符号化に必要な係数情報を発生させるステップと、
所定の符号化テーブルによって前記現在ブロックの直前に判読された以前ブロックの係数を符号化するステップと、を備え、
前記係数情報を発生させるステップと前記係数を符号化するステップとは、同時に行われることを特徴とするコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内容適応可変長符号化に係り、画像データが変換された係数データを内容適応可変長符号化する装置及び方法に関する。
【背景技術】
【０００２】
Ｈ．２６４、またはＩＳＯ ＭＰＥＧ−４ Ｐａｒｔ １０などの標準動画圧縮技術で、動画の各画像データはそれぞれの画像間の情報を利用して係数データに変換された後に符号化される。
係数データの符号化は、可変長符号化（Ｖａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｃｏｄｉｎｇ：ＶＬＣ）方法のうち内容適応可変長符号化（Ｃｏｎｔｅｘｔ Ａｄａｐｔｉｖｅ Ｖａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｃｏｄｉｎｇ：ＣＡＶＬＣ）方法によって行われる。
【０００３】
一般的にＣＡＶＬＣ方法などのＶＬＣ方法で、映像データは全体映像単位で処理されず、所定サイズのマクロブロックに分割されて処理される。
マクロブロックは、横方向にＭ画素、縦方向にＮ画素のサイズを持つ画素の集合単位（Ｍ×Ｎ）で表現される。一般的に動画符号化方法で、マクロブロックは１６×１６ピクセルのサイズを持つことができる。
【０００４】
一方、Ｈ．２６４、またはＭＰＥＧ−４ Ｐａｒｔ １０などの標準動画圧縮技術で、ＣＡＶＬＣ方法は、１６×１６サイズのマクロブロック単位で係数を符号化する。
さらに具体的に、ＣＡＶＬＣ方法は、ブロックのＤＣ係数を符号化するかどうかによってＣＡＶＬＣモードを決定し、決定されたモードによってマクロブロックを所定サイズ（例えば、４×４）のブロック単位で分けて係数を内容適応可変符号化する。
【０００５】
図１は、従来技術によるＣＡＶＬＣ方法についてのフローチャートである。
まず、符号化しようとするブロック内の係数をジグザグ方向の順序に判読して全体係数（Ｔｏｔａｌ Ｃｏｅｆｆｉｃｉｅｎｔ：ＴＣ）を求めた後、所定の全体係数テーブルによって全体係数を符号化し、トレーリング１（Ｔｒａｉｌｉｎｇ １：Ｔ１）を求める（Ｓ１０１）。
【０００６】
ここで、全体係数ＴＣは、ブロックの係数のうち０でない係数の数であり、トレーリング１は、０でない係数のうちジグザグ方向の順序で最後に判読される連続的な＋１、−１の係数（すなわち、絶対値が１である係数）の数である。この時、トレーリング１は３を超過できない。すなわち、連続的な＋１、−１である係数が３個以上である場合、トレーリング１は３である。
また、所定の全体係数テーブルは、符号化しようとするブロックの全体係数と、符号化しようとするブロックと隣接した所定のブロック（例えば、左側及び上側のブロック）の全体係数とに応答して選択される。
【０００７】
全体係数を符号化してトレーリング１を求めた後には、トレーリング１に対応する係数の符号を符号化する（Ｓ１０３）。例えば、トレーリング１に対応する係数が＋１である場合に符号（＋）は０に符号化され、トレーリング１に対応する係数が−１である場合に符号（−）は１に符号化される。
【０００８】
トレーリング１の符号（Ｓｉｇｎ）を符号化した後に、符号化しようとするブロックの係数をジグザグ方向の逆順に判読して０でない係数（レベル値：ＬＥＶＥＬ）を所定のレベルテーブルによって符号化する（Ｓ１０５）。
レベルを符号化した後に、全体０（ｔｏｔａｌ ０：Ｔ０）を符号化する（Ｓ１０７）。ここで、全体０は、ジグザグ方向にブロックの係数を判読する時、係数のうち最も最後に０でない係数以前に出る０である係数の総数である。
【０００９】
全体０を符号化した後に、ラン（ＲＵＮ）を符号化する（Ｓ１０９）。ここで、ランは、ジグザグ方向にブロックの係数を判読する時、０でない係数と直前の０でない係数との間の０である係数の数である。したがって、ランは、あらゆるレベルに対して一つずつ発生する。
【００１０】
前述したように、従来のＣＡＶＬＣ方法は、ブロックの全体係数、トレーリング１、レベル、ラン、及び全体０を求め、これを符号化することによってブロックの係数を符号化する。
しかし、従来のＣＡＶＬＣ方法は、ブロックの全体係数、トレーリング１、全体０、レベル、及びランを求めるために、ブロックの係数をジグザグ方向とその逆方向に数回も判読せねばならないという問題点がある。また、従来のＣＡＶＬＣ方法は、ジグザグ方向とその逆方向に判読する度に符号化がなされるので、符号化に長時間がかかる問題点がある。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明が解決しようとする技術的課題は、係数をジグザグ方向の逆順に一回で判読して、符号化に必要な係数情報を発生させる動作と、発生した係数情報に応答してビットデータを発生させる動作とを並列に行うＣＡＶＬＣ装置を提供することにある。
【００１２】
本発明が解決しようとする他の技術的課題は、係数をジグザグ方向の逆順に一回で判読して、符号化に必要な係数情報を発生させる動作と、発生した係数情報に応答してビットデータを発生させる動作とを並列に行うＣＡＶＬＣ方法を提供することにある。
【課題を解決するための手段】
【００１３】
前記技術的課題を解決するための本発明の実施形態による符号化装置は、映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数をＣＡＶＬＣし、係数情報発生部、ビットデータ発生部、制御部を備える。係数情報発生部は、情報発生制御信号に応答して現在判読される現在ブロックの係数の符号化に必要な係数情報を発生させる。ビットデータ発生部は、ビット発生制御信号に応答して前記現在ブロック直前に判読された以前ブロックの係数情報に応答して、前記以前ブロックの係数を符号化する。制御部は、前記情報発生制御信号及び前記ビット発生制御信号を発生させて、前記係数情報発生部と前記ビットデータ発生部とが同時に動作するように制御する。
【００１４】
前記他の技術的課題を解決するための本発明の実施形態による符号化方法は、映像データが変換された係数を所定サイズのマクロブロックに分割し、前記マクロブロックを複数のブロックに分割して、前記分割されたブロックの係数をＣＡＶＬＣする方法において、現在判読される現在ブロックの係数をジグザグ方向の逆順に１回のみ判読して、前記現在ブロックの係数の符号化に必要な係数情報を発生させるステップと、所定の符号化テーブルによって前記現在ブロック直前に判読された以前ブロックの係数を符号化するステップと、を含む。前記係数情報を発生させるステップと前記係数を符号化するステップとは同時に行われる。
【発明の効果】
【００１５】
本発明の実施形態による符号化装置及び方法は、確率情報を利用して求めた映像データの変換係数を一回で判読して、符号化に必要な係数情報を発生させることによって、符号化に必要な係数情報を効率的に発生させる。
また、本発明の実施形態による符号化装置及び方法は、符号化に必要な係数情報を発生させる動作と、係数情報に応答してビットデータを発生させる動作とを並列に行うことによって、符号化に必要な時間を短縮して符号化を速かに行える。
【発明を実施するための最良の形態】
【００１６】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の望ましい実施形態を説明することによって、本発明を詳細に説明する。各図面に付された同一参照符号は同一部材を表わす。
【００１７】
図２は、本発明の実施形態によるＣＡＶＬＣ装置についてのブロック図である。
ＣＡＶＬＣ装置２００は、制御部２１０、係数情報発生部２２０、及びビットデータ発生部２３０を備え、全体係数保存部２４０及び係数情報保存部２５０をさらに備えることができる。
【００１８】
係数情報発生部２２０は、情報発生制御信号ＣＤ＿ＣＴＲＬに応答して動作する。係数情報発生部２２０は、現在判読される現在ブロックの係数ＣＯＥＦをジグザグ方向の逆方向に順に判読して、現在ブロックの係数ＣＯＥＦの符号化に必要な係数情報を発生させる。係数情報は、全体係数ＴＣ、トレーリング１ Ｔ１、ランＲＵＮ、レベルＬＥＶＥＬ、全体０ Ｔ０を備える。
【００１９】
ビットデータ発生部２３０は、ビット発生制御信号ＢＤ＿ＣＴＲＬに応答して動作する。ビットデータ発生部２３０は、現在ブロック直前に判読された以前ブロックの係数情報に応答して以前ブロックの係数を符号化して、符号化されたビット列ＢＩＴ＿ＳＴＲＭを出力する。
【００２０】
一方、係数情報発生部２２０が現在ブロックの係数を判読して現在ブロックの係数情報を発生させる間、ビットデータ発生部２３０は、以前ブロックの係数情報に応答して以前ブロックの係数を符号化する。すなわち、係数情報発生部２２０とビットデータ発生部２３０とは同時に並列的に動作する。
【００２１】
制御部２１０は、所定の制御信号ＣＴＲＬに応答して係数情報発生部２２０を動作させる情報発生制御信号ＣＤ＿ＣＴＲＬと、ビットデータ発生部２３０を動作させるビット発生制御信号ＢＤ＿ＣＴＲＬとを発生させる。以下、図３を参照して制御部２１０の動作について詳細に説明する。
【００２２】
図３は、図２の制御部についてのブロック図である。
制御部２１０は、（ブロックの数＋１）までカウントするカウンタ３１０及び制御信号発生部３３０を備える。カウンタ３１０は、マクロブロックに対する符号化を指示する制御信号ＣＴＲＬに応答してリセットされて、所定の周期でカウントを始める。
【００２３】
ここで、所定の周期は、現在ブロックの係数がいずれも判読されて現在ブロックの係数情報が発生し、以前ブロックの係数情報に応答して以前ブロックの係数が符号化されるのに十分な時間でなければならない。
制御信号発生部３３０は、カウンタ３１０の出力に応答して情報発生制御信号ＣＤ＿ＣＴＲＬ及びビット発生制御信号ＢＤ＿ＣＴＲＬを発生させる。
【００２４】
カウンタ３１０の最初のカウントで、制御信号発生部３３０は、情報発生制御信号ＣＤ＿ＣＴＲＬのみを発生させて、係数情報発生部２２０が最初のブロックに対して係数情報を生成するように制御する。
カウンタ３１０の二番目のカウントで、制御信号発生部３３０は、情報発生制御信号ＣＤ＿ＣＴＲＬ及びビット発生制御信号ＢＤ＿ＣＴＲＬをいずれも発生させる。
【００２５】
すなわち、制御信号発生部３３０は、係数情報発生部２２０が現在ブロック、すなわち、二番目のブロックの係数情報を発生させるように制御すると同時に、ビットデータ発生部２３０が以前ブロック、すなわち、最初のブロックの係数情報に応答して最初のブロックの係数を符号化するように制御する。
【００２６】
カウンタ３１０の（ブロックの数）番目のカウントまで、制御信号発生部３３０は、情報発生制御信号ＣＤ＿ＣＴＲＬとビット発生制御信号ＢＤ＿ＣＴＲＬとをいずれも発生させる。
【００２７】
すなわち、制御信号発生部３３０は、係数情報発生部２２０が現在ブロックの係数情報を発生させるように制御すると同時に、ビットデータ発生部２３０が以前ブロック係数情報に応答して以前ブロックの係数を符号化するように制御する。
【００２８】
カウンタ３１０の（ブロックの数＋１）番目のカウントで、制御信号発生部３３０はビット発生制御信号ＢＤ＿ＣＴＲＬのみを発生させて、ビットデータ発生部２３０が最後のブロックの係数情報に応答して最後のブロックの係数を符号化するように制御する。
【００２９】
また図２を参照すれば、全体係数保存部２４０は、以前マクロブロックで計算された所定の全体係数を保存する。全体係数保存部２４０に保存される全体係数は、以後に関連する部分で詳細に説明される。
係数情報保存部２５０は、係数情報発生部２２０で発生した係数情報を保存する。係数情報保存部２５０に保存される係数情報は、レベル値ＬＥＶＥＬ、ランＲＵＮ、及びトレーリング１ Ｔ１である。
【００３０】
図４は、図２の係数情報発生部についてのブロック図である。以下、図４を参照して、係数情報発生部２２０が係数情報を発生させる動作について詳細に説明する。
係数情報発生部２２０は、係数判読部４１０、係数判定及び制御部４３０、係数情報生成部４５０、臨時保存部４７０、及び内部全体係数保存部４９０を備える。
【００３１】
係数判読部４１０は、係数保存部２５０に保存された現在ブロックの係数ＣＯＥＦをジグザグ方向の逆順に１回のみ判読して、判読された係数を一つずつ係数判定及び制御部４３０に伝送する。
【００３２】
従来のＣＡＶＬＣ方法と違って、本願発明の実施形態では、係数をジグザグ方向の逆方向に１回のみ判読することによって符号化にかかる時間を短縮させることができる。
係数判定及び制御部４３０は、順に判読されて伝送される係数に応答して係数情報を発生させるための臨時情報ＴＭＰ＿ＩＮＦを発生させて臨時保存部４７０に伝送する。
【００３３】
臨時情報ＴＭＰ＿ＩＮＦは、係数有効フラグ、累積された０でない係数の数を表わす全体係数臨時情報、０ではない係数を表わすレベル臨時情報、トレーリング１有効フラグ、累積された絶対値が１である係数の数を表わすトレーリング１臨時情報、及び累積された連続的な０である係数の数を表わすラン臨時情報を含む。
【００３４】
係数有効フラグ４７１は、０でない係数が判読されたことを表わす。すなわち、初めて０でない係数が判読されれば、係数有効フラグ４７１はセット状態になり、ブロック内のあらゆる係数が判読されれば、係数有効フラグ４７１はリセット状態になる。
【００３５】
全体係数臨時情報４７２は、順に判読される係数のうち０ではない係数の数が累積された情報である。したがって、ブロック内のあらゆる係数が判読されれば、全体係数臨時情報４７２は全体係数になる。
レベル臨時情報４７３は、０でない係数の、すなわち、更新して保存されるレベルである。
【００３６】
トレーリング１有効フラグ４７４は、初めて絶対値が１である係数が連続的に判読されたことを表わす。すなわち、絶対値が１である係数が初めて判読されれば、トレーリング１有効フラグ４７４はセット状態になる。以後、絶対値が１である係数が連続的に判読されれば、トレーリング１有効フラグ４７４はセット状態を維持するが、絶対値が１である係数が連続的に判読されなければ、トレーリング１有効フラグ４７４はリセット状態になる。
【００３７】
トレーリング１臨時情報４７５は、初めて判読される連続的に絶対値が１である係数の数が累積された情報である。したがって、ブロック内のあらゆる係数が判読されれば、トレーリング１臨時情報４７５に保存された値がトレーリング１となる。ただし、トレーリング１は３を超えられない。
【００３８】
ラン臨時情報４７６は、０でない係数間の連続的な０である係数の数、すなわち、ランが累積された情報である。一方、ランは、０ではない係数間の連続的な０である係数の数であるため、ランはレベルと共に更新されて保存される。ラン及びレベルが更新されて保存される過程については後述する。
係数情報生成部４５０は、臨時情報ＴＭＰ＿ＩＮＦに応答して係数情報を生成する。
【００３９】
以下、図４を参照して、係数を判読して臨時情報ＴＭＰ＿ＩＮＦを保存し、係数情報を生成する過程について詳細に説明する。
情報発生制御信号ＣＤ＿ＣＴＲＬに応答して、係数情報発生部２２０は、現在ブロックの係数を判読して係数情報を発生させるための動作を始める。まず、係数判読部４１０は、ジグザグ方向の逆方向に現在ブロックの係数を順に判読して係数判定及び制御部４３０に伝送する。
【００４０】
係数判定及び制御部４３０は、伝送された係数が０であるかどうかを判断して、０であれば、ラン臨時情報４７６の値を１増加させて、次に伝送された係数を判定する。
伝送された係数が０でなければ、全体係数臨時情報４７２の値を１増加させた後、再び伝送された係数の絶対値が１であるかどうかを判断する。伝送された係数の絶対値が１であれば、トレーリング１を計算するための過程を行った後、ラン及びレベルを計算するための過程を行う。一方、以下では、トレーリング１を計算するための過程について説明する。
【００４１】
伝送された係数の絶対値が１であれば、以前に絶対値が１の係数が伝送されたかどうかを判断する。以前に絶対値が１である係数が伝送されていなければ、伝送された係数は初めて絶対値が１である係数を意味するので、トレーリング１有効フラグ４７４をセット状態にした後、トレーリング１臨時情報４７５の値を１増加させる。
【００４２】
以前に絶対値が１である係数が伝送されたならば、絶対値が１である係数が連続的であるかどうかを判断しなければならないので、直前に伝送された係数の絶対値が１であるかどうかを判断する。直前に伝送された係数の絶対値が１でなければ、トレーリング１を計算する必要がないので、トレーリング１有効フラグ４７４をリセット状態にしてトレーリング１臨時情報４７５の値を維持させる。
【００４３】
直前に伝送された係数の絶対値が１であれば、絶対値が１である係数が連続的に判読された場合であるため、連続的な判読が初めてであるかどうかを判断しなければならない。したがって、トレーリング１有効フラグ４７４がセット状態であるかどうかを判断して、トレーリング１有効フラグ４７４がセット状態でなければ、トレーリング１臨時情報４７５の値を維持させる。
【００４４】
一方、トレーリング１有効フラグ４７４がセット状態であっても、トレーリング１は３を超過できない。したがって、トレーリング１有効フラグ４７４がセット状態である場合にも、再びトレーリング１臨時情報４７５が３より小さいかどうかを判断して、３より小さければ、トレーリング１臨時情報４７５の値を１増加させ、３より小さくなければ、トレーリング１臨時情報４７５の値を維持させる。
【００４５】
再び図４を参照すれば、伝送された係数の絶対値が１でなければ、トレーリング１有効フラグ４７４をリセット状態にし、以前に０でない係数が判読されたかどうかを判断してラン及びレベルを計算するための過程を行う。
【００４６】
以下、ラン及びレベルを計算する過程について説明する。
以前に０ではない係数が伝送されていなければ、伝送された係数は初めて０でない係数であることが分かる。このような場合、レベル臨時情報４７３は、保存されておらず、ラン臨時情報４７６は意味のない値である。
したがって、レベル臨時情報４７３は伝送された係数になり、ラン臨時情報４７６はリセットされる。また、係数有効フラグ４７１はセット状態になる。
【００４７】
一方、係数有効フラグ４７１がセット状態であれば、以前に０でない係数が伝送されたことを表わし、係数有効フラグ４７１がリセット状態であれば、以前に０でない係数が伝送されていないことを表わす。
【００４８】
以前に０でない係数が伝送されたならば、レベル臨時情報４７３は、以前に伝送された０でない係数であり、ラン臨時情報４７６は、以前に伝送された０ではない係数と伝送された係数との間に判読された０である係数の数が累積された値である。
したがって、係数情報生成部４５０は、レベル臨時情報４７３とラン臨時情報４７６とをそれぞれレベルとランとして係数情報保存部２５０に保存する。
【００４９】
図５は、ラン及びレベルが保存されるフォーマットを示す図である。
図５に示すように、レベルの符号及びレベル、そして、ランは係数情報保存部の０番目アドレスから順番に保存される。一方、全体係数は０ではない係数の数であるため、レベルが保存されるアドレスを利用して全体係数を知ることもできる。
【００５０】
また図４を参照すれば、レベル及びランとが保存された後、係数判定及び制御部４３０は、伝送された係数をレベルとしてレベル臨時情報４７３を更新し、ラン臨時情報４７６をリセットする。
【００５１】
伝送された係数についての判定が終われば、ブロックの係数がいずれも伝送されたかどうかを判断して、ブロックの係数がいずれも伝送されていなければ、次に伝送された係数について判定を反復する。
ブロックの係数がいずれも伝送されたならば、係数情報生成部４５０は、臨時保存部４７０に保存された臨時情報ＴＭＰ＿ＩＮＦに応答して係数情報を生成する。
【００５２】
具体的に、係数情報生成部４５０は、レベル臨時情報４７３、ラン臨時情報４７６、及びトレーリング１臨時情報４７５をレベル、ラン、及びトレーリング１として係数情報保存部２５０に保存する。
また、係数情報生成部４５０は、全体係数臨時情報４７２を全体係数として内部全体係数保存部４９０に保存させた後、内部全体係数保存部４９０に保存された所定の他の全体係数と共にビット情報生成部２３０に伝送する。そして、係数情報生成部４５０は、ブロックの係数の数から全体係数を引いた値を全体０としてビット情報生成部２３０に伝送する。
【００５３】
以下では、係数情報生成部４５０が全体係数を内部全体係数保存部４９０に保存してビット情報生成部２３０に伝送する過程について説明する。
図６は、全体係数を発生させる時に利用される内部全体係数保存部４９０を説明するための図であって、一つのマクロブロックを構成するブロックを示す。 
【００５４】
図６に示すように、本発明の実施形態で一つのマクロブロックは、映像データのルミナンスが変換された１６個のブロック（ブロック１ないしブロック１６）と、クロミナンスが変換された２対の４個のブロック（ブロック１９ないしブロック２２、及びブロック２３ないしブロック２６）を備える。
【００５５】
一方、ブロックのＤＣを別途に符号化するモードで、マクロブロックは、１６個のルミナンスブロックのＤＣで構成されるブロック（ブロック０）と、クロミナンスブロックのＤＣで構成されるブロック（ブロック１７、及びブロック１８）とをさらに備えることができる。
【００５６】
ビットデータ発生部が以前ブロックの全体係数を符号化する時、以前ブロックの全体係数だけでなく以前ブロックの隣接したブロック（左側及び上側ブロック）の全体係数が必要である。
したがって、ブロックの係数がいずれも伝送された場合、係数情報生成部４５０は、現在ブロックの全体係数だけでなく隣接したブロックの全体係数を共にビットデータ発生部に伝送する。
【００５７】
例えば、図６でブロック７が現在ブロックである場合、係数情報生成部４５０は、ブロック７の全体係数だけでなくブロック４及びブロック５の全体係数を共にビットデータ発生部に伝送しなければならない。
したがって、係数情報生成部４５０は、それぞれのブロックの全体係数を発生させると同時に発生した全体係数を所定の順序で内部全体係数保存部４９０に保存して、現在ブロックの全体係数をビットデータ発生部に伝送する時、現在ブロックに隣接したブロックの全体係数を共に伝送させる。
【００５８】
図６を参照すれば、それぞれのブロックの全体係数が決定される度に左側バッファＹＬ０ないしＹＬ３、ＣｂＬ０、ＣｂＬ１、ＣｒＬ０、及びＣｒＬ１と上側バッファＹＵ０ないしＹＵ３、ＣｂＵ０、ＣｂＵ１、ＣｒＵ０、及びＣｒＵ１とに更新して保存することによって、現在ブロックに隣接したブロックの全体係数を伝送できるということが分かる。すなわち、内部全体係数保存部４９０は、それぞれのブロックの全体係数を更新して保存する左側バッファ及び上側バッファを備える。
【００５９】
具体的に例えば、ブロック５の全体係数が決定された場合、ブロック５の全体係数を左側バッファＹＬ０及び上側バッファＹＵ２に更新して保存する。同様に、ブロック６の全体係数が決定された場合、ブロック６の全体係数を左側バッファＹＬ０及び上側バッファＹＵ３に更新して保存する。
【００６０】
したがって、ブロック６まで全体係数が決定された場合に、左側バッファＹＬ０と左側バッファＹＬ１とにはそれぞれブロック６の全体係数とブロック４の全体係数とが保存される。また、上側バッファＹＵ０、上側バッファＹＵ１、上側バッファＹＵ２、上側バッファＹＵ３にはそれぞれブロック３、ブロック４、ブロック５、及びブロック６の全体係数が保存される。
【００６１】
したがって、現在ブロックの全体係数が決定されれば、係数情報生成部４５０は、現在ブロックの全体係数と共に現在ブロックの左側及び上側バッファに保存された値を内部全体係数保存部４９０から判読してビットデータ生成部に伝送する。その後、係数情報生成部４５０は、現在ブロックの全体係数を現在ブロックの左側及び上側バッファに更新して保存する。
【００６２】
例えば、ブロック１３の全体係数が決定されれば、係数情報生成部４５０は、ブロック１３の全体係数と共に左側バッファＹＬ２及び上側バッファＹＵ２に保存された値（すなわち、ブロック１０の全体係数及びブロック７の全体係数）をビットデータ発生部に伝送する。その後、係数情報生成部４５０は、ブロック１３の全体係数を左側バッファＹＬ２及び上側バッファＹＵ２に更新して保存する。
【００６３】
一方、マクロブロック内のあらゆるブロックに対する符号化が完了した場合には、次の右側マクロブロックに対する符号化が行われる。この時、左側バッファＹＬ０ないしＹＬ３、ＣｂＬ０、ＣｂＬ１、ＣｒＬ０、ＣｒＬ１に保存された値は次のマクロブロックでも使用できるが、上側バッファＹＵ０ないしＹＵ３、ＣｂＵ０、ＣｂＵ１、ＣｒＵ０、ＣｒＵ１に保存された値は使用できない。
【００６４】
したがって、次のマクロブロックの符号化のための上側バッファの値は別途に保存されなければならない。本発明の実施形態で、次のマクロブロックの符号化のための上側バッファの値は図２の全体係数保存部に保存される。
【００６５】
すなわち、マクロブロック内のあらゆるブロックに対する符号化が完了した後、係数情報生成部４５０は、上側バッファに保存された値を全体係数保存部に保存して、下方のマクロブロックの符号化時に利用可能にする。この時、上側バッファに保存された値は、ブロック１１、１２、１５、１６、２１、２２、２５、及び２６の全体係数である。
【００６６】
また、マクロブロック内のブロックについての符号化を始める時、係数情報生成部４５０は、上側マクロブロックのブロック１１、１２、１５、１６、２１、２２、２５、及び２６の全体係数を全体係数保存部から判読して上側ブロックに保存し、ブロックの係数の符号化化に利用可能にする。
【００６７】
ビットデータ発生部は、係数情報に応答して選択される所定のテーブルによってブロックの係数をビットデータに符号化する。
ビットデータ発生部は、所定の全体係数、すなわち、以前ブロックの全体係数及び以前ブロックの左側と上側とのブロックの全体係数に応答して、以前ブロックの全体係数を符号化する全体係数テーブルを選択し、全体係数を符号化する。
【００６８】
また、ビットデータ発生部は、係数情報保存部に保存されたレベルに応答してレベルを符号化するレベルテーブルを選択し、レベルを符号化する。この時、ビットデータ発生部は、絶対値が１であるレベルに対しては符号化しない。
【００６９】
また、ビットデータ発生部は、以前ブロックの全体係数に応答して全体０を符号化するテーブルを選択し、全体０を符号化する。また、ビットデータ発生部は、係数情報保存部に保存されたランを符号化する。
最後に、ビットデータ発生部は、符号化された値をビット列として出力する。
【００７０】
次いで、本発明の実施形態によるＣＡＶＬＣ方法について説明する。
本発明の実施形態によるＣＡＶＬＣ方法は、現在ブロックの係数情報を発生させる動作と以前ブロックの係数を符号化する動作とが同時に行われる。
すなわち、現在ブロックの係数をジグザグ方向の逆順に１回のみ判読して現在ブロックの係数の符号化に必要な係数情報を発生させると同時に、以前ブロックの係数情報に応答して所定の符号化テーブルを選択し、選択された所定の符号化テーブルによって以前ブロックの係数を符号化する。
ここで、係数情報は全体係数、トレーリング１、レベル、ラン、及び全体０である。
【００７１】
以下では、図７ないし図１０を参照して本発明の実施形態によるＣＡＶＬＣ方法について詳細に説明する。
図７は、本発明の実施形態によるＣＡＶＬＣ方法で一つのブロックの係数情報を発生させる方法についてのフローチャートである。
まず、あらゆる係数情報をリセット状態にした後、現在ブロックの係数の判読を始める（Ｓ７０１）。現在ブロックの係数は、ジグザグ方向の逆方向に順に判読され、判読された順に係数情報発生過程に利用される。一方、本発明の実施形態で現在ブロックの係数は一回のみ判読される。
【００７２】
次いで、ランまたは全体係数を計算するために、判読された係数が０であるかどうかを判断する（Ｓ７０３）。もし判読された係数が０であれば、ランを１だけ増加させ（Ｓ７０５）、前記判読された係数が０でなければ、全体係数を１だけ増加させた後（Ｓ７０７）、判読された係数の絶対値が１であるかどうかを判断する（Ｓ７０９）。
【００７３】
判読された係数の絶対値が１であるかどうかを判断する過程は、トレーリング１を計算するための過程である。もし、判読された係数の絶対値が１でなければ、トレーリング１有効フラグ４７４をリセット状態にする（Ｓ７１１）。この時、トレーリング１有効フラグ４７４は、セット状態であってもよく、リセット状態であってもよい。したがって、トレーリング１有効フラグ４７４がセット状態であれば、リセット状態に転換させ、トレーリング１有効フラグ４７４がリセット状態であれば、リセット状態を維持する。
【００７４】
一方、判読された係数の絶対値が１であれば、トレーリング１を演算する（Ｓ７１３）。トレーリング１を演算する方法については、図８を参照して以後に説明する。
トレーリング１を演算するか、またはトレーリング１有効フラグ４７４をリセット状態にした後、係数有効フラグ４７１がセット状態であるかどうかを判断する（Ｓ７１５）。セット状態の係数有効フラグ４７１は、以前に０でない係数が判読されたことを表わし、リセット状態の係数有効フラグ４７１は、以前に０でない係数が判読されたことを意味する。
【００７５】
ブロックの係数情報を発生させる過程が始まる時に係数情報はリセットされるので、係数が判読される前に０でない係数が判読されたならば、係数有効フラグ４７１はセット状態である。しかし、係数が判読される前に０でない係数が判読されていなければ、係数有効フラグ４７１はリセット状態である。
【００７６】
したがって、係数有効フラグ４７１がセット状態ではなければ、係数有効フラグ４７１をセット状態にした後（Ｓ７１７）、レベルを判読された係数に更新して保存し、ランをリセット状態にする（Ｓ７２１）。
しかし、係数有効フラグ４７１が、セット状態であれば、レベル及びランを保存した後（Ｓ７１９）、レベルを判読された係数に更新し、保存してランをリセット状態にする（Ｓ７２１）。
【００７７】
次いで、現在ブロックの係数がいずれも判読されたかどうかを判断する（Ｓ７２３）。もし、現在ブロックの係数がいずれも判読されていなければ、現在ブロックの次の係数を判読した後（Ｓ７２５）、Ｓ７０３ないしＳ７２３過程を反復する。
一方、もし、現在ブロックの係数がいずれも判読されたならば、全体係数、トレーリング１、レベル、及びランを保存し、現在ブロックの係数の数と全体係数との差を求めて全体０を計算し、係数有効フラグ４７１をリセット状態にする（Ｓ７２７）。
【００７８】
図８は、本発明の実施形態によるＣＡＶＬＣ方法でトレーリング１を演算する方法についてのフローチャートである。
判読された係数の絶対値が１である場合、係数を判読する前に絶対値が１である係数が判読されたかどうかを判断する（Ｓ８０１）。もし、以前に絶対値が１である係数が判読されていなければ、判読された係数は初めて絶対値が１である係数であるため、トレーリング１有効フラグ４７４をセット状態にし（Ｓ８０３）、トレーリング１を１増加させる（Ｓ８１３）。
【００７９】
一方、もし、以前に絶対値が１である係数が判読されたならば、トレーリング１を増加させるかどうかを判断するために、係数を判読する直前に判読された係数の絶対値が１であるかどうかを判断する（Ｓ８０５）。
もし、直前に判読された係数の絶対値が１でなければ、トレーリング１でないので、トレーリング有効フラグをリセット状態にし（Ｓ８０７）、トレーリング１を維持する（Ｓ８１５）。
【００８０】
もし、直前に判読された係数の絶対値が１であれば、初めて絶対値が１である連続的な係数であるかどうかを判断するために、トレーリング１有効フラグ４７４がセット状態であるかどうかを判断する（Ｓ８０９）。もし、トレーリング１有効フラグ４７４がセット状態ではなければ、初めて絶対値が１である連続的な係数ではないので、トレーリング１を維持する（Ｓ８１５）。
【００８１】
しかし、もし、トレーリング１有効フラグ４７４がセット状態であれば、初めて絶対値が１である連続的な係数であるのでトレーリング１を増加させることができる。しかし、トレーリング１は３を超過できないので、現在トレーリング１が３より小さいかどうかを判断する（Ｓ８１１）。
【００８２】
最後に、現在トレーリング１が３より小さいならば、トレーリング１を１増加させ（Ｓ８１３）、現在トレーリング１が３より小さくなければ、現在トレーリング１は３であるため、現在トレーリング１を維持する。
一方、現在ブロックの全体係数を符号化するためには、現在ブロックの全体係数だけでなく現在ブロックの隣接したブロックの全体係数、すなわち、現在ブロックの左側及び上側ブロックの全体係数も必要である。
【００８３】
また図６に示すように、符号化しようとするマクロブロックの上側ブロック（ブロック１、２、５、６、１９、２０、２３、２４）の上側ブロックは、現在ブロックが含まれたマクロブロックの上側マクロブロックの下方ブロックである。
したがって、現在ブロックの全体係数を所定の内部メモリに更新して保存する必要があって、現在ブロックが含まれたマクロブロックの上側マクロブロックの下方ブロックの全体係数を別途に保存する必要がある。
【００８４】
本発明の実施形態で、内部メモリは内部全体係数保存部４９０であり、上側マクロブロックの下方ブロックの全体係数は全体係数保存部に保存されるが、本発明がこれに制限されるものではない。
【００８５】
一方、内部メモリは、マクロブロックの左側及び上側ブロックの全体係数それぞれに対する左側バッファ及び上側バッファを備える。それぞれのブロックの全体係数は、対応する左側バッファ及び上側バッファに更新されて保存される。
【００８６】
図９は、本発明の実施形態によるＣＡＶＬＣ方法で全体係数を保存する方法についてのフローチャートである。
マクロブロックに含まれたブロックの係数情報を発生させる時、まず現在ブロックが最初のブロックであるかどうかを判断する（Ｓ９０１）。もし、最初のブロックであれば、現在ブロックが含まれたマクロブロックの上側マクロブロックの下方ブロックの全体係数を判読して内部メモリの上側バッファに保存した後（Ｓ９０３）、現在ブロック、すなわち、最初のブロックの全体係数を計算する（Ｓ９０５）。一方、最初のブロックでなければ、現在ブロックの全体係数を計算する（Ｓ９０５）。
【００８７】
現在ブロックの全体係数が計算された後には、現在ブロックの全体係数を内部メモリ、すなわち、現在ブロックに対応する左側及び上側バッファに更新して保存し（Ｓ９０７）、全体係数が計算されたブロックがマクロブロックの最後のブロックであるかどうかを判断する（Ｓ９０９）。
【００８８】
全体係数が計算されたブロックがマクロブロックの最後のブロックでなければ、Ｓ９０１ないしＳ９０７段階を反復する。一方、全体係数が計算されたブロックがマクロブロックの最後のブロックであれば、内部メモリに保存された全体係数のうち所定の全体係数、すなわち、上側バッファに保存された全体係数を全体係数保存部に保存する（Ｓ９１１）。
【００８９】
図１０は、本発明の実施形態によるＣＡＶＬＣ方法でビットデータを発生させる方法についてのフローチャートである。
以前ブロックの係数の符号化は、係数情報に応答して決定される所定のテーブルによって係数情報を順に符号化することによって行われる。
まず、以前ブロックの全体係数、及び以前ブロックに隣接したブロック（以前ブロックの左側及び上側ブロック）の全体係数に応答して全体係数テーブルを選択し、選択された全体係数テーブルによって以前ブロックの全体係数を符号化する（Ｓ１００１）。
【００９０】
全体係数を符号化した後には、以前ブロックのレベルに応答してレベルテーブルを選択しつつ、選択されたレベルテーブルによって以前ブロックのレベルを符号化する（Ｓ１００３）。この時、レベルのうち絶対値が１である係数に対するレベルは符号化されない。
レベルを符号化した後には、以前ブロックの全体係数に応答して選択される所定のテーブルによって以前ブロックの全体０を符号化し、最後にランを符号化する（Ｓ１００５）。
【００９１】
当業者は、本発明が方法、データプロセシングシステム、及び／またはコンピュータプログラム製品で実現できるということが分かる。したがって、本発明は、すべてハードウェアで実現してもよく、すべてソフトウェアで実現してもよく、本明細書で、回路またはモジュールなどで一般的に参照されたあらゆるハードウェアとソフトウェアとの組み合わせで実現してもよい。また、本発明は、媒体内に実現されたコンピュータで使用可能なコードを持つコンピュータで読み取り可能な記録媒体上にコンピュータプログラム製品の形態で実現してもよい。コンピュータで読み取り可能な記録媒体は、ハードディスク、ＣＤ−ＲＯＭ、光学保存装置、インターネットまたはイントラネットを支援するような伝送媒体、または磁気保存装置などが使用できる。
【００９２】
以上、本発明は、発明の実施形態によってフローチャート、及び／またはブロック図、システム、そしてコンピュータプログラムを参照して説明された。当業者は、フローチャート及び／またはブロック図の各ブロック、そして、ブロックの組み合わせがコンピュータプログラム命令により実現できることが分かる。コンピュータのプロセッサーまたは他のプログラム可能データプロセシング装置を通じて行われる命令は、フローチャート及び／またはブロック図またはブロックで特定された機能／動作を実現する手段を生成する方式であって、このようなコンピュータプログラム命令は、一般的な目的のコンピュータ、特定目的のコンピュータ、または他のプログラム可能なデータプロセシング装置に提供されてマシンを生産できる。
【００９３】
また、コンピュータプログラム命令はコンピュータで読み取り可能な記録媒体に保存でき、コンピュータで読み取り可能な記録媒体に保存された命令がフローチャート及び／またはブロック図またはブロックで特定された機能／動作を実現する命令手段を含む製造装置を生産する方式であって、コンピュータまたは他のプログラム可能データプロセシング装置が特定方式で機能するように命令できる。
【００９４】
また、コンピュータプログラム命令は、コンピュータまたは他のプログラム可能データプロセシング装置上にローディングされて、一連の機能ステップをコンピュータまたは他のプログラム可能装置で行わせて、コンピュータまたは他のプログラム可能装置で行われる命令がフローチャート及び／またはブロック図またはブロックで特定される機能／動作を実現するステップを提供する方式であって、コンピュータで実現されたプロセスを生産できる。
【００９５】
本発明の動作を行うコンピュータプログラムコードは、ＪａＶａ、Ｓｍａｌｌｔａｌｋ、またはＣ＋＋のような客体指向プログラミング言語で記述できる。しかし、本発明の動作を行うコンピュータプログラムコードは、“Ｃ”プログラミング言語のような通常的なプログラミング言語で記述されてもよい。プログラムコードは、すべてユーザのコンピュータで行われてもよく、部分的にユーザのコンピュータで行われてもよく、独立的なソフトウェアパッケージとして行われてもよく、部分的にはユーザのコンピュータで、そして部分的には遠隔地コンピュータで行われてもよく、そしてすべて遠隔地コンピュータで行われてもよい。すべて遠隔地コンピュータで行われる場合、遠隔地コンピュータは地域ネットワーク（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ：ＬＡＮ）または広域ネットワーク（Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ：ＷＡＮ）を通じてユーザコンピュータと連結され、（例えば、インターネットサービス提供者を利用したインターネットを通じて）外部コンピュータと連結されることもある。
【００９６】
以上のように図面及び明細書で最適の実施形態が開示された。ここで特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならば、これより多様な変形及び均等な他の実施形態が可能であるという点を理解できる。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想により定められなければならない。
【産業上の利用可能性】
【００９７】
本発明は、内容適応可変長符号化装置の関連技術分野に好適に用いられる。
【図面の簡単な説明】
【００９８】
【図１】従来技術によるＣＡＶＬＣ方法についてのフローチャートである。
【図２】本発明の実施形態によるＣＡＶＬＣ装置についてのブロック図である。
【図３】図２の制御部についてのブロック図である。
【図４】図２の係数情報発生部についてのブロック図である。
【図５】ラン及びレベルが保存されるフォーマットを示す図である。
【図６】全体係数を発生させる時に利用される内部全体係数保存部を説明するための図である。
【図７】本発明の実施形態によるＣＡＶＬＣ方法で係数情報を発生させる方法についてのフローチャートである。
【図８】本発明の実施形態によるＣＡＶＬＣ方法でトレーリング１を演算する方法についてのフローチャートである。
【図９】本発明の実施形態によるＣＡＶＬＣ方法で全体係数を発生させる方法についてのフローチャートである。
【図１０】本発明の実施形態によるＣＡＶＬＣ方法でビットデータを発生させる方法についてのフローチャートである。
【符号の説明】
【００９９】
２００    ＣＡＶＬＣ装置
２１０    制御部
２２０    係数情報発生部
２３０    ビットデータ発生部
２４０    全体係数保存部
２５０    係数情報保存部
ＣＤ＿ＣＴＲＬ    情報発生制御信号
ＣＯＥＦ    現在ブロックの係数
ＴＣ    全体係数
Ｔ１    トレーリング１
ＲＵＮ    ラン
ＬＥＶＥＬ    レベル
Ｔ０    全体０
ＢＤ＿ＣＴＲＬ    ビット発生制御信号
ＢＩＴ＿ＳＴＲＭ    符号化されたビット列
ＣＴＲＬ    制御信号
【図１】
2006197610.tif 000003
【図２】
2006197610.tif 000004
【図３】
2006197610.tif 000005
【図４】
2006197610.tif 000006
【図５】
2006197610.tif 000007
【図６】
2006197610.tif 000008
【図７】
2006197610.tif 000009
【図８】
2006197610.tif 000010
【図９】
2006197610.tif 000011
【図１０】
2006197610.tif 000012