(57)【要約】【課題】アプリケーションからの要求により、割り当て可能な最大のメモリーを確保し、そのメモリーブロックの中から必要量だけをアプリケーションに返し、残りを空き領域として分割し管理することが可能な画像表示用メモリー管理装置を提供する。【解決手段】アプリケーション１０３からメモリー要求があった場合は、空き領域３０１から必要量の領域を割り当てると共に、割り当てた領域（使用中領域４０１）に対応付けるメモリー領域管理構造体４０２を、空き領域４０３のメモリー領域管理構造体４０４とアドレスの順をつないだリスト構造として新たに作成して管理する。【選択図】図１
2005044218.tif 000002
【特許請求の範囲】
【請求項１】
画像表示用メモリーを、高速転送可能な物理アドレス連続な領域に確保し管理する場合に、確保したメモリーブロックを複数の領域に分け、単純なロジックおよび最小限の管理情報で効率よく利用するためのメモリー管理装置。
【請求項２】
ページ（ブロック）単位、２のべき乗単位などでメモリーを管理する装置において、確保したメモリーブロックを複数の領域に分け、単純なロジックで効率よく利用するためのメモリー管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的メモリー確保の機構があっても、確保する容量の単位について制約を受ける装置（ＯＳ・ドライバ）上のメモリーを効率的に使用する画像表示用メモリー管理装置に関し、更に詳しくは、デジタルテレビ放送におけるデータ放送を表示するソフトウェアにおいて、圧縮画像を伸張し表示するために用いる画像表示用メモリー管理装置に関する。
【背景技術】
【０００２】
図２は一般的なデジタルテレビ受信機の構成を示すブロック図である。テレビ放送電波はアンテナ２０１から入り、チューナ２０２により選局され復調器２０３により復調される。復調された信号は、ＴＳデコーダ２０４により、映像・音声データと、そのほかのデータに分けられ、映像・音声データは、それぞれ映像デコーダ２０６、音声デコーダ２０５に送られ、処理される。
【０００３】
映像・音声以外のデータとしてはデータ放送用のデータが存在し、ブラウザという表示用ソフトウェアによって処理され、必要に応じて映像データと合成され画面上に表示される。
【０００４】
ブラウザにおいて扱われるデータには、文字・図形・ビットマップ画像などがあり、ビットマップ画像は、伝送データ量を削減するために、ＪＰＥＧなど標準的な方法によって圧縮されて送られてくる。ブラウザはこの画像データを伸張し、ハードウェアに応じたデータ形式に変換して表示を行う。
【０００５】
図９に汎用メモリー管理使用時のメモリー管理を示す。物理アドレス空間９０１では、確保されたメモリーは物理アドレス空間９０１に不連続にマッピング９０２され、これらのメモリーは、論理アドレス空間９０３では、連続した論理アドレス空間９０３にマッピング９０４される。つまり、ハードウェアに応じたデータ形式の画像表示用メモリーを汎用メモリー管理で確保した場合、物理的に連続なアドレスに割り当てられるとは限らず、表示に際してのメモリー転送時にアドレス変換、メモリーコピーが発生し、表示速度の低下を招く。
【０００６】
図１０に、描画時にメモリー転送を行う場合のメモリー管理を示す。描画時のメモリー転送では、上記問題を避けるため、画像表示用メモリー１００３にメモリーを物理的に連続なアドレス１００４に確保するための特殊なメモリー管理が必要となる。前記メモリー管理の下では、メモリー確保は本来ページと呼ばれる固定長単位で行われ、これをさらに、２のべき乗単位で管理し、上位システムに割り当てる仕組みを持つ場合がある（例えば特許文献１参照）。
【特許文献１】実開平５−４３２４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ページ単位であっても２のべき乗単位であっても、上位システムで実際に必要とするメモリー量とは差が出るのが普通である。こうして生じる無駄な領域がシステムのメモリー効率の低下を招くことになる。
【課題を解決するための手段】
【０００８】
アプリケーションからの要求により、割り当て可能な最大のメモリーを確保し、そのメモリーブロックの中から必要量だけをアプリケーションに返し、残りを空き領域として分割し管理する。
【発明の効果】
【０００９】
本発明によれば、単純なリスト処理によるメモリー管理が可能であり、既存のアプリケーションの構造を大幅に変更することなく、少ない追加プログラムで効率的な高速画像表示用メモリー管理が可能となる。
【００１０】
また、デフラグ、ガーベジコレクションなど、一般的なメモリー管理において行われる処理が省かれているが、これは、使用目的がデータ放送表示用ということもあり、画面遷移によって、画像用メモリーはほぼ全てがリフレッシュ（解放される）ため、導入しても効果が望めない。
【発明を実施するための最良の形態】
【００１１】
図１に本発明の概要図を示す。本発明は、動的にメモリーを確保するためのメモリー管理装置１０１と、本発明のメモリー管理装置１０２と、画像表示用メモリーを確保するためのアプリケーション１０３と、メモリー管理装置１０１によって確保されるメモリーブロック１０４と、アプリケーション１０３が実際に使用するメモリーである使用中領域１０５と、メモリーブロック１０４中の空き領域１０６と、ビデオＲＡＭ１０７及び表示装置１０８から構成される。
【００１２】
図３にメモリー管理の初期状態を示す。メモリー管理装置１０２は、メモリー確保時にリスト構造のメモリー領域管理構造体３０２を作成し、固定長メモリーブロック全体を空き領域３０１として、空き領域３０１とメモリーブロック管理構造体３０２を対応付ける。メモリー領域管理構造体３０２は、開始アドレス、サイズ、空き／使用中を示すフラグから構成される。通常、確保できる固定長メモリーブロックの数は有限個に制限されているため、メモリーブロック管理のためのパラメータ（ポインタ、サイズなど）は固定長の配列として扱うことが可能である。また、メモリーブロック内の管理も、アドレス順につながったリスト構造体として管理するので、最低限、スタートアドレスへのポインタ、メモリーブロックの容量、使用フラグ（空き、または、使用中の２つの値をとる）だけの情報で管理可能である。
【００１３】
図４にメモリー管理のメモリー確保状態を示す。アプリケーション１０３からメモリー要求があった場合は、空き領域３０１から必要量の領域を割り当てる。そして、割り当てた領域（使用中領域４０１）に対応付けるメモリー領域管理構造体４０２を、空き領域４０３のメモリー領域管理構造体４０４とアドレスの順をつないだリスト構造として新たに作成する。メモリー確保処理については後ほど図７を用いて詳述する。
【００１４】
図５にメモリー管理のメモリー解放状態を示す。使用中領域がアプリケーション１０３で不要となった場合は、解放する領域５０４に対応するメモリー領域管理構造体５０３のフラグをクリアする（フラグを「空き」とする）。また、図６に示すように、解放する領域５０４の前後に空き領域５０２があった場合は、これらの領域を統合して空き領域６０２とする。メモリー解放処理については後ほど図８を用いて詳述する。
【００１５】
次にメモリー確保処理について図７に示すフローチャートを用いて説明する。ここで、要求メモリー量が固定長メモリーブロックのサイズより大きければエラーとする（Ｓ７０１でＮｏ）。
【００１６】
要求メモリー量が固定長メモリーブロックのサイズ以下で（Ｓ７０１でＹｅｓ）、かつ、すでに確保された固定長メモリーブロックがなければ（Ｓ７０２でＮｏ）、新たに固定長メモリーブロックを確保して空き領域として管理し（Ｓ７０６でＹｅｓ、Ｓ７０７）、前記空き領域から必要量を割り当てると共に対応するメモリー領域管理構造体を作成する（Ｓ７０４）。そして、確保した空き領域が要求メモリーより大きい場合は（Ｓ７０５でＹｅｓ）、残りの領域を空き領域とし、割り当てた領域に対応するメモリー領域管理構造体とアドレス順に並ぶように新たにメモリー領域管理構造体を作成する（Ｓ７０８）。
【００１７】
要求メモリー量が固定長メモリーブロックのサイズ以下で（Ｓ７０１でＹｅｓ）、かつ、すでに確保されたメモリーブロックがあれば（Ｓ７０２でＹｅｓ）、各メモリーブロックの空き領域を検索し要求メモリーよりも大きな空き領域がなければ（Ｓ７０３で「見つからなかった」）、新たに要求メモリーが入るメモリーブロックを確保して空き領域として管理し（Ｓ７０６でＹｅｓ、Ｓ７０７）、前記空き領域から必要量を割り当てると共に対応するメモリー領域管理構造体を作成する（Ｓ７０４）。そして、確保した空き領域が要求メモリーより大きい場合は（Ｓ７０５でＹｅｓ）、残りの領域を空き領域とし、割り当てた領域に対応するメモリー領域管理構造体とアドレス順に並ぶように新たにメモリー領域管理構造体を作成する（Ｓ７０８）。
【００１８】
一方、要求メモリーが入る空き領域があれば（Ｓ７０３で「見つかった」）、それらのうち最も要求メモリー容量に近い空き領域を割り当てると共に、空き領域に対応付けられていたメモリー領域管理構造体を分裂させ、上記処理（Ｓ７０５、Ｓ７０５）を行う。割り当て方法としては、例えば、各メモリーブロックの空き領域検索中に、要求メモリーが入る空き領域があれば割り当て候補とし、ループしながら、空き領域を比較し、小さい方を候補にしていく方法をとる。ここで、メモリーを割り付けていって、空き領域が足りなくなれば、また、新たに、固定長メモリーを確保し、メモリーブロック管理構造体を作る。新たな固定長メモリーが確保できないときは、メモリーが確保できないものとしてエラーとする（Ｓ７０６でＮｏ）。
【００１９】
次にメモリー解放処理について図８に示すフローチャートを用いて説明する。まず、メモリー領域管理構造体を検索し、解放対象のメモリーが属するメモリーブロックを検索する（Ｓ８０１）。これは、メモリー領域管理構造体がアドレス順に並んでいることから、簡単に割り出すことができる。
【００２０】
解放対象のメモリーのメモリー領域管理構造体が見つかった場合は（Ｓ８０１で「見つかった」）、この領域を空き領域として、メモリー領域管理構造体のフラグを、空き領域を示す値にセットする（Ｓ８０２）。そして、前後の隣接するメモリーブロックの空き状態を調べ、空き領域であれば、これらの領域を統合させて管理する（Ｓ８０３〜Ｓ８０６）。
【００２１】
固定長ブロック内で確保されているメモリーがすべて空き状態のメモリーであれば、これを解放し（Ｓ８０７でＹｅｓ）、メモリー領域管理構造体を初期化する（Ｓ８０８）。
【００２２】
なお、本実施の形態では、メモリー領域管理構造体をリスト構造としているが、このとき、このメモリー領域管理構造体自体を本機構で動的確保をしないように気をつける必要がある。なぜなら、メモリー領域管理構造体を確保するためにメモリー領域管理構造体を作成するという無限循環を起こしてしまうためである。これを避けるには、確保するメモリーブロックの頭にメモリー領域管理構造体をつけるなどという手法が考えられる。
【産業上の利用可能性】
【００２３】
本発明の画像表示用メモリー管理装置は、アプリケーションからの要求により、割り当て可能な最大のメモリーを確保し、そのメモリーブロックの中から必要量だけをアプリケーションに返し、残りを空き領域として分割して管理できるため、全てのテレビジョン放送受信機に適用できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の概要を示す図
【図２】デジタルテレビの構成を示すブロック図
【図３】本発明の実施の形態に係るメモリー管理の初期状態を示す図
【図４】同実施の形態に係るメモリー管理のメモリー確保状態を示す図
【図５】同実施の形態に係るメモリー管理のメモリー解放状態を示す図
【図６】同実施の形態に係るメモリー管理のメモリー解放時の空き領域統合状態を示す図
【図７】同実施の形態に係るメモリー確保処理を示すフローチャート
【図８】同実施の形態に係るメモリー解放処理を示すフローチャート
【図９】従来の汎用メモリー管理使用時のメモリー管理状態を示す図
【図１０】従来の描画時のメモリー転送を行う際のメモリー管理状態を示す図
【符号の説明】
【００２５】
１０１、１０２    メモリー管理装置
１０３    アプリケーション
１０４    メモリーブロック
１０５、４０１    使用中領域
１０６、４０３、５０２、６０２    空き領域
１０７    ビデオＲＡＭ
１０８    表示装置
３０１    固定長メモリーブロック
３０２、４０２、４０４、５０１、５０３、６０１    メモリー領域管理構造体
５０４    解放される領域
【図１】
2005044218.tif 000003
【図２】
2005044218.tif 000004
【図３】
2005044218.tif 000005
【図４】
2005044218.tif 000006
【図５】
2005044218.tif 000007
【図６】
2005044218.tif 000008
【図７】
2005044218.tif 000009
【図８】
2005044218.tif 000010
【図９】
2005044218.tif 000011
【図１０】
2005044218.tif 000012