(57)【要約】  【課題】  外部メモリを使用せずに画像処理部から符号化部へデータを転送でき、また、外部メモリより帯域の広い内部転送によって高速な処理が可能となる。  【解決手段】  原画像の画像全体４１が６個の（６４×４）画素のブロックに分割される。各ブロック毎に拡大処理がなされる。１，２，３，・・・と付した番号の順に各ブロックのデータが読み出される。第１番目のブロックがサイズ変更部によって処理され、（１２８×８）画素のブロック４２の画像データが生成される。この画像データ４２から（１６×８）画素のマクロブロック４３の単位が読み出され、符号化され、ＪＰＥＧデータ４４が得られる。符号並べ替え部によってＪＰＥＧデータ４６の順序をブロックを単位として並び替え、ＪＰＥＧデータ４８を生成する。この順序のＪＰＥＧデータ４８を復号すると、原画像の領域４１とブロックの順序が一致した復号画像４９が得られる。【選択図】  図１３
2006238407.tif 000002
【特許請求の範囲】
【請求項１】
画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化を行う画像処理装置において、
符号化部が画像処理部から出力されるデータ順で符号化を行い、
上記画像処理部の処理方向から上記符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う並べ替え部を備える画像処理装置。
【請求項２】
請求項１において、
上記並べ替え部は、上記画像処理部から出力されるデータの内で、上記正規の処理方向と一致するデータ単位を符号化した符号化データ単位で並べ替えを行う画像処理装置。
【請求項３】
請求項１において、
上記正規の処理方向と一致するデータ単位の長さが複数種類存在し、上記複数種類の長さの合計が画像の横幅と一致する画像処理装置。
【請求項４】
請求項１において、
上記画像処理部から出力されるデータの単位は、縦横ともに上記符号化部の符号化単位の整数倍である画像処理装置。
【請求項５】
請求項１において、
上記符号化部は、データの圧縮と可変長符号化を行う符号器であり、上記正規の処理方向と一致するデータ単位を符号化した符号化データ単位毎に予め規定された値の区切りコードを挿入する画像処理装置。
【請求項６】
請求項５において、
上記符号化部は、上記区切りコードの後では、上記正規の処理方向と一致する単位で他の上記単位と独立している符号を出力する画像処理装置。
【請求項７】
請求項５において、
上記並べ替え部は、上記区切りコードの値を書き換える画像処理装置。
【請求項８】
請求項５において、
上記符号化部は、ＪＰＥＧ符号器であり、上記並べ替え部は区切りコードの削除とそれに続くマクロブロックのＤＣ係数符号を変更する画像処理装置。
【請求項９】
請求項１において、
上記画像処理部の処理単位を１つの画像とみなして符号化を行うことにより複数の符号化データを生成し、上記正規の処理方向と一致する単位の上記符号化データを読み出し、読み出した上記符号化データを並べ替える画像処理装置。
【請求項１０】
請求項９において、
上記複数の符号化データの開始位置を等間隔のメモリアドレスとする画像処理装置。
【請求項１１】
複数の符号化単位からなる画像処理ブロック内で、画像の回転または反転を行う第１段階の処理を行い、上記第１段階の処理後のデータを出力する画像処理部と、
上記画像処理部から出力されるデータ順で、且つ所定の符号化単位で符号化を行う符号化を行う符号化部と、
上記画像処理部の処理方向から上記符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う第２段階の処理を行う第１の並べ替え部と、
上記画像処理単位を１要素とみなして上記第２段階の処理後のデータに対して所定の回転または反転を行う第３段階の処理を行う第２の並べ替え部と
を備える画像処理装置。
【請求項１２】
所定の符号化単位内で、画像の回転または反転を行う第１段階の処理を行い、上記第１段階の処理後のデータを出力する画像処理部と、
上記画像処理部から出力されるデータ順で、且つ上記符号化単位で符号化を行う符号化部と、
上記画像処理部の処理方向から上記符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う第２段階の処理を行う第１の並べ替え部と、
上記符号化単位を１要素とみなして上記第２段階の処理後のデータに対して所定の回転または反転を行う第３段階の処理を行う第２の並べ替え部と
を備える画像処理装置。
【請求項１３】
画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化を行う画像処理方法において、
画像処理部から出力されるデータ順で符号化を行う符号化ステップと、
上記画像処理部の処理方向から上記符号化で規定された正規の処理方向へ並べ替えを行う並べ替えステップとを有する画像処理方法。
【請求項１４】
画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化を行う画像処理方法をコンピュータに実行させるプログラムにおいて、
画像処理部から出力されるデータ順で符号化を行う符号化ステップと、
上記画像処理部の処理方向から上記符号化で規定された正規の処理方向へ並べ替えを行う並べ替えステップとを有する画像処理方法のプログラム。
【請求項１５】
撮像素子によって撮影された画像データに対して画像処理を行う画像処理部と、画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化する符号化部を有する撮像装置において、
符号化部が画像処理部から出力されるデータ順で符号化を行い、
上記画像処理部の処理方向から上記符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う並べ替え部を備える撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像信号の圧縮のための等に適用可能な符号化装置、符号化方法および符号化プログラム、並びに撮像装置に関する。
【背景技術】
【０００２】
画像の歪みを補正する処理、色収差を補正する処理、画像のサイズを拡大または縮小する処理等の画像処理がディジタルスチルカメラ等の撮像装置においてしばしばなされる。また、画像処理で発生した画像データをＪＰＥＧ（Joint Photographic Experts Group)
、ＭＰＥＧ(Moving Picture Experts Group Phase)等の圧縮符号化によって圧縮することが通常なされている。これらの圧縮符号化においては、マクロブロックと称される画像の単位で符号化を行うようにしている。
【０００３】
画像処理のためには、メモリからの画像データを読み出して補間等の処理がなされる。符号化を行う場合では、画像サイズの変換後の領域のサイズがマクロブロックの大きさに設定される。このように、画像サイズの変更処理において、画像サイズをマクロブロックのように小さな単位とするために、高速で画像データを読み出す必要が生じる問題があった。
【０００４】
また、画像処理においては、処理の対象とする領域の画像データのみならず、フィルタリング等のために、その領域に隣接する領域の画像データを必要とすることが多い。その場合には、なるべく大きなブロックサイズを単位として画像処理を行う方が小さいブロックサイズを単位とするのに比して効率を良くできる。この点について、図１を参照して説明する。
【０００５】
図１Ａは、斜線で示すような（８画素×８画素）を単位として画像処理を行う例である。縦横のそれぞれに２画素分の領域を処理に必要とするものと仮定すると、処理画素数が６４画素であり、有効処理画素数が（４画素×４画素＝１６画素）となり、効率（有効処理画素数／処理画素数＝２５％）となる。図１Ｂは、ブロックサイズを（１２８画素×１２８画素＝１６３８４画素）とする場合を示す。この場合では、処理画素数が１６３８４がで、有効処理画素数が（１２４画素×１２４画素＝１５３７６画素）となり、効率が９３％となる。さらに、図１Ｃは、横長のブロック例えば（２０４８画素×８画素＝１６３８４画素）とする例を示す。この場合では、有効処理画素数が（２０４４画素×４画素＝８１７６画素）となり、効率が４９％となる。なお、図１は、（３×３＝９）個の処理単位によって１枚の画像が構成される例を示す。
【０００６】
図２は、画像処理後のデータを例えばＪＰＥＧで符号化する例を示す。模式的に、図２では、（４×２）個のマクロブロックによって１枚の画像が構成されている。画像処理が水平方向に並ぶ４個のマクロブロックを単位としてなされると、その順序がＪＰＥＧで規定されている符号化の方向と一致しているので、画像処理で得られたデータがそのまま順にＪＰＥＧのエンコーダに転送されて符号化される。
【０００７】
図２では、画像の処理単位が横長の領域となるので、図３に示すように、（２×２）の４個のマクロブロック１〜４からなる領域を単位として画像処理を行う場合を考える。この場合には、処理後のマクロブロック１および２は、そのままエンコーダに転送してＪＰＥＧの符号化がなされる。マクロブロック３および４は、メモリに一時的に保管される。次の処理単位（マクロブロック５〜８からなる）において、処理後のマクロブロック５および６は、そのままエンコーダに転送してＪＰＥＧの符号化がなされる。マクロブロック７および８は、メモリに一時的に保管される。エンコーダにおいて、処理後のデータのマクロブロック１，２，５および６の符号化の後に、メモリに保管されていた処理後のデータのマクロブロック３，４，７および８が読み出され、読み出されたデータがエンコーダに対して転送される。
【０００８】
このように、画像処理の単位が整数個のマクロブロック、すなわち、符号化ブロックからなり、符号化ブロックの配列が符号化で規定されている順序と異なる場合には、後で符号化するデータの分をメモリに保管しておく必要がある。その結果、一時保管用のメモリが必要とされる問題がある。
【０００９】
この発明が適用できる画像処理の一例として、図４に示すような色収差補正がある。色収差を有する撮影画像Ｐから赤色画像Ｐｒ、緑色画像Ｐｇ、青色画像Ｐｂを分離する。色収差は、波長によってレンズの屈折率が異なることに起因し、原色画像間で同じ被写体であっても倍率が変化し、画像の大きさが変化する。各原色画像を解像度変換して同じ大きさの原色画像Ｐｒ’，Ｐｂ’，Ｐｇ’を成形し、これら原色画像を合成して色収差補正がなされた画像Ｐ’が得られる。この発明は、解像度変換の処理に対して適用できる。
【００１０】
図５は、この発明を適用できる他の画像処理を示す。画像が横方向および縦方向の両方向にバレル型に歪んでいる画像Ｐ１に対して第１段階の拡大を行い、画像Ｐ２を得る。第１段階の拡大は、横方向に拡大するもので、拡大率が中心から離れた位置ほど大きなものとされる。画像Ｐ２に対して第２段階の拡大がなされ、画像Ｐ３が得られる。第２段階の拡大は、画像Ｐ２を縦方向の拡大するものである。拡大率が中心から離れた位置ほど大きなものとされる。
【００１１】
この発明では、マクロブロックのような符号化ブロックを並べ替える処理を行っているが、従来では、マクロブロック単位の並べ替え処理を行うことが下記特許文献１に記載されている。特許文献１では、ＭＰＥＧのストリームを生成した後に、マクロブロック単位で並べ替えを行うことによって、受信側では、ＭＰＥＧストリームをそのまま復号しても画像を見ることができないようにするものである。
【００１２】
【特許文献１】特開平１１−２９８８７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上述したように、画像サイズ変換のような画像処理を行う場合に、圧縮符号化の符号化単位で画像データを切り出して符号化する時に、メモリからの読み出しを高速に行う必要が生じたり、大容量のメモリを必要とする問題が生じる。特許文献１に記載のものは、一旦正常なＭＰＥＧストリームを生成した後に並べ替え処理を行うものであるのに対して、この発明では、正規の順序と異なる画像処理部の出力順に符号化を行った後に正規の順序に並べ替えを行うものであり、特許文献１に記載のものと異なるものである。
【００１４】
したがって、この発明の目的は、高速読み出し処理および大容量メモリを必要とする問題点を解決することができる符号化装置、符号化方法および符号化プログラム、並びに撮像装置を提供することにある。
【課題を解決するための手段】
【００１５】
上述した課題を解決するために、この発明は、画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化を行う画像処理装置において、
符号化部が画像処理部から出力されるデータ順で符号化を行い、
画像処理部の処理方向から符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う並べ替え部を備える画像処理装置である。
【００１６】
この発明は、複数の符号化単位からなる画像処理ブロック内で、画像の回転または反転を行う第１段階の処理を行い、第１段階の処理後のデータを出力する画像処理部と、
画像処理部から出力されるデータ順で、且つ所定の符号化単位で符号化を行う符号化を行う符号化部と、
画像処理部の処理方向から符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う第２段階の処理を行う第１の並べ替え部と、
画像処理単位を１要素とみなして第２段階の処理後のデータに対して所定の回転または反転を行う第３段階の処理を行う第２の並べ替え部と
を備える画像処理装置である。
【００１７】
この発明は、所定の符号化単位内で、画像の回転または反転を行う第１段階の処理を行い、第１段階の処理後のデータを出力する画像処理部と、
画像処理部から出力されるデータ順で、且つ符号化単位で符号化を行う符号化部と、
画像処理部の処理方向から符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う第２段階の処理を行う第１の並べ替え部と、
符号化単位を１要素とみなして第２段階の処理後のデータに対して所定の回転または反転を行う第３段階の処理を行う第２の並べ替え部と
を備える画像処理装置である。
【００１８】
この発明は、画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化を行う画像処理方法において、
画像処理部から出力されるデータ順で符号化を行う符号化ステップと、
画像処理部の処理方向から符号化で規定された正規の処理方向へ並べ替えを行う並べ替えステップとを有する画像処理方法である。
【００１９】
この発明は、画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化を行う画像処理方法をコンピュータに実行させるプログラムにおいて、
画像処理部から出力されるデータ順で符号化を行う符号化ステップと、
画像処理部の処理方向から符号化で規定された正規の処理方向へ並べ替えを行う並べ替えステップとを有する画像処理方法のプログラムである。
【００２０】
この発明は、撮像素子によって撮影された画像データに対して画像処理を行う画像処理部と、画像処理部によって処理した画像データを符号化部で所定の符号化単位で符号化する符号化部を有する撮像装置において、
符号化部が画像処理部から出力されるデータ順で符号化を行い、
画像処理部の処理方向から符号化部の符号化方法で規定された正規の処理方向へ並べ替えを行う並べ替え部を備える撮像装置である。
【発明の効果】
【００２１】
この発明においては、画像サイズ変換を行うような画像処理部から圧縮符号化の符号化部への画像データの転送は、画像処理部の単位であり、小さな単位である。そのため外部メモリを使用せずに転送を行うことができる。また、外部メモリを使用せずに転送できるため外部メモリより帯域の広い内部転送とすることができ高速な処理が可能となる。
【発明を実施するための最良の形態】
【００２２】
最初に、この発明の処理の概略について図６を参照して説明する。図６において、参照符号１６が画像処理の対象とする原画像を示す。この画像１６は、６個の符号化単位（ＪＰＥＧの場合にはマクロブロック）からなる。６個のマクロブロックに対してそれぞれ１〜６の番号を符して示す。例えばマクロブロック１および２のように、２個のマクロブロック毎に画像処理がなされる。画像処理後のデータがＪＰＥＧエンコーダにおいて符号化処理され、符号化後のデータ１７が得られる。画像処理は、上述したように、拡大縮小処理、色収差補正処理、画像歪み補正処理、カメラ信号処理、白黒反転処理、色空間変換処理、フィルタリング処理等である。
【００２３】
この順序のＪＰＥＧデータ１７をそのまま復号すると、対応画像１８が得られる。しかしながら、復号画像１８は、原画像の領域１６とブロックの順序が相違しており、原画像と異なった画像となる。この問題を避けるために並べ替えがなされる。
【００２４】
符号並べ替え部によってＪＰＥＧデータ１７の順序をブロックを単位として並べ替え、ＪＰＥＧデータ１９を生成する。この順序のＪＰＥＧデータ１９を復号すると、原画像の領域１６とブロックの順序が一致した対応画像２０を得ることができる。
【００２５】
図６の例では、原画像の横幅と３個のマクロブロックの合計の幅とが等しい例である。しかしながら、画像処理の単位の横幅が複数マクロブロックからなる例では、図７に示すように、画像処理単位の横幅として複数種類が存在する場合もある。例えば画像処理単位と画像の横幅が整数比でないために、最後の処理のみ大きさが異なることがある。複数種類の横幅の合計は、画像の横幅と等しくなる。この場合、符号化時の区切りの間隔を変えることによって、図６と同様に並べ替えを行うことができる。すなわち、画像１１６をＪＰＥＧ符号化し、ＪＰＥＧデータ１１７を得る。このＪＰＥＧデータ１１７に対応する画像１１８は、原画像と相違するので、並べ替え後のＪＰＥＧデータ１１９を生成する。このＪＰＥＧ１１９の対応画像１２０は、原画像に一致したものとなる。
【００２６】
この発明の一実施形態について説明すると、図８は、この発明による撮像装置例えばディジタルスチルカメラの一実施形態の構成を示す。図８において、参照符号１がレンズ装置を示し、参照符号２がＣＣＤ（Charge Coupled Device)、ＣＭＯＳ(Complementary Metal Oxide Semiconductor)等の撮像素子を示す。撮像素子２に対しては、例えばBayer配列の三原色カラーフィルタが設けられており、撮像素子２の出力として三原色信号が得られる。この三原色信号がＡ／Ｄコンバータ３によってディジタル信号へ変換される。
【００２７】
Ａ／Ｄコンバータ３からのディジタル撮像信号がＬＳＩ(Large Scale Integrated Circuit：大規模集積回路)の構成とされたディジタル処理のカメラ信号処理部４に入力される。カメラ信号処理部４では、ホワイトバランス補正処理、補間処理、フィルタリング処理、マトリクス演算処理、ガンマ補正処理、輝度信号（Ｙ）生成処理、色差信号（Ｃｒ，Ｃｂ）生成処理等を行う。カメラ信号処理部４によって生成された画像信号がディスプレイ５に供給され、撮像画像が表示される。また、カメラ信号処理部４からの画像データがサイズ変換、圧縮処理等を受けて内部または外部記憶媒体９に記憶される。
【００２８】
ホワイトバランス補正処理は、被写体の色温度環境の違い、カラーフィルタによる感度の違いによる各色間のアンバランスが補正する。補間処理は、存在していない色信号を補間する処理である。フィルタリング処理は、高域周波数補正処理であり、輪郭強調のための処理である。マトリクス演算処理は、撮像信号をｓＲＧＢへ変換する処理である。ガンマ補正処理によって、表示装置が有する非線形特性の逆補正を予め行うことで、最終的にリニアな特性が実現される。
【００２９】
輝度信号生成処理は、ガンマ補正されたＲＧＢ信号を所定の合成比で合成することによって輝度信号を生成する。色差信号生成処理ブロックは、ガンマ補正されたＲＧＢ信号を所定の合成比で合成することによって色差信号を生成する。生成された色差信号が帯域制限の処理を受け、色差信号ＣｂおよびＣｒが生成される。
【００３０】
カメラ信号処理部４の出力（Ｙ，Ｃｒ，Ｃｂ）がサイズ変更部６に入力され、画像サイズが等倍、拡大または縮小される。サイズ変更部６の出力データが例えばＪＰＥＧの符号化部７に入力される。符号化部７は、ＤＣＴ(Discrete Cosine Transform：離散コサイン変換)と量子化器と可変長符号化器とから構成されている。
【００３１】
ＤＣＴでは、（８×８）画素のブロック単位にＤＣＴ演算がなされ、ＤＣ(Direct Current：直流)係数およびＡＣ(Alternate Current：交流)係数からなるＤＣＴ係数が得られ
る。ＤＣ係数およびＡＣ係数が別々に量子化される。量子化されたＤＣ係数は、直前のブロックのＤＣ係数との差分値が符号化される。但し、区切りを示す所定の値のコードである区切りコードが挿入された直後は、ＤＣ係数の値自体が符号化される。量子化されたＡＣ係数の場合には、ブロック内でジグザクスキャンによって並べ替えた後に可変長符号化される。符号化部７によって圧縮された圧縮画像データが並べ替え部８に供給される。並べ替え部８は、ＪＰＥＧで規定された正規の処理方向へ圧縮画像データを並べ替えるものである。すなわち、正規の処理方向とは、ＪＰＥＧで復号した場合に元の画像が得られる符号化の順序を意味する。符号化画像データがストレージ９に記憶される。
【００３２】
上述したディジタルスチルカメラの信号処理等を制御するために、ＣＰＵ(Central Processing Unit)１１が備えられている。カメラ信号処理部４、サイズ変更部６、符号化部
７、並べ替え回路８、ストレージ９は、ＣＰＵバス１２を介してＣＰＵ１１と接続され、ＣＰＵ１１によって制御可能な構成とされている。ＣＰＵ１１には、ユーザが操作するスイッチ、ＧＵＩ(Graphical User Interface)等のキー１３の出力が入力される。さらに、ＣＰＵバス１２に対してプログラム等が格納されているＲＯＭ１４およびＣＰＵ１１の作業用のメモリとしてのＲＡＭ１５が接続されている。ＲＡＭ１５には、ＣＰＵ１１の制御によって画像データが蓄積可能とされている。なお、図８の構成では、簡単のため、ストレージ９から読み出された圧縮画像データをデコードしてディスプレイ５に表示するための構成については省略されている。
【００３３】
この発明は、上述したディジタルスチルカメラの構成中で、サイズ変更部６、符号化部７、並べ替えブロック８における処理において、高速の処理および大容量メモリを不要とするものである。なお、この一実施形態におけるＪＰＥＧは、符号化単位としてのマクロブロックのサイズが（１６×８）画素であり、（８×８）画素の輝度（Ｙ）ブロックの２個と、それぞれが（８×８）画素の色差（Ｃｒ，Ｃｂ）ブロックとから構成されている。色差データの水平方向の画素の間隔は、輝度データの２倍とされている。したがって、１画素当たりのビット数は、（Ｙ＝８ビット、Ｃｒ＝４ビット，Ｃｂ＝４ビット）の１６ビットとなる。輝度データおよび二つの色差データは、分離してそれぞれ処理の対象とされる。色差データの処理は、輝度データと同様であるので、以下の説明では、輝度データの処理について説明する。
【００３４】
この発明の理解を容易とするために、最初に図９を参照して従来の構成について説明する。画像処理の例として画像の拡大について説明する。図９において、参照符号２１が外部メモリを示し、参照符号２４がサイズ変更部を示す。サイズ変更部２４は、一例として、サイズを２倍に拡大する補間ディジタルフィルタを有する構成とされている。従来の構成では、２倍に拡大した後に符号化単位であるマクロブロックのサイズとなるように、外部メモリ２１から画像データが読み出される。
【００３５】
２倍に拡大した画像をマクロブロックの大きさと等しいものとするために、サイズ変更部２４は、外部メモリ２１の影を付した（４×８）画素の領域２２を拡大するようになされる。サイズ変更部２４は、ＦＩＲフィルタのような補間フィルタを使用するので、例えば領域２２を含む（１６×１２）画素の領域２３を外部メモリ２１から読み出すようになされる。すなわち、補間フィルタは、本来の領域に対して横方向および縦方向のそれぞれにおいて（４＋４）画素を必要とするために、読み出し画素数が増加する。なお、この発明は、拡大のみならず、縮小処理に対しても適用できる。
【００３６】
サイズ変更部２４の内部を転送された拡大後の（８×１６）のマクロブロックのデータ２５がメモリを介さないで直接、符号化部２６へ転送され、ＪＰＥＧの符号化がなされる。符号化データとしてのＪＰＥＧデータが外部メモリ２７に書き出される。ＪＰＥＧの規格では、画像の左端から右端に向かう方向が正規の処理方向と規定されており、領域２２を読み出す順序が正規の処理方向と同一とされている。外部メモリ２７と外部メモリ２１とは、同じＲＡＭ上に別々のメモリ領域として構成することができる。
【００３７】
図９に示される従来の構成は、ＪＰＥＧデータをマクロブロック単位で順に復号することによって拡大画像を復元できる。しかしながら、画像処理の単位のブロックが拡大後にマクロブロックとなるような小さいサイズとされているので、拡大の対象とする領域２２の横方向の画素数の２倍の画素数と、縦方向の画素数の３倍の画素数との合計６倍の画素数を外部メモリ２１から読み出すことが必要であり、高速の読み出しを必要とするため、広いメモリ帯域を必要とする問題がある。また、後述するように、全体としてメモリに対するアクセス量が多い問題を有している。
【００３８】
図９に示す従来の構成は、サイズ変更部２４が（１６×８）のサイズの符号化単位で拡大処理を行うものである。これに対して、拡大処理の単位をより大きなサイズとすることによって、上述したメモリ帯域が必要なこと、並びにアクセス量が多い問題を低減するようにした構成例を図１０に示す。
【００３９】
影を付した（６４×６４）画素の領域２８が拡大処理の対象とする領域である。サイズ変更部２４は、外部メモリ２１から（７２×７２）画素の領域２９を読み出す。サイズ変更部２４は、領域２８を２倍とした（１２８×１２８）画素の領域３０の画像データを生成する。この領域３０の画像データは、ＪＰＥＧのマクロブロックのサイズと異なるので、符号化部２６に対して直接転送することができない。すなわち、拡大画像のデータは、１枚例えば１フレーム分の容量を有する外部メモリ３１に書き出され、外部メモリ３１からマクロブロック単位で画像データが読み出される。このように、（６４×６４）の領域２８の処理のために、（７２×７２）画素の領域２９が必要となるので、転送すべきデータは、約１．２７倍となる。この比率は、それほど高い転送速度を要求するものではない。但し、後述するように、この発明による処理と比較して全体としてアクセス量が多い問題がある。
【００４０】
外部メモリ３１からは、ＪＰＥＧのマクロブロック（１６×８）画素の領域が読み出される。読み出しの順序は、ＪＰＥＧで規定された正規の処理方向とされる。読み出されたマクロブロックのデータが符号化部２６によってＪＰＥＧで符号化される。符号化部２６から外部メモリ２７に対して符号化データとしてのＪＰＥＧデータがマクロブロック単位で書き出される。
【００４１】
図９の構成では、マクロブロック単位でサイズ変更を行っているために、サイズ変更部２４内に備えることが可能な比較的小容量の内部メモリ２５を使用できる。しかしながら、図１０の構成では、マクロブロック単位に切り出した画像データを符号化部２６に供給する必要があるために、拡大画像全体を蓄積することが可能な大容量の外部メモリ３１が必要とされる。
【００４２】
図１１は、この発明の一実施形態の構成を示す。図１０に示す構成例と同様に、影を付した（６４×６４）画素の領域２８が拡大処理の対象とされるので、サイズ変更部２４は、外部メモリ２１からブロックに周辺の画素を付加した（７２×７２）画素の領域２９を使用して拡大処理を行う。この場合、領域２８が（６４×４）画素の領域（ブロックと適宜称する）に分割され、ブロック毎に読み出しおよび拡大の処理がなされる。したがって、サイズ変更部２４は、ブロックを２倍とした（１２８×８）画素のデータを出力する。サイズ変更部２４の出力する順序は、ＪＰＥＧの正規の処理方向と異なっている。
【００４３】
この発明では、サイズ変更処理の順序を変更しないでＪＰＥＧの符号化を行うので、画像データを直接転送することが可能である。または、小容量のメモリによってブロックを複数のマクロブロックに分割すれば良い。一実施形態では、サイズ変更部２４の出力データが比較的小容量の内部のメモリ３２Ａおよび３２Ｂに内部転送され、メモリ３２Ａおよび３２Ｂに交互に書き込まれる。符号化の単位であるマクロブロックのサイズを（１６×８）画素とすると、２倍処理後に縦が８画素で、横が１６画素の整数倍となるブロックを単位として拡大処理後のデータが処理される。ブロックは、（６４×４）画素のサイズである。拡大処理後のサイズの（１２８×８）画素の領域もブロックと称する。
【００４４】
メモリ３２Ａおよび３２Ｂは、２バンクの構成とされ、一方のメモリに対して（１２８×８）画素のブロックの画像データが書き込まれる期間では、他方のメモリからＪＰＥＧのマクロブロック単位で画像データが読み出される。（１２８×８）画素のブロックは、原画像２８の（６４×４）画素のブロックに対応している。図９の構成例と同様に、（６４×６４）の領域２８の処理のために、（７２×７２）画素の領域２９が必要となるので、転送すべきデータは、約１．２７倍となる。この比率は、それほど高い転送速度を要求するものではない。
【００４５】
メモリ３２Ａ、３２Ｂからは、ＪＰＥＧのマクロブロック（１６×８）画素の単位でデータが順に読み出される。メモリ３２Ａ、３２Ｂには、それぞれ８個のマクロブロック分の画像データ（１２８×８）画素が格納されている。読み出されたマクロブロックのデータが符号化部２６によってＪＰＥＧで符号化される。符号化部２６から外部メモリ３３に対してＪＰＥＧデータがマクロブロック単位で書き出される。
【００４６】
外部メモリ３３に蓄えられるＪＰＥＧデータは、符号化の順序がＪＰＥＧの規格で規定されているものと相違し、規格に基づいて構成されているデコーダによって復号しても正しく画像を復元できない。ＪＰＥＧの規格で規定されている符号化の順序は、画像の左端から右端に向かう順序である。
【００４７】
そこで、外部メモリ３３に蓄積されたＪＰＥＧデータが符号並べ替え部３４において処理され、ＪＰＥＧデータの並べ替えがなされる。符号並べ替え部３４は、例えば外部メモリ３３の読み出しアドレスを制御することによって並べ替えを行うことができる。外部メモリ３３は、並べ替えのために拡大画像全体の容量のメモリを備えていることが必要とされる。しかしながら、ＪＰＥＧでデータ量が数分の一に圧縮されているために、データ容量が原画像データを蓄積するのと比較して小さくて良い。
【００４８】
符号並べ替え部３４から外部メモリ３５に対して処理方向が正規のものとされたＪＰＥＧデータが出力され、蓄積される。外部メモリ３５には、正規の処理方向の順序のＪＰＥＧデータが蓄積される。したがって、このＪＰＥＧデータを規格に基づいて構成されたデコーダによって復号することによって、正しく画像を復元することができる。
【００４９】
図１２は、図９、図１０および図１１の構成に関してメモリアクセス（書き込みまたは読み出し）量を比較して示す表である。例えば原画像のＸバイトのデータをＪＰＥＧによって１／３に圧縮符号化した場合を想定している。図９の構成では、（４×８）画素の領域２２を拡大するために、その６倍の画素数である（１６×１２）画素の領域２３を外部メモリ２１から読み出し、読み出したデータを直接符号化部２６に対して転送するために、画像のアクセス量が６Ｘバイトとなる。また、ＪＰＥＧデータのメモリへのアクセスの量は、外部メモリ２７に対して１回書き込みを行うのみであるからＸ／３バイトとなる。したがって、合計のメモリアクセス量（＝画像アクセス量＋符号アクセス量）が１９Ｘ／３バイトとなる。
【００５０】
図１０に示す構成例では、外部メモリ２１に対する画像アクセス量は、外部メモリ２１からの読み出しが１．２７倍の画素数の領域の読み出しを必要とし、外部メモリ３１に対して２倍に拡大された領域３０の書き込みとマクロブロックの画像データの読み出しとを必要とするために、画像のアクセス量が（１．２７＋２＝３．２７）Ｘバイトとなる。ＪＰＥＧデータのメモリへのアクセスの量は、外部メモリ２７に対して１回書き込みを行うのみであるからＸ／３バイトとなる。したがって、合計のメモリアクセス量（＝画像アクセス量＋符号アクセス量）が１０．８１Ｘ／３バイトとなる。
【００５１】
この発明の一実施形態（図１１）の構成では、外部メモリ２１に対する画像アクセス量は、外部メモリ２１からの読み出しが１．２７倍の画素数の領域の読み出しを必要とする。符号化部２６に直接画像データを転送することを想定すれば、画像のアクセス量が１．２７Ｘバイトとなる。
【００５２】
符号並べ替えのために、外部メモリ３３に対しての書き込みおよび読み出しが必要とされ、外部メモリ３５への書き込みなされるので、３回のアクセスが必要となる。書き込みまたは読み出しされるデータは、ＪＰＥＧデータであるので、符号アクセス量は、（３Ｘ／３バイト）となる。したがって、合計のメモリアクセス量（＝画像アクセス量＋符号アクセス量）が６．８１Ｘ／３バイトとなり、最も少ないものとなる。なお、一実施形態では、メモリ３２Ａ，３２Ｂに対してのアクセスを行っているので、画像アクセス量が増える。しかしながら、メモリ３２Ａ，３２Ｂを設けないで、直接、サイズ変更部２４の出力を符号化部２６に転送することができる。また、メモリ３２Ａ，３２Ｂとして、内部のメモリを使用できるために、データ転送速度を高くすることが可能であるために、アクセス量が増えることによる影響を少なくできる。
【００５３】
この発明の一実施形態の処理について図１３を参照して説明する。図１３において、参照符号４１が拡大処理の対象とする原画像の画像全体例えば（１２８×１２）画素の領域を示す。この領域４１が６個の（６４×４）画素のブロックに分割される。６個のブロックに対してそれぞれ１〜６の番号を符して示す。各ブロック毎に拡大処理がなされる。なお、図１３において、各ブロック内に描かれている矢印は、その領域に対する処理の順序を示し、図面に向かって各領域の左上のコーナーから開始して右下のコーナーに至る順序で処理がなされる。ブロック内の符号化の順序は、ＪＰＥＧの正規の処理方向と一致している。但し、ブロックを単位とする処理の方向は、正規の処理方向と異なっているために、並べ替えが必要とされる。すなわち、順番にブロック単位で画素を読み出すと、１，２，３，・・・と付した番号の順に各ブロックのデータが読み出される。
【００５４】
第１番目の（６４×４）画素のブロックがサイズ変更部２４によって処理され、縦横のそれぞれが２倍の（１２８×８）画素のブロック４２の画像データが生成される。この画像データ４２が内部のメモリ３２Ａ，３２Ｂの一方に書き込まれる。メモリ３２Ａ，３２Ｂからのデータの読み出しの順序を変更し、（１６×８）画素のＪＰＥＧのマクロブロック４３の単位で画像データが読み出される。読み出されたマクロブロックのデータ４３が符号化部２６において符号化される。ブロック４２の画像データに対応するＪＰＥＧデータ４４が得られる。ＪＰＥＧデータのデータブロック４５は、マクロブロック４３に対応するものである。
【００５５】
原画像の領域４１が上述したように処理され、６個のブロックとそれぞれ対応するＪＰＥＧデータ４６が生成される。この順序のＪＰＥＧデータ４６をそのまま復号すると、復号画像４７が得られる。しかしながら、復号画像４７は、原画像の領域４１とブロックの順序が相違しており、原画像と異なった画像となる。
【００５６】
そこで、符号並べ替え部３４によってＪＰＥＧデータ４６の順序をブロックを単位として正規のものに並べ替え、ＪＰＥＧデータ４８を生成する。この順序のＪＰＥＧデータ４８を復号すると、原画像の領域４１とブロックの順序が一致した復号画像４９を得ることができる。
【００５７】
図１４は、この発明による画像処理の流れを示すフローチャートである。このフローチャートで示す処理は、ＣＰＵ１１（図８参照）のような信号処理部を制御するコンピュータによる制御によって実現される。最初のステップＳ１において、画像がブロック単位でメモリから読み出される。ブロックは、図１３の例では、（６４×４）画素である。
【００５８】
ステップＳ２において、画像処理例えば縦横それぞれが２倍とされる拡大処理がなされる。ステップＳ３において、拡大処理された（１２８×８）画素のデータが（１６×８）画素のマクロブロック単位で符号化部２６に対してデータが入力される。ステップＳ４に
おいて、符号化ブロック２６が入力された順序で画像データを符号化する。
【００５９】
ステップＳ５において、符号化データ例えばＪＰＥＧデータがメモリへ書き出される。ステップＳ６では、ブロックデータ例えば（１２８×８）画素のデータを処理したか否かが判定される。処理が終了していない場合では、処理がステップＳ３に戻り、符号化処理（ステップＳ３〜Ｓ５）が繰り返される。
【００６０】
ステップＳ６において、ブロックのデータを処理が終了したものと判定されると、ステップＳ７において、拡大画像の全体の処理が完了したか否かが判定される。完了していない場合には、ステップＳ８において、予め決められている所定の値の区切りコードが挿入される。すなわち、ＪＰＥＧデータのブロック毎の区切りに区切りコードが挿入される。
【００６１】
可変長符号化されている１ブロック分のＪＰＥＧデータがバイトの整数倍の長さとなるようにスタッフィングビットが付加され、その後に区切りコード（１６ビット）が付加される。図１５Ａは、ＪＰＥＧデータの一例を示す。最小符号化単位としてのＪＰＥＧ  ＭＣＵ(Minimum Coded Unit)は、マクロブロックに対応して発生したデータである。ハフマン符号化がなされているので、ＪＰＥＧ  ＭＣＵは、可変ビット長を有する。
【００６２】
最小符号化単位と並べ替えの単位とが一致するとは限らない。例えば（２×２）のマクロブロックが画像処理単位とされる場合には、ＪＰＥＧの符号化の方向と一致する方向、すなわち、横方向のマクロブロックの個数が２個となり、２個のマクロブロックが並べ替え単位となる。図１５では、１ブロックが２個のマクロブロックからなるものとしている。図１５Ｂに示すように、２個のマクロブロックのそれぞれのＪＰＥＧデータＪＰＥＧ
ＭＣＵ１およびＪＰＥＧ  ＭＣＵ２に対して６ビットのスタッフィングビットが付加される。それによって、（１７＋２５＋６＝４８ビット＝６バイト）とブロックのＪＰＥＧデータがバイトの整数倍とできる。スタッフィングビットの後に１６ビットの区切りコードが挿入される。
【００６３】
このように、区切りコードは、並びに替え単位の区切りを示している。この区切りは、ＥＣＳ(Entropy Coded Segment)と称される。したがって、並べ替えは、ＥＣＳ単位でな
される。ＪＰＥＧデータのＤＣ（直流）係数は、前のデータブロックのＤＣ係数との差分のデータを伝送するようにしており、区切りコードの次のＤＣ係数のデータは、差分ではなく、ＤＣ係数の値そのものとされている。
【００６４】
ステップＳ７において、拡大画像の全体の処理が完了したと判定されると、ステップＳ９において、ＪＰＥＧデータがメモリから読み出され、ステップＳ１０において、ＪＰＥＧデータがブロック単位で並べ替えれる。ステップＳ１１において、並べ替えがされたＪＰＥＧデータがメモリへ書き出される。
【００６５】
上述したこの発明の一実施形態は、ＪＰＥＧに対してこの発明を適用したものであるが、この発明は、ＭＰＥＧを符号化方法として使用する場合に対しても適用できる。その場合では、１ブロックの画像に対応するＭＰＥＧデータ毎に区切りとして予め決められている所定の値のスライススタートコードが挿入される。
【００６６】
図１６を参照してスライススタートコードの挿入について説明する。図１６ＡがＭＰＥＧデータのストリームを示す。簡単のため２個のマクロブロックに対応する２個のデータブロックが１ブロックの画像データに対応するものとしている。図１６Ｂに示すように、２個のマクロブロックのそれぞれのＭＰＥＧデータに対して６ビットのスタッフィングビットが付加される。それによって、（１７＋２５＋６＝４８ビット＝６バイト）とブロックのＭＰＥＧデータをバイトの整数倍とできる。スタッフィングビットの後に３２ビットのスライススタートコード挿入される。
【００６７】
上述したブロックの可変長データの区切りを示す区切りコード（ＪＰＥＧ）およびスライススタートコード（ＭＰＥＧ）は、並べ替え処理に伴って値を書き換えることが必要とされる。区切りコードは、Ｈ’ＦＦＤｘ（Ｈ’は１６進表記を意味する）と決められている。ｘは、区切りコードの回数を８で割った余りの値である。また、スライススタートコードＨ’０００００１ｘｘ（Ｈ’は１６進表記を意味する）と決められている。ｘｘは、スライス画像でのマクロブロック単位の垂直位置の値である。ｘおよびｘｘの部分は、並べ替えに伴って規格に合うように変更することが必要とされる。
【００６８】
図１７は、区切りコードの書き換え処理を示すものである。図１３を参照して説明したように、６個のブロックとそれぞれ対応するＪＰＥＧデータ４６が生成される。ＪＰＥＧデータ４６のブロックのデータの区切りには、図１７に示すように、Ｈ’ＦＦＤ０〜Ｈ’ＦＦＤ５の区切りコードがそれぞれ挿入されている。
【００６９】
そして、図１７において矢印で示すように、符号並べ替え部３４によってＪＰＥＧデータ４６の順序をブロックを単位として並べ替え、ＪＰＥＧデータ４８が生成される。並べ替えの結果に対応するように、区切りコードが書き換えられる。例えばＪＰＥＧデータ４６において４番目のブロック４のコードは、ＪＰＥＧデータ４８において２番目のブロックのコードに並べ替えられるので、区切りコードＨ’ＦＦＤ３がＨ’ＦＦＤ１に書き換えられる。
【００７０】
図１７は、区切りコードの書き換えの処理を示しているが、ＭＰＥＧストリームに挿入されるスライススタートコードのｘｘの値も、並べ替え後の配置に対応するように書き換えられる。
【００７１】
図１８は、並べ替え部３４において区切りコードを削除する処理の例を説明するものである。図１８Ａは、図１６Ｂに示すＪＰＥＧデータのストリームと同様にバイト単位とされ、１ブロックのＪＰＥＧ  ＭＣＵ毎に区切りコードが挿入されたものである。区切りコードを挿入することによる冗長度の増加の影響を少なくするために、図１８Ｂに示すストリームのように、区切りコードが削除される。区切りコードの削除は、ＪＰＥＧの規格に反することを避けるために必要とされる場合もある。
【００７２】
しかしながら、区切りコードの後の最初のマクロブロックに対応するＪＰＥＧ  ＭＣＵ３のＤＣ係数ＤＣ１は、０との差、すなわち、値そのものとされているので、区切りコードの削除を行った図１８Ｂに示すストリームにおいては、ＪＰＥＧ  ＭＣＵ３の最初のマクロブロックのＤＣ係数を前のＪＰＥＧ  ＭＣＵ２の最後のマクロブロックのＤＣ係数との差分にする必要がある。
【００７３】
区切りコードの削除の処理の３通りの方法について説明する。図１９は、第１の方法を示す。この方法では、符号化時に、ＪＰＥＧ  ＭＣＵ２（以下、単にＭＣＵ２と表記する）の開始位置もしくはその終了位置、またはスタッフィングビット数と、区切りコードの直前の最小符号化単位であるＭＣＵ２のＤＣ成分とを伝送または記録されるデータと関連付けて記録または保持しておく必要がある。それによって、多くの符号を復号しないで、ＤＣ成分の符号化データを書き換えることができる。記録または保持の方法としては、ストリーム中にこれらのデータを挿入したり、メモリにこれらの情報を記憶する方法を採用できる。
【００７４】
ステップＳ２１において、記録されているＭＣＵ２の開始位置もしくはその終了位置、またはスタッフィングビットのビット数から、区切りコードを削除した後のＭＣＵ３の新しい先頭位置ａを計算する。位置ａは、ＭＣＵ２の終了位置と一致する。ＭＣＵ２の開始位置が分かると、復号することによって、１マクロブロックのデータの終端のコード（ＥＯＢ）が検出され、ＭＣＵ２の終了位置が分かる。さらに、区切りコードが検出されると、スタッフィングビットのビット数からＭＣＵ２の終了位置が分かる。
【００７５】
ステップＳ２２において、ＭＣＵ３のＤＣ成分を復号する。ＭＣＵ３のＤＣ成分は、絶対値を符号化したデータが伝送されるので、復号してＤＣ成分を得ることができる。そして、あらかじめ記録しておいたＭＣＵ２のＤＣ成分とＭＣＵ３の復号したＤＣ成分との差分を演算し、差分をハフマン符号化して、新たなＭＣＵ３のＤＣ成分の符号化データが得られる。
【００７６】
ステップＳ２４において、新しい先頭位置ａからＭＣＵ３を詰める。したがって、スタッフィングビットおよび区切りコードが削除される。ＭＣＵ３に配置されるＤＣ成分の符号化データは、差分を符号化したデータであって、元々挿入されていたＤＣ成分の符号化データ（絶対値）とは、ビット長が異なったデータである。
【００７７】
なお、図２０に示すように、はじめから区切りコードを挿入せずに、スタッフィングビットの挿入と、ＤＣ成分の差分予測値を０にする、すなわち、ＭＣＵ３のＤＣ成分の符号化データがＤＣ成分そのものの値の符号化データである場合にも第１の方法を適用でき、ＭＣＵ３に配置されるＤＣ成分の符号化データは、差分を符号化したデータとされる。また、区切りコードを挿入しない例に対して、以下に述べる第２の方法および第３の方法を同様に適用することができる。
【００７８】
図２１は、区切りコードの削除の処理の第２の方法を示す。第２の方法では、符号化時にＭＣＵＸの先頭位置ｂを伝送または記録されるデータと関連付けて記録、保持しておく。但し、第１の方法と異なり、ＭＣＵ２のＤＣ成分は、記録しない。ＭＣＵＸは、スタッフィングビットの直前に配置されたダミーの最小符号化単位である。好ましくは、所定の画素値のＤＣのみからなるマクロブロックをＪＰＥＧ符号化して得られる最小符号化単位である。例えば全面黒色の画像で、ＤＣ成分の値が０とされている。他の例としては、輝度データＹ、二つの色差データＣｒ，Ｃｂの全ての値が０のデータを使用しても良い。
【００７９】
ステップＳ３１において、ＭＣＵＸの先頭位置と一致するＭＣＵ３の新たな先頭位置ｂが得られる。次に、ステップＳ３２において、ＭＣＵＸのＤＣ成分とＭＣＵ３のＤＣ成分とが復号される。ＭＣＵＸのＤＣ成分に対応する符号化データは、下記の差分を符号化したデータであるので、ＭＣＵＸのＤＣ成分に対応する符号化データを復号した値は、ＭＣＵ２のＤＣ成分である。したがって、差分を演算する必要がない。
【００８０】
ＭＣＵＸのＤＣ成分に対応する符号化データ＝（ＭＣＵＸのＤＣ成分（例えば０）−ＭＣＵ２のＤＣ成分）を符号化したデータ
【００８１】
ステップＳ３３において、復号して得られたＭＣＵＸのＤＣ成分、すなわち、上述したように、−（ＭＣＵ２のＤＣ成分）とＭＣＵ３のＤＣ成分との差分が求められ、差分が符号化され、新たなＭＣＵ３のＤＣ成分の符号化データが得られる。ステップＳ３４において、ＭＣＵ３以降のデータを新たな先頭位置ｂから詰める。したがって、スタッフィングビットおよび区切りコードが削除される。
【００８２】
図２２は、区切りコードの削除の処理の第３の方法を示す。第３の方法は、ＤＣ成分の符号化データを復号することを不要とできる。また、データをＭＣＵ３の後にＭＣＵ４を詰める処理を行うので、処理が簡単である。
【００８３】
第３の方法では、符号化時にＭＣＵ３の先頭位置若しくは終了位置、またはスタッフィングビット数を伝送または記録されるデータと関連付けて記録し、または保持しておく。また、伝送または記録されるデータ中に、ＭＣＵ２の後にＭＣＵ３を挿入すると共に、区切りコードの直後にＭＣＵ３’を挿入する。ＭＣＵ３のＤＣ成分の符号化データは、前のＭＣＵ２のＤＣ成分とＭＣＵ３のＤＣ成分との差分を符号化したものである。これに対して、ＭＣＵ’３のＤＣ成分の符号化データは、区切りコードの直後に配置されているので、ＤＣ成分そのものの値である。
【００８４】
ステップＳ４１では、ＭＣＵ３の先頭位置若しくは終了位置、またはスタッフィングビット数これらの情報を使用してＭＣＵ４の新たな先頭位置ｃが計算される。ＭＣＵ３の終了位置とＭＣＵ４の先頭位置ｃとが一致する。ＭＣＵ３の開始位置から復号を開始してＥＯＢを検出した位置をＭＣＵ３の終了位置として検出しても良い。さらに、区切りコードの位置が判っているので，スタッフィングビット数を使用して位置ｃを求めても良い。ステップＳ４２では、ＭＣＵ３の後に、ＭＣＵ４以降が新しい先頭位置から詰められる。
【００８５】
図１９に示される第１の方法または図２２に示される第３の方法では、スタッフィングビット数を記録しておくことが必要とされる。図２３は、スタッフィングビットのビット数をストリーム中に記録する方法を示す。図２３Ａに示し、上述したように、区切りコードは、Ｈ’ＦＦＤｘ（Ｈ’は１６進表記を意味する）と決められている。ｘは、区切りコードの回数を８で割った余りの値である。
【００８６】
このｘの値は、０乃至７となる。したがって、図２３Ｂにスタッフィングビットのビット数が５の場合の例を示すように、スタッフィングビット数をｘの値としてストリーム中に記録することができる。この処理は、規格に反したストリームを作成することになるが、上述したように、区切りコードが削除され、外部に出力されるストリームには、区切りコードが含まれないので、問題とならない。
【００８７】
図２４は、ＪＰＥＧデータのストリームの生成において、並べ替え処理において、各並べ替え単位の先頭位置を分かりやすいものとする処理を示す。図２４Ａは、ＪＰＥＧデータの一例とそのデータを並べ替えた後のデータを示す。各ブロックの画像データに対応するＪＰＥＧデータは、可変長のために並べ替え時に先頭位置が分かりにくい問題がある。図２４Ｂは、対応する原画像のブロックの配置を示す。並べ替え後のＪＰＥＧデータを復号した場合に、図２４Ｂに示す画像を復号できる。
【００８８】
図２４Ｃに示すように、空きメモリ領域を形成することによって、メモリに蓄積されたＪＰＥＧデータの第１番目、第３番目、第５番目のそれぞれのデータブロックの先頭位置が所定の間隔Ｌで位置するようになされる。並べ替え処理時に、第３番目および第５番目のそれぞれのデータブロックの先頭位置が分かれば、並べ替え処理が簡単且つ高速とできる。第４番目および第６番目のデータブロックの先頭位置は、並べ替えながら判定することができる。なお、空き領域は、書き込みを行わなくても良い領域のため、空き領域に任意のデータが存在していても良い。
【００８９】
図２５は、縮小画像（所謂サムネイル）の生成を考慮した構成例を示す。画像メモリ５１には、処理の対象の画像が格納されている。例えば重複部分を有する２個の領域が存在する。画像メモリ５１の後に画像処理部５２が設けられている。画像処理部５２では、前述したように、画像サイズ変更、色収差補正、歪み補正等の処理がなされる。
【００９０】
画像処理部５２が処理後の画像データを出力する順序は、ＪＰＥＧの正規の処理方向と異なっている。順序を変更しないで、符号化部５３に処理後のデータが供給され、符号化部５３で例えばＪＰＥＧの符号化がなされる。符号化部５３から順番が正規の方向と異なる符号化画像５４が得られる。
【００９１】
符号化画像５４が並べ替え部５５において処理され、ＪＰＥＧデータの並べ替えがなされる。符号並べ替え部５５から外部メモリ５６に対して処理方向が正規のものとされたＪＰＥＧデータが出力され、蓄積される。外部メモリ５６には、正規の処理方向の順序のＪＰＥＧデータが蓄積される。したがって、このＪＰＥＧデータを規格に基づいて構成されたデコーダによって復号することによって、正しく画像を復元することができる。
【００９２】
図示の例では、画像を縮小処理できるように、二つに重複して分割し、画像処理部５２に対して入力する。処理結果には、重複部が存在する。符号化部５３に対しては、重複部を削除した画像を伝送する。縮小画像を生成するために、符号化前のデータを画像処理部５２の出力側から取り出して縮小部５７に供給する。この場合、重複部が削除されていないことが縮小処理例えば間引きフィルタを使用したフィルタリングにとって必要である。縮小部５７によって、二つの領域がそれぞれ縮小され、縮小画像５８が生成される。図２４の構成によって、画像メモリ５１から１回の画像の読み出しでもって、符号化と縮小画像の生成とを両方が可能となる。
【００９３】
図２６は、複数例えば２枚の画像６１ａおよび６１ｂを一つの符号化部で同時に符号化する処理を示す。各画像を６分割することで形成されるブロック単位でＪＰＥＧ符号化がなされる。ＪＰＥＧ符号化では、交互に各画像のブロックが符号化されて符号化データ６２が得られる。符号化データ６２の対応画像を画像６３として示す。
【００９４】
符号化データ６２が並べ替えられる。対応画像６５ａおよび６５ｂで示すように、原画像のブロックの順番と一致する順番となるように、ブロック単位での並べ替えと画像分離がなされる。並べ替えおよび分離後の符号化データ６４ａおよび６４ｂが形成される。図２６の構成は、符号化部の処理が前段の画像処理部の処理速度に比して速い場合、または小さなサイズの画像を複数個同時に作成する場合等に有用である。
【００９５】
２枚の画像６１ａおよび６１ｂを一つの符号化部６６で同時に符号化する場合、図２７に示すように、符号化特性例えば量子化特性を異ならせても良い。画像６１ａに対しては、斜線を符号化した量子化テーブル６７ａを使用し、画像６１ｂに対しては、量子化テーブル６７ｂを使用する。符号化部６６からは、ＪＰＥＧデータ６８が得られる。ハフマンテーブルを異ならせるようにしても良い。
【００９６】
図２８は、１枚の画像を二つの処理部（画像処理部および符号化部）で処理する例を示す。ここで説明する例において、画像処理部７４ａおよび７４ｂが重複部を必要とするので、画像分割部７２において、１枚の画像７１が所定の幅の重複部分を持つように、画像７３ａおよび７３ｂに分割する。重複部が不要な場合には、重複させることは必要とされない。
【００９７】
画像分割部７２から出力される分割画像７３ａおよび７３ｂがそれぞれ画像処理部７４ａおよび７４ｂに供給される。画像処理部７４ａおよび７４ｂが分割画像７３ａおよび７３ｂとそれぞれ対応する処理結果画像７５ａおよび７５ｂを出力する。処理結果画像７５ａおよび７５ｂは、重複部分を有しない。
【００９８】
処理結果画像７５ａおよび７５ｂは、図２９に示すように、ブロック単位でＡ１，Ａ２，Ａ３，Ａ４，Ｂ１，Ｂ２，Ｂ３，Ｂ４の順で別々の符号化部に対して出力される。各符号化部が画像処理部からの入力順でもって符号化を行う。各符号化部からＪＰＥＧデータ７６ａおよび７６ｂがそれぞれ得られる。対応する画像７７ａおよび７７ｂで示すように、順番は正規のものではない。
【００９９】
並べ替え部によってＪＰＥＧデータ７６ａおよび７６ｂが一つのＪＰＥＧデータに合成されると共に、並べ替えられる。対応する画像７９および８０で示すように、原画像のブロックの順番と一致する順番となり、且つ二つの画像が原画像と同様の配置関係で合成されるように、ブロック単位の並べ替えがなされる。対応画像７９は、符号化前の表記にしたがった画像であり、対応画像８０は、画像処理後の表記にしたがった画像である。なお、並べ替えにおいて、区切りコードを上述した方法によって削除しても良いし、区切りコードを残しておいても良い。
【０１００】
図２８および図２９の構成または処理は、画像処理部単体の処理性能が不足している場合でも、複数の画像処理部を用いることによって処理の性能を向上させることができる。この例では、左右に画像を分割したが、上下に分割したり、上下左右に分割するようにしても良い。
【０１０１】
次に、画像を回転させる処理と並べ替え処理とを段階的に行う例に対してこの発明を適用した実施形態について説明する。最初に画像の回転、反転処理の並べ替えの定義について説明する。
【０１０２】
９０度回転とは、下記のｎ行ｍ列の行列Ａからｂij＝ａ(n+1-j)iとなるｍ行ｎ列の行列Ｂへの並べ替えと同様の並べ替えと定義する。行列ＡおよびＢの各要素が画像の１画素、または複数画素からなるブロックに対応している。
【０１０３】
【数１】
2006238407.tif 000003
【０１０４】
【数２】
2006238407.tif 000004
【０１０５】
１８０度回転とは、上記のｎ行ｍ列の行列Ａからｂij＝ａ(n+1-i)(m+1-j)となるｍ行ｎ列の行列Ｂへの並べ替えと同様の並べ替えと定義する。
【０１０６】
【数３】
2006238407.tif 000005
【０１０７】
２７０度回転とは、上記のｎ行ｍ列の行列Ａからｂij＝ａj(m+1-i)となるｍ行ｎ列の行列Ｂへの並べ替えと同様の並べ替えと定義する。
【０１０８】
【数４】
2006238407.tif 000006
【０１０９】
左右反転とは、上記のｎ行ｍ列の行列Ａからｂij＝ａi(m+1-j)となるｍ行ｎ列の行列Ｂへの並べ替えと同様の並べ替えと定義する。
【０１１０】
【数５】
2006238407.tif 000007
【０１１１】
上下反転とは、上記のｎ行ｍ列の行列Ａからｂij＝ａ(n+1-i)jとなるｍ行ｎ列の行列Ｂへの並べ替えと同様の並べ替えと定義する。
【０１１２】
【数６】
2006238407.tif 000008
【０１１３】
画像の回転処理について、画像を１８０度回転、すなわち、上下左右反転させる処理の一例について図３０を参照して説明する。原画像８１が４個の画像処理ブロックからなり、各画像処理ブロックが４個の符号化ブロックからなる。例えばＡ１，Ａ２，Ａ３，Ａ４，・・・・がそれぞれ符号化ブロックを表し、Ａ１〜Ａ４によって一つの画像処理ブロックが構成される。同様に、Ｂ１〜Ｂ４、Ｃ１〜Ｃ４、Ｄ１〜Ｄ４によってそれぞれ画像処理ブロックが構成される。
【０１１４】
第１段階の処理として、原画像８１の各画像処理ブロック内で１８０度回転がなされ、画像８２が形成される。例えば符号化ブロックＡ１〜Ａ４からなる画像処理ブロックでは、対角方向に位置する二つの符号化ブロックＡ１およびＡ４、並びにＡ２およびＡ３の位置が入れ替えられ、上下左右に画素の位置が入れ替えられる。このような並べ替え処理は、画像８１をメモリに格納し、メモリから画像８１を読み出す時のアドレスを制御することによって実現できる。また、画像処理と同時に並べ替え処理を行うことができる。
【０１１５】
画像処理ブロック内で回転処理を受けた画像８２が（Ａ４，Ａ３，Ａ２，Ａ１，Ｃ４，Ｃ３，・・・・）と画像処理ブロック毎に符号化部に入力され、ＪＰＥＧの符号化処理を施され、ＪＰＥＧデータ８３が発生する。画像８４は、ＪＰＥＧデータ８３のデータの順序に対応する画像を示す。
【０１１６】
対応画像８４は、画像８２と相違したものであるので、第２段階の処理として正規の符号化順へＪＰＥＧデータ８３が並べ替えられ、ＪＰＥＧデータ８５が得られる。対応画像８６は、画像８２と同様のデータ配列を有しているが、上下左右に反転した画像ではない。
【０１１７】
そこで、第３段階の処理として、上下左右反転した画像となるように、画像処理ブロック単位で符号の並べ替えがなされ、ＪＰＥＧデータ８７が得られる。すなわち、画像処理ブロックを上述した回転の定義における行列の１要素とみなす。ＪＰＥＧデータ８７は、正規の符号化順序にしたがって配列した場合に、対応画像８８で示すように、原画像８１を上下左右に反転した画像が得られる。
【０１１８】
図３１は、画像を上下左右反転させる処理の他の例を示す。原画像９１は、図３０における原画像８１と同様のものである。第１段階の処理として、符号化ブロック内で上下左右反転処理を行い、処理結果の画像９２を形成する。第１段階の処理は、画像処理と同時になされる。
【０１１９】
処理結果の画像９２が符号化部で符号化され、ＪＰＥＧデータ９３が得られる。画像９４は、ＪＰＥＧデータ９３のデータの順序に対応する画像を示す。画像９４は、画像９２と相違したものであるので、第２段階の処理として正規の符号化順へＪＰＥＧデータ９３が並べ替えられ、ＪＰＥＧデータ９５が得られる。対応画像９６は、画像９２と同様のデータ配列を有しているが、上下左右に反転した画像ではない。
【０１２０】
そこで、第３段階の処理として、上下左右反転した画像となるように、符号化ブロック単位で符号の並べ替えがなされ、ＪＰＥＧデータ９７が得られる。すなわち、符号化ブロックを上述した回転の定義における行列の１要素とみなす。ＪＰＥＧデータ９７は、正規の符号化順序にしたがって配列した場合に、対応画像９８で示すように、原画像９１を上下左右に反転した画像が得られる。
【０１２１】
なお、１８０度回転の例について具体的に説明したが、９０度回転、上下反転等の他の処理も同様に行うことができる。
【０１２２】
上述したように、並べ替えがなされた符号化データを復号する場合について説明する。図３２は、復号時に並べ替えを行わない場合の処理を示す。原画像１０１を（１→４→２→５→３→６）の順序で画像処理し、処理結果の画像を正規のＪＰＥＧの符号化の順序（１→２→３→４→５→６）で符号化してＪＰＥＧデータ１０２が得られる。ＪＰＥＧデータ１０２が並べ替えがされないで、復号側に伝送される。
【０１２３】
復号側では、復号された画像１０３を出力順に画像処理する。その結果、復号画像１０４が得られる。復号画像１０４は、原画像１０１と不一致となる問題が生じる。
【０１２４】
図３３は、復号側におけるこの発明が適用された処理を説明するものである。符号化側からＪＰＥＧデータ１０６を受け取る。画像１０５は、ＪＰＥＧデータ１０６の対応画像である。ＪＰＥＧデータ１０６を並べ替える。符号化側でなされる並べ替えの処理と逆方向の処理がなされ、ＪＰＥＧデータ１０７が得られる。すなわち、復号側における並べ替えは、符号化方法で規定された正規の処理方向から画像処理ブロックの処理方向への符号化データの並べ替えである。画像１０８は、ＪＰＥＧデータ１０７の対応画像である。
【０１２５】
ＪＰＥＧデータ１０７が復号部に出力され、復号画像１０９が得られる。復号画像１０９のブロックが（1→２→３→４→５→６）の順序で出力される。出力順に画像処理がな
され、処理結果画像１１０が得られる。処理結果画像１１０は、原画像（画像１０５と同様の配列）と一致したものとなる。
【０１２６】
復号時の並べ替え処理においては、事前に区切りコードが挿入されている符号を並べ替えて復号する。区切りコードがない場合には、並べ替えの前に区切りコードを挿入する処理が必要とされる。さらに、復号時に符号化時と同様に上下左右反転、回転等の処理を行うことが可能である。
【０１２７】
以上、この発明の実施の形態について具体的に説明したが、この発明は、上述の実施の形態に限定されるものではなく、この発明の技術的思想に基づく各種の変形が可能である。例えばこの発明は、ディジタルスチルカメラに限らず、ＪＰＥＧまたはＭＰＥＧの符号化装置を備える画像記録装置、パーソナルコンピュータ、ＰＤＡ(Personal Digital Assistants)、画像送信装置、携帯端末、携帯電話等に適用することができる。
【図面の簡単な説明】
【０１２８】
【図１】画像処理ブロックの大きさと処理の効率の関係を説明するための略線図である。
【図２】画像処理の方向と符号化の方向とが一致する場合の処理を説明するための略線図である。
【図３】画像処理の方向と符号化の方向とが一致しない場合の従来の処理を説明するための略線図である。
【図４】この発明を適用できる画像処理の一例を説明するための略線図である。
【図５】この発明を適用できる画像処理の他の例を説明するための略線図である。
【図６】この発明による処理の一例を概略的に説明するための略線図である。
【図７】この発明による処理の他の例を概略的に説明するための略線図である。
【図８】この発明による撮像装置の一実施形態のブロック図である。
【図９】従来の画像処理を説明するための略線図である。
【図１０】画像処理の参考例を説明するための略線図である。
【図１１】この発明による画像処理装置の一実施形態を説明するための略線図である。
【図１２】この発明による画像処理装置と他の構成例とのメモリアクセス量を比較して示す略線図である。
【図１３】この発明による画像処理装置の一実施形態の画像処理を説明するための略線図である。
【図１４】この発明の一実施形態の画像処理の流れを説明するためのフローチャートである。
【図１５】この発明の一実施形態における区切りコードの挿入処理を説明するための略線図である。
【図１６】この発明の一実施形態におけるスライススタートコードの挿入処理を説明するための略線図である。
【図１７】この発明の一実施形態における区切りコードの書き換え処理を説明するための略線図である。
【図１８】この発明の一実施形態における区切りコードの削除処理を説明するための略線図である。
【図１９】この発明の一実施形態における区切りコードの削除処理の第１の方法を説明するための略線図である。
【図２０】この発明の一実施形態におけるスタッフィングビットの削除処理の方法を説明するための略線図である。
【図２１】この発明の一実施形態における区切りコードの削除処理の第２の方法を説明するための略線図である。
【図２２】この発明の一実施形態における区切りコードの削除処理の第３の方法を説明するための略線図である。
【図２３】この発明の一実施形態における区切りコードの削除処理において必要とされるスタッフィングビット数の記録方法の一例を説明するための略線図である。
【図２４】この発明の一実施形態における並べ替え時の処理の効率化を説明するための略線図である。
【図２５】この発明による画像処理装置の他の構成を示すブロック図である。
【図２６】この発明を２枚の画像の処理に適用した場合を説明するための略線図である。
【図２７】この発明を２枚の画像の処理に適用した場合の変形例を説明するための略線図である。
【図２８】この発明を１枚の画像を分割して処理する場合に適用した例を説明するための略線図である。
【図２９】この発明を１枚の画像を分割して処理する場合に適用した例を説明するための略線図である。
【図３０】この発明を画像の上下左右反転処理に適用した一例を説明するための略線図である。
【図３１】この発明を画像の上下左右反転処理に適用した他の例を説明するための略線図である。
【図３２】復号側の処理の参考とした例を説明するための略線図である。
【図３３】この発明による復号側の処理を説明するための略線図である。
【符号の説明】
【０１２９】
２  撮像素子
４  カメラ信号処理部
６，２４  サイズ変更処理部
７，２６  符号化部
８，３４  並べ替え部
１１  ＣＰＵ
３２Ａ，３２Ｂ  ２バンク構成のメモリ
【図１】
2006238407.tif 000009
【図２】
2006238407.tif 000010
【図３】
2006238407.tif 000011
【図４】
2006238407.tif 000012
【図５】
2006238407.tif 000013
【図６】
2006238407.tif 000014
【図７】
2006238407.tif 000015
【図８】
2006238407.tif 000016
【図９】
2006238407.tif 000017
【図１０】
2006238407.tif 000018
【図１１】
2006238407.tif 000019
【図１２】
2006238407.tif 000020
【図１３】
2006238407.tif 000021
【図１４】
2006238407.tif 000022
【図１５】
2006238407.tif 000023
【図１６】
2006238407.tif 000024
【図１７】
2006238407.tif 000025
【図１８】
2006238407.tif 000026
【図１９】
2006238407.tif 000027
【図２０】
2006238407.tif 000028
【図２１】
2006238407.tif 000029
【図２２】
2006238407.tif 000030
【図２３】
2006238407.tif 000031
【図２４】
2006238407.tif 000032
【図２５】
2006238407.tif 000033
【図２６】
2006238407.tif 000034
【図２７】
2006238407.tif 000035
【図２８】
2006238407.tif 000036
【図２９】
2006238407.tif 000037
【図３０】
2006238407.tif 000038
【図３１】
2006238407.tif 000039
【図３２】
2006238407.tif 000040
【図３３】
2006238407.tif 000041