"画像を構造的に異なるサイズの複数のブロックに分割し、分割ブロック単位ごとに変換と可変長符号化を伴う符号化処理を行う画像符号化装置であって、所定の構造単位に含まれる分割ブロックを対象分割ブロックとして構造順に取得する取得手段と、前記対象分割ブロックを変換し、可変長符号化して可変長符号化係数データを生成する生成手段と、前記可変長符号化係数データを並び替える制御手段とを有することを特徴とする画像符号化装置。画像を構造的に異なるサイズの複数のブロックに分割し、分割ブロック単位ごとに変換と可変長符号化を伴う符号化処理を行う画像符号化装置における画像符号化方法であって、所定の構造単位に含まれる分割ブロックを対象分割ブロックとして構造順に取得する取得工程と、前記対象分割ブロックを変換し、可変長符号化して可変長符号化係数データを生成する生成工程と、前記可変長符号化係数データを並び替える制御工程とを有することを特徴とする画像符号化方法。複数サイズの直交変換ブロックが混在する画像の復号処理において、同一サイズの直交変換ブロックの係数データ復号処理は、同一サイズの直交変換ブロックの組を作って並列演算処理を容易に実行できる。しかし、同一サイズの直交変換ブロックの係数データが連続して入力されない場合には、同一サイズブロックの組を作ることが難しく、並列演算処理を実行することが難しかった。したがって、本発明は上述した課題を解決するためになされたものであり、並列演算処理を容易に実行することを目的としている。上述の問題点を解決するため、本発明の画像符号化装置は以下の構成を有する。すなわち、画像を構造的に異なるサイズの複数のブロックに分割し、分割ブロック単位ごとに変換と可変長符号化を伴う符号化処理を行う画像符号化装置であって、所定の構造単位に含まれる分割ブロックを対象分割ブロックとして構造順に取得する取得手段と、前記対象分割ブロックを変換し、可変長符号化して可変長符号化係数データを生成する生成手段と、前記可変長符号化係数データを並び替える制御手段とを有する。復号処理において、同一サイズの直交変換ブロックの可変長符号化係数データが連続して入力されるため、同一サイズブロックの組を作ることが容易となり、並列演算処理を容易に実行することが可能となる。以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。<実施形態1>画像の符号化方法について図1、図2、図3、図8、図9を参照して説明する。図9は、本実施形態における符号化方法を含んだ符号化プログラムを実行するための構成を示している。本符号化プログラムはハードディスク装置以下、HDDと略す903に記録されており、RAM902にロードされ、以下で示される各ステップをCPU901が実行する符号化処理がなされる。テンポラリーバッファと出力バッファは、ソフトウェアとしてのメモリ領域としてRAM902内に生成される。入力画像データはHDD903から読みだされ、符号化データはRAM902内の出力バッファを介して、HDD903に記録されるものとする。このとき、符号化データが順に出力バッファへ出力されることにより、決められたデータ構造に従った符号化データの並びであるストリームが生成されることになる。図2は、フレームを縦横64画素からなる格子で区切った格子ブロックをラスター順に処理し、フレーム全体を符号化するフレーム符号化方法を示すフローチャートである。なお、画像フレームの符号化にあたり、プロファイルやレベル、画像の幅や高さなどの画像の属性データを符号化したシーケンスヘッダー情報を符号化しておくものとする。また、画像が複数のフレームから構成される動画データの場合には、図2で説明される画像フレーム符号化処理が、複数のフレームに対して連続的に行われるものとする。S200は、フレームヘッダー情報を生成するステップである。S201は、ラスター順に処理対象の格子ブロック画像を取得するステップである。S202は、処理対象の格子ブロック画像に対し、格子ブロック符号化処理を実行するステップである。S203は、フレーム内の全格子ブロック処理の終了を判定するステップである。以下、処理の流れを説明する。S200は、フレームヘッダー情報を生成する。フレームヘッダー情報は、イントラインターなどのフレームタイプなど、フレームの符号化ごとに変化する符号化属性データを符号化した符号の集合である。S201では、ラスター順に処理対象の格子ブロック画像として64×64の画像を取得する。第一回目の処理は画像左上のブロックであり、S201が実行されるごとにラスター順に次のブロックが取得される。S202は、S201で取得した処理対象の格子ブロック画像に対し、図3の説明で後述する格子ブロック符号化フローを実行するステップである。S203は、フレーム内の全格子ブロックの処理を判定し、全ての格子ブロックの処理が終了していれば処理を終了し、終了していなければ、S201、S202を繰り返し実行する。これにより、フレームのストリームとして、図12aのように、フレームヘッダー情報の後に複数の格子ブロック符号化データが並ぶデータ構造を持つストリームが生成される。また、格子ブロック符号化データは、図13aのように格子ブロックヘッダー情報と可変長係数データからなる。図13についての詳細は後述する。図3は、図2のS202で実行される格子ブロックの符号化フローを示すフローチャートである。S301は、対象格子ブロックの予測モードを決定し、対象格子ブロックのブロックデータ残差データを生成するステップである。S302は、対象格子ブロック分割構造を決定するステップである。S303は、対象格子ブロックのヘッダ情報を生成するステップである。S304は、可変長符号化係数データ生成フローを実行するステップである。以下、処理の流れを説明する。S301では、フレーム内予測、動き補償予測を実行して、対象格子ブロックの予測モードを決定し、同時に、格子ブロックのブロックデータ残差データを生成する。本実施形態で、ブロックデータ残差データとは、フレーム内予測や動き補償予測で作られる予測画像と原画のブロックごとの差分画像であり、ここでは、格子ブロックのブロックデータ残差データは、64×64のデータとなる。S302では、格子ブロックのブロックデータ残差データの分割構造を決定する。本実施形態では、分割ブロックサイズは、64×64分割なしであるが、便宜上分割ブロックとして表現するものとする、32×32、16×16、8×8とする。ここでの分割構造の決定とは、格子ブロックを構造的に分割したサイズの異なる直交変換ブロックの最適な組み合わせを決めるということであり、様々なブロックの組み合わせのコストを算出し、もっともコストの低いものを選択することで分割構造を決定できる。その分割構造は、領域四分木構造で表現され、例えば、図7のように分割されることになる。S303では、予測モード情報と分割構造情報を生成して、格子ブロックヘッダー情報として出力バッファへ出力する。予測モード情報は、予測モードイントラブロックであるかインターブロックなどとそれに付随するサブデータ動きベクトルなどを符号化したものである。本実施形態では、分割構造情報は1ビットのフラグの情報として表現される。例えば、格子ブロックが図7のように分割され、ブロックを分割の有無を示す分割フラグを分割する場合1、分割しない場合0と表現すると、各階層のブロックごとの分割フラグは、図8のように表現される。図8において、数値は分割フラグを示し、-はフラグが不要なことを示し、括弧内の数値は、構造順の順番を表す。本実施形態では、構造順とは、ブロック単位では左上、右上、左下、右下の順とし、階層単位では四分木構造を前順で走査する順番をあらわすものとする。この分割フラグを構造順に走査すると、64×64ブロックは分割されるため1、32×32の左上ブロックは分割されるため1、16×16の左上ブロックは分割されないため0、16×16の右上ブロックは分割されないため0などのように走査されることになる。よって、この分割フラグを構造順に走査して並べた分割構造情報は1101000011000と表現される。なお、8×8ブロックは、これ以上分割しないため、分割フラグを挿入しない。分割フラグが1のブロックは、内包する分割ブロックが係数データを持つため、それ自体は係数データを持たないことになる。S304では、図1の説明で後述する可変長符号化係数データ生成フローを実行して、可変長符号化係数データを生成する。図1は、分割ブロックデータ残差データに対して、図3のS304で実行される可変長符号化係数データ生成フローを実行するフローチャートである。分割ブロックデータとは、格子ブロックのブロックデータ残差データを図3のS302で決定した分割構造に基づいて、分割したブロックのデータのことである。S101は、処理対象の分割ブロックデータ残差データを構造順に取得するステップである。S102は、処理対象の分割ブロックの可変長符号化係数データを生成するステップである。S103は、全ての分割ブロックが処理されたか否かを判定するステップである。S104は、全ての可変長符号化係数データをサイズ順に並び替えするステップである。以下、処理の流れを説明する。S101では、処理対象の分割ブロックデータ残差データを構造順に取得する。この分割ブロックデータ残差データは、S302で決定された分割構造に基づいて、S301で生成した格子ブロックの残差データの矩形領域を切りだすことにより取得できる。S102では、分割ブロックデータ残差データに対し、直交変換量子化可変長符号化を実行して可変長符号化係数データを生成し、テンポラリーバッファへ出力する。S103では、格子ブロック内の全ての分割ブロックが処理されたかを判定する。判定の結果、全ての分割ブロックが処理されていたらS104を実行し、分割ブロックが処理されていなければS101、S102を実行する。S101、S102は、全ての分割ブロックが処理されるまで、繰り返し実行される。S104は、格子ブロック内の全ての可変長符号化係数データに対し、その可変長符号化係数データの元となる直交変換ブロックサイズの大きい順を第一ファクター、構造順を第二ファクターとして、順にテンポラリーバッファから取り出し、出力バッファへ出力する。つまり、テンポラリーバッファの可変長符号化係数データをサイズ順に並び替えながら出力バッファへコピーしていることになる。格子ブロック内に存在する分割ブロックの可変長符号化係数データの生成後、直交変換ブロックサイズ順に並び替えるという処理を持つことにより、可変長符号化係数データがブロックサイズ順に並んだデータ構造を持つストリームを生成することができる。例えば、並び替えを実行せず、直接、構造順に可変長符号化係数データを出力した場合のストリームデータ構造は、図13のaのようになる。しかし、本実施形態におけるストリームデータ構造は、可変長符号化係数データが並び替えされるため、図13のbのように直交変換ブロックサイズ順に並ぶことになる。このストリームのデータ構造は、復号器へ同一サイズの直交変換ブロックの可変長符号化係数データを連続して入力することを可能とし、復号処理において同一サイズブロックの組を作ることが容易なため、逆量子化や逆直交変換など処理を並列に実行しやすくなる。なお、本実施形態では、格子ブロックを予測単位とし、格子ブロックが複数の直交変換ブロック構造的に内包するように説明しているが、これに限定されない。例えば、格子ブロックを符号化単位ブロックにさらに分割し、分割された符号化単位ブロックが構造的に直交変換ブロックを持つ構成をとっても、本実施形態で示した効果は同様にえることができる。また、並び替えの単位を格子ブロックとして説明したが、スライスなど複数の格子ブロックの集合を単位として、その集合単位で可変長符号化係数データを並び替えたり、格子ブロックをさらに分割した分割ブロック単位ごとに並び替えをしてもよい。また、可変長符号化係数データは、その元となる直交変換ブロックの大きさを第一ファクターとして並び替える形で説明したが、それに限定されず、小さい順などで並び替えてもよい。また、本実施形態では、S102で直交変換量子化可変長符号化を実施する形で説明している。しかし、S301で、直交変換、量子化、可変長符号化、逆量子化、逆直交変換、可変長符号化を実行して、再構築画像を生成し、再構築画像と原画の差分と可変長符号化による符号量からラグランジュ乗数を用いたコスト計算を行う構成をとってもよい。その際に、可変長符号化により生成した可変長符号化係数データを保存しておき、S102では、分割ブロックデータ残差データの符号化する代わりに該当ブロックに対応する可変長符号化係数データを取得して、出力バッファへ出力する構成をとっても同様の効果をえることができる。さらに、本実施形態では符号化されたデータはHDD903に記録される例をとって説明したが、これに限定されず、通信インターフェース905を解して通信回路に送信したり、外部記録装置に接続し、可搬メディアに記録してももちろん構わない。本実施形態における符号化方法は、図9の変代わりに、図10のように、直交変換器1003、量子化器1004、可変長符号化器1005といった専用のハードウェアを持った構成で行われてもよい。このとき、直交変換、量子化、可変長符号化ステップがCPU1001により実行されるのでなく、CPU1001が各処理をそれぞれのハードウェアに実行させること以外は、図1で示されるフローと同様である。<実施形態2>画像の復号方法について図4、図5、図6、図9を参照して説明する。図9は、本実施形態における復号化方法を含んだ復号プログラムを実行するための構成を示しており、HDD903に記録されたプログラム、RAM902にロードされ、以下で示される各ステップをCPU901が実行することにより復号処理がなされる。なお、入力データはHDD903から読みだされ、生成された画像データは、VRAM904を介して、ディスプレーで出力されるものとする。また、CPU901は、512ビット幅のレジスタを持ったSIMD演算器を持ち、16ビットのデータを同時に32サンプル処理できる機能を持つものとする。図5は、フレームを縦横64画素からなる格子で区切った格子ブロックをラスター順に復号し、画像フレーム符号化処理を示すフローである。なお、画像フレームを復号する前に、プロファイルやレベル、画像の幅や高さなどの画像の属性データを符号化したシーケンスヘッダー情報を復号しておくものとする。また、ストリームが複数のフレームから構成される動画データの場合には、図5で説明される画像フレーム復号処理が、複数のフレームに対して連続的に行われる。S500は、フレームヘッダー情報を復号するステップである。S501は、ラスター順に処理対象格子ブロックの符号化データを取得するステップである。S502は、処理対象格子ブロックの符号化データに対し、格子ブロック復号フローを実行するステップであるS503は、フレーム内の全格子ブロックの復号処理終了を判定するステップである。以下、処理の流れを説明する。S500は、フレームヘッダー情報を復号し、フレームタイプを取得する。S501では、ラスター順に処理対象格子ブロックの符号化データを取得する。第一回目の処理は画像左上の格子ブロックの符号化データの取得であり、以下、S501が実行されるごとに、ラスター順に次の格子ブロック符号化データが取得される。S502は、S501で取得した処理対象の格子ブロック符号化データに対し、図6の説明で後述する格子ブロックの復号フローを実行する。S503は、フレーム内の全格子ブロックの処理の終了を判定し、全ての格子ブロックの処理が終了していれば処理を終了し、終了していなければ、S501、S502を実行する。このように、全格子ブロックの処理が終了するまで、S501、S502は繰り返し実行される。図6は、図5のS502でから実行され、格子ブロックの復号画像を生成する格子ブロック復号処理を示すフローチャートである。格子ブロック符号化データは、図13のように、格子ブロックヘッダー情報と複数の可変長符号化係数データからなるデータである。S601は、格子ブロックヘッダー情報を復号するステップである。S602は、分割ブロック復号フローを実行し、格子ブロックの残差データを生成ステップである。S603は、格子ブロックの予測画像データを生成するステップである。S604は、予測画像データと残差データから復号画像を生成するステップである。以下、処理の流れを説明する。S601は、格子ブロックのヘッダー情報を復号する。S602は、図4で説明される分割ブロック復号フローを実行し、残差データを生成する。S603は、S601で生成したヘッダー情報から、格子ブロックの予測モードを取得し、その予測モードに従って、フレーム内予測や動き補償を実行し、予測画像データを生成する。S604は、予測画像データと残差データから復号画像を生成する。図4は、図6のS604で示された、格子ブロックの残差データを生成する分割ブロック復号フローを示してものである。S401は、分割ブロックデータ残差データの後述の再配置データを取得するステップである。S402は、処理対象の分割ブロックの可変長符号化係数データを入力順に取得するステップである。S403は、可変長符号化係数データから分割ブロックデータを生成するステップである。S404は、分割ブロックデータ残差データを配置するステップである。S405は、全ての分割ブロックが処理されたかを判定するステップである。以下、処理の流れを説明する。S401では、分割ブロックデータ残差データの再配置データを分割ブロックごとに取得する。再配置データとは、サイズ順に並んだ可変長符号化係数データと、可変長符号化係数データに対応する分割ブロックデータ残差データの領域四分木構造に基づいた格子ブロック内の位置とそのブロックサイズの対応関係を示す情報である。例えば、図7のように分割された場合、再配置データは図18のような、可変長符号化係数データに対応する分割ブロックデータ残差データのブロック番号とブロックサイズ、格子ブロックデータ残差データ内の位置を座標で表現したものからなる。また、再配置データは、格子ブロックヘッダー情報に埋め込まれた分割構造情報をパースすることによってえられる。図8を用いて分割構造情報のパースの仕方について説明する。図8は、図7の分割構造に対し、分割階層ごとの分割の状態を示してものである。分割構造情報は、本実施形態では1101000011000といったビット列で表現され、各ビットが分割フラグの状態を示している。図8の数値は分割フラグを示し、-はフラグが不要なことを示し、内の数値は、ブロック番号であり、分割構造情報のビットの順番に当たる。第0番ビットの値は1でありこれは0番ブロック64×64が分割されることを示す。0番ブロック64×64が分割されているため、第1番ビットは1番ブロック32×32の分割状態を示し1であるためこれも分割されている。1番ブロック32×32は分割されているため、第2番ビットは2番ブロック16×16の分割状態を示し、0であるため分割されていない。第3ビットは3番ブロック16×16の分割状態を示し、1であるため分割されている。このように処理を続けることにより、領域四分木構造を再構築することができる。次にサイズ順に並んだ可変長符号化係数データと領域四分木構造に基づいた各分割ブロックの対応関係について説明する。可変長符号化係数データは、大きい順に並び替えが行われた状態で、ストリームに格納されているとすると、図13bのように、格納されることになる。図7における32×32ブロックのうち構造順に第1のブロックは7番ブロックであり、図13bにおいて格納順に第1の係数データは、7番ブロックの可変長符号化係数データ7にあたる。図7において32×32ブロックのうち構造順に第2のブロックは8番ブロックであり、図13bにおいて格納順に第2の可変長符号化係数データは、8番ブロックの可変長符号化係数データにあたる。図7において構造順に第3のブロックは、16×16のブロックになり、構造順に第1番目の16×16ブロックは、0番ブロックであたり、図13bにおいて格納順に第3の係数データ0は、0番ブロックの係数データにあたる。このように処理を続けることにより、可変長符号化係数データと、そのサイズと格子ブロック内での位置が特定され、再配置データが生成できる。S402は、対象の分割ブロックの可変長符号化係数データを入力順に取得する。このとき、同時に並列処理可能な数の可変長符号化係数データを取得する。例えば、画像データの1サンプルが16ビットとすると、512ビットのSIMD演算器は、8サンプルのデータを同時に演算でき、64×64、32×32、16×16、8×8の直交変換ブロックを、それぞれ、1、1,2,4の数だけ並列に処理できる。ただし、64×64ブロックを処理する場合には、画像データ一行は64サンプルであり、SIMD演算レジスタが512ビットでは足らないため、2つのレジスタを使って、二回の計算を実施することになる。S403では、S402で取得した複数の可変長符号化係数データに対して、可変長復号を行い、逆量子化、逆直交変換を行って、分割ブロックデータ残差データを生成する。このとき、逆量子化、逆直交変換は、SIMD演算器を使って同時に実行する。S404では、再配置データに基づいて、対象の分割ブロックデータ残差データを格子ブロックの残差データとして配置していく。ここでの配置とは、格子ブロックの残差データ64×64を格納するメモリ領域の再配置データが示す位置に残差データを矩形としてコピーすることである。例えば、図7のような分割構造をもつ格子ブロックがブロックサイズの大きい順に配置されていくことになる。S405では、全ての分割ブロック処理が終了したかを判定する。判定の結果、全ての分割ブロックが処理されていたら処理を終了し、分割ブロックが処理されていなければ処理が終わるまで、S402~S404を実行する。処理が終了すると、格子ブロックの残差データ64×64が生成されることになる。このような実施形態をとることにより、実施形態1で説明した符号化方法により生成したストリームを復号することができる。さらに、同一サイズの可変長符号化係数データが連続して入力されることにより、効率的にSIMD演算を実行することができる。例えば、図14のaおよび図14のbは、図7で示される分割構造において、逆直交変換の入力データとなる係数データを512ビット32サンプルごとに組み合わせた例であり、上段が同時実行可能なサンプル数、下段が係数データの大きさを示している。図14のaのように係数が並び替えされていないブロックをSIMD演算する場合、係数データ16×16の処理は、同時に係数データ16×16を処理できる。しかし、2つの係数データ16×16の組が構成できないため、16サンプル同時演算となる個所が存在する。係数データを-で表現する個所は、ダミーデータを入力して演算を行うことになる。一方、図14のbは、同一サイズの係数データが連続するため、同一サイズの係数データの組を作りやすく、ダミーデータを使った無駄な演算が減り、SIMD演算の効率があがる。本実施形態では符号化されたデータがHDD903に記録される例をとって説明したが、これに限定されず、通信インターフェース905を解して通信回路に受信したり、外部記録装置に接続し、可搬メディアから入力しても構わない。本実施形態における復号方法は、図9の代わりに、図11のように、逆直交変換器1103、逆量子化器1104、逆可変長符号化器1105といった専用のハードウェアを持った構成状で行われてもよい。このとき、逆直交変換、逆量子化、可変長復号化ステップがCPU1101により実行されるのでなく、CPU1101が各処理をそれぞれのハードウェアに実行させること以外は、図2で示されるフローと同様である。このとき、逆直交変換器や逆量子化器は、内部に複数の演算ユニットを持つことにより、同時に複数のブロックデータを処理でき、スループットが向上する。<実施形態3>分割ブロックの可変長符号化係数データ生成に関して、図15を使って説明する。なお、とくに、記述がない場合、その構成および各ステップの動作は、実施形態1と同様とする。本実施形態では、可変長符号化係数データの並び替えを行うかどうかを示す情報を並び替え情報を定義する。本実施形態では、分割ブロックの可変長符号化係数データ生成に先だって、図2のS200で生成するフレームヘッダー情報に含まれる並び替え情報符号を復号して並び替え情報を得る。並び替え情報は、本実施形態では、並び替える場合を実施する場合には1を、並び替えを実施しない場合には0となる1ビットの並び替え情報符号を挿入するものとするが、これに限定されない。つまり、フレームヘッダー情報は、図12bのようになる。なお、並び替えを行うか否かの判断は、ユーザー指定により行われる。本符号化方法により生成されるストリームは、特にソフトウェアがSIMDを使って復号処理を実施する場合に、有効な技術である。そのため、ユーザーが復号のターゲットとしてSIMDを使うソフトウェアと判断した場合には、並び替え情報符号に1を、そうでない場合には0を挿入するといった形になる。図15は、分割ブロックの可変長符号化係数データ生成するフローチャートである。本フローは、図3のS304において、図1で説明されるフローの代わりに実行される。S1501は、並び替え情報を取得するステップである。S1502は、可変長符号化係数データを並び替えるか否かを判定するステップである。S1503は、可変長符号化係数データをコピーするステップである。以下、ステップの流れについて詳細に説明する。S1501では、並び替え情報の取得するステップである。本実施形態では、ユーザーがあらかじめ指定した情報を取得する。S1502は、並び替え情報に従って可変長符号化係数データを並び替えるかを判定し、並び替えを行うと判断した場合にはS104を実行し、並び替えをしないと判断した場合には、S1503を実行する。S1503は、格子ブロック内の全ての可変長符号化係数データを、その構造順に、テンポラリーバッファから取り出し、出力バッファへ順に出力する。つまり、単純にコピーする工程となる。本実施形態では、フレームヘッダーに、並び替え情報を符号として埋め込んだがそれに限定されず、シーケンス、スライス、格子ブロックなどのヘッダーに並び替え情報を埋め込んでもよい。図17はシーケンスヘッダー情報の例であるが、図17bのようにシーケンスヘッダーに並び替え情報を埋め込んでもよい。また、並び替え情報符号そのものをストリームに挿入するのでなく、例えばソフトウェアデコーダ向けプロファイルを定義して、プロファイルに応じてそこから並び替え情報を生成してもよい。プロファイルは、図17aのように、シーケンスヘッダー情報にそのプロファイルIDが埋め込むことにより識別される。例えば、S1501では、符号化ストリームのプロファイルがソフトウェアデコーダ向けと設定された場合には、並び替えをするという並び替え情報を取得し、そうでない場合には並び替えをしないという並び替え情報を取得するという構成をとるといった構成である。また、符号化に先立ち、復号側と通信を行い、復号側がSIMDを使ったソフトウェアであるか否かを問い合わせ、SIMDを使っている場合に本発明を適用しても良い。本実施形態では、一旦処理対象の分割データを可変著符号化してからテンポラリーバッファに保持した後に並び替えを行う手法を用いて説明したが、これに限定されない。開始直後に並び替え情報を取得し、構造順に分割ブロックデータを符号化しつつ、並び替え情報によって出力先を変更しても良い。例えば、並び替え情報が1の時には、可変著符号化データはテンポラリーバッファで保持される。格子ブロック内の全ての分割ブロックデータの符号化が終了した後、出力バッファへのテンポラリーバッファからの読み出し順を変えることで並び替えを実現する。並び替え情報が0の時は出力バッファに直接出力しても構わない。この場合、コピーの動作が不要にできる。<実施形態4>図16は、格子ブロックの残差データを生成する分割ブロック復号フローを示してものである。本実施形態では、分割ブロックの可変長符号化係数データ生成に先だって、図5のS500で復号するフレームヘッダー情報に並び替え情報が含まれ、フレームヘッダーの復号時にその並び替え情報が復号されるものとして説明する。本実施形態では、並び替える場合を実施する場合には1を、並び替えを実施しない場合には0となる1ビットの並び替え情報符号が挿入されているとして説明するが、これに限定されない。例えば、フレームヘッダー情報は、図12bのようになっている。S1601は、並び替え情報を取得するステップである。S1602は、並び替え情報に従って、可変長符号化係数データを並び替えられているかを判定するステップである。以降、処理の流れについて説明する。S1601では、フレームヘッダー情報に含まれていた並び替え情報を取得する。S1602では、S1601で取得した並び替え情報に基づいて、可変長符号化係数データを並び替えられているかを判定する。並び替えられていると判定された場合にはS401を実行して再配置データを取得し、並び替えられていないと判定された場合には、S401を実行しない。S404では、再配置データに基づいて、格子ブロック64×64の残差データとして、分割ブロックデータ残差データ配置する。並び替えがなされず再配置データが取得しない場合には、構造順に分割ブロックデータ残差データを配置する。"