(57)【要約】【課題】  シンプルかつ低コストのメモリ管理手法により、メモリの断片化を効果的に抑制することができる新規な動的メモリ管理技術を実現する。【解決手段】  メモリ使用の要求が生じた際に、予め用意されたメモリ空間に必要量のメモリ領域を確保するメモリ管理方法であって、メモリ空間に、それぞれ異なるサイズで、かつそのサイズが不変である複数種の固定メモリブロックを割り当てる第１のステップと、メモリ使用の要求が生じたとき、メモリ使用の対象となるデータのサイズに基づいて、複数種の固定メモリブロックの中から格納先となるいずれかの固定メモリブロックを選定する第２のステップと、を含む。【選択図】  図２
2007034556.tif 000002
【特許請求の範囲】
【請求項１】
メモリ使用の要求が生じた際に、予め用意されたメモリ空間に必要量のメモリ領域を確保する動的メモリ管理方法であって、
前記メモリ空間に、それぞれ異なるサイズで、かつそのサイズが不変である複数種の固定メモリブロックを割り当てる第１のステップと、
メモリ使用の要求が生じたとき、メモリ使用の対象となるデータのサイズに基づいて前記複数種の固定メモリブロックの中から格納先となるいずれかの固定メモリブロックを選定する第２のステップと、を含むことを特徴とする動的メモリ管理方法。
【請求項２】
請求項１記載の動的メモリ管理方法であって、
前記データを前記固定メモリブロックのいずれかに格納するに際し、前記固定メモリブロックのサイズに対して格納しようとする前記データのサイズの占める割合が１／３以下となる固定メモリブロックを選定することを特徴とする動的メモリ管理方法。
【請求項３】
請求項１記載の動的メモリ管理方法であって、
前記選定された固定メモリブロック内に前記データを格納する空き領域が存在しない場合には、その固定メモリブロックよりも次に大きなサイズの固定メモリブロックを前記データの格納先の候補とし、前記データが必要とする格納領域が見つかるまで格納先となる固定メモリブロックを探索することを特徴とする動的メモリ管理方法。
【請求項４】
請求項１〜請求項３のいずれか１項記載の動的メモリ管理方法であって、
前記第１のステップは、前記メモリの使用要求を予め定められたシーケンスに従って発生させる場合に、前記シーケンス通りにメモリ使用の要求を仮想的に発生させ、格納先に指定された各固定メモリブロックのそれぞれが、要求されたデータの総サイズを確保できるサイズを各固定メモリブロックに割り当てることを特徴とする動的メモリ管理方法。
【請求項５】
請求項１〜請求項４のいずれか1項記載の動的メモリ管理方法であって、
前記複数の固定メモリブロックの各々は、２のべき乗の容量をもつことを特徴とする動的メモリ管理方法。
【請求項６】
請求項１〜請求項５のいずれか１項記載の動的メモリ管理方法を実施する動的メモリ管理装置であって、
前記第１のステップを実施する固定メモリブロック割り当て部と、
メモリ使用要求元からのメモリ使用要求を受付け、格納しようとする前記データのサイズ情報に基づいて格納先となる固定メモリブロックを選定すると共に、該選定された固定メモリブロック内に前記データを格納するメモリ管理部と、を有する動的メモリ管理装置。
【請求項７】
請求項６記載の動的メモリ管理装置と、
前記メモリ領域を提供する少なくとも一つのメモリと、を有することを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ空間に必要量のメモリ領域を確保する動的メモリ管理方法及び装置、並びにこれを用いた電子機器に関する。
【背景技術】
【０００２】
固体撮像素子を備えた電子スチルカメラやビデオカメラ等の撮像装置（電子スチルカメラやビデオカメラ等）では、固体撮像素子によって光電変換されて得られるアナログ信号をＡ／Ｄ変換し、その結果として得られる画像データをそのまま、あるいは必要に応じて圧縮してメモリに一時的に蓄積し、次に、その画像データを読出して画像処理回路へ送って所定の画像処理（例えば、歪み補正、ＹＣ分離、縮小ズーム、画像回転、ポストフィルタ処理、JPEG圧縮、垂直方向の拡大といった各種の画像処理）を行い、画像処理後の画像データを必要に応じて圧縮した後に再度メモリに蓄積する、といった一連の処理が行われる。
【０００３】
上記処理では、撮像データの一時的な蓄積のため、あるいは、各種の画像処理時（圧縮・伸長処理を含む）における処理データの一時的蓄積のため等に、メモリが頻繁に使用される。
【０００４】
メモリ利用形態としては、メモリの使用要求を発する回路毎に専用のメモリを予め設けておく態様（予め専用のメモリを用いる形態）と、共通のメモリ空間を用意してメモリ使用要求が生じたときにその都度、メモリ空間内に必要なサイズのメモリ領域を確保し、使用後にそのメモリ領域を解放する態様（動的メモリ管理を行う形態）とがある。
【０００５】
ただし、前者は、無駄が多くなりがちであり、コスト面でも不利となり易いため、小型化、軽量化ならびに低コスト化が求められる電子スチルカメラ等の分野では、後者の動的メモリ管理が適しているといえる。
【０００６】
動的メモリ管理を行う場合に最も気を付けなくてはならないのは、メモリの断片化（フラグメンテーション）によるメモリ使用効率の低下を避けることである。メモリの断片化とは、メモリ空間に多数のメモリ使用領域が散らばって設けられることにより、細切れとなったメモリ領域が多くなり、連続した未使用のメモリ領域の確保が難しくなる現象である。
【０００７】
メモリ断片化に伴う問題点としては、実際の空きメモリの合計の容量が使用したいメモリサイズ以上あるにもかかわらず、連続した領域が確保できないために、結局、データのメモリへの格納ができなくなり、メモリの利用効率ならびにメモリへのアクセス効率が低下することがあげられる。
【０００８】
従来から、このメモリの断片化（フラグメンテーション）を低減する方法として、種々の対応策が提案されている。
【０００９】
例えば、特許文献１に記載されるような、ガーベージコレクション機能（必要の無くなったメモリ領域を自動的に検出して解放する機能を設ける」もの、あるいは、特許文献２に記載されるような、新たにメモリ使用領域が確保されると、隣接する未使用領域同士を結合させるという処理を新たに実行して連続した未使用領域を意図的に増やすもの、または、特許文献３に記載されるように、メモリを最初から多数の小フラグメントの組として管理し、未使用の複数の小フラグメント同士を自在に結合させて連続した領域のように取り扱うことを可能とするもの等が知られている。
【特許文献１】特表２００２−５１９７５２号公報
【特許文献２】特開平６−３０９１９７号公報
【特許文献３】特開平６−１６１８７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１記載の技術は、ガーベージコレクション機能という非常に高度なメモリの自動解放技術を用いるものであるため、小型化、軽量化ならびに低コスト化が厳しく求められる電子スチルカメラ等の分野への利用には適さない。
【００１１】
また、特許文献２記載の技術は、メモリの使用領域が確保されると、隣接する未使用領域同士を結合させて連続した未使用領域を新たに作成する点は断片化の抑制に貢献するが、新たな連続領域の形成や、その管理を効率的に行うためにメモリ管理方式が複雑化する。また、結局のところ、隣接する未使用領域が無ければ、結合処理による連続領域の増大の効果は何も得られず、折角の高いメモリ管理機能を活かすことができない場合がある。
【００１２】
また、特許文献３に記載の技術も、メモリ空間を小さなフラグメントの集合体とみなし、ポインタを使って各フラグメントを自在に結合させる処理を行うことは、断片化の問題の大きな解消策にはなり得るが、多数の微小なフラグメントを個別に、動的に管理する必要があり、メモリ管理が複雑化し、近年、小型化、軽量化ならびに低コスト化が急激に進展している電子スチルカメラ等の分野への利用は、必ずしも容易ではないと考えられる。
【００１３】
本発明はこのような考察に基づいてなされたものであり、シンプルかつ低コストのメモリ管理手法により、メモリの断片化を効果的に抑制することができる新規な動的メモリ管理方法及び装置、並びにこれを用いた電子機器を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る上記目的は下記構成により達成される。
（１）  メモリ使用の要求が生じた際に、予め用意されたメモリ空間に必要量のメモリ領域を確保する動的メモリ管理方法であって、前記メモリ空間に、それぞれ異なるサイズで、かつそのサイズが不変である複数種の固定メモリブロックを割り当てる第１のステップと、メモリ使用の要求が生じたとき、メモリ使用の対象となるデータのサイズに基づいて前記複数種の固定メモリブロックの中から格納先となるいずれかの固定メモリブロックを選定する第２のステップと、を含むことを特徴とする動的メモリ管理方法。
【００１５】
この動的メモリ管理方法によれば、従来は、断片化（メモリ空間に細切れの未使用領域が増える現象）が生じた後の対策が主流であるが、断片化の未然防止に主眼がおかれる。また、一度設定したメモリ領域の区分が時間経過と共に動的に変化したり、あるいは、細切れのメモリ領域を結合させて新たなメモリ領域を作成したりするような、一旦、設定されたメモリ領域のサイズが時間経過と共に動的に変化する高度なメモリ管理手法は、本動的メモリ管理方法では採用せず、従来とはまったく異なるメモリ管理の考え方を導入する。すなわち、本発明では、メモリ空間内に、サイズ（容量）が異なる複数のメモリブロックを設定し、一度設定されたそれらのメモリブロックのサイズは、原則的には固定され、そのサイズのまま使用される（つまり、サイズの異なる、複数の固定メモリブロックの設定を行う。ただし、メモリブロックの再設定によるブロックサイズの変更が否定されるわけではない）。つまり、サイズが異なるメモリ領域を、一つのメモリ空間内で制限なく確保できることが断片化の大きな原因となっているのであり、例えば、大、中、小のサイズのデータがあるとき、大サイズのデータは、大サイズの固定メモリブロックに優先的に収納し、同様に、中サイズ、小サイズのデータは各々、中サイズ、小サイズの固定メモリブロックに優先的に格納するようにすれば、サイズの異なるメモリ使用領域が、メモリ空間内にバラバラに散らばることがなく、断片化を未然に抑制することが可能となる。換言すれば、一つのメモリ空間に、サイズの異なるデータをバラバラに格納することを許容し、これを前提として、無駄なメモリ領域の発生を最小限化する方法（従来技術）を実現するのは難しく、一方、大サイズのデータと小サイズのデータの混在を防止して、同程度のサイズのデータ同士を基本的に同じ固定メモリブロックに集めるという方針の下で、その同程度のデータをいかにその固定メモリブロック内に可能な限り隙間無く配置するかを考える本発明の手法は、メモリ管理の考え方自体が格段にシンプルであり、基本的には、データのサイズに基づいて格納先の固定メモリブロックを決定し、その固定メモリブロック内での先頭アドレスを決め、そのアドレスにデータを振り分け、メモリの使用の終了後にそのメモリ領域を解放するだけでよいため、メモリ管理が極めて簡単化される。さらに、一つの固定メモリブロックに格納されるデータのサイズは同程度であるため、メモリ管理が容易化され、また、電子機器を実際に動作させて固定メモリブロック内の使用状況を調査し、その調査結果から適切な固定メモリブロックサイズを選定するといったことも比較的簡単にでき、効果的なメモリ管理を容易に実現できるということであり、このことは、電子機器の低コスト化にも貢献する。
【００１６】
（２）  （１）記載の動的メモリ管理方法であって、前記データを前記固定メモリブロックのいずれかに格納するに際し、前記固定メモリブロックのサイズに対して格納しようとする前記データのサイズの占める割合が１／３以下となる固定メモリブロックを選定することを特徴とする動的メモリ管理方法。
【００１７】
この動的メモリ管理方法によれば、複数種のサイズからなる固定メモリブロックが複数用意された中からデータの格納先となる固定メモリブロックを選定する際に、格納しようとするデータのサイズが、固定メモリブロックのサイズの１／３以下の割合となるような固定メモリブロックを選定する。これにより、同一の固定メモリブロックに複数回データ格納が行えるだけの空き領域が確保され、また、格納先の固定メモリブロックの選定を容易化でき、その結果、多様な大きさのデータを効率的にメモリ空間に割り振ることが可能となる。
【００１８】
（３）  （２）記載の動的メモリ管理方法であって、前記選定された固定メモリブロック内に前記データを格納する空き領域が存在しない場合には、その固定メモリブロックよりも次に大きなサイズの固定メモリブロックを前記データの格納先の候補とし、前記データが必要とする格納領域が見つかるまで格納先となる固定メモリブロックを探索することを特徴とする動的メモリ管理方法。
【００１９】
この動的メモリ管理方法によれば、データのサイズに基づいて格納先の固定メモリブロックを選定したが、その固定メモリブロックには、そのデータを格納するに足る空き領域がない、という場合も想定されるため、この場合には、次善の策として、その固定メモリブロックよりも大きな容量をもつ直近の固定メモリブロックを格納先候補とし、データの格納先を積極的に確保するようにする。この方法では、データサイズを基準として選定された固定メモリブロックに必要な空き領域がないときは、データ格納不可と判断してエラーとすることもできる。この場合にはサイズの異なるデータが他の固定メモリブロックに分散されるのを防止して断片化を抑制することができるが、その一方で、データの処理が中断されて電子機器の動作に支障が生じることも懸念されるため、データの格納先の確保を優先する。
【００２０】
（４）  （１）〜（３）のいずれか１項記載の動的メモリ管理方法であって、前記第１のステップは、前記メモリの使用要求を予め定められたシーケンスに従って発生させる場合に、前記シーケンス通りにメモリ使用の要求を仮想的に発生させ、格納先に指定された各固定メモリブロックのそれぞれが、要求されたデータの総サイズを確保できるサイズを各固定メモリブロックに割り当てることを特徴とする動的メモリ管理方法。
【００２１】
この動的メモリ管理方法によれば、メモリの使用要求が予め定められたシーケンスで発生する場合には、このシーケンス通りにメモリ使用の要求を仮想的に発生させて、格納先に指定された各固定メモリブロックのそれぞれが、要求されたデータの総サイズを確保できるサイズを各固定メモリブロックに割り当てる。これにより、各固定メモリブロックが最小限必要となるサイズを確実に確保でき、メモリ使用効率を高められる。
【００２２】
（５）  （１）〜（４）のいずれか1項記載の動的メモリ管理方法であって、前記複数の固定メモリブロックの各々は、２のべき乗の容量をもつことを特徴とする動的メモリ管理方法。
【００２３】
この動的メモリ管理方法によれば、固定メモリブロックの容量を２のべき乗とすることにより、空き領域の検索（探索）や先頭アドレスの検索（探索）が容易化され、一つの固定メモリブロック内におけるデータの格納先の領域の決定処理が容易化される。
【００２４】
（６）  （１）〜（５）のいずれか１項記載の動的メモリ管理方法を実施する動的メモリ管理装置であって、前記第１のステップを実施する固定メモリブロック割り当て部と、メモリ使用要求元からのメモリ使用要求を受付け、格納しようとする前記データのサイズ情報に基づいて格納先となる固定メモリブロックを選定すると共に、該選定された固定メモリブロック内に前記データを格納するメモリ管理部と、を有する動的メモリ管理装置。
【００２５】
この動的メモリ管理装置によれば、予めにサイズの異なる複数の固定ブロックをメモリ空間に割り当てておき、実際のメモリ使用要求があると、格納しようとするデータのサイズに基づいて格納先となる固定メモリブロックを選定し、その固定メモリブロック内における格納先領域を確保してアドレス情報を要求元に返信するといった処理がなされる。これにより、シンプルな構成をもち、高速かつ低コストの動的メモリ管理を行える動的メモリ管理装置が実現される。
【００２６】
（７）  （６）記載の動的メモリ管理装置と、前記メモリ領域を提供する少なくとも一つのメモリと、を有することを特徴とする電子機器。
【００２７】
この電子機器によれば、共通のメモリ空間に、複数の異なるサイズのデータを格納して各種の処理を行う必要のある電子機器全般において使用可能である。
【発明の効果】
【００２８】
本発明は、断片化の未然防止を主目的として、サイズの異なる複数の固定メモリブロックをメモリ空間内に設け、格納しようとするデータのサイズに基づき、使用する固定メモリブロックを選定することによって、シンプルかつ低コストの動的メモリ管理が行える動的メモリ管理方法及び装置、並びにこれを用いた電子機器を実現することができる。
【発明を実施するための最良の形態】
【００２９】
次に、本発明に係る動的メモリ管理方法及び装置、並びにこれを用いた電子機器の好適な実施の形態について、図面を参照して詳細に説明する。
（第１の実施形態）
【００３０】
図１は、本発明の電子機器の一例である撮像装置（デジタル電子スチルカメラ）の構成を示すブロック図である。
この撮像装置は、レンズ１０と、レンズ駆動部１１と、撮像装置の動作を統括的に制御するＣＰＵ１２と、システムメモリ１３と、タイミングジェネレータ２６と、ＣＣＤ３１と、ＬＣＤディスプレイ３２と、ＡＦ回路３６と、ＡＥ／ＡＷＢ回路３７と、アナログ信号処理回路（ＣＤＳ／ＡＧＣ／ＡＤＣ）３８と、メモリカード４９と、ＤＳＰ１００（画像入力インタフェース４２，画像処理回路４３，圧縮・伸長処理回路４４，メディアコントローラ４６，ビデオエンコーダ４７，システムバス５５を備える）と、メモリ１１０と、メモリ管理装置１２０（ブロック割り当て部１２２と、ブロック管理部１２４を備える）と、を有している。
【００３１】
ＣＣＤイメージセンサ３１から取り込まれたアナログの撮像信号は、アナログ信号処理回路３８に入力される。
アナログ信号処理回路３８は、相関２重サンプリング回路（ＣＤＳ）と、オートゲインコントローラ（ＡＧＣ）と、ＡＤコンバータ（ＡＤＣ）とからなる。ＣＤＳは、アナログ信号のノイズを除去し、ＡＧＣはアナログ信号のゲインを自動調節する。ＡＤＣは、アナログ信号をデジタル変換して画像データを生成する。
【００３２】
この画像データは、各画素毎にＲ，Ｇ，Ｂの濃度値を持つＣＣＤ−ＲＡＷデータ（ＣＣＤラインセンサから出力される１行分の撮像データ）であり、このＣＣＤ−ＲＡＷデータがＤＳＰ（ＤｉｇｉｔａｌＳｉｇｎａｌ Ｐｒｏｃｅｓｓｏｒ）１００に入力される。アナログ信号処理回路３８にも、タイミングジェネレータ２６からのタイミング信号が供給され、ＣＣＤイメージセンサ３１から電荷が取り込みまれるタイミングと同期が取られている。
【００３３】
ＤＳＰ１００は、ＡＦ回路３６，ＡＥ／ＡＷＢ回路３７，画像入力コントローラ４２，画像処理回路４３，圧縮・伸長処理回路４４，メディアコントローラ４６，ビデオエンコーダ４７からなるＩＣチップであり、アナログ信号処理回路３８から入力された画像データに対して、各種の信号処理を施した後、画像のＬＣＤディスプレイ３２への表示や画像データのメモリカードへの書き込み処理を行う。
【００３４】
なお、ＡＦ回路３６は、ＣＣＤイメージセンサ３１によって撮像された画像データに基づいて、焦点位置を検出し、フォーカシングを行う。ＡＥ回路３７は、画像データに基づいて、被写体輝度を測定し、絞り値やシャッタ速度等を決定する。同じくＡＷＢ回路３７は、オートホワイトバランス回路であり、撮影時のホワイトバランスを自動調整する。
【００３５】
画像入力インタフェース４２は、アナログ信号処理回路３８からＣＣＤ−ＲＡＷデータを取り込み、これをメモリ１１０に書き込む。
また、画像処理回路４３は、例えば、歪み補正、ＹＣ分離、縮小ズーム、画像回転、ポストフィルタ処理、JPEG圧縮、垂直方向の拡大といった各種の画像処理を行い、各々の処理に際し、適宜、メモリ１１０を利用する。
【００３６】
また、圧縮・伸長処理回路４４は、画像入力インタフェース４２からの画像データを適宜、圧縮し、また、画像処理回路４３による各種の画像処理後の画像データを、必要に応じて圧縮し、その圧縮されたデータをメモリ１１０に書き込む。伸長処理の際も、圧縮の場合と同様に、メモリ１１０が利用される。
【００３７】
メモリ１１０は、メモリ空間を提供するＤＲＡＭ等のＬＳＩである。図１では、一つのメモリだけが記載されているが、複数のＩＣを組み合わせて一つのメモリ空間を構成してもよい。
【００３８】
メモリ１１０によって提供されるメモリ空間は、多目的に使用されるメモリ空間であり、画像の一時保管に使用でき、また、各種の処理に伴う中間作業領域としても利用可能であり、あるいは、表示画像データを蓄積するフレームメモリとして使用することもできる。
【００３９】
また、このメモリ１１０に構築されるメモリ空間には、サイズが異なる複数の固定メモリブロック（Ａ，Ｂ，Ｃ、…）が設定され、画像データは、その用途に関係なく、純粋にサイズのみによって振り分けられて、このメモリ１１０内に構築されるいずれかの固定メモリブロックに格納される（この点は、図２を用いて後述する）。
【００４０】
メモリ管理装置１２０は、本発明のシンプルかつローコストの動的メモリ管理を実現する部分である。ブロック割り当て部（メモリブロック割り当て部）１２２は、メモリ１１０により提供されるメモリ空間内にサイズが異なる複数の固定メモリブロック（Ａ，Ｂ，Ｃ，…）を設定する。
【００４１】
また、ブロック管理部１２４は、設定された各固定メモリブロックにおけるメモリ使用状況を常時管理すると共に、メモリ使用要求元（画像入力インタフェース４２、画像処理回路４３、圧縮・伸長回路４４）からのメモリ使用要求（データサイズの通知を含む）を受け、データサイズに基づいてメモリ１１０内のどの固定メモリブロックに格納するか選定し、さらに、その選定された固定メモリブロックにおいてデータの格納領域を確保し、その格納領域の先頭アドレスを要求元に返信する、という一連の動作を行う（この点も図２を用いて後述する）。
【００４２】
図２は、図１のメモリ管理部の機能と動作と、メモリ使用要求元の回路とメモリ管理部との間の情報授受の手順を説明するためのブロック図である。図２において、図１と共通する部分には同じ参照符号を付してある。
【００４３】
先に説明したように、本発明では、断片化の未然防止を主目的として、サイズの異なる複数の固定メモリブロックをメモリ空間内に設け、そのメモリサイズの動的な変更は行わず、データサイズに基づいて、使用する固定メモリブロックを選定することによって、シンプルかつ低コストの動的メモリ管理手法を実現する。
【００４４】
メモリ空間におけるサイズの異なる複数の固定メモリブロックの設定は、メモリ管理装置１２０内のブロック割り当て部１２２が行う。図２では、ブロック割り当て部１２２は、ＣＰＵ１２２の指示を受けて、メモリ１１０内のメモリ空間に、ブロックＡ（小サイズ）、ブロックＢ（中サイズ）、ブロックＣ（大サイズ）等の複数の、サイズが固定された固定メモリブロックを設定している。
【００４５】
ここで、各ブロック（Ａ〜Ｃ）のサイズは、例えば、以下のとおりである。すなわち、ブロックＣ（大サイズ）の容量は、１６０ｋＢであり、ブロックＢ（中サイズ）の容量は８０ｋＢであり、ブロックＡ（小サイズ）は、４０ｋＢである。
【００４６】
ブロック割り当て部１２２は、ブロック（Ａ〜Ｃ）を割り当てると、その割り当て情報をブロック管理部１２４に通知する。
【００４７】
ブロック管理部１２４は、以後、ブロックＡ〜Ｃの使用状況を監視すると共に、ＤＳＰ１００内の各回路（メモリ使用要求元の回路であり、図２では、画像入力インタフェース４２，画像処理回路４３，圧縮・伸長回路４４が記載されている）からのメモリ使用要求を受けると、その要求に係るデータのサイズ（確保したいメモリのサイズ）に基づき、どのブロックを格納先とするかを適宜、決定する。
【００４８】
ブロック管理部１２４における格納先ブロックの決定は、例えば、以下のような規則（区分）に従って行われる。
【００４９】
すなわち、確保したいメモリサイズが２０ｋＢ以下の場合には、ブロックＡ（小サイズ）を格納先のブロックとして選定し、同様に、確保したいメモリサイズが２０ｋＢより大きく４０ｋＢ以下の場合には、ブロックＢ（中サイズ）を選定し、確保したいメモリサイズが４０ｋＢを越える場合には、ブロックＣ（大サイズ）を選定する。
【００５０】
具体的には、固定メモリブロックのサイズに対して格納しようとするデータのサイズの占める割合が１／３以下となる固定メモリブロックを選定する。換言すると、格納対象となるデータのサイズの３倍〜８倍の固定メモリブロックを選定する。好ましくは３倍の容量をもつ固定メモリブロックを選定するのが望ましい。３倍より小さいサイズの固定メモリブロックでは、同程度のサイズのデータが複数回格納された場合に、すぐに固定メモリブロックの空き領域な無くなってしまい、結局、他の固定メモリブロックに格納されることとなり、メモリの断片化を促進させる。また、８倍を超えるサイズの固定メモリブロックでは、データのサイズ毎に区画化したことの効果が薄れ、効率的なメモリ管理が行えなくなる。
【００５１】
また、上記区分に従って格納先のブロック（例えば、ブロックＡ）を選定したものの、そのブロック内に必要な連続した空き領域を確保できない場合は、ブロック管理部１２４は、直近の上位ブロック（つまり、ブロックＢ）における空き領域をチェックし、もし確保できれば、そのブロック（ブロックＢ）を格納先のブロックとして選定し、確保できなけば、さらに直近の上位のブロック（つまり、ブロックＣ）の空き領域を調べるという、動作を実施する。設定されるブロックの数が多数有る場合も、同様の動作を繰り返して、格納先のブロックが選定される。
【００５２】
ただし、このようなブロック選定の動作をすべてのブロックについて行っても、格納先となるメモリ領域を確保できなかった場合には、エラー処理を行い、ブロック管理部１２４は、メモリ使用要求元の回路（４２〜４４の少なくとも一つ）に、その旨を通知する。
【００５３】
格納先ブロックが決まると、ブロック管理部１２４は、動的メモリ管理アルゴリズム（例えば、Ｃ言語においてはmalloc関数）を用いて、その選定されたブロック内の空き領域に、メモリ使用要求にかかるデータのためのメモリ領域を確保する。なお、メモリ使用が終了すると、その不要となったメモリ領域は、同様に動的メモリ管理アルゴリズム（例えば、Ｃ言語においてはfree関数）を用いて解放する。この解放は、メモリ使用要求元の回路からの使用終了通知や解放指示などを受けてブロック管理部１２４が行ってもよく、また、メモリ使用要求元の回路がメモリ１１０に対して直接に行ってもよい。
【００５４】
以下、メモリ使用要求元の回路とメモリ管理部との間の情報授受の手順について説明する。
【００５５】
まず、メモリ使用要求元回路（ここでは、画像入力インタフェース４２とする）がブロック管理部１２４に対して、メモリ使用要求ならびにデータサイズ情報を送る（ステップＰ１）。
【００５６】
これを受けて、ブロック管理部１２４は、上記の規則に従って格納先の固定メモリブロックを選定し、その固定メモリブロック内にデータを格納するためのメモリ領域を確保し、そして、確保したメモリ領域の先頭アドレスを、メモリ使用要求元である画像入力インタフェース４２に返信する（ステップＰ２）。なお、メモリ領域の確保に失敗したときは、その失敗を示すフラグ等を返信する。
【００５７】
メモリ使用要求元である画像入力インタフェース４２は、メモリ１１０上の、ブロック管理部１２４から受け取った先頭アドレス（例えば、ブロックＢ内のアドレス）に対してアクセスして、データを格納する（ステップＰ３）。
【００５８】
格納されたデータは、その後、読み出されて他の回路に送られてたり、他の固定メモリブロックに転送されたりし、このような処理が行われた後は、確保されたメモリ領域は不要となるから、メモリ使用要求元である画像入力インタフェース４２はメモリ領域の解放を指示する（ステップＰ４）。不要となったメモリ領域の解放にはfree関数を用いる。この解放は、メモリ使用要求元の回路である画像入力インタフェース４２からの指示を受けてブロック管理部１２４が行ってもよく、また、画像入力インタフェース４２がメモリ１１０に対して直接に行ってもよい。
【００５９】
図３は、メモリ空間に設定された複数のサイズが異なる固定メモリブロックへのデータの振り分けの態様を示す図である。
【００６０】
図示されるように、データＱ（メモリ幅はＹ１：小サイズ）は、メモリ幅Ｗ１の小サイズのブロックＡに割り振られる。同様に、データＲ（メモリ幅はＹ２：大サイズ）は、メモリ幅Ｗ３の大サイズのブロックＣに割り振られる。同様に、データＳ（メモリ幅はＹ３：中サイズ）は、メモリ幅Ｗ２の中サイズのブロックＣに割り振られる。
【００６１】
このように、本発明の動的メモリ管理方法によれば、異なるサイズ（大、中、小等）のデータが混在することなく、区別されて振り分けられる。すなわち、一つの固定メモリブロックには、原則として、同程度のサイズのデータが集められるため、メモリの利用効率が高められ、メモリ管理が容易化される。
【００６２】
なお、電子機器を実際に動作させてブロック（Ａ〜Ｃ）内の使用状況を調査し、その調査結果から、ブロック（Ａ〜Ｃ）の適切なサイズを決定することも有効である。
【００６３】
このように、複数の異なるサイズの固定メモリブロックを用意しておき、その区分を基準として格納しようとするデータサイズを判定し、格納先の固定メモリブロックを選定することによって、多様な大きさのデータを高効率でメモリ空間に割り振ることも可能となり、また、格納先のブロックの選定が容易化される。
【００６４】
図４は、本発明の動的メモリ管理方法の主要な手順を説明するためのフロー図である。
【００６５】
まず、共通のメモリ空間内に、異なるサイズの複数のブロック（サイズ固定のブロック）を設定し（ステップＳ１０）、メモリ使用要求があると（ステップＳ１１）、メモリサイズに基づいて格納先の固定メモリブロックの選定を行う（ステップＳ１３）。
【００６６】
格納先のブロックを選定できなければ、エラー処理を行い（ステップＳ１４）、固定メモリブロックの選定ができれば、その選定された固定メモリブロック内で、データを格納するためのメモリ領域を確保する（ステップＳ１５）。
【００６７】
そして、その確保されたメモリ領域にデータを格納し（ステップＳ１６）、そのメモリ領域の使用が終了すると（ステップＳ１７）、そのメモリ領域を解放する（ステップＳ１８）。解放されたメモリ領域は未使用領域に戻り、その部分は、新たにメモリ領域を確保可能な領域となる。
【００６８】
このように、本発明では、メモリ管理装置１２０のブロック割り当て部１２２が、メモリ１１０内に、複数の、サイズが異なり、かつそのサイズが固定のブロックＡ（小サイズ），Ｂ（中サイズ），Ｃ（大サイズ）等を設け、ブロック管理部１２４は、メモリ使用要求元の回路（４２〜４４）からメモリ使用要求を受けると、そのデータのサイズに基づいて、大サイズのデータは大サイズのブロックＣに格納するというように格納先の固定メモリブロックを選定し、その選定された固定メモリブロック内で、必要なメモリ領域を確保する。これによって、大、中、小の各データが共通のメモリ空間内に混在して格納されることが防止され、これによって、メモリの断片化（フラグメンテーション）が生じにくくなる。
（第２の実施形態）
【００６９】
図５は、メモリ空間に設定される複数のブロックのサイズの例を示す図である。
【００７０】
図示されるように、ブロックＡ〜ブロックＥが設けられており、各ブロックのサイズは、２のべき乗となっている。
【００７１】
ブロックのサイズ（容量）を２のべき乗とすることにより、空き領域の検索（探索）や先頭アドレの検索（探索）が容易化され、一つの固定メモリブロック内におけるデータの格納領域の決定処理が容易化される。
【００７２】
本発明によれば、シンプルかつローコストの構成で、断片化の問題が生じにくい動的なメモリ管理を行うことができ、したがって、本発明は、共通のメモリ空間に、複数の異なるサイズのデータを格納して各種の処理を行う必要のある電子機器全般に広く使用可能である。
【００７３】
また、本発明は、電子スチルカメラ、ビデオカメラならびにカメラ付き携帯端末のような携帯機に広く利用することが可能である。近年は、標準画質の標準モードや高画質のファインモード等をユーザが自由に設定できることから、撮像装置の内部で取り扱われる画像データのサイズが一律ではなく、このことは、メモリの有効利用を困難とする一因となっている。とはいえ、高級な動的メモリ管理手法は、低コスト化、小型軽量化が進展する撮像装置の分野では適用が困難である。
【００７４】
しかしながら、本発明によれば、画像入力インタフェース部、画像処理部、画像圧縮・伸長部等のメモリ使用要求元と、メモリ管理装置との間の手続が極めて簡単化され、また、動的メモリの管理も簡単かつ迅速に行える。したがって、本発明によれば、撮像装置に対する小型、軽量、低コストといった厳しい要請を満足しつつ、メモリ空間における断片化を効果的に抑制して、メモリ空間の有効利用を促進することができる。
【００７５】
以上説明したように、本発明によれば、断片化の未然防止を主目的として、サイズの異なる複数の固定された固定メモリブロックをメモリ空間内に設け、データサイズに基づき使用する固定メモリブロックを選定することによって、シンプルかつ低コストの動的メモリ管理手法を実現することができる。
【００７６】
また、一つの固定メモリブロックに格納されるデータのサイズは同程度であるため、メモリ管理が容易化される。
なお、メモリの使用要求を予め定められたシーケンスに従って発生させる場合には、電子機器を実際に動作させて固定メモリブロック内の使用状況を調査し、その調査結果から適切な固定メモリブロックサイズをメモリに割り当てることができる。具体的には、シーケンス通りにメモリ使用の要求を仮想的に発生させ、格納先に指定された各固定メモリブロックのそれぞれが、要求されたデータの総サイズを確保できるサイズを各固定メモリブロックに割り当てる。これにより、効果的なメモリ管理を容易に実現でき、電子機器の低コスト化にも貢献できる。
【００７７】
また、データのサイズに基づいて複数の固定メモリブロックのいずれかに区分して格納先となる固定メモリブロックを決めておけば、メモリ使用要求が生じた場合に、そのデータの格納先のブロックを簡単に選定することができる。
【００７８】
また、例えば、複数の異なるサイズの固定メモリブロックを用意しておき、その区分を基準として格納しようとするデータサイズを判定し、格納先のブロックを選定することによって、格納先のブロックの選定が容易化され、また、多様な大きさのデータを効率的にメモリ空間に割り振ることも可能となる。
【００７９】
また、データのサイズに基づいて格納先の固定メモリブロックを選定したが、その固定メモリブロックには、そのデータを格納するに足る空き領域がない、という場合も想定されるため、この場合には、次善の策として、その固定メモリブロックよりも大きな容量をもつ直近の固定メモリブロックを格納先候補とし、データの格納先を積極的に確保するようにすることによって、データの処理が中断されて電子機器の動作に支障をきたす、といった都合が生じないようにすることができる。
【００８０】
また、固定メモリブロックの容量を２のべき乗とすることにより、空き領域の検索（探索）や先頭アドレの検索（探索）が容易化され、一つのブロック内におけるデータの格納領域の決定処理が容易化される。
【００８１】
本発明は、共通のメモリ空間に、複数の異なるサイズのデータを格納して各種の処理を行う必要のある電子機器全般において使用可能である。
【００８２】
また、本発明は、電子スチルカメラ、ビデオカメラならびにカメラ付き携帯端末のような携帯機に広く利用することが可能であり、この場合、画像入力インタフェース部、画像処理部、画像圧縮・伸長部等のメモリ使用要求元と、メモリ管理装置との間の手続が極めて簡単化され、また、その処理も迅速に行える。したがって、本発明によれば、撮像装置に対する小型、軽量、低コストといった厳しい要請を満足しつつ、メモリ空間における断片化を効果的に抑制して、メモリ空間の有効利用を促進することができる。
【図面の簡単な説明】
【００８３】
【図１】本発明の撮像装置（デジタル電子スチルカメラ）の構成の一例を示すブロック図である。
【図２】図１のメモリ管理部の機能と動作と、ならびに、メモリ使用要求元の回路とメモリ管理部との間の情報授受の手順を説明するためのブロック図である。
【図３】メモリ空間に設定された複数のサイズが異なる固定メモリブロックへのデータの振り分けの態様を示す図である。
【図４】本発明の動的メモリ管理方法の主要な手順を説明するためのフロー図である。
【図５】メモリ空間に設定される複数のブロックのサイズの例を示す図である。
【符号の説明】
【００８４】
１０  レンズ
１１  レンズ駆動部
１２  ＣＰＵ
１３  システムメモリ
２６  タイミングジェネレータ
３１  ＣＣＤ
３２  ＬＣＤディスプレイ
３６  ＡＦ回路
３７  ＡＥ／ＡＷＢ回路
３８  アナログ信号処理回路（ＣＤＳ／ＡＧＣ／ＡＤＣ）
４２  画像入力インタフェース
４３  画像処理回路
４４  圧縮・伸長処理回路
４６  メディアコントローラ
４７  ビデオエンコーダ
４９  メモリカード
５５  システムバス
１００  ＤＳＰ
１１０  メモリ（シンクロナスＤＲＡＭ等）
１２０  メモリ管理装置
１２２  ブロック割り当て部（メモリブロック割り当て部）
１２４  ブロック管理部
【図１】
2007034556.tif 000003
【図２】
2007034556.tif 000004
【図３】
2007034556.tif 000005
【図４】
2007034556.tif 000006
【図５】
2007034556.tif 000007