JP2009020565A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2009020565A JP2009020565A JP2007180696A JP2007180696A JP2009020565A JP 2009020565 A JP2009020565 A JP 2009020565A JP 2007180696 A JP2007180696 A JP 2007180696A JP 2007180696 A JP2007180696 A JP 2007180696A JP 2009020565 A JP2009020565 A JP 2009020565A
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- decoder
- encoding
- rom
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】複数のCPUで効率よくエンコード処理およびデコード処理を行なうことが可能な情報処理装置を提供すること。
【解決手段】ROM16は、エンコーダプログラムおよびデコーダプログラムを記憶する。CPU0(10)は、ROM16に記憶されるエンコーダプログラムを実行することによって、エンコード処理を行なう。CPU1(11)は、ROM16に記憶されるデコーダプログラムを実行することによって、複数のストリームデータに対応するデコード処理を並列に行なう。したがって、ソフトウェアをスレッド化する必要がなくなり、エンコード処理およびデコード処理を効率的に行なうことが可能となる。
【選択図】図1
【解決手段】ROM16は、エンコーダプログラムおよびデコーダプログラムを記憶する。CPU0(10)は、ROM16に記憶されるエンコーダプログラムを実行することによって、エンコード処理を行なう。CPU1(11)は、ROM16に記憶されるデコーダプログラムを実行することによって、複数のストリームデータに対応するデコード処理を並列に行なう。したがって、ソフトウェアをスレッド化する必要がなくなり、エンコード処理およびデコード処理を効率的に行なうことが可能となる。
【選択図】図1
Description
本発明は、エンコード処理およびデコード処理を行なう技術に関し、特に、複数のCPU(Central Processing Unit)にエンコード処理およびデコード処理を行なわせる情報処理装置に関する。
近年、情報を圧縮する技術の開発が進んでおり、様々なエンコード/デコード方式が存在している。たとえば、オーディオのエンコード/デコード方式として、MP3(MPEG Audio Layer-3)、AAC(Advanced Audio Coding)などの方式がある。
従来、複数のCPUを用いてエンコード処理およびデコード処理を行なう場合、その処理を実現するためのソフトウェアをまとまった単位に分割するスレッド化を行なってCPUに並列に実行させることにより、処理効率の向上を図っていた。これに関連する技術として、下記の特許文献1に開示された発明がある。
特許文献1に開示されたデータ処理システムにおいて、MPEG2ソフトウェアデコードモジュールによる復号化処理は、スレッド#1とスレッド#2の2つのスレッドに分割して実行される。スレッド#1は、MPEG2によって符号化された画像データを復号する復号処理シーケンスの内、他の画面に非依存の部分の処理を実行するためのものもである。一方、スレッド#2は、他の画面に依存する部分の処理を実行する。スレッド#1は、1枚のピクチャデータ毎に生成され、空き状態のCPUに割り付けられて実行される。
特開2001−69512号公報
ソフトウェアをスレッド化する場合、CPU単体で処理を実行するように作成されたソフトウェアをそのまま流用することができないため、専用のソフトウェアを新たに作成しなければならないといった問題点がある。このような問題点は、上述した特許文献1に開示された発明を用いたとしても解決することができない。
本発明は、上記問題点を解決するためになされたものであり、その目的は、複数のCPUで効率よくエンコード処理およびデコード処理を行なうことが可能な情報処理装置を提供することである。
本発明の一実施例によれば、複数のCPUによってエンコード処理およびデコード処理を行なう情報処理装置が提供される。ROMは、エンコーダプログラムおよびデコーダプログラムを記憶する。CPU0は、ROMに記憶されるエンコーダプログラムを実行することによって、エンコード処理を行なう。CPU1は、ROMに記憶されるデコーダプログラムを実行することによって、複数のストリームデータに対応するデコード処理を並列に行なう。
この実施例によれば、CPU1が、ROMに記憶されるデコーダプログラムを実行することによって、複数のストリームデータに対応するデコード処理を並列に行なうので、ソフトウェアをスレッド化する必要がなくなり、エンコード処理およびデコード処理を効率的に行なうことが可能になるという効果がある。
図1は、本発明の実施の形態における情報処理装置の概略構成の一例を示すブロック図である。この情報処理装置は、キャッシュ12を有するCPU0(10)と、キャッシュ13を有するCPU1(11)と、DMAC(Direct Memory Access Controller)14と、RAM(Random Access Memory)15と、ROM(Read Only Memory)16と、出力ポート17と、入力ポート18とを含む。これらは、バス19を介して接続され、1チップで構成されてもよい。
CPU0(10)は、ROM16に格納された制御プログラムおよびエンコーダプログラムを実行することにより、主に情報処理装置の全体的な制御と、エンコード処理とを行なう。本実施の形態においては、CPU0(10)が1つのエンコーダを実行するとして説明するが、複数のエンコーダを並列に実行するようにしてもよい。
CPU1(11)は、ROM16に格納された複数のデコーダプログラムを並列に実行することにより、最大3つの曲(ストリーム)を同時に再生することが可能である。なお、デコーダの数はこれに限られるものではない。
DMAC14は、メモリ間のDMA転送や、I/O(Input/Output)−メモリ間のDMA転送を行なうものであり、たとえば、入力ポート18を介して接続されるCD−ROM(Compact Disc-Read Only Memory)装置やハードディスクからストリームデータをRAM15に転送する場合などに用いられる。
出力ポート17は、スピーカ、表示装置、ハードディスクなどの外部デバイスに接続され、たとえば、CPU1(11)からの音楽のデコードデータをスピーカを介して出力したり、CPU0(10)からの表示データを表示装置に出力したり、CPU0(10)からのエンコードデータをハードディスクに出力したりする。
入力ポート18は、ボタンスイッチ、CD−ROM装置、ハードディスクなどの外部デバイスに接続され、たとえば、ユーザによってボタンスイッチが操作されたときにその情報を入力してCPU0(10)に出力したり、CD−ROM装置やハードディスクからストリームデータを入力したりする。
図2は、RAM15およびROM16の構成例を説明するための図である。図2(a)は、ROM16の構成例を示す図である。このROM16は、制御タスクROM部21と、エンコーダROM部22と、デコーダ共通ROM部23とを含む。
CPU0(10)は、制御タスクROM部21に格納された制御プログラムを実行することによって、情報処理装置の全体的な制御処理を実現する。このCPU0(10)によって実現される機能を、以下、単に制御タスクと呼ぶ。
また、CPU0(10)は、エンコーダROM部22に格納されたエンコーダプログラムを実行することによって、エンコード処理を実現する。このCPU0(10)によって実現される機能を、以下、単にエンコーダと呼ぶ。CPU0(10)は、制御タスクとエンコーダとを別々のタスク上で実現し、タスクスイッチを適宜切替えることによって制御処理とエンコード処理とを並列に実行する。
CPU1(11)は、デコーダ共通ROM部23に格納されたデコーダプログラムを実行することによってデコード処理を実現する。このCPU1(11)によって実現される機能を、以下、単にデコーダと呼ぶ。CPU1(11)は、複数のタスク上で別々のデコード処理を行ない、タスクスイッチを適宜切替えることによって複数のデコード処理を並列に実行する。
なお、本実施の形態においては、各プログラムがROM16に格納されているが、ハードディスクなどから各プログラムをRAM15にロードし、CPU0(10)およびCPU1(11)がそれを実行するようにしてもよい。
図2(b)は、RAM15の構成例を示す図である。このRAM15は、制御タスクRAM部31と、エンコーダRAM部32と、デコーダ(1)RAM部33と、デコーダ(2)RAM部34と、デコーダ(3)RAM部35とを含む。
制御タスクRAM部31は、CPU0(10)が制御タスクを実行する際にワークエリアなどで使用される領域である。エンコーダRAM部32は、CPU0(10)がエンコーダを実行する際にワークエリアなどで使用される領域である。
デコーダ(1)RAM部33は、CPU1(11)が第1のタスク上で第1のデコーダを実行する際にワークエリアなどで使用される領域である。デコーダ(2)RAM部34は、CPU1(11)が第2のタスク上で第2のデコーダを実行する際にワークエリアなどで使用される領域である。デコーダ(3)RAM部35は、CPU1(11)が第3のタスク上で第3のデコーダを実行する際にワークエリアなどで使用される領域である。
図3は、制御タスクの処理手順を説明するためのフローチャートである。まず、入力ポート18に接続されるボタンスイッチなどからユーザの操作による制御入力があったか否かが判定される(S11)。制御入力がなければ(S11,No)、ステップS11の処理を繰返す。
制御入力があれば(S11,Yes)、その制御入力がエンコードであるか、デコードであるかが判定される(S12)。制御入力がエンコードであれば(S12、Yes)、現在実行中のエンコード数が所定数未満であるか否かが判定される(S13)。本実施の形態において、エンコードの所定数を“1”とする。
エンコード数が“1”未満でなければ、すなわち既に別のエンコード処理が行なわれている場合には(S13,No)、ステップS11に戻って以降の処理を繰返す。また、エンコード数が“1”未満であれば(S13,Yes)、別のタスク上で実行されるエンコーダに対してエンコード開始通知を行ない(S14)、ステップS11に戻って以降の処理を繰返す。
また、制御入力がデコードであれば(S12,No)、現在実行中のデコード数が所定数未満であるか否かが判定される(S15)。本実施の形態において、デコードの所定数を“3”とする。
デコード数が“3”未満でなければ、すなわち既に3つのエンコード処理が行なわれている場合には(S15,No)、ステップS11に戻って以降の処理を繰返す。また、デコード数が“3”未満であれば(S15,Yes)、エンコード処理が行なわれていないタスクに対してデコード開始通知を行ない(S16)、ステップS11に戻って以降の処理を繰返す。
なお、制御タスクは、エンコーダおよびデコーダからの完了通知を受け、どのエンコーダおよびデコーダが動作中であるかを管理している。
図4は、エンコーダの処理手順を説明するためのフローチャートである。まず、制御タスクからエンコード開始通知を受けたか否かが判定される(S21)。エンコード開始通知を受けていなければ(S21,No)、ステップS21の処理を繰返す。
エンコード開始通知を受ければ(S21,Yes)、1フレーム分のエンコード処理を行なう(S22)。そして、1曲分のデータのエンコード処理が終了したか否かが判定される(S23)。
1曲分のデータのエンコード処理が終了していなければ(S23,No)、ステップS22に戻って次の1フレーム分のデータのエンコード処理が行なわれる。1曲分のデータのエンコード処理が終了すれば(S23,Yes)、制御タスクに対してエンコード完了通知を行ない(S24)、ステップS21に戻って以降の処理を繰返す。
図5は、デコーダの処理手順を説明するためのフローチャートである。まず、制御タスクからデコード開始通知を受けたか否かが判定される(S31)。デコード開始通知を受けていなければ(S31,No)、ステップS31の処理を繰返す。デコード開始通知を受ければ(S31,Yes)、デコード処理を行なっていないデコーダにデコード処理を行なわせる。
ステップS32〜S33は、第1のタスク上で動作するデコーダの処理を示している。1フレーム分のデコード処理が行なわれると(S32)、1曲分のデータのデコード処理が終了したか否かが判定される(S33)。1曲分のデータのデコード処理が終了していなければ(S33,No)、ステップS32に戻って次のフレームのデコード処理が行なわれる。1曲分のデータのデコード処理が終了すれば(S33,Yes)、制御タスクに対してデコード完了通知を行ない(S38)、ステップS31に戻って以降の処理を繰返す。
ステップS34〜S35は、第2のタスク上で動作するデコーダの処理を示している。1フレーム分のデコード処理が行なわれると(S34)、1曲分のデータのデコード処理が終了したか否かが判定される(S35)。1曲分のデータのデコード処理が終了していなければ(S35,No)、ステップS34に戻って次のフレームのデコード処理が行なわれる。1曲分のデータのデコード処理が終了すれば(S35,Yes)、制御タスクに対してデコード完了通知を行ない(S38)、ステップS31に戻って以降の処理を繰返す。
ステップS36〜S37は、第3のタスク上で動作するデコーダの処理を示している。1フレーム分のデコード処理が行なわれると(S36)、1曲分のデータのデコード処理が終了したか否かが判定される(S37)。1曲分のデータのデコード処理が終了していなければ(S37,No)、ステップS36に戻って次のフレームのデコード処理が行なわれる。1曲分のデータのデコード処理が終了すれば(S37,Yes)、制御タスクに対してデコード完了通知を行ない(S38)、ステップS31に戻って以降の処理を繰返す。
エンコード処理は高速に実行されることが要求されるため、本実施の形態においてはエンコード数を“1”とし、CPU0(10)にエンコード処理と制御処理とを行なわせている。このような構成にすることにより、エンコード処理が高速に行なわれると共に、エンコード処理が不要な場合にはCPU0(10)のクロック周波数を下げて制御処理のみを行なわせることにより、消費電力を削減することができる。
一方、デコード処理は出力で間に合えばよいため平均速度が1倍速以上であればよく、高速に行なわせる必要がない。そのため、CPU1(11)に複数のデコード処理を行なわせても十分に処理可能である。また、ROM16に配置されるデコーダ部分を共通とすることにより、CPU1(11)のタスク切替え時におけるキャッシュヒット率が向上し、処理速度を向上させることができる。
また、このような構成とすることにより、たとえば、CD−ROMからハードディスクにオーディオデータを高速に転送したり、複数のオーディオを同時に再生して複数のユーザに提供したりすることができる。
以上の説明においては、オーディオのエンコード処理およびデコード処理についてであったが、それ以外のエンコード処理およびデコード処理についても適用することが可能である。
以上説明したように、本実施の形態における情報処理装置によれば、エンコード処理とデコード処理とを別々のCPUで実行させると共に、1つのCPUに複数のデコード処理を並列に行なわせるようにしたので、ソフトウェアをスレッド化する必要がなくなり、エンコード処理およびデコード処理を効率的に行なうことが可能となった。
また、1つのCPUに複数のデコード処理を並列に行なわせるようにしたので、タスク切替え時におけるキャッシュヒット率を向上させることができ、処理速度を向上させることが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明は、カーオーディオ、ホームオーディオなどに適用でき、特に、複数のオーディオを同時に再生して出力するような情報処理装置に好適である。
10,11 CPU、12,13 キャッシュ、14 DMAC、15 RAM、16 ROM、17 出力ポート、18 入力ポート、19 バス、21 制御タスクROM部、22 エンコーダROM部、23 デコーダ共通ROM部、31 制御タスクRAM部、32 エンコーダRAM部、33 デコーダ(1)RAM部、34 デコーダ(2)RAM部、35 デコーダ(3)RAM部。
Claims (3)
- 複数のプロセッサによってエンコード処理およびデコード処理を行なう情報処理装置であって、
エンコーダプログラムおよびデコーダプログラムを記憶する記憶手段と、
前記記憶手段に記憶されるエンコーダプログラムを実行することによって、エンコード処理を行なう第1のプロセッサと、
前記記憶手段に記憶されるデコーダプログラムを実行することによって、複数のストリームデータに対応するデコード処理を並列に行なう第2のプロセッサとを含む、情報処理装置。 - 前記第2のプロセッサは、前記記憶手段に記憶される共通のデコーダプログラムを実行することによって、複数のストリームデータに対応するデコード処理を並列に行なう、請求項1記載の情報処理装置。
- 前記デコーダプログラムは、プロセッサ単体で実行可能な形式のプログラムである、請求項1または2記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007180696A JP2009020565A (ja) | 2007-07-10 | 2007-07-10 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007180696A JP2009020565A (ja) | 2007-07-10 | 2007-07-10 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009020565A true JP2009020565A (ja) | 2009-01-29 |
Family
ID=40360179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007180696A Withdrawn JP2009020565A (ja) | 2007-07-10 | 2007-07-10 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009020565A (ja) |
-
2007
- 2007-07-10 JP JP2007180696A patent/JP2009020565A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930590B2 (en) | Audio device and method of operating the same | |
US8498723B2 (en) | Prioritization of audio streams for platform adaptive audio decoding | |
JP6200235B2 (ja) | マルチメディアプロセッシングシステム及びそのマルチメディアプロセッシング方法 | |
JP2015181289A (ja) | 動的ビデオスイッチング | |
TWI399938B (zh) | 媒體資料解碼方法和提供媒體的電路 | |
JP2006331624A (ja) | デジタルオーディオ再生装置及びこれを利用したデジタルオーディオ再生方法 | |
CN103796063A (zh) | 并行转码 | |
KR101408021B1 (ko) | 멀티미디어 파일 제어 과정에서 빠른 응답을 구현하는 방법 및 재생 장치 | |
JP2008299610A (ja) | マルチプロセッサ | |
TWI510099B (zh) | 多執行緒紋理解碼 | |
JP2007295392A (ja) | 情報処理装置、復号処理方法、およびプログラム | |
JP2011154682A (ja) | 信号処理装置、遊技機 | |
CN103327401A (zh) | 多媒体转码器及转码方法、多媒体播放终端 | |
JP2009020565A (ja) | 情報処理装置 | |
JP2006215886A (ja) | 信号処理装置、信号処理システム、および信号処理方法 | |
US8682460B2 (en) | System and method for performing audio processing operations by storing information within multiple memories | |
US8005348B2 (en) | Information processing apparatus | |
JP2008503766A5 (ja) | ||
JP2007109109A (ja) | メディア処理装置 | |
JP2008097430A (ja) | ストリームデータ再生システム | |
JP2008191473A (ja) | 音データ処理装置 | |
JP2005044333A (ja) | コンピュータシステム | |
TWI360745B (en) | Storage system and method thereof | |
JP2006270755A5 (ja) | ||
CN111757168B (zh) | 音频解码方法、装置、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20101005 |