(57)【要約】      （修正有）【課題】パイプラン動作よる高速な可変長符号化装置を提供する。【解決手段】画像データをブロック単位に記憶する少なくとも二つの以上のブロック記憶手段から構成されるブロック記憶手段群と、ブロック記憶手段から変換係数を読み出し、少なくとも一つ以上のシンタックス要素を生成するシンタックス要素生成手段群と、シンタックス要素ごとに独立に可変長符号語を出力する可変長符号化手段群と、可変長符号化手段群から供給される可変長符号語を、それぞれ独立に結合することにより符号語ストリームとして記憶する、少なくとも二つ以上の可変長符号記憶手段から構成される可変長符号記憶手段群と、可変長符号記憶手段群から供給される、それぞれの符号語ストリームから一つの符号化ストリームを生成する可変長符号結合手段と、を備える。【選択図】 図６
2006157678.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位で画像データを入力し、画像データから複数のシンタックス要素を生成し、かつ可変長符号化して符号化ストリームを出力する可変長符号化装置であって、
前記画像データをブロック単位に記憶する少なくとも二つの以上のブロック記憶手段から構成されるブロック記憶手段群と、
前記ブロック記憶手段から画像データを読み出し、少なくとも一つ以上のシンタックス要素を生成する、シンタックス要素生成手段群と、
前記シンタックス要素生成手段群から入力されるシンタックス要素を、シンタックス要素ごとに独立に可変長符号化し、可変長符号語を出力する可変長符号化手段群と、
前記可変長符号化手段群から供給される前記可変長符号語を、それぞれ独立に結合することにより符号語ストリームとして記憶する、少なくとも二つ以上の可変長符号記憶手段から構成される可変長符号記憶手段群と、
前記可変長符号記憶手段群から供給される、それぞれの符号語ストリームから一つの符号化ストリームを生成する可変長符号結合手段と、
を備えることを特徴とする可変長符号化装置。
【請求項２】
前記ブロック記憶手段群及び前記可変長符号記憶手段群は、ブロック単位で前記画像データの書き込み及び読み出し動作を並行に行うことを特徴とする請求項１に記載の可変長符号化装置。
【請求項３】
前記ブロック記憶手段群及び前記可変長符号記憶手段群は、パイプライン動作のステージの境界となっていることを特徴とする請求項１又は２に記載の可変長符号化装置。
【請求項４】
前記シンタックス要素生成手段群は、ラン及びレベルのうち少なくとも１つを生成することを特徴とする請求項１乃至３の何れか１項に記載の可変長符号化装置。
【請求項５】
前記可変長符号記憶手段群からの読み出し動作は、前記可変長符号記憶手段群に記憶されている符号の種類ごとに実行されることを特徴とする請求項２に記載の可変長符号化装置。
【請求項６】
ブロック単位で画像データを入力し、画像データから複数のシンタックス要素を生成し、かつ可変長符号化して符号化ストリームを出力する可変長符号化方法であって、
前記画像データをブロック単位で、少なくとも二つの以上のブロック記憶手段から構成されるブロック記憶手段群に格納する格納工程と、
前記ブロック記憶手段から画像データを読み出し、少なくとも一つ以上のシンタックス要素を生成する、シンタックス要素生成工程と、
前記シンタックス要素生成工程で生成されたシンタックス要素を、シンタックス要素ごとに独立に可変長符号化して可変長符号語を出力する可変長符号化工程と、
前記可変長符号化工程で出力された前記可変長符号語を、それぞれ独立に結合する事で符号語ストリームとして少なくとも二つ以上の可変長符号記憶手段群に記憶する可変長符号記憶工程と、
前記可変長符号記憶手段から供給される前記それぞれの符号語ストリームから一つの符号化ストリームを生成する可変長符号結合工程と、
を備えることを特徴とする可変長符号化方法。
【請求項７】
前記ブロック記憶手段群及び前記可変長符号記憶手段群における書き込み及び読み出し動作は、ブロック単位で並行に行われることを特徴とする請求項６に記載の可変長符号化方法。
【請求項８】
前記ブロック記憶手段群及び前記可変長符号記憶手段群は、パイプライン動作のステージの境界となっていることを特徴とする請求項６又は７に記載の可変長符号化方法。
【請求項９】
前記シンタックス要素生成工程は、ラン及びレベルのうち少なくとも１つを生成することを特徴とする請求項６乃至８の何れか１項に記載の可変長符号化方法。
【請求項１０】
前記可変長符号記憶手段群からの読み出し動作は、前記可変長符号記憶手段群に記憶されている符号の種類ごとに実行されることを特徴とする請求項７に記載の可変長符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画像及び動画像に対する符号化処理における、高速な可変長復号化装置を提供するものである。
【背景技術】
【０００２】
従来から、静止画像や動画像の圧縮符号化技術の一部としてランレングス／カテゴリ符号化及び可変長符号化によるエントロピー符号化技術を使用する方式が良く知られている。この技術は国際標準であるＪＰＥＧ（Ｊｏｉｎｔ Ｐｈｏｔｏｇｒａｐｈｉｃ Ｅｘｐｅｒｔ Ｇｒｏｕｐ）符号化方式及びＭＰＥＧ−１／−２（Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ）符号化方式においても採用されている。
【０００３】
これらの符号化方式において可変長符号化が施される事象は、ランレングス及びレベルと呼ばれる２次元の事象に対してハフマン符号を割り当てる事によってエントロピー符号化を実現している。すなわち、ＪＰＥＧ或いはＭＰＥＧ−１／−２においては、この一種類の２次元事象に対して可変長符号化を施す事だけで符号化ストリームを生成する事が可能である。なお、以後において可変長符号化の対象となる事象（ＤＴＣ係数や動きベクトルなど、所定のシンタクスで伝送することが規定されている情報）をシンタックス要素と呼ぶこととする。ここでシンタックスとは、圧縮符号化されたデータ列の規則をいう。
【０００４】
一方、近年高能率符号化方式として注目されているＨ．２６４符号化方式のエントロピー符号化においては、変換係数をランレングス及びレベルを独立のシンタックス要素として符号化する事に加えて、４×４ブロック内の有意係数の総数（ＴｏｔａｌＣｏｅｆｆｓ）及びジグザグ・スキャン順で最終有意係数が絶対値１である係数の個数（ｔｒａｉｌｉｎｇ＿ｏｎｅｓ）から２次元事象のシンタックス要素ｃｏｅｆｆ＿ｔｏｋｅｎ、更には変換係数の値が零の数であるＴｏｔａｌＺｅｒｏｓ、及びジグザグ・スキャン順で最終有意係数が絶対値１である係数の符号ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎの５つのシンタックス要素をブロック毎に可変長符号化しなければならない。ＪＰＥＧ或いはＭＰＥＧ−１／−２符号化方式とＨ．２６４符号化方式の可変長符号化装置の比較を図１に示す。
【０００５】
Ｈ．２６４符号化方式におけるエントロピー符号化では、直交変換後の変換係数或いは画像データに対して４×４ブロック単位に処理を行う。Ｈ．２６４符号化方式においては、図２Ａで示す４×４ブロック内のジグザグ・スキャン順の逆方向（逆スキャン順）から処理を行い、順次前記５つのシンタックス要素を生成し可変長符号化する。なお、ブロック内の変換係数の値をＩをジグザグスキャン番号としてＬｅｖｅｌ［Ｉ］として表現する。
【０００６】
＜Ｈ．２６４符号化方式のエントロピー符号化処理＞
次に図２Ｂで示す変換係数から成る４×４ブロックを、Ｈ．２６４符号化方式のＣＡＶＬＣ方式によるエントロピー符号化処理を説明する。Ｈ．２６４符号化方式の可変長符号化装置のブロック図を図３に示す。更に、図４には４×４ブロック単位の５つのシンタックス要素に対応する可変長符号が結合されて符号化ストリームになる際の結合される順番を示す。
【０００７】
ＴｏｔａｌＣｏｅｆｆｓ算出手段３０４において、図２Ｂの４×４ブロック内の変換係数において値０ではない個数を算出する。ここでは、ＴｏｔａｌＣｏｅｆｆｓ＝ ６である。次にＴｏｔａｌＺｅｒｏｓ算出手段３０６において最終有意係数であるＬｅｖｅｌ［９］からＬｅｖｅｌ［０］までの間にＬｅｖｅｌ［Ｉ］値が０である個数を算出する。ここでは、ＴｏｔａｌＺｅｒｏｓ＝４である。ｔｒａｉｌｉｎｇ＿ｏｎｅｓ算出手段４０５においては、最終有意係数であるＬｅｖｅｌ［９］から絶対値１である変換係数の個数を最大３まで算出する。ここでは、Ｌｅｖｅｌ［９］及びＬｅｖｅｌ［７］が絶対値が１であるので、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ２となる。なお、ＴｏｔａｌＣｏｅｆｆｓ算出手段３０４で算出したＴｏｔａｌＣｏｅｆｆｓの値とｔｒａｉｌｉｎｇ＿ｏｎｅｓ算出手段３０５で算出したｔｒａｉｌｉｎｇ＿ｏｎｅｓの値から２次元事象のシンタックス要素であるｃｏｅｆｆ＿ｔｏｋｅｎをｃｏｅｆｆ＿ｔｏｋｅｎ可変長符号生成手段３０９において算出する。
【０００８】
シンタックス要素であるＬｅｖｅｌについては、逆スキャン順で順次生成するため、最終有意係数であるＬｅｖｅｌ［９］から順次Ｌｅｖｅｌを生成する。ただし、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ算出手段３０５において算出したｔｒａｉｌｉｎｇ＿ｏｎｅｓの値に応じて、Ｌｅｖｅｌの値を修正する必要があり、この処理を行うのがＬｅｖｅｌ選択手段４０１である。Ｌｅｖｅｌ選択手段３０１においては、Ｌｅｖｅｌ［Ｉ］の値が０でない場合に順次閾値判定手段３０２及びＬｅｖｅｌ可変長符号生成手段３０３に出力すると同時に、ｔｒａｉｌｉｎｇ＿ｏｎｅｓの値が３より小さい場合には絶対値が１ではない最初のＬｅｖｅｌ［Ｉ］の値の絶対値から１を減算する。ここでは、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ ＝２であるのでＬｅｖｅｌ［６］の絶対値６から１を減算した値５をＬｅｖｅｌ［６］のＬｅｖｅｌとして出力する。更に、閾値判定手段３０２においてｓｕｆｆｉｘＬｅｎｇｔｈを判定しＬｅｖｅｌ可変長符号生成手段３０３に出力する。
【０００９】
ＳｕｆｆｉｘＬｅｎｇｔｈは、Ｈ．２６４の規格上予め定められた閾値テーブルと、入力されるＬｅｖｅｌ［Ｉ］の値との大小を比較する事で判定する。Ｌｅｖｅｌ可変長符号生成手段３０３では、ＳｕｆｆｉｘＬｅｎｇｔｈの値に応じて可変長符号に用いる可変長テーブル（図示しない）を選択する。
【００１０】
次にｒｕｎ＿ｂｅｆｅｒｅ算出手段３０７において、逆スキャン順におけるゼロランの算出を行う。Ｌｅｖｅｌ［９］からＬｅｖｅｌ［７］間はｒｕｎ＿ｂｅｆｏｒｅ＝１、Ｌｅｖｅｌ［７］からＬｅｖｅｌ［６］間はｒｕｎ＿ｂｅｆｏｒｅ＝０という様に順次算出する。なお、ｚｅｒｏｓ＿ｌｅｆｔ管理手段においては、ＴｏｔａｌＺｅｒｏｓの値から順次算出されるｒｕｎ＿ｂｅｆｏｒｅの値を減算した値をｚｅｒｏｓ＿ｌｅｆｔとしてｒｕｎ＿ｂｅｆｏｒｅ可変長符号生成手段３１１へ出力する。ｒｕｎ＿ｂｅｆｏｒｅ可変長符号生成手段３１１においては、ｒｕｎ＿ｂｅｆｏｒｅ及びｚｅｒｏｓ＿ｌｅｆｔの値から可変長符号を生成する。
【００１１】
可変長符号結合手段３１２においては、図４で示す順番に従い、ｃｏｅｆ＿ｔｏｋｅｎ可変長符号生成手段３０９から入力される可変長符号、次にｔｒａｉｌｉｎｇ＿ｏｎｅｓ算出手段３０５から入力されるｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ、次にＬｅｖｅｌ可変長符号生成手段３０３から入力される可変長符号、次にＴｏｔａｌＺｅｒｏｓ可変長符号生成手段３１０から入力される可変長符号、最後にｒｕｎ＿ｂｅｆｏｒｅ可変長符号生成手段３１１から入力される可変長符号を順次結合して図２Ｂに対応する符号化ストリームとして出力する。
【００１２】
＜従来技術による処理＞
図３のブロック図を基に、ハードウエアにおいてエントロピー符号化した場合の例について説明する。また、図５には、従来技術によるエントロピー符号化の各処理と時間の関係が示されている。
【００１３】
図３のブロック図の入力である変換係数は、図５における処理５０３で示す通り４×４ブロック内の１６個の変換係数が逆スキャン順に処理５０６及び処理５１０に順次入力される。処理５０６において、シンタックス要素ＴｏｔａｌＣｏｅｆｆｓ及びｔｒａｉｌｉｎｇ＿ｏｎｅｓの算出を平行に算出すると共に、ｔｒａｉｌｉｎｇ＿ｏｎｅｓに対応する係数の符号ｔｒａｌｉｌｎｇ＿ｏｎｅｓ＿ｓｉｇｎを算出する。シンタックス要素ＴｏｔａｌＣｏｅｆｆｓ及びｔｒａｉｌｉｎｇ＿ｏｎｅｓの算出が完了した時点において、これら２つのシンタックス要素の値からｃｏｅｆｆ＿ｔｏｋｅｎに対応する可変長符号を生成する。
【００１４】
生成した一つの可変長符号及び一つの符号ｔｒａｌｉｌｎｇ＿ｏｎｅｓ＿ｓｉｇｎは、処理５１５で示す可変長符号結合手段５１５によって、ｃｏｅｆｆ＿ｔｏｋｅｎ及びｔｒａｌｉｌｎｇ＿ｏｎｅｓ＿ｓｉｇｎからなる符号化ストリームが生成される。また、処理５０６と平行して処理５１０において、シンタックス要素ＴｏｔａｌＺｅｒｏｓ及び対応する可変長符号を生成する。ただし、生成した一つの可変長符号はこの時点では、処理６１５の可変長符号結合手段において符号化ストリームとして結合されず、処理５１０の出力として保持される。
【００１５】
次に処理５１１においてＬｅｖｅｌ［Ｉ］の可変長符号を生成する。処理５０４で示す通りに、処理５０３で入力された変換係数とまったく同一の変換係数が再度処理６１１に入力される。処理５１１においては、処理５０６で算出したｔｒａｉｌｉｎｇ＿ｏｎｅｓの値に応じて、処理５０４から入力される変換係数の値Ｌｅｖｅｌ［Ｉ］に対応する可変長符号を随時、処理５１５の可変長符号結合手段に出力する。処理５１５の可変長符号結合手段は最大１６個の可変長符号を随時結合して、ｃｏｅｆｆ＿ｔｏｋｅｎ、ｔｒａｌｉｌｎｇ＿ｏｎｅｓ＿ｓｉｇｎ及びＬｅｖｅｌからなる符号化ストリームを生成する。
【００１６】
さらに、処理５１５の可変長符号結合手段は処理５１１から入力が完了した時点で、処理５１０の出力として保持されているＴｏｔａｌＺｅｒｏｓを、結合しｃｏｅｆｆ＿ｔｏｋｅｎ、ｔｒａｌｉｌｎｇ＿ｏｎｅｓ＿ｓｉｇｎ、Ｌｅｖｅｌ及びＴｏｔａｌＺｅｒｏｓからなる符号ストリームを生成する。
【００１７】
次に処理５１４においてｒｕｎ＿ｂｅｆｏｒｅの可変長符号を生成する。処理５０５で示す通り、処理５０４と同様に処理５０３と同一の変換係数が順次入力される。処理５１４においては、処理５１０で既に算出したシンタックス要素ＴｏｔａｌＺｅｒｏｓの値と、入力される変換係数の値Ｌｅｖｅｌ［Ｉ］からｒｕｎ＿ｂｅｆｏｒｅの可変長符号を随時生成して、処理５１５の可変長符号結合手段に出力する。処理５１５の可変長符号結合手段は、これまで生成したｃｏｅｆｆ＿ｔｏｋｅｎ、ｔｒａｌｉｌｎｇ＿ｏｎｅｓ＿ｓｉｇｎ、Ｌｅｖｅｌ及びＴｏｔａｌＺｅｒｏｓからなる符号化ストリームに随時ｒｕｎ＿ｂｅｆｏｒｅの可変長符号を結合し、４×４ブロックの符号化ストリームの生成を完了する。
【００１８】
同様の処理を、ピクチャ内のすべての４×４ブロックに対して繰り返し行う事で、エントロピー符号化を実現する。
【００１９】
例えば特許文献１に開示の画像符号化／復号化装置においては、符号化処理を構成する各処理をステージに分割し、処理ステージの前後にメモリを構成する事によってパイプライン処理を実現し高速化を試みている。
【特許文献１】特開平１１−２５２５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、従来技術においては、１つの４×４ブロックを処理するために、計３回（上述の処理５０３、５０４及び５０５への計３回の入力）の４×４ブロックの変換係数を入力する必要があり莫大な処理時間を必要とされ、リアルタイム符号化を実現する事が困難であるという問題がある。
【００２１】
また、特許文献１においても、複数のシンタックス要素を一つの符号化ストリームとして処理する様なエントロピー符号化には適用することは困難である。
【００２２】
本発明はこのような問題点に鑑みてなされたものであり、静止画像及び動画像に対するエントロピー符号化において、ブロック単位のパイプラン動作を行う事によって高速な可変長符号化装置を提供するものである。
【課題を解決するための手段】
【００２３】
上記課題を解決するために、本発明による可変長符号化装置は、ブロック単位で画像データを入力し、画像データから複数のシンタックス要素を生成し、かつ可変長符号化して符号化ストリームを出力する可変長符号化装置であって、前記画像データをブロック単位に記憶する少なくとも二つの以上のブロック記憶手段から構成されるブロック記憶手段群と、前記ブロック記憶手段から画像データを読み出し、少なくとも一つ以上のシンタックス要素を生成する、シンタックス要素生成手段群と、前記シンタックス要素生成手段群から入力されるシンタックス要素を、シンタックス要素ごとに独立に可変長符号化し、可変長符号語を出力する可変長符号化手段群と、前記可変長符号化手段群から供給される前記可変長符号語を、それぞれ独立に結合することにより符号語ストリームとして記憶する、少なくとも二つ以上の可変長符号記憶手段から構成される可変長符号記憶手段群と、前記可変長符号記憶手段群から供給される、それぞれの符号語ストリームから一つの符号化ストリームを生成する可変長符号結合手段と、を備えることを特徴とする。
【００２４】
また、本発明による可変長符号化方法は、ブロック単位で画像データを入力し、画像データから複数のシンタックス要素を生成し、かつ可変長符号化して符号化ストリームを出力する可変長符号化方法であって、前記画像データをブロック単位で、少なくとも二つの以上のブロック記憶手段から構成されるブロック記憶手段群に格納する格納工程と、前記ブロック記憶手段から画像データを読み出し、少なくとも一つ以上のシンタックス要素を生成する、シンタックス要素生成工程と、前記シンタックス要素生成工程で生成されたシンタックス要素を、シンタックス要素ごとに独立に可変長符号化して可変長符号語を出力する可変長符号化工程と、前記可変長符号化工程で出力された前記可変長符号語を、それぞれ独立に結合する事で符号語ストリームとして少なくとも二つ以上の可変長符号記憶手段群に記憶する可変長符号記憶工程と、前記可変長符号記憶手段から供給される前記それぞれの符号語ストリームから一つの符号化ストリームを生成する可変長符号結合工程と、を備えることを特徴とする。
【００２５】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【００２６】
以上のような構成を備える本発明によれば、ブロック単位のパイプラン動作を行うことによって高速な可変長符号化を実現することができる。
【発明を実施するための最良の形態】
【００２７】
＜基本的概念＞
図６に示す可変長符号化装置に入力にはブロック単位の画像データが入力される。入力される画像データは、一次的にブロック単位でブロック記憶手段群６０１に記憶される。ブロック記憶手段６０１は少なくとも２つ以上のブロックを記憶出来る容量を持ち、ブロック単位の容量毎に独立に動作を行う。入力されるブロック単位の画像データは、ブロック記憶手段群６０１内の複数のブロック単位の記憶手段から一つが選択し、順次画像データの書き込みを行う。
【００２８】
ブロック記憶手段群６０１において、一つのブロックに対する書き込みが完了した後、該ブロック記憶手段群６０１から画像データを順次読み出し、シンタックス要素生成手段群６０２内の複数のシンタックス要素生成手段において各々のシンタックス要素を生成する。
【００２９】
また、該各々のシンタックス要素に対して独立に可変長符号化を行い可変長符号を生成し、かつ該各々の可変長符号を可変長符号記憶手段群６０５において独立に記憶する。
【００３０】
一方、シンタックス要素生成手段群及び可変長符号生成手段群における処理と並行して、ブロック記憶手段群６０１においては、ブロック記憶手段群６０１内の複数のブロック記憶手段から、シンタックス要素生成手段群に対して読み出しを行っていないブロック記憶手段を一つ選択し、次のブロック単位の画像データの書き込みを行う。
【００３１】
さらに、可変長符号結合手段６０６において、可変長符号記憶手段群６０５において独立に記憶された各々のシンタックス要素に対応する可変長符号を結合して、一つの符号化ストリームを出力する。
【００３２】
すべての入力画像データに対してブロック単位にこれらの処理を繰り返し行う事で、ブロック記憶手段群６０１及び可変長記憶手段群６０５をステージの境界としたブロック単位のパイプライン動作を行う可変長符号化装置が実現出来る。
次に、本発明の好適な実施例として、Ｈ．２６４符号化方式のエントロピー符号化方式であるＣＡＶＬＣ方式に適用した可変長符号化装置について説明する。
【００３３】
＜符号化装置の構成＞
図７には、実施例１のエントロピー符号化装置のブロック図を示す。
【００３４】
本可変長符号化装置の入力画像データは、直交変換及び量子化処理が施された図２Ａで示される変換係数である。変換係数は図示しない量子化処理を行うブロックから図２Ａで示される４×４ブロック単位で、かつラスタスキャン順に入力される。
【００３５】
入力された４×４ブロックの変換係数は、順次ブロック記憶手段に記憶されると同時に、ＴｏｔａｌＣｏｅｆｆｓ算出手段７０４、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ算出手段７０６、及びＴｏｔａｌＺｅｏｒｓ算出手段７０７に入力される。ブロック記憶手段７２０は、４×４ブロックの変換係数を記憶可能な容量をもつ二つのブロック記憶手段であるブロック記憶手段７１８及びブロック記憶手段７１９から構成される。
【００３６】
これら２つのブロック記憶手段７１８及び７１９は、４×４ブロック単位でオルタネート・バッファとして動作する。すなわち、入力される変換係数の書き込み先が４×４ブロック単位で切り替わる。
【００３７】
一方、ＴｏｔａｌＣｏｅｆｆｓ算出手段７０４、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ算出手段７０６、及びＴｏｔａｌＺｅｏｒｓ算出手段７０７では、本可変長符号化装置に入力される変換係数を入力として、それぞれ［Ｈ．２６４符号化方式のエントロピー符号化処理］で示した処理と同様な手法により、シンタックス要素ＴｏｔａｌＣｏｅｆｆｓ、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ及びＴｏｔａｌＺｅｏｒｓを出力する。
【００３８】
また、Ｃｏｅｆｆ＿ｔｏｋｅｎ可変長符号化生成手段７０５には、ＴｏｔａｌＣｏｅｆｆｓ、ｔｒａｉｌｉｎｇ＿ｏｎｅｓが入力され、これら２つのシンタックス要素から算出されるｃｏｅｆｆ＿ｔｏｋｅｎの値に応じた可変長符号が出力される。同様に、ＴｏｔａｌＺｅｏｒｓ可変長符号生成手段７０９においても、入力されるＴｏｔａｌＺｅｏｒｓの値に応じた可変長符号が出力される。
【００３９】
各シンタックス要素に対応した可変長符号は、可変長符号記憶手段７２１に記憶される。可変長符号記憶手段７２１は、各シンタックス要素に対応して、４×４ブロック単位で発生する最大符号量を記憶可能な容量をもつ２つの記憶手段である、可変長符号記憶手段群７１２及び７１３から構成される。可変長符号記憶手段群７１２及び７１３は、各シンタックス要素毎に、４×４ブロック単位でオルタネート・バッファとして動作する。
【００４０】
また、Ｌｅｖｅｌ及びｒｕｎ＿ｂｅｆｏｒｅのシンタックス要素を生成する際に必要となるｔｒａｉｌｉｎｇ＿ｏｎｅｓ及びＴｏｔａｌＺｅｒｏｓの値は、可変長符号記憶手段群７２１内の変数記憶手段に記憶される。
【００４１】
一方、Ｌｅｖｅｌ選択手段７０１及びｒｕｎ＿ｂｅｆｏｒｅ算出手段７０８には、ブロック記憶手段７２０に記憶されている変換係数を、４×４ブロック単位で逆スキャン順に読み出す事により入力する。本可変長符号化装置の入力変換係数の書き込みが行われていないブロック記憶手段７２０内のブロック記憶手段７１８或いは７１９から一つを選択して、読み出しが行われる。Ｌｅｖｅｌ選択手段７０１、閾値判定手段７０２及びＬｅｖｅｌ可変長符号生成手段７０３の動作は、それぞれ上述したＨ．２６４符号化方式のエントロピー符号化処理と同様である。
【００４２】
Ｌｅｖｅｌ可変長符号生成手段７０３から４×４ブロック毎に出力される可変長符号の数は、４×４ブロック内の有意係数の個数に応じて異なる。可変長符号記憶手段群７２１内のＬｅｖｅｌ可変長符号記憶手段７１３或いは７１４においては、Ｌｅｖｅｌ可変長符号生成手段７０３から入力される可変長符号化を４×４ブロック単位で一つの符号語ストリームとして結合して記憶する。
【００４３】
また、ｒｕｎ＿ｂｅｆｏｒｅ算出手段７０８、ｚｅｒｏｓ＿ｌｅｆｔ管理手段７１１及びｒｕｎ＿ｂｅｆｏｒｅ可変長符号生成手段７１０の動作は、上述したＨ．２６４符号化方式のエントロピー符号化処理と同様である。
【００４４】
さらに、ｒｕｎ＿ｂｅｆｏｒｅ可変長符号生成手段７１０から出力される４×４ブロック毎に出力される可変長符号の数は、４×４ブロック内の有意係数の個数に応じて異なる。可変長符号記憶手段群７２１内のｒｕｎ＿ｂｅｆｏｒｅ可変長符号記憶手段７１０においては、ｒｕｎ＿ｂｅｆｏｒｅ可変長符号生成手段７１０から入力される可変長符号化を４×４ブロック単位で一つの符号語ストリームとして結合して記憶する。
【００４５】
可変長符号記憶手段群７２１は、各シンタックス要素に対応する可変長符号を記憶する、Ｌｅｖｅｌ可変長符号記憶手段、ｃｏｅｆ＿ｔｏｋｅｎ可変長符号記憶手段、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ記憶手段、ＴｏｔａｌＺｅｒｏｓ可変長符号記憶手段及ｒｕｎ＿ｂｅｆｏｒｅ可変長符号記憶手段及びシンタックス要素の生成に必要な変数を記憶する変数記憶手段から構成される。このうち、Ｌｅｖｅｌ可変長符号記憶手段及び及ｒｕｎ＿ｂｅｆｏｒｅ可変長符号記憶手段においては、入力される可変長符号の数が４×４単位で可変であるために、入力される可変長符号を随時結合する事によって一つの符号語ストリームとして記憶する。
【００４６】
また、可変長符号記憶手段７２１内の６つの記憶手段はそれぞれ、２つの記憶手段から構成されておりブロック単位に独立にオルタネート動作（交互切換動作）を行う。このとき、ブロック記憶手段群及び可変長符号記憶手段群における書き込み及び読み出し動作は、ブロック単位で並行（パラレル）に行われることになる。
【００４７】
付加情報選択手段７１６には、可変長符号記憶手段群７２１内の、ｃｏｅｆ＿ｔｏｋｅｎ可変長符号記憶手段、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ記憶手段及びＴｏｔａｌＺｅｒｏｓ可変長符号記憶手段のそれぞれ２組の可変長符号が入力される。付加情報選択手段７１６においては、４×４ブロック単位で切り替える事によって、２組の内どちらか一方を選択して、可変長符号結合手段７１７に出力する。言うまでもなく、付加情報選択手段７１６の出力においては、未だ各シンタックス要素に対応した可変長符号は独立しており一つの符号化ストリームとしては構成されていない。
【００４８】
ＲｕｎＬｅｖｅｌ選択手段７１５には、可変長符号記憶手段群７２１内のＬｅｖｅｌ可変長符号記憶手段及び及ｒｕｎ＿ｂｅｆｏｒｅ可変長符号記憶手段のそれぞれ２組の可変長符号が入力される。付加情報選択手段７１６と同様に４×４ブロック単位で切り替える事によって、２組の内どちらか一方を選択して、可変長符号結合手段７１７に供給する。
【００４９】
変数選択手段７１４の構成も、可変長符号記憶手段群７２１内の変数記憶手段から入力される点以外は、付加情報選択手段７１６及びＲｕｎＬｅｖｅｌ選択手段７１５と同様である。ただし、その出力は可変長符号結合手段７１７に供給されるのではなく、Ｌｅｖｅｌ選択手段７０１及びｚｅｒｏ＿ｌｅｆｅｔ管理手段７１１に供給される。
【００５０】
可変長符号結合手段７１７は、付加情報選択手段７１６及びＲｕｎＬｅｖｅｌ選択手段７１５から入力される各シンタックス要素に対応した可変長符号を、順次結合する事で符号化ストリームを生成する。
【００５１】
＜パイプライン動作の具体例＞
本可変長符号化装置におけるブロック単位の３ステージから成るパイプライン動作を示した図を図８に示す。図８には４つの４×４ブロックが順次入力された際の動作がブロック単位にＴ１〜Ｔ４の期間に分割した形で示されている。以後４×４ブロック＃０を対象とした３つのステージに注目して説明を行う。
【００５２】
（１）ステージ１
期間Ｔ１において、最初の４×４ブロック＃０が本可変長符号化装置に入力される。４×４ブロック＃０内の各変換係数は、図中ブロック処理で示す通りに、ブロック記憶手段＃０（図７中のブロック記憶手段７１８に対応）に順次書き込みを行うのと平行して、付加情報処理を行いその結果を、可変長符号記憶手段群７２１に記憶する。ここで、付加情報処理とは、図７中のＴｏｔａｌＣｏｅｆｆｓ算出手段７０４、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ算出手段７０６、ｃｏｅｆｆ＿ｔｏｋｅｎ可変長符号生成手段７０５、ＴｏｔａｌＺｅｏｒｓ算出手段７０７及びＴｏｔａｌＺｅｏｒｓ可変長符号生成手段に対応する。図８中の付加情報処理に、ＴｏｔａｌＺｅｏｒｓ算出手段７０７及びＴｏｔａｌＺｅｏｒｓ可変長符号生成手段を記載していないが、平行して処理が行われているものとする。
【００５３】
付加情報処理の結果得られたｃｏｅｆ＿ｔｏｋｅｎ、ＴｏｔａｌＺｅｒｏｓ及びｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎに対応する可変長符号は、それぞれ対応する可変長符号記憶手段群内の＃０の記憶手段に記憶される。また同様にＴｏｔａｌＺｅｏｒｓ及びｔｒａｉｌｉｎｇ＿ｏｎｅｓの値も、それぞれ対応する可変長符号記憶手段群内の＃０の記憶手段に記憶される。
【００５４】
（２）ステージ２
期間Ｔ２において、４×４ブロック＃０が記憶されているブロック記憶手段＃０から変換係数を読み出し、Ｌｅｖｅｌ処理及びｒｕｎ＿ｂｅｆｏｒｅ処理を行う。Ｌｅｖｅｌ処理とは、Ｌｅｖｅｌ選択手段７０１、閾値判定手段７０２及びＬｅｖｅｌ可変長符号生成手段７０３の３つの処理に対応し、ｒｕｎ＿ｂｅｆｏｒｅ処理とはｒｕｎ＿ｂｅｆｏｒｅ算出手段７０８、ｚｅｒｏｓ＿ｌｅｆｔ管理手段７１１及びｒｕｎ＿ｂｅｆｏｒｅ可変長符号生成手段７１０に対応する。Ｌｅｖｅｌ処理及びｒｕｎ＿ｂｅｆｏｒｅ処理の結果得られた可変長符号は、それぞれ対応する可変長符号記憶手段群内の＃０の記憶手段に記憶される。
【００５５】
また、これらの処理に平行して、可変長符号結合手段７１７は、ステージ１において可変長符号記憶手段群内の＃０の記憶手段に書き込みを行ったｃｏｅｆ＿ｔｏｋｅｎ、ＴｏｔａｌＺｅｒｏｓに対応する可変長符号を読み出し、結合し可変長符号結合手段７１７内に保持し、ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎは独立して保持する。
【００５６】
一方、次の４×４ブロック＃１が平行して本可変長符号化装置に入力され、ステージ１の処理が行われる。この場合４×４ブロックが書き込み先はブロック記憶手段＃１（図７中のブロック記憶手段７１９に対応）であり、付加情報処理の結果は可変長符号記憶手段群内の＃１の記憶手段に記憶される。
【００５７】
（３）ステージ３
期間Ｔ３において、可変長符号結合手段７１７においてステージ２においてＬｅｖｅｌ処理及びｒｕｎ＿ｂｅｆｏｒｅ処理の結果を記憶した可変長符号を、それぞれ対応する可変長符号記憶手段群内の＃０の記憶手段から読み出し、ステージ２において可変長符号結合手段７１７に保持しておいた、ｃｏｅｆ＿ｔｏｋｅｎ、ＴｏｔａｌＺｅｒｏｓを結合した可変長符号及びｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎに対応する符号を結合し符号化ストリームとして出力する。
【００５８】
＜実施形態の効果＞
ブロック単位で複数のシンタックス要素を可変長符号化して、一つの符号化ストリームを出力可変長符号化装置において、入力段にブロック単位にオルタネートで動作する２つのブロック記憶手段及び各々のシンタックス要素に対応する可変長符号をブロック単位にオルタネートで動作する２つ可変長符号記憶手段を用いる事によって、ブロック単位のパイプライン動作が実現でき、高速な可変長符号処理を行う事が可能となった。
【図面の簡単な説明】
【００５９】
【図１】Ｈ．２６４符号化方式と他の符号化方式との比較を示した図である。
【図２】スキャン順を説明するための図である。
【図３】Ｈ．２６４符号化方式におけるエントロピー符号方式の処理を示したブロック図である。
【図４】Ｈ．２６４におけるシンタックス要素の順番を示した図である。
【図５】従来のエントロピー符号方式の各処理と時間の関係を示した図である。
【図６】本発明における可変長符号化装置の基本的概念を説明するための図である。
【図７】実施形態例におけるエントロピー符号方式の可変長符号化装置の構成を示すブロック図である。
【図８】実施形態によるエントロピー符号方式の処理の手順を示す図である。
【図１】
2006157678.tif 000003
【図２】
2006157678.tif 000004
【図３】
2006157678.tif 000005
【図４】
2006157678.tif 000006
【図５】
2006157678.tif 000007
【図６】
2006157678.tif 000008
【図７】
2006157678.tif 000009
【図８】
2006157678.tif 000010