電子機器およびプログラム
【課題】 記憶デバイスの空き領域を有効利用しつつ高ビットレートのデータの書き込みを支障なく行う。
【解決手段】 少なくとも一つのアプリを実行する実行手段(6)、アプリの実行を中断して他の処理を実行するように指示することが可能な指示手段(6)、アプリの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段(6)、記憶デバイス(14)の空き領域を書き込み速度に応じて複数に領域分けする領域分け手段(6)、前記データ量の大きさに対応した領域が前記複数の領域の中に存在するか否かを判定する判定手段(6)を備え、領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択し、書き込み速度が遅い領域が選択された場合に指示手段から実行手段への指示出力を禁止し、選択された領域に前記データを書き込む。
【解決手段】 少なくとも一つのアプリを実行する実行手段(6)、アプリの実行を中断して他の処理を実行するように指示することが可能な指示手段(6)、アプリの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段(6)、記憶デバイス(14)の空き領域を書き込み速度に応じて複数に領域分けする領域分け手段(6)、前記データ量の大きさに対応した領域が前記複数の領域の中に存在するか否かを判定する判定手段(6)を備え、領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択し、書き込み速度が遅い領域が選択された場合に指示手段から実行手段への指示出力を禁止し、選択された領域に前記データを書き込む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器およびプログラムに関し、詳細には、高画質の動画ファイルのように、高いビットレートで時系列的に生成されるデータを支障なく記録することができる電子機器およびプログラムに関する。
【背景技術】
【0002】
近年、デジタルスチルカメラやデジタルビデオカメラ等のデジタル方式の撮像装置(以下、単に「撮像装置」という)が普及している。この種の撮像装置では、CCDなどの撮像デバイスを用いて生成した被写体の画像を静止画ファイルや動画ファイルに変換してハードディスクやフラッシュメモリなどの不揮発性の記憶デバイスに記録保存することができる。
【0003】
ここで、“ファイル”とは、汎用オペレーティングシステム(OS)におけるデータの管理単位のことをいい、そのファイル管理の仕組みのことをFAT(ファイルアロケーションテーブル)方式という。
【0004】
FAT方式では、記憶デバイスの記憶領域全体を小さな区画(クラスタと呼ばれる)に細分化し、このクラスタ単位でデータを小分けにして記憶する。データが書き込まれているクラスタを「使用済みクラスタ」、データが書き込まれていないクラスタを「未使用クラスタ」という。
【0005】
FAT方式では、これらの「使用済みクラスタ」と「未使用クラスタ」を “ファイルアロケーションテーブル”と呼ばれるデータテーブルで管理する。ファイルを記憶する場合は、テーブルから必要な数の「未使用クラスタ」を指定してそのクラスタにファイルのデータを記憶するとともに、それらのクラスタを「使用済みクラスタ」に変更する。また、ファイルを削除する場合は、そのファイルに割り当てられていたクラスタを「未使用クラスタ」に変更する。
【0006】
FAT方式の欠点は、ファイルの削除と書き込みを繰り返して行くうちに、クラスタの断片化(フラグメンテーション)が進むことにある。断片化とは「未使用クラスタ」の間に「使用済みクラスタ」が入り込むことをいい、断片化の発生度合いのことを断片化率という。断片化率が高くなるとファイルの書き込みに時間が掛かるようになり、とりわけ、高画質の動画ファイルのように、高いビットレートで時系列的に生成されるデータを書き込む際に、書き込みが追いつかないという不都合を来す恐れが出てくる。
【0007】
断片化に伴う不都合の原因は二つある。第一は、ハードディスクのように磁気ヘッドを有する記憶デバイスに特有の原因であり、一つのファイルで使用しているクラスタが不連続になるとヘッドの移動に時間が掛かることに起因する。また、第二は、フラッシュメモリのように一定の書き換え上限数が定められている記憶デバイスに特有の原因であり、各記憶セルの書き換え回数を平準化するためのデータ移動操作、つまり特定の領域に書き込みが集中しないように他の領域にデータを移動する操作が行われることに起因する。
【0008】
FAT方式の記憶デバイスは断片化を避けることができない。このため、記憶デバイスの書き込み/読み出し速度の一層の向上化が図られてきたところであるが、その一方で、ハイビジョン画質の動画データ生成など、生成側におけるデータの高ビットレート化も進みつつあることから、断片化に伴う不都合(書き込みが追いつかない)の回避策はいまだ完全なものに至ってはいない。
【0009】
動画データのように時系列的に生成されるデータを取りこぼしなく記憶するために、いわゆる「バッファ」と呼ばれる緩衝メモリを記憶デバイスの前段に入れることが常套的に行われている。このバッファは、DRAM等の高速メモリで構成されており、ハードディスクやフラッシュメモリ等の記憶デバイスに比べて遙かに高速にデータを書き込む(一時保存する)ことができるので、データの生成速度と記憶デバイスの書き込み速度との差を埋める(バッファリングする)ことができ、とりわけ、断片化に伴う不都合を確実に回避することができる。
【0010】
しかしながら、バッファの容量には上限があることから、データの生成時間が長くなると、いつかはバッファからデータが溢れることとなり、この場合、溢れたデータを記憶デバイスに書き込めない。バッファの容量を増やせばこの欠点を解消できるが、コストの増加を招くので好ましくない。
【0011】
そこで、必要十分な量のバッファを備えつつも、一方で、記憶デバイスの断片化に伴う影響を抑制するための技術が模索されており、そのような技術の一例として、下記の特許文献1、2参照には、記憶デバイスの空き領域を、断片化率が低い領域と高い領域とに分け、前者をデータの高速書き込みが可能な領域(以下、高速領域という)とする一方、後者をデータの低速書き込みが可能な領域(以下、低速領域という)とし、動画データ等の高ビットレートのデータを記録する場合は「高速領域」を使用し、それ以外の低速データ(静止画データ等)を記録する場合は「低速領域」を使用するようにした技術(以下、従来技術という)が記載されている。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2000−267904号公報
【特許文献2】特開2007−049639号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、従来技術にあっては、記憶デバイスの空き領域を有効利用するという点では未だ不十分であり、改善の余地がある。
【0014】
このことについて詳しく説明する。
まず、従来技術の要点は、
(1)記憶デバイスの空き領域を断片化率が低い領域(高速領域)と高い領域(低速領域)とに分け、
(2)動画データ等の高ビットレートのデータを「高速領域」に記憶し、それ以外の低速データ(静止画データ等)を「低速領域」に記憶する、というものであり、
要するに、上記(2)に示されているように、断片化率が低い「高速領域」を高ビットレートのデータの“専用記録領域”としている点に特徴がある。
【0015】
さて、冒頭で説明したとおり、FAT方式の欠点は、ファイルの削除と書き込みを繰り返して行くうちに、クラスタの断片化が進むことにあるので、高ビットレートのデータの専用記録領域である「高速領域」は、断片化率の高まりに伴い徐々にその領域サイズを減らしていくことになる。そして、「高速領域」の残りがなくなった時点で、それ以上、高ビットレートのデータの記憶ができなくなってしまう。
【0016】
しかし、当該時点(高速領域の残りがなくなった時点)においても実際の空き領域はまだ「低速領域」として残っているのであるから、つまり、物理的な空き領域が十分残っているのであるから、この従来技術は、記憶デバイスの空き領域を有効利用していないということができる。
【0017】
そこで、本発明の目的は、記憶デバイスの空き領域を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことができる電子機器およびプログラムを提供することにある。
【課題を解決するための手段】
【0018】
本発明の電子機器は、少なくとも一つのアプリケーションを実行する実行手段と、前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段と、前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段と、記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段と、前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段と、前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段と、前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段と、前記選択手段によって選択された領域に前記データを書き込む記憶制御手段とを備えたことを特徴とする。
【発明の効果】
【0019】
本発明によれば、記憶デバイスの空き領域を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことができる。
【図面の簡単な説明】
【0020】
【図1】携帯電話機の構成図である。
【図2】メモリ14の記憶領域区分を示す図である。
【図3】メモリ14の既定の使い方を示す概念図である。
【図4】第1のポイントを示す概念図である。
【図5】第2のポイントを示す概念図である。
【図6】放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図(1/3)である。
【図7】放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図(2/3)である。
【図8】放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図(3/3)である。
【図9】割り込みイベントの概念図である。
【図10】図8のフローを一部変形した図である。
【図11】連写や動画撮影時の処理フローを示す図(1/3)である。
【図12】連写や動画撮影時の処理フローを示す図(2/3)である。
【図13】連写や動画撮影時の処理フローを示す図(3/3)である。
【発明を実施するための形態】
【0021】
本発明の実施形態を、携帯電話機を例にして、図面を参照しながら説明する。なお、この携帯電話機は、静止画や連写並びに動画を撮影可能なカメラ機能が搭載されているとともに、さらに、インターネット等のネットワーク端末としても利用できる機能を有しており、加えて、ワンセグ放送等のテレビ放送受信機能を備えている多機能型のものである。
【0022】
図1は、携帯電話機の構成図である。携帯電話機1は、被写体像を二次元的な画像信号に変換して出力するCCDやCMOS等の撮像デバイスからなる撮像部2と、この撮像部2から出力される画像信号を信号処理する画像処理部3と、画像処理部3から出力される画像信号を一時的に保持するフレームメモリ4とを含む撮像系5を有し、この撮像系5は、中央制御部6からの制御により、撮影構図確認用のプレビュー画像を生成して中央制御部6に出力したり、または、ユーザによって指定された画質(ここでは便宜的に低画質、中画質、高画質の三種類とする)の静止画や連写画または動画のデータを生成して中央制御部6に出力したりする。なお、撮像部2は、撮影レンズやオートフォーカス機構および絞り機構などを備えるが、図面の輻輳を避けるために省略している。
【0023】
携帯電話機1は、さらに、無線通信部7、音声処理部8、放送受信部9、操作部10、タッチパネル11付の表示部12、メモリI/F(インターフェース)13、メモリ14、外部I/F15および電源部16を備える。
【0024】
無線通信部7は、アンテナ7aを介して最寄りの基地局(図示略)との間で無線によるアナログもしくはデジタルデータの送受信を行うものであり、このデータには、電話の着呼や発呼の情報および音声通話の情報が含まれるほか、インターネット上のコンテンツを利用(ダウンロード)する際などのコンテンツ情報、さらには電子メールの送受信情報などが含まれる。この無線通信部7は、以上の様々な情報の送信動作や受信動作を中央制御部6からの制御の元で行うが、通常は電話着呼の待ち受け状態にある。
【0025】
音声処理部8は、中央制御部6からの制御により、マイク8aからの音声信号をデジタルデータに変換して中央制御部6に出力したり、中央制御部6から出力されたデジタルの音声信号をアナログ信号に変換してスピーカ8bから出力したりできるものであり、これらのマイク8aやスピーカ8bを電話の送受話器として使用するほか、必要に応じ、前記の撮像系5によって静止画や連写画または動画を撮影する際の音声録音にも用いられ、あるいは、撮影済みの音声付画像を再生する際の音声出力にも用いられる。
【0026】
放送受信部9は、アンテナ9aを介してワンセグ放送等の地上波テレビジョン信号を受信し、その受信信号を中央制御部6に出力することができるものであり、この放送受信部9は、中央制御部6からの制御により、テレビジョン放送の受信オン/オフや受信チャンネルの選択などを行うことができる。
【0027】
操作部10は、中央制御部6に対して所要のユーザ入力を行うための各種操作ボタン(電源スイッチやテンキーおよび機能キーなど)を備えたインターフェースであり、また、表示部12は、好ましくは表示面にタッチパネル11を併設した液晶ディスプレイ等の平面表示デバイスである。
【0028】
メモリI/F13は、たとえば、メモリ14の規格(SDカードやUSBメモリ等)に対応した汎用インターフェースであり、中央制御部6とメモリ14との間に位置して相互のデータのやりとりを仲介する。
【0029】
メモリ14は、冒頭で説明した記憶デバイス(FAT方式で管理されるもの)に相当し、ここでは、フラッシュメモリとするが、これに限定されない。FAT方式で管理されるものであればいかなるものであってもよい。たとえば、ハードディスクなどであってもよく、この場合、メモリ14をハードディスクと読み替えるとともに、前記のメモリI/F13をディスクI/Fと読み替えればよい。
【0030】
外部I/F15は、たとえば、パーソナルコンピュータ等の外部機器とのインターフェースであり、必要に応じてその外部機器と接続し、メモリ14に記録されている画像ファイルなどを中央制御部6を経由して外部機器に出力したり、あるいは、外部機器から取り込んだ画像ファイルなどを、中央制御部6を経由してメモリ14に保存したりするものである。
【0031】
中央制御部6は、CPU6a、ROM6bおよびRAM6cならびに不図示の周辺回路を含むプログラム制御方式の制御要素である。この中央制御部6は、携帯電話機1の全体動作を統括制御するために、あらかじめROM6bに格納されている制御プログラムをRAM6cにロードしてCPU6aで実行する。
【0032】
ROM6bに格納されている制御プログラムは、汎用オペレーティングシステム(OS)と、その汎用オペレーティングシステム上で動作する各種応用プログラム(アプリケーションプログラムまたは単にアプリケーションともいう)とからなり、汎用オペレーティングシステム(OS)には、ファイルアロケーションテーブルに基づいてメモリ14のファイル管理を行うFAT方式のファイル管理システムが含まれている。
【0033】
また、CPU6aは不定期に発生する割り込みイベント(アプリケーションの実行を中断して他の処理を実行するように指示すること)を処理することができるようになっており、この割り込みイベントは、ハードウェア的なものとソフトウェア的なものの二種類ある。前者はいわゆるハードウェア割り込みと呼ばれているものであり、このハードウェア割り込みは、たとえば、ウォッチドックタイマ等のタイマ割り込みのように、あらかじめCPU6aに用意されている専用の割り込み端子をアクティブにすることによって任意に発生する。一般的にこの種のハードウェア割り込みには高い優先度が与えられており、CPU6aで動作中の制御プログラム(アプリケーション)の処理を一時中断して該当する割り込み処理(他の処理)を実行し、この割り込み処理の完了後に元の処理に復帰するようになっている。
【0034】
ソフトウェア的な割り込みイベント(ソフトウェア割り込みという)も同様であるが、優先度が低い点でハードウェア割り込みと相違する。このソフトウェア割り込みは、割り込みハンドラと呼ばれるレジスタ(RAM6cの特定番地に設定されたもの)に所定値を書き込む(割り込みフラグを立てるともいう)ことによって発生する。ソフトウェア割り込みが発生した場合も、CPU6aで動作中の制御プログラム(アプリケーション)の処理を一時中断して該当する割り込み処理(他の処理)を実行し、この割り込み処理の完了後に元の処理に復帰する。
【0035】
このように、本来の処理(アプリケーション)を一時中断して他の処理を行い、その後、元の処理に復帰することを総称して「割り込み」といい、その典型例は上記のハードウェア割り込みやソフトウェア割り込みであるが、同様な振る舞い(実行中のアプリケーションの一時中断と他の処理の実行およびその後の復帰)を行う処理ルーチンを、アプリケーションに組み込むことがしばしば行われる。たとえば、携帯電話機にあっては最寄りの基地局を探索するために定期的に電波を発射(定期的に電波オフモードから電波オンモードに遷移)しているが、当該携帯電話機で任意のアプリケーション(例:カメラ付の携帯電話機の場合に、そのカメラで被写体を撮影するためのアプリケーション)を実行中にこの遷移が発生したときには、一時的に本来の処理(この例では撮影処理用アプリケーション)を中断して最寄りの基地局の探索処理(他の処理に相当)を実行し、その後、元の処理(撮影処理用アプリケーション)に復帰するという具合である。このような分岐および復帰処理も上記のハードウェア割り込みやソフトウェア割り込みと同様に「本来の処理を一時中断して他の処理を行い、その後、元の処理に復帰する」ものであるから、本明細書中では「割り込みイベント」の概念に含めることにする。
【0036】
ここで、実施形態の課題は、記憶デバイス(この実施形態ではメモリ14)の空き領域を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことにある。
【0037】
FAT方式で管理されるメモリ14は、断片化に伴う書き込み速度の低下問題を否めないことから、バッファとして機能する所定容量の緩衝メモリ13aを備えることにより、ある程度の問題対策を講じているが、たとえば、長時間にわたる動画撮影を行った際に緩衝メモリ13aが満杯になってしまうと、それ以上、動画ファイルの保存ができなくなるという不都合がある。なお、この実施形態では緩衝メモリ13aをメモリI/F13に実装しているが、これは一例に過ぎない。たとえば、中央制御部6に実装してもよく、あるいは中央制御部6とメモリI/F13との間に実装したりしてもよい。
【0038】
緩衝メモリ13aの溢れ対策としては、冒頭で説明した従来技術のように、メモリ14の空き領域を断片化率が低い領域(高速領域)と高い領域(低速領域)とに分け、動画データ等の高ビットレートのデータを記録する場合は「高速領域」を使用し、それ以外の低速データ(静止画データ等)を記憶する場合は「低速領域」を使用することが有効であるものの、これらの対策(バッファおよび「高速領域」と「低速領域」の選択利用)だけでは、メモリ14の空き領域を有効利用するという点で不十分である。
【0039】
その理由は、高ビットレートのデータの専用記録領域である「高速領域」は、断片化率の高まりに伴い徐々に減っていき、そして、「高速領域」の残りがなくなった時点で、それ以上、高ビットレートのデータの記憶ができなくなってしまうが、当該時点においても実際の空き領域は「低速領域」として残っているからであり、空き領域(低速領域)を有効利用していないからである。
【0040】
この対策として、高ビットレートのデータの書き込み先を専用領域(高速領域)から低速領域に変更することが考えられるが、この低速領域は書き込み速度が遅い領域であるから、単に書き込み先を変更しただけでは、高ビットレートのデータの書き込みが途中で失敗する恐れがある。
【0041】
そこで、本実施形態の技術思想は、通常は高ビットレートのデータの書き込み先を専用領域(高速領域)にする一方で、高速領域を使用できない状態(高速領域が無い状態または高速領域の空きが十分でない状態)が発生した場合は、割り込みイベントを無効(禁止)にして、その割り込みイベントの処理に用いられるリソース(CPU6aの能力等)を高ビットレートのデータの書き込みに振り向けるようにし、これにより、高ビットレートのデータの書き込み先を専用領域(高速領域)から低速領域に変更した場合であっても、その低速領域への高ビットレートのデータの書き込みを支障無く行わせるようにし、以て、メモリ14の空き領域(低速領域)の有効利用を図ることにある。なお、CPU6aの“能力”とはCPU6aの処理能力のことである。一般的に処理能力はCPU6aの使用率(0〜100%)で表され、100%に近づくほど余力が無くなる。
【0042】
図2は、実施形態におけるメモリ14の記憶領域区分を示す図である。この図では、三つの記憶領域(低速領域、中速領域、高速領域)に区分しているが、これは一例に過ぎない。各領域をメモリ14の空き領域の断片化率に応じて区分すればよく、従来技術のような2区分(低速領域と高速領域)であってもよいし、または、4区分あるいはそれ以上の多区分であってもよい。
【0043】
ここで、本実施形態における「低速領域」は断片化率が高い領域(書き込み時間が遅い領域)であり、「中速領域」は断片化率が中程度の領域(書き込み時間がやや遅い領域)であり、「高速領域」は断片化率が低い領域(書き込み時間が速い領域)である。
【0044】
これら3区分の記憶領域(低速領域、中速領域、高速領域)は、メモリ14に書き込むべきデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に応じて選択的に使用する。既定の使い方(あらかじめ定められたデフォルトの使い方)は、低ビットレートのデータを低速領域に書き込み、中ビットレートのデータを中速領域に書き込み、高ビットレートのデータを高速領域に書き込むというものである。低/中/高のビットレート区分は、たとえば、2Mbps(ビット/秒)までを低ビットレートとし、2Mbpsより大きく且つ4Mbps以下を中ビットレートとし、4Mbpsより大きく且つ8Mbps以下を高ビットレートとするが、これは一例に過ぎない。
【0045】
上記の既定の使い方は冒頭で説明した従来技術と同じである。すなわち、高ビットレートのデータは従来技術の“高ビットレートのデータ”に対応し、そして、この高ビットレートのデータを「高速領域」に記憶する一方、高ビットレート以外のデータを他の領域(中速領域や低速領域)に記憶しているので、上記の既定の使い方と冒頭の従来技術とは原理的に変わりない。
【0046】
本実施形態の特徴は、通常は、既定の使い方でデータの書き込みを行うが、つまり、高ビットレートのデータを「高速領域」に書き込み、中ビットレートのデータを「中速領域」に書き込み、低ビットレートのデータを「低速領域」に書き込み、という使い方をするが、既定の使い方で定められた書き込み領域がない場合は、下位の速度の書き込み領域を代替的に使用することを第1のポイントとする。ただし、この第1のポイントだけでは、緩衝バッファ13aの溢れ問題を解消できないため、データの書き込みが途中で失敗する恐れがある。
【0047】
そこで、本実施形態では、この第1のポイントに加え、さらに、割り込みイベントを禁止するとともに、この割り込み処理に必要なリソース(CPU6aの能力等)をデータの書き込みに振り向けることを第2のポイントとする。
【0048】
この第2のポイントを加えたことにより、たとえば、高ビットレートのデータを書き込むための既定の領域(高速領域)がない場合には、その高速領域よりも下位の速度の領域(この場合は中速領域)を代替領域に指定するとともに、同時に割り込みを禁止してその割り込み処理に必要なリソースを、高ビットレートのデータの書き込みに振り向けることができるので、たとえ、高ビットレートのデータを「中速領域」に書き込む場合であっても、緩衝メモリ13aの溢れ問題は生じないから、書き込みを支障なく行うことができ、メモリ14の空き領域(この場合は中速領域)を有効利用することができるのである。
【0049】
以下、本実施形態の第1のポイントおよび第2のポイントについて、その原理を説明する。
【0050】
図3は、メモリ14の既定の使い方を示す概念図である。この図に示すように、通常、高ビットレートのデータ(以下、高速データという)17をメモリ14に書き込む際は断片化率が低い領域(高速領域14a)を使用する。また、中ビットレートのデータ(以下、中速データという)18をメモリ14に書き込む際は断片化率が中程度の領域(中速領域14b)を使用し、あるいは、低ビットレートのデータ(以下、低速データという)19をメモリ14に書き込む際は断片化率が高い領域(低速領域14c)を使用する。このような既定の使い方をすれば、たとえば、高速データ17をメモリ14に書き込んでいる間に緩衝バッファ13aが溢れることが無く、書き込み動作に支障を生じない。
【0051】
図4は、第1のポイントを示す概念図である。この図に示すように、たとえば、高速データ17を書き込むための既定の領域(高速領域)がメモリ14にない場合、冒頭で説明した従来技術では、その時点でデータの書き込みをあきらめなければならなかったが、メモリ14には他の空き領域(中速領域14bや低速領域14c)が残っているのであるから、これらの空き領域を有効利用していないという欠点があった。この欠点を解消するために、たとえば、既定の領域(高速領域)の代わりに中速領域14bを使用すること(第1のポイント)が考えられるが、単に高速データ17を中速領域14bに書き込むだけでは、緩衝バッファ13aに溢れを生じる恐れがあり、途中で書き込みが失敗してしまうという不都合がある。
【0052】
図5は、第2のポイントを示す概念図である。この図に示すように、第2のポイントは、前記の第1のポイント(既定の使い方で定められた書き込み領域がない場合に下位の速度の書き込み領域を代替的に使用する)とともに、割り込みイベントを禁止するというものである。一般的に割り込みの要因は様々であるが、あらゆる割り込みは、その割り込みの処理実行時に相応のリソース(ハードウェア資源やソフトウェア資源)を必要とする。このリソースは典型的にはCPU6aの能力である。
【0053】
この第2のポイントは、要するに、前記の第1のポイントを行う際に割り込みイベントを禁止し、その割り込みの処理に必要なリソースをデータの書き込みに振り向けるというものであり、これによって、「既定の使い方で定められた書き込み領域がない場合に下位の速度の書き込み領域を代替的に使用する」(第1のポイント)際に、緩衝メモリ13aの溢れ問題の解消を図り、もって、代替領域への書き込みを支障なく実行して当該代替領域を有効利用しようとするものである。
【0054】
なお、ここでは、高速データ17の書き込みを例にしたが、これに限定されない。中速データ18の書き込みも同様である。つまり、中速データ18の既定の書き込み領域は「中速領域14b」であるが、メモリ14に中速領域14bがない場合には、それよりも下位の速度の「低速領域14c」を代替領域に使用する(第1のポイント)とともに、同時に割り込みイベントを禁止し、割り込み処理に必要なリソースを中速データ18の書き込みに振り向ける(第2のポイント)ようにすればよい。同様に、緩衝メモリ13aの溢れ問題の解消を図り、もって、代替領域(低速領域)への書き込みを支障なく実行して当該代替領域を有効利用できる。
【0055】
次に、前記の第1のポイントおよび第2のポイントを応用した具体例を実施形態として説明する。
<第1の実施形態>
図6〜図8は、放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図である。この動作フローを開始すると最初に初期化処理(ステップS1)を実行する。この初期化処理では、まず、操作部10の電源スイッチがオンになったか否かを判定し(ステップS11)、オンであれば、次に所定の電源オン処理(一般的な初期化処理)を実行する(ステップS12)。次いで、受信機能をオンにする(ステップS13)。受信機能のオンとは、テレビジョン放送を受信する場合は放送受信部9を起動することをいい、あるいは、インターネット等からのデータダウンロードを行う場合は無線通信部7を起動することをいう。
【0056】
受信機能をオンにすると、次に、記録領域管理情報(ファイルアロケーションテーブル)を読み込み(ステップS14)、メモリ14の現在の断片化状況を検出する(ステップS15)とともに、その断片化状況に応じてメモリ14の書き込み可能領域の速度判定と領域区分の処理を実行する(ステップS16)。
【0057】
ここで、ステップS16における「メモリ14の書き込み可能領域の速度判定と領域区分の処理」とは、メモリ14の空き領域を、前出の図2に示す三つの領域(低速領域、中速領域、高速領域)に区分けすることをいい、具体的には、断片化率が高い領域を「低速領域」、断片化率が中程度の領域を「中速領域」、断片化率が低い領域を「高速領域」として区分けすることをいう。
【0058】
上記の初期化処理(ステップS1)を完了すると、次に、ユーザ操作ありを判定し(ステップS17)、ユーザ操作ありが判定された場合に、その操作内容が放送受信やダウンロードの開始操作であるか否かを判定する(ステップS18)。そして、放送受信やダウンロードの開始操作でない場合は、そのユーザ操作が電源オフ操作であるか否かを判定し(ステップS19)、電源オフ操作を判定した場合は、所定の電源オフ処理を実行(ステップS20)した後、フローを終了し、一方、電源オフ操作を判定しなかった場合は、電源オフ操作以外のその他のアプリケーション操作に対応した処理を実行(ステップS21)した後、再びステップS17に復帰する。
【0059】
ステップS18の判定結果がYESの場合、すなわち、ステップS17で検出されたユーザ操作が、放送受信やダウンロードの開始操作であると判定された場合は、次に、放送受信やダウンロードで得られたデータを緩衝メモリ13aに一時書き込みし(ステップS22)、次いで、「既定の領域あり?または代替領域選択済み?」を判定する(ステップS23)。
【0060】
ここで、“既定の領域”とは、先に説明した図2に示されている「高速領域」、「中速領域」、「低速領域」のうち、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいう。つまり、高ビットレートのデータであれば「高速領域」、中ビットレートのデータであれば「中速領域」、低ビットレートのデータであれば「低速領域」のことをいう。また、“代替領域”とは、その既定の領域がない(または使用できない)場合に、代わりに用いられる領域のことをいい、たとえば、直近低速側の領域、すなわち、既定の領域が高速領域であれば中速領域、中速領域であれば低速領域のことをいう。この代替領域は、後述のステップS32において選択される。なお、この実施形態では「代替領域=直近低速側の領域」としているが、これに限定されない。既定の領域の代わりに使用可能な領域であればよく、たとえば、低速側の他の領域や高速側の領域であってもよい。
【0061】
ステップS23の判定結果がYESの場合、すなわち、既定の領域がある場合または代替領域が選択済みの場合は、次に、緩衝メモリ13aに一時書き込みされていたデータをその領域(既定の領域または選択済みの代替領域)に書き込み(ステップS24)、放送受信終了やダウンロード終了(またはポーズ等の一時停止;以下、終了で代表)イベントありを判定する(ステップS25)。
【0062】
そして、イベントありでなければ、再びステップS22に復帰する一方、イベントありが判定された場合は、まず、緩衝メモリ13aに、未書き込みのデータがあるか否かを判定し(ステップS26)、未書き込みのデータがある場合には、その未書き込みのデータを既定の領域または選択済みの代替領域に書き込む(ステップS27)という動作を、ステップS26の判定結果がNOになるまで繰り返す。
【0063】
ステップS26の判定結果がNOになると、次に、割り込み禁止中であるか否かを判定する(ステップS28)。なお、この“割り込み禁止”については、後で説明する。
【0064】
割り込み禁止中の場合は、割り込み許可モードに戻し(ステップS29)、ダウンロード終了処理を実行(ステップS30)した後、ステップS17に復帰する一方、割り込み禁止中でない場合は、そのままダウンロード終了処理を実行(ステップS30)した後、ステップS17に復帰する。
【0065】
次に、ステップS23の判定結果がNOであった場合、つまり、既定の領域が無く、且つ、代替領域も選択済みでなかった場合について説明する。先に説明したとおり、“既定の領域”とは、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいい、たとえば、高ビットレートのデータを例にすれば、メモリ14の「高速領域」のことをいう。高速領域がない場合、高ビットレートのデータをメモリ14に書き込むことができない。それよりも低速の領域(中速領域や低速領域)に高ビットレートのデータを書き込もうとすると、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗するからである。本実施形態では、この不都合を解消するために、前記の第1のポイント(直近低速側の領域を代替領域として選択する)および第2のポイント(割り込みイベントを禁止してその割り込み処理に必要なリソースをデータの書き込みに振り向ける)を採用したものである。
【0066】
以下、これらの第1および第2のポイントを含む処理について説明する。
【0067】
ステップS23の判定結果がNOであった場合は、まず、代替領域ありか否かを判定する(ステップS31)。すなわち、既定の領域が「高速領域」であった場合は、その直近低速側の領域である「中速領域」がメモリ14に存在するか否か、あるいは、既定の領域が「中速領域」であった場合は、その直近低速側の領域である「低速領域」がメモリ14に存在するか否かを判定する。
【0068】
そして、ステップS31の判定結果がNOの場合は、データを書き込むことができる適切な代替領域がメモリ14にないと判断し、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS34)、放送受信終了処理やダウンロード終了処理(ステップS30)を実行した後、再びステップS17に復帰する。
【0069】
一方、ステップS31の判定結果がYESの場合は、代替領域を選択し(ステップS32:第1のポイント)、次に、割り込み許可モードであるか否かを判定する(ステップS33)。“割り込み許可モード”とは、先に説明したハードウェア割り込みやソフトウェア割り込みなどの割り込みイベントの実行、または各種のアプリケーションに実装された同等イベントの実行を許可するモードのことをいう。割り込みを“許可”するモードになっている場合、任意の割り込みイベントが発生すると、CPU6aは、直ちに本来の処理を一時中断してそのイベントに対応した処理(割り込み処理)を実行し、その後、元の処理に復帰する。
【0070】
第2のポイントは、この割り込み処理に必要なリソースを、データの書き込みに振り向けることにある。しかし、ステップS33の判定結果がNOの場合は、割り込み許可モードになっていない(つまり、すでに割り込みを“禁止”するモードになっている)から、データの書き込みに振り向けるためのリソースがない。したがって、この場合は、たとえ代替領域を使用したとしても、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗する可能性が高いので、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS34)、放送受信終了処理やダウンロード終了処理(ステップS30)を実行した後、再びステップS17に復帰する。
【0071】
一方、ステップS33の判定結果がYESの場合(割り込み許可モードになっている場合)は、次に、割り込み禁止モードへの変更通知(たとえば、表示部12に“○○の実行を一時的に中断します”等のメッセージを表示するなど)を行い(ステップS35)、割り込み禁止モードへ変更(ステップS36)する。
【0072】
そして、割り込み処理用のリソースを解放し(ステップS37)、解放したリソースをデータの書き込みに利用できる状態(ステップS38:第2のポイント)にした後、ステップS24に進む。
【0073】
ここで、“割り込み処理用のリソース”とは、割り込み許可モード中に何らかの割り込みイベントが発生した際に、そのイベントに応答して実行される割り込み処理用のハードウェア資源やソフトウェア資源のことをいい、“解放”とはそれらの資源を他の用途に使用できるようにすることをいう。
【0074】
このように、この実施形態では、たとえば、高ビットレートのデータを既定の領域(高速領域)に書き込もうとしたとき、高速領域がメモリ14になかった場合には、その高速領域の代わりに直近低速側の領域(この場合は中速領域)を代替領域として選択(第1のポイント)するとともに、割り込み禁止モードに変更して、その割り込み処理用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、割り込み処理用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0075】
このことは、中ビットレートのデータを書き込む場合も同様である。すなわち、中ビットレートのデータを既定の領域(中速領域)に書き込もうとしたとき、その中速領域がメモリ14になかった場合には、中速領域の代わりに直近低速側の領域(この場合は低速領域)を代替領域として選択(第1のポイント)するとともに、割り込み禁止モードに変更して、その割り込み処理用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、割り込み処理用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0076】
したがって、既定の使い方(高速データ→高速領域、中速データ→中速領域、低速データ→低速領域)だけでなく、代替領域を用いた使い方(高速データ→中速領域、中速データ→低速領域)もできるから、メモリ14の空き領域の有効利用を図ることができるという格別の効果を得ることができる。
【0077】
なお、この実施形態では、ステップS35で割り込み禁止モードへの変更通知を行った後、ステップS36で直ちに割り込み禁止モードへ変更しているが、これに限定されない。たとえば、ステップS35とステップS36の間に、ユーザの応答を判定するステップ(ステップS39)を入れてもよい。すなわち、ステップS35で割り込み禁止モードへの変更通知を行った後、ステップS39でユーザの応答を判定し、その判定結果が「変更許可指示あり」の場合にのみ、ステップS36に進み、割り込み禁止モードへ変更するようにしてもよい。このようにすると、ユーザの自発的判断により、割り込みを禁止するか否かを選択できるので好ましい。
【0078】
ここで、「割り込みイベント」についてさらに具体的に説明する。
図9は、割り込みイベントの概念図である。この図において、左側の縦長矩形は本来の処理(時間軸に沿って実行中の任意のアプリケーション)を表しており、同矩形の中央付近に描かれた太実線は、割り込みイベントの発生タイミングを示している。一般的にこのような割り込みイベントが発生すると、「本来の処理を一時中断して他の処理を行い、その後、元の処理に復帰する」という流れになる。
【0079】
前記の第1の実施形態では、本来の処理を実行中にデータの書き込みを行う際、メモリ14の既定の書き込み領域を使用できない場合に、割り込みイベントを無効(禁止)にし、その割り込みイベントの処理に用いられるリソースをデータの書き込みに振り向けるようにしている(第2のポイント)。そして、この第2のポイントでは、当該リソースとしてCPU6aの能力を想定しているが、利用可能なリソースは「CPU6aの能力」だけに限らず、たとえば、メモリなどのリソースもデータの書き込みに利用することができる。
【0080】
たとえば、割り込みイベントのための処理プログラム(図9におけるハッチング部分)のいくつかは、当該イベント発生時にすでにオンメモリ状態(RAM6cにロードされた状態)になっているものがある。たとえば、常駐型の処理プログラム(以下、常駐プログラム)はその代表であり、常駐プログラムは本来の処理を実行中、オンメモリ状態にあっていつでも直ちに実行できるように準備されている。このような常駐プログラムは自身の処理に必要なリソースをすでに占有(確保されているともいう)しており、そのリソースにはメモリ(RAM6c)も含まれる。つまり、ワーク用のメモリ領域として所要サイズの領域をすでに占有している。
したがって、第2のポイントにおいては、データの書き込みに利用するリソースとして、このような確保済みのメモリ(割り込みイベント処理用のメモリ)を利用することができる。
【0081】
図10は、図8のフローを一部変形した図であり、割り込みイベント処理用のメモリを利用できるようにしたものである。この図において、図8のフローとの相違は、一点鎖線で囲んだ部分を追加した点にある。すなわち、ステップS33で、割り込み許可モードでない(言い換えればすでに割り込み禁止モードである)と判定された場合には、まず、その割り込み禁止の対象となっている処理が「常駐型」のもの(前述の常駐型プログラムの説明を参照)であるか否かを判定する(ステップS100)。
【0082】
常駐型プログラムでない場合は、前記の図8のフロートと同様に、そのままステップS24に進むが、先にも説明したとおり、常駐型プログラムは、「本来の処理を実行中、オンメモリ状態にあっていつでも直ちに実行できるように準備されている」ものであって、このような常駐プログラムは「自身の処理に必要なリソースを占有しており、そのリソースにはメモリ(RAM6c)も含まれる。つまり、ワーク用のメモリ領域として所要サイズの領域を占有している。」のであるから、ステップS100の判定結果がYESの場合、すなわち、割り込み禁止の対象となっている処理が「常駐型」のものであると判定された場合には、次に、常駐型プログラムのリソース(ここでは占有メモリ)を解放し(ステップS101)、解放したリソースをデータの書き込みに利用できる状態(ステップS102:第2のポイント)にした後、ステップS24に進む。
このようにすれば、データの書き込みに利用するリソース(割り込みイベント処理用のリソース)として、メモリを使用することができるようになる。
【0083】
<第2の実施形態>
図11〜図13は、連写や動画撮影時の処理フローを示す図である。この動作フローを開始すると最初に初期化処理(ステップS2)を実行する。この初期化処理では、まず、操作部10の電源スイッチがオンになったか否かを判定し(ステップS41)、オンであれば、次に所定の電源オン処理(一般的な初期化処理)を実行する(ステップS42)。次いで、記録領域管理情報(ファイルアロケーションテーブル)を読み込み(ステップS43)、メモリ14の現在の断片化状況を検出する(ステップS44)とともに、その断片化状況に応じてメモリ14の書き込み可能領域の速度判定と領域区分の処理を実行する(ステップS45)。
【0084】
ここで、ステップS45における「メモリ14の書き込み可能領域の速度判定と領域区分の処理」とは、メモリ14の空き領域を、前出の図2に示す三つの領域(低速領域、中速領域、高速領域)に区分けすることをいい、具体的には、断片化率が高い領域を「低速領域」、断片化率が中程度の領域を「中速領域」、断片化率が低い領域を「高速領域」として区分けすることをいう。
【0085】
上記の初期化処理(ステップS2)を完了すると、次に、電波オフモードであるか否かを判定する(ステップS46)。電波オフモードとは、アンテナ7aを介して最寄りの基地局(図示略)との間で無線によるデジタルデータの送受信を行う際の電波発射を伴う処理を非実行中のモードのことをいい、要するに、アンテナ7aから電波を発射していないときの動作モードのことをいう。
【0086】
ステップS46の判定結果がNOの場合、すなわち、電波オフモードでないと判定された場合は、電話着信処理(ステップS3)を実行する。この電話着信処理(ステップS3)では、まず、着信(電話の呼び出し)ありを判定し(ステップS47)、着信ありの場合は、オフフック操作(操作部10のオフフックボタンの押し下げ操作)の有無を判定する(ステップS48)。そして、オフフック操作を判定すると、通話終了操作(操作部10のオンフックボタンの押し下げ操作)が行われるまで、所要の通話処理を実行して呼び出し相手との間で音声通話を行い(ステップS50、ステップS51)、一方、ステップS48でオフフック操作を判定せず且つステップS49で着信終了を判定した場合、または、ステップS51で通話終了操作を判定した場合は、この電話着信処理(ステップS3)を終了する。
【0087】
ステップS46の判定結果がYESの場合、すなわち、電波オフモードであると判定された場合または電話着信処理(ステップS3)の終了後は、次に、ユーザ操作ありを判定し(ステップS52)、ユーザ操作ありが判定された場合に、その操作内容が連写や動画等の撮像開始操作であるか否かを判定する(ステップS53)。
【0088】
ここで、連写撮影や動画撮影は、高いビットレートで且つ時系列的なデータ生成を伴う撮像処理であり、このような処理で得られた画像ファイル(連写の場合は数枚から数十枚のファイル、動画の場合は大容量のファイル)は、FAT方式の記憶デバイス(実施形態ではメモリ14)に書き込む際に、断片化に伴う不都合(書き込みが間に合わない)を生じることがある。このため、一般的にはメモリ14の前段に高速のバッファ(実施形態では緩衝メモリ13a)を入れて、その不都合回避を図っているが、緩衝メモリ13aの容量に上限があることから、冒頭で説明した従来技術では、このような静止画や動画のファイルを書き込む際に、断片化の少ない領域(つまり高速領域)を使用するという対策を講じている。
【0089】
しかしながら、単に特定の領域(高速領域)を使用するだけの対策では、メモリ14の空き領域を有効利用できないという欠点を招く。メモリ14へのファイルの書き込みやメモリ14からのファイルの削除を繰り返して行くにつれて、メモリ14の断片化が進み、高速領域以外の空き領域が増えていくからであり、従来技術の対策ではこの空き領域(高速領域以外の空き領域)を全く利用できない仕組みになっているからである。実施形態のポイントは、記憶デバイスの空き領域(高速領域以外の空き領域)を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことができることにあるが、このポイントについては後で詳しく説明する。
【0090】
ステップS53の判定結果がNOの場合、すなわち、ステップS52で検出されたユーザ操作が、連写や動画等の撮像開始操作でないと判定された場合は、次に、そのユーザ操作が電源オフ操作であるか否かを判定する(ステップS54)。そして、電源オフ操作を判定した場合は、所定の電源オフ処理を実行(ステップS55)した後、フローを終了し、一方、電源オフ操作を判定しなかった場合は、電源オフ操作以外のその他のアプリケーション操作に対応した処理を実行(ステップS56)した後、再びステップS52に復帰する。
【0091】
ステップS53の判定結果がYESの場合、すなわち、ステップS52で検出されたユーザ操作が、連写や動画等の撮像開始操作であると判定された場合は、次に、連写や動画等の撮像処理で生成されたファイルを緩衝メモリ13aに一時書き込みし(ステップS57)、次いで、「既定の領域あり?または代替領域選択済み?」を判定する(ステップS58)。
【0092】
ここで、“既定の領域”とは、先に説明した図2に示されている「高速領域」、「中速領域」、「低速領域」のうち、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいう。つまり、高ビットレートのデータであれば「高速領域」、中ビットレートのデータであれば「中速領域」、低ビットレートのデータであれば「低速領域」のことをいう。また、“代替領域”とは、その既定の領域がない(または使用できない)場合に、代わりに用いられる直近低速側の領域、すなわち、既定の領域が高速領域であれば中速領域、中速領域であれば低速領域のことをいう。この代替領域は、後述のステップS67において選択される。
【0093】
ステップS58の判定結果がYESの場合、すなわち、既定の領域がある場合または代替領域が選択済みの場合は、次に、緩衝メモリ13aに一時書き込みされていたデータをその領域(既定の領域または選択済みの代替領域)に書き込み(ステップS59)、撮像終了(またはポーズ等の一時停止;以下、撮影終了で代表)イベントありを判定する(ステップS60)。
【0094】
そして、イベントありでなければ、再びステップS57に復帰する一方、イベントありが判定された場合は、まず、緩衝メモリ13aに、未書き込みのデータがあるか否かを判定し(ステップS61)、未書き込みのデータがある場合には、その未書き込みのデータを既定の領域または選択済みの代替領域に書き込む(ステップS62)という動作を、ステップS61の判定結果がNOになるまで繰り返す。
【0095】
ステップS61の判定結果がNOになると、次に、電波オフモードであるか否かを判定する(ステップS63)。なお、この“電波オフモード”については、後で説明する。
【0096】
電波オフモードである場合は、電波オンモードに戻し(ステップS64)、撮像終了処理を実行(ステップS65)した後、ステップS52に復帰する一方、電波オフモードでない場合は、そのまま撮像終了処理を実行(ステップS65)した後、ステップS52に復帰する。
【0097】
次に、ステップS58の判定結果がNOであった場合、つまり、既定の領域が無く、且つ、代替領域も選択済みでなかった場合について説明する。先に説明したとおり、“既定の領域”とは、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいい、たとえば、高ビットレートのデータを例にすれば、メモリ14の「高速領域」のことをいう。高速領域がない場合、高ビットレートのデータをメモリ14に書き込むことができない。それよりも低速の領域(中速領域や低速領域)に高ビットレートのデータを書き込もうとすると、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗するからである。本実施形態では、この不都合を解消するために、前記の第1のポイント(直近低速側の領域を代替領域として選択する)および第2のポイント(電波オンモードを禁止してその電波オンモード用のリソースをデータの書き込みに振り向ける)を採用したものである。
【0098】
以下、これらの第1および第2のポイントを含む処理について説明する。
【0099】
ステップS58の判定結果がNOであった場合は、まず、代替領域ありか否かを判定する(ステップS66)。すなわち、既定の領域が「高速領域」であった場合は、その直近低速側の領域である「中速領域」がメモリ14に存在するか否か、あるいは、既定の領域が「中速領域」であった場合は、その直近低速側の領域である「低速領域」がメモリ14に存在するか否かを判定する。
【0100】
そして、ステップS66の判定結果がNOの場合は、データを書き込むことができる適切な代替領域がメモリ14にないと判断し、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS69)、撮像終了処理(ステップS65)を実行した後、再びステップS52に復帰する。
【0101】
一方、ステップS66の判定結果がYESの場合は、代替領域を選択し(ステップS67:第1のポイント)、次に、電波オンモードであるか否かを判定する(ステップS68)。“電波オンモード”とは、最寄りの基地局を探索したりする際にアンテナ7aからの電波発射を許容するモードのことをいい、このモードは、先に説明したハードウェア割り込みやソフトウェア割り込みなどの割り込みイベントの一種である。この電波オンモード中に基地局の探索タイミングになると、CPU6aは、直ちに本来の処理を一時中断してそのイベントに対応した処理(無線通信部7を動作させて最寄りの基地局を探索する処理)を実行し、その後、元の処理に復帰する。
【0102】
第2のポイントは、この電波オンモードの処理に必要なリソースを、データの書き込みに振り向けることにある。しかし、ステップS68の判定結果がNOの場合は、電波オンモードになっていない(つまり、すでに電波の発射を“禁止”する電波オフモードになっている)から、データの書き込みに振り向けるためのリソースがない。したがって、この場合は、たとえ代替領域を使用したとしても、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗する可能性が高いので、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS69)、撮像終了処理(ステップS65)を実行した後、再びステップS52に復帰する。
【0103】
一方、ステップS68の判定結果がYESの場合(電波オンモードになっている場合)は、次に、電波オフモードへの変更通知(たとえば、表示部12に“○○の実行を一時的に中断します”等のメッセージを表示するなど)を行い(ステップS70)、電波オフモードへ変更(ステップS71)する。
【0104】
そして、電波オンモード処理用のリソースを解放し(ステップS72)、解放したリソースをデータの書き込みに利用できる状態(ステップS73:第2のポイント)にした後、ステップS59に進む。
【0105】
ここで、“電波オンモード用のリソース”とは、電波オンモード中に実行される基地局探索処理等に必要なハードウェア資源やソフトウェア資源のことをいい、“解放”とはそれらの資源を他の用途に使用できるようにすることをいう。
【0106】
このように、この実施形態では、たとえば、高ビットレートのデータを既定の領域(高速領域)に書き込もうとしたとき、高速領域がメモリ14になかった場合には、その高速領域の代わりに直近低速側の領域(この場合は中速領域)を代替領域として選択(第1のポイント)するとともに、電波オフモードに変更して、電波オンモード用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、電波オンモード用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0107】
このことは、中ビットレートのデータを書き込む場合も同様である。すなわち、中ビットレートのデータを既定の領域(中速領域)に書き込もうとしたとき、その中速領域がメモリ14になかった場合には、中速領域の代わりに直近低速側の領域(この場合は低速領域)を代替領域として選択(第1のポイント)するとともに、電波オフモードに変更して、電波オンモード用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、電波オンモード用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0108】
したがって、本実施形態においても、既定の使い方(高速データ→高速領域、中速データ→中速領域、低速データ→低速領域)だけでなく、代替領域を用いた使い方(高速データ→中速領域、中速データ→低速領域)もできるから、メモリ14の空き領域の有効利用を図ることができるという格別の効果を得ることができる。
【0109】
なお、この実施形態では、ステップS70で電波オフモードへの変更通知を行った後、ステップS71で直ちに電波オフモードへ変更しているが、これに限定されない。たとえば、ステップS70とステップS71の間に、ユーザの応答を判定するステップ(ステップS74)を入れてもよい。すなわち、ステップS70で電波オフモードへの変更通知を行った後、ステップS74でユーザの応答を判定し、その判定結果が「変更許可指示あり」の場合にのみ、ステップS71に進み、電波オフモードへ変更するようにしてもよい。このようにすると、ユーザの自発的判断により、割り込みを禁止するか否かを選択できるので好ましい。
【0110】
また、以上の第1および第2の実施形態では、「放送受信時やインターネット等からのデータダウンロード」および「連写や動画撮影」を例にしたが、これに限定されない。高ビットレートや中ビットレートのデータをメモリ14にリアルタイムに書き込むことが求められる用途であれば、いかなるものであってもよい。たとえば、テレビ放送等の予約録画機能を備えたカメラ付携帯電話機などに適用してもよい。
【0111】
この場合、たとえば、カメラで高画質の動画を撮影中は、その画像ファイル(つまり高ビットレートのデータ)がメモリ14の既定の領域(この場合は高速領域)に書き込まれるが、書き込みの途中で高速領域が一杯になってしまった時点で、それ以上のデータの書き込みができなくなる。しかし、高速領域の代替領域として中速領域を選択する(前記の第1のポイント)とともに、予約録画を禁止して、その予約録画のためのリソースをデータの書き込みに振り向ける(前記の第2のポイント)ことにより、データの書き込みを支障なく継続し、且つ、メモリ14の空き領域の有効利用を図ることができる。
【0112】
以下、本発明の諸態様を付記としてまとめて記載する。
【0113】
(付記1)
少なくとも一つのアプリケーションを実行する実行手段と、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段と、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段と、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段と、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段と、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段と、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段と、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段と
を備えたことを特徴とする電子機器。
付記1によれば、通常は、指示手段による指示、つまり、実行手段におけるアプリケーションの実行を中断して他の処理を実行することを許容するが、記憶デバイスの代替領域への書き込み動作に影響が出そうな場合には、指示手段による指示を禁止するので、実行手段の負荷を軽くして代替領域への書き込み動作への影響を回避することができる。したがって、記憶デバイスの空き領域を有効利用(代替領域の利用)しつつ、高ビットレートのデータの書き込みを支障なく行うことができる。
【0114】
(付記2)
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止することに加え、さらに、ユーザに対して所定の通知を行うことを特徴とする付記1に記載の電子機器。
付記2によれば、指示手段からの指示(実行手段におけるアプリケーションの実行を中断して他の処理を実行すること)が禁止される際は、その旨がユーザに通知されるので、ユーザはアプリケーションの中断または所定の処理の実行が行われないことを知ることができる。
【0115】
(付記3)
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に、ユーザに対して所定の通知を行うとともに、当該ユーザの了解操作に応答して、前記指示手段から前記実行手段への指示出力を禁止することを特徴とする付記1に記載の電子機器。
付記3によれば、ユーザの了解操作に応答して、前記指示手段から前記実行手段への指示出力を禁止するので、当該指示出力の「禁止」と「禁止しない」をユーザの所望により任意に選択することができる。
【0116】
(付記4)
前記記憶制御手段は、前記禁止手段によって前記指示手段から前記実行手段への指示出力が禁止されているときに、前記他の処理を実行するためのリソースを前記データの書き込みに利用することを特徴とする付記1に記載の電子機器。
付記4によれば、他のアプリケーションまたは前記所定の処理を実行するために用意されているリソースを有効に利用することができる。
【0117】
(付記5)
前記リソースは、前記実行手段の処理能力またはメモリであることを特徴とする付記4に記載の電子機器。
付記5によれば、実行手段の処理能力またはメモリをデータの書き込みに利用することができる。
【0118】
(付記6)
前記アプリケーションは、被写体像を撮像する撮像手段を用いて行われる連写または動画の撮影と記録に関する処理を実行するものであることを特徴とする付記1に記載の電子機器。
付記6によれば、たとえば、連写や動画撮影機能付きカメラや携帯電話等に好適に用いることができる。
【0119】
(付記7)
前記アプリケーションは、電波によって通信を行う通信手段を用いて行われる通信に関する処理を実行するものであることを特徴とする付記1に記載の電子機器。
付記7によれば、たとえば、通信手段を備える携帯電話等に好適に用いることができる。
【0120】
(付記8)
前記アプリケーションは、放送信号を受信する放送受信手段を用いて行われる予約録画に関する処理を実行するものであることを特徴とする付記1に記載の電子機器。
付記8によれば、たとえば、テレビジョン放送等の予約録画機能を備える携帯電話等に好適に用いることができる。
【0121】
(付記9)
電子機器のコンピュータを、
少なくとも一つのアプリケーションを実行する実行手段、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段、
として機能させるためのプログラム。
付記9によれば、付記1の機能をソフトウェア(プログラム)の形で提供することができる。
【符号の説明】
【0122】
1 携帯電話機(電子機器)
5 撮像系(撮像手段)
6 中央制御部(実行手段、指示手段、検出手段、領域分け手段、判定手段、選択手段、禁止手段、記憶制御手段)
6a CPU(コンピュータ)
7 無線通信部(通信手段)
9 放送受信部(放送受信手段)
14 メモリ(記憶デバイス)
【技術分野】
【0001】
本発明は、電子機器およびプログラムに関し、詳細には、高画質の動画ファイルのように、高いビットレートで時系列的に生成されるデータを支障なく記録することができる電子機器およびプログラムに関する。
【背景技術】
【0002】
近年、デジタルスチルカメラやデジタルビデオカメラ等のデジタル方式の撮像装置(以下、単に「撮像装置」という)が普及している。この種の撮像装置では、CCDなどの撮像デバイスを用いて生成した被写体の画像を静止画ファイルや動画ファイルに変換してハードディスクやフラッシュメモリなどの不揮発性の記憶デバイスに記録保存することができる。
【0003】
ここで、“ファイル”とは、汎用オペレーティングシステム(OS)におけるデータの管理単位のことをいい、そのファイル管理の仕組みのことをFAT(ファイルアロケーションテーブル)方式という。
【0004】
FAT方式では、記憶デバイスの記憶領域全体を小さな区画(クラスタと呼ばれる)に細分化し、このクラスタ単位でデータを小分けにして記憶する。データが書き込まれているクラスタを「使用済みクラスタ」、データが書き込まれていないクラスタを「未使用クラスタ」という。
【0005】
FAT方式では、これらの「使用済みクラスタ」と「未使用クラスタ」を “ファイルアロケーションテーブル”と呼ばれるデータテーブルで管理する。ファイルを記憶する場合は、テーブルから必要な数の「未使用クラスタ」を指定してそのクラスタにファイルのデータを記憶するとともに、それらのクラスタを「使用済みクラスタ」に変更する。また、ファイルを削除する場合は、そのファイルに割り当てられていたクラスタを「未使用クラスタ」に変更する。
【0006】
FAT方式の欠点は、ファイルの削除と書き込みを繰り返して行くうちに、クラスタの断片化(フラグメンテーション)が進むことにある。断片化とは「未使用クラスタ」の間に「使用済みクラスタ」が入り込むことをいい、断片化の発生度合いのことを断片化率という。断片化率が高くなるとファイルの書き込みに時間が掛かるようになり、とりわけ、高画質の動画ファイルのように、高いビットレートで時系列的に生成されるデータを書き込む際に、書き込みが追いつかないという不都合を来す恐れが出てくる。
【0007】
断片化に伴う不都合の原因は二つある。第一は、ハードディスクのように磁気ヘッドを有する記憶デバイスに特有の原因であり、一つのファイルで使用しているクラスタが不連続になるとヘッドの移動に時間が掛かることに起因する。また、第二は、フラッシュメモリのように一定の書き換え上限数が定められている記憶デバイスに特有の原因であり、各記憶セルの書き換え回数を平準化するためのデータ移動操作、つまり特定の領域に書き込みが集中しないように他の領域にデータを移動する操作が行われることに起因する。
【0008】
FAT方式の記憶デバイスは断片化を避けることができない。このため、記憶デバイスの書き込み/読み出し速度の一層の向上化が図られてきたところであるが、その一方で、ハイビジョン画質の動画データ生成など、生成側におけるデータの高ビットレート化も進みつつあることから、断片化に伴う不都合(書き込みが追いつかない)の回避策はいまだ完全なものに至ってはいない。
【0009】
動画データのように時系列的に生成されるデータを取りこぼしなく記憶するために、いわゆる「バッファ」と呼ばれる緩衝メモリを記憶デバイスの前段に入れることが常套的に行われている。このバッファは、DRAM等の高速メモリで構成されており、ハードディスクやフラッシュメモリ等の記憶デバイスに比べて遙かに高速にデータを書き込む(一時保存する)ことができるので、データの生成速度と記憶デバイスの書き込み速度との差を埋める(バッファリングする)ことができ、とりわけ、断片化に伴う不都合を確実に回避することができる。
【0010】
しかしながら、バッファの容量には上限があることから、データの生成時間が長くなると、いつかはバッファからデータが溢れることとなり、この場合、溢れたデータを記憶デバイスに書き込めない。バッファの容量を増やせばこの欠点を解消できるが、コストの増加を招くので好ましくない。
【0011】
そこで、必要十分な量のバッファを備えつつも、一方で、記憶デバイスの断片化に伴う影響を抑制するための技術が模索されており、そのような技術の一例として、下記の特許文献1、2参照には、記憶デバイスの空き領域を、断片化率が低い領域と高い領域とに分け、前者をデータの高速書き込みが可能な領域(以下、高速領域という)とする一方、後者をデータの低速書き込みが可能な領域(以下、低速領域という)とし、動画データ等の高ビットレートのデータを記録する場合は「高速領域」を使用し、それ以外の低速データ(静止画データ等)を記録する場合は「低速領域」を使用するようにした技術(以下、従来技術という)が記載されている。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2000−267904号公報
【特許文献2】特開2007−049639号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、従来技術にあっては、記憶デバイスの空き領域を有効利用するという点では未だ不十分であり、改善の余地がある。
【0014】
このことについて詳しく説明する。
まず、従来技術の要点は、
(1)記憶デバイスの空き領域を断片化率が低い領域(高速領域)と高い領域(低速領域)とに分け、
(2)動画データ等の高ビットレートのデータを「高速領域」に記憶し、それ以外の低速データ(静止画データ等)を「低速領域」に記憶する、というものであり、
要するに、上記(2)に示されているように、断片化率が低い「高速領域」を高ビットレートのデータの“専用記録領域”としている点に特徴がある。
【0015】
さて、冒頭で説明したとおり、FAT方式の欠点は、ファイルの削除と書き込みを繰り返して行くうちに、クラスタの断片化が進むことにあるので、高ビットレートのデータの専用記録領域である「高速領域」は、断片化率の高まりに伴い徐々にその領域サイズを減らしていくことになる。そして、「高速領域」の残りがなくなった時点で、それ以上、高ビットレートのデータの記憶ができなくなってしまう。
【0016】
しかし、当該時点(高速領域の残りがなくなった時点)においても実際の空き領域はまだ「低速領域」として残っているのであるから、つまり、物理的な空き領域が十分残っているのであるから、この従来技術は、記憶デバイスの空き領域を有効利用していないということができる。
【0017】
そこで、本発明の目的は、記憶デバイスの空き領域を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことができる電子機器およびプログラムを提供することにある。
【課題を解決するための手段】
【0018】
本発明の電子機器は、少なくとも一つのアプリケーションを実行する実行手段と、前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段と、前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段と、記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段と、前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段と、前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段と、前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段と、前記選択手段によって選択された領域に前記データを書き込む記憶制御手段とを備えたことを特徴とする。
【発明の効果】
【0019】
本発明によれば、記憶デバイスの空き領域を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことができる。
【図面の簡単な説明】
【0020】
【図1】携帯電話機の構成図である。
【図2】メモリ14の記憶領域区分を示す図である。
【図3】メモリ14の既定の使い方を示す概念図である。
【図4】第1のポイントを示す概念図である。
【図5】第2のポイントを示す概念図である。
【図6】放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図(1/3)である。
【図7】放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図(2/3)である。
【図8】放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図(3/3)である。
【図9】割り込みイベントの概念図である。
【図10】図8のフローを一部変形した図である。
【図11】連写や動画撮影時の処理フローを示す図(1/3)である。
【図12】連写や動画撮影時の処理フローを示す図(2/3)である。
【図13】連写や動画撮影時の処理フローを示す図(3/3)である。
【発明を実施するための形態】
【0021】
本発明の実施形態を、携帯電話機を例にして、図面を参照しながら説明する。なお、この携帯電話機は、静止画や連写並びに動画を撮影可能なカメラ機能が搭載されているとともに、さらに、インターネット等のネットワーク端末としても利用できる機能を有しており、加えて、ワンセグ放送等のテレビ放送受信機能を備えている多機能型のものである。
【0022】
図1は、携帯電話機の構成図である。携帯電話機1は、被写体像を二次元的な画像信号に変換して出力するCCDやCMOS等の撮像デバイスからなる撮像部2と、この撮像部2から出力される画像信号を信号処理する画像処理部3と、画像処理部3から出力される画像信号を一時的に保持するフレームメモリ4とを含む撮像系5を有し、この撮像系5は、中央制御部6からの制御により、撮影構図確認用のプレビュー画像を生成して中央制御部6に出力したり、または、ユーザによって指定された画質(ここでは便宜的に低画質、中画質、高画質の三種類とする)の静止画や連写画または動画のデータを生成して中央制御部6に出力したりする。なお、撮像部2は、撮影レンズやオートフォーカス機構および絞り機構などを備えるが、図面の輻輳を避けるために省略している。
【0023】
携帯電話機1は、さらに、無線通信部7、音声処理部8、放送受信部9、操作部10、タッチパネル11付の表示部12、メモリI/F(インターフェース)13、メモリ14、外部I/F15および電源部16を備える。
【0024】
無線通信部7は、アンテナ7aを介して最寄りの基地局(図示略)との間で無線によるアナログもしくはデジタルデータの送受信を行うものであり、このデータには、電話の着呼や発呼の情報および音声通話の情報が含まれるほか、インターネット上のコンテンツを利用(ダウンロード)する際などのコンテンツ情報、さらには電子メールの送受信情報などが含まれる。この無線通信部7は、以上の様々な情報の送信動作や受信動作を中央制御部6からの制御の元で行うが、通常は電話着呼の待ち受け状態にある。
【0025】
音声処理部8は、中央制御部6からの制御により、マイク8aからの音声信号をデジタルデータに変換して中央制御部6に出力したり、中央制御部6から出力されたデジタルの音声信号をアナログ信号に変換してスピーカ8bから出力したりできるものであり、これらのマイク8aやスピーカ8bを電話の送受話器として使用するほか、必要に応じ、前記の撮像系5によって静止画や連写画または動画を撮影する際の音声録音にも用いられ、あるいは、撮影済みの音声付画像を再生する際の音声出力にも用いられる。
【0026】
放送受信部9は、アンテナ9aを介してワンセグ放送等の地上波テレビジョン信号を受信し、その受信信号を中央制御部6に出力することができるものであり、この放送受信部9は、中央制御部6からの制御により、テレビジョン放送の受信オン/オフや受信チャンネルの選択などを行うことができる。
【0027】
操作部10は、中央制御部6に対して所要のユーザ入力を行うための各種操作ボタン(電源スイッチやテンキーおよび機能キーなど)を備えたインターフェースであり、また、表示部12は、好ましくは表示面にタッチパネル11を併設した液晶ディスプレイ等の平面表示デバイスである。
【0028】
メモリI/F13は、たとえば、メモリ14の規格(SDカードやUSBメモリ等)に対応した汎用インターフェースであり、中央制御部6とメモリ14との間に位置して相互のデータのやりとりを仲介する。
【0029】
メモリ14は、冒頭で説明した記憶デバイス(FAT方式で管理されるもの)に相当し、ここでは、フラッシュメモリとするが、これに限定されない。FAT方式で管理されるものであればいかなるものであってもよい。たとえば、ハードディスクなどであってもよく、この場合、メモリ14をハードディスクと読み替えるとともに、前記のメモリI/F13をディスクI/Fと読み替えればよい。
【0030】
外部I/F15は、たとえば、パーソナルコンピュータ等の外部機器とのインターフェースであり、必要に応じてその外部機器と接続し、メモリ14に記録されている画像ファイルなどを中央制御部6を経由して外部機器に出力したり、あるいは、外部機器から取り込んだ画像ファイルなどを、中央制御部6を経由してメモリ14に保存したりするものである。
【0031】
中央制御部6は、CPU6a、ROM6bおよびRAM6cならびに不図示の周辺回路を含むプログラム制御方式の制御要素である。この中央制御部6は、携帯電話機1の全体動作を統括制御するために、あらかじめROM6bに格納されている制御プログラムをRAM6cにロードしてCPU6aで実行する。
【0032】
ROM6bに格納されている制御プログラムは、汎用オペレーティングシステム(OS)と、その汎用オペレーティングシステム上で動作する各種応用プログラム(アプリケーションプログラムまたは単にアプリケーションともいう)とからなり、汎用オペレーティングシステム(OS)には、ファイルアロケーションテーブルに基づいてメモリ14のファイル管理を行うFAT方式のファイル管理システムが含まれている。
【0033】
また、CPU6aは不定期に発生する割り込みイベント(アプリケーションの実行を中断して他の処理を実行するように指示すること)を処理することができるようになっており、この割り込みイベントは、ハードウェア的なものとソフトウェア的なものの二種類ある。前者はいわゆるハードウェア割り込みと呼ばれているものであり、このハードウェア割り込みは、たとえば、ウォッチドックタイマ等のタイマ割り込みのように、あらかじめCPU6aに用意されている専用の割り込み端子をアクティブにすることによって任意に発生する。一般的にこの種のハードウェア割り込みには高い優先度が与えられており、CPU6aで動作中の制御プログラム(アプリケーション)の処理を一時中断して該当する割り込み処理(他の処理)を実行し、この割り込み処理の完了後に元の処理に復帰するようになっている。
【0034】
ソフトウェア的な割り込みイベント(ソフトウェア割り込みという)も同様であるが、優先度が低い点でハードウェア割り込みと相違する。このソフトウェア割り込みは、割り込みハンドラと呼ばれるレジスタ(RAM6cの特定番地に設定されたもの)に所定値を書き込む(割り込みフラグを立てるともいう)ことによって発生する。ソフトウェア割り込みが発生した場合も、CPU6aで動作中の制御プログラム(アプリケーション)の処理を一時中断して該当する割り込み処理(他の処理)を実行し、この割り込み処理の完了後に元の処理に復帰する。
【0035】
このように、本来の処理(アプリケーション)を一時中断して他の処理を行い、その後、元の処理に復帰することを総称して「割り込み」といい、その典型例は上記のハードウェア割り込みやソフトウェア割り込みであるが、同様な振る舞い(実行中のアプリケーションの一時中断と他の処理の実行およびその後の復帰)を行う処理ルーチンを、アプリケーションに組み込むことがしばしば行われる。たとえば、携帯電話機にあっては最寄りの基地局を探索するために定期的に電波を発射(定期的に電波オフモードから電波オンモードに遷移)しているが、当該携帯電話機で任意のアプリケーション(例:カメラ付の携帯電話機の場合に、そのカメラで被写体を撮影するためのアプリケーション)を実行中にこの遷移が発生したときには、一時的に本来の処理(この例では撮影処理用アプリケーション)を中断して最寄りの基地局の探索処理(他の処理に相当)を実行し、その後、元の処理(撮影処理用アプリケーション)に復帰するという具合である。このような分岐および復帰処理も上記のハードウェア割り込みやソフトウェア割り込みと同様に「本来の処理を一時中断して他の処理を行い、その後、元の処理に復帰する」ものであるから、本明細書中では「割り込みイベント」の概念に含めることにする。
【0036】
ここで、実施形態の課題は、記憶デバイス(この実施形態ではメモリ14)の空き領域を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことにある。
【0037】
FAT方式で管理されるメモリ14は、断片化に伴う書き込み速度の低下問題を否めないことから、バッファとして機能する所定容量の緩衝メモリ13aを備えることにより、ある程度の問題対策を講じているが、たとえば、長時間にわたる動画撮影を行った際に緩衝メモリ13aが満杯になってしまうと、それ以上、動画ファイルの保存ができなくなるという不都合がある。なお、この実施形態では緩衝メモリ13aをメモリI/F13に実装しているが、これは一例に過ぎない。たとえば、中央制御部6に実装してもよく、あるいは中央制御部6とメモリI/F13との間に実装したりしてもよい。
【0038】
緩衝メモリ13aの溢れ対策としては、冒頭で説明した従来技術のように、メモリ14の空き領域を断片化率が低い領域(高速領域)と高い領域(低速領域)とに分け、動画データ等の高ビットレートのデータを記録する場合は「高速領域」を使用し、それ以外の低速データ(静止画データ等)を記憶する場合は「低速領域」を使用することが有効であるものの、これらの対策(バッファおよび「高速領域」と「低速領域」の選択利用)だけでは、メモリ14の空き領域を有効利用するという点で不十分である。
【0039】
その理由は、高ビットレートのデータの専用記録領域である「高速領域」は、断片化率の高まりに伴い徐々に減っていき、そして、「高速領域」の残りがなくなった時点で、それ以上、高ビットレートのデータの記憶ができなくなってしまうが、当該時点においても実際の空き領域は「低速領域」として残っているからであり、空き領域(低速領域)を有効利用していないからである。
【0040】
この対策として、高ビットレートのデータの書き込み先を専用領域(高速領域)から低速領域に変更することが考えられるが、この低速領域は書き込み速度が遅い領域であるから、単に書き込み先を変更しただけでは、高ビットレートのデータの書き込みが途中で失敗する恐れがある。
【0041】
そこで、本実施形態の技術思想は、通常は高ビットレートのデータの書き込み先を専用領域(高速領域)にする一方で、高速領域を使用できない状態(高速領域が無い状態または高速領域の空きが十分でない状態)が発生した場合は、割り込みイベントを無効(禁止)にして、その割り込みイベントの処理に用いられるリソース(CPU6aの能力等)を高ビットレートのデータの書き込みに振り向けるようにし、これにより、高ビットレートのデータの書き込み先を専用領域(高速領域)から低速領域に変更した場合であっても、その低速領域への高ビットレートのデータの書き込みを支障無く行わせるようにし、以て、メモリ14の空き領域(低速領域)の有効利用を図ることにある。なお、CPU6aの“能力”とはCPU6aの処理能力のことである。一般的に処理能力はCPU6aの使用率(0〜100%)で表され、100%に近づくほど余力が無くなる。
【0042】
図2は、実施形態におけるメモリ14の記憶領域区分を示す図である。この図では、三つの記憶領域(低速領域、中速領域、高速領域)に区分しているが、これは一例に過ぎない。各領域をメモリ14の空き領域の断片化率に応じて区分すればよく、従来技術のような2区分(低速領域と高速領域)であってもよいし、または、4区分あるいはそれ以上の多区分であってもよい。
【0043】
ここで、本実施形態における「低速領域」は断片化率が高い領域(書き込み時間が遅い領域)であり、「中速領域」は断片化率が中程度の領域(書き込み時間がやや遅い領域)であり、「高速領域」は断片化率が低い領域(書き込み時間が速い領域)である。
【0044】
これら3区分の記憶領域(低速領域、中速領域、高速領域)は、メモリ14に書き込むべきデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に応じて選択的に使用する。既定の使い方(あらかじめ定められたデフォルトの使い方)は、低ビットレートのデータを低速領域に書き込み、中ビットレートのデータを中速領域に書き込み、高ビットレートのデータを高速領域に書き込むというものである。低/中/高のビットレート区分は、たとえば、2Mbps(ビット/秒)までを低ビットレートとし、2Mbpsより大きく且つ4Mbps以下を中ビットレートとし、4Mbpsより大きく且つ8Mbps以下を高ビットレートとするが、これは一例に過ぎない。
【0045】
上記の既定の使い方は冒頭で説明した従来技術と同じである。すなわち、高ビットレートのデータは従来技術の“高ビットレートのデータ”に対応し、そして、この高ビットレートのデータを「高速領域」に記憶する一方、高ビットレート以外のデータを他の領域(中速領域や低速領域)に記憶しているので、上記の既定の使い方と冒頭の従来技術とは原理的に変わりない。
【0046】
本実施形態の特徴は、通常は、既定の使い方でデータの書き込みを行うが、つまり、高ビットレートのデータを「高速領域」に書き込み、中ビットレートのデータを「中速領域」に書き込み、低ビットレートのデータを「低速領域」に書き込み、という使い方をするが、既定の使い方で定められた書き込み領域がない場合は、下位の速度の書き込み領域を代替的に使用することを第1のポイントとする。ただし、この第1のポイントだけでは、緩衝バッファ13aの溢れ問題を解消できないため、データの書き込みが途中で失敗する恐れがある。
【0047】
そこで、本実施形態では、この第1のポイントに加え、さらに、割り込みイベントを禁止するとともに、この割り込み処理に必要なリソース(CPU6aの能力等)をデータの書き込みに振り向けることを第2のポイントとする。
【0048】
この第2のポイントを加えたことにより、たとえば、高ビットレートのデータを書き込むための既定の領域(高速領域)がない場合には、その高速領域よりも下位の速度の領域(この場合は中速領域)を代替領域に指定するとともに、同時に割り込みを禁止してその割り込み処理に必要なリソースを、高ビットレートのデータの書き込みに振り向けることができるので、たとえ、高ビットレートのデータを「中速領域」に書き込む場合であっても、緩衝メモリ13aの溢れ問題は生じないから、書き込みを支障なく行うことができ、メモリ14の空き領域(この場合は中速領域)を有効利用することができるのである。
【0049】
以下、本実施形態の第1のポイントおよび第2のポイントについて、その原理を説明する。
【0050】
図3は、メモリ14の既定の使い方を示す概念図である。この図に示すように、通常、高ビットレートのデータ(以下、高速データという)17をメモリ14に書き込む際は断片化率が低い領域(高速領域14a)を使用する。また、中ビットレートのデータ(以下、中速データという)18をメモリ14に書き込む際は断片化率が中程度の領域(中速領域14b)を使用し、あるいは、低ビットレートのデータ(以下、低速データという)19をメモリ14に書き込む際は断片化率が高い領域(低速領域14c)を使用する。このような既定の使い方をすれば、たとえば、高速データ17をメモリ14に書き込んでいる間に緩衝バッファ13aが溢れることが無く、書き込み動作に支障を生じない。
【0051】
図4は、第1のポイントを示す概念図である。この図に示すように、たとえば、高速データ17を書き込むための既定の領域(高速領域)がメモリ14にない場合、冒頭で説明した従来技術では、その時点でデータの書き込みをあきらめなければならなかったが、メモリ14には他の空き領域(中速領域14bや低速領域14c)が残っているのであるから、これらの空き領域を有効利用していないという欠点があった。この欠点を解消するために、たとえば、既定の領域(高速領域)の代わりに中速領域14bを使用すること(第1のポイント)が考えられるが、単に高速データ17を中速領域14bに書き込むだけでは、緩衝バッファ13aに溢れを生じる恐れがあり、途中で書き込みが失敗してしまうという不都合がある。
【0052】
図5は、第2のポイントを示す概念図である。この図に示すように、第2のポイントは、前記の第1のポイント(既定の使い方で定められた書き込み領域がない場合に下位の速度の書き込み領域を代替的に使用する)とともに、割り込みイベントを禁止するというものである。一般的に割り込みの要因は様々であるが、あらゆる割り込みは、その割り込みの処理実行時に相応のリソース(ハードウェア資源やソフトウェア資源)を必要とする。このリソースは典型的にはCPU6aの能力である。
【0053】
この第2のポイントは、要するに、前記の第1のポイントを行う際に割り込みイベントを禁止し、その割り込みの処理に必要なリソースをデータの書き込みに振り向けるというものであり、これによって、「既定の使い方で定められた書き込み領域がない場合に下位の速度の書き込み領域を代替的に使用する」(第1のポイント)際に、緩衝メモリ13aの溢れ問題の解消を図り、もって、代替領域への書き込みを支障なく実行して当該代替領域を有効利用しようとするものである。
【0054】
なお、ここでは、高速データ17の書き込みを例にしたが、これに限定されない。中速データ18の書き込みも同様である。つまり、中速データ18の既定の書き込み領域は「中速領域14b」であるが、メモリ14に中速領域14bがない場合には、それよりも下位の速度の「低速領域14c」を代替領域に使用する(第1のポイント)とともに、同時に割り込みイベントを禁止し、割り込み処理に必要なリソースを中速データ18の書き込みに振り向ける(第2のポイント)ようにすればよい。同様に、緩衝メモリ13aの溢れ問題の解消を図り、もって、代替領域(低速領域)への書き込みを支障なく実行して当該代替領域を有効利用できる。
【0055】
次に、前記の第1のポイントおよび第2のポイントを応用した具体例を実施形態として説明する。
<第1の実施形態>
図6〜図8は、放送受信時やインターネット等からのデータダウンロード時の処理フローを示す図である。この動作フローを開始すると最初に初期化処理(ステップS1)を実行する。この初期化処理では、まず、操作部10の電源スイッチがオンになったか否かを判定し(ステップS11)、オンであれば、次に所定の電源オン処理(一般的な初期化処理)を実行する(ステップS12)。次いで、受信機能をオンにする(ステップS13)。受信機能のオンとは、テレビジョン放送を受信する場合は放送受信部9を起動することをいい、あるいは、インターネット等からのデータダウンロードを行う場合は無線通信部7を起動することをいう。
【0056】
受信機能をオンにすると、次に、記録領域管理情報(ファイルアロケーションテーブル)を読み込み(ステップS14)、メモリ14の現在の断片化状況を検出する(ステップS15)とともに、その断片化状況に応じてメモリ14の書き込み可能領域の速度判定と領域区分の処理を実行する(ステップS16)。
【0057】
ここで、ステップS16における「メモリ14の書き込み可能領域の速度判定と領域区分の処理」とは、メモリ14の空き領域を、前出の図2に示す三つの領域(低速領域、中速領域、高速領域)に区分けすることをいい、具体的には、断片化率が高い領域を「低速領域」、断片化率が中程度の領域を「中速領域」、断片化率が低い領域を「高速領域」として区分けすることをいう。
【0058】
上記の初期化処理(ステップS1)を完了すると、次に、ユーザ操作ありを判定し(ステップS17)、ユーザ操作ありが判定された場合に、その操作内容が放送受信やダウンロードの開始操作であるか否かを判定する(ステップS18)。そして、放送受信やダウンロードの開始操作でない場合は、そのユーザ操作が電源オフ操作であるか否かを判定し(ステップS19)、電源オフ操作を判定した場合は、所定の電源オフ処理を実行(ステップS20)した後、フローを終了し、一方、電源オフ操作を判定しなかった場合は、電源オフ操作以外のその他のアプリケーション操作に対応した処理を実行(ステップS21)した後、再びステップS17に復帰する。
【0059】
ステップS18の判定結果がYESの場合、すなわち、ステップS17で検出されたユーザ操作が、放送受信やダウンロードの開始操作であると判定された場合は、次に、放送受信やダウンロードで得られたデータを緩衝メモリ13aに一時書き込みし(ステップS22)、次いで、「既定の領域あり?または代替領域選択済み?」を判定する(ステップS23)。
【0060】
ここで、“既定の領域”とは、先に説明した図2に示されている「高速領域」、「中速領域」、「低速領域」のうち、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいう。つまり、高ビットレートのデータであれば「高速領域」、中ビットレートのデータであれば「中速領域」、低ビットレートのデータであれば「低速領域」のことをいう。また、“代替領域”とは、その既定の領域がない(または使用できない)場合に、代わりに用いられる領域のことをいい、たとえば、直近低速側の領域、すなわち、既定の領域が高速領域であれば中速領域、中速領域であれば低速領域のことをいう。この代替領域は、後述のステップS32において選択される。なお、この実施形態では「代替領域=直近低速側の領域」としているが、これに限定されない。既定の領域の代わりに使用可能な領域であればよく、たとえば、低速側の他の領域や高速側の領域であってもよい。
【0061】
ステップS23の判定結果がYESの場合、すなわち、既定の領域がある場合または代替領域が選択済みの場合は、次に、緩衝メモリ13aに一時書き込みされていたデータをその領域(既定の領域または選択済みの代替領域)に書き込み(ステップS24)、放送受信終了やダウンロード終了(またはポーズ等の一時停止;以下、終了で代表)イベントありを判定する(ステップS25)。
【0062】
そして、イベントありでなければ、再びステップS22に復帰する一方、イベントありが判定された場合は、まず、緩衝メモリ13aに、未書き込みのデータがあるか否かを判定し(ステップS26)、未書き込みのデータがある場合には、その未書き込みのデータを既定の領域または選択済みの代替領域に書き込む(ステップS27)という動作を、ステップS26の判定結果がNOになるまで繰り返す。
【0063】
ステップS26の判定結果がNOになると、次に、割り込み禁止中であるか否かを判定する(ステップS28)。なお、この“割り込み禁止”については、後で説明する。
【0064】
割り込み禁止中の場合は、割り込み許可モードに戻し(ステップS29)、ダウンロード終了処理を実行(ステップS30)した後、ステップS17に復帰する一方、割り込み禁止中でない場合は、そのままダウンロード終了処理を実行(ステップS30)した後、ステップS17に復帰する。
【0065】
次に、ステップS23の判定結果がNOであった場合、つまり、既定の領域が無く、且つ、代替領域も選択済みでなかった場合について説明する。先に説明したとおり、“既定の領域”とは、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいい、たとえば、高ビットレートのデータを例にすれば、メモリ14の「高速領域」のことをいう。高速領域がない場合、高ビットレートのデータをメモリ14に書き込むことができない。それよりも低速の領域(中速領域や低速領域)に高ビットレートのデータを書き込もうとすると、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗するからである。本実施形態では、この不都合を解消するために、前記の第1のポイント(直近低速側の領域を代替領域として選択する)および第2のポイント(割り込みイベントを禁止してその割り込み処理に必要なリソースをデータの書き込みに振り向ける)を採用したものである。
【0066】
以下、これらの第1および第2のポイントを含む処理について説明する。
【0067】
ステップS23の判定結果がNOであった場合は、まず、代替領域ありか否かを判定する(ステップS31)。すなわち、既定の領域が「高速領域」であった場合は、その直近低速側の領域である「中速領域」がメモリ14に存在するか否か、あるいは、既定の領域が「中速領域」であった場合は、その直近低速側の領域である「低速領域」がメモリ14に存在するか否かを判定する。
【0068】
そして、ステップS31の判定結果がNOの場合は、データを書き込むことができる適切な代替領域がメモリ14にないと判断し、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS34)、放送受信終了処理やダウンロード終了処理(ステップS30)を実行した後、再びステップS17に復帰する。
【0069】
一方、ステップS31の判定結果がYESの場合は、代替領域を選択し(ステップS32:第1のポイント)、次に、割り込み許可モードであるか否かを判定する(ステップS33)。“割り込み許可モード”とは、先に説明したハードウェア割り込みやソフトウェア割り込みなどの割り込みイベントの実行、または各種のアプリケーションに実装された同等イベントの実行を許可するモードのことをいう。割り込みを“許可”するモードになっている場合、任意の割り込みイベントが発生すると、CPU6aは、直ちに本来の処理を一時中断してそのイベントに対応した処理(割り込み処理)を実行し、その後、元の処理に復帰する。
【0070】
第2のポイントは、この割り込み処理に必要なリソースを、データの書き込みに振り向けることにある。しかし、ステップS33の判定結果がNOの場合は、割り込み許可モードになっていない(つまり、すでに割り込みを“禁止”するモードになっている)から、データの書き込みに振り向けるためのリソースがない。したがって、この場合は、たとえ代替領域を使用したとしても、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗する可能性が高いので、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS34)、放送受信終了処理やダウンロード終了処理(ステップS30)を実行した後、再びステップS17に復帰する。
【0071】
一方、ステップS33の判定結果がYESの場合(割り込み許可モードになっている場合)は、次に、割り込み禁止モードへの変更通知(たとえば、表示部12に“○○の実行を一時的に中断します”等のメッセージを表示するなど)を行い(ステップS35)、割り込み禁止モードへ変更(ステップS36)する。
【0072】
そして、割り込み処理用のリソースを解放し(ステップS37)、解放したリソースをデータの書き込みに利用できる状態(ステップS38:第2のポイント)にした後、ステップS24に進む。
【0073】
ここで、“割り込み処理用のリソース”とは、割り込み許可モード中に何らかの割り込みイベントが発生した際に、そのイベントに応答して実行される割り込み処理用のハードウェア資源やソフトウェア資源のことをいい、“解放”とはそれらの資源を他の用途に使用できるようにすることをいう。
【0074】
このように、この実施形態では、たとえば、高ビットレートのデータを既定の領域(高速領域)に書き込もうとしたとき、高速領域がメモリ14になかった場合には、その高速領域の代わりに直近低速側の領域(この場合は中速領域)を代替領域として選択(第1のポイント)するとともに、割り込み禁止モードに変更して、その割り込み処理用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、割り込み処理用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0075】
このことは、中ビットレートのデータを書き込む場合も同様である。すなわち、中ビットレートのデータを既定の領域(中速領域)に書き込もうとしたとき、その中速領域がメモリ14になかった場合には、中速領域の代わりに直近低速側の領域(この場合は低速領域)を代替領域として選択(第1のポイント)するとともに、割り込み禁止モードに変更して、その割り込み処理用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、割り込み処理用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0076】
したがって、既定の使い方(高速データ→高速領域、中速データ→中速領域、低速データ→低速領域)だけでなく、代替領域を用いた使い方(高速データ→中速領域、中速データ→低速領域)もできるから、メモリ14の空き領域の有効利用を図ることができるという格別の効果を得ることができる。
【0077】
なお、この実施形態では、ステップS35で割り込み禁止モードへの変更通知を行った後、ステップS36で直ちに割り込み禁止モードへ変更しているが、これに限定されない。たとえば、ステップS35とステップS36の間に、ユーザの応答を判定するステップ(ステップS39)を入れてもよい。すなわち、ステップS35で割り込み禁止モードへの変更通知を行った後、ステップS39でユーザの応答を判定し、その判定結果が「変更許可指示あり」の場合にのみ、ステップS36に進み、割り込み禁止モードへ変更するようにしてもよい。このようにすると、ユーザの自発的判断により、割り込みを禁止するか否かを選択できるので好ましい。
【0078】
ここで、「割り込みイベント」についてさらに具体的に説明する。
図9は、割り込みイベントの概念図である。この図において、左側の縦長矩形は本来の処理(時間軸に沿って実行中の任意のアプリケーション)を表しており、同矩形の中央付近に描かれた太実線は、割り込みイベントの発生タイミングを示している。一般的にこのような割り込みイベントが発生すると、「本来の処理を一時中断して他の処理を行い、その後、元の処理に復帰する」という流れになる。
【0079】
前記の第1の実施形態では、本来の処理を実行中にデータの書き込みを行う際、メモリ14の既定の書き込み領域を使用できない場合に、割り込みイベントを無効(禁止)にし、その割り込みイベントの処理に用いられるリソースをデータの書き込みに振り向けるようにしている(第2のポイント)。そして、この第2のポイントでは、当該リソースとしてCPU6aの能力を想定しているが、利用可能なリソースは「CPU6aの能力」だけに限らず、たとえば、メモリなどのリソースもデータの書き込みに利用することができる。
【0080】
たとえば、割り込みイベントのための処理プログラム(図9におけるハッチング部分)のいくつかは、当該イベント発生時にすでにオンメモリ状態(RAM6cにロードされた状態)になっているものがある。たとえば、常駐型の処理プログラム(以下、常駐プログラム)はその代表であり、常駐プログラムは本来の処理を実行中、オンメモリ状態にあっていつでも直ちに実行できるように準備されている。このような常駐プログラムは自身の処理に必要なリソースをすでに占有(確保されているともいう)しており、そのリソースにはメモリ(RAM6c)も含まれる。つまり、ワーク用のメモリ領域として所要サイズの領域をすでに占有している。
したがって、第2のポイントにおいては、データの書き込みに利用するリソースとして、このような確保済みのメモリ(割り込みイベント処理用のメモリ)を利用することができる。
【0081】
図10は、図8のフローを一部変形した図であり、割り込みイベント処理用のメモリを利用できるようにしたものである。この図において、図8のフローとの相違は、一点鎖線で囲んだ部分を追加した点にある。すなわち、ステップS33で、割り込み許可モードでない(言い換えればすでに割り込み禁止モードである)と判定された場合には、まず、その割り込み禁止の対象となっている処理が「常駐型」のもの(前述の常駐型プログラムの説明を参照)であるか否かを判定する(ステップS100)。
【0082】
常駐型プログラムでない場合は、前記の図8のフロートと同様に、そのままステップS24に進むが、先にも説明したとおり、常駐型プログラムは、「本来の処理を実行中、オンメモリ状態にあっていつでも直ちに実行できるように準備されている」ものであって、このような常駐プログラムは「自身の処理に必要なリソースを占有しており、そのリソースにはメモリ(RAM6c)も含まれる。つまり、ワーク用のメモリ領域として所要サイズの領域を占有している。」のであるから、ステップS100の判定結果がYESの場合、すなわち、割り込み禁止の対象となっている処理が「常駐型」のものであると判定された場合には、次に、常駐型プログラムのリソース(ここでは占有メモリ)を解放し(ステップS101)、解放したリソースをデータの書き込みに利用できる状態(ステップS102:第2のポイント)にした後、ステップS24に進む。
このようにすれば、データの書き込みに利用するリソース(割り込みイベント処理用のリソース)として、メモリを使用することができるようになる。
【0083】
<第2の実施形態>
図11〜図13は、連写や動画撮影時の処理フローを示す図である。この動作フローを開始すると最初に初期化処理(ステップS2)を実行する。この初期化処理では、まず、操作部10の電源スイッチがオンになったか否かを判定し(ステップS41)、オンであれば、次に所定の電源オン処理(一般的な初期化処理)を実行する(ステップS42)。次いで、記録領域管理情報(ファイルアロケーションテーブル)を読み込み(ステップS43)、メモリ14の現在の断片化状況を検出する(ステップS44)とともに、その断片化状況に応じてメモリ14の書き込み可能領域の速度判定と領域区分の処理を実行する(ステップS45)。
【0084】
ここで、ステップS45における「メモリ14の書き込み可能領域の速度判定と領域区分の処理」とは、メモリ14の空き領域を、前出の図2に示す三つの領域(低速領域、中速領域、高速領域)に区分けすることをいい、具体的には、断片化率が高い領域を「低速領域」、断片化率が中程度の領域を「中速領域」、断片化率が低い領域を「高速領域」として区分けすることをいう。
【0085】
上記の初期化処理(ステップS2)を完了すると、次に、電波オフモードであるか否かを判定する(ステップS46)。電波オフモードとは、アンテナ7aを介して最寄りの基地局(図示略)との間で無線によるデジタルデータの送受信を行う際の電波発射を伴う処理を非実行中のモードのことをいい、要するに、アンテナ7aから電波を発射していないときの動作モードのことをいう。
【0086】
ステップS46の判定結果がNOの場合、すなわち、電波オフモードでないと判定された場合は、電話着信処理(ステップS3)を実行する。この電話着信処理(ステップS3)では、まず、着信(電話の呼び出し)ありを判定し(ステップS47)、着信ありの場合は、オフフック操作(操作部10のオフフックボタンの押し下げ操作)の有無を判定する(ステップS48)。そして、オフフック操作を判定すると、通話終了操作(操作部10のオンフックボタンの押し下げ操作)が行われるまで、所要の通話処理を実行して呼び出し相手との間で音声通話を行い(ステップS50、ステップS51)、一方、ステップS48でオフフック操作を判定せず且つステップS49で着信終了を判定した場合、または、ステップS51で通話終了操作を判定した場合は、この電話着信処理(ステップS3)を終了する。
【0087】
ステップS46の判定結果がYESの場合、すなわち、電波オフモードであると判定された場合または電話着信処理(ステップS3)の終了後は、次に、ユーザ操作ありを判定し(ステップS52)、ユーザ操作ありが判定された場合に、その操作内容が連写や動画等の撮像開始操作であるか否かを判定する(ステップS53)。
【0088】
ここで、連写撮影や動画撮影は、高いビットレートで且つ時系列的なデータ生成を伴う撮像処理であり、このような処理で得られた画像ファイル(連写の場合は数枚から数十枚のファイル、動画の場合は大容量のファイル)は、FAT方式の記憶デバイス(実施形態ではメモリ14)に書き込む際に、断片化に伴う不都合(書き込みが間に合わない)を生じることがある。このため、一般的にはメモリ14の前段に高速のバッファ(実施形態では緩衝メモリ13a)を入れて、その不都合回避を図っているが、緩衝メモリ13aの容量に上限があることから、冒頭で説明した従来技術では、このような静止画や動画のファイルを書き込む際に、断片化の少ない領域(つまり高速領域)を使用するという対策を講じている。
【0089】
しかしながら、単に特定の領域(高速領域)を使用するだけの対策では、メモリ14の空き領域を有効利用できないという欠点を招く。メモリ14へのファイルの書き込みやメモリ14からのファイルの削除を繰り返して行くにつれて、メモリ14の断片化が進み、高速領域以外の空き領域が増えていくからであり、従来技術の対策ではこの空き領域(高速領域以外の空き領域)を全く利用できない仕組みになっているからである。実施形態のポイントは、記憶デバイスの空き領域(高速領域以外の空き領域)を有効利用しつつ、高ビットレートのデータの書き込みを支障なく行うことができることにあるが、このポイントについては後で詳しく説明する。
【0090】
ステップS53の判定結果がNOの場合、すなわち、ステップS52で検出されたユーザ操作が、連写や動画等の撮像開始操作でないと判定された場合は、次に、そのユーザ操作が電源オフ操作であるか否かを判定する(ステップS54)。そして、電源オフ操作を判定した場合は、所定の電源オフ処理を実行(ステップS55)した後、フローを終了し、一方、電源オフ操作を判定しなかった場合は、電源オフ操作以外のその他のアプリケーション操作に対応した処理を実行(ステップS56)した後、再びステップS52に復帰する。
【0091】
ステップS53の判定結果がYESの場合、すなわち、ステップS52で検出されたユーザ操作が、連写や動画等の撮像開始操作であると判定された場合は、次に、連写や動画等の撮像処理で生成されたファイルを緩衝メモリ13aに一時書き込みし(ステップS57)、次いで、「既定の領域あり?または代替領域選択済み?」を判定する(ステップS58)。
【0092】
ここで、“既定の領域”とは、先に説明した図2に示されている「高速領域」、「中速領域」、「低速領域」のうち、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいう。つまり、高ビットレートのデータであれば「高速領域」、中ビットレートのデータであれば「中速領域」、低ビットレートのデータであれば「低速領域」のことをいう。また、“代替領域”とは、その既定の領域がない(または使用できない)場合に、代わりに用いられる直近低速側の領域、すなわち、既定の領域が高速領域であれば中速領域、中速領域であれば低速領域のことをいう。この代替領域は、後述のステップS67において選択される。
【0093】
ステップS58の判定結果がYESの場合、すなわち、既定の領域がある場合または代替領域が選択済みの場合は、次に、緩衝メモリ13aに一時書き込みされていたデータをその領域(既定の領域または選択済みの代替領域)に書き込み(ステップS59)、撮像終了(またはポーズ等の一時停止;以下、撮影終了で代表)イベントありを判定する(ステップS60)。
【0094】
そして、イベントありでなければ、再びステップS57に復帰する一方、イベントありが判定された場合は、まず、緩衝メモリ13aに、未書き込みのデータがあるか否かを判定し(ステップS61)、未書き込みのデータがある場合には、その未書き込みのデータを既定の領域または選択済みの代替領域に書き込む(ステップS62)という動作を、ステップS61の判定結果がNOになるまで繰り返す。
【0095】
ステップS61の判定結果がNOになると、次に、電波オフモードであるか否かを判定する(ステップS63)。なお、この“電波オフモード”については、後で説明する。
【0096】
電波オフモードである場合は、電波オンモードに戻し(ステップS64)、撮像終了処理を実行(ステップS65)した後、ステップS52に復帰する一方、電波オフモードでない場合は、そのまま撮像終了処理を実行(ステップS65)した後、ステップS52に復帰する。
【0097】
次に、ステップS58の判定結果がNOであった場合、つまり、既定の領域が無く、且つ、代替領域も選択済みでなかった場合について説明する。先に説明したとおり、“既定の領域”とは、緩衝メモリ13aに一時書き込みされているデータの単位時間あたりのデータ量(ビットレートまたはデータレート)に対応した領域のことをいい、たとえば、高ビットレートのデータを例にすれば、メモリ14の「高速領域」のことをいう。高速領域がない場合、高ビットレートのデータをメモリ14に書き込むことができない。それよりも低速の領域(中速領域や低速領域)に高ビットレートのデータを書き込もうとすると、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗するからである。本実施形態では、この不都合を解消するために、前記の第1のポイント(直近低速側の領域を代替領域として選択する)および第2のポイント(電波オンモードを禁止してその電波オンモード用のリソースをデータの書き込みに振り向ける)を採用したものである。
【0098】
以下、これらの第1および第2のポイントを含む処理について説明する。
【0099】
ステップS58の判定結果がNOであった場合は、まず、代替領域ありか否かを判定する(ステップS66)。すなわち、既定の領域が「高速領域」であった場合は、その直近低速側の領域である「中速領域」がメモリ14に存在するか否か、あるいは、既定の領域が「中速領域」であった場合は、その直近低速側の領域である「低速領域」がメモリ14に存在するか否かを判定する。
【0100】
そして、ステップS66の判定結果がNOの場合は、データを書き込むことができる適切な代替領域がメモリ14にないと判断し、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS69)、撮像終了処理(ステップS65)を実行した後、再びステップS52に復帰する。
【0101】
一方、ステップS66の判定結果がYESの場合は、代替領域を選択し(ステップS67:第1のポイント)、次に、電波オンモードであるか否かを判定する(ステップS68)。“電波オンモード”とは、最寄りの基地局を探索したりする際にアンテナ7aからの電波発射を許容するモードのことをいい、このモードは、先に説明したハードウェア割り込みやソフトウェア割り込みなどの割り込みイベントの一種である。この電波オンモード中に基地局の探索タイミングになると、CPU6aは、直ちに本来の処理を一時中断してそのイベントに対応した処理(無線通信部7を動作させて最寄りの基地局を探索する処理)を実行し、その後、元の処理に復帰する。
【0102】
第2のポイントは、この電波オンモードの処理に必要なリソースを、データの書き込みに振り向けることにある。しかし、ステップS68の判定結果がNOの場合は、電波オンモードになっていない(つまり、すでに電波の発射を“禁止”する電波オフモードになっている)から、データの書き込みに振り向けるためのリソースがない。したがって、この場合は、たとえ代替領域を使用したとしても、緩衝メモリ13aに溢れを生じる恐れがあり、途中で書き込みを失敗する可能性が高いので、所要の記録エラー通知(たとえば、表示部12に“データを書き込めません”等のメッセージを表示するなど)を行い(ステップS69)、撮像終了処理(ステップS65)を実行した後、再びステップS52に復帰する。
【0103】
一方、ステップS68の判定結果がYESの場合(電波オンモードになっている場合)は、次に、電波オフモードへの変更通知(たとえば、表示部12に“○○の実行を一時的に中断します”等のメッセージを表示するなど)を行い(ステップS70)、電波オフモードへ変更(ステップS71)する。
【0104】
そして、電波オンモード処理用のリソースを解放し(ステップS72)、解放したリソースをデータの書き込みに利用できる状態(ステップS73:第2のポイント)にした後、ステップS59に進む。
【0105】
ここで、“電波オンモード用のリソース”とは、電波オンモード中に実行される基地局探索処理等に必要なハードウェア資源やソフトウェア資源のことをいい、“解放”とはそれらの資源を他の用途に使用できるようにすることをいう。
【0106】
このように、この実施形態では、たとえば、高ビットレートのデータを既定の領域(高速領域)に書き込もうとしたとき、高速領域がメモリ14になかった場合には、その高速領域の代わりに直近低速側の領域(この場合は中速領域)を代替領域として選択(第1のポイント)するとともに、電波オフモードに変更して、電波オンモード用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、電波オンモード用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0107】
このことは、中ビットレートのデータを書き込む場合も同様である。すなわち、中ビットレートのデータを既定の領域(中速領域)に書き込もうとしたとき、その中速領域がメモリ14になかった場合には、中速領域の代わりに直近低速側の領域(この場合は低速領域)を代替領域として選択(第1のポイント)するとともに、電波オフモードに変更して、電波オンモード用のリソースをデータの書き込みに利用する(第2のポイント)ので、第1のポイントだけでは緩衝メモリ13aの溢れ問題からデータの書き込みが途中で失敗する恐れを否めないが、第2のポイントを加えたことにより、電波オンモード用のリソースをデータの書き込みに振り向けることができ、緩衝メモリ13aの溢れ問題を回避してデータの書き込み失敗をなくすことができる。
【0108】
したがって、本実施形態においても、既定の使い方(高速データ→高速領域、中速データ→中速領域、低速データ→低速領域)だけでなく、代替領域を用いた使い方(高速データ→中速領域、中速データ→低速領域)もできるから、メモリ14の空き領域の有効利用を図ることができるという格別の効果を得ることができる。
【0109】
なお、この実施形態では、ステップS70で電波オフモードへの変更通知を行った後、ステップS71で直ちに電波オフモードへ変更しているが、これに限定されない。たとえば、ステップS70とステップS71の間に、ユーザの応答を判定するステップ(ステップS74)を入れてもよい。すなわち、ステップS70で電波オフモードへの変更通知を行った後、ステップS74でユーザの応答を判定し、その判定結果が「変更許可指示あり」の場合にのみ、ステップS71に進み、電波オフモードへ変更するようにしてもよい。このようにすると、ユーザの自発的判断により、割り込みを禁止するか否かを選択できるので好ましい。
【0110】
また、以上の第1および第2の実施形態では、「放送受信時やインターネット等からのデータダウンロード」および「連写や動画撮影」を例にしたが、これに限定されない。高ビットレートや中ビットレートのデータをメモリ14にリアルタイムに書き込むことが求められる用途であれば、いかなるものであってもよい。たとえば、テレビ放送等の予約録画機能を備えたカメラ付携帯電話機などに適用してもよい。
【0111】
この場合、たとえば、カメラで高画質の動画を撮影中は、その画像ファイル(つまり高ビットレートのデータ)がメモリ14の既定の領域(この場合は高速領域)に書き込まれるが、書き込みの途中で高速領域が一杯になってしまった時点で、それ以上のデータの書き込みができなくなる。しかし、高速領域の代替領域として中速領域を選択する(前記の第1のポイント)とともに、予約録画を禁止して、その予約録画のためのリソースをデータの書き込みに振り向ける(前記の第2のポイント)ことにより、データの書き込みを支障なく継続し、且つ、メモリ14の空き領域の有効利用を図ることができる。
【0112】
以下、本発明の諸態様を付記としてまとめて記載する。
【0113】
(付記1)
少なくとも一つのアプリケーションを実行する実行手段と、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段と、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段と、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段と、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段と、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段と、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段と、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段と
を備えたことを特徴とする電子機器。
付記1によれば、通常は、指示手段による指示、つまり、実行手段におけるアプリケーションの実行を中断して他の処理を実行することを許容するが、記憶デバイスの代替領域への書き込み動作に影響が出そうな場合には、指示手段による指示を禁止するので、実行手段の負荷を軽くして代替領域への書き込み動作への影響を回避することができる。したがって、記憶デバイスの空き領域を有効利用(代替領域の利用)しつつ、高ビットレートのデータの書き込みを支障なく行うことができる。
【0114】
(付記2)
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止することに加え、さらに、ユーザに対して所定の通知を行うことを特徴とする付記1に記載の電子機器。
付記2によれば、指示手段からの指示(実行手段におけるアプリケーションの実行を中断して他の処理を実行すること)が禁止される際は、その旨がユーザに通知されるので、ユーザはアプリケーションの中断または所定の処理の実行が行われないことを知ることができる。
【0115】
(付記3)
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に、ユーザに対して所定の通知を行うとともに、当該ユーザの了解操作に応答して、前記指示手段から前記実行手段への指示出力を禁止することを特徴とする付記1に記載の電子機器。
付記3によれば、ユーザの了解操作に応答して、前記指示手段から前記実行手段への指示出力を禁止するので、当該指示出力の「禁止」と「禁止しない」をユーザの所望により任意に選択することができる。
【0116】
(付記4)
前記記憶制御手段は、前記禁止手段によって前記指示手段から前記実行手段への指示出力が禁止されているときに、前記他の処理を実行するためのリソースを前記データの書き込みに利用することを特徴とする付記1に記載の電子機器。
付記4によれば、他のアプリケーションまたは前記所定の処理を実行するために用意されているリソースを有効に利用することができる。
【0117】
(付記5)
前記リソースは、前記実行手段の処理能力またはメモリであることを特徴とする付記4に記載の電子機器。
付記5によれば、実行手段の処理能力またはメモリをデータの書き込みに利用することができる。
【0118】
(付記6)
前記アプリケーションは、被写体像を撮像する撮像手段を用いて行われる連写または動画の撮影と記録に関する処理を実行するものであることを特徴とする付記1に記載の電子機器。
付記6によれば、たとえば、連写や動画撮影機能付きカメラや携帯電話等に好適に用いることができる。
【0119】
(付記7)
前記アプリケーションは、電波によって通信を行う通信手段を用いて行われる通信に関する処理を実行するものであることを特徴とする付記1に記載の電子機器。
付記7によれば、たとえば、通信手段を備える携帯電話等に好適に用いることができる。
【0120】
(付記8)
前記アプリケーションは、放送信号を受信する放送受信手段を用いて行われる予約録画に関する処理を実行するものであることを特徴とする付記1に記載の電子機器。
付記8によれば、たとえば、テレビジョン放送等の予約録画機能を備える携帯電話等に好適に用いることができる。
【0121】
(付記9)
電子機器のコンピュータを、
少なくとも一つのアプリケーションを実行する実行手段、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段、
として機能させるためのプログラム。
付記9によれば、付記1の機能をソフトウェア(プログラム)の形で提供することができる。
【符号の説明】
【0122】
1 携帯電話機(電子機器)
5 撮像系(撮像手段)
6 中央制御部(実行手段、指示手段、検出手段、領域分け手段、判定手段、選択手段、禁止手段、記憶制御手段)
6a CPU(コンピュータ)
7 無線通信部(通信手段)
9 放送受信部(放送受信手段)
14 メモリ(記憶デバイス)
【特許請求の範囲】
【請求項1】
少なくとも一つのアプリケーションを実行する実行手段と、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段と、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段と、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段と、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段と、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段と、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段と、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段と
を備えたことを特徴とする電子機器。
【請求項2】
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止することに加え、さらに、ユーザに対して所定の通知を行うことを特徴とする請求項1に記載の電子機器。
【請求項3】
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に、ユーザに対して所定の通知を行うとともに、当該ユーザの了解操作に応答して、前記指示手段から前記実行手段への指示出力を禁止することを特徴とする請求項1に記載の電子機器。
【請求項4】
前記記憶制御手段は、前記禁止手段によって前記指示手段から前記実行手段への指示出力が禁止されているときに、前記他の処理を実行するためのリソースを前記データの書き込みに利用することを特徴とする請求項1に記載の電子機器。
【請求項5】
前記リソースは、前記実行手段の処理能力またはメモリであることを特徴とする請求項4に記載の電子機器。
【請求項6】
前記アプリケーションは、被写体像を撮像する撮像手段を用いて行われる連写または動画の撮影と記録に関する処理を実行するものであることを特徴とする請求項1に記載の電子機器。
【請求項7】
前記アプリケーションは、電波によって通信を行う通信手段を用いて行われる通信に関する処理を実行するものであることを特徴とする請求項1に記載の電子機器。
【請求項8】
前記アプリケーションは、放送信号を受信する放送受信手段を用いて行われる予約録画に関する処理を実行するものであることを特徴とする請求項1に記載の電子機器。
【請求項9】
電子機器のコンピュータを、
少なくとも一つのアプリケーションを実行する実行手段、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段、
として機能させるためのプログラム。
【請求項1】
少なくとも一つのアプリケーションを実行する実行手段と、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段と、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段と、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段と、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段と、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段と、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段と、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段と
を備えたことを特徴とする電子機器。
【請求項2】
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止することに加え、さらに、ユーザに対して所定の通知を行うことを特徴とする請求項1に記載の電子機器。
【請求項3】
前記禁止手段は、前記選択手段によって書き込み速度が遅い領域が選択された場合に、ユーザに対して所定の通知を行うとともに、当該ユーザの了解操作に応答して、前記指示手段から前記実行手段への指示出力を禁止することを特徴とする請求項1に記載の電子機器。
【請求項4】
前記記憶制御手段は、前記禁止手段によって前記指示手段から前記実行手段への指示出力が禁止されているときに、前記他の処理を実行するためのリソースを前記データの書き込みに利用することを特徴とする請求項1に記載の電子機器。
【請求項5】
前記リソースは、前記実行手段の処理能力またはメモリであることを特徴とする請求項4に記載の電子機器。
【請求項6】
前記アプリケーションは、被写体像を撮像する撮像手段を用いて行われる連写または動画の撮影と記録に関する処理を実行するものであることを特徴とする請求項1に記載の電子機器。
【請求項7】
前記アプリケーションは、電波によって通信を行う通信手段を用いて行われる通信に関する処理を実行するものであることを特徴とする請求項1に記載の電子機器。
【請求項8】
前記アプリケーションは、放送信号を受信する放送受信手段を用いて行われる予約録画に関する処理を実行するものであることを特徴とする請求項1に記載の電子機器。
【請求項9】
電子機器のコンピュータを、
少なくとも一つのアプリケーションを実行する実行手段、
前記実行手段に対し、前記アプリケーションの実行を中断して他の処理を実行するように指示することが可能な指示手段、
前記アプリケーションの実行に伴い発生するデータの単位時間あたりのデータ量の大きさを検出する検出手段、
記憶デバイスの空き領域を、書き込み速度に応じて複数に領域分けする領域分け手段、
前記検出手段によって検出された単位時間あたりのデータ量の大きさに対応した領域が、前記領域分け手段によって区分された複数の領域の中に存在するか否かを判定する判定手段、
前記判定手段によって領域の存在が判定された場合に当該領域を選択する一方、領域の存在が判定されなかった場合に当該領域よりも書き込み速度が遅い領域を選択する選択手段、
前記選択手段によって書き込み速度が遅い領域が選択された場合に前記指示手段から前記実行手段への指示出力を禁止する禁止手段、
前記選択手段によって選択された領域に前記データを書き込む記憶制御手段、
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−15933(P2012−15933A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−152662(P2010−152662)
【出願日】平成22年7月5日(2010.7.5)
【出願人】(310006855)NECカシオモバイルコミュニケーションズ株式会社 (1,081)
【Fターム(参考)】
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願日】平成22年7月5日(2010.7.5)
【出願人】(310006855)NECカシオモバイルコミュニケーションズ株式会社 (1,081)
【Fターム(参考)】
[ Back to top ]