(57)【特許請求の範囲】
【請求項１】
画像を構成するブロックを周波数変換し、得られた変換係数から符号化ストリームを生成する画像符号化装置であって、
並列に配置され、前記変換係数から１つ以上の符号を含む符号群を生成する複数の符号群生成手段と、
並列に配置され、それぞれが、前記符号群生成手段が生成した符号群を構成する各符号を連結し、部分符号化ストリームを生成する複数の第１の符号連結手段と、
並列に配置され、それぞれが、前記第１の符号連結手段から入力した部分符号化ストリームを記憶する複数の記憶手段と、
前記複数の記憶手段にそれぞれ記憶されている、部分符号化ストリームを読み出し、連結することで、前記符号化ストリームを生成し、出力する第２の符号連結手段とを備え、
前記複数の記憶手段の各々は、前記第２の符号連結手段による着目ブロックの符号化ストリームを生成するための各部分符号化ストリームの読み出しと、前記第１の符号連結手段による前記着目ブロックの次のブロックの部分符号化ストリームの書き込みとを並列して行うため、少なくとも２つのメモリで構成され、
前記第２の符号連結手段によって前記着目ブロックの最後の部分符号化ストリームと、前記着目ブロックの次のブロックの先頭の部分符号化ストリームとを連結する場合にあっては、当該着目ブロックの最後の部分符号化ストリームの終端を格納したメモリ、及び、前記着目ブロックの次のブロックの先頭の部分符号化ストリームを格納したメモリが、それぞれに記憶されたデータを前記第２の符号連結手段に同時に出力する
ことを特徴とする画像符号化装置。
【請求項２】
画像を構成するブロックを周波数変換し、得られた変換係数から符号化ストリームを生成する画像符号化装置であって、
並列に配置され、前記変換係数から１つ以上の符号を含む符号群を生成する複数の符号群生成手段と、
並列に配置され、それぞれが、前記符号群生成手段の２つ以上が生成した符号群を構成する各符号を連結し、部分符号化ストリームを生成する複数の第１の符号連結手段と、
並列に配置され、それぞれが、前記第１の符号連結手段から入力した部分符号化ストリームを記憶する複数の記憶手段と、
前記複数の記憶手段にそれぞれ記憶されている、部分符号化ストリームを読み出し、連結することで、前記符号化ストリームを生成し、出力する第２の符号連結手段とを備え、
前記複数の記憶手段の各々は、前記第２の符号連結手段による着目ブロックの符号化ストリームを生成するための各部分符号化ストリームの読み出しと、前記第１の符号連結手段による前記着目ブロックの次のブロックの部分符号化ストリームの書き込みとを並列して行うため、少なくとも２つのメモリで構成され、
前記第２の符号連結手段によって前記着目ブロックの最後の部分符号化ストリームと、前記着目ブロックの次のブロックの先頭の部分符号化ストリームとを連結する場合にあっては、当該着目ブロックの最後の部分符号化ストリームの終端を格納したメモリ、及び、前記着目ブロックの次のブロックの先頭の部分符号化ストリームを格納したメモリが、それぞれに記憶されたデータを前記第２の符号連結手段に同時に出力する
ことを特徴とする画像符号化装置。
【請求項３】
前記第２の符号連結手段は、前記複数の記憶手段の１つから部分符号化ストリームと、次に連結する部分符号化ストリームを記憶している他の記憶手段から前記部分符号化ストリームとを読み出し、読出した部分符号化ストリームを連結し、出力することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記複数の記憶手段それぞれは、前記部分符号化ストリームを予め定められた領域に記憶し、且つ、部分符号化ストリームの境界を識別するための境界データ検出手段を備え、
前記第２の符号連結手段は、前記境界データ検出手段の検出結果に基き、部分符号化ストリームどうしを連結することを特徴とする請求項３に記載の画像符号化装置。
【請求項５】
前記少なくとも２つのメモリの各々は、少なくとも１つの読み込み用のポート及び１つの書込み用のポートを有することを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項６】
画像を構成するブロックを周波数変換し、得られた１ブロック分の変換係数から符号化ストリームを生成する画像符号化装置の制御方法であって、
複数の符号群生成手段が、
並列に実行可能であって、前記変換係数から１つ以上の符号を含む符号群を生成する複数の符号群生成工程と、
複数の第１の符号連結手段が、
並列に実行可能であって、前記複数の符号群生成工程で生成された符号群を構成する各符号を連結し、部分符号化ストリームを生成し、複数の記憶手段それぞれに格納する複数の第１の符号連結工程と、
第２の符号連結手段が、
前記複数の記憶手段それぞれに記憶されている、部分符号化ストリームを読み出し、連結することで、前記符号化ストリームを生成し、出力する第２の符号連結工程とを有し、
前記複数の記憶手段の各々は、前記第２の符号連結手段による着目ブロックの符号化ストリームを生成するための各部分符号化ストリームの読み出しと、前記第１の符号連結手段による前記着目ブロックの次のブロックの部分符号化ストリームの書き込みとを並列して行うため、少なくとも２つのメモリで構成され、
前記第２の符号連結手段によって前記着目ブロックの最後の部分符号化ストリームと、前記着目ブロックの次のブロックの先頭の部分符号化ストリームとを連結する場合にあっては、当該着目ブロックの最後の部分符号化ストリームの終端を格納したメモリ、及び、前記着目ブロックの次のブロックの先頭の部分符号化ストリームを格納したメモリが、それぞれに記憶されたデータを前記第２の符号連結手段に同時に出力する
ことを特徴とする画像符号化装置の制御方法。
【請求項７】
画像を構成するブロックを周波数変換し、得られた変換係数から符号化ストリームを生成する画像符号化装置の制御方法であって、
複数の符号群生成手段が、
並列に実行可能であって、前記変換係数から１つ以上の符号を含む符号群を生成する複数の符号群生成工程と、
複数の第１の符号連結手段が、
並列に実行可能であって、それぞれが、前記符号群生成工程の２つ以上が生成した符号群を構成する各符号を連結し、部分符号化ストリームを生成する複数の第１の符号連結工程と、
複数の記憶手段が、
並列に実行可能であって、それぞれが、前記第１の符号連結工程から入力した部分符号化ストリームを記憶する複数の記憶工程と、
第２の符号連結手段が、
前記複数の記憶工程でそれぞれ記憶されている、部分符号化ストリームを読み出し、連結することで、前記符号化ストリームを生成し、出力する第２の符号連結工程とを有し、
前記複数の記憶手段の各々は、前記第２の符号連結手段による着目ブロックの符号化ストリームを生成するための各部分符号化ストリームの読み出しと、前記第１の符号連結手段による前記着目ブロックの次のブロックの部分符号化ストリームの書き込みとを並列して行うため、少なくとも２つのメモリで構成され、
前記第２の符号連結手段によって前記着目ブロックの最後の部分符号化ストリームと、前記着目ブロックの次のブロックの先頭の部分符号化ストリームとを連結する場合にあっては、当該着目ブロックの最後の部分符号化ストリームの終端を格納したメモリ、及び、前記着目ブロックの次のブロックの先頭の部分符号化ストリームを格納したメモリが、それぞれに記憶されたデータを前記第２の符号連結手段に同時に出力する
ことを特徴とする画像符号化装置の制御方法。
【請求項８】
コンピュータに読み込ませ実行させることで、前記コンピュータに、請求項６又は７に記載の方法の各工程を実行させるためのプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの符号化技術に関するものである。
【背景技術】
【０００２】
静止画、動画の符号化では、一般に、画像データは所望の矩形サイズのタイルに分割され、各タイルはさらに、予め定められたサイズの複数のマクロブロック（ＭＢ）に分割される。このＭＢを符号化の処理単位とし、ＭＢを構成するデータには直交変換、量子化、係数予測が順に施される。係数予測後のデータにはさらに、スキャン変換が施され、２次元データから有意係数（非零データ）と、非有意係数（零データ）、すなわち零ランレングスとからなる一次元データへと変換される。このようにして並びかえた１次元データからは、複数のシンタックス要素が生成され、各シンタックス要素がエントロピー符号化される。最後に、エントロピー符号化によって生成された種々の符号を、符号化方式ごとに定められた順序で連結することで符号化ストリームが生成される。
【０００３】
上記のように、複数のシンタックス要素からそれぞれ符号を生成し、符号化ストリームとして連結する符号化方式において、その符号化、連結処理を高速に行う符号化装置として、特許文献１が挙げられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１５７６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術を適用した画像符号化装置の構成を図２に示す。画像符号化装置は、ブロック記憶部２０１、Ｎ個のシンタックス要素生成部２０２−１乃至２０２−Ｎ、Ｎ個の符号生成部２０３−１乃至２０３−Ｎ、Ｎ個の可変長符号記憶部２０４−１乃至２０４−Ｎ、符号連結部２０５から構成される。
【０００６】
この画像符号化装置には、ブロック単位の変換係数が入力され、ブロック記憶部２０１に一時的に記憶される。ブロック記憶部２０１は少なくとも２ブロックの変換係数が記憶可能なオルタネートバッファで構成されるため、読み出し、書き込みの処理をブロック単位で同時並行して行うことができる。Ｎ個のシンタックス要素生成部２０２−１乃至２０２−Ｎは、ブロック記憶部２０１から読み出した１ブロック分の変換係数（画像データ）から、複数のシンタックス要素を並列に生成する。Ｎ個の符号生成部２０３−１乃至２０３−Ｎは、Ｎ個のシンタックス要素生成部２０２−１乃至２０２−Ｎが生成したシンタックス要素を、符号化テーブルを用いて可変長符号化する。Ｎ個の符号生成部２０３−１乃至２０３−Ｎによる符号化で生成された各符号は、シンタックス要素の種類ごとにＮ個の可変長符号記憶部２０４−１乃至２０４−Ｎに記憶される。符号連結部２０５は、Ｎ個の可変長符号記憶部２０４−１乃至２０４−Ｎに記憶された各符号を連結し、符号化ストリームを生成する。Ｎ個の可変長符号記憶部２０４−１乃至２０４−Ｎを構成する個々の可変長符号記憶部も、少なくとも２ブロック分の符号が記憶可能なオルタネートバッファで構成される。
【０００７】
以上、複数のシンタックス要素の符号化と、各符号の連結とがブロック単位でパイプライン処理可能であり、高速に符号化可能な画像符号化装置を実現している。
【０００８】
しかしながら、従来技術における画像符号化装置の処理性能は、そのシンタックス要素数によって決定されてしまうという問題がある。まず、Ｎ個の可変長符号記憶部２０４−１乃至２０４−Ｎを構成する個々の可変長符号記憶部の、符号の記憶方法を図３（ａ）に示す。個々の可変長符号記憶部は、一つのシンタックス要素の符号化結果（符号）を一つのアドレスに格納している。したがって、１ブロックの変換係数の符号化によって、ｎ個のシンタックス要素が生成された場合、その符号は、符号量に関わり無く、Ｎ個の可変長符号記憶部２０４上の、ｎ個のアドレスに記憶されることになる。したがって、符号連結部２０５は、これらの符号を連結するために、可変長符号記憶部２０４−１乃至Ｎの中のｎ個から読み出し処理を行う必要がなる。つまり、個々の符号化データの符号長とは無関係に、ｎ回の読出しを行なわなければならない。結果として、１ブロックあたりのシンタックス要素数（符号数）が増えるほど、その符号連結に要する時間が増加することとなる。
【０００９】
以上から、従来技術は、多数のシンタックス要素を符号化するＪＰＥＧ  ＸＲ符号化方式などに適用した場合、符号連結に要する処理時間が増加するため、その効果を享受できない問題がある。
【００１０】
本発明はこのような問題に鑑みてなされ、複数のシンタックス要素が存在する場合においても、そのシンタックス要素数の個数の影響を少なくし、符号化処理の高速化を実現できる画像符号化技術を提供しようとするものである。
【課題を解決するための手段】
【００１１】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像を構成するブロックを周波数変換し、得られた変換係数から符号化ストリームを生成する画像符号化装置であって、
並列に配置され、前記変換係数から１つ以上の符号を含む符号群を生成する複数の符号群生成手段と、
並列に配置され、それぞれが、前記符号群生成手段が生成した符号群を構成する各符号を連結し、部分符号化ストリームを生成する複数の第１の符号連結手段と、
並列に配置され、それぞれが、前記第１の符号連結手段から入力した部分符号化ストリームを記憶する複数の記憶手段と、
前記複数の記憶手段にそれぞれ記憶されている、部分符号化ストリームを読み出し、連結することで、前記符号化ストリームを生成し、出力する第２の符号連結手段とを備え、
前記複数の記憶手段の各々は、前記第２の符号連結手段による着目ブロックの符号化ストリームを生成するための各部分符号化ストリームの読み出しと、前記第１の符号連結手段による前記着目ブロックの次のブロックの部分符号化ストリームの書き込みとを並列して行うため、少なくとも２つのメモリで構成され、
前記第２の符号連結手段によって前記着目ブロックの最後の部分符号化ストリームと、前記着目ブロックの次のブロックの先頭の部分符号化ストリームとを連結する場合にあっては、当該着目ブロックの最後の部分符号化ストリームの終端を格納したメモリ、及び、前記着目ブロックの次のブロックの先頭の部分符号化ストリームを格納したメモリが、それぞれに記憶されたデータを前記第２の符号連結手段に同時に出力することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、画像を構成するブロックを周波数変換して得られた変換係数から、当該ブロックの符号化ストリームを生成する間にかかる時間をこれまでより短縮でき、符号化処理を高速化できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の基本構成図。
【図２】従来技術を適用した画像符号化装置の構成図。
【図３】符号化データの格納処理を示す図。
【図４】デジタルカメラのブロック図。
【図５】画像符号化部、及び復号部のブロック図。
【図６】第１の実施形態におけるＨ．２６４エントロピー符号化装置のブロック図。
【図７】第２の符号連結部の符号連結処理のフローチャート。
【図８】ブロック記憶部のブロック図。
【図９】第２の実施形態におけるＪＰＥＧ  ＸＲエントロピー符号化ブロック図。
【図１０】可変長符号群生成部のブロック図。
【図１１】ブロック記憶部周辺のブロック図。
【図１２】ＪＰＥＧ  ＸＲのマクロブロック、ブロックの分割方法を示す図。
【図１３】ＪＰＥＧ  ＸＲの符号化ストリーム構成を示す図。
【図１４】変換係数分割部における係数分割方法を示す図。
【図１５】スキャン変換後の係数の配置の一例を示す図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。
【００１５】
［第１の実施形態］
まず、本実施形態が産業上利用され得る形態として、画像を符号化する機能、符号化された画像を復号する機能を有する画像処理装置について説明する。画像を符号化する機能は、デジタルカメラやデジタルカムコーダが有する撮像素子から読み出された画像や、ネットワークを介して受信した画像を、符号化対象とする。
【００１６】
ここでは、図４の構成を有するデジタルカメラを例に説明する。撮像対象の像は、レンズ４０１を介して、ＣＣＤやＣＭＯＳセンサなどの撮像素子４０２上に結像される。撮像素子４０２は、この結像された像をアナログ信号に変換し、このアナログ信号を後段のＡ／Ｄ変換器４０３に送出する。Ａ／Ｄ変換器４０３は、撮像素子４０２から受けたアナログ信号をデジタル信号に変換する。メモリ制御回路４０７は、この変換されたデジタル信号をデータ（画像データ）としてＡ／Ｄ変換器４０３から取得すると、この画像データを画像処理部４０４に送出する。画像処理部４０４は、この画像データに対して周知の画像補間処理や色変換処理などを施す。
【００１７】
メモリ制御回路４０７は、画像処理部４０４による処理後の画像データをこの画像処理部４０４から取得すると、この取得した画像データをメモリ４０５に格納する。メモリ４０５は、撮像された静止画像や動画像のデータを一時的に格納するためのメモリであって、所定枚数の静止画像（所定フレーム数分の静止画像）を格納するための領域を有する。このメモリ４０５は読み込み書き込み可能なメモリであるので、メモリ制御回路４０７は、メモリ４０５に対するデータ書き込み専用の複数のメモリ制御部と、メモリ４０５に対するデータ読み出し専用の複数のメモリ制御部と、を有する。
【００１８】
メモリ４０５に格納された画像データはメモリ制御回路４０７によって再度読み出され、Ｄ／Ａ変換器４０８と符号化部４１１に送出される。Ｄ／Ａ変換器４０８は、この画像データをアナログ信号に変換し、この変換したアナログ信号を画像表示部４０９に送出する。これにより、画像表示部４０９の表示画面上には、このアナログ信号が示す画像（撮像された画像）が表示される（再生される）ことになる。
【００１９】
一方で、符号化部４１１は、メモリ制御回路４０７から受けた画像データ（入力画像）から符号化ストリームを生成する。メモリ制御回路４０７は、符号化部４１１が生成した符号化ストリームを記憶媒体４０６に記録する。記憶媒体４０６には、ＳＤカード等の、画像処理装置に着脱可能なリムーバブルな媒体が利用される。
【００２０】
ここで、このデジタルカメラには、ユーザが操作する為のモードダイアル４１５が備わっている。モードダイアル４１５は、撮像モード、再生モードの何れかを選択するためのものである。ユーザがモードダイアル４１５を操作して撮像モードを選択すると、システム制御部４１２は画像処理装置を構成する各部の動作制御を行い、撮影処理が開始可能な状態になる。即ち、レンズ４０１を介して得た像の画像データに基づく画像を画像表示部４０９に表示させる。さらに、モードダイアル４１５は撮影モードが選択された状態で、撮影記録スイッチ４１３が投入されると、撮影処理が開始される。即ち、レンズ４０１を介して得た像の画像データを符号化し、符号化ストリームとして記憶媒体４０６に記録する処理を実現する。
【００２１】
一方、ユーザがモードダイアル４１５を操作して再生モードを選択すると、システム制御部４１２は画像処理装置を構成する各部の動作制御を行い、以下に説明する各処理を実現する。
【００２２】
メモリ制御回路４０７は、記憶媒体４０６に記録されている符号化ストリームを順次読み出し、読み出した符号化ストリームを復号部４１０に送出する。復号部４１０は、メモリ制御回路４０７から受けた符号化ストリームを復号する。復号部４１０には、復号された画像を１枚、ＲＯＭ４１４には、画像処理装置の設定データや、システム制御部４１２による実行対象のコンピュータプログラムが格納されている。更に、ＲＯＭ４１４には、以下に説明する処理において既知のデータとして説明するものについても格納されている。即ち、システム制御部４１２は、このＲＯＭ４１４に格納されているコンピュータプログラムやデータを用いて処理を実行することで、デジタルカメラを構成する各部の動作制御を行う。これにより、本実施形態に係るデジタルカメラは、以下に説明する各処理を実現することになる。
【００２３】
図５（ａ）は、符号化部４１１の詳細な機能構成例を示すブロック図である。図５（ａ）に示した各部はハードウェアでもって構成されているものとするが、その一部、若しくは全部をコンピュータプログラムで実現しても良い。
【００２４】
符号化部４１１に１枚の画像データが入力されると、タイル分割部５０１は入力した画像データを１以上のタイルに分割し、個々のタイルをＭＢ分割部５０２に出力する。ＭＢ分割部５０２は、入力した１つのタイルデータを、符号化処理単位となるマクロブロック（ＭＢ）に分割し、個々のＭＢに対して直交変換部５０３が直交変換（周波数変換）し、その結果を出力する。この結果、直交変換部５０３以降の処理は、ＭＢ単位で処理が施される。以下では、１つのＭＢを符号化する為の符号化の動作について説明するが、同様の動作は、他のＭＢに対しても行われる。
【００２５】
直交変換部５０３は入力したＭＢデータに対して直行変換を施し、色空間データから周波数空間の変換係数を出力する。さらに、量子化部５０４において、変換係数を量子化して、変換係数のダイナミックレンジを小さくする。量子化された変換係数は、係数予測部５０５において、フレーム間もしくはフレーム内予測することで、さらに変換係数の強度を削減する。そして、量子化および、係数予測が施された変換係数は２次元データとしてスキャン変換部５０６に入力される。スキャン変換部５０６は、２次元の変換係数をスキャンして、その変換係数を符号化効率が高い１次元データに並べ替え、出力する。このようにして並びかえた１次元データをエントロピー符号化部５０７において、エントロピー符号化することで符号化ストリームが生成される。
【００２６】
次に、復号部４１０を図５（ｂ）を用いて説明する。なお、同図に示した各部はハードウェアでもって構成されているものとするが、その一部若しくは全部をコンピュータプログラムで実現しても良い。
【００２７】
復号部４１０には、画像毎の符号化ストリームが入力される。エントロピー復号部５０８は、入力された符号化ストリームの符号を復号し、まず、変換係数予測誤差データを得る。復号された変換係数予測誤差データには、逆スキャン変換部５０９において、逆スキャン変換を施すことで、１次元スキャン順序から２次元スキャン順序を得る。次に、係数予測部５１０において、変換係数予測誤差データに予測誤差を加算し、量子化変換係数を得る。その後、逆量子化部５１１において逆量子化を、逆直交変換部５１２において逆直交変換をそれぞれ施して、色空間データに復元する。以上の処理によってＭＢデータが復元できる。ＭＢ結合部５１３は、各ＭＢデータを結合して１つのタイルを復元する。タイル結合部５１４は、各タイルを結合し、画像に復元する。
【００２８】
以上、一連の手順により、復号部４１０は、符号化ストリームから画像を再構成し、再構成画像をメモリ制御回路４０７へ送出する。なお、各復号部の処理については周知であるので、これ以上の説明は省略する。また、以下説明する実施形態は、上述した符号化部４１１にあって、エントロピー符号化を高速に処理する本発明を、具体的に実施した場合の一例を示すものである。
【００２９】
本発明を適用した画像符号化装置のエントロピー符号化部５０７の基本的構成を図１に示す。図示の通り、エントロピー符号化部５０７は、並列に配置された複数個（Ｍ個；Ｍは２以上の整数）の符号群生成部１０１−１乃至１０１−Ｍを有する。同様に、エントロピー符号化部５０７は、並列に配置されたＮ個の第１の符号連結部１０２−１乃至１０２−Ｎ、及び、Ｎ個の記憶部１０３−１乃至１０３−Ｎを有する。そして、エントロピー符号化部５０７は更に、１つの第２の符号連結部１０４を有する。また、符号群生成部１０１−１は、Ｋ個（Ｋは１以上の整数）のシンタックス要素生成部１１０−１乃至１１０ーＫとＬ個の符号生成部１１１−１乃至１１１−Ｌから構成される。ここで、必ずしもＫ＝Ｌである必要はない。符号群生成部１０１−２乃至１０１−Ｍも同様である。符号群生成部１０１−１乃至１０１−Ｍは、互いに並列に実行可能であり、第１の符号連結部１０２−１乃至１０２−Ｎも互いに並列に実行可能である。なお、符号群生成部１０１−１乃至１０１−Ｍそれぞれが互いに、同数のシンタックス要素生成部、符号生成部から構成される必要はない。しかし、説明を簡単なものとするため、図１では符号群生成部１０１−１乃至１０１−Ｍそれぞれを構成するシンタックス要素生成部と符号生成部の数は同じであるものとして説明する。また、以下の説明で、特に断りの無い限り、Ｍ個の符号群生成部１０１−１乃至１０１−Ｍ中の１つを、単に符号群生成部１０１と表わす。また、第１の符号連結部１０２、記憶部１０３と表わした場合にも同様の意味である。また、これ以降、第１の符号連結部１０２が所定の単位で連結した符号化ストリームを部分符号化ストリームと呼称する。
【００３０】
符号群生成部１０１の中の各シンタックス要素生成部は、符号化対象となるシンタックス要素を１つ生成し、それを対応する符号生成部に出力する。各符号生成部は、符号化テーブルを用いて可変長の符号化データ（符号）を第１の符号連結部１０２に出力する。
【００３１】
第１の符号連結部１０２は、符号群生成部１０１内の少なくとも１つの符号群生成部から出力された複数の符号化データ（符号）を連結し、部分符号化ストリームを生成し、その結果を記憶部１０３に出力し、記憶させる。記憶部１０３は、オルタネートバッファで構成され、書き込み用と読出し用とが交互に切り換わる。従って第１の符号連結部１０２が、連結した部分符号化ストリームを記憶部１０３に格納している最中には、第２の符号連結部１０４が、前回のブロックの連結済み部分符号化ストリームを読出すことが可能である。
【００３２】
ここで、１つの第１の符号連結部１０２が連結した部分符号化ストリームの総ビット数をｍ、記憶部１０３内の１アドレスに格納できるビット数をＷとする。この場合、第２の符号連結部１０４は、その記憶部１０３内の全部分符号化ストリーム（全符号化データ）を読出すためには、次式（１）で求まる回数だけ、読出し処理を行えば良い。
┌（ｍ／Ｗ）┐    …（１）
（ここで、┌ｘ┐は、実数ｘ以上で最小の整数を返す演算記号を示す）
【００３３】
第２の符号連結部１０４は、記憶部１０３−１乃至１０３−Ｎのそれぞれに格納された部分符号化ストリームを読出し、１つの符号化ストリームを生成し、出力することになる。従って、第２の符号連結部１０４が読出す総回数は、記憶部１０３−１乃至１０３−Ｎそれぞれに対して上記式（１）で決定した読出し回数の合計数となる。つまり、第２の符号連結部１０４がＮ個の記憶部１０３−１乃至１０３−Ｎから読み出す回数は、シンタックス要素数（符号数）に依存せず、各記憶部１０３−１乃至１０３−Ｎに格納された部分符号化ストリームの符号量に依存した回数となる。
【００３４】
上記を図２と図１とを比較して分かりやすく説明する。ここでは、説明を簡単なものとするため、Ｍ＝Ｎ＝４として説明する。さらに、各符号群生成部は、Ｋ＝Ｌ＝４として説明する。
【００３５】
この条件の場合、図２のシンタックス要素生成部は１６個存在することになる。また、１ブロック分の変換係数から生成されたシンタックス要素の数も１６個あったとする。
【００３６】
さて、可変長符号記憶部２０４−１乃至２０４−１６には、それぞれ符号が格納されることになる。従って、符号連結部２０５は、可変長符号記憶部２０４−１乃至２０４−１６それぞれから符号（符号化データ）を読出すことが必要になり、その読出しのためのアクセス回数は計１６回となる。つまり、図２の構成の場合、１つのブロックの符号化ストリームを生成するためには、個々の符号の符号長とは無関係に発生したシンタックス要素の個数である「１６」回の読出しに係る時間が必要となる。
【００３７】
一方、同じ条件を実施する場合、図１の構成では、１つの符号群生成部１０１が４組のシンタックス要素生成部と符号生成部で構成され（Ｋ＝Ｌ＝４の場合である）、第１の符号連結部１０２も計４個必要になる（Ｍ＝Ｎ＝４の場合である）。第１の符号連結部１０２−１乃至１０２−４は互いに並列に符号を連結するわけであるから、それぞれが連結処理に費やす時間は最大でも４回の読出し処理にかかる時間となる。また書き込みに要する時間は、連結する符号の符号量に依存した時間となり、符号数には依存しない。第２の符号連結部１０４は、記憶部１０３−１乃至１０３−４に格納された部分符号化ストリームを読出し、それらを連結して最終的なストリームを生成し出力する。この処理に要する時間は、シンタックス要素数（符号数）とは無関係に、記憶部１０３−１乃至１０３−４に格納された符号量に依存した時間となる。ただし、この第２の符号連結部１０４による連結処理中、符号群生成部１０１−１乃至１０１−４及び第１の符号連結部１０２−１乃至１０２−４は、次のブロックのシンタックス要素の符号化処理及び連結処理を行うことができる。すなわち、第２の符号連結部１０４の連結処理にかかる時間は、符号群生成部１０１−１乃至１０１−４及び第１の符号連結部１０２−１乃至１０２−４における処理時間で吸収されることになる。
【００３８】
ここで、本実施形態をＨ．２６４符号化方式のエントロピー符号化（ＣＡＶＬＣ方式）に適用した場合の構成を図６に示す。図６は図１において、Ｍ＝５、Ｎ＝５とした場合の構成に相当し、５個の符号群生成部は、それぞれＫ＝１，Ｌ＝１の構成である。
【００３９】
入力された変換係数は、まずブロック記憶部６０１にブロック単位で記憶される。符号生成部６０２は、入力された変換係数と、すでにブロック記憶部６０１に記憶された変換係数とを用いて、シンタックス要素を生成し、符号化する。符号生成部６０２で生成されるシンタックス要素はＬｅｖｅｌ、Ｃｏｅｆｆ＿Ｔｏｋｅｎ、Ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ（Ｔｒａｉｌｉｎｇ  Ｏｎｅｓ  Ｓｉｇｎ  ｆｌａｇ）、ＴｏｔａｌＺｅｒｏｓ、ｒｕｎ＿ｂｅｆｏｒｅの５つである。各シンタックス要素の生成方法の詳細は特許文献１にも記載されているので、ここでは割愛する。
【００４０】
第１の符号連結部６０３は、符号生成部６０２で生成された各符号を、シンタックス要素の種類ごとにそれぞれ連結し、シンタックス要素ごとの部分符号化ストリームを生成する。
【００４１】
可変長符号ブロック記憶部６０４は、第１の符号連結部６０３で連結されたシンタックス要素ごとの５つの部分符号化ストリームをブロック単位で記憶する。
【００４２】
第２の符号連結部６０５は、可変長符号ブロック記憶部６０４に記憶されているシンタックス要素ごとの部分符号化ストリームをブロック単位で順次呼び出し、連結し、符号化ストリームとして出力する。
【００４３】
第２の符号連結部６０５の動作を図７のフローチャートを用いて説明する。
【００４４】
なお、説明を容易にするため、図７中のｋ番目、ｋ＋１番目のブロックの符号化ストリームが、それぞれＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号、Ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ可変長符号のブロック符号化ストリームに対応する場合を例に説明する。ここで、両者の部分符号化ストリームが、どちらも同一の１ブロックの符号化によって得られたものであっても、異なる記憶領域に記憶されていることから、図７においては、別々のブロック（ｋ番目、ｋ＋１番目のブロック）とみなして、説明する。
【００４５】
符号化ストリームの連結が開始されると、第２の符号連結部６０５は、まず可変長符号ブロック記憶部６０４のＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号ブロック記憶部から、予め連結された符号化ストリームを取得する（Ｓ１０１）。次に、取得した部分符号化ストリームがＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号の最後の部分符号化ストリームか否かを判定する（Ｓ１０２）。部分符号化ストリームが、Ｃｏｅｆｆ＿Ｔｏｋｅｎ可変長符号の最後の部分符号化ストリームでない場合（ＮＯの場合）、取得したストリームを連結し（Ｓ１０３）、再びＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号ブロック記憶部から部分符号化ストリームを取得する。
【００４６】
Ｓ１０２の判定結果がＹＥＳの場合、さらに最後のブロックであるか否かの判定を行う（Ｓ１０４）。Ｓ１０４の判定結果がＮＯの場合、次に取得した部分符号化ストリームが、データ幅（図３のデータ幅Ｗ）と等しいかを判定する（Ｓ１０８）。判定結果がＮｏの場合、部分符号化ストリームの取得先をＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号ブロック記憶部から、Ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ可変長符号ブロック記憶部に変更する（Ｓ１０５）。さらにＴｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ可変長符号ブロック記憶部から、Ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ可変長符号の最初の部分符号化ストリームを取得する（Ｓ１０６）。最後に、既に取得済みのＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号の最後の部分符号化ストリームと、Ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ可変長符号の最初の部分符号化ストリームとを連結する（Ｓ１０３）。
【００４７】
Ｓ１０８において、判定結果がＹＥＳだった場合、取得したＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号の最後の部分符号化ストリームを連結する（Ｓ１０９）。その後、部分符号化ストリームの取得先をＣｏｅｆｆ＿Ｔｏｋｅｎ可変長符号ブロック記憶部から、Ｔｒａｉｌｉｎｇ＿ｏｎｅｓ＿ｓｉｇｎ可変長符号ブロック記憶部に変更する（Ｓ１１０）。
【００４８】
Ｓ１０４の判定結果がＹＥＳの場合、取得した最後の部分符号化ストリームを連結・出力し、連結終了となる。
【００４９】
ここで、可変長符号ブロック記憶部６０４を構成する個々の可変長符号ブロック記憶部は、少なくとも２ブロック分の部分符号化ストリームを記憶できる容量を持つ。２ブロックの部分符号化ストリームを記憶可能な場合、部分符号化ストリームの記憶領域をブロック単位で切り替え可能なオルタネートバッファで構成する。オルタネートバッファ構成であるため、ブロック記憶部への読み出し・書き込みを並行して行うことが可能である。
【００５０】
また、可変長符号ブロック記憶部６０４を構成する個々のブロック記憶部が、２ブロック以上の記憶容量を持つ場合の構成を図８に示す。図８は、図７のＳ１０１において、同一の可変長符号ブロック記憶部からもｋ＋１番目のブロックの部分符号化ストリームを取得可能とした構成であり、記憶容量が２ブロックの場合を示している。
【００５１】
ブロック記憶部８０１は、可変長符号ブロック記憶部６０４の個々のブロック記憶部（例えば、ＬＥＶＥＬ可変長符号ブロック記憶部）に相当し、読み込み用、書き込み用のポートをそれぞれ２つ有する。記憶領域８０２、８０３はそれぞれが１ブロックの部分符号化ストリームの記憶領域である。記憶領域８０２、８０３にはそれぞれ、ｋ番目、ｋ＋１番目のブロックの部分符号化ストリームが記憶されており、読み込み、書き込みのアドレス制御はアドレス制御部８０４が行う。
【００５２】
アドレス制御部８０４は、２つの記憶領域に対して、同時に書き込み、読み出し可能な制御を行う。従って、記憶領域８０２からｋ番目のブロックの部分符号化ストリームの最後のストリームを出力する場合、記憶領域８０３からｋ＋１番目のブロックの部分符号化ストリームの最初のストリームも出力することが可能である。
【００５３】
以上から、第２の符号連結部６０５は、図７に示したＳ１０１の処理において、ｋ番目のブロックの部分符号化ストリームの最後のストリームと、ｋ＋１番目のブロックの部分符号化ストリームの最初のストリームの両方を取得可能となる。
【００５４】
図８は記憶容量を２ブロックとしたが、これは一例であり、２ブロック以上の記憶容量を持つ場合にも適用可能である。
【００５５】
［第２の実施形態］
次に、第２の実施形態として、本発明をＪＰＥＧ  ＸＲ符号化方式におけるエントロピー符号化に適用した場合について説明する。
【００５６】
ＪＰＥＧ  ＸＲ符号化方式のエントロピー符号化は、係数予測後の変換係数を上位データ、下位データに分割し、上位データには可変長符号化を施し、下位データは固定長データ（固定長符号）として処理（固定長符号化）する。ＪＰＥＧ  ＸＲ符号化方式ではＭＢをさらに小さいブロックへと分割し、このブロック単位で符号化を行う（図１２）。また、可変長符号（図１３のＶＬＣ）と、固定長データ（図１３中のＦＬＣ）とをブロック（図１３のＢｌｏｃｋ）毎に交互に挿入する符号化ストリームが定義されている（図１３）。
【００５７】
本第２の実施形態を図９に示す。第２の実施形態は、図１において、Ｍ＝４、Ｎ＝２とした場合の構成に相当する。４個の符号群生成部は、２個の可変長符号群生成部と、２個の固定長データ生成部とからなる。２つの可変長符号群生成部は、それぞれＫ＝７、Ｌ＝１０の構成である。２つの固定長データ生成部は、それぞれＫ＝１、Ｌ＝１の構成である。
【００５８】
図９において、符号群生成部９１４が、図１におけるＭ個の符号群生成部１０１に相当する。また、第１の符号連結部９１５がＮ個の第１の符号連結部１０２に、二つのブロック記憶部９１６がＮ個の記憶部１０３にそれぞれ相当する。
【００５９】
変換係数分割部９０１には、１つのブロックを構成する変換係数が１つ、又は２つが同時に入力され、格納される。変換係数分割部９０１では、変換係数を、Ｍｏｄｅｌｂｉｔｓ制御信号で示されるビット数の下位ビットで表される下位データと、下位ビットより上位のビットで表される上位データに分割する（図１４）。なお、Ｍｏｄｅｌｂｉｔｓ制御信号で示されるビット数は０乃至１５の範囲内である。このビット数が０の場合、入力された変換係数は分割せず、すべて上位データとして処理を行う。
【００６０】
変換係数分割部９０１には、１つのブロックを構成する変換係数が１つ、又は２つが同時に入力され、格納される。変換係数分割部９０１では、変換係数を、Ｍｏｄｅｌｂｉｔｓ制御信号で示されるビット位置より上位ビットで表わされる上位データと、Ｍｏｄｅｌｂｉｔｓ制御信号で示されるビット位置を含む下位ビットで表わされる下位データに分割する（図１４）。なお、Ｍｏｄｅｌｂｉｔｓ制御信号で示されるビット位置は０乃至１５の範囲内である。
【００６１】
２つに分割された変換係数のうち、上位データには、適応スキャン変換部９０２において、ブロック毎にスキャン順序が更新されるスキャン変換を施す。次にＲＵＮ／ＬＥＶＥＬシンボル生成部９０３において、ＲＵＮシンボル、ＬＥＶＥＬシンボルをそれぞれ生成し、ＭＢ記憶部９０４に格納する。ＭＢ記憶部９０４は少なくとも２つ以上のＭＢデータを記憶する容量を持ち、オルタネートバッファとして動作する。このため、ＭＢ記憶部９０４への読み込み、書き込み動作は並列に行うことが可能である。可変長符号群生成部９０５は、ＭＢ記憶部９０４からＲＵＮ／ＬＥＶＥＬシンボルを読み出し、ふたつのシンボルからさらに複数のシンタックス要素を生成し、それらを符号化し、符号群として出力する。可変長符号群生成部９０６も同様である。
【００６２】
可変長符号群生成部９０５、９０６は、同一ブロック内の２つのＲＵＮ／ＬＥＶＥＬシンボルを並列に処理可能である。１ブロック内の偶数番目のＲＵＮ／ＬＥＶＥＬシンボルを可変長符号群生成部９０５が、奇数番目のＲＵＮ／ＬＥＶＥＬシンボルを可変長符号群生成部９０６が処理するといった処理が可能である。
【００６３】
ここで、可変長符号群生成部９０５、９０６の内部構成を、図１０に示す。同図において、ＩＮＤＥＸ生成部１００１は、ＲＵＮ／ＬＥＶＥＬシンボルからインデックス情報を生成し、出力する。ＩＮＤＥＸ符号化部１００２は、対応する符号化テーブルを用いて、このインデックス情報を可変長符号化し、その符号を出力する。また、同図におけるＬＥＶＥＬ閾値判定部１００３は、ＬＥＶＥＬの絶対値と閾値とを大小比較し、その結果を出力する。後段の処理において、生成されるシンタックス要素は、ＬＥＶＥＬ閾値判定部の判定結果に応じて決定される。ＡＢＳ_ＬＥＶＥＬ_ＩＮＤＥＸ生成部１００４は、２≦ＬＥＶＥＬ＜閾値の場合は、ＬＥＶＥＬに対する基準値（インデックス値）を生成し、ＬＥＶＥＬ≧閾値の場合はエスケープコードを生成する。ＡＢＳ_ＬＥＶＥＬ_ＩＮＤＥＸ符号化部１００５は、対応する符号化テーブルを用いて、ＡＢＳ_ＬＥＶＥＬ_ＩＮＤＥＸ生成部１００４の出力を可変長符号化する。ＬＥＶＥＬ_ＲＥＦ生成部１００６は、ＬＥＶＥＬ＜閾値の場合は、ＡＢＳ_ＬＥＶＥＬ_ＩＮＤＥＸ生成部１００４が生成したインデックス値に対する付加ビットを生成し、ＬＥＶＥＬ≧閾値の場合は、ＬＥＶＥＬから付加ビットを生成する。ＬＥＶＥＬ＿ＲＥＦ符号化部１００７は、ＬＥＶＥＬ＿ＲＥＦ生成部１００６が生成した付加ビットをそのまま符号として出力する。このとき、付加ビット長をＦＩＸＥＤ＿ＮＵＭ符号化部１００８、ＦＩＸＥＤ＿ＮＵＭ＿ＥＸＴ符号化部１００９、ＦＩＸＥＤ＿ＮＵＭ＿ＥＸＴ２符号化部１０１０に対して送出する。ＦＩＸＥＤ＿ＮＵＭ符号化部１００８、ＦＩＸＥＤ＿ＮＵＭ＿ＥＸＴ符号化部１００９、ＦＩＸＥＤ＿ＮＵＭ＿ＥＸＴ２符号化部１０１０は、ＬＥＶＥＬ≧閾値の場合にのみ、付加ビット長を符号化する。ＳＩＧＮ生成部１０２０は有意係数の正負に応じた符号ビットを出力し、ＳＩＧＮ符号化部１０１１は符号ビットをそのまま符号として出力する。
【００６４】
さらに、図１０を用いてＲＵＮの符号化を説明する。位置情報（ｉＬｏｃａｔｉｏｎ）保持部１０１２は、適応スキャン変換部９０２によって並び替えられた1次元データにおいて、ＲＵＮの開始位置の情報（ｉＬｏｃａｔｉｏｎ）を保持する。例えば、スキャン変換後の係数の並びが図１５の場合、有意係数９の後に連続するＲＵＮ（＝４）を符号化する場合、ｉＬｏｃａｔｉｏｎは７となる。位置情報保持部１０１２はさらに、ＲＵＮを符号化後、ｉＬｏｃａｔｉｏｎを次式（２）で更新する。
ｉＬｏｃａｔｉｏｎ＝ｉＬｏｃａｔｉｏｎ＋ＲＵＮ＋１  …（２）
【００６５】
閾値判定部１０１３は、更新前のｉＬｏｃａｔｉｏｎと閾値を比較し、その結果に応じて、後段の処理において生成するシンタックス要素を選択する。ｉＬｏｃａｔｉｏｎ≦閾値の場合、ＲＵＮ_ＩＮＤＥＸ生成部１０１４がＲＵＮに対するインデックス値を生成し、ＲＵＮ_ＩＮＤＥＸ符号化部１０１５がこのインデックス値を符号化し、符号を出力する。ＲＵＮ_ＲＥＦ生成部１０１６はＲＵＮ_ＩＮＤＥＸ生成部１０１４が生成したインデックス値に対する付加ビットを生成する。ＲＵＮ＿ＲＥＦ符号化部１０１８は、ＲＵＮ＿ＲＥＦ生成部１０１６が生成した付加ビットを、そのまま符号として出力する。このとき、ＲＵＮ_ＶＡＬＵＥ符号化部１０１７は符号化を行わない。ｉＬｏｃａｔｉｏｎ＞閾値の場合、ＲＵＮ_ＩＮＤＥＸ符号化部１０１５と、ＲＵＮ_ＲＥＦ符号化部１０１８は符号化を行わない。代わりに、ＲＵＮ＿ＶＡＬＵＥ生成部１０１９が、位置情報とＲＵＮの値に応じてデータを生成し、ＲＵＮ＿ＶＡＬＵＥ符号化部１０１７が、適切な符号化テーブルを選択し、このデータを符号化する。
【００６６】
以上、図９における可変長符号群生成部９０５、９０６はそれぞれ、最大１０種類の符号を同時に第１の符号連結部９０７へと出力する
次に、下位データの符号化について、図９に従って説明する。Ｍｏｄｅｌｂｉｔｓ制御信号によって分割された変換係数の下位データは、固定スキャン変換部９０９に供給される。この固定スキャン変換部９０９は、その下位データのスキャン変換を施す。ここで、固定スキャン変換部９０９へは、１ブロックを構成する変換係数の下位データが、１つ、もしくは２つが同時に入力される。固定スキャン変換部９０９において並び替えられたデータは、ＭＢ記憶部９１０に記憶される。ＭＢ記憶部９１０も、ＭＢ記憶部９０４と同様に、少なくとも２ＭＢのデータを記憶する容量を持ち、読み込み、書き込み動作を同時並行処理可能なオルタネートバッファとして動作する。固定長データ生成部９１４、９１５は、ＭＢ記憶部９１０から下位データを読み出す。固定長データ生成部９１４、９１５は、読み出した下位データに対応する上位データ（図１４）が０であった場合は、正負を表す符号ビットを下位データに付加し、固定長データとして第１の符号連結部９１１へと送出する。上位データが０でない場合は、下位データをそのまま固定長データとして第１の符号連結部９１１へと送出する。
【００６７】
第１の符号連結部における符号連結を図９で説明する。第１の符号連結部９０７は、可変長符号群生成部９０５、９０６から出力された符号群を連結し、ブロック毎の符号化ストリームを生成する。各符号の連結順序は図１３に示す順序である。第１の符号連結部９１１は、固定長データ生成部９１４、９１５の出力を連結し、ブロックごとの部分符号化ストリームを生成する。各符号の連結順序は同じく図１３で示した順序である。図１３において、固定長データは第一の符合連結部９１１への入力順に、ＤＡＴＡ１〜ＤＡＴＡ１５で表される。
【００６８】
第１の符号連結部９０７、９１１の出力である部分符号化ストリームはブロック記憶部９０８、９１２に記憶される。ブロック記憶部９０８、９１２の記憶方法は図３（ｂ）で既に説明しているので、割愛する。ブロック記憶部９０８、９１２の構成も第１の実施形態と同様に、オルタネートバッファ構成でも、図８に示した構成でもよい。
【００６９】
ここで、部分符号化ストリームのブロック毎の境界を検出する仕組みについて、図１１を用いて説明する。ブロック記憶部１１０３が図９のブロック記憶部９０８、９１２に相当する。ブロック記憶部１１０３の構成は、第一の実施形態と同様であるため、ここでの説明を省略する。境界データ検出部１１０１には、ブロック境界識別情報（符号化対象ブロックの輝度・色差、周波数成分、ＭＢ内におけるブロックアドレスの情報など）が入力され、この情報に基づき、ブロック毎の符号化ストリームの境界が検出される。この検出結果は、図７のＳ１０２の条件判定で用いられる。
【００７０】
アドレス制御部１１０２は、境界データ検出部１１０１の検出結果に基き、ブロック記憶部１１０３の入出力のアドレスを制御する。さらに、境界データ検出部１１０１が、ブロック境界を検出した場合、そのブロックの部分符号化ストリームの最後のストリームが記憶されたアドレスを識別するための情報を別途記憶しておく。
【００７１】
第２の符号連結部９１３（図９）は、ブロック記憶部９０８、９１２に保持されているブロックの部分符号化ストリームを、所定の順序で読み出し、連結し、画像の最終的な符号化ストリームとして出力する。第２の符号連結部９１３の詳細も、第１の実施形態と同様であるため、説明を省略する。
【００７２】
なお、図９では、ＭＢ記憶部９１０に記憶された下位データを、固定長データ生成部９１４、９１５で固定長データ化し、第１の符号連結部９１１で連結する構成である。だが、固定長データ生成部９１４、９１５と第１の符号連結部９１１をＭＢ記憶部９１０の前に配置し、ＭＢ記憶部９１０には、部分符号化ストリームを記憶する構成として実装してもよい。
【００７３】
以上、デジタルカメラへの適用を示し、さらにＨ．２６４符号化方式、ＪＰＥＧ  ＸＲ符号化方式について、第１、第２の実施形態として、本発明を適用した場合について説明した。しかし、本発明の適用はデジタルカメラに限定されるものではなく、また、他符号化方式へも適用可能であることも明らかである。さらに、本発明においては、第１の符号連結部へと入力される各符号の生成手段については、これを限定するものではない。加えて、図１に記載のＮ、Ｍ、Ｋ、Ｌの値は第１、第２の実施形態で指定した値に限定されるものではないことも明らかである。例えば、図９における第１の符号連結部９０７は、可変長符号群生成部９０５、９０６の２つの符号群生成部から出力された符号群を連結していたが、３つ以上の符号群生成部から出力された符号群を連結する場合にも適用できる。また例えば、第１の符号連結部９１１は、固定長データ生成部９１４、９１５の２つの符号群生成部から出力された符号群を連結していたが、３つ以上の符号群生成部から出力された符号群を連結する場合にも適用できる。また、本発明のすべて、もしくはその処理の一部をソフトウェアとして実装してもよい。特に、ソフトウェアで実行する場合、図１等に示す互いに並列に配置された処理部（例えばシンタックス要素生成部）は、マルチスレッドとして実行すれば良い。
【００７４】
以上説明したように本実施形態によれば、符号群生成部の処理性能と、符号連結部の処理性能とを、ブロック記憶部の容量に応じて独立させることが可能となる。
【００７５】
また、ブロック記憶部を用いて、符号連結を２段階に分けたことで、第１の符号連結部の処理性能は、符号群生成部の並列数によって決定される。つまり、並列数を上げることで高速化が可能となる。
【００７６】
記憶部には、ブロック単位で連結された部分符号化ストリームが格納される。第２の符号連結部の処理性能は、ブロック記憶部の記憶容量、ブロック記憶手段からの部分符号化ストリームの読み出しのデータ幅、及び、符号化ストリームの出力のデータ幅に応じて高速化が可能となる。従って、符号化の過程で生成されるシンタックス要素数に依存せずに、符号を連結することができ、画像符号化装置の高速化が可能となる。
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005489845.tif 000002
【図２】
0005489845.tif 000003
【図３】
0005489845.tif 000004
【図４】
0005489845.tif 000005
【図５】
0005489845.tif 000006
【図６】
0005489845.tif 000007
【図７】
0005489845.tif 000008
【図８】
0005489845.tif 000009
【図９】
0005489845.tif 000010
【図１０】
0005489845.tif 000011
【図１１】
0005489845.tif 000012
【図１２】
0005489845.tif 000013
【図１３】
0005489845.tif 000014
【図１４】
0005489845.tif 000015
【図１５】
0005489845.tif 000016