説明

動画像再生装置及び方法及びプログラム

【課題】コストの低減及び更なる低消費電力化が可能な動画像再生装置等を提供する。
【解決手段】携帯電話装置1は、メインシステム2と、サブシステム3とを有する。サブシステム3は、記録カード7に記録されている動画像ファイル内のインデックス情報を読み出してメインシステム2に転送する。メインシステム2は、転送されたインデックス情報に基づいて、動画像ファイル内の複数のフレームデータをそれぞれ復号するために用いる複数の情報であるデコードフレームアレイを生成する。メインシステム2は、デコードフレームアレイを複数の群に分けて群単位でサブシステム3に転送し、複数の群の内の1つを送信した後から複数の群の内の次の1つを送信するまでの間、低消費電力モードに移行する。サブシステム3は、メインシステム3から転送されたデコードフレームを用いて、動画像ファイル内のフレームデータを復号する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像ファイルに基づく動画像を再生するための動画像再生装置及び方法及びプログラムに関する。
【背景技術】
【0002】
近年、動画像を再生するための携帯メディアプレーヤと呼ばれる装置が製造、販売、使用されている。また、携帯電話装置、PDA(携帯情報端末)等においても、動画像を再生する機能を有する製品が使用されている。これらの装置においては、低消費電力化の要請が強い。
【0003】
このような事情に鑑み、本出願人は、データ長に基づいて演算器のクロック周波数を決定することが可能な省電力デコーダを提案した(例えば、下記の特許文献1参照)。この省電力デコーダによれば、データ長に基づいて演算器のクロック周波数を調整することができ、消費電力を低減することができる。
【0004】
また、上記のような携帯メディアプレーヤ等の装置において、2つの処理部を具備することも行われるようになってきている。
このような事情に鑑み、本出願人は、動画像データを記憶する入力バッファおよび出力バッファを備え、フレームを単位として符号化された動画像を再生する動画像再生装置であって、処理予定のフレームのデータ量と、出力バッファにおいて残されている記憶可能なデータ量である残存データ量とに基づいて、動画像データの再生処理速度を調整する再生速度調整部を含むことを特徴とする動画像再生装置を提案した(例えば、下記の特許文献2参照)。特許文献2掲載の動画像再生装置によれば、再生処理速度を調整すること等により、消費電力の低減を図ることができる。
【0005】
しかしながら、2つの処理部を具備する動画像再生装置において、コストの低減及び更なる低消費電力化が求められている。
【0006】
【特許文献1】特許第3633572号公報
【特許文献2】特開2003−274402号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
そこで、上記の点に鑑み、本発明は、2つの処理部を具備する動画像再生装置であって、コストの低減及び低消費電力化を実現することができる動画像再生装置を提供することを第1の目的とする。また、本発明は、そのような動画像再生方法を提供することを第2の目的とする。また、本発明は、そのような動画像再生プログラムを提供することを第3の目的とする。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明の第1の観点に係る動画像再生装置は、動画像ファイルに基づく動画像を再生するための装置であって、第1及び第2の処理部を具備し、動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含む第1の形式のファイルである場合に、第1の処理部が、インデックス情報に基づいて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号するために用いられる複数の情報を生成して第2の処理部に送信し、第2の処理部が、複数の情報を用いて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生することを特徴とする。これにより、第2の処理部の処理負荷及びワークエリアを低減することができ、装置全体としてのコストを低減することができる。
【0009】
この動画像処理装置において、第1の処理部が、複数の情報を複数の群に分けて群単位で第2の処理部に送信し、複数の群の内の1つを送信した後から複数の群の内の次の1つを送信するまでの間、低消費電力モードに移行するようにしても良い。これにより、第1の処理部の消費電力を低減することができる。
【0010】
また、ユーザから早送り指示入力又は巻き戻し指示入力があった場合に、第1の処理部が、複数の情報の中から早送り再生開始フレーム又は巻き戻し再生開始フレームに該当する情報を第2の処理部に送信し、第2の処理部が、第1の処理部から送信された早送り再生開始フレーム又は巻き戻し再生開始フレームに該当する情報に基づいて、早送り再生開始フレーム又は巻き戻し再生開始フレームから再生を行うようにしても良い。
【0011】
また、上記の課題を解決するため、本発明の第2の観点に係る動画像再生装置は、動画像ファイルに基づく動画像を再生するための装置であって、第1及び第2の処理部を具備し、動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含まない第2の形式のファイルである場合に、第2の処理部が、動画像ファイルを分析することにより複数の情報を生成し、複数の情報を用いて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生することを特徴とする。
【0012】
この動画像再生装置において、第2の処理部が、複数の情報を第1の処理部に送信し、ユーザから巻き戻し指示入力があった場合に、第1の処理部が、複数の情報の中から巻き戻し再生開始フレームに該当する情報を第2の処理部に送信し、第2の処理部が、第1の処理部から送信された巻き戻し再生開始フレームに該当する情報に基づいて、巻き戻し再生開始フレームから再生を行うようにしても良い。
【0013】
本発明の第1及び第2の観点に係る動画像再生装置において、情報が、当該情報を用いて復号されるフレームデータの符号化方式に関する情報、当該情報を用いて復号される符号化されたフレームデータのデータ長に関する情報、当該情報を用いて復号される符号化されたフレームデータの復号を開始する時刻に関する情報、当該情報を用いて復号されたフレームデータを表示する時刻に関する情報、及び/又は、当該情報が第1の処理部から第2の処理部に送信されたか否かを表す情報を含むようにしても良い。
【0014】
さらに、情報が、第2の処理部が当該情報を用いて符号化されたフレームデータの復号を行うときの第2の処理部の動作クロック周波数を決定する情報を更に含み、第1又は第2の処理部が、第2の処理部が情報を用いて符号化されたフレームデータを復号するときに、当該情報内の動作クロック周波数を決定する情報に基づいて、第2の処理部の動作クロック周波数を調整するようにしても良い。
【0015】
また、第1の処理部が、動画像ファイルに基づく動画像を再生するために第2の処理部内のCPUが実行するためのプログラムを第2の処理部内の記憶手段に送信し、第2の処理部内のCPUが、第2の処理部内の記憶手段に記憶されたプログラムを実行することにより、動画像ファイルに基づく動画像を再生するようにしても良い。これにより、第2の処理部においてプログラムを格納しておく必要をなくすことができ、第2の処理部のコストを低減することができる。
【0016】
また、形式の異なる複数の動画像ファイルに基づく複数の動画像を再生する場合に、第1の処理部が、1つの形式の動画像ファイルに基づく動画像を再生するために第2の処理部内のCPUが実行するための第1のプログラムを第2の処理部に送信し、第2の処理部内のCPUが、第1のプログラムを実行することにより、1つの形式の動画像ファイルに基づく動画像を再生し、第1の処理部が、他の形式の動画像ファイルに基づく動画像を再生するために第2の処理部内のCPUが実行するための第2のプログラムを第2の処理部に送信し、第2の処理部内のCPUが、第2のプログラムを実行することにより、他の形式の動画像ファイルに基づく動画像を再生するようにしても良い。これにより、形式の異なる複数の動画像ファイルに基づく複数の動画像を再生する場合であっても、第2の処理部においてプログラムを格納しておく必要をなくすことができ、第2の処理部のコストを低減することができる。
【0017】
また、上記の課題を解決するため、本発明の第1の観点に係る動画像再生方法は、第1及び第2の処理部を具備する装置において動画像ファイルに基づく動画像を再生するための方法であって、動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含む第1の形式のファイルである場合に、第1の処理部において、インデックス情報に基づいて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号するために用いられる複数の情報を生成して第2の処理部に送信するステップと、第2の処理部において、複数の情報を用いて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生するステップとを具備する。
【0018】
また、上記の課題を解決するため、本発明の第2の観点に係る動画像再生方法は、第1及び第2の処理部を具備する装置において動画像ファイルに基づく動画像を再生するための方法であって、動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含まない第2の形式のファイルである場合に、第2の処理部において、動画像ファイルを分析することにより複数の情報を生成するステップと、第2の処理部において、複数の情報を用いて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生するステップとを具備する。
【0019】
また、上記の課題を解決するため、本発明の第1の観点に係る動画像再生プログラムは、第1及び第2の処理部を具備する装置に動画像ファイルに基づく動画像を再生させるためのプログラムであって、動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含む第1の形式のファイルである場合に、第1の処理部において、インデックス情報に基づいて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号するために用いられる複数の情報を生成して第2の処理部に送信する手順と、第2の処理部において、複数の情報を用いて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生する手順とを実行させる。
【0020】
また、上記の課題を解決するため、本発明の第2の観点に係る動画像再生プログラムは、第1及び第2の処理部を具備する装置に動画像ファイルに基づく動画像を再生させるためのプログラムであって、動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含まない第2の形式のファイルである場合に、第2の処理部において、動画像ファイルを分析することにより複数の情報を生成する手順と、第2の処理部において、複数の情報を用いて、動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生する手順とを実行させる。
【0021】
本発明の第1及び第2の観点に係る動画像再生プログラムが、第2の処理部のデバイスドライバであることとしても良い。
【発明を実施するための最良の形態】
【0022】
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素については、同一の参照番号で示している。
【0023】
図1は、本発明の一実施形態に係る携帯電話装置の概要を示す図である。本実施形態は、本発明を携帯電話装置に適用したものである。図1に示すように、この携帯電話装置1は、メインシステム2と、サブシステム3とを有している。
【0024】
メインシステム2は、携帯電話装置1全体の制御を行うためのシステムであり、メインCPU21、メインメモリ22、及び、ROM23を有している。メインCPU21、メインメモリ22、及び、ROM23は、バスB1を介して相互に接続されている。バスB1には、更に、通信部4及び入力部5も接続されている。通信部4は、アンテナ6を介して携帯電話基地局と通信を行う。入力部5は、ユーザが種々の入力を行うためのキー、ボタン、スイッチ、マイクロフォン等である。
【0025】
メインメモリ22としては、例えば、SDRAM(Synchronous Dynamic Random Access Memory)をはじめとするDRAMやSRAM(Static Random Access Memory)等を利用することができる。一般に、メインメモリには大きな容量が必要とされる。そのため、メインCPU21に対して外付けとなるので実装面積は大きいが、1ビット当たりのコストが低いDRAMを利用することが好適であると考えられる。また、ROM23としては、例えば、マスクROM、EEPROM、フラッシュメモリ等を利用することができる。ROM23には、後に説明する種々のプログラムやデータが格納されている。
【0026】
サブシステム3は、画像の表示、音声の出力等を行うためのシステムであり、サブCPU31、サブメモリ32、ホストインタフェース33、カードインタフェース34、音声出力制御回路35、及び、表示制御回路36を有している。サブCPU31、サブメモリ32、ホストインタフェース33、カードインタフェース34、音声出力制御回路35、及び、表示制御回路36は、バスB2を介して相互に接続されている。
【0027】
サブメモリ32としては、例えば、DRAMやSRAM等を利用することができる。一般に、画像の表示処理には高速性が必要とされること、実装面積の制約等から、1ビット当たりのコストは高いがSRAMを利用することが好適であると考えられる。このサブメモリ32の容量をできるだけ小さくすることで、サブシステム3のコストを低減することができる。なお、サブシステム3を、1つのチップ上に集積した半導体集積回路とすることもできる。この場合、サブメモリ32の実装面積の制約は、より強くなる。
【0028】
ホストインタフェース33は、バスB1とバスB2との間のデータや制御信号の送受信を行うための回路である。
カードインタフェース34は、記録媒体としての記録カード7に接続されており、サブCPU31の制御下で、記録カード7に記録されている動画像ファイルを読み込むための回路である。なお、記録カード7としては、例えば、不揮発性メモリを用いた記録媒体(例えば、miniSDカード(登録商標)等)、磁気記録媒体(例えば、マイクロドライブ(登録商標)等)のほか、光学的記録媒体等の種々の記録媒体を利用することができる。
【0029】
なお、画像の表示、音声の出力等を行わないときには、サブシステム3が低消費電力モードに移行し、画像の表示、音声の出力等を行うときに、サブシステム3が通常動作モードに復帰するようにすることで、消費電力を低減することができる。一般に、低消費電力モードは、サブシステム3の一部又は全部の動作を停止したり、サブシステム3の一部又は全部への電力供給を停止したり、サブシステム3の一部又は全部に供給される電圧を低くしたり、サブシステム3の一部又は全部の動作クロック周波数を低下させること等により実現される。
【0030】
図2は、記録カード7に記録される動画像ファイルのファイルフォーマットの一例を示す図である。動画像ファイルは、一般に、ヘッダとデコードデータパケットとを有する。ヘッダは、ファイル全体に関わる情報、例えば、コンテンツ名、デコードフレーム位置、デコードフレーム入力時間、デコードフレーム出力時間、圧縮方式(符号化方式)、フレームレート等を含んでいる。デコードデータパケットは、圧縮(符号化)された複数のフレームデータ及び音声データを含んでいる。図2に示すファイルフォーマットにおいては、各フレームデータのインデックス情報(アドレス情報)が、ヘッダに含まれている。なお、図2に示すファイルフォーマットを用いて、種々の圧縮(符号化)方式に基づいて圧縮(符号化)された動画像データを格納することが可能である。
【0031】
再び図1を参照すると、音声出力制御回路35は、スピーカ8に接続されており、サブCPU31の制御下で、ディジタル音声データをD/A変換及び増幅し、スピーカ8に音声の出力を行わせる。
表示制御回路36は、表示パネル9(例えば、LCD(Liquid Crystal Display)等)に接続されたLCDドライバ等であり、サブCPU31の制御下で、表示パネル9に画像の表示を行わせる。なお、表示パネル9として、LCDのほか、有機EL(Electro Luminescense)パネル等を利用することができる。
【0032】
次に、記録カード7に記録されている動画像ファイルに基づいて動画像を表示するためのメインシステム2及びサブシステム3の処理について説明する。
【0033】
図3〜図5は、図2に示すファイルフォーマットの動画像ファイルに基づいて動画像を表示する場合におけるメインシステム2及びサブシステム3の処理を示すフローチャートである。以下、図3〜図5を参照しながら、メインシステム2及びサブシステム3の処理について説明する。
【0034】
まず、メインシステム2(より詳細には、メインCPU21)が、ROM23に格納されているメインシステム2を初期化するためのプログラム(初期化プログラム)を実行することにより、メインシステム2の初期化を行う(ステップS101)。
【0035】
具体的には、メインCPU21は、メインシステム2及びサブシステム3を制御するためにメインCPU21が実行するためのメイン制御プログラムをROM23からメインメモリ22の領域22aに、動画像ファイル(図2参照)内の複数のフレームの再生(復号及び表示)にそれぞれ用いられる複数の情報(以下、「デコードフレームアレイ」という。デコードフレームアレイについては、後に詳細に説明する。)を生成するためにメインCPU21が実行するためのプログラム(以下、「DEMUX B プログラム」という。)をROM23からメインメモリ22の領域22bに、それぞれロードする。
【0036】
また、メインCPU21は、DEMUX B プログラムのワークエリア及びバッファ(以下、「DEMUX B バッファ」という。)をメインメモリ22の領域22cに、DEMUX B プログラムの実行結果として得られるデコードフレームアレイを格納するためのバッファ(以下、「デコードフレームアレイバッファ」という。)をメインメモリ22の領域22dに、それぞれ確保する。
【0037】
更に、メインCPU21は、サブシステム3を制御するためにサブCPU31が実行するためのサブ制御プログラムをROM23からメインメモリ22の領域22eに、デコードフレームアレイを生成するために用いられる情報(以下、「デコードフレームアレイ生成情報」という。デコードフレームアレイ生成情報については、後に詳細に説明する。)を生成するためにサブCPU31が実行するためのプログラム(以下、「DEMUX A プログラム」という。)をROM23からメインメモリ22の領域22fに、圧縮(符号化)されたフレームデータ及び音声データの復号を行うためにサブCPU31が実行するためのデコードプログラムをROM23からメインメモリ22の領域22gに、それぞれロードする。
【0038】
図6(a)は、このときのメインメモリ22のメモリマップの例を示す図である。サブ制御プログラム、DEMUX A プログラム、及び、デコードプログラムは、サブCPU31にとってはプログラムであるが、メインCPU21にとっては単なるバイナリデータである。
【0039】
サブ制御プログラムは、記録カード7からのデータの読み出し及び記録カード7へのデータの書き込みのためのプログラムを含んでいても良い。また、デコードプログラムは、複数の圧縮(符号化)方式にそれぞれ対応する複数のコーデック(CODEC)を含んでいても良い。なお、本実施形態においては、デコードプログラムを実行するサブCPU31が圧縮(符号化)されたフレームデータ及び音声データの復号を行うこととしているが、サブCPU31がコーデックを実行することで圧縮(符号化)されたフレームデータ及び音声データの復号を行うことに代えて、圧縮(符号化)されたフレームデータ及び音声データの復号を行うデコーダ回路(ハードウェア)をアクセラレータとしてサブシステム3内に具備することとしても良い。
【0040】
再び図3を参照すると、メインCPU21は、次に、メインメモリ22の領域22aに格納されているメイン制御プログラムを実行することにより、サブシステム3をオンするとともに、ホストインタフェース33を介してサブシステム3の初期化を行う(ステップS102)。なお、このとき、メインCPU21は、サブシステム3へのリセット信号を活性化する。従って、サブCPU31は、この時点では、未だ動作を開始しない。
【0041】
次に、メインCPU21は、メインメモリ22の領域22e〜22gに格納されているサブ制御プログラム、DEMUX A プログラム、及び、デコードプログラムを、サブメモリ32の領域32a〜領域32cにそれぞれ転送する(ステップS103)。
【0042】
図6(b)は、このときのサブメモリ32のメモリマップの例を示す図である。なお、領域32d(デコードフレームアレイバッファ)、領域32e(DEMUX A バッファ)、領域32f(デコード入力バッファ)、及び、領域32g(デコード出力バッファ)は、ステップS102(サブシステム3の初期化)において、ホストインタフェース33を介してメインCPU21により確保されるようにしても良いし、後に説明するように、サブシステム3へのリセット信号が非活性化された後に、サブCPU31がサブ制御プログラムを実行することにより確保されるようにしても良い。
【0043】
次に、メインCPU21は、サブシステム3へのリセット信号を非活性化し、サブシステム3のリセットを解除する(ステップS104)。これにより、サブCPU31は、サブメモリ32の領域32a内に転送されているサブ制御プログラムの実行を開始する。先に説明したように、このとき、サブCPU31が、サブ制御プログラムを実行することにより、領域32d(デコードフレームアレイバッファ)、領域32e(DEMUX A バッファ)、領域32f(デコード入力バッファ)、及び、領域32g(デコード出力バッファ)を確保するようにしても良い。
【0044】
次に、メインCPU21は、記録カード7に記録されている動画像ファイルのリストを要求する(ステップS105)。サブCPU31は、カードインタフェース34を介して記録カード7から動画像ファイルのリストを取得し、メインシステム3に転送する(ステップS201)。
【0045】
なお、このとき、サブCPU31は、取得した動画像ファイルのリストの表示パネル9への表示を表示制御回路36に行わせる。これにより、記録カード7に記録されている動画像ファイルのリストが、表示パネル9に表示される。携帯電話装置1のユーザは、入力部5を操作することにより、表示パネル9に表示された動画像ファイルのリストの中から所望の動画像ファイルを選択可能である。
【0046】
次に、メインCPU21は、ユーザによって選択された動画像ファイル(ここでは、「ファイルa」とする。)の再生を、サブCPU31に要求する(ステップS106)。
【0047】
サブCPU31は、ファイルaの再生の要求をメインCPU21から受けると、領域32e(DEMUX A バッファ)をワークエリアとして利用しながら、領域32b内のDEMUX A プログラムを実行することにより、ファイルaのデコードフレームアレイ生成情報を生成する(ステップS202)。
【0048】
図7(a)は、デコードフレームアレイ生成情報の一例を示す図である。図7(a)に示すように、デコードフレームアレイ生成情報は、記録カード7におけるヘッダの先頭位置(アドレス情報)であるヘッダポインタと、記録カード7におけるデコードデータパケットの先頭位置(アドレス情報)であるデコードデータパケットポインタとを含む。
【0049】
次に、サブCPU31は、デコードフレームアレイ生成情報内のヘッダポインタを用いて、ファイルaのヘッダ(図2参照)を記録カード7から領域32e(DEMUX A バッファ)に読み込み、更に、メインシステム2に転送する(ステップS203)。
【0050】
メインCPU21は、ファイルaのヘッダをサブCPU31から受け取ると、領域22c(DEMUX B バッファ)をワークエリアとして利用しながら、領域22b内のDEMUX B プログラムを実行することにより、ファイルaのヘッダを解析してファイルaのデコードフレームアレイを領域22d(デコードフレームアレイバッファ)内に生成する(ステップS107)。
【0051】
図7(b)は、デコードフレームアレイの一例を示す図である。デコードフレームアレイは、ファイルa内のフレームの数と同数のデコードフレームを含む配列である。各デコードフレームは、デコーダ番号、パケットレングス、パケットタイムI、パケットタイムO、及び、転送済みフラグを含んでいる。デコーダ番号は、デコーダ(本実施形態においては、領域32c内に格納されているデコードプログラム内のコーデック)を選択するためのセレクタである。パケットレングスは、各フレームデータの長さを表す情報であり、これに基づいて各フレームデータの先頭位置のアドレス情報を得ることができる。パケットタイムIは、圧縮(符号化)された各フレームデータをデコーダ(本実施形態においては、コーデックを実行するサブCPU31)に入力する時刻である。パケットタイムOは、復号された各フレームデータをデコーダ(本実施形態においては、コーデックを実行するサブCPU31)から表示制御回路36に出力する時刻である。転送済みフラグは、そのデコードフレームがメインシステム2からサブシステム3に転送済みか否かを表すフラグである。
【0052】
デコードフレームアレイは、行単位(デコードフレーム単位)で幾つかのデコードフレーム群に分けられ、デコードフレーム群単位でメインシステム2からサブシステム3に転送される。ファイルa内のフレームの数がnであり、デコードフレームアレイがm個のデコードフレーム群に分けられるものとすると、1≦m≦nとなる。デコードフレームアレイが幾つのデコードフレーム群に分けられるか(1つのデコードフレーム群が幾つのデコードフレームを含むか)は、サブCPU31の処理能力、サブメモリ32の容量(特に、領域32c(デコードフレームアレイバッファ)の容量)、バスB1〜ホストインタフェース33〜バスB2のデータ転送レート等の種々の要素のバランスを考慮して定めるようにしても良い。後に説明するように、メインCPU21は、1つのデコードフレーム群のメインシステム2からサブシステム3への転送が終了した後から次のデコードフレーム群のメインシステム2からサブシステム3への転送が開始する迄の間、低消費電力モードに移行する。そのため、1つのデコードフレーム群のサイズを大きくすることで、1つのデコードフレーム群の転送が終了した後からメインシステム2からサブシステム3への次のデコードフレーム群の転送が開始する迄の時間を長くすることができ、デコードフレーム群メインCPU21が低消費電力モードとなる時間を長くすることができる。そこで、一つの考え方として、デコードフレーム群のサイズを領域32c(デコードフレームアレイバッファ)の容量以下で最大限のサイズにすることが考えられる。しかし、デコードフレーム群のサイズがバスB1〜ホストインタフェース33〜バスB2のデータ転送レートに対して大き過ぎると、バスB2がデコードフレーム群の転送に占有され、サブCPU31の処理が滞ることにもなりかねない。従って、上記した各要素のバランスを考慮することが望ましい。
【0053】
再び図4を参照すると、メインCPU21は、メインメモリ22の領域22d(デコードフレームアレイバッファ)内の第1のデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送する(ステップS108)。その後、メインCPU21は、低消費電力モード(「スタンバイモード」、「サスペンドモード」等と呼ばれることもある。)に移行する。なお、低消費電力モードは、メインCPU21の一部又は全部の動作を停止したり、メインCPU21の一部又は全部への電力供給を停止したり、メインCPU21の一部又は全部に供給される電圧を低くしたり、メインCPU21の動作クロック周波数を低下させること等により実現される。
【0054】
サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に転送された第1のデコードフレーム群に基づいて、第1のデコードフレーム群に対応する第1の圧縮(符号化)されたフレームデータ群及び音声データ群を復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS204)。より詳細には、サブCPU31は、第1のデコードフレーム群の中のデコードフレームを1つずつ読み出し、当該デコードフレームのパケットレングスを用いて圧縮(符号化)されたフレームデータ及び音声データを記録カード7から読み出してデコード入力バッファ32fに格納する。さらに、サブCPU31は、当該デコードフレームのパケットタイムIで表される時刻に、デコードプログラム(サブメモリ32の領域32c参照)の中の複数のコーデックの内のデコードフレームのデコーダ番号により選択されるコーデックを実行することにより圧縮(符号化)されたフレームデータ及び音声データを復号してデコード出力バッファ32gに格納する。そして、サブCPU31は、当該デコードフレームのパケットタイムOで表される時刻に、復号したフレームデータを表示制御回路36に出力するとともに、復号した音声データを音声出力制御回路35に出力する。表示制御回路36は、復号されたフレームデータに基づく画像を表示パネル9に表示させる。音声出力制御回路35は、復号された音声データをD/A変換及び増幅し、スピーカ8に音声を出力させる。
【0055】
サブCPU31は、第1のデコードフレーム群に基づくフレームデータ及び音声データの出力が終了すると、第2のデコードフレーム群の転送をメインCPU21に要求する(ステップS205)。
【0056】
メインCPU21は、第2のデコードフレーム群の転送要求を受けると、低消費電力モードから通常動作モードに復帰し、メインメモリ22の領域22d(デコードフレームアレイバッファ)内の第2のデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送する(ステップS109)。その後、メインCPU21は、再び低消費電力モードに移行する。
【0057】
サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に転送された第2のデコードフレーム群に基づいて、第2のデコードフレーム群に対応する第2の圧縮(符号化)されたフレームデータ群及び音声データ群を順次復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS206)。
【0058】
サブCPU31は、第2のデコードフレーム群に基づくフレームデータ及び音声データの出力が終了すると、第3のデコードフレーム群の転送をメインCPU21に要求する(ステップS207)。
【0059】
メインCPU21は、第3のデコードフレーム群の転送要求を受けると、低消費電力モードから通常動作モードに復帰し、メインメモリ22の領域22d(デコードフレームアレイバッファ)内の第3のデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送する(ステップS110)。その後、メインCPU21は、再び低消費電力モードに移行する。
【0060】
メインCPU21及びサブCPU31は、上記ステップS206,S207,及び,S110と同様の処理を繰り返すことにより、第3〜第(m−1)のデコードフレーム群に基づくフレームデータ及び音声データの復号及び出力を行う。
【0061】
サブCPU31は、第(m−1)のデコードフレーム群に基づく復号、画像の表示、及び、音声の出力が終了すると(ステップS208)、第mのデコードフレーム群の転送をメインCPU21に要求する(ステップS209)。
【0062】
メインCPU21は、第mのデコードフレーム群の転送要求を受けると、低消費電力モードから通常動作モードに復帰し、メインメモリ22の領域22d(デコードフレームアレイバッファ)内の第mのデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送する(ステップS111)。その後、メインCPU21は、再び低消費電力モードに移行する。
【0063】
サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に転送された第mのデコードフレーム群に基づいて、第mのデコードフレーム群に対応する第mの圧縮(符号化)されたフレームデータ群及び音声データ群を復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS210)。以上により、ファイルaに基づく動画像の再生が終了する。
【0064】
なお、ファイルaの再生中にユーザから早送り指示入力や巻き戻し指示入力があった場合には、メインCPU21は、メインメモリ22の領域22d(デコードフレームアレイバッファ)に格納されているデコードフレームアレイの中から早送り再生開始フレームや巻き戻し再生開始フレームに該当するデコードフレームを先頭とするデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送し、サブCPU31が、サブメモリ32の領域32d(デコードフレームアレイバッファ)に転送されたデコードフレーム群に基づいて、早送り再生開始フレームや巻き戻し再生開始フレームから再生を行うことができる。
【0065】
デコードフレームアレイ生成情報の生成のためのプログラム(DEMUX A プログラム(図6(b)の領域32b参照)は、プログラムサイズが小さく、必要なワークエリア(DEMUX A バッファ(図6(b)の領域32e参照)も少ない。そのため、デコードフレームアレイ生成情報の生成をサブシステム3において行うこととしても、不都合はない。
【0066】
一方、デコードフレームアレイの生成のためのプログラム(DEMUX B プログラム(図6(a)の領域22b参照)は、プログラムサイズが大きく、必要なワークエリア(DEMUX B バッファ(図6(a)の領域22c参照)も多い。そのため、デコードフレームアレイの生成をサブシステム3において行うこととすると、サブメモリ32の容量を大きくする必要がある。先に説明したように、サブメモリ32としては、高速性が必要とされること等から、SRAMを利用することが好適である。しかし、SRAMの1ビット当たりのコストは高いため、サブメモリ32の容量を大きくすると、コストの上昇を招いてしまう。そこで、デコードフレームアレイの生成を大容量のメインメモリ22を有するメインシステム2において行うことで、コストを低減することが可能である。
【0067】
また、メインCPU21は、メインメモリ22の領域22d(デコードフレームアレイバッファ)内に生成したデコードフレームアレイを複数のデコードフレーム群に分け、群単位でサブシステム3に転送する。そして、メインCPU21は、1つのデコードフレーム群の転送の後から次のデコードフレーム群の転送までの間、低消費電力モードに移行することができる。そのため、メインCPU21の消費電力を低減することが可能である。
【0068】
なお、メイン制御プログラム(図6(a)の領域22a参照)、DEMUX B プログラム(図6(a)の領域22b参照)、サブ制御プログラム(図6(a)の領域22e及び図6(b)の領域32a参照)、DEMUX A プログラム(図6(a)の領域22f及び図6(b)の領域32b参照)、及び、デコードプログラム(図6(a)の領域22g及び図6(b)の領域32c参照)を、サブシステム3のデバイスドライバ(ソフトウェア)とすることができる。これにより、メインシステム2の他のソフトウェア(OSや通話用ソフトウェア)に修正を加えることなく、サブシステム3のデバイスドライバ(ソフトウェア)を追加するだけで、動画像再生機能を携帯電話装置1に付加することが可能である。さらに、サブシステム3を1つのチップ上に集積した半導体集積回路とすることもできる。これにより、携帯電話装置メーカは、サブシステム3を集積した半導体集積回路とサブシステム3のデバイスドライバを購入し、メインシステム2に追加することで、動画像再生機能を携帯電話装置1に容易に付加することが可能である。
【0069】
また、上記においては、図2に示すファイルフォーマットの動画像ファイルを再生する場合について説明したが、図8に示すファイルフォーマットの動画像ファイルも上記と同様に再生することができる。図8に示すファイルフォーマットにおいては、各フレームデータのインデックス情報が、ヘッダ内ではなく、デコードデータパケットの後ろ(ファイルの末尾)に格納されている。このようなファイルフォーマットの例としては、AVI(Audio Video Interleave)がある。この場合、サブCPU31が、ステップS202において、図8(a)に示すようにインデックス情報ポインタを更に含むデコードフレームアレイ生成情報を生成するようにし、ステップS203において、ヘッダとともにインデックス情報を記録カード7から読み出してメインシステム2に転送するようにすれば良い。
【0070】
また、メインCPU21が、ステップS107において、図7(b)に示すデコードフレームアレイに代えて、図9に示すようにサブCPU31の動作クロック設定情報を含むデコードフレームアレイを生成するようにしても良い。動作クロック設定情報は、圧縮(符号化)方式や各フレームデータのサイズに基づいて算出するようにすれば良い。そして、サブCPU31が、動作クロック設定情報に基づいて動作クロックを設定すれば良い。これにより、サブCPU31の動作クロック周波数を圧縮(符号化)方式や各フレームデータのサイズに応じて好適な周波数とすることができるので、サブCPU31の消費電力を低減することが可能である。なお、メインCPU21がサブCPU31の動作クロックをリモート設定することが可能な場合には、図9に示すデコードフレームアレイの中の動作クロック設定情報を除いた部分(図7(b)と同等)だけをサブシステム31に転送すれば良い。そして、メインCPU21が、メインメモリ22の領域22d内のデコードフレームアレイの動作クロック設定情報に基づいて、サブCPU31の動作クロックをリモート設定すれば良い。このようにすれば、サブメモリ32の記憶領域を節約することができる。
【0071】
次に、記録カード7に記録されている2つの異なるファイルフォーマットの2つの動画像ファイルに基づいて2つの動画像を連続して表示するためのメインシステム2及びサブシステム3の処理について説明する。ここでは、図2に示すファイルフォーマットの動画像ファイル及び図10に示すファイルフォーマットの動画像ファイルに基づいて動画像を連続して表示する場合について説明する。
【0072】
図10は、動画像ファイルのファイルフォーマットの他の例を示す図である。図10に示すファイルフォーマットにおいては、各フレームのインデックス情報や各フレームの処理時刻情報がファイル内にまとまって存在せず、フレームデータとともに分散して存在している。従って、ヘッダのサイズが、図2及び図8(a)に示すヘッダのサイズより小さい。このようなファイルフォーマットの例としては、MPEG−2 PSやASF(Advanced Systems Format)がある。
【0073】
図11〜図14は、図2に示すファイルフォーマットの動画像ファイル及び図10に示すファイルフォーマットの動画像ファイルに基づいて動画像を連続して表示する場合におけるメインシステム2及びサブシステム3の処理を示すフローチャートである。以下、図11〜図14を参照しながら、メインシステム2及びサブシステム3の処理について説明する。
【0074】
まず、メインシステム2(より詳細には、メインCPU21)が、ROM23に格納されているメインシステム2を初期化するためのプログラム(初期化プログラム)を実行することにより、メインシステム2の初期化を行う(ステップS301)。
【0075】
具体的には、メインCPU21は、メインシステム2及びサブシステム3を制御するためにメインCPU21が実行するためのメイン制御プログラムをROM23からメインメモリ22の領域22aにロードする。
また、メインCPU21は、サブシステム3を制御するためにサブCPU31が実行するためのサブ制御プログラムをROM23からメインメモリ22の領域22eにロードする。
【0076】
図15(a)は、このときのメインメモリ22のメモリマップの例を示す図である。サブ制御プログラムは、記録カード7からのデータの読み出し及び記録カード7へのデータの書き込みのためのプログラムを含んでいても良い。
【0077】
再び図11を参照すると、メインCPU21は、次に、メインメモリ22の領域22aに格納されているメイン制御プログラムを実行することにより、サブシステム3をオンするとともに、ホストインタフェース33を介してサブシステム3の初期化を行う(ステップS302)。なお、このとき、メインCPU21は、サブシステム3へのリセット信号を活性化する。従って、サブCPU31は、この時点では、未だ動作を開始しない。
【0078】
次に、メインCPU21は、メインメモリ22の領域22eに格納されているサブ制御プログラムを、サブメモリ32の領域32aに転送する(ステップS303)。
【0079】
図15(b)は、このときのサブメモリ32のメモリマップの例を示す図である。
【0080】
次に、メインCPU21は、サブシステム3へのリセット信号を非活性化し、サブシステム3のリセットを解除する(ステップS304)。これにより、サブCPU31は、サブメモリ32の領域32a内に転送されているサブ制御プログラムの実行を開始する。
【0081】
次に、メインCPU21は、記録カード7に記録されている動画像ファイルのリストを要求する(ステップS305)。サブCPU31は、カードインタフェース34を介して記録カード7から動画像ファイルのリストを取得し、メインシステム3に転送する(ステップS401)。
【0082】
なお、このとき、サブCPU31は、取得した動画像ファイルのリストの表示パネル9への表示を表示制御回路36に行わせる。これにより、記録カード7に記録されている動画像ファイルのリストが、表示パネル9に表示される。携帯電話装置1のユーザは、入力部5を操作することにより、表示パネル9に表示された動画像ファイルのリストの中から所望の動画像ファイルを選択可能である。
【0083】
次に、メインCPU21は、ユーザによって選択された動画像ファイル(ここではファイルaとし、ファイルaのファイルフォーマットは図2に示すフォーマットであるものとする。)のファイル拡張子に基づいて、ファイルaを再生するためにメインCPU21及びサブCPU31が実行するためのプログラムをROM23に格納されているプログラムの中から選択し、選択したプログラムをメインメモリ22にロードし、更に、メインメモリ22にロードしたプログラムの内のサブCPU31が実行するためのプログラムをサブメモリ32に転送する(ステップS306)。
【0084】
具体的には、メインCPU21は、ファイルaのデコードフレームアレイを生成するためにメインCPU21が実行するためのDEMUX B プログラムをROM23からメインメモリ22の領域22bにロードする。
【0085】
また、メインCPU21は、DEMUX B バッファをメインメモリ22の領域22cに、デコードフレームアレイバッファをメインメモリ22の領域22dに、それぞれ確保する。
【0086】
更に、メインCPU21は、DEMUX A プログラムをROM23からメインメモリ22の領域22fに、圧縮(符号化)されたフレームデータ及び音声データの復号を行うためにサブCPU31が実行するためのデコードプログラムをROM23からメインメモリ22の領域22gに、それぞれロードする。
【0087】
そして、メインCPU21は、メインメモリ22の領域22f及び22gに格納されているDEMUX A プログラム及びデコードプログラムを、サブメモリ32の領域32b及び領域32cにそれぞれ転送する。
【0088】
このとき、メインメモリ22及びサブメモリ32のメモリマップは、先に説明した図6と同様になる。なお、サブメモリ32の領域32d(デコードフレームアレイバッファ)、領域32e(DEMUX A バッファ)、領域32f(デコード入力バッファ)、及び、領域32g(デコード出力バッファ)は、ホストインタフェース33を介してメインCPU21により確保されるようにしても良いし、サブCPU31がサブ制御プログラムを実行することにより確保されるようにしても良い。
【0089】
次に、メインCPU21は、ファイルaの再生をサブCPU31に要求する(ステップS307)。
【0090】
サブCPU31は、ファイルaの再生の要求をメインCPU21から受けると、領域32e(DEMUX A バッファ)をワークエリアとして利用しながら、領域32b内のDEMUX A プログラムを実行することにより、ファイルaのデコードフレームアレイ生成情報(図7(a)参照)を生成する(ステップS402)。
【0091】
次に、サブCPU31は、デコードフレームアレイ生成情報内のヘッダポインタを用いて、ファイルaのヘッダ(図2参照)を記録カード7から領域32e(DEMUX A バッファ)に読み込み、更に、メインシステム2に転送する(ステップS403)。
【0092】
メインCPU21は、ファイルaのヘッダをサブCPU31から受け取ると、領域22c(DEMUX B バッファ)をワークエリアとして利用しながら、領域22b内のDEMUX B プログラムを実行することにより、ファイルaのヘッダを解析してファイルaのデコードフレームアレイ(図7(b)参照)を領域22d(デコードフレームアレイバッファ)内に生成する(ステップS308)。
【0093】
次に、メインCPU21は、メインメモリ22の領域22d(デコードフレームアレイバッファ)内の第1のデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送する(ステップS309)。その後、メインCPU21は、低消費電力モードに移行する。
【0094】
サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に転送された第1のデコードフレーム群に基づいて、第1のデコードフレーム群に対応する第1の圧縮(符号化)されたフレームデータ群及び音声データ群を復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS404)。
【0095】
サブCPU31は、第1のデコードフレーム群に基づくフレームデータ及び音声データの出力が終了すると、第2のデコードフレーム群の転送をメインCPU21に要求する(ステップS405)。
【0096】
メインCPU21は、第2のデコードフレーム群の転送要求を受けると、低消費電力モードから通常動作モードに復帰し、メインメモリ22の領域22d(デコードフレームアレイバッファ)内の第2のデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送する(ステップS310)。その後、メインCPU21は、再び低消費電力モードに移行する。
【0097】
メインCPU21及びサブCPU31は、上記ステップS404,S405,及び,S310と同様の処理を繰り返すことにより、第2〜第(m−1)のデコードフレーム群に基づくフレームデータ及び音声データの復号及び出力を行う。
【0098】
サブCPU31は、第(m−1)のデコードフレーム群に基づく復号、画像の表示、及び、音声の出力が終了すると(ステップS408)、第mのデコードフレーム群の転送をメインCPU21に要求する(ステップS409)。
【0099】
メインCPU21は、第mのデコードフレーム群の転送要求を受けると、低消費電力モードから通常動作モードに復帰し、メインメモリ22の領域22d(デコードフレームアレイバッファ)内の第mのデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送する(ステップS311)。その後、メインCPU21は、再び低消費電力モードに移行する。
【0100】
サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に転送された第mのデコードフレーム群に基づいて、第mのデコードフレーム群に対応する第mの圧縮(符号化)されたフレームデータ群及び音声データ群を復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS410)。以上により、ファイルaに基づく動画像の再生が終了すると、サブCPU31は、メインCPU21にファイルaに基づく動画像の再生が終了したことを通知する。
【0101】
次に、携帯電話装置1のユーザは、入力部5を操作することにより、次に再生する動画像ファイル(ここではファイルbとし、ファイルbのファイルフォーマットは、図10に示すフォーマットであるものとする。)を選択する。
【0102】
図10に示すファイルフォーマットにおいては、各フレームのインデックス情報や各フレームの処理時刻情報がファイル内に存在しない。従って、デコードフレームアレイを作成するためには、ファイルbをパーシング(parsing)する必要がある。そのため、ファイルaを再生する場合と異なり、デコードフレームアレイの生成はサブCPU31が行うことが好適である。
【0103】
再び図13を参照すると、メインCPU21は、ユーザによって選択されたファイルbのファイル拡張子に基づいて、ファイルbのデコードフレームアレイを生成するためにサブCPU31が実行するためのプログラム(以下、「DEMUX プログラム」という。)をROM23に格納されているプログラムの中から選択し、選択したDEMUX プログラムをメインメモリ22の領域22fにロードし、更に、DEMUX プログラムをサブメモリ32の領域32bに転送する(ステップS312)。メインCPU21は、その後、低消費電力モードに移行する。
【0104】
図16(a)及び(b)は、このときのメインメモリ22及びサブメモリ32のメモリマップの例を示す図である。なお、ファイルaの再生時にはDEMUX B プログラムが格納されていたメインメモリ22の領域22b、DEMUX B バッファとして利用されていた領域22c、及び、デコードフレームアレイバッファとして利用されていた領域22dは、これ以降、デコードフレームアレイバッファ22hとして利用される。また、ファイルaの再生時にはDEMUX A バッファであったサブメモリ32の領域32fは、DEMUX バッファとして利用される。
【0105】
なお、サブCPU31は、ファイルb(図10参照)内の複数の圧縮(符号化)されたフレームデータを幾つかの群として扱う。ファイルb内のフレームデータの数がkであり、ファイルb内のフレームデータがj個のフレームデータ群に分けられるものとすると、1≦j≦kとなる。フレームデータが幾つのフレームデータ群に分けられるか(1つのフレームデータ群が幾つのフレームデータを含むか)は、サブCPU31の処理能力、サブメモリ32の容量(特に、領域32c(デコードフレームアレイバッファ)の容量)、バスB2〜ホストインタフェース33〜バスB1のデータ転送レート等の種々の要素のバランスを考慮して定めるようにしても良い。
【0106】
再び図13を参照すると、サブCPU31は、サブメモリ32の領域32bに格納されているDEMUX プログラムを実行することにより、第1のフレームデータ群をパーシングして、第1のフレームデータ群を再生するために必要な情報である第1のデコードフレーム群を領域32d(デコードフレームアレイバッファ)内に生成する(ステップS411)。ここで生成されるデコードフレーム群の内容は、先に説明した図7(b)又は図9と同様である。
【0107】
次に、サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に生成された第1のデコードフレーム群をメインメモリ22の領域22h(デコードフレームアレイバッファ)に転送する(ステップS412)。メインメモリ22の領域22h(デコードフレームアレイバッファ)に転送された第1のデコードフレーム群は、ファイルbの再生中にユーザから巻き戻し指示入力があった場合に利用可能である。すなわち、ユーザから巻き戻し指示入力があった場合、メインCPU31は、メインメモリ22の領域22h(デコードフレームアレイバッファ)に格納されているデコードフレーム群の中から巻き戻し再生開始フレームに該当するデコードフレームを先頭とするデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送し、サブCPU31が、サブメモリ32の領域32d(デコードフレームアレイバッファ)に転送されたデコードフレーム群に基づいて、巻き戻し再生開始フレームから再生を行うことができる。
【0108】
そして、サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に生成された第1のデコードフレーム群に基づいて、第1のデコードフレーム群に対応する第1の圧縮(符号化)されたフレームデータ群及び音声データ群を復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS413)。より詳細には、サブCPU31は、第1のデコードフレーム群の中のデコードフレームを1つずつ読み出し、当該デコードフレームのパケットレングスを用いて圧縮(符号化)されたフレームデータ及び音声データを記録カード7から読み出してデコード入力バッファ32fに格納する。さらに、サブCPU31は、当該デコードフレームのパケットタイムIで表される時刻に、デコードプログラム(サブメモリ32の領域32c参照)の中の複数のコーデックの内のデコードフレームのデコーダ番号により選択されるコーデックを実行することにより圧縮(符号化)されたフレームデータ及び音声データを復号してデコード出力バッファ32gに格納する。そして、サブCPU31は、当該デコードフレームのパケットタイムOで表される時刻に、復号したフレームデータを表示制御回路36に出力するとともに、復号した音声データを音声出力制御回路35に出力する。表示制御回路36は、復号されたフレームデータに基づく画像を表示パネル9に表示させる。音声出力制御回路35は、復号された音声データをD/A変換及び増幅し、スピーカ8に音声を出力させる。
【0109】
サブCPU31は、第1のデコードフレーム群に基づくフレームデータ群及び音声データ群の復号及び出力が終了すると、サブメモリ32の領域32bに格納されているDEMUX プログラムを実行することにより、第2のフレームデータ群をパーシングして、第2のフレームデータ群を再生するために必要な情報である第2のデコードフレーム群を領域32d(デコードフレームアレイバッファ)内に生成する(ステップS414)。
【0110】
次に、サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に生成された第2のデコードフレーム群をメインメモリ22の領域22h(デコードフレームアレイバッファ)に転送する(ステップS415)。
【0111】
そして、サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に生成された第2のデコードフレーム群に基づいて、第2のデコードフレーム群に対応する第2の圧縮(符号化)されたフレームデータ群及び音声データ群を復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS416)。
【0112】
サブCPU31は、上記ステップS414〜S416と同様の処理を繰り返すことにより、第3〜第(j−1)のフレームデータ群の復号及び出力を行う。
【0113】
その後、サブCPU31は、サブメモリ32の領域32bに格納されているDEMUX プログラムを実行することにより、第jのフレームデータ群をパーシングして、第jのフレームデータ群を再生するために必要な情報である第jのデコードフレーム群を領域32d(デコードフレームアレイバッファ)内に生成する(ステップS417)。
【0114】
次に、サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に生成された第jのデコードフレーム群をメインメモリ22の領域22h(デコードフレームアレイバッファ)に転送する(ステップS418)。
【0115】
そして、サブCPU31は、サブメモリ32の領域32d(デコードフレームアレイバッファ)内に生成された第jのデコードフレーム群に基づいて、第jのデコードフレーム群に対応する第jの圧縮(符号化)されたフレームデータ群及び音声データ群を復号し、復号したフレームデータに基づく画像の表示を表示制御回路36に行わせ、復号した音声データに基づく音声の出力を音声出力制御回路35に行わせる(ステップS419)。以上により、ファイルbに基づく動画像の再生が終了する。
【0116】
ここでは、ファイルa(図2参照)を再生した後にファイルb(図10参照)を再生する場合について説明したが、ファイルbを単独で再生することもでき、ファイルbを再生した後にファイルaを再生することもできる。
【0117】
なお、先に説明したように、ファイルbの再生中にユーザから巻き戻し指示入力があった場合には、メインCPU21は、メインメモリ22の領域22d(デコードフレームアレイバッファ)に格納されているデコードフレームアレイの中から巻き戻し再生開始フレームに該当するデコードフレームを先頭とするデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)に転送し、サブCPU31が、サブメモリ32の領域32d(デコードフレームアレイバッファ)に転送されたデコードフレーム群に基づいて、巻き戻し再生開始フレームから再生を行うことができる。また、ファイルbの再生中にユーザから早送り指示入力があった場合には、メインCPU21が、早送り再生開始フレームをサブCPU31に通知する。そして、サブCPU31が、サブメモリ32の領域32bに格納されているDEMUX プログラムを実行することにより、早送り再生開始フレームを先頭とするフレームデータ群をパーシングし、当該フレームデータ群を再生するために必要なデコードフレーム群をサブメモリ32の領域32d(デコードフレームアレイバッファ)内に生成し、早送り再生開始フレームから再生を行う。
【0118】
また、ファイルbの再生(図13のステップS411以降)において、サブCPU31が、動作クロック設定情報を含むデコードフレーム群(図9参照)を生成することとすれば、サブCPU31の動作クロック周波数を圧縮(符号化)方式や各フレームデータのサイズに応じて好適な周波数とすることができるので、サブCPU31の消費電力を低減することが可能である。
【産業上の利用可能性】
【0119】
本発明は、動画像ファイルに基づく動画像を再生するための動画像再生装置及び方法及びプログラムに利用可能である。また、本発明は、携帯メディアプレーヤ、携帯電話装置等の動画像を表示するための装置に利用可能である。
【図面の簡単な説明】
【0120】
【図1】本発明の一実施形態に係る携帯電話装置の概要を示す図。
【図2】図1の記録カード7内の動画像ファイルのフォーマットの例を示す図。
【図3】図1の携帯電話装置1の処理を示すフローチャート。
【図4】図1の携帯電話装置1の処理を示すフローチャート。
【図5】図1の携帯電話装置1の処理を示すフローチャート。
【図6】図1のメインメモリ22及びサブメモリ32のメモリマップの例を示す図。
【図7】デコードフレームアレイ生成情報及びデコードフレームアレイを示す図。
【図8】動画像ファイル及びデコードフレームアレイ生成情報の例を示す図。
【図9】デコードフレームアレイの他の例を示す図。
【図10】図1の記録カード7内の動画像ファイルのフォーマットの例を示す図。
【図11】図1の携帯電話装置1の処理を示すフローチャート。
【図12】図1の携帯電話装置1の処理を示すフローチャート。
【図13】図1の携帯電話装置1の処理を示すフローチャート。
【図14】図1の携帯電話装置1の処理を示すフローチャート。
【図15】図1のメインメモリ22及びサブメモリ32のメモリマップを示す図。
【図16】図1のメインメモリ22及びサブメモリ32のメモリマップを示す図。
【符号の説明】
【0121】
1 携帯電話装置、 2 メインシステム、 3 サブシステム、 4 通信部、 5 入力部、 6 アンテナ、 7 記録カード、 8 スピーカ、 9 表示パネル、 21 メインCPU、 22 メインメモリ、 23 ROM、 31 サブCPU、 32 サブメモリ、 33 ホストインタフェース、 34 カードインタフェース、 35 音声出力制御回路、 36 表示制御回路

【特許請求の範囲】
【請求項1】
動画像ファイルに基づく動画像を再生するための装置であって、
第1及び第2の処理部を具備し、
前記動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含む第1の形式のファイルである場合に、
前記第1の処理部が、前記インデックス情報に基づいて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号するために用いられる複数の情報を生成して前記第2の処理部に送信し、
前記第2の処理部が、前記複数の情報を用いて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生すること
を特徴とする、動画像再生装置。
【請求項2】
前記第1の処理部が、前記複数の情報を複数の群に分けて群単位で前記第2の処理部に送信し、前記複数の群の内の1つを送信した後から前記複数の群の内の次の1つを送信するまでの間、低消費電力モードに移行する、請求項1記載の動画像再生装置。
【請求項3】
ユーザから早送り指示入力又は巻き戻し指示入力があった場合に、
前記第1の処理部が、前記複数の情報の中から早送り再生開始フレーム又は巻き戻し再生開始フレーム以降のフレームに該当する情報を前記第2の処理部に送信し、
前記第2の処理部が、前記第1の処理部から送信された前記早送り再生開始フレーム又は巻き戻し再生開始フレーム以降のフレームに該当する情報に基づいて、前記早送り再生開始フレーム又は前記巻き戻し再生開始フレームから再生を行う、請求項1又は2記載の動画像再生装置。
【請求項4】
動画像ファイルに基づく動画像を再生するための装置であって、
第1及び第2の処理部を具備し、
前記動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含まない第2の形式のファイルである場合に、
前記第2の処理部が、前記動画像ファイルを分析することにより前記複数の情報を生成し、前記複数の情報を用いて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生すること
を特徴とする、動画像再生装置。
【請求項5】
前記第2の処理部が、前記複数の情報を前記第1の処理部に送信し、
ユーザから巻き戻し指示入力があった場合に、
前記第1の処理部が、前記複数の情報の中から巻き戻し再生開始フレーム以降のフレームに該当する情報を前記第2の処理部に送信し、
前記第2の処理部が、前記第1の処理部から送信された前記巻き戻し再生開始フレーム以降のフレームに該当する該当する情報に基づいて、前記前記巻き戻し再生開始フレームから再生を行う、請求項4記載の動画像再生装置。
【請求項6】
前記情報が、当該情報を用いて復号されるフレームデータの符号化方式に関する情報、当該情報を用いて復号される符号化されたフレームデータのデータ長に関する情報、当該情報を用いて復号される符号化されたフレームデータの復号を開始する時刻に関する情報、当該情報を用いて復号されたフレームデータを表示する時刻に関する情報、及び/又は、当該情報が前記第1の処理部から前記第2の処理部に送信されたか否かを表す情報を含む、請求項1〜5のいずれか1項に記載の動画像再生装置。
【請求項7】
前記情報が、前記第2の処理部が当該情報を用いて符号化されたフレームデータの復号を行うときの前記第2の処理部の動作クロック周波数を決定する情報を更に含み、
前記第1又は第2の処理部が、前記第2の処理部が前記情報を用いて符号化されたフレームデータを復号するときに、当該情報内の前記動作クロック周波数を決定する情報に基づいて、前記第2の処理部の動作クロック周波数を調整する、請求項6記載の動画像再生装置。
【請求項8】
前記第1の処理部が、前記動画像ファイルに基づく動画像を再生するために前記第2の処理部内のCPUが実行するためのプログラムを前記第2の処理部内の記憶手段に送信し、
前記第2の処理部内の前記CPUが、前記第2の処理部内の前記記憶手段に記憶された前記プログラムを実行することにより、前記動画像ファイルに基づく動画像を再生する、請求項1〜7のいずれか1項に記載の動画像再生装置。
【請求項9】
形式の異なる複数の前記動画像ファイルに基づく複数の動画像を再生する場合に、
前記第1の処理部が、1つの形式の前記動画像ファイルに基づく動画像を再生するために前記第2の処理部内の前記CPUが実行するための第1のプログラムを前記第2の処理部に送信し、
前記第2の処理部内の前記CPUが、前記第1のプログラムを実行することにより、前記1つの形式の動画像ファイルに基づく動画像を再生し、
前記第1の処理部が、他の形式の前記動画像ファイルに基づく動画像を再生するために前記第2の処理部内の前記CPUが実行するための第2のプログラムを前記第2の処理部に送信し、
前記第2の処理部内の前記CPUが、前記第2のプログラムを実行することにより、前記他の形式の動画像ファイルに基づく動画像を再生する、請求項8記載の動画像再生装置。
【請求項10】
第1及び第2の処理部を具備する装置において動画像ファイルに基づく動画像を再生するための方法であって、
前記動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含む第1の形式のファイルである場合に、
前記第1の処理部において、前記インデックス情報に基づいて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号するために用いられる複数の情報を生成して前記第2の処理部に送信するステップと、
前記第2の処理部において、前記複数の情報を用いて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生するステップと、
を具備する、動画像再生方法。
【請求項11】
第1及び第2の処理部を具備する装置において動画像ファイルに基づく動画像を再生するための方法であって、
前記動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含まない第2の形式のファイルである場合に、
前記第2の処理部において、前記動画像ファイルを分析することにより前記複数の情報を生成するステップと、
前記第2の処理部において、前記複数の情報を用いて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生するステップと、
を具備する、動画像再生方法。
【請求項12】
第1及び第2の処理部を具備する装置に動画像ファイルに基づく動画像を再生させるためのプログラムであって、
前記動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含む第1の形式のファイルである場合に、
前記第1の処理部において、前記インデックス情報に基づいて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号するために用いられる複数の情報を生成して前記第2の処理部に送信する手順と、
前記第2の処理部において、前記複数の情報を用いて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生する手順と、
を実行させるための動画像再生プログラム。
【請求項13】
第1及び第2の処理部を具備する装置に動画像ファイルに基づく動画像を再生させるためのプログラムであって、
前記動画像ファイルが、当該動画像ファイル内の複数の符号化されたフレームデータのインデックス情報を含まない第2の形式のファイルである場合に、
前記第2の処理部において、前記動画像ファイルを分析することにより前記複数の情報を生成する手順と、
前記第2の処理部において、前記複数の情報を用いて、前記動画像ファイル内の複数の符号化されたフレームデータをそれぞれ復号し、復号したフレームデータに基づいて動画像を再生する手順と、
を実行させるための動画像再生プログラム。
【請求項14】
前記第2の処理部のデバイスドライバであることを特徴とする、請求項12又は13記載の動画像再生プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2007−306443(P2007−306443A)
【公開日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願番号】特願2006−134642(P2006−134642)
【出願日】平成18年5月15日(2006.5.15)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】