(57)【要約】【課題】可変長符号化において実質的な処理速度を向上させることが可能な画像符号化装置及び画像符号化方法を提供すること。【解決手段】量子化係数の値がゼロ（０）でない非ゼロ係数と、量子化係数の値がゼロであるゼロ係数の連続数を示すゼロランレングスと、ゼロ係数の後に続く、量子化係数の値がゼロでない非ゼロ係数とを検出する係数検出部１０５と、順次検出された非ゼロ係数又はゼロランレングスを２以上の所定数毎に順次組み合わせると共に、非ゼロ係数及びゼロランレングスのいずれであるかを識別する識別子を非ゼロ係数及びゼロランレングス毎に付与して中間コードを生成する中間コード生成部１０５と、中間コードの非ゼロ係数又はゼロランレングスと、識別子に基づいて、それぞれ１つの非ゼロ係数と１つのゼロランレングスが入力されて可変長符号化処理する、上記所定数と同一数以上からなる複数の符号化部１０７とを有することを特徴とする。【選択図】図１
2010130213.tif 000002
【特許請求の範囲】
【請求項１】
画像データを直交変換し直交変換係数を生成する直交変換部と、
前記直交変換係数を量子化し量子化係数を生成する量子化部と、
前記量子化係数の値がゼロ（０）であるゼロ係数の連続数を示すゼロランレングスと、前記ゼロ係数の後に続く、前記量子化係数の値がゼロでない非ゼロ係数とを検出する係数検出部と、
順次検出された前記非ゼロ係数又は前記ゼロランレングスを２以上の所定数毎に順次組み合わせると共に、前記非ゼロ係数及び前記ゼロランレングスのいずれであるかを識別する識別子を前記非ゼロ係数及び前記ゼロランレングス毎に付与して中間コードを生成する中間コード生成部と、
前記中間コードの前記非ゼロ係数又は前記ゼロランレングスと、前記識別子に基づいて、それぞれ１つの前記非ゼロ係数と１つの前記ゼロランレングスが入力されて可変長符号化処理する、前記所定数と同一数以上からなる複数の符号化部と
を有する、画像符号化装置。
【請求項２】
前記量子化部、前記係数検出部及び前記中間コード生成部は、並列した複数の系統からなる、請求項１に記載の画像符号化装置。
【請求項３】
直交変換部が、画像データを直交変換し直交変換係数を生成するステップと、
量子化部が、前記直交変換係数を量子化し量子化係数を生成するステップと、
係数検出部が、前記量子化係数の値がゼロ（０）であるゼロ係数の連続数を示すゼロランレングスと、前記ゼロ係数の後に続く、前記量子化係数の値がゼロでない非ゼロ係数とを検出するステップと、
中間コード生成部が、順次検出された前記非ゼロ係数又は前記ゼロランレングスを２以上の所定数毎に順次組み合わせると共に、前記非ゼロ係数及び前記ゼロランレングスのいずれであるかを識別する識別子を前記非ゼロ係数及び前記ゼロランレングス毎に付与して中間コードを生成するステップと、
前記所定数と同一数以上からなる複数の符号化部が、前記中間コードの前記非ゼロ係数又は前記ゼロランレングスと、前記識別子に基づいて、それぞれ１つの前記非ゼロ係数と１つの前記ゼロランレングスが入力されて可変長符号化処理するステップと
を有する、画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置及び画像符号化方法に関する。
【背景技術】
【０００２】
静止画像データの圧縮方式として、ＪＰＥＧベースライン方式があり、ＪＰＥＧベースライン方式の可変長符号化方式には、ハフマン符号が用いられる。８×８画素のブロックに分割された画像データをＤＣＴ変換し量子化して得られる係数は、ゼロ（０）とゼロではない値からなる。ハフマン符号化は、係数がゼロ（ゼロ係数）であるときのゼロの数（ゼロランレングス）と、ゼロ係数の後に続くゼロでない係数である非ゼロ係数の組み合わせを、発生頻度の高い順にコード長の短いコードを割り当てる。これにより、効率的な符号化を行うことができる。
【０００３】
従来のハフマン符号では、符号化の際、ＤＣＴ係数ブロック内の全データについて、ブロック毎に、ＤＣＴ係数がゼロであるか、又は非ゼロ係数であるかを判別する必要があった。例えば、ＤＣＴ係数ブロックは、８×８のブロックであり、６４データであるため、ハフマン符号で符号化する場合、通常１ブロックあたり６４クロック以上を要した。そこで、例えば特許文献１には、ハフマン符号の処理時間の短縮化を図る技術が開示されている。
【０００４】
【特許文献１】特開２００３−３３３３３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来、可変長符号化において、連続するゼロ係数を数え上げてゼロランレングスを算出しており、１つのゼロ係数を数えるのに１クロックを必要としていた。そこで、特許文献１の技術では、符号化の際の処理クロック数を抑えるため、ゼロランレングス及び非ゼロ係数から可変長符号を生成する可変長符号化の前段で、ゼロランレングスと非ゼロ係数を組み合わせて１つの係数を生成する。そして、可変長符号化では、生成した１つの係数をもとに可変長符号を生成する。従って、特許文献１の可変長符号化では、ゼロランレングスを算出するための処理クロック数が不要となり、ゼロランレングスと非ゼロ係数が直接入力されるため、符号化の際の処理クロック数を削減できた。
【０００６】
しかし、この方法では、ゼロ係数が長く連続しているとき、即ちゼロランレングスが大きいときには処理クロック数の削減効果があるが、非ゼロ係数が１ブロック内で多いときは、処理クロック数の削減効果が低くなる。また、量子化後の係数が全て非ゼロ係数になったときは、処理クロック数の削減効果は全くなくなるという問題があった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、可変長符号化において実質的な処理速度を向上させることが可能な、新規かつ改良された画像符号化装置及び画像符号化方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、画像データを直交変換し直交変換係数を生成する直交変換部と、直交変換係数を量子化し量子化係数を生成する量子化部と、量子化係数の値がゼロ（０）であるゼロ係数の連続数を示すゼロランレングスと、ゼロ係数の後に続く、量子化係数の値がゼロでない非ゼロ係数とを検出する係数検出部と、順次検出された非ゼロ係数又はゼロランレングスを２以上の所定数毎に順次組み合わせると共に、非ゼロ係数及びゼロランレングスのいずれであるかを識別する識別子を非ゼロ係数及びゼロランレングス毎に付与して中間コードを生成する中間コード生成部と、中間コードの非ゼロ係数又はゼロランレングスと、識別子に基づいて、それぞれ１つの非ゼロ係数と１つのゼロランレングスが入力されて可変長符号化処理する、上記所定数と同一数以上からなる複数の符号化部とを有する画像符号化装置が提供される。
【０００９】
かかる構成により、直交変換部が、画像データを直交変換し直交変換係数を生成し、量子化部が、直交変換係数を量子化し量子化係数を生成する。また、係数検出部が、量子化係数の値がゼロ（０）であるゼロ係数の連続数を示すゼロランレングスと、ゼロ係数の後に続く、量子化係数の値がゼロでない非ゼロ係数とを検出し、中間コード生成部が、順次検出された非ゼロ係数又はゼロランレングスを２以上の所定数毎に順次組み合わせると共に、非ゼロ係数及びゼロランレングスのいずれであるかを識別する識別子を非ゼロ係数及びゼロランレングス毎に付与して中間コードを生成する。また、上記所定数と同一数以上からなる複数の符号化部が、中間コードの非ゼロ係数又はゼロランレングスと、識別子に基づいて、それぞれ１つの非ゼロ係数と１つのゼロランレングスが入力されて可変長符号化処理する。
【００１０】
上記量子化部、係数検出部及び中間コード生成部は、並列した複数の系統からなってもよい。かかる構成により、量子化部、係数検出部及び中間コード生成部において、画像データを並行に処理することができる。
【００１１】
また、上記課題を解決するために、本発明の別の観点によれば、直交変換部が、画像データを直交変換し直交変換係数を生成するステップと、量子化部が、直交変換係数を量子化し量子化係数を生成するステップと、係数検出部が、量子化係数の値がゼロ（０）であるゼロ係数の連続数を示すゼロランレングスと、ゼロ係数の後に続く、量子化係数の値がゼロでない非ゼロ係数とを検出するステップと、中間コード生成部が、順次検出された非ゼロ係数又はゼロランレングスを２以上の所定数毎に順次組み合わせると共に、非ゼロ係数及びゼロランレングスのいずれであるかを識別する識別子を非ゼロ係数及びゼロランレングス毎に付与して中間コードを生成するステップと、上記所定数と同一数以上からなる複数の符号化部が、中間コードの非ゼロ係数又はゼロランレングスと、識別子に基づいて、それぞれ１つの非ゼロ係数と１つのゼロランレングスが入力されて可変長符号化処理するステップとを有する画像符号化方法が提供される。
【００１２】
かかる構成により、画像データが直交変換されて直交変換係数が生成され、直交変換係数が量子化されて量子化係数を生成される。そして、量子化係数の値がゼロ（０）であるゼロ係数の連続数を示すゼロランレングスと、ゼロ係数の後に続く、量子化係数の値がゼロでない非ゼロ係数とを検出され、順次検出された非ゼロ係数又はゼロランレングスが２以上の所定数毎に順次組み合わされると共に、非ゼロ係数及びゼロランレングスのいずれであるかを識別する識別子が非ゼロ係数及びゼロランレングス毎に付与されて中間コードが生成される。その後、上記所定数と同一数以上からなる複数の符号化部で、中間コードの非ゼロ係数又はゼロランレングスと、識別子に基づいて、それぞれ１つの非ゼロ係数と１つのゼロランレングスが入力されて可変長符号化処理が行われる。
【発明の効果】
【００１３】
本発明によれば、可変長符号化において実質的な処理速度を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１５】
（第１の実施形態）
［第１の実施形態の構成］
まず、本発明の第１の実施形態に係る画像符号化装置１００について説明する。図１は、本実施形態に係る画像符号化装置１００の構成を示すブロック図である。画像符号化装置１００は、例えば、２次元ＤＣＴ部１０１と、第１バッファ１０２と、ジグザグスキャン部１０３と、量子化部１０４と、中間コード生成部１０５と、第２バッファ１０６と、可変長符号化部１０７などからなる。
【００１６】
２次元ＤＣＴ部１０１は、入力された画像データをＤＣＴ変換（離散コサイン変換：Discrete  Cosine  Transform）（直交変換）し、ＤＣＴ係数を生成する。ここで、入力される画像データとは、例えば撮像素子から出力された画像信号を８×８画素のブロックに分割してブロック化処理したデータである。２次元ＤＣＴ部１０１が画像データをＤＣＴ変換することによって、８×８画素のブロック毎に８×８のＤＣＴ係数ブロックが生成される。
第１バッファ１０２は、２次元ＤＣＴ部１０１で生成されたＤＣＴ係数のデータをＤＣＴ係数ブロック単位で格納する。
【００１７】
ジグザグスキャン部１０３は、第１バッファ１０２からＤＣＴ係数を読み出して、読み出したＤＣＴ係数を量子化部１０４に送る。ジグザグスキャン部１０３は、第１バッファ１０２からＤＣＴ係数のデータを読み出す際、ＤＣＴ係数ブロック毎にジグザグスキャンをする。図２は、８×８のＤＣＴ係数ブロックを示しており、ＤＣＴ係数ブロックにおけるジグザグスキャンを示す説明図である。ＤＣＴ係数ブロックでは、２次元ＤＣＴ部１０１で生成されたＤＣＴ係数が、図２に示す０→６３の順番で配置されている。ジグザグスキャン部１０３は、図２の矢印に示すように、ＤＣＴ係数ブロックの低周波数領域を優先してＤＣＴ係数を読み出して、次第に高周波領域となるようにＤＣＴ係数を読み出していく。
【００１８】
量子化部１０４は、ジグザグスキャン部１０３でジグザグスキャンによって読み出されたＤＣＴ係数を、所定の量子化値で量子化する。量子化部１０４は、量子化されたＤＣＴ係数を中間コード生成部１０５に送る。このとき、量子化されたＤＣＴ係数は、量子化部１０４で出力された後、バッファ等に一時的に格納されることなく、直接中間コード生成部１０５に送られる。
【００１９】
中間コード生成部１０５は、量子化されたＤＣＴ係数に基づいて、中間コードを生成する。中間コードは、ＤＣＴ係数の非ゼロ係数、ゼロランレングス及びそれぞれの識別子（ＩＤ）からなる。中間コード生成部１０５は、生成した中間コードを第２バッファ１０６に送る。
第２バッファ１０６は、中間コード生成部１０５で生成された中間コードを格納する。
【００２０】
可変長符号化部１０７は、第２バッファ１０６から中間コードを読み出して、中間コードの非ゼロ係数、ゼロランレングスを示すＩＤに基づいて、非ゼロ係数、ゼロランレングスを判別する。そして、可変長符号化部１０７は、非ゼロ係数、ゼロランレングスに基づいてハフマン符号を生成し、生成したハフマン符号を出力する。本実施形態の可変長符号化部１０７は、後述するとおり、１セット（中間コードセット）に含まれる中間コードの数に対応して、複数の符号部を有する。例えば、１セットに含まれる中間コードが２組である場合は、可変長符号化部１０７の符号部は２つからなる。
【００２１】
［中間コードの生成］
次に、本実施形態に係る中間コードの生成について説明する。
中間コードは、量子化されたＤＣＴ係数に基づいて生成される。量子化されたＤＣＴ係数は、ゼロ（０）とゼロではない値からなる。そこで、中間コード生成部１０５は、係数検出部の一例であり、まず、ＤＣＴ係数について、値がゼロでない係数である非ゼロ係数と、値がゼロである係数（ゼロ係数）を判別する。そして、中間コード生成部１０５は、ＤＣＴ係数が非ゼロ係数であると判別したときは、その値を出力する。また、中間コード生成部１０５は、出力値が非ゼロ係数であることを示す識別子（ＩＤ）を出力する。本実施形態では、非ゼロ係数であることを示すＩＤは、「１」とした。中間コード生成部１０５は、非ゼロ係数の値とＩＤを組み合わせて１組の中間コードを生成する。ＩＤは、中間コードのＭＳＢ（最上位ビット：most  significant  bit）に付加される。
【００２２】
一方、中間コード生成部１０５は、ＤＣＴ係数がゼロ係数であると判別したときは、非ゼロ係数の後に連続するゼロ係数の数を、次に非ゼロ係数が判別されるまで数え上げる。そして、中間コード生成部１０５は、数え上げたゼロ係数の数をゼロランレングスとして出力する。また、中間コード生成部１０５は、出力値がゼロランレングスであることを示す識別子（ＩＤ）を出力する。本実施形態では、ゼロランレングスであることを示すＩＤは、「０」とした。中間コード生成部１０５は、ゼロランレングスの値とＩＤを組み合わせて１組の中間コードを生成する。ＩＤは、中間コードのＭＳＢ（最上位ビット：most  significant  bit）に付加される。
【００２３】
［中間コードの配置］
次に、図３を参照して、第２バッファ１０６に格納される中間コードの配置について説明する。図３は、本実施形態の第２バッファ１０６に格納される中間コードの配置を示す説明図である。
【００２４】
第２バッファ１０６は、時系列で連続する複数の中間コードを、時間的に先行するものを下位に配置し、時間的に後行するものを上位に配置して格納する。本実施形態では、２組の中間コードを１セット（中間コードセット）とする。図３上では、１セットを１行で表した。図３における「係数データ」とは、非ゼロ係数の値を示し、「ゼロランレングス」とは、ゼロランレングスの値を示す。本実施形態では、中間コードの非ゼロ係数の値又はゼロランレングスの値は、１１bitで表す。また、ＩＤは、１bitで表す。従って、本実施形態では、１組の中間コードは１２bitで表され、２組の中間コードを合わせた１つの中間コードセットは、２４bitで表される。よって、１つのＤＣＴ係数ブロックは６４のＤＣＴ係数からなるため、中間コードのバッファ容量は最大でも７６８bit（＝１２bit×６４）でよい。
【００２５】
一方、特許文献１では、ゼロランレングスと非ゼロ係数を組み合わせて生成する１つの係数は、ゼロランレングスを表す４bitと非ゼロ係数を表す１１bitを合わせた１５bitで表される。従って、係数のバッファ容量は最大９６０bit（＝１５bit×６４）となる。よって、本実施形態の中間コードのバッファ容量は特許文献１に比べて少ない容量でよい。
【００２６】
図４を用いて、中間コード生成部１０５で生成される中間コードの一例を説明する。図４は、時系列順に配置された量子化後のＤＣＴ係数（Ａ）と、量子化後のＤＣＴ係数から生成した中間コード（Ｂ）を示す説明図である。
【００２７】
中間コードは、図４（Ｂ）に示すように、中間コードの値（非ゼロ係数の値又はゼロランレングスの値）と、ＩＤからなる。図４（Ｂ）ではゼロランレングス値を網掛けで示した。中間コードの値は、中間コードのＭＳＢに付加されたＩＤによって、非ゼロ係数の値であるか、ゼロランレングスの値であるか識別することができる。
【００２８】
［中間コードの読出し］
次に、図５を参照して、可変長符号化部１０７による第２バッファ１０６からの中間コードの読み出しについて説明する。図５は、第２バッファ１０６と、第２バッファ１０６から中間コードを読み出す可変長符号化部１０７を示すブロック図である。
【００２９】
可変長符号化部１０７は、図５に示すように、分離部１１０を有する。分離部１１０は、第２バッファ１０６に格納された中間コードセットから、上位に配置された中間コード（上位コード）と、下位に配置された中間コード（下位コード）を分離する。また、分離部１１０は、遅延部（ＤＦＦ：Ｄ型フリップフロップ）１１１を有する。遅延部１１１は、１つ先行する中間コードセットのうち上位コードが入力され、入力された上位コードを１クロック遅延して出力する。これにより、遅延した上位コードがゼロランレングスであったとき、遅延した上位コードと下位コードで符号化することができる。以上より、分離部１１０は、上位コード、下位コード及び１クロック遅延した上位コードを同時に出力する。
【００３０】
［可変長符号化部１０７による符号化］
次に、図６を参照して、可変長符号化部１０７による符号化について説明する。図６は、本実施形態の可変長符号化部１０７を示すブロック図である。第２バッファ１０６に入力された中間コードセットのうち、下位コードをＣ０、そのＩＤをＩＤ０とし、上位コードをＣ１、そのＩＤをＩＤ１とする。また、１クロック遅延した上位コードは、末尾に＿ｄを付け、例えばＣ１＿ｄ、そのＩＤをＩＤ１＿ｄと表わす。
【００３１】
可変長符号化部１０７は、図６に示すように、セレクタ１２１，１２２と、第１符号部１３１と、第２符号部１３２と、連結部１４１を有する。１セット（中間コードセット）に含まれる中間コードが２組である場合、可変長符号化部１０７は、可変長符号化部１０７の符号部は２つからなることから、可変長符号化部１０７は、第１符号部１３１と第２符号部１３２を有する。
【００３２】
第１符号部１３１、第２符号部１３２の入力における「Ａ」は、非ゼロ係数の入力を示し、「Ｚ」はゼロランレングスの入力を示す。第１符号部１３１、第２符号部１３２は、非ゼロ係数とゼロランレングスに基づき、例えば２次元ハフマンテーブルを参照してハフマン符号を出力する。第１符号部１３１、第２符号部１３２におけるハフマン符号化は、係数がゼロ（ゼロ係数）であるときのゼロの数（ゼロランレングス）と、ゼロ係数の後に続くゼロでない非ゼロ係数との組み合わせを、発生頻度の高い順にコード長の短いコードを割り当てる。これにより、効率的な符号化を行うことができる。
【００３３】
第１符号部１３１は、中間コードに含まれるＩＤの組み合わせに基づいて、前段のセレクタ１２１，１２２で切り替えて、入力Ａ及び入力Ｚの入力処理を行う。
【００３４】
図６に示すように、第１符号部１３１の入力Ａに入力される非ゼロ係数は、上位コードＣ１又は下位コードＣ０である。第１符号部１３１の入力Ｚに入力されるゼロランレングスは、値が０、下位コードＣ０又は１クロック前の上位コードＣ１＿ｄである。第２符号部１３２の入力Ａに入力される非ゼロ係数は、上位コードＣ１である。第２符号部１３２の入力Ｚに入力されるゼロランレングスは、値が０である。第２符号部１３２は、中間コードセットの上位コードＣ１、下位コードＣ０両方が非ゼロ係数であるときのみ動作し、ハフマン符号を出力する。
【００３５】
第１符号部１３１と第２符号部１３２の入力Ａは、非ゼロ係数である。２組の中間コードからなる中間コードセットのうち、下位コードＣ０に非ゼロ係数があるときは、下位コードＣ０の非ゼロ係数が第１符号部１３１の入力Ａに入力される。下位コードＣ０に非ゼロ係数があり、上位コードＣ１にも非ゼロ係数があるときは、下位コードＣ０の非ゼロ係数が第１符号部１３１の入力Ａに入力され、上位コードＣ１の非ゼロ係数が第２符号部１３２の入力Ａに入力される。下位コードＣ０にゼロランレングスがあり、上位コードＣ１に非ゼロ係数があるときは、上位コードＣ１の非ゼロ係数が第１符号部１３１の入力Ａに入力される。
【００３６】
第１符号部１３１の入力Ｚは、ゼロランレングスであり、第１符号部１３１の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。例えば、第１符号部１３１の入力Ａが下位コードＣ０の非ゼロ係数であり、下位コードＣ０の直前の１クロック遅延した上位コードＣ１＿ｄにゼロランレングスがあるときは、Ｃ１＿ｄのゼロランレングスが第１符号部１３１の入力Ｚに入力される。また、第１符号部１３１の入力Ａが下位コードＣ０の非ゼロ係数であり、下位コードＣ０の直前の１クロック遅延した上位コードＣ１＿ｄに非ゼロ係数があるときは、入力Ａに入力される非ゼロ係数の直前のゼロランレングスは、０である。従って、ゼロランレングス値＝０が第１符号部１３１の入力Ｚに入力される。また、第１符号部１３１の入力Ａが上位コードＣ１の非ゼロ係数であるときは、下位コードＣ０のゼロランレングスが第１符号部１３１の入力Ｚに入力される。
【００３７】
第２符号部１３２の入力Ｚは、ゼロランレングスであり、第２符号部１３２の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。第２符号部１３２の入力Ａ，Ｚに入力が行われるときは、中間コードセットの上位コードＣ１、下位コードＣ０両方が非ゼロ係数であるときである。従って、第２符号部１３２の入力Ａに入力される非ゼロ係数の直前のゼロランレングスは、０であるから、ゼロランレングス値＝０が第２符号部１３２の入力Ｚに入力される。
【００３８】
セレクタ１２１，１２２における入力の切り替えは、中間コードに含まれるＩＤに基づいて行われる。セレクタ１２１，１２２は、中間コードセットが入力されると、中間コードセットに含まれる上位コードのＩＤであるＩＤ１、下位コードのＩＤであるＩＤ０、１クロック前の上位コードのＩＤであるＩＤ１＿ｄの組み合わせによって、入力Ａ及び入力Ｚの入力を切り替える。ＩＤの組合せと、入力される中間コードの種類の関係を図７に示す。図７は、ＩＤの組合せと、入力される中間コードの種類の関係を示す表である。
【００３９】
例えば、組合せが（ＩＤ１，ＩＤ０，ＩＤ１＿ｄ）＝（０，１，０）であれば、上位コードＣ１がゼロランレングス、下位コードＣ０が非ゼロ係数、１クロック前の上位コードＣ１＿ｄがゼロランレングスである。図４に示す例では、例えば、係数が０→０→０→０→６→０→０→０の部分であり（図４（Ａ））、中間コードは１クロック前の上位コードＣ１＿ｄが４、下位コードＣ０が６、上位コードＣ１が３である（図４（Ｂ））。このとき、図７によれば、第１符号部１３１には、入力Ａとして下位コードＣ０が入力され、入力Ｚとして１クロック前の上位コードＣ１＿ｄが入力される。第２符号部１３２は使用しない。
【００４０】
例えば、組合せが（ＩＤ１，ＩＤ０，ＩＤ１＿ｄ）＝（１，０，１）であれば、上位コードＣ１が非ゼロ係数、下位コードＣ０がゼロランレングス、１クロック前の上位コードＣ１＿ｄが非ゼロ係数である。図４に示す例では、例えば、係数が２→０→１の部分であり（図４（Ａ））、中間コードは１クロック前の上位コードＣ１＿ｄが２、下位コードＣ０が１、上位コードＣ１が１である（図４（Ｂ））。このとき、図７によれば、第１符号部１３１には、入力Ａとして上位コードＣ１が入力され、入力Ｚとして下位コードＣ０が入力される。第２符号部１３２は使用しない。
【００４１】
また、例えば、組合せが（ＩＤ１，ＩＤ０，ＩＤ１＿ｄ）＝（１，１，１）であれば、上位コードＣ１が非ゼロ係数、下位コードＣ０が非ゼロ係数、１クロック前の上位コードＣ１＿ｄが非ゼロ係数である。図４に示す例では、例えば、係数が１→１→２の部分であり（図４（Ａ））、中間コードは１クロック前の上位コードＣ１＿ｄが１、下位コードＣ０が１、上位コードＣ１が２である（図４（Ｂ））。このとき、図７によれば、第１符号部１３１には、入力Ａとして下位コードＣ０が入力され、入力Ｚとして値０が入力される。第２符号部１３２には、入力Ａとして上位コードＣ１が入力され、入力Ｚとして値０が入力される。
【００４２】
なお、図７にない組み合わせは、出現することがない組み合わせである。例えば、１クロック前の上位コードがゼロランレングス（ＩＤが０）の場合、下位コードはゼロランレングスになることはなく、下位コードのＩＤが０になることはない。中間コードがゼロランレングスの後は必ず非ゼロ係数の中間コードとなるためである。
【００４３】
連結部１４１は、第１符号部１３１、第２符号部１３２から出力されたハフマン符号をビット単位での結合を行う。例えば、第１符号部１３１から出力されるハフマン符号が１１bitであり、第２符号部１３２から出力されるハフマン符号が５bitであるときは、連結部１４１は、１６bitの結合したハフマン符号を出力する。
【００４４】
本実施形態によれば、可変長符号化の前段で、ＤＣＴ係数の非ゼロ係数、ゼロランレングス及びそれぞれの識別子（ＩＤ）からなる中間コードを生成する。そして、可変長符号化部１０７において、符号部が複数設けられることで、符号化に要する処理時間を短縮することができる。例えば、中間コードを２つ組み合わせて１組の中間コードセットとし、符号部を２つ設けることによって、符号化に要する処理クロック数を１／２以下に抑えることができる。
【００４５】
更に、上述した特許文献１の技術では、画像データを量子化した後の係数を一旦バッファに格納した後、ジグザグスキャン（zigzag  scan）をして、ゼロランレングスと非ゼロ係数を組み合わせて１つの係数を生成している。しかし、この処理の順序では、ジグザグスキャン後に量子化を行う場合に比べて、反対に処理クロック数が増加してしまうという問題があった。一方、本実施形態によれば、ジグザグスキャン後に量子化しているため、特許文献１のように処理クロック数が増加するという問題がない。
【００４６】
［第１の実施形態の第１変更例］
次に、本発明の第１の実施形態に係る画像符号化装置１００の第１変更例について説明する。
上述した画像符号化装置１００では、２組の中間コードを１つの中間コードセットとする場合について説明したが、本発明はかかる例に限定されない。例えば３組の中間コードを１つの中間コードセットとする等、３組以上の中間コードを１セットとしてもよい。
【００４７】
まず、３組の中間コードを１つの中間コードセットとする場合について説明する。この場合、可変長符号化部１０７は、図８に示すように、３つの符号部、即ち第１符号部２３１、第２符号部２３２、第３符号部２３３を有する。図８は、本実施形態の可変長符号化部１０７の変更例を示すブロック図である。
【００４８】
まず、中間コード生成部１０５は、非ゼロ係数とゼロランレングスに基づいて、非ゼロ係数の値又はゼロランレングスの値と、ＩＤからなる中間コードを生成する。生成された中間コードは、第２バッファ１０６を介して、可変長符号化部１０７に送られる。本変更例では、３組の中間コードを１セット（中間コードセット）とする。
【００４９】
次に、可変長符号化部１０７による符号化について説明する。第２バッファ１０６に入力された３組の中間コードからなる中間コードセットのうち、下位側の中間コードから、Ｃ０、Ｃ１、Ｃ２とし、それぞれのＩＤをＩＤ０、ＩＤ１、ＩＤ２とする。また、１クロック遅延した最上位コードは、末尾に＿ｄを付け、例えばＣ２＿ｄ、そのＩＤをＩＤ２＿ｄと表わす。
【００５０】
可変長符号化部１０７は、図８に示すように、セレクタ２２１，２２２，２２３，２２４、第１符号部２３１、第２符号部２３２、第３符号部２３３、連結部２４１を有する。１セット（中間コードセット）に含まれる中間コードが３組である場合、可変長符号化部１０７は、可変長符号化部１０７の符号部は３つからなることから、可変長符号化部１０７は、第１符号部２３１と第２符号部２３２と第３符号部２３３を有する。
【００５１】
第１符号部２３１、第２符号部２３２、第３符号部２３３は、非ゼロ係数とゼロランレングスに基づき、例えば２次元ハフマンテーブルを参照してハフマン符号を出力する。第１符号部２３１、第２符号部２３２、第３符号部２３３は、中間コードに含まれるＩＤの組み合わせに基づいて、前段のセレクタ２２１，２２２，２２３，２２４で切り替えて、入力Ａ及び入力Ｚの入力処理を行う。
【００５２】
図８に示すように、第１符号部２３１の入力Ａに入力される非ゼロ係数は、中位コードＣ１又は下位コードＣ０である。第１符号部２３１の入力Ｚに入力されるゼロランレングスは、値が０、下位コードＣ０又は１クロック前の上位コードＣ２＿ｄである。第２符号部２３２の入力Ａに入力される非ゼロ係数は、上位コードＣ２又は中位コードＣ１である。第２符号部２３２の入力Ｚに入力されるゼロランレングスは、値が０又は中位コードＣ１である。第３符号部２３３の入力Ａに入力される非ゼロ係数は、上位コードＣ２である。第３符号部２３３の入力Ｚに入力されるゼロランレングスは、値が０である。第３符号部２３３は、中間コードセットの中間コードＣ２，Ｃ１，Ｃ０全てが非ゼロ係数であるときのみ動作し、ハフマン符号を出力する。
【００５３】
第１符号部２３１、第２符号部２３２及び第３符号部２３３の入力Ａは、非ゼロ係数である。３組の中間コードからなる中間コードセットのうち、非ゼロ係数は、下位側の非ゼロ係数から上位側の非ゼロ係数の順で、第１符号部２３１→第２符号部２３２→第３符号部２３３の順番で入力Ａの入力に割り当てられる。例えば、下位コードＣ０はゼロランレングスであり、中位コードＣ１に非ゼロ係数があるときは、中位コードＣ１の非ゼロ係数が第１符号部２３１の入力Ａに入力される。下位コードＣ０に非ゼロ係数があり、中位コードＣ１にも非ゼロ係数があるときは、下位コードＣ０の非ゼロ係数が第１符号部２３１の入力Ａに入力され、中位コードＣ１の非ゼロ係数が第２符号部２３２の入力Ａに入力される。中間コードＣ２，Ｃ１，Ｃ０全てが非ゼロ係数であるときは、下位側の中間コードの非ゼロ係数から順に、第１符号部２３１の入力Ａに入力され、中位コードＣ１の非ゼロ係数が第２符号部２３２の入力Ａに入力され、上位コードＣ２の非ゼロ係数が第３符号部２３３の入力Ａに入力される。
【００５４】
第１符号部２３１の入力Ｚは、ゼロランレングスであり、第１符号部２３１の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。例えば、第１符号部２３１の入力Ａが下位コードＣ０の非ゼロ係数であり、下位コードＣ０の直前の１クロック遅延した上位コードＣ２＿ｄにゼロランレングスがあるときは、Ｃ２＿ｄのゼロランレングスが第１符号部２３１の入力Ｚに入力される。また、第１符号部２３１の入力Ａが下位コードＣ０の非ゼロ係数であり、下位コードＣ０の直前の１クロック遅延した上位コードＣ２＿ｄに非ゼロ係数があるときは、入力Ａに入力される非ゼロ係数の直前のゼロランレングスは、０である。従って、ゼロランレングス値＝０が第１符号部２３１の入力Ｚに入力される。また、第１符号部２３１の入力Ａが中位コードＣ１の非ゼロ係数であるときは、下位コードＣ０のゼロランレングスが第１符号部２３１の入力Ｚに入力される。
【００５５】
第２符号部２３２の入力Ｚは、ゼロランレングスであり、第２符号部２３２の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。例えば、第２符号部２３２の入力Ａが上位コードＣ２の非ゼロ係数であり、上位コードＣ２の直前の中位コードＣ１に非ゼロ係数があるときは、入力Ａに入力される非ゼロ係数の直前のゼロランレングスは、０である。従って、ゼロランレングス値＝０が第２符号部２３２の入力Ｚに入力される。また、第２符号部２３２の入力Ａが中位コードＣ１の非ゼロ係数であるときは、ゼロランレングス値＝０が第２符号部２３２の入力Ｚに入力される。
【００５６】
第３符号部２３３の入力Ｚは、ゼロランレングスであり、第３符号部２３３の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。第３符号部２３３の入力Ａ，Ｚに入力が行われるときは、中間コードセットの上位コードＣ２、中位コードＣ１、下位コードＣ０全てが非ゼロ係数であるときである。従って、第３符号部２３３の入力Ａに入力される非ゼロ係数の直前のゼロランレングスは、０であるから、ゼロランレングス値＝０が第３符号部２３３の入力Ｚに入力される。
【００５７】
セレクタ２２１，２２２，２２３，２２４における入力の切り替えは、中間コードに含まれるＩＤに基づいて行われる。セレクタ２２１，２２２，２２３，２２４は、中間コードセットが入力されると、中間コードセットに含まれる上位コードのＩＤであるＩＤ２、中位コードのＩＤであるＩＤ１、下位コードのＩＤであるＩＤ０、１クロック前の上位コードのＩＤであるＩＤ２＿ｄの組み合わせによって、入力Ａ及び入力Ｚの入力を切り替える。ＩＤの組合せと、入力される中間コードの種類の関係を図９に示す。図９は、ＩＤの組合せと、入力される中間コードの種類の関係を示す表である。
【００５８】
例えば、組合せが（ＩＤ２，ＩＤ１，ＩＤ０，ＩＤ２＿ｄ）＝（０，１，１，０）であれば、上位コードＣ２がゼロランレングス、中位コードＣ１が非ゼロ係数、下位コードＣ０が非ゼロ係数、１クロック前の上位コードＣ２＿ｄがゼロランレングスである。このとき、図９によれば、第１符号部２３１には、入力Ａとして下位コードＣ０が入力され、入力Ｚとして１クロック前の上位コードＣ２＿ｄが入力される。第２符号部２３２には、入力Ａとして下位コードＣ１が入力され、入力Ｚとして値０が入力される。第３符号部２３３は使用しない。
【００５９】
また、例えば、組合せが（ＩＤ２，ＩＤ１，ＩＤ０，ＩＤ１＿ｄ）＝（１，０，１，０）であれば、上位コードＣ２が非ゼロ係数、中位コードＣ１がゼロランレングス、下位コードＣ０が非ゼロ係数、１クロック前の上位コードＣ２＿ｄがゼロランレングスである。このとき、図９によれば、第１符号部２３１には、入力Ａとして下位コードＣ０が入力され、入力Ｚとして１クロック前の上位コードＣ２＿ｄが入力される。第２符号部２３２には、入力Ａとして上位コードＣ２が入力され、入力Ｚとして中位コードＣ１が入力される。第３符号部２３３は使用しない。
【００６０】
例えば、組合せが（ＩＤ２，ＩＤ１，ＩＤ０，ＩＤ１＿ｄ）＝（１，１，０，１）であれば、上位コードＣ２が非ゼロ係数、中位コードＣ１が非ゼロ係数、下位コードＣ０がゼロランレングス、１クロック前の上位コードＣ２＿ｄが非ゼロ係数である。このとき、図９によれば、第１符号部２３１には、入力Ａとして中位コードＣ１が入力され、入力Ｚとして下位コードＣ０が入力される。第２符号部２３２には、入力Ａとして上位コードＣ２が入力され、入力Ｚとして下位コードＣ０が入力される。第３符号部２３３は使用しない。
【００６１】
連結部２４１は、第１符号部２３１、第２符号部２３２、第３符号部２３３から出力されたハフマン符号をビット単位での結合を行う。例えば、第１符号部２３１から出力されるハフマン符号が１１bitであり、第２符号部２３２から出力されるハフマン符号が５bitであり、第３符号部２３３からハフマン符号が出力されないときは、連結部２４１は、１６bitの結合したハフマン符号を出力する。
【００６２】
本変更例によれば、可変長符号化の前段で、ＤＣＴ係数の非ゼロ係数、ゼロランレングス及びそれぞれの識別子（ＩＤ）からなる中間コードを生成する。そして、中間コードを３つ組み合わせて１組の中間コードセットとし、符号部を３つ設けることによって、符号化に要する処理クロック数を１／３以下に抑えることができる。
【００６３】
［第１の実施形態の第２変更例］
４組以上の中間コードを含む１つの中間コードセットの場合も、上述した２組又は３組の中間コードを含む中間コードセットの場合と同様に処理できる。例えば、４組の中間コードを１つの中間コードセットとする場合、可変長符号化部１０７は、図１０に示すように、４つの符号部、即ち第１符号部３３１、第２符号部３３２、第３符号部３３３、第４符号部３３４を有する。図１０は、符号化を行う可変長符号化部１０７の変更例を示すブロック図である。
【００６４】
まず、中間コード生成部１０５は、非ゼロ係数とゼロランレングスに基づいて、非ゼロ係数の値又はゼロランレングスの値と、ＩＤからなる中間コードを生成する。生成された中間コードは、第２バッファ１０６を介して、可変長符号化部１０７に送られる。本変更例では、４組の中間コードを１セット（中間コードセット）とする。
【００６５】
次に、可変長符号化部１０７による符号化について説明する。第２バッファ１０６に入力された４組の中間コードからなる中間コードセットのうち、下位側の中間コードから、Ｃ０、Ｃ１、Ｃ２、Ｃ３とし、それぞれのＩＤをＩＤ０、ＩＤ１、ＩＤ２、ＩＤ３とする。また、１クロック遅延した最上位コードは、末尾に＿ｄを付け、例えばＣ３＿ｄ、そのＩＤをＩＤ３＿ｄと表わす。
【００６６】
可変長符号化部１０７は、図１０に示すように、セレクタ３２１，３２２，３２３，３２４，３２５，３２６、第１符号部３３１、第２符号部３３２、第３符号部３３３、第４符号部３３４、連結部３４１を有する。１セット（中間コードセット）に含まれる中間コードが４組である場合、可変長符号化部１０７は、可変長符号化部１０７の符号部は４つからなることから、可変長符号化部１０７は、第１符号部３３１と第２符号部３３２と第３符号部３３３と第４符号部３３４を有する。
【００６７】
第１符号部３３１、第２符号部３３２、第３符号部３３３、第４符号部３３４は、非ゼロ係数とゼロランレングスに基づき、例えば２次元ハフマンテーブルを参照してハフマン符号を出力する。第１符号部３３１、第２符号部３３２、第３符号部３３３、第４符号部３３４は、中間コードに含まれるＩＤの組み合わせに基づいて、前段のセレクタ３２１，３２２，３２３，３２４，３２５，３２６で切り替えて、入力Ａ及び入力Ｚの入力処理を行う。
【００６８】
図１０に示すように、第１符号部３３１の入力Ａに入力される非ゼロ係数は、中間コードＣ１又はＣ０である。第１符号部３３１の入力Ｚに入力されるゼロランレングスは、値が０、中間コードＣ０又はＣ３＿ｄである。第２符号部３３２の入力Ａに入力される非ゼロ係数は、中間コードＣ３、Ｃ２又はコードＣ１である。第２符号部３３２の入力Ｚに入力されるゼロランレングスは、値が０、中間コードＣ２又はＣ１である。第３符号部３３３の入力Ａに入力される非ゼロ係数は、中間コードＣ３又はＣ２である。第３符号部３３３の入力Ｚに入力されるゼロランレングスは、値が０又は中間コードＣ２である。第４符号部３３４の入力Ａに入力される非ゼロ係数は、中間コードＣ３である。第４符号部３３４の入力Ｚに入力されるゼロランレングスは、値が０である。第４符号部３３４は、中間コードセットの中間コードＣ３，Ｃ２，Ｃ１，Ｃ０全てが非ゼロ係数であるときのみ動作し、ハフマン符号を出力する。
【００６９】
第１符号部３３１、第２符号部３３２、第３符号部３３３及び第４符号部３３４の入力Ａは、非ゼロ係数である。４組の中間コードからなる中間コードセットのうち、非ゼロ係数は、下位側の非ゼロ係数から上位側の非ゼロ係数の順で、第１符号部３３１→第２符号部３３２→第３符号部３３３→第４符号部３３４の順番で入力Ａの入力に割り当てられる。
【００７０】
第１符号部３３１の入力Ｚは、ゼロランレングスであり、第１符号部３３１の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。第２符号部３３２の入力Ｚは、ゼロランレングスであり、第２符号部３３２の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。第３符号部３３３の入力Ｚは、ゼロランレングスであり、第３符号部３３３の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。第４符号部３３４の入力Ｚは、ゼロランレングスであり、第４符号部３３４の入力Ａに入力される非ゼロ係数の直前のゼロランレングスである。
【００７１】
セレクタ３２１，３２２，３２３，３２４，３２５，３２６における入力の切り替えは、中間コードに含まれるＩＤに基づいて行われる。セレクタ３２１，３２２，３２３，３２４，３２５，３２６は、中間コードセットが入力されると、中間コードセットに含まれるＩＤ３、ＩＤ２、ＩＤ１、ＩＤ０、ＩＤ３＿ｄの組み合わせによって、入力Ａ及び入力Ｚの入力を切り替える。ＩＤの組合せと、入力される中間コードの種類の関係を図１１に示す。図１１は、ＩＤの組合せと、入力される中間コードの種類の関係を示す表である。
【００７２】
例えば、組合せが（ＩＤ３，ＩＤ２，ＩＤ１，ＩＤ０，ＩＤ２＿ｄ）＝（１，０，１，１，０）であれば、Ｃ３が非ゼロ係数、Ｃ２がゼロランレングス、Ｃ１が非ゼロ係数、Ｃ０が非ゼロ係数、１クロック前のＣ３＿ｄがゼロランレングスである。このとき、図１１に示すように、第１符号部３３１には、入力ＡとしてＣ０が入力され、入力Ｚとして１クロック前のＣ３＿ｄが入力される。第２符号部３３２には、入力ＡとしてＣ１が入力され、入力Ｚとして値０が入力される。第３符号部３３３には、入力ＡとしてＣ３が入力され、入力ＺとしてＣ２が入力される。第４符号部３３４は使用しない。
【００７３】
連結部３４１は、第１符号部３３１、第２符号部３３２、第３符号部３３３、第４符号部３３４から出力されたハフマン符号をビット単位での結合を行う。例えば、第１符号部３３１から出力されるハフマン符号が１１bitであり、第２符号部３３２から出力されるハフマン符号が５bitであり、第３符号部３３３及び第４符号部３３４からハフマン符号が出力されないときは、連結部３４１は、１６bitの結合したハフマン符号を出力する。
【００７４】
本変更例によれば、可変長符号化の前段で、ＤＣＴ係数の非ゼロ係数、ゼロランレングス及びそれぞれの識別子（ＩＤ）からなる中間コードを生成する。そして、中間コードを４つ組み合わせて１組の中間コードセットとし、符号部を４つ設けることによって、符号化に要する処理クロック数を１／３以下に抑えることができる。
【００７５】
（第２の実施形態）
次に、図１２を参照して、本発明の第２の実施形態に係る画像符号化装置２００について説明する。図１２は、本実施形態に係る画像符号化装置２００の構成を示すブロック図である。
【００７６】
画像符号化装置２００は、例えば、２次元ＤＣＴ部４０１と、第１バッファ４０２−１，４０２−２と、ジグザグスキャン部４０３−１，４０３−２と、量子化部４０４−１，４０４−２と、中間コード生成部４０５−１，４０５−２と、第２バッファ４０６−１，４０６−２と、可変長符号化部４０７などからなる。
【００７７】
本実施形態の画像符号化装置２００は、第１の実施形態の画像符号化装置１００と異なり、第１バッファ４０２−１，４０２−２から、第２バッファ４０６−１，４０６−２までの各機能ブロックが並列して２系統で構成される。第１バッファ４０２−１，４０２−２と、ジグザグスキャン部４０３−１，４０３−２と、量子化部４０４−１，４０４−２と、中間コード生成部４０５−１，４０５−２と、第２バッファ４０６−１，４０６−２の構成及び作用は、第１の実施形態の第１バッファ１０２と、ジグザグスキャン部１０３と、量子化部１０４と、中間コード生成部１０５と、第２バッファ１０６と同様であるため、詳細な説明は省略する。
【００７８】
２次元ＤＣＴ部４０１は、画像データをＤＣＴ変換して、８×８画素のブロック毎に８×８のＤＣＴ係数ブロックを生成する。２次元ＤＣＴ部４０１は、生成したＤＣＴ係数ブロックを交互に第１バッファ４０２−１と第１バッファ４０２−２に出力する。図１３は、本実施形態の画像符号化装置２００の動作を示すタイミングチャートである。図１３における「ＢＬＫ」とはブロックの略である。
【００７９】
２次元ＤＣＴ部４０１は、第１の実施形態の２次元ＤＣＴ部１０１に比べて、例えば２倍速で行う。例えば２次元ＤＣＴ部４０１は、１つのＤＣＴ係数ブロックを３２クロック以内で処理する。
【００８０】
第１バッファ４０２−１，４０２−２から、第２バッファ４０６−１，４０６−２までの各機能ブロックが並列して２系統で構成されることで、ジグザグスキャンから中間コード生成までの処理について、実質１ＤＣＴ係数ブロックを３２クロック以内で処理できる。
【００８１】
そして、可変長符号化部４０７は、中間コードに基づいて、ＤＣＴ係数をハフマン符号化する。可変長符号化部４０７は、第１の実施形態の可変長符号化部１０７と同様に、符号部を複数有するため、符号化に要するクロック数をデータ数の１／２以下に抑えることができる。従って、ジグザグスキャンから中間コード生成までの処理を、実質１ＤＣＴ係数ブロックを３２クロック以内で処理したとしても、可変長符号化部４０７は、１つのＤＣＴ係数ブロックの符号化を終えた後に、次のＤＣＴ係数ブロックの符号化を開始することができる。
【００８２】
よって、第２の実施形態によれば、第１の実施形態のように符号化だけでなく、例えばＪＰＥＧ全体の符号化を２倍速で行うことができる。図１４は、従来の画像符号化装置の動作を示すタイミングチャートである。従来は、可変長符号化の処理クロック数は、２次元ＤＣＴの処理クロック数と同じであった。
【００８３】
なお、ジグザグスキャンから中間コード生成までの処理が並列して３系統以上で行われ、その系統数に合わせて、可変長符号化部４０７が符号部を３つ以上有する場合は、更に、ＪＰＥＧ全体の符号処理を短縮することができる。
【００８４】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００８５】
【図１】本発明の第１の実施形態に係る画像符号化装置の構成を示すブロック図である。
【図２】８×８のＤＣＴ係数ブロック、及びＤＣＴ係数ブロックにおけるジグザグスキャンを示す説明図である。
【図３】同実施形態の第２バッファに格納される中間コードの配置を示す説明図である。
【図４】時系列順に配置された量子化後のＤＣＴ係数（Ａ）と、量子化後のＤＣＴ係数から生成した中間コード（Ｂ）を示す説明図である。
【図５】第２バッファと、第２バッファから中間コードを読み出す可変長符号化部を示すブロック図である。
【図６】同実施形態の可変長符号化部を示すブロック図である。
【図７】ＩＤの組合せと、入力される中間コードの種類の関係を示す表である。
【図８】同実施形態の可変長符号化部の変更例を示すブロック図である。
【図９】ＩＤの組合せと、入力される中間コードの種類の関係を示す表である。
【図１０】符号化を行う可変長符号化部の変更例を示すブロック図である。
【図１１】ＩＤの組合せと、入力される中間コードの種類の関係を示す表である。
【図１２】本発明の第２の実施形態に係る画像符号化装置の構成を示すブロック図である。
【図１３】同実施形態の画像符号化装置の動作を示すタイミングチャートである。
【図１４】従来の画像符号化装置の動作を示すタイミングチャートである。
【符号の説明】
【００８６】
１００，２００      画像符号化装置
１０１，４０１      ２次元ＤＣＴ部
１０２，４０２−１，４０２−２      第１バッファ
１０３，４０３−１，４０３−２      ジグザグスキャン部
１０４，４０４−１，４０４−２      量子化部
１０５，４０５−１，４０５−２      中間コード生成部
１０６，４０６−１，４０６−２      第２バッファ
１０７，４０７      可変長符号化部
１１０      分離部
１１１      遅延部
１２１，１２２，２２１，２２２，２２３，２２４，３２１，３２２，３２３，３２４，３２５，３２６      セレクタ
１３１，２３１，３３１      第１符号部
１３２，２３２，３３２      第２符号部
１４１，２４１，３４１      連結部
２３３，３３３      第３符号部
３３４      第４符号部
【図１】
2010130213.tif 000003
【図２】
2010130213.tif 000004
【図３】
2010130213.tif 000005
【図４】
2010130213.tif 000006
【図５】
2010130213.tif 000007
【図６】
2010130213.tif 000008
【図７】
2010130213.tif 000009
【図８】
2010130213.tif 000010
【図９】
2010130213.tif 000011
【図１０】
2010130213.tif 000012
【図１１】
2010130213.tif 000013
【図１２】
2010130213.tif 000014
【図１３】
2010130213.tif 000015
【図１４】
2010130213.tif 000016