(57)【要約】【課題】僅かな量のワーキングメモリを使用するだけで、圧縮されたデータ同士の合成処理を可能とする、データ合成装置及びデータ合成方法を提供する。【解決手段】圧縮された形式の複数のデータを合成するために、該複数のデータのそれぞれについてデータの小片を取り出して伸張した展開小片データを作成し、２つ以上の展開小片データを合成して合成データの一部分を作成する処理を、合成データが完成するまで繰り返して行なうことを特徴とする。【選択図】図４
2006011776.tif 000002
【特許請求の範囲】
【請求項１】
圧縮された形式の複数の元データを合成して合成データを作成する方法であって、前記複数の元データのそれぞれについて、データの小片を取り出して伸張した展開小片データを作成し、それぞれ異なる前記元データから作成された２つ以上の前記展開小片データを合成して前記合成データの一部分を作成する処理を、前記合成データが完成するまで繰り返して行なうことを特徴とする、合成データの作成方法。                           
【請求項２】
前記データ小片の伸張を終える時に、前記データ小片が前記複数の元データのいずれを由来とするかを示す識別標識と、前記データ小片の伸張処理を行なうデータ伸張部の内部状態とを保存し、次に前記データ伸張部が前記保存した識別標識が示す前記元データと同じ前記元データから取り出された新しいデータ小片を処理する際に、前記データ伸張部の内部状態を前記保存した内部状態に復元してから前記新しいデータ小片の伸張を行なうことを特徴とする、請求項１に記載の合成データの作成方法。
【請求項３】
前記合成データの一部分を作成する際に、前記作成した合成データの一部分を圧縮することを特徴とする、請求項1又は２に記載の合成データの作成方法。
【請求項４】
前記内部状態は、前記データ小片の中で伸張できなかった未処理ビットに関することを特徴とする、請求項1乃至３のいずれかに記載の合成データの作成方法。
【請求項５】
前記複数の元データはＪＰＥＧ形式のデータであり、前記内部状態はハフマンツリー中のノードの位置に関することを特徴とする、請求項1乃至４のいずれかに記載の合成データの作成方法。
【請求項６】
前記複数の元データの１つは写真のデータであり、前記複数の元データの別の１つは写真フレームのデータであることを特徴とする、請求項1乃至６のいずれかに記載の合成データの作成方法。
【請求項７】
圧縮された形式の複数の元データを合成して合成データを作成するデータ合成装置であって、前記データ合成装置は、前記合成データを部分毎に作成する部分作成部と、前記合成データが完成するまで前記部分作成部を繰り返し動作させる繰り返し制御部とを備え、
さらに前記部分作成部は、前記複数の元データの中から次に伸張すべき元データを決定する処理対象決定部と、前記対象決定部の指示を受けて前記伸張すべき元データのデータの小片を読み出すデータ小片供給部と、前記データ小片供給部から前記データ小片の供給を受け取ると共に前記データ小片の伸張処理を行なうデータ伸張部と、前記伸張されたデータ小片を保存するデータ小片記憶部と、前記データ小片記憶部に保存された２つ以上の前記伸張されたデータ小片を合成することにより前記合成データの一部分を作成するデータ小片合成部とを備えることを特徴とする、データ合成装置。
【請求項８】
前記データ小片合成部は、前記作成した前記合成データの一部分を圧縮することを特徴とする、請求項７に記載のデータ合成装置。
【請求項９】
前記複数の元データのうち少なくとも１つはＪＰＥＧ方式で圧縮されており、前記データ伸張部はハフマン復号器を備えることを特徴とする、請求項７または８に記載のデータ合成装置。
【請求項１０】
前記データ小片供給部は、前記読み出したデータ小片が前記複数の元データのいずれを由来とするか示す識別標識を前記読み出したデータ小片と共に前記データ伸張部に供給し、
前記データ伸張部は、前記供給を受けたデータ小片の伸張処理を終える時に、前記供給を受けた前記識別標識と前記伸張処理を終えた時の前記データ伸張部の内部状態とを保存すると共に、新しい前記データ小片を供給される時に一緒に供給される前記識別標識が、前記保存した識別標識と同じである場合は、前記データ伸張部の内部状態を前記保存した内部状態に復元してから前記新しいデータ小片の伸張処理を行なうことを特徴とする、請求項７乃至９のいずれかに記載のデータ合成装置。
【請求項１１】
前記内部状態は、前記データ小片供給部から受け取ったデータ小片の中で伸張できなかった未処理ビットに関することを特徴とする、請求項１０に記載のデータ合成装置。
【請求項１２】
前記内部状態は、ハフマンツリー中のノードの位置に関することを特徴とする、請求項１０又は１１に記載のデータ合成装置。
【請求項１３】
前記データ小片供給部は、前記データ伸張部において前記データ小片供給部から供給を受けたデータ小片の中で伸張できない未処理ビットが残った場合に、前記未処理ビットと前記供給したデータ小片が前記複数の元データのいずれを由来とするか示す識別標識とを保存し、次に前記保存した識別標識と同じ前記識別標識を有するデータ小片を前記データ伸張部に供給する際に、前記未処理ビットを一緒に供給することを特徴とする、請求項７乃至９のいずれかに記載のデータ合成装置。
【請求項１４】
前記複数の元データの１つは写真のデータであり、前記複数の元データの別の１つは写真フレームのデータである、請求項７乃至１３のいずれかに記載のデータ合成装置。
【請求項１５】
請求項７乃至１４のいずれかに記載のデータ合成装置を備えたカメラ装置であって、前記繰り返し制御部と、前記対象決定部と、前記データ小片合成部とを、前記カメラ装置が用いるCPU用いて構成したことを特徴とするカメラ装置。
【請求項１６】
請求項７乃至１４のいずれかに記載のデータ合成装置を備えたカメラ付き携帯電話機であって、前記繰り返し制御部と、前記対象決定部と、前記データ小片合成部とを、前記カメラ付き携帯電話機が用いるCPU用いて構成したことを特徴とするカメラ付き携帯電話機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は圧縮された形式の複数のデータを合成するデータ合成装置及びデータ合成方法に関する。
【背景技術】
【０００２】
市場に供給されるカメラ機能付き携帯電話（カメラフォン）の種類が増えるにつれて、様々なアプリケーションが開発され、使用されるようになっている。これらのアプリケーションの中でも特に、ダイレクトプリント機能（カメラフォンを直接にプリンタに接続して写真の印刷を可能とする機能）や、撮影された写真の加工・編集機能は、ハイエンドのカメラフォンに対するユーザーの購買意欲を刺激している。しかし、カメラフォンはズボンのポケットに入るほど小型である上に、電話機能やスケジュール機能など様々な機能を装備しなければならないため、それほど高度な写真編集機能を搭載することはできない。そこで、高度な写真編集を行なう場合には、写真データを処理能力に優れたコンピュータに移動し、コンピュータ上で編集を行なうことが一般的である。
【０００３】
現在はパソコン等のコンピュータで行なわれている写真加工の１つに、ピクチャーフレーム合成がある。ピクチャーフレーム合成とは、その名の通り、写真にフレームを付加するものである。図１にピクチャーフレーム合成の概要を示す。図１において、201はフレームを付加しようとする写真、202はピクチャーフレーム、203はピクチャーフレームが合成された写真である。図１を見ると明らかなように、合成された写真203には、元の写真201の周囲にピクチャーフレーム202が付加されており、写真に面白みが与えられている。ピクチャーフレームの他にも、マンガのキャラクターや文字などを合成する場合もある。
【０００４】
従来技術によるピクチャーフレーム合成処理のフローチャートを図５を用いて説明する。合成処理が開始すると（ステップS200）、まずシステムは合成すべき写真データを読み出して伸張する（ステップS202）。ここで写真データを伸張しなければならない理由は、カメラフォン等のデジタル撮影装置で撮影された写真データが圧縮された形式のデータであることと、圧縮された状態ではデータの合成を行なうことができないためである。伸張された写真データはシステムのワーキングメモリに保存される（ステップS204）。写真データの伸張が終わると、合成されるピクチャーフレームデータも、同様に伸張されてワーキングメモリに保存される（ステップS206、ステップS208）。最後に伸張された写真データとピクチャーフレームデータを合成して（ステップS210）、処理終了となる（ステップS212）。
【０００５】
上記のような合成処理をデジタルカメラ内で行なうというアイディアについては、特開平１１−００８８３１号公報に見られるように、従来から存在する。しかし現実には、このような合成処理をデジタルカメラやカメラフォンで行なうことは、搭載しているワーキングメモリが不足するため難しい。例えば、カメラフォンで主流になりかけている２メガピクセルの解像度を持つカメラで撮影した写真のデータサイズは、写真データの圧縮率によっても異なるが、およそ500キロバイトから800キロバイト程度である。ところがこれらの写真データを伸張すると、データサイズは約5.5メガバイトにも跳ね上がる。２メガの解像度を持つピクチャーフレームのデータサイズは、圧縮された状態ではかなり小さくなるが、伸張すると写真データと同じ5.5メガバイトになってしまう。このため、従来の合成処理方法を用いて２メガピクセルの解像度を持つ写真にピクチャーフレームを合成しようとすると、最低11メガバイトのワーキングメモリが必要となる。この問題は、カメラの解像度が上がるほどに困難性を増す。大きなワーキングメモリをシステムに搭載しようとすると、システムが高価になり、スペースも余分に必要とする。従って、搭載できるメモリの量が制限される小型のデジタルカメラやカメラフォンにおいては、数メガピクセルの写真に対してピクチャーフレームの合成を行なう機能を搭載ことは困難である。
【０００６】
現在、デジタルカメラに保存されている写真とピクチャーフレームを合成するための技術として、次のような技術が考案されている。
特開２００３−１５７３２６号公報には、カメラフォンで撮影した写真をインターネット上のサーバーに送信し、該サーバーが写真にピクチャーフレームを合成して、再びカメラフォンに送信する発明が記載されている。この発明においては、処理能力に優れたサーバコンピュータに写真の合成処理を行なわせることで、カメラフォンの処理能力の低さを補っている。しかし、通信回線が遅いことや通信料金がかさむことから、現在のところ、この方法で合成可能な写真は、非常に低い解像度のものに限られており、メール用途には適しているが、合成写真をプリントする用途には向いていない。ピクチャーフレームを合成した写真をプリントするためには、特開２０００−２２１６１１号公報において、デジタルカメラで撮影した写真データをプリンタを用いてプリントする際に、プリンタ内でピクチャーフレームを合成してプリントする発明が開示されている。この発明では、処理能力に制限のある撮影機ではなく、処理能力に余裕のあるプリンタでピクチャーフレーム合成を行なっている。
【特許文献１】特開平１１−００８８３１号公報
【特許文献２】特開２００３−１５７３２６号公報
【特許文献３】特開２０００−２２１６１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記に説明したように、従来技術に依れば、高解像度の写真データに対してピクチャーフレームを合成する機能をカメラフォン等に加えることは、要求されるワーキングメモリの量の問題から困難である。この問題は、写真データの解像度が向上し、データサイズが大きくなる程に困難性を増す。一方、最近特にユーザーから求められるダイレクトプリントなどの印刷用途に耐えうる合成写真データを作ろうとすれば、否が応でも合成写真データを高解像度で作成しなければならない。そこで本発明は、高解像度の写真データのような圧縮されたデータの合成処理のためには大容量のワーキングメモリが必要であるという問題を解決し、カメラフォンやデジタルカメラ等の小型電子機器にも搭載可能な僅かな量のワーキングメモリを使用するだけで、圧縮されたデータ同士の合成処理を可能とする、データ合成装置及びデータ合成方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明を１つの側面から見ると、本発明は圧縮された形式の複数の元データを合成して合成データを作成する方法であって、該複数の元データのそれぞれについて、データの小片を取り出して伸張した展開小片データを作成し、それぞれ異なる元データから作成された２つ以上の該展開小片データを合成して最終的に完成すべき前記合成データの一部分を作成する処理を、該合成データが完成するまで繰り返して行なうことを特徴とする。該データ合成方法において、前記データ小片の伸張を終える時に、該データ小片が前記複数の元データのいずれを由来とするかを示す識別標識と、該データ小片の伸張処理を行なうデータ伸張部の内部状態とを保存し、次に該データ伸張部が該保存した識別標識が示す元データと同じ元データから取り出された新しいデータ小片を処理する際に、該データ伸張部の内部状態を前記保存した内部状態に復元してから該新しいデータ小片の伸張を行なうという特徴を加えてもよい。また該データ合成方法において、前記合成データの一部分を作成する際に、該作成した合成データの一部分を圧縮するという特徴を加えてもよい。
【０００９】
ある実施態様において、上記内部状態は、前記データ小片の中で伸張できなかった未処理ビットに関するものであることができる。また前記複数の元データがＪＰＥＧ形式のデータである場合には、前記内部状態はハフマンツリー中のノードの位置に関するものであることができる。さらにある実施態様において、前記複数の元データの１つは写真のデータであり、前記複数の元データの別の１つは写真フレームのデータであることを特徴とすることができる。
【００１０】
本発明を別の側面から見ると、本発明は圧縮された形式の複数の元データを合成して合成データを作成するデータ合成装置であって、該データ合成装置は、該合成データを部分毎に作成する部分作成部と、該合成データが完成するまで該部分作成部を繰り返し動作させる繰り返し制御部とを備え、さらに該部分作成部は、前記複数の元データの中から次に伸張すべき元データを決定する処理対象決定部と、該対象決定部の指示を受けて該伸張すべき元データのデータの小片を読み出すデータ小片供給部と、該データ小片供給部から前記データ小片の供給を受け取ると共に該データ小片の伸張処理を行なうデータ伸張部と、該伸張されたデータ小片を保存するデータ小片記憶部と、該データ小片記憶部に保存された２つ以上の伸張されたデータ小片を合成することにより前記合成データの一部分を作成するデータ小片合成部とを備えることを特徴とする。該データ小片合成部には、前記作成した前記合成データの一部分を圧縮する機能を加えてもよい。また前記複数の元データのうち少なくとも１つがＪＰＥＧ方式で圧縮されている場合は、前記データ伸張部はハフマン復号器を備える必要がある。
【００１１】
ある実施態様において、前記データ小片供給部は、前記元データから読み出したデータ小片が前記複数の元データのいずれを由来とするか示す識別標識を該読み出したデータ小片と共に前記データ伸張部に供給し、該データ伸張部は、該供給を受けたデータ小片の伸張処理を終える時に、該識別標識と伸張処理を終えた時のデータ伸張部の内部状態とを保存すると共に、新しいデータ小片を供給される時に一緒に供給される識別標識が、該保存した識別標識と同じである場合は、該データ伸張部の内部状態を該保存した内部状態に復元してから新しいデータ小片の伸張処理を行なうことを特徴とする。この内部状態は、前記データ小片供給部から受け取ったデータ小片の中で伸張できなかった未処理ビットに関するものであることができ、またハフマンツリー中のノードの位置に関するものであることができる。
【００１２】
ある実施態様において、前記データ小片供給部は、前記データ伸張部において前記供給を受けたデータ小片の中で伸張できない未処理ビットが残った場合に、該未処理ビットと該供給したデータ小片が前記複数の元データのいずれを由来とするか示す識別標識とを保存し、次に該保存した識別標識と同じ識別標識を有するデータ小片を該データ伸張部に供給する際に、前記未処理ビットを一緒に供給することを特徴とする。
【００１３】
ある実施態様において、前記複数の元データの１つは写真のデータであり、前記複数の元データの別の１つは写真フレームのデータであることを特徴とする。
【００１４】
本発明は、その１つの実施態様において、上記に記載のデータ合成装置を備えたカメラ装置であって、前記繰り返し制御部と、前記対象決定部と、前記データ小片合成部とを、前記カメラ装置が用いるCPU用いて構成したことを特徴とするカメラ装置を含んでいる。また本発明は、その１つの実施態様において、上記に記載のデータ合成装置を備えたカメラ付き携帯電話機であって、前記繰り返し制御部と、前記対象決定部と、前記データ小片合成部とを、前記カメラ付き携帯電話機が用いるCPU用いて構成したことを特徴とするカメラ付き携帯電話機を含んでいる。
【発明の効果】
【００１５】
本発明によれば、複数の圧縮データを合成するために必要なワーキングメモリが従来技術に比べて少なくて済むという効果を得ることができる。このため、本発明を利用すれば、カメラフォンやデジタルカメラ等のワーキングメモリを大量に積めない小型撮影機器であっても、高解像度の写真データとピクチャーフレームの合成処理を行なうことが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下添付図面を参照して本発明を実施するための形態を説明する。まず、図１で説明した、写真データ201とピクチャーフレームデータ202を合成して合成写真データ203を作成する合成処理を、本発明によるデータ合成方法を用いて行なう場合の処理の流れを図２のフローチャートを用いて説明する。なお、写真データ201とピクチャーフレームデータ202はJPEG方式等で圧縮された画像データであるとする。
【００１７】
図２は、本発明を用いたピクチャーフレーム合成処理の流れを示すフローチャートである。ステップS2はデータ合成処理の開始である。まず写真データ201から、データのごく小さな部分のデータ（以下データ小片という）を取り出す（ステップS4）。このデータ小片は圧縮されているので、次のステップS6では取り出したデータ小片を伸張する。同様に、ピクチャーフレームデータ202からデータ小片を取り出し（ステップS8）、取り出したデータ小片を伸張する（ステップS10）。伸張されたデータ小片はYUV形式かRGB形式のデータであり、どちらの場合でも対応するピクセル同士を合成することが可能となる。ステップS12においてはこのような処理が行なわれ、伸張された写真データ201のデータ小片と、伸張されたピクチャーフレームデータ202のデータ小片とを合成することにより、合成写真データ203の一部分を作成する。ステップS4からステップS12 までのステップを、合成写真データ203の全ての部分が完成するまで繰り返すことにより（ステップS14）、合成写真データ203を完成させることができる。すなわち、ステップS14の繰り返しを行なう度に、写真データ201及びピクチャーフレームデータ202の異なる部分からデータ小片を取り出して伸張し、伸張したデータ小片を合成することにより、合成写真データ203が部分毎に作成されていく。なお、ステップS12において、合成写真データ203の一部分を作成したあと、当該部分を圧縮する処理を入れてもよい。
【００１８】
ステップS4やステップS8で取り出すデータ小片の大きさは、例えば64バイトや128バイトといった、ごく小さなものとすることができる。従って、本発明によるデータ合成方法において必要とされるワーキングメモリの容量は、（合成写真データを保存するメモリ容量を別にすれば、）例えば64バイトの圧縮された形式のデータ小片が伸張されたときに予想される最大の大きさの２〜３倍であれば十分である。これはせいぜい数キロバイトのオーダーであって、背景技術の項で説明した既存技術において要求される十数メガバイトとは桁違いに小さい。さらに本発明によるデータ合成方法によれば、合成すべきデータのサイズに関係なく、一度に取り出すデータ小片の大きさを64バイトや128バイト等に設定することができる。従って、高解像度の写真データであっても、ワーキングメモリの容量を増やさずに合成処理を行なうことが可能である。このため、本発明を利用すれば、カメラフォンやデジタルカメラ等のワーキングメモリを大量に積めない小型撮影機器であっても、高解像度の写真データとピクチャーフレームを合成する機能を無理なく搭載することが可能となる。特に、ダイレクトプリントなどの印刷用途においては高解像度の画像データが求められるが、本発明を利用すれば、カメラフォンや小型デジタルカメラなどでも、印刷用途に耐えうる高品質のピクチャーフレーム合成写真を作成することが可能となる。
【００１９】
次に本発明をハードウエアに実装する実施形態について説明する。図３は本発明を用いたデータ合成装置の一例を示す機能ブロック図である。データ合成装置２も、図１で説明したような、JPEG形式の写真データ201とJPEG形式のピクチャーフレーム202を合成して合成写真データ203を作成する画像データ合成装置である。データ合成装置２は、CPU4, RAM6, メモリカード8, データ小片供給部10, データ伸張部12, データ書込部14, データ圧縮部16, 合成画像出力部18を備えている。CPU4は、データ合成装置２の全体の制御を担う処理装置である。以下の説明においてCPU4がデータ合成装置２の各構成要素を制御する様子が述べられるが、これらの制御はCPU4が図示しないソフトウエアに従って動作することにより遂行される。RAM6は、データ合成装置２内で処理されるデータを一時的に格納する主記憶装置である。メモリカード８は着脱自在のデータ記録媒体であり、多数の写真データやピクチャーフレームデータが格納されている。CPU4は、写真とピクチャーフレームの合成を行なう際に、合成すべき写真201とピクチャーフレーム202のデータをメモリカード8から読み出してRAM６に格納する。
【００２０】
データ小片供給部10は、CPU4の命令を受けて、RAM6に格納されている写真データ201又はピクチャーフレームデータ202の小さな小片を読み出し、データ伸張部12へ送る。読み出すデータ小片の大きさはごく小さいもので、例えば64バイトや128バイト程度でよい。写真データ201とピクチャーフレームデータ202のどちらのデータを読み出すかはCPU4によって指定される。またデータ小片供給部10は、データ小片を読み出す度に、読み出し開始アドレスを読み出したデータ小片の分だけ加算するように構成される。このためデータ小片供給部10は、CPU4から新たなデータ読み出し命令を受ける度に、前回とは異なるデータ小片を読み出すことができる。当然ながら、読み出し開始アドレスの加算は写真データ201とピクチャーフレームデータ202のそれぞれについて独立に行なうように構成される。データ小片供給部10は、読み出したデータ小片をデータ伸張部12へ送る他に、読み出したデータ小片が写真データ201とピクチャーフレームデータ202のいずれかから読み出されたものかを示す識別標識を、データ伸張部12とデータ書込部14に送るように構成される。
【００２１】
データ伸張部12はJPEGデコーダーを有し、データ小片供給部10から供給されるデータ小片に対してJPEG復号化処理を行なって伸張し、伸張したデータ小片をデータ書込部14に送る。データ書込部14は、伸張されたデータ小片をRAM6に格納する。データ書込部14は、データ小片供給部10から受け取った識別標識によって、伸張されたデータ小片のRAM上の格納アドレスを振り分け、写真データ201に由来するデータ小片とピクチャーフレームデータ202に由来するデータ小片とがRAM上で区別きるようにする。データ書込部14はさらに、伸張されたデータ小片がRAMに保存されたことをCPU4に知らせるために、データをRAM6に書き込むとCPU4に割り込みをかけるように構成される
【００２２】
CPU4は、RAM6に保存されている、写真データ201に由来する伸張されたデータ小片と、ピクチャーフレームデータ202に由来する伸張されたデータ小片とが所定量以上あるかないかを調べ、所定量以上ある場合にこれらのデータを合成する。合成処理は、等しい大きさのデータ同士について行なわれる。データ圧縮部16はCPU4の命令を受けて、合成されたデータをJPEG圧縮して、RAM16に格納する。合成され、圧縮されたデータは、合成写真データ203の一部分となる。
【００２３】
合成写真データ203の１つの部分が構築されると、CPU4は、写真データ201とピクチャーフレームデータ202のどちらのデータを読み出すかを決定し、データ小片供給部10に指定する。この決定は、RAM6上に保存されている伸張されたデータ小片の量で決められる。データ小片供給部10が読み出してくるデータ小片はJPEG圧縮されたデータであるため、伸張前のデータサイズが一定であっても、伸張後のデータサイズはばらばらである。一方、合成処理は等しい大きさのデータ同士について行なわれる。このため、CPU4が合成処理を行なった後も、RAM6にはピクチャーフレームデータ202に由来するデータが余っているという場合があることが起こりうる。このような場合にCPU4は、次に伸張すべきデータを写真データ201と決定し、データ小片供給部10に写真データ201からデータ小片の読み出しを行なうように命令する。
【００２４】
CPU4は上記のように、合成写真データ203の一部分を作成すると、データ小片供給部10を制御して新たに写真データ201やピクチャーフレームデータ202から別のデータ小片を読み出し、これらが伸張されたデータ同士を合成して、合成写真データ203の別の一部分を作成する。この繰り返し制御により、CPU4は最終的に合成写真データ203を完成する。完成した合成写真データ203は、メモリカード8に保存されたり、合成画像出力部18を通じてデータ合成装置2の外部に出力される。
【００２５】
写真データがJPEG形式で圧縮されたデータである場合、データ伸張部12はデータ小片供給部10から供給されるデータ小片の全てを伸張できない場合がある。すなわち、データ小片供給部10から供給されるデータ小片の大きさが固定されている場合、データ小片の全てがコードワードに対応しているとは限らず、数ビットの未処理ビットが残る場合がある。従ってデータ伸張部12は、この未処理ビットに対応できるように構成することが好ましい。
【００２６】
一つの実施態様においてデータ伸張部12は、データ小片の伸張処理が終わった後に残った未処理ビットを、上に説明したデータの由来を示す識別標識と共に保存し、新しいデータ小片の供給を受けたときに、共に供給された識別標識が以前に保存した識別標識と同じである場合には、新しいデータ小片の先頭に保存しておいた未処理ビットを付加してから、伸張を行なうように構成することができる。このとき、当該未処理ビットについて調査したコードワードについて再び調査しなくとも良いように、当該未処理ビットについて最後に調査したハフマンツリーの位置も記憶しておき、新しいデータ小片と一緒に当該未処理ビットの伸張を行なう場合は、記憶しておいたハフマンツリー位置の次の位置から伸張処理を開始するように構成することが好ましい。このようにデータ伸張部12は、各データ小片の伸張処理を終える時に、そのデータ小片の識別標識と処理を終えたときの内部状態（未処理ビット、ハフマンツリーの位置など）を保存すると共に、新しいデータ小片と共に供給された識別標識が、保存した識別標識と同じである場合は、データ伸張部12の内部状態を保存した内部状態に復元してから新しいデータ小片の伸張処理を行なうように構成することが好ましい。
【００２７】
１つの実施態様においては、データ伸張部12の内部状態として、次に説明するような簡単な情報を用いることができる。例として、写真データ201やピクチャーフレームデータ202に用いられているコードワードが以下の表１のようなものであるとする。
【００２８】
【表１】
2006011776.tif 000003
【００２９】
つまり、最も出現確率の高いビット列にビット列10（コードワード）が割り当てられ、次に出現高いビット列には110が割り当てられ・・・というコードワード群が用いられるとする。このような場合、内部状態として次の表2のようなものを用いることができる。
【００３０】
【表２】
2006011776.tif 000004
【００３１】
表2に示す実施態様においては、内部状態Nとは、データ小片供給部10から次に供給されるビットが０であればコードワードNに対応した出力を行なう（すなわち伸張する）と共に初期状態（内部状態０）に戻り、データ小片供給部10から次に供給されるビットが１の場合は内部状態をN+1に遷移するという状態を示す。従って、この実施態様においては、未処理ビットが発生したとしても、
データ伸張部12は未処理ビットそのものを記憶する必要はなく、内部状態と識別標識のみを記憶しておけばよい。このため、データ伸張部12の構造が簡単になるという利点がある。またデータ伸張部12は、データ小片供給部10から記憶した識別標識と同じ識別標識が供給された場合は、データ伸張部12の内部状態を当該記憶しておいた内部状態に復元した後に、新しく供給されるデータ小片の最初のビットが0であるか1であるかを調べるように構成される。
【００３２】
データ伸張部12で発生した未処理ビットの取り扱いを、データ小片供給部10に任せるような実施形態も可能である。例えば以下のような構成が可能である。まずデータ小片供給部10にカウンタを設け、データ伸張部12にデータ小片の1ビットを供給する度に、データ伸張部12から伸張されたデータの出力があるか否かを監視すると共に、出力がなかった回数をカウンタで数えるように構成する。もし出力があればカウンタの値を初期状態である0に戻す。しかし、データ小片の全てを供給した時にカウンタの値が0でない場合は、その値と同じビット数の未処理データがデータ伸張部12に発生したものと判断し、その分のビットデータを保存しておく。従ってデータ小片供給部10は、データ小片の全てをデータ伸張部12に供給した後も、多少のビットデータを保存しておく記憶手段を備えておく必要がある。そして次に該データ小片と同じ識別標識を持つデータ小片をデータ伸張部12に供給する場合は、まず保存したビットデータから改めてデータ伸張部12に供給するように構成する。
【００３３】
図４を用いてデータ合成装置2の動作を説明する。ステップS100は、写真データ201とピクチャーフレームデータ202を合成して合成写真データ203を作成する動作の開始を示す。ステップS102では、CPU4が、写真データ201とピクチャーフレームデータ202のどちらのデータを伸張するかを決定する。ステップS104ではデータ小片供給部10が、CPU4の指示を受けてステップS104で決定されたデータの小さな部分（データ小片）を読み出し、読み出したデータ小片を、該データ小片のデータが写真データ201とピクチャーフレームデータ202のどちらから読み出されたものかを示す識別標識と共に、データ伸張部12に供給する。ステップS106では、データ伸張部12が、ステップS104で供給された識別標識と同じ識別標識に関連して記憶しておいた内部状態を復元する。記憶しておいた内部状態がない場合は、データ伸張部12の内部状態を初期化する。ステップS108ではデータ伸張部12が、ステップS104でデータ小片供給部10から供給されたデータ小片を伸張する。
【００３４】
ステップS110では、データ小片の伸張処理を終えた時点のデータ伸張部12の内部状態が保存される。ステップS106やステップS110における内部状態とは、上に説明したように、該データ小片の未処理ビットやハフマンツリー中のノードの位置に関するものである。ステップS112では、伸張されたデータ小片がRAM6に保存される。ステップS114ではCPU4が、既に伸張されたデータ小片が所定量以上あるか否かを調べ、所定量以上あればステップS116で合成処理を行なう。最も簡単には、伸張された写真データ201のデータ小片と伸張されたピクチャーフレームデータ202のデータ小片とが、それぞれ1ブロック以上あれば、両者を合成すると定めることができる。が、例えばそれぞれ16ブロック以上なければ合成処理を行なわないというように構成することも可能である。もしRAM6に保存されている、写真データ201を由来とするデータとピクチャーフレームデータ202に由来するデータのうち、どちらかのデータが所定量に満たなければ、CPU4はデータ小片供給部10に指示を出し、足りない方のデータからデータ小片の読み出しを行なうように制御する。
【００３５】
RAM6に伸張されたデータが所定量以上保存されている場合は、ステップS116に進み、CPU4が写真データ201とピクチャーフレームデータ202の伸張されたデータ小片を合成して、合成画像データ203の一部分を作成する。作成された当該部分のデータはデータ圧縮部16でJPEG圧縮され、RAM6に保存される（ステップS118）。ステップS120では、CPU4が合成写真データ203が完成したか否かを判断し、否の場合はステップS102に戻り、データ小片供給部10に指示を出して、新しいデータ小片の読み出し・伸張・合成が繰り返される。ステップS102 からS120を繰り返すことで、合成写真データ203が完成する。合成写真データ203が完成すれば、処理は終了となる（ステップS122）。
【００３６】
ところで、データ伸張部12で伸張されたデータのデータ量は、データ小片が圧縮されたデータであることから、データ小片毎に異なる。このため、データ小片供給部10が供給するデータ小片の大きさを例えば64バイトと固定したとしても、写真データ201に由来するデータ小片を伸張すると300バイトにしかならないのに対し、ピクチャーフレームデータ202に由来するデータ小片を伸張したら1200バイトになる、ということもありうる。すると、ステップS116においてCPU4がこれらの伸張されたデータの合成を行なった後も、ピクチャーフレームデータ202に由来する伸張されたデータが900バイト分、合成されずに余ることになる。そこでCPU4は、ステップS102に戻る時に、写真データ201とピクチャーフレームデータ202のうち、伸張されたデータが足りない方のデータからデータ小片を読み出すように、データ小片供給部10に指示を出す。
【００３７】
本発明によるデータ合成装置は、高解像度の写真データに対してピクチャーフレームの合成を行なう場合であっても、僅かな量のワーキングメモリしか必要としない。このため本発明によるデータ合成装置は、カメラフォンやデジタルカメラ等のワーキングメモリを大量に積めない小型撮影機器に無理なく組み込むことが可能である。これらの小型撮影機器は、CPUやRAM、メモリカードを搭載していることが通常なので、これらのCPUやRAMを、図２におけるCPU4やRAM6、メモリカード8と共用することが可能である。また、図３におけるデータ切片供給部10，データ伸張部12，データ書込部14，データ圧縮部16という機能ブロックは、処理速度の面からはハードウエアで構成することが好ましいが、全てソフトウエアで実現することも可能である。もしこれらの機能を全てソフトウエアで実現した場合は、現行のカメラフォンやデジタルカメラのハードウエアを変更することなく、本発明を搭載することが可能となる利点がある。さらに近年のカメラフォンやデジタルカメラには、USBなどの有線接続手段や、赤外線・Bluetooth・無線LANなどの無線接続手段を有し、プリンタと直接接続して写真をプリントできるものがある。そこで図３における合成画像出力部18をかかる有線接続手段や無線接続手段と共用し、作成した合成写真データ203をDCF、Exif等の標準的なデータ形式に整形した上で合成画像出力部18から出力すれば、本発明によって作成された高解像度のピクチャーフレーム合成写真をプリンタで直接に印刷することが可能となる。
【００３８】
以上、本発明を写真データとピクチャーフレームデータとを合成する方法及び装置を例にとって説明してきたが、本発明の適用範囲はこの用途に限るものではないことは言うまでもない。例えば、上記実施例においては２つの圧縮された形式の画像データを合成していたが、本発明は２つ以上の圧縮された形式のデータを合成する場合においても適用可能であることは、すぐに諒解できる。また本発明は、僅かな量のワーキングメモリを必要とするだけで複数の圧縮された形式のデータの合成処理を可能とすることを目的として開発されたものだが、開発されたデータ合成方法は、搭載されるワーキングメモリの量が少ない環境にのみ使用されうるものではなく、様々な環境において適用可能な一般的なデータ合成アルゴリズムとして十分使用されうることは、当業者であれば本明細書の全趣旨から明らかである。
【図面の簡単な説明】
【００３９】
【図１】ピクチャーフレーム合成の概要を示す説明図である。
【図２】本発明を用いたピクチャーフレーム合成処理のフローチャートである。
【図３】本発明を用いたデータ合成装置のブロック図である。
【図４】本発明を用いたデータ合成装置の動作を示すフローチャートである。
【図５】従来技術によるピクチャーフレーム合成処理のフローチャートである。
【符号の説明】
【００４０】
２    データ合成装置
４    ＣＰＵ
６    ＲＡＭ
８    メモリカード
１０    データ小片供給部
１２    データ伸張部
１４    データ書込部
１６    データ圧縮部
１８    合成画像出力部
【図１】
2006011776.tif 000005
【図２】
2006011776.tif 000006
【図３】
2006011776.tif 000007
【図４】
2006011776.tif 000008
【図５】
2006011776.tif 000009