(57)【特許請求の範囲】
【請求項１】
画像データの符号化のため、予め設定された画素数で表わされるブロックを単位に直交変換するデータ変換装置であって、
直交変換対象の画像データを記憶する記憶手段と、
該記憶手段から前記ブロックを単位に読み込むアクセス手段と、
該アクセス手段を介して読出した、前記記憶手段に記憶された画像データにおける前記ブロックを入力して直交変換し、１つの直流成分のみを算出し、出力する第１の変換手段と、
前記アクセス手段を介して読出した前記ブロック、又は、前記第１の変換手段からの、前記ブロックに含まれる画素数と同数の直流成分のデータのいずれか一方を選択出力する選択手段と、
該選択手段が出力した前記ブロックに含まれる画素数と同数のデータを直交変換し、１つの直流成分又は複数の交流成分のいずれか一方を出力する第２の変換手段と、
前記アクセス手段、前記選択手段、前記第２の変換手段を制御して、
前記選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の変換手段に対しては直交変換で得られた１つの直流成分を出力させる第１の設定、
前記選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の変換手段に対しては直交変換で得られた複数の交流成分を出力させる第２の設定、
前記選択手段が前記アクセス手段により読み込んだ画像データのブロックを選択し、前記第２の変換手段に対しては直交変換で得られた複数の交流成分を出力させる第３の設定
のいずれかを実行させる制御手段と
を備えることを特徴とするデータ変換装置。
【請求項２】
画像データの符号化のため、予め設定された画素数で表わされるブロックを単位に直交変換するデータ変換装置であって、
直交変換対象の画像データを記憶する第１の記憶手段と、
該第１の記憶手段から前記ブロックを単位に読み込むアクセス手段と、
該アクセス手段を介して読出した、前記第１の記憶手段に記憶された画像データにおける前記ブロックを入力して直交変換し、１つのブロックから１つの直流成分のみを算出して、出力する第１の変換手段と、
前記アクセス手段を介して読出した前記ブロック、又は、前記第１の変換手段からの、前記ブロックに含まれる画素数と同数の直流成分のいずれか一方を選択出力する第１の選択手段と、
該第１の選択手段が出力した前記ブロックに含まれる画素数と同数のデータを直交変換し、１つの直流成分、及び、複数の交流成分を出力する第２の変換手段と、
該第２の変換手段で得られた前記複数の交流成分を記憶する第２の記憶手段と、
前記第２の変換手段で得られた前記直流成分、前記第２の記憶手段に記憶された前記複数の交流成分のいずれか一方を選択し、出力する第２の選択手段と、
前記アクセス手段、前記第１の選択手段、前記第２の選択手段、前記第２の変換手段を制御して、
前記第１の選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の選択手段が前記第２の変換手段で得られた直流成分を選択し、出力する第１の設定、
前記第１の選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の選択手段が前記第２の記憶手段に格納された前記複数の交流成分を選択し、出力する第２の設定、
前記第１の選択手段が前記アクセス手段により読み込んだ画像データのブロックを選択し、前記第２の選択手段が前記第２の変換手段で算出された前記複数の交流成分を選択し、出力させる第３の設定
のいずれかを実行させる制御手段と
を備えることを特徴とするデータ変換装置。
【請求項３】
画像データの符号化のため、予め設定された画素数で表わされるブロックを単位に直交変換するデータ変換装置であって、
直交変換対象の画像データを記憶する記憶手段と、
該記憶手段から前記ブロックを単位に読み込むアクセス手段と、
該アクセス手段を介して読出した、前記記憶手段に記憶された画像データにおける前記ブロックを入力して直交変換し、１つの直流成分のみを算出し、出力する第１の変換手段と、
前記アクセス手段を介して読出した前記ブロック、又は、前記第１の変換手段からの、前記ブロックに含まれる画素数と同数の直流成分のデータのいずれか一方を選択出力する第１の選択手段と、
該第１の選択手段が出力した前記ブロックに含まれる画素数と同数のデータを直交変換し、複数の交流成分を出力する第２の変換手段と、
前記第１の変換手段が出力した前記ブロックに含まれる画素数と同数の直流成分を直交変換し、１つの直流成分のみを算出し、出力する第３の変換手段と、
前記第３の変換手段で得られた前記直流成分、前記第２の変換手段で得られた前記複数の交流成分のいずれか一方を選択し、出力する第２の選択手段と、
前記アクセス手段、前記第１の選択手段、前記第２の選択手段を制御して、
前記第２の選択手段が前記第３の変換手段で得られた直流成分を選択し、出力させる第１の設定、
前記第１の選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の選択手段が前記第２の変換手段で得られた前記複数の交流成分を選択し、出力させる第２の設定、
前記第１の選択手段が前記アクセス手段により読み込んだ画像データのブロックを選択し、前記第２の選択手段が前記第２の変換手段で得られた前記複数の交流成分を選択し、出力させる第３の設定
のいずれかを実行させる制御手段と
を備えることを特徴とするデータ変換装置。
【請求項４】
画像データの符号化のため、予め設定された画素数で表わされるブロックを単位に直交変換するデータ変換装置であって、
直交変換対象の画像データを記憶する第１の記憶手段と、
該第１の記憶手段から前記ブロックを単位に読み込むアクセス手段と、
該アクセス手段を介して読出した、前記第１の記憶手段に記憶された画像データにおける前記ブロックを入力して直交変換し、１つのブロックから１つの直流成分のみを算出して、出力する第１の変換手段と、
前記アクセス手段を介して読出した前記ブロック、又は、前記第１の変換手段からの、前記ブロックに含まれる画素数と同数の直流成分のいずれか一方を選択出力する第１の選択手段と、
該第１の選択手段が出力した前記ブロックに含まれる画素数と同数のデータを直交変換し、複数の交流成分を出力する第２の変換手段と、
該第２の変換手段で得られた前記複数の交流成分を記憶する第２の記憶手段と、
前記第１の変換手段が出力した前記ブロックに含まれる画素数と同数の直流成分を直交変換し、１つの直流成分のみを算出し、出力する第３の変換手段と、
前記第３の変換手段で得られた前記直流成分、前記第２の記憶手段に記憶された複数の交流成分、前記第２の変換手段からダイレクトに出力された前記複数の交流成分のいずれか一方を選択し、出力する第２の選択手段と、
前記アクセス手段、前記第１の選択手段、前記第２の選択手段を制御して、
前記第２の選択手段が前記第３の変換手段で得られた直流成分を選択し、出力させる第１の設定、
前記第１の選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の選択手段が前記第２の記憶手段に格納された前記複数の交流成分を選択し、出力する第２の設定、
前記第１の選択手段が前記アクセス手段により読み込んだ画像データのブロックを選択し、前記第２の選択手段が前記第２の変換手段からダイレクトに出力された前記複数の交流成分を選択し、出力させる第３の設定
のいずれかを実行させる制御手段と
を備えることを特徴とするデータ変換装置。
【請求項５】
前記制御手段は、
前記ブロックを複数内包するものをマクロブロック、マクロブロックを複数内包するものをタイルとし、当該タイルに対する符号化データのデータ構造が、各マクロブロックの直流成分、各マクロブロックのローパス係数、各マクロブロックのハイパス係数の順番となる符号化モードが選択された場合、
第１の段階では、前記タイル内の全マクロブロックの直流成分が出力されるまで前記第１の設定による直交変換を行なわせ、
前記第１の段階に後続する第２の段階では、前記タイル内の全マクロブロックのローパス係数が出力されるまで前記第２の設定による直交変換を行なわせ、
前記第２の段階に後続する第３の段階では、前記タイル内の全マクロブロックのハイパス係数が出力されるまで前記第３の設定による直交変換を行なわせる
ことを特徴とする請求項１乃至４のいずれか１項に記載のデータ変換装置。
【請求項６】
前記ブロックは４×４個の画素で構成されるサイズであって、
前記第１の変換手段は、前記ブロックを予め設定された４個の係数データで構成される４つのサブブロックに区分し、サブブロック毎に、それぞれのサブブロックを構成する４個の係数データの総和値が偶数か奇数かを表わす０又は１のいずれかの値を持つパリティ値を生成する生成手段と、
前記ブロックを構成する画素値の総和に、各サブブロックのパリティ値を加算する加算手段と、
該加算手段で得られた値を、４で除算して得られた整数部分を、前記ブロックの直流成分として出力する演算手段と
を備えることを特徴とする請求項１乃至５のいずれか１項に記載のデータ変換装置。
【請求項７】
請求項１乃至６のいずれか１項に記載のデータ変換装置と、
当該データ変換装置で得られたタイルの直流成分、ローパス係数、ハイパス係数をエントロピー符号化する符号化手段とを備えることを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの符号化する際の直交変換技術に関するものである。
【背景技術】
【０００２】
近年、センサーや表示機器、編集ツールの進歩により、１色成分あたりを表現するビット数が８ビットを超えるＨＤＲ（Ｈｉｇｈ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ）画像が増えている。さらに、４ｋ２ｋ、または、８ｋ４ｋなど、ハイビジョン、もしくは、スーパーハイビジョンと呼ばれる高解像度化が進んでいる。そのため、画像のデータ量は非常に大きいものとなっている。そして、このような画像データを保存するため、あるいは、短時間で転送するため、圧縮符号化技術は欠かせないものである。
【０００３】
ＨＤＲの高解像度画像データを効率よく圧縮する標準方式として『ＪＰＥＧ  ＸＲ』がある。ＪＰＥＧ  ＸＲでは、画像データは複数のタイルから構成されるものであり、タイルは複数のＭＢ（マクロブロック）から構成されるものとして定義している。そして、ＪＰＥＧ  ＸＲのストリームは、複数のタイルの符号化データから構成される。さらに、その下位階層の符号化データの配列形式には、ＳｐａｔｉａｌモードとＦｒｅｑｕｅｎｃｙモードの２つの構成が定義されている。
【０００４】
Ｓｐａｔｉａｌモードは、タイル内の各ＭＢの符号化データを、そのマクロブロックを単位にラスター順序に並べたデータ構造である。各ＭＢのストリームは、ＤＣ係数のストリーム、ＬＰ係数のストリーム、および、ＨＰ係数のストリームの順に構成される（図７（ｂ）参照）。
【０００５】
これに対し、Ｆｒｅｑｕｅｎｃｙモードは、タイルの符号化データを係数の階層（ＤＣ、ＬＰ、ＨＰ）毎に並べたデータ構造である。すなわち、このＦｒｅｑｕｅｎｃｙモードのストリームは、先ず、各ＭＢのＤＣ係数のストリームで構成されるパケットを形成し、それに後続してＬＰ係数のストリームで構成されたタイルが続く。さらに、その後に、ＨＰ係数の上位ビットのストリームで構成されたタイルが続き、最後に、ＨＰ係数の下位ビット(ＦＬＥＸ)のストリームで構成されたタイルが続く（図７（ａ）参照）。なお、ＪＰＥＧ  ＸＲにおける上記ＤＣ係数、ＬＰ係数、ＨＰ係数の詳細については、後述する直交変換処理の処理フローの中で説明する。
【０００６】
さて、ＪＰＥＧ  ＸＲの符号化処理は、色変換、および、サブサンプリングなどの前処理、直交変換、量子化、係数予測、および、エントロピー符号化の順序で構成される（図９参照）。エントロピー符号化では、可変長符号化する有意データ(非零)の発生する数を各ＭＢで一定にするように、係数予測誤差を上位ビットと下位ビットに分割する。係数予測誤差の上位ビットは可変長符号化して符号をストリームに出力し、下位ビットは固定長データとして、符号化せずにそのままストリームに出力する。
【０００７】
ＪＰＥＧ  ＸＲにおける符号化処理は、１６×１６画素で構成されたマクロブロック（ＭＢ）を単位に行うが、その際の直交変換は４×４画素の小ブロックを単位に行う。ＪＰＥＧ  ＸＲでは、この直交変換をＰＣＴ変換と言う。１つの小ブロックに対するＰＣＴ変換により、１個の小ブロックＤＣ係数（後述するＤＰｄｃ）と、１５個のＡＣ係数（ＨＰ係数）が生成される。１つのマクロブロックには、４×４個の小ブロックが含まれるので、１つマクロブロックからは４×４個の小ブロックＤＣ係数と、４×４×１５（＝２４０）個のＡＣ係数が算出される。後者のＡＣ係数が、先に示した「ＨＰ係数」である。
【０００８】
次に、４×４個の小ブロックＤＣ係数に対して、再びＰＣＴ変換を行う。この結果、１個のＤＣ係数と１５個のＡＣ係数が得られる。前者がマクロブロックの「ＤＣ係数」であり、後者がマクロブロックの「ＬＰ係数」である。
【０００９】
では、Ｆｒｅｑｕｅｎｃｙモードのストリームを生成するための直交変換の構成について、図２を用いて説明する。
【００１０】
撮像素子などで撮影されたデジタル画像データは、画像記憶部２０６に記憶される。符号化が開始されると、まずＤＣ係数のストリームで構成されるタイルを生成するために、ＤＣ係数を算出する。
【００１１】
具体的には、画像記憶部２０６に記憶されたデジタル画像データは、符号化処理を施すために、所望の矩形サイズに分割されたタイル単位に格納されているものと見なす。さらに、各タイルは、その中にＭＢがラスター順序に並んでいるものと見なす。このＭＢが符号化処理の処理単位となる（図８（ａ）参照）。さらに、ＭＢは、４×４画素の小ブロックで構成されているものと見なす。この小ブロック単位で符号化処理が施される。
【００１２】
画像記憶部２０６に格納された画像データは、メモリ制御部２０５を通じて、第１の変換部２０１へ送出される。
【００１３】
第１の変換部２０１は、送出されたＭＢの各小ブロック対して、可逆の直交変換（ＰＣＴ変換）を施し、１つの直流成分（ＨＰｄｃ）と１５の交流成分（ＨＰ）の周波数係数を算出する処理部である。得られた係数はメモリ制御部２０５へと送出され、画像記憶部２０６に書き戻される。１つのＭＢには、４×４個の小ブロックが含まれているので、この処理を１６回行うことになる。１つのＭＢに対する第１の変換部２０１による処理が終わると、画像記憶部２０６には４×４個のＨＰｄｃ係数データと、２４０個のＨＰ係数データが格納されることになる。
【００１４】
次に、ＤＣ係数を算出するため、メモリ制御部２０５は、画像記憶部２０６から先ほど書き込んだ同一ＭＢに属する４×４個のＨＰｄｃ係数データを読出して、第２の変換部２０２へ送出する。
【００１５】
第２の変換部２０２は、同一ＭＢに属する４×４個のＨＰｄｃ係数データに対して、第１の変換部２０１と同様の周波数変換を施し、１個のＤＣ係数と１５個のＬＰ係数を算出する。第２の変換部２０２で算出されたＤＣ係数は選択器２０３を通じて、直交変換部から次の処理（量子化部）へと送出する。一方、１５個のＬＰ係数は、メモリ制御部２０５を通じて画像記憶部２０６へ書き戻される。そして、ＬＰ係数は、タイル内の全ＭＢのＤＣ係数の出力を終えるまで、保持される。
【００１６】
選択器２０３が、タイル内の全ＭＢのＤＣ係数を全て出力し終えると、メモリ制御部２０５は、画像記憶部２０６から各ＭＢの『ＬＰ係数』を読出して、選択器２０３へ出力する。そして、選択器２０３は、入力された『ＬＰ係数』を直交変換部から次の処理（量子化部）へと送出する。
【００１７】
選択器２０３が、タイル内の全ＬＰ係数を全て出力し終えると、画像記憶部２０６からタイル内の全ＭＢの『ＨＰ係数』を読出し、選択器２０３から出力する。そして、選択器２０３は、入力された『ＨＰ係数』を直交変換部から次の処理（量子化部）へと送出する。ここで、選択器２０３における出力データの切り替えは、階層制御部２０４が担う。
【００１８】
上記の説明からわかるように、ＪＰＥＧ  ＸＲの直交変換の算出過程では、先ず、『ＨＰ係数』が算出され、次いで、『ＤＣ係数』、および、『ＬＰ係数』がＭＢ単位で算出される。一方、ＪＰＥＧ  ＸＲのＦｒｅｑｕｅｎｃｙモードにおける、１つタイルにおける符号化ストリームは、ＤＣ係数、ＬＰ係数、ＨＰ係数の順の並びでなければならない。このように、符号化処理の順序と、符号化ストリームのデータの順序が異なるため、各演算過程で算出されたＬＰ係数、および、ＨＰ係数を一度画像記憶部２０６に書き戻して、ストリームの順序に従って、直交変換から出力されるよう並び替える必要があることが理解できよう。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００６−１９７５７２号公報
【特許文献２】特開２００１−７８１９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
先に説明したように、従来の直交変換方法では、Ｆｒｅｑｕｅｎｃｙモードのストリームを生成しようとすると、直交変換部から係数をストリームの構成順序で出力するように並び替えが必要となる。そのため、算出されたＨＰ係数とＬＰ係数を画像記憶部等のメモリに書き戻す処理を行なわなければならない。
【００２１】
ここで、簡単のため、符号化対象の画像が１色成分だけのモノクロ画像の場合を想定する。ＪＰＥＧ  ＸＲでは、画像データを構成するタイルの最大サイズは、その画像データの画素数を同じであっても構わない。その場合、ＦｒｅｑｕｅｎｃｙモードでのＨＰ係数とＬＰ係数の画像記憶部２０６への書き戻すデータ数は、画像データの画素数と同数である。また、ＨＰ係数の１係数あたりのビット幅は画像サンプルに対して５ビット多い。さらに、ＬＰ係数を書き戻すデータ数は、画像データの画素数の約１／１６である。さらに、ＬＰ係数の１係数あたりのビット幅は画像サンプルに対して７ビット多い。
【００２２】
上記が何を意味するかと言えば、第１には、メモリの使用量が増加する点である。そして、第２には、そのメモリからの読出しと書き込みの回数が非常に多くなり、且つ、読み書きの際のデータのビット数が増えることにより、符号化処理全体の性能をも低下してしまう、ということである。また、符号化処理を搭載した装置の部品コストの増加にもつながる。
【００２３】
本発明はかかる点に鑑みなされたものであり、直交変換に係る画像データを格納しているメモリへのアクセス回数を少なくし、高速に符号化用の直交変換係数を生成することを可能にする技術を提供しようとするものである。また、他の発明は、かかる課題を達成するだけでなく、ＪＰＥＧ  ＸＲにおけるＦｒｅｑｕｅｎｃｙモードに基づく好適な並びの直交変換係数の生成する技術を提供するものである。
【課題を解決するための手段】
【００２４】
この課題を解決するため、例えば本発明のデータ変換装置は以下の構成を備える。すなわち、
画像データの符号化のため、予め設定された画素数で表わされるブロックを単位に直交変換するデータ変換装置であって、
直交変換対象の画像データを記憶する記憶手段と、
該記憶手段から前記ブロックを単位に読み込むアクセス手段と、
該アクセス手段を介して読出した、前記記憶手段に記憶された画像データにおける前記ブロックを入力して直交変換し、１つの直流成分のみを算出し、出力する第１の変換手段と、
前記アクセス手段を介して読出した前記ブロック、又は、前記第１の変換手段からの、前記ブロックに含まれる画素数と同数の直流成分のデータのいずれか一方を選択出力する選択手段と、
該選択手段が出力した前記ブロックに含まれる画素数と同数のデータを直交変換し、１つの直流成分又は複数の交流成分のいずれか一方を出力する第２の変換手段と、
前記アクセス手段、前記選択手段、前記第２の変換手段を制御して、
前記選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の変換手段に対しては直交変換で得られた１つの直流成分を出力させる第１の設定、
前記選択手段が前記第１の変換手段からの直流成分を選択し、前記第２の変換手段に対しては直交変換で得られた複数の交流成分を出力させる第２の設定、
前記選択手段が前記アクセス手段により読み込んだ画像データのブロックを選択し、前記第２の変換手段に対しては直交変換で得られた複数の交流成分を出力させる第３の設定のいずれかを実行させる制御手段とを備える。
【発明の効果】
【００２５】
本発明によれば、交流成分の係数をフレームメモリに書き戻すことなく、ストリームを構成する順番に係数を算出することが可能になる。従って、係数を階層の順番に出力する必要がある直交変換に適用した場合には、メモリ帯域を削減し、符号化処理を高速化させることが可能になる。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態における直交変換部のブロック構成図。
【図２】従来技術における直交変換部のブロック構成図。
【図３】第３の実施形態における直交変換部のブロック構成図。
【図４】実施形態における第２の変換部のブロック構成図。
【図５】デジタルカメラのブロック構成図。
【図６】実施形態における第１の変換部のブロック構成図。
【図７】ＪＰＥＧ  ＸＲのストリーム構成図。
【図８】ブロック内のデータの配列とマクロブロックとの関係を示す図。
【図９】ＪＰＥＧ  ＸＲの画像符号化処理フロー。
【図１０】第２の実施形態における直交変換部のブロック構成図。
【図１１】第４の実施形態における直交変換部のブロック構成図。
【図１２】Ｆｒｅｑｕｅｎｃｙモードにおける直交変換のフローチャート。
【図１３】図１２のＳ２の処理を示すフローチャート。
【図１４】図１２のＳ１０の処理を示すフローチャート。
【図１５】Ｓｐａｔｉａｌモードにおける直交変換のフローチャート。
【発明を実施するための形態】
【００２７】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。
【００２８】
まず、本実施形態が産業上利用され得る形態として、画像を符号化する機能、符号化された画像を復号する機能を有する画像処理装置について説明する。一例としては、デジタルカメラやデジタルカムコーダが挙げられよう。ネットワークを介して受信した画像を符号化する装置であっても構わない。
【００２９】
ここでは、図５の構成を有するデジタルカメラを例に説明する。撮像対象の像は、レンズ５０１を介して、ＣＣＤやＣＭＯＳセンサーなどの撮像素子５０２上に結像される。撮像素子５０２は、この結像された像をアナログ信号に変換し、このアナログ信号を後段のＡ／Ｄ変換器５０３に送出する。
【００３０】
Ａ／Ｄ変換器５０３は、撮像素子５０２から受けたアナログ信号をデジタル信号に変換する。メモリ制御部５０７は、この変換されたデジタル信号をデータ（画像データ）としてＡ／Ｄ変換器５０３から取得すると、この画像データを画像処理部５０４に送出する。画像処理部５０４は、この画像データに対して周知の画像補間処理や色変換処理などを施す。
【００３１】
メモリ制御部５０７は、画像処理部５０４による処理後の画像データをこの画像処理部５０４から取得すると、この取得した画像データをメモリ５０５に格納する。メモリ５０５は、撮像された静止画像や動画像のデータを一時的に格納するためのメモリであって、所定枚数の静止画像（所定フレーム数分の静止画像）を格納するための領域を有する。このメモリ５０５は読み書き可能なメモリであるので、メモリ制御部５０７は、メモリ５０５に対するデータ書込み専用の複数のメモリ制御部と、メモリ５０５に対するデータ読出し専用の複数のメモリ制御部と、を有する。
【００３２】
メモリ５０５に格納された画像データはメモリ制御部５０７によって再度読み出され、Ｄ／Ａ変換器５０８と符号化部５１１に送出される。Ｄ／Ａ変換器５０８は、この画像データをアナログ信号に変換し、この変換したアナログ信号を画像表示部５０９に送出する。これにより、画像表示部５０９の表示画面上には、このアナログ信号が示す画像（撮像された画像）が表示される（再生される）ことになる。
【００３３】
一方で、符号化部５１１は、メモリ制御部５０７から受けた画像データ（入力画像）から符号化ストリームを生成する。メモリ制御部５０７は、符号化部５１１が生成した符号化ストリームを記憶媒体５０６に記録する。記憶媒体５０６には、ＳＤカード等の、画像処理装置に着脱可能なリムーバブルな媒体が利用される。
【００３４】
ここで、このデジタルカメラには、ユーザが操作する為のモードダイアル５２１が備わっている。モードダイアル５２１は、撮像モード、再生モードの何れかを選択するためのものである。ユーザがモードダイアル５２１を操作して撮像モードを選択すると、システム制御部５２０は画像処理装置を構成する各部の動作制御を行い、撮影処理が開始可能な状態になる。即ち、レンズ５０１を介して得た像の画像データに基づく画像を画像表示部５０９に表示させる。さらに、モードダイアル５２１は撮影モードが選択された状態で、撮影記録スイッチ５２３が投入されると、撮影処理が開始される。即ち、レンズ５０１を介して得た像の画像データを符号化部５１１が符号化し、符号化ストリームとして記憶媒体５０６に記録する処理を実現する。
【００３５】
一方、ユーザがモードダイアル５２１を操作して再生モードを選択すると、システム制御部５２０は、ユーザから指定された符号化モードの判定、並びに、画像処理装置を構成する各部の動作制御を行い、以下に説明する各処理を実現する。
【００３６】
メモリ制御部５０７は、記憶媒体５０６に記録されている符号化ストリームを順次読み出し、読み出した符号化ストリームを復号部５１３に送出する。復号部５１３は、メモリ制御部５０７から取得した符号化ストリームを復号する。ＲＯＭ５２２には、画像処理装置の設定データや、システム制御部５２０による実行対象のコンピュータプログラムが格納されている。更に、ＲＯＭ５２２には、以下に説明する処理において既知のデータとして説明するものについても格納されている。即ち、システム制御部５２０は、このＲＯＭ５２２に格納されているコンピュータプログラムやデータを用いて処理を実行することで、デジタルカメラを構成する各部の動作制御を行う。これにより、本実施形態に係るデジタルカメラは、以下に説明する符号化処理を実現することになる。
【００３７】
［符号化部５１１］
図９は、図５の符号化部５１１の詳細な機能構成例を示すブロック図である。図９に示した各部はハードウェアでもって構成されているものとするが、その一部、若しくは全部をコンピュータプログラムで実現しても良い。
【００３８】
図５の符号化部５１１に入力される画像データは、１以上のタイルを有する。このタイルは、１６×１６画素で構成されるマクロブロックを複数内包し、各マクロブロックは、タイル内にラスター順に並んでいるものと見なす。また、１つのマクロブロックは、４×４画素で構成される小ブロックを複数内包（１６個内包する）する。
【００３９】
図５の符号化部５１１に入力された画像データは、直交変換部９０１に送出する。直交変換部９０１以降の処理は、ＭＢ単位で処理が施される。以下では、１つのＭＢを符号化する為の符号化の動作について説明するが、同様の動作は、他のＭＢに対しても行われることになる点に注意されたい。
【００４０】
直行変換部９０１は取得したＭＢの画像データに対して直交変換を施し、色空間データから周波数空間の変換係数を出力する。さらに、色空間データへの非可逆符号化で良いのであれ、量子化部９０２において、変換係数を量子化処理して、変換係数のダイナミックレンジを小さくする。さらに、画像のデータパターンが複数ブロックにまたいでいる場合は、係数予測部９０３において、量子化された変換係数を各周波数係数の階層に応じて係数間予測することで、さらに変換係数のレベルを小さくする。ただし、量子化値がブロック内の係数位置によって異なっている場合や参照係数がタイルをまたいでいる場合は、画像のデータパターンが複数ブロックにまたいでいても、係数予測の処理を省いてもかまわない。このようにして算出された係数予測誤差はエントロピー符号化される。
【００４１】
次に、ＪＰＥＧ  ＸＲのエントロピー符号化の処理手順を説明する。
【００４２】
分割部９０４は、前記係数予測部９０３から入力された係数予測誤差を上位ビットと下位ビットに分割する。上位ビットは可変長符号化され、下位ビットは符号化されず、そのままストリームに出力される。尚、符号化済みＭＢの可変長符号化された上位ビットの有意データ(非零)の発生頻度から、因果的に係数予測誤差を分割するビット位置を変更する。
【００４３】
可変長符号化９０５に入力された係数予測誤差の上位ビットは、４×４画素（画素数が１６）の２次元の小ブロックで構成されている。そこで、可変長符号化９０５は、２次元のデータをスキャンして、符号化効率が高い１次元データに並べ替える。このときの理想的な並び替えは、有意データを前方に、非有意データ（ラン（零））を後方に連続するようにすることである。このようにして並び替えた１次元データを可変長符号（ランレングス符号）に変換する。
【００４４】
このようにして得られた係数予測誤差の上位ビットの可変長符号と下位ビットは、シンボル結合部９０６において、定められた順序で連結され、符号化ストリームが生成される。
【００４５】
以上の手順により、図５の符号化部５１１は、画像を符号化ストリームに変換し、図５のメモリ制御部５０７へ送出する。
【００４６】
尚、ブロック毎に直交変換する方式としては、可逆の整数演算を２段階に行い、ＭＢ内の空間画像データを３つ以上の階層の周波数係数に変換する方式が適している。また、以降の説明を簡単にするため、図５の符号化部５１１について、特に、エントロピー符号化の処理について、ＪＰＥＧ  ＸＲの処理手順で説明したが、これは一例に過ぎない。エントロピー符号化は、ＪＰＥＧやＭＰＥＧなどで知られる周知のエントロピー符号化の処理が用いられても構わない。
【００４７】
また、以下に説明する各実施形態の特徴は、上述した図５の符号化部５１１内の、ＪＰＥＧ  ＸＲに適応したデータ構造の符号化ストリーム（Ｆｒｅｑｕｅｎｃｙモード、及び、Ｓｐａｔｉａｌモード）を生成するための直交変換９０１を改良した点にある。
【００４８】
［第１の実施形態］
以下、本発明における第１の実施形態を図１を用いて説明する。図１は、図９における直交変換部９０１（データ変換装置）内の一部の構成である。先ず、図１の構成と、各構成部の機能について説明する。また、以下では、ＪＰＥＧ  ＸＲにおけるＦｒｅｑｕｅｎｃｙモード（その符号化データのデータ構造は図７（ａ））に適用した場合を説明し、Ｓｐａｃｉａｌモード（図７（ｂ））についてはその後で説明する。
【００４９】
直交変換部９０１は、画像記憶部１０６、メモリ制御部１０５、第１の変換部１０１、選択部１０２、第２の変換部１０３、および、階層制御部１０４から構成される。画像記憶部１０６は、符号化対象となる画像データを一時的に記憶するためのメモリである。メモリ制御部１０５は、画像記憶部１０６から符号化対象画像（正確には、直交変換対象の画像データ）を所望のブロック単位で読み出して出力する。第１の変換部１０１は、入力された４×４画素の小ブロックのデータから可逆変換における直流成分ＤＣのみを演算して出力する。すなわち、第１の変換部１０１は交流成分の演算は行なわない。選択部１０２は、階層制御部１０４からの制御信号に従い、第１の変換部１０１から入力された直流成分ＤＣ、メモリ制御部１０５からダイレクトに入力された画像データのいずれか一方を選択し、出力する。
【００５０】
但し、図１のメモリ制御部１０５は、図５のメモリ制御部５０７に対応し、図１の画像記憶部１０６は、図５のメモリ５０５に対応する。
【００５１】
第２の変換部１０３は、階層制御部１０４からの制御信号に従い、入力された小ブロックのデータから可逆変換であるＰＣＴを施し、１つの直流成分、もしくは、１５個の交流成分のいずれか一方を送出する。階層制御部１０４は、生成すべきタイミングに応じて選択部１０２と第２の変換部１０３の出力データを指示する信号を出力する。尚、メモリ制御部１０５は、図５のメモリ制御部５０７に対応し、画像記憶部１０６は、図５のメモリ５０５に対応している。
【００５２】
ＪＰＥＧ  ＸＲにおけるＦｒｅｑｅｎｃｙモードのストリームを生成するため、本発明における直交変換部９０１は、Ｆｒｅｑｅｎｃｙモードのストリームの構造と同じように、ＤＣ係数、ＬＰ係数（ローパス係数）、ＨＰ係数（ハイパス係数）の順番で、各係数をタイル単位で出力する。
【００５３】
以下、ＤＣ、ＬＰ、ＨＰまで全ての係数を符号化する場合の構成と処理手順について説明する。以下では、１つのＭＢを符号化する為の符号化の動作について説明するが、同様の動作は、タイル内の他のＭＢに対しても行われることになる点に注意されたい。
【００５４】
まず、図９の直交変換部９０１が１タイル分のＤＣを出力するように、メモリ制御部１０５は、画像記憶部１０６から符号化対象となる画像を読出し、第１の変換部１０１に送出する。第１の変換部１０１は、４×４の小ブロック単位の画素データに対して変換処理を施し、１つの直流成分のみを算出して出力する。演算方法の詳細については、後述する。
【００５５】
このとき、階層制御部１０４は、直交変換部９０１がＤＣを演算して出力するために、選択部１０２が第１の変換部１０１から入力されたデータを出力するように選択信号を送出する。
【００５６】
第２の変換部１０３は、選択部１０２を通じて、第１の変換部１０１からの、小ブロック内の画素数と同数に直流成分を入力するまで待ち、ＰＣＴ演算を施し、ＰＣＴ演算によって得られた直流成分をマクロブロックの『ＤＣ係数』として出力する。第２の変換部１０３の演算方法についても後述する。
【００５７】
以上の処理が、タイルに内包される全マクロブロックのＤＣ係数を出力するまで繰り返される。
【００５８】
さて、図９の直交変換部９０１が、１タイル分のＤＣを出力終えた後、続けて、１タイル分のＬＰを出力できるように、図１のメモリ制御部１０５は、画像記憶部１０６から符号化対象となる画像を再び読出し、第１の変換部１０１に送出する。
【００５９】
第１の変換部１０１は、再び変換処理を施し、各ブロックの直流成分を送出する。また、第２の変換部１０３は、選択部１０２を通じて、第１の変換部１０１の小ブロックに含まれる画素数と同数の直流成分を取得するのを待って、ＰＣＴ演算を施す。このとき、第２の変換部１０３は、算出した１５個の交流成分を『ＬＰ係数』として送出し、このＰＣＴ演算によって得られた直流成分は破棄する。
【００６０】
言うまでもないが、階層制御部１０４は、ＬＰ係数を送出するために、選択部１０２が第１の変換部から入力されたデータを送出するよう選択信号を送出する。以上の操作をタイル内のＬＰ係数を全て出力するまで繰り返す。
【００６１】
さらに、図９の直交変換部９０１が、１タイル分のＬＰ係数出力に続いて、１タイル分のＨＰ係数を出力できるように、メモリ制御部１０５は、画像記憶部１０６から符号化対象となる画像を再び読出す。このとき、階層制御部１０４は、選択部１０２がメモリ制御部１０５から入力された画像データから入力されたデータを、第２の変換部１０３に出力するよう選択信号を送出する。第２の変換部１０３は、取得した画像データに対してＰＣＴ演算を施し、算出した１５の交流成分を『ＨＰ係数』として送出する。このとき、ＰＣＴ演算によって得られた直流成分は破棄される。以上の操作をタイル内のＨＰ係数を全て出力するまで繰り返す。
【００６２】
尚、ＪＰＥＧ  ＸＲにおけるＨＰの下位ビットであるＦＬＥＸをストリームに挿入する場合は、先に説明したＨＰ係数の処理手順と同様の手順で処理を施せばよい。
【００６３】
以上、ＪＰＥＧ  ＸＲにおけるＦｒｅｑｅｎｃｙモードのストリームを生成するため、全係数をタイル単位で出力する構成、および、処理手順について説明した。
【００６４】
第１の実施形態では、メモリ制御部１０５は、画像記憶部１０６から符号化対象となる画像（タイル）を出力する係数の階層分だけ、符号化対象画像を読み出すことになる。例えば、ＤＣ係数からＨＰ係数まで全ての係数を符号化する場合は、３回符号化対象画像を読み出すことになる。一方、ＤＣ係数のみを符号化する場合は、上記処理手順のＤＣ係数の処理手順のみを行えばよい。すなわち、メモリ制御部１０５による画像記憶部１０６からの符号化対象画像の読出しは、１回のみとなる。また、ＨＰ係数を符号化しない場合、すなわち、ＤＣ係数、および、ＬＰ係数のみを符号化する場合は、上記処理手順のＤＣ係数の処理手順、および、ＬＰ係数の処理手順のみを行えばよい。このとき、メモリ制御部１０５による画像記憶部１０６からの符号化対象画像の読出しは、２回となる。
【００６５】
次に、第１の変換部１０１と第２の変換部１０３の演算方法について説明する。ここでは、説明を簡単にするため、第２の変換部１０３の構成と処理手順を先に説明する。
【００６６】
第２の変換部１０３の構成について、図４を用いて説明する。第２の変換部１０３は、取得した４×４個のデータを第１のアダマール変換部４０１へ送出する。第１のアダマール変換部４０１は、小ブロックをさらに、２×２画素の単位で可逆アダマール変換を施す。第１のアダマール変換部４０１から送出された係数は、各周波数帯（ＤＣ、ＡＣ１、ＡＣ２、ＡＣ３）で個別のバッファに格納される。小ブロック内の４つの２×２サイズのブロックに対してアダマール変換を施すと、バッファ４０２、４０４、４０６、および、４０８には、小ブロック内の各々周波数帯の係数が保持される。バッファ４０２に保持された直流成分ＤＣは、第２のアダマール変換４０３で、可逆アダマール変換が再び施される。一方、バッファ４０４に保持された交流成分ＡＣ１は、第１の回転変換部４０５で、可逆回転変換が施される。同様に、バッファ４０６に保持された交流成分ＡＣ２は、第２の回転変換部４０７で、可逆回転変換が施される。さらに、バッファ４０８に保持された交流成分ＡＣ３は、第３の回転変換部４０９で、可逆回転変換が施される。
【００６７】
このようにして、処理が施された小ブロックのデータは全てスキャン変換部４１０へ送出され、スキャン変換４１０は、取得した小ブロック内の係数を予め定められた２次元の順序に並び替える。以上、順序で小ブロックに対するＰＣＴ演算が施される。
【００６８】
次に、第１の変換部１０１の構成について、図６を用いて説明する。
【００６９】
第１の変換部１０１は、第２の変換部１０３と同様にＰＣＴ演算を施すが、これまでの説明から明らかなように、第１の変換部１０１は４×４個のデータから、１個の直流成分のみを算出すれば良く、交流成分の算出は不要である。換言すれば、交流成分にかかる算出が不要になるので、直流成分算出に特化した高速演算を実現するようにした。
【００７０】
まず、第１のアダマール変換部６０１において、４×４個の小ブロックのデータ中の２×２個の係数で構成されるサブブロックについて可逆アダマール変換を施し、サブブロックの直流成分を算出する。具体的には、サブブロックを構成する２×２個のデータの総和を２で除算することで、サブブロックの直流成分を算出する。このとき、可逆アダマール変換を実現するため、除算による余りは、四捨五入する。
【００７１】
或る整数Ａを２で除算し、小数点以下を四捨五入の単純な処理は、以下のようにすればよいであろう。
（ｉ）．整数Ａが偶数か奇数かのパリティ判定を行う（回路的には、整数ＡのＬＳＢが０か１かを利用すれば良い）。
（ｉｉ）．判定結果が、整数Ａが奇数であることを示す場合にはＡを“１”だけ増加させる。整数Ａが偶数であることを示すばあいにはＡに何も加算しない（もしくは０を加算する）。具体的には、整数Ａに整数ＡのＬＳＢを加算して、整数Ａを更新する。
（ｉｉｉ）．更新された整数Ａを２で除算し、その整数部分のみを出力する。２の除算は、単に対象となる値を、１ビットだけ下位方向にシフト（右シフト）すれば良い。
【００７２】
入力した４×４個の入力データには、４個のサブブロックが存在するので、第１アダマール変換部６０１は、上記処理を４回行う。この結果、４つ（２×２個）のサブブロック直流成分が算出され、第２アダマール変換部６０３に送出されることになる。
【００７３】
第２のアダマール変換部６０２は、取得した４つのサブブロック直流成分から、再び２×２の可逆アダマール変換を施し、直流成分（マクロブロック直流成分）を算出する。具体的には、２×２個の入力データの総和を２で除算する（１ビット右シフトする）。このとき、可逆アダマール変換を実現するため、除算による余は、切り捨てられる。
【００７４】
なお、上記では、第１のアダマール変換部６０１でサブブロックの合計値を１ビット右シフトし、第２のアダマール変換部６０３で再度１ビット右シフトしているが、ビットシフト処理を１箇所で行うようにしても良い。すなわち、第１のアダマール変換部６０１は、先に示した（ｉ），（ｉｉ）のみを行い、（ｉｉｉ）を行なわない。そして、第２のアダマール変換部６０３は、合計値の２ビット右シフト処理（４で除算する）を行う。
【００７５】
第２の変換部６０３で算出された直流成分は、第１の変換部１０１から送出される。尚、図６を用いて説明した第１の変換部１０１の演算方法は、一例である。
【００７６】
本発明では、第１の変換部１０１は、可逆変換によって直流成分のみを出力する変換処理部であればよく、本発明は、第１の変換部の演算方法を限定したものではない。また、本実施形態ではＪＰＥＧ  ＸＲのＰＣＴ演算に対応して変換するブロックサイズを４×４としているが、これは一例であり、本発明はブロックサイズを限定するものではない。
【００７７】
このようにして、第１の実施形態の直交変換部は、各階層の係数予測誤差をタイル毎に符号化するＦｒｅｑｕｅｎｃｙモードにおいて、エントロピー符号化に必要な係数を画像記憶部に書き戻すことなく、高速に演算して出力することが可能になる。
【００７８】
一方、Ｓｐａｃｉａｌモードの場合は、１つのマクロブロックを単位に、１個のＤＣ係数、１５個のＬＰ係数、２４０個のＨＰ係数の順に出力することを、着目タイル内の全マクロブロックについて実行すれば良い。
【００７９】
以下、上記の説明をまとめるため、図１の階層制御部１０４の処理手順を図１２乃至図１５のフローチャートに従って説明する。
【００８０】
＜Ｆｒｅｑｕｅｎｃｙモードにおける処理手順＞
システム制御部５２０は、ユーザが指定した符号化モード（Ｆｒｅｑｕｅｎｃｙモード、Ｓｐａｔｉａｌモードのいずれか）を判定し、その判定結果を制御信号として、階層制御部１０４に供給する。以下に説明する処理は、システム制御部５２０からの信号がＦｒｅｑｕｅｎｃｙモードを示す場合の階層制御部１０４の処理である。階層制御部１０４は、図１２のフローチャートに従って、ＪＰＥＧ  ＸＲにおける直交変換を実行する。なお、ここでは、１つのタイル内に含まれるマクロブロック（１６×１６画素）の数はＮであるものとして説明する。
【００８１】
また、以下の説明から明らかなように、階層制御部１０４は、メモリ制御部１０５、選択部１０２、第２の変換部１０３への設定の種類として３つある。
【００８２】
１つ目は、選択部１０２が選択するのが第１の変換部１０１からの直流成分を選択し、第２の変化部が直流成分を出力する設定（第１の設定）である。２つ目は、選択部１０２が選択するのが第１の変換部１０１からの直流成分を選択し、第２の変化部が交流成分を出力する設定（第２の設定）である。そして、３つ目は、選択部１０２がメモリ制御部１０５からの小ブロックを選択し、第２の変化部が交流成分を出力する設定（第３の設定）である。そして、Ｆｒｅｑｕｅｎｃｙモードでは、３つの段階に分けで、タイルに対する変換係数を出力する。すなわち、第１の段階では、タイルに包含される各マクロブロックの直流成分を出力し、それに後続する第２の段階では、タイルに包含される各マクロブロックのＬＰ係数を出力する。そして、第２の段階に後続する第３の段階では、タイルに包含される各マクロブロックのＨＰ係数を出力する。以下は、その具体的な処理例である。
【００８３】
先ず、階層制御部１０４はマクロブロックを特定する変数ｉを“１”で初期化する（Ｓ１）。次いで、階層制御部１０４は、選択部１０２が第１の変換部１０１からのデータを選択出力するための制御信号を出力し、且つ、第２の変換部１０３に対してはＰＣＴ変換によるＤＣ係数のみを出力するよう制御信号を出力する。そして、階層制御部１０４はメモリ制御部１０５に対して、第ｉ番目のマクロブロック（１６×１６画素）を読出すよう制御信号を出力する。この結果、第１の変換部１０１は、第ｉ番目のマクロブロック内の４×４個の各小ブロックのＤＣ係数を算出し、第２の変換部１０３は４×４個の小ブロックＤＣ係数からマクロブロックのＤＣ係数を算出し、出力することになる（Ｓ２）。この後、階層制御部１０４は、変数ｉを“１”だけ増加させ（Ｓ３）、着目タイル内の全マクロブロックのＤＣ係数の算出＆出力を終えたか否かを判断する（Ｓ４）。否の場合には、上記のＳ２乃至Ｓ４を繰り返す。
【００８４】
着目タイル内の全マクロブロックのＤＣ係数の算出及び出力を終えると、階層制御部１０４は、変数ｉを再び“１”に初期化する（Ｓ５）。そして、階層制御部１０４は、選択部１０２が第１の変換部１０１からのデータを選択出力するための制御信号を出力し、且つ、第２の変換部１０３に対してはＰＣＴ変換によるＡＣ係数のみを出力するよう制御信号を出力する。そして、階層制御部１０４はメモリ制御部１０５に対して、第ｉ番目のマクロブロックを読出すよう制御信号を出力する。この結果、第１の変換部１０１は、第ｉ番目のマクロブロック内の４×４個の各小ブロックのＤＣ係数を算出し、第２の変換部１０３は４×４個の小ブロックＤＣ係数からマクロブロックのＬＰ係数を算出し、出力することになる（Ｓ６）。この後、階層制御部１０４は、変数ｉを“１”だけ増加させ（Ｓ７）、着目タイル内の全マクロブロックのＬＰ係数の算出＆出力を終えたか否かを判断する（Ｓ８）。否の場合には、上記のＳ６乃至Ｓ８を繰り返す。
【００８５】
着目タイル内の全マクロブロックのＬＰ係数の算出及び出力を終えると、階層制御部１０４は、変数ｉを再び“１”に初期化する（Ｓ９）。そして、階層制御部１０４は、選択部１０２がメモリ制御部１０５からのデータを選択出力するための制御信号を出力し、且つ、第２の変換部１０３に対してはＰＣＴ変換によるＡＣ係数のみを出力するよう制御信号を出力する。そして、階層制御部１０４はメモリ制御部１０５に対して、第ｉ番目のマクロブロックを読出すよう制御信号を出力する。この結果、第２の変換部１０３はマクロブロック内の４×４画素を単位に、ＰＣＴ変換し、その結果得られた１５個のＡＣ成分をＨＰ係数の一部として出力することになる（Ｓ１０）。この後、階層制御部１０４は、変数ｉを“１”だけ増加させ（Ｓ１１）、着目タイル内の全マクロブロックのＨＰ係数の算出＆出力を終えたか否かを判断する（Ｓ１２）。否の場合には、上記のＳ１０乃至Ｓ１２を繰り返し、是なら着目タイルに対する直交変換処理を終える。
【００８６】
ここで、上記のステップＳ２の詳細を、図１３のフローチャートに従って説明する。先ず、階層制御部１０４は変数ｊを“１”で初期化する（Ｓ２１）。この変数ｊは、着目マクロブロック（図１２の第ｉ番目のマクロブロック）内の小ブロック（４×４画素）を特定するための変数である。次に、階層制御部１０４は、第ｊ番目の小ブロックの画像データを第１の変換部１０１に供給することで、その小ブロックのＤＣ係数を算出させる（Ｓ２２）。
【００８７】
第１の変換部１０１は、先に説明したように、ＰＣＴ変換におけるＤＣ係数のみを高速に算出するため、それに特化した回路構成となっている。ＪＰＥＧ  ＸＲによると、４×４画素で構成される小ブロックを４画素で構成される４つのサブブロックに区分し、各サブブロック毎にアダマール変換を行って４つのサブブロックＤＣ係数を算出し、更に、得られた４つのサブブロックＤＣ係数に対して再度アダマール変換を行うことで、小ブロックに対する１個のＤＣ係数を算出することが求められる。
【００８８】
本願発明者等は、１つのサブブロックに着目したとき、そのサブブロック内のデータの総和値が偶数であるなら、その総和値を２で割った値と、そのサブブロックのサブブロックＤＣ係数データが示す値は等しいことを見出した。つまり、着目サブブロックに対する、１段目の整数可逆アダマール変換では丸め誤差が発生しない。更に、本願発明者等は、着目サブブロックにおけるデータの総和値が奇数の場合、その総和値を２で割った値には、０．５の小数データが付く。この小数点を切り上げた値が、ＪＰＥＧ−ＸＲと互換性のある整数のサブブロックＤＣ係数データの値になることを見出した。そして、本願発明者等は、各サブブロックのＤＣ係数の総和を２で除算した整数部分が、小ブロックのＤＣ係数と等しいことも見出した。
【００８９】
奇数か偶数かの判定は、パリティ判定であると言える。そこで、４×４画素で構成される小ブロック内をラスタースキャンした際の各画素値をＤａｔａ［０］乃至Ｄａｔａ［１５］とし、４つのサブブロックのパリティをＰ０乃至Ｐ３（偶数の場合に０、奇数の場合に１）としたとき、求める小ブロックのＤＣ係数は以下のように算出できることを見出した。。
sum0 = Data[0] + Data[3] + Data[12] + Data[15];
sum1 = Data[1] + Data[2] + Data[13] + Data[14];
sum2 = Data[4] + Data[7] + Data[8]  + Data[11];
sum3 = Data[5] + Data[6] + Data[9]  + Data[10];
P0 = sum0 ＆ 1;
P1 = sum1 ＆ 1;
P2 = sum2 ＆ 1;
P3 = sum3 ＆ 1;
sum = sum0 + sum1 + sum2 + sum3 + P0 + P1 + P2 + P3;
DC = sum ＞＞ 2;                    …（１）
（ここで、“＆”はビットどうしの論理積を示す演算子、“＋”は加算を示す演算子、“＞＞”はビットシフト演算子を示す。すなわち、“ｘ＞＞２”は、ｘを下位方向に２ビットシフトした際の整数部分を返す。）
上記式（１）は、要するに４×４画素の小ブロックの画素値の合計に、各サブブロックのパリティ値を加算し、その結果を４で除算して小数部を切り捨てれば、結果的に小ブロックのＤＣ係数を算出できることを意味する。そして、式（１）の演算は、交流成分には適用できないものの、ＪＰＥＧ  ＸＲにおけるＰＣＴ演算と比較して、遥かに単純な回路で、しかも高速に直流成分ＤＣを演算できることを示しているのは、当業者であれば容易に理解できよう。特に、２ビットシフトに係る構成は、算出した「ｓｕｍ」のデータバスの信号線２本（２ビット）をずらして配線すれば良いだけなので、格別なハードウェアは必要ないし、そのためにクロックを消費することもない。
【００９０】
図１３のフローチャートの説明に戻る。１つの小ブロックのＤＣ係数の算出＆出力を終えると、階層制御部１０４は、変数ｊを“１”だけ増加させる（Ｓ２３）。１つのマクロブロックには４×４個の小ブロックが含まれる。そこで、階層制御部１０４は、変数ｊと“１６”とを比較することで、第１の変換部１０１による、着目マクロブロック内の全小ブロックのＤＣ係数の算出＆出力を終えたか否かを判断する（Ｓ２４）。否の場合には、上記のＳ２２乃至Ｓ２４を繰り返す。また、階層制御部１０４が、着目マクロブロック内の全小ブロックのＤＣ係数の算出＆出力を終えたと判断した場合、４×４個の小ブロックのＤＣ係数が揃ったことになるので、第２の変換部１０３によるＰＣＴ変換を行なわせ、その際に得られた１個のＤＣ係数を、着目マクロブロックのＤＣ係数として出力する。
【００９１】
図１２におけるＳ６の処理は、図１３のフローチャートにおけるＳ２５が異なるだけである。すなわち、階層制御部１０４は、第２の変換部１０３に対して、ＰＣＴ変換した際に得られた１５個のＡＣ成分をＬＰ成分として出力する制御信号を発行（代わりにＤＣ成分は破棄）すればよい。
【００９２】
次に、図１２におけるＳ１０の詳細を、図１４のフローチャートに従って説明する。先ず、階層制御部１０４は変数ｊを“１”で初期化する（Ｓ３１）。この変数ｊは、着目マクロブロック内の小ブロックを特定するための変数である。次に、階層制御部１０４は、第ｊ番目の小ブロックの画像データを第２の変換部１０３に供給することで、その小ブロックの１５個のＡＣ成分を算出させ、算出した１５個のＡＣ成分をＨＰ係数として出力させる。（Ｓ３２）。１つの小ブロックのＨＰ係数の算出＆出力を終えると、階層制御部１０４は、変数ｊを“１”だけ増加させる（Ｓ３３）。そして、階層制御部１０４は、第１の変換部１０２による、変数ｊと“１６”とを比較することで、第２の変換部１０３による、着目マクロブロック内の全小ブロックのＨＰ係数の算出＆出力を終えたか否かを判断する（Ｓ３４）。否の場合には、上記のＳ３２乃至Ｓ２４を繰り返す。また、階層制御部１０４が、着目マクロブロック内の全小ブロックのＨＰ係数の算出＆出力を終えたと判断した場合、本処理を終える。
【００９３】
＜Ｓｐａｔｉａｌモードにおける処理手順＞
次にシステム制御部５２０からの信号がＳｐａｔｉａｌモードを示す場合の階層制御部１０４の処理を図１５のフローチャートに従って説明する。ここでも、１つのタイル内に含まれるマクロブロック（１６×１６画素）の数はＮであるものとして説明する。
【００９４】
先ず、階層制御部１０４はマクロブロックを特定する変数ｉを“１”で初期化する（Ｓ４１）。次いで、階層制御部１０４は、選択部１０２が第１の変換部１０１からのデータを選択出力するための制御信号を出力し、且つ、第２の変換部１０３に対してはＰＣＴ変換によるＤＣ係数のみを出力するよう制御信号を出力する。そして、階層制御部１０４はメモリ制御部１０５に対して、第ｉ番目のマクロブロック（１６×１６画素）を読出すよう制御信号を出力する。この結果、第１の変換部１０１は、第ｉ番目のマクロブロック内の４×４個の各小ブロックのＤＣ係数を算出し、第２の変換部１０３は４×４個の小ブロックＤＣ係数からマクロブロックのＤＣ係数を算出し、出力することになる（Ｓ４２）。次いで、階層制御部１０４は、選択部１０２が第１の変換部１０１からのデータを選択出力するための制御信号を出力し、且つ、第２の変換部１０３に対してはＰＣＴ変換によるＡＣ係数のみを出力するよう制御信号を出力する。そして、階層制御部１０４はメモリ制御部１０５に対して、第ｉ番目のマクロブロックを読出すよう制御信号を出力する。この結果、第１の変換部１０１は、第ｉ番目のマクロブロック内の４×４個の各小ブロックのＤＣ係数を算出し、第２の変換部１０３は４×４個の小ブロックＤＣ係数からマクロブロックのＡＣ係数を算出し、それをＬＰ係数データとして出力することになる（Ｓ４３）。次いで、階層制御部１０４は、選択部１０２がメモリ制御部１０５からのデータを選択出力するための制御信号を出力し、且つ、第２の変換部１０３に対してはＰＣＴ変換によるＡＣ係数のみを出力するよう制御信号を出力する。そして、階層制御部１０４はメモリ制御部１０５に対して、第ｉ番目のマクロブロックを読出すよう制御信号を出力する。この結果、第２の変換部１０３は４×４個の小ブロックからＡＣ成分を算出し、それをＨＰ係数データとして出力することになる（Ｓ４４）。
【００９５】
この後、階層制御部１０４は、変数ｉを“１”だけ増加させ（Ｓ４５）、着目タイル内の全マクロブロックの係数の算出＆出力を終えたか否かを判断する（Ｓ４６）。否の場合には、上記のＳ４２乃至Ｓ４５を繰り返す。
【００９６】
上記の処理において、Ｓ４２の処理は、Ｓ２の処理と同じである。また、Ｓ４３の処理はＳ６と同じであり、Ｓ４４の処理はＳ１０の処理を同じである。
【００９７】
ただし、上記のＳ４２、４３のいずれか一方を省略しても良い。すなわち、他方の処理における第２の変換部１０３によるＰＣＴ変換で得られた着目マクロブロックのＤＣ係数、ＡＣ係数をその順番に出力するようにしても良いからである。
【００９８】
以降に説明する第２の実施形態以降では、主としてＦｒｅｑｕｅｎｃｙモードを説明する。ＦｒｅｑｕｅｎｃｙモードとＳｐａｔｉａｌモードとの違いは、図１２と図１５に示すように、タイル単位にＤＣ、ＬＰ、ＨＰの係数をこの順番に出力するか、マクロブロック単位にＤＣ、ＬＰ、ＨＰの係数をこの順番に出力するかの違いである。従って、当業者であれば、以下に説明する第２の実施形態におけるＳｐａｔｉａｌモードは、それぞれのＦｒｅｑｕｅｎｃｙモードの説明と図１５のフローチャートから容易に理解できるであろうから、Ｓｐａｔｉａｌモードについては省略することとする。
【００９９】
以上説明したように、本第１の実施形態によれば、１マクロブロックに対する直交変換で、マクロブロックの直流成分、ＬＰ成分、ＨＰ成分を得るために、画像記憶部１０６に対して１画素当たり最大でも３回のアクセス（読出し）で実現できる。また、Ｆｒｅｑｕｅｎｃｙモードにおいても、このアクセス回数で実現できることになり、高速な符号化処理が実現できる。特に第１の変換部１０１は、ＰＣＴ変換における直流成分のみの算出に特化した構成とすることで、その直流成分の算出はこれまでと比べて遥かに短時間（少ないクロック数）で算出でき、符号化速度を更に短縮できる。
【０１００】
［第２の実施形態］
本発明における第２の実施形態を説明する。図１０が、本第２の実施形態における直交変換部９０１内の一部の構成である。本第２の実施形態における直交変換部９０１は、画像記憶部１００６、メモリ制御部１００５、第１の変換部１００１、第１の選択部１００２、第２の変換部１００２、階層制御部１００４、ＬＰ記憶部１００７、及び、第２の選択部１００８から構成される。
【０１０１】
但し、図１０のメモリ制御部１００５は、図５のメモリ制御部５０７に対応し、図１の画像記憶部１００６は、図５のメモリ５０５に対応する。
【０１０２】
ここでは、説明を簡単にするため、第１の実施形態における図１との差違について説明する。図１０に示すように、本第２の実施形態の場合、２つの記憶部を有する。第１の記憶部は画像記憶部１００６に対応し、第２の記憶部はＬＰ記憶部１００７に対応する。画像記憶部１００６は、図１の画像記憶部１０６（図５のメモリ５０５）に対応する。メモリ制御部１００５は、図１のメモリ制御部１０５（図５のメモリ制御部５０７）に対応する。第１の変換部１００１は、図１の第１の変換部１０１に対応する。第１の選択部１００２は、図１の選択部１０２に対応する。
【０１０３】
第２の変換部１００３は、入力された４×４個のデータに対して可逆変換であるＰＣＴを施し、タイルのＤＣ係数、または、ＨＰに相当する係数を第２の選択部へ出力し、ＬＰに相当する係数をＬＰ記憶部１００７へ出力し記憶させる。階層制御部１００４は、図１の階層制御部１０４に対応する。ＬＰ記憶部１００７は、第２の変換部から出力されたＬＰに相当する係数（１５個）を記憶する。第２の選択部１００８は、第２の変換部１００３から出力された係数データ（ＤＣ、or、ＨＰ）、もしくは、ＬＰ記憶部１００７から読み出されたＬＰ係数のいずれか一方を出力する。
【０１０４】
以下、本第２の実施形態におけるＤＣからＨＰまで全ての係数を符号化する場合の構成と処理手順について説明する。以下では、１つのＭＢを符号化する為の符号化の動作について説明するが、同様の動作は、タイル内の他のＭＢに対しても行われることになる点に注意されたい。尚、説明を簡単にするため、図１と同様の処理部については、説明を省略する。
【０１０５】
まず、タイル内のＤＣの演算、および、出力手順について説明する。
【０１０６】
第１の変換部１００１は、メモリ制御部１００５が読み出した画像記憶部１００６に記憶された符号化対象画像から、４×４画素で構成される小ブロックを入力し、その小ブロックの直流成分のみを算出して出力する。この第１の変換部１００１は、ＰＣＴ演算のＤＣ係数のみを算出する部分だけと言えば分かりやすい。第２の変換部１００３は、選択部１００２を通じて、第１の変換部１００１からの直流成分が４×４個になるたびに、ＰＣＴ演算を施す。そして、第２の変換部１００３は、ＰＣＴ演算によって得られた直流成分（ＤＣ係数）を第２の選択部１００８へ送出し、交流成分（ＬＰ係数）をＬＰ記憶部１００７へ送出する。第２の選択部１００８は、第２の変換部１００３から取得されたＤＣを出力する。このとき、階層制御部１００４は、第１の選択部１００２が第１の変換部１００１から入力されたデータを選択出力し、第２の選択部１００８が第２の変換部１００３から入力されたＤＣ係数を選択出力するように選択信号を送出する。以上の操作を着目タイル内の全マクロブロックのＤＣ係数を全て出力するまで繰り返す。
【０１０７】
次に、タイル内のＬＰ係数の演算、および、出力手順について説明する。第２の変換部１００３では、各マクロブロックＤＣ係数の演算と同時に、ＬＰの演算を行い、ＬＰ係数をＬＰ記憶部１００７で記憶している。そのため、タイル内の全マクロブロックのＤＣ係数を出力が終わると同時に、ＬＰ記憶部１００７からＬＰ係数を読出し、第２の選択部１００８を通じてＬＰ係数を出力する。このとき、階層制御部１００４は、第２の選択部１００８がＬＰ記憶部１００７から読出したＬＰ係数を選択出力するよう制御する。以上の操作をタイル内のＬＰ係数を全て出力するまで繰り返す。
【０１０８】
次に、タイル内のＨＰ係数の演算、および、出力手順について説明する。メモリ制御部１００５は、画像記憶部１００６から符号化対象となる画像を読出す。第２の変換部１００３は、第１の選択部１００２を通じて、メモリ制御部１００５から取得した画像データに対してＰＣＴ演算を施す。第２の変換部１００３は、ＰＣＴ演算によって得られた交流成分（ＨＰ係数）を第２の選択部１００８へ送出し、算出された直流成分は破棄する。このとき、階層制御部１００４は、第２の選択部１００８が第２の変換部１００３から取得したＨＰ係数を出力するよう制御する。以上の操作をタイル内のＨＰ係数を全て出力するまで繰り返す。
【０１０９】
以上、ＪＰＥＧ  ＸＲにおけるＦｒｅｑｅｎｃｙモードのストリームを生成する全係数をタイル単位で出力する構成、および、処理手順について説明した。
【０１１０】
第２の実施形態では、例えば、ＤＣ係数からＨＰ係数まで全ての階層の係数を符号化する場合は、画像記憶部１００６から符号化対象画像を２回読み出すことになる。一方、ＤＣ係数のみを符号化する場合は、上記ＤＣ係数の処理手順のみを行えばよく、メモリ制御部１００５による画像記憶部１００６からの符号化対象画像の読出し回数は、１回のみとなる。また、ＨＰ係数を符号化しない場合、すなわち、ＤＣ係数、および、ＬＰ係数のみを符号化する場合は、上記ＤＣ係数の処理手順、および、ＬＰ係数の処理手順のみを行い、メモリ制御部１００５による画像記憶部１００６の符号化対象画像の読出し回数は１回となる。
【０１１１】
このように、第２の実施形態の直交変換部９０１は、各階層の係数予測誤差をタイル毎に符号化するＦｒｅｑｕｅｎｃｙモードにおいて、ＬＰ係数算出のためだけに、符号化対象画像を画像記憶部１００６から読み出すことはない。そのため、第１の実施形態よりもメモリ容量は増えるが、メモリ帯域を削減することを可能になり、高速に処理することが可能になる。
【０１１２】
［第３の実施形態］
本発明における第３の実施形態を説明する。図３が、本第３の実施形態における直交変換部９０１内の一部の構成である。本第３の実施形態における直交変換部９０１は、画像記憶部３０６、メモリ制御部３０５、第１の変換部３０１、第１の選択部３０２、第２の変換部３０４、第３の変換部３０３、第２の選択部３０７、および、階層制御部３０８から構成される。
【０１１３】
画像記憶部３０６は、図１の画像記憶部１０６に対応する。メモリ制御部３０５は、図１のメモリ制御部１０５に対応する。第１の変換部３０１は、図１の第１の変換部１０１に対応する。第１の選択部３０２は、図１の選択部１０２に対応する。第２の変換部３０４は、入力データに対して４ｘ４の可逆変換であるＰＣＴを施して、交流成分を出力する。第３の変換部３０３は、入力データに対してＰＣＴの直流成分のみを算出して出力する。第２の選択部３０７は、第３の変換部３０３から入力された直流成分、もしくは、第２の変換部３０４から入力された交流成分のいずれか一方を出力する。階層制御部３０８は、処理対象階層に応じて、第１の選択部３０２、および、第２の選択部３０７を制御する。尚、メモリ制御部３０５は、図５のメモリ制御部５０７に対応し、画像記憶部３０６は、図５のメモリ５０５に対応している。
【０１１４】
では、第３の実施形態の処理手順について説明する。
【０１１５】
以下、図５の構成に基づき、ＤＣ係数からＨＰ係数まで全ての係数を符号化する場合の構成と処理手順について説明する。以下では、１つのＭＢを符号化する為の符号化の動作について説明するが、同様の動作は、タイル内の他のＭＢに対しても行われることになる点に注意されたい。また、ここでは、説明を簡単にするため、第１の実施形態における図１との差違について説明する。
【０１１６】
まず、タイル内のＤＣ係数の演算、および、出力手順について説明する。第１の変換部３０１は、メモリ制御部３０５が読み出した画像記憶部３０６に記憶された符号化対象画像中の着目マクロブロックＭＢから、４×４画素で構成される小ブロックを入力し、その小ブロックの直流成分のみを算出して出力する。第３の変換部３０３は、第１の変換部３０１から入力された同一ＭＢ属する４×４個の小ブロックの直流成分でブロックを構成し、再び直流成分のみを算出して送出する。さらに、第２の選択部３０７は、第３の変換部３０３から入力されたデータをマクロブロックの『ＤＣ係数』として出力する。このとき、階層制御部３０８は、第２の選択部３０３が第２の変換部３０４から入力されたＤＣ係数を出力するよう制御する。以上の操作をタイル内の全マクロブロックのＤＣ係数を全て出力するまで繰り返す。
【０１１７】
次に、タイル内のＬＰ係数の演算、および、出力手順について説明する。第１の変換部３０１は、メモリ制御部３０５が読み出した画像記憶部３０６に記憶された符号化対象画像から、直流成分のみを算出して出力する。第２の変換部３０４では、第１の選択部３０２を通じて、第１の変換部３０１から取得した４×４個の小ブロックの直流成分からブロックを構成し、ＰＣＴ演算を施し、交流成分のみを出力する。このとき、階層制御部３０８は、第１の選択部３０２が第１の変換部からの入力データを出力し、第２の選択部３０７が第２の変換部３０４からの入力データを出力するように選択信号を送出する。以上の操作をタイル内のＬＰ係数を全て出力するまで繰り返す。
【０１１８】
そして、タイル内のＨＰ係数の演算、および、出力手順について説明する。メモリ制御部３０５は、画像記憶部３０６から符号化対象となる画像を読出す。第２の変換部３０４は、第１の選択部３０２を通じて、メモリ制御部３０５から取得した画像データに対してＰＣＴ演算を施し、交流成分（ＨＰ係数）のみを第２選択部３０２に出力する。このとき、階層制御部３０８は、第１の選択部３０２はメモリ制御部３０５からの入力画像データを出力し、第２の選択部３０７は第２の変換部３０４からの入力データであるＨＰ係数を出力するよう選択信号を送出する。以上の操作をタイル内のＨＰ係数を全て出力するまで繰り返す。
【０１１９】
以上、ＪＰＥＧ  ＸＲにおけるＦｒｅｑｅｎｃｙモードのストリームを生成するため、全係数をタイル単位で出力する構成、および、処理手順について説明した。
【０１２０】
本第３の実施形態では、例えば、ＤＣ係数からＨＰ係数まで全ての係数を符号化する場合は、３回符号化対象画像を読み出すことになる。一方、ＤＣのみを符号化する場合は、上記処理手順のＤＣ係数の処理手順のみを行えばよく、メモリ制御部１０５による画像記憶部３０６からの符号化対象画像の読出し回数は、１回のみとなる。また、ＨＰ係数を符号化しない場合、すなわち、ＤＣ係数、および、ＬＰ係数のみを符号化する場合は、上記処理手順のＤＣ係数の処理手順、および、ＬＰ係数の処理手順のみを行う。このとき、メモリ制御部３０５による画像記憶部３０６からの符号化対象画像の読出し回数は、２回となる。このようにして、第３の実施形態の直交変換部は、各階層の係数予測誤差をタイル毎に符号化するＦｒｅｑｕｅｎｃｙモードにおいて、符号化に必要となる階層係数を無駄なく高速に演算することが可能となる。
【０１２１】
［第４の実施形態］
本発明における第４の実施形態を説明する。図１１が、本第３の実施形態における直交変換部９０１内の一部の構成である。本第３の実施形態における直交変換部９０１は、画像記憶部１１０６、メモリ制御部１１０５、第１の変換部１１０１、第１の選択部１１０２、第２の変換部１１０４、第３の変換部１１０３、第２の選択部１１０９、ＬＰ記憶部１１０７、および、階層制御部１１０８から構成される。
【０１２２】
但し、図１１のメモリ制御部１１０５は、図５のメモリ制御部５０７に対応し、図１の画像記憶部１１０６は、図５のメモリ５０５に対応する。
【０１２３】
ここで、画像記憶部１１０６は、図３の画像記憶部３０６に対応する。メモリ制御部１１０５は、図３のメモリ制御部３０５に対応する。第１の変換部１１０１は、図３の第１の変換部３０１に対応する。第１の選択部１１０２は、図３の第１の選択部３０２に対応する。第２の変換部１１０４は、図３の第２の変換部３０４に対応する。第３の変換部１１０３は、図３の第３の変換部３０３に対応する。ＬＰ記憶部１１０７は、第２の変換部１１０４から入力されたＬＰに相当する交流成分を記憶する。
【０１２４】
第２の選択部１１０９は、第３の変換部３０３から入力されたＤＣ、もしくは、ＬＰ記憶部１１０７から入力されたＬＰ、もしくは、第３の変換部１１０４から入力されたＨＰのいずれかを選択出力する。
【０１２５】
階層制御部１１０８は、各処理対象階層のタイミングに応じて、第１の選択部１１０２、および、第２の選択部１１０９を制御する制御信号を出力する。尚、メモリ制御部１１０５は、図５のメモリ制御部５０７に対応し、画像記憶部１１０６は、図５のメモリ５０５に対応している。では、第４の実施形態の処理手順について説明する。
【０１２６】
以下では、１つのＭＢを符号化する為の符号化の動作について説明するが、同様の動作は、タイル内の他のＭＢに対しても行われることになる点に注意されたい。
【０１２７】
まず、タイル内のＤＣ係数の演算、および、出力手順について説明する。第１の変換部１１０１は、メモリ制御部１１０５が読み出した画像記憶部１１０６に記憶された符号化対象画像中の着目マクロブロックＭＢから、４×４画素で構成される小ブロックを入力し、その小ブロックの直流成分のみを算出する。そして、第１の変換部１１０１は、算出した小ブロックの直流成分を第３の変換部１１０３に出力する。そして、第３の変換部１１０３は、第１の変換部３０１から入力された４×４個の直流成分から小ブロックを構成し、再び直流成分のみを算出して出力する。この直流成分が着目マクロブロックの『ＤＣ係数』に相当する。
【０１２８】
一方、第２の変換部１１０４では、第１の選択部１１０２を通じて、第１の変換部１１０１から取得された直流成分からブロックを構成してＰＣＴ処理を施し、交流成分のみを出力する。そして、ＬＰ記憶部１１０７は、第２の変換部１１０４から取得した交流成分、すなわち、『ＬＰ係数』を記憶する。このとき、階層制御部１１０８は、第１の選択部１１０２が第１の変換部１１０１から取得した直流成分を出力し、第２の選択部１１０９が第３の変換部１１０３から取得したＤＣ係数を出力するよう制御する。つまり、第３の変換部１１０３と第２の変換部１１０４は、並列に処理することになる。そして、以上の操作をタイル内の全マクロブロックのＤＣを全て出力するまで繰り返す。
【０１２９】
次に、タイル内のＬＰの演算、および、出力手順について説明する。第２の選択部１１０９は、先のＤＣ係数の演算過程でＬＰ記憶部１１０７に記憶したＬＰ係数を出力する。言うまでもないが、このとき、階層制御部１１０８は、第２の選択部１１０９がＬＰ記憶部から入力されたＬＰ係数を出力するように選択信号を送出する。以上の操作をタイル内の全マクロブロックのＬＰ係数が出力されるまで繰り返す。
【０１３０】
次に、タイル内のＨＰ係数の演算、および、出力手順について説明する。メモリ制御部１１０５は、画像記憶部１１０６から符号化対象となる画像を読出す。第２の変換部１１０４は、第１の選択部１１０２を通じて、メモリ制御部１１０５から入力された画像データに対してＰＣＴ演算を施す。第２の変換部１１０４は、ＰＣＴ演算によって得られた交流成分（ＨＰ係数）のみを出力する。このとき、階層制御部１１０８は、第１の選択部１１０２はメモリ制御部１１０５から入力された画像データを出力し、第２の選択部１１０９は第２の変換部１１０４から入力されたＨＰ係数を出力するよう制御する。以上の操作をタイル内のＨＰ係数を全て出力するまで繰り返す。
【０１３１】
以上、ＪＰＥＧ  ＸＲにおけるＦｒｅｑｅｎｃｙモードのストリームを生成するため、全階層の係数をタイル単位で出力する構成、および、処理手順について説明した。
【０１３２】
第４の実施形態では、例えば、ＤＣ係数からＨＰ係数まで全ての係数を符号化する場合は、２回符号化対象画像を読み出すことになる。一方、ＤＣ係数のみを符号化する場合は、上記処理手順のＤＣ演算出力の手順のみを行えばよく、メモリ制御部１１０５による画像記憶部１１０６からの符号化対象画像の読出し回数は、１回のみとなる。また、ＨＰ係数を符号化しない場合、すなわち、ＤＣ係数、および、ＬＰ係数のみを符号化する場合は、上記処理手順のＤＣ係数の処理手順、および、ＬＰ係数の処理手順のみを行う。そのため、メモリ制御部１１０５による画像記憶部１１０６からの符号化対象画像の読出し回数は、１回となる。
【０１３３】
このようにして、第４の実施形態の直交変換部は、各階層の係数予測誤差をタイル毎に符号化するＦｒｅｑｕｅｎｃｙモードにおいて、符号化に必要となる階層係数を無駄なく演算し、メモリ帯域を削減することが可能となる。なお、第４の実施形態における第３の変換部１１０３は、入力した４×４個の小ブロックＤＣ係数から、直流成分のみを算出すればよいので、この第３の変換部１１０３は第１の変換部１１０１（第１の実施形態の第１の変換部１０１）と同じ構成で実現できる。
【０１３４】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１３５】
また、上記実施形態では、デジタルカメラの符号化部に適用する例を説明したが、符号化対象の画像データの発生源は撮像素子に限らず、無圧縮の画像ファイルでも良い。また、符号化後の画像データの出力先も記憶媒体のみ限らず、ネットワーク上に送信する形態でも構わない。すなわち、本願発明は、一般に画像符号化装置に適用できる。
【図１】
0005520122.tif 000002
【図２】
0005520122.tif 000003
【図３】
0005520122.tif 000004
【図４】
0005520122.tif 000005
【図５】
0005520122.tif 000006
【図６】
0005520122.tif 000007
【図７】
0005520122.tif 000008
【図８】
0005520122.tif 000009
【図９】
0005520122.tif 000010
【図１０】
0005520122.tif 000011
【図１１】
0005520122.tif 000012
【図１２】
0005520122.tif 000013
【図１３】
0005520122.tif 000014
【図１４】
0005520122.tif 000015
【図１５】
0005520122.tif 000016