説明

オーディオ再生装置及びオーディオ再生方法

【課題】DMA転送を用いるオーディオ再生装置に対して、消費電力を抑制すると共に、通常再生と特殊再生の切換えを効率良く行う。
【解決手段】プロセッサAにより電源のオン・オフが制御されるプロセッサBは、圧縮された音声データをデコードして、デコード後データをメモリ102に格納する。DMA転送部110は、通常再生時においてメモリ102に格納されたデコード後データを格納順に転送する。通常再生時のDMA転送中に、通常再生と異なる特殊再生が要求されたときに、DMA転送部110は、特殊再生の種類に応じた方向と連続フレーム数とスキップフレーム数で、メモリ102に格納されたデコード後データに対して、スキップフレーム数の分のフレームのデコード後データのスキップと、連続フレーム数の分のフレームのデコード後データの連続転送とを交互にする特殊再生転送を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、DMA(Direct Memory Access)転送を用いたオーディオ再生技術に関する。
【背景技術】
【0002】
近年、コンパクトディスク(CD)やフラッシュメモリ(登録商標)等の記録媒体に格納されたデジタル化したデータを再生するオーディオ再生装置が普及しており、大容量のデジタルデータを高速転送するための方法として、DMA転送が知られている。
【0003】
一方、特にモバイル向けのオーディオ再生装置に対して、LSI(集積回路:Large Scale Integration)を動作させるための電力を抑え、連続動作時間を長くすることが要求される。LSIの消費電力を抑制するために、LSIの電源領域を複数に分け、必要な領域にのみ電力を供給する手法が知られている。例えば、音声データをデコードするプロセッサを用いるオーディオ再生装置において、プロセッサで一度にデコードするデータのサイズを大きくすることで、プロセッサの消費電力を抑えることができる。具体的には、プロセッサはデコードするときにオン状態となり、デコードしたデータをDMA転送に委ねればオフとなる。ここで、プロセッサで一度にデコードするデータのサイズを大きくすることで、プロセッサの電源のオン・オフ切り換え回数を減らすことができるため、電源切り換え時のプロセッサでのオーバーヘッド処理分の消費電力を低減することができる。
【0004】
ところで、一度にDMA転送を行うサイズを大きくすると、DMA転送が完了するまでDMA転送を停止させることが出来ないため、再生中に停止要求に対しての応答性が良くないという問題がある。
【0005】
特許文献1には、DMA転送を用いるオーディオ再生装置に対して、停止要求から停止完了までの応答性を確保できる手法が開示されている。
【0006】
図14は、特許文献1に開示されたオーディオ再生装置のシステム構成を示す図である。このオーディオ再生装置は、オーディオ再生装置全体の統括を行うプロセッサ1と、圧縮された音声データをデコード処理するプロセッサ2と、プロセッサ2によりデコード処理されたデコード後データを格納するメモリ3と、メモリ3に格納されたデコード後データを転送するDMA転送部4を有する。
【0007】
DMA転送部4は、更に転送中のデコード後データのアドレスを格納するDMA転送中アドレスレジスタ8を有する。また、DMA転送部4は、DMA転送中に停止要求がされた際に、DMA転送中アドレスレジスタ8に格納されたデータアドレスから所定バイト先のデコード後データに対してフェードアウト処理を行い、フェードアウト処理を行ったデコード後データの終端アドレスを格納するDMA転送停止アドレス設定レジスタ9を有する。
【0008】
また、このオーディオ再生装置は、メモリ3に格納されているデコード後データがDMA転送部4により転送されるPCM5と、PCM5からのデコード後データがシリアル転送されると共に、スピーカ等から音を出力させるためにデコード後データをデジタルデータからアナログデータに変換するDAコンバータ(DAC)6と、を更に有する。
【0009】
プロセッサ2は、デコード処理を行っていない間、プロセッサ1からの制御により独立して電源を切ることができる。また、DMA転送部4は、プロセッサ1およびプロセッサ2へDMA転送完了割り込み信号10、11を出力することができ、割り込み方向切り換えスイッチ7によりプロセッサ1とプロセッサ2のどちらへ割り込み信号を出力するかを指定することができる。割り込み方向切り換えスイッチ7の切り換えは、プロセッサ1から割り込み方向切り換えスイッチ7に対して割り込み信号切り換え制御信号12を送信することで行うことができる。
【0010】
このオーディオ再生装置は、下記のように動作する。
まず、プロセッサ1からのデコード要求13によりプロセッサ2が起動し、デコード処理を行う。プロセッサ2は、デコード処理完了後にプロセッサ1に対してデコード完了通知14を送信し、デコード処理されたデータをメモリ3に格納する。
【0011】
DMA転送部4は、PCM5に対してメモリ3に格納されているデコード処理されたデータを送り、また、PCM5からDAC6にシリアル転送を行う。DAC6によりデコード処理されたデータをデジタルデータからアナログデータに変換し、スピーカ等から音が出力される。
【0012】
図15は、通常再生時のメモリ3内のデコード処理されたデータ(デコード後データ)の格納状態を示す。メモリ3内には、Nバイトのデコード後データ15と、その次にDMA転送をする転送予約データ16とが格納されている。このとき、メモリには2×Nバイトのデータが格納されることになる。DMA転送部4は、実際にDMA転送しているアドレスを示すDMA転送中アドレスレジスタ8を有しており、DMA転送単位毎にそのアドレスが更新される。DMA転送部4は、メモリ3内に格納されているデコード後データを順次PCM5に送る。
【0013】
図16に、停止処理時におけるメモリ3内のデコード後データの格納状態を示す。メモリ3には、現在DMA転送中のデコード後データ17、DMA転送中アドレスレジスタ8が指しているアドレス(データアドレス)21から所定バイト(Mバイト)後にフェードアウト演算処理を行ったデコード後データ(Lバイト)18が格納されている。ここで、所定のバイト(Mバイト)は、DMA転送中アドレスレジスタ8が指しているアドレス21から所定のバイト(Mバイト)後にフェードアウト演算処理を行っても十分間に合うサイズである。
【0014】
また、DMA転送停止アドレスレジスタ9には、フェードアウト演算処理後データの終端アドレス22が格納されている。また、メモリ3には、停止処理がされなかったらDMA転送部4が転送していたデコード後データ19、20が格納されている。
【0015】
再生の停止指示がされたとき、プロセッサ1は、プロセッサ2の電源をオンにし、プロセッサ2に対して停止要求13を行う。その後、プロセッサ2からの停止完了通知14を待って、プロセッサ2の電源をオフにする。
【0016】
プロセッサ2はプロセッサ1からの停止コマンド13を受信すると、DMA転送部4が有しているDMA転送中アドレスレジスタ8の値を確認する。S72)。次に、DMA転送中アドレスレジスタ8が示しているアドレスからMバイト後ろのデータに対し、フェードアウト演算処理を行い、フェードアウト演算処理後データ(Lバイト)を生成する。
【0017】
その後、プロセッサ2は、DMA転送部4のDMA転送停止アドレスレジスタにフェードアウト演算処理後データの終端アドレス22、つまり、DMA転送アドレスから(M+L)バイト先のアドレスを書き込む。DMA転送停止アドレスが書き込まれると、DMA転送部4は、フェードアウト演算処理後データの転送が完了するタイミングで、デコード後データの転送を停止する。このとき、図16に示すデコード後データ19、20は転送されない。
【0018】
DMA転送部4は、フェードアウト演算処理後データの転送が完了すると、プロセッサ2にDMA転送完了割り込み信号11を出力する。このとき、DMA転送完了割り込み信号11がプロセッサ2に出力されるように、割り込み信号切り換えスイッチ7が切り換わる。
【0019】
つまり、このオーディオ再生装置では、DMA転送停止アドレスレジスタ9を設けることで、任意のアドレスにおいてDMA転送を途中停止することを可能にした。これにより、1回のDMA転送サイズを大きくした場合であっても、停止要求から停止完了までの時間を短くすることができ、応答性を確保することができる。
【先行技術文献】
【特許文献】
【0020】
【特許文献1】特開2010−152512号公報
【発明の概要】
【発明が解決しようとする課題】
【0021】
音声データの再生中に、停止指示以外に、早送りや早戻しなどの通常再生とは異なる再生(以下、特殊再生という)が指示される場合もある。特許文献1に開示されたオーディオ再生装置の場合、通常再生から特殊再生へ切り換えるときに遅延や無音期間が生じる可能性がある。これについて、図17、図18、図19を参照して説明する。
【0022】
図17は、音声データの通常再生時に、メモリ3内のデータ(デコード後データ)の格納態様の例を示す。
【0023】
図17の例では、現在、メモリ3にフレームD1〜フレームD80のデコード後データが格納されている。フレームD1〜フレームD40のデコード後データは、DMA転送中データ51であり、これらのデータに対してPCM5へのDMA転送が行われている。なお、現在のDMA転送がフレームD3の途中まで行われており、DMA転送中アドレスがフレームD3の途中位置を指しているとする。
【0024】
また、フレームD41〜フレームD80のデコード後データは、DMA転送予約されているDMA転送予約データ52である。DMA転送予約とは、DMA転送切り換え時の音途切れを防止するために、DMA転送完了時に予約されたDMA転送があれば、プロセッサを動作させずに、DMA転送部が自発的に予約されているDMA転送を開始する機能である。
【0025】
図18は、図17に示す状態のときに、2倍早送り(1フレーム再生、1フレーム破棄)の指示がプロセッサ1からされた場合を説明するための図である。
【0026】
このとき、DMA転送中データ51のDMA転送を停止して、DMA転送予約データ52を早送り用のデータ(早送りデータ53)に置き換えて早送りデータ53を転送することにより、早送りを実現することができる。具体的には、例えば、DMA転送中アドレスから転送中のフレームがフレームD3であることを推測すると共に、早送りデータ53を作成する時間を考慮に入れて、DMA転送停止アドレスを例えばフレームD8の終端に設定してフレームD8の転送完了時にDMA転送を停止する。そして、フレームD8の続きとなる早送りデータ53(フレームD10、フレームD12、・・・)を生成して、メモリ3に格納していたDMA転送予約データ52と置き換える。
【0027】
図19は、このようにして早送りを実現する場合において、早送り指示が発生する前後のDMA転送の内容を示す。図示のように、プロセッサ1から早送り指示を受けたときのDMA転送中アドレス(フレームD3の途中のアドレス)から、DMA転送停止アドレス(フレームD8の終端)までの通常再生データのDMA転送が行われる。そして、早送りデータ開始アドレス(フレームD10の先頭)から早送りのためのDMA転送が開始される。
【0028】
すなわち、フレームD3の転送中に早送り指示が発生すると、既にデコードが完了しているフレームD9〜フレームD80のデータ(デコード後データ)を破棄して新たに早送りデータ53を作成する必要があると共に、早送り指示が発生したときから、フレームD8の転送完了までの期間(図中DMA停止期間54)には、通常の再生が継続しており、早送り再生への切換えに時間がかかるという問題があり、切換えの効率が良くない。
【0029】
本発明は、上記事情に鑑みてなされたものであり、DMA転送を用いるオーディオ再生装置に対して、消費電力を抑制すると共に、通常再生と特殊再生の切換えを効率良く行う技術を提供する。
【課題を解決するための手段】
【0030】
本発明の一つの態様は、オーディオ再生方法である。この方法は、第1のプロセッサで電源のオン・オフが制御される第2のプロセッサにより、圧縮された音声データをデコードし、デコードされたデコード後データをメモリに格納する。そして、通常再生時において前記メモリに格納されたデコード後データを格納順にDMA転送し、通常再生時のDMA転送中に、通常再生と異なる特殊再生が要求されたときに、前記特殊再生の種類に応じた方向と連続フレーム数とスキップフレーム数で、前記メモリに格納されたデコード後データに対して、前記スキップフレーム数の分のフレームのデコード後データのスキップと、前記連続フレーム数の分のフレームのデコード後データの連続転送とを交互にする特殊再生転送を行う。
【0031】
なお、上記態様の方法を装置やシステムに置き換えたものなども、本発明の態様としては有効である。
【発明の効果】
【0032】
本発明にかかる技術によれば、DMA転送を用いるオーディオ再生装置に対して、消費電力を抑制すると共に、通常再生と特殊再生の切換えを効率良く行うことができる。
【図面の簡単な説明】
【0033】
【図1】本発明の実施の形態にかかるオーディオ再生装置を示す図である。
【図2】図1に示すオーディオ再生装置における第1のプロセッサの動作を示すフローチャートである。
【図3】図1に示すオーディオ再生装置における第2のプロセッサの動作を示すフローチャートである。
【図4】通常再生時において、メモリ及び各レジスタの内容の遷移を示す図である(その1)。
【図5】通常再生時において、メモリ及び各レジスタの内容の遷移を示す図である(その2)。
【図6】通常再生時において、メモリ及び各レジスタの内容の遷移を示す図である(その3)。
【図7】通常再生時において、メモリ及び各レジスタの内容の遷移を示す図である(その4)。
【図8】通常再生時において、メモリ及び各レジスタの内容の遷移を示す図である(その5)。
【図9】DMA転送完了時におけるメモリ及び各レジスタの内容の例を示す図である。
【図10】通常再生から早送り再生に切り換わる直前におけるメモリ及び各レジスタの内容の例を示す図である。
【図11】図10に示す状態から早送り再生に切り換わるときに第2のプロセッサB及びDMA転送部が行う設定を説明するための図である。
【図12】DMA転送切り換えフレーム番号レジスタに設定されたフレーム番号に対応するフレームのDMA転送が完了したときに、DMA転送部の動作を説明するための図である。
【図13】早送り再生中におけるDMA転送部内の各レジスタの状態の例を示す図である。
【図14】特許文献1に記載されたオーディオ再生装置を示す図である。
【図15】図14に示すオーディオ再生装置において、通常再生時のメモリ内のデコード後データの格納状態を示す図である。
【図16】図14に示すオーディオ再生装置において、停止処理時におけるメモリ内のデコード後データの格納状態を示す図である。
【図17】図14に示すオーディオ再生装置において、通常再生と特殊再生の切り換え時に生じ得る問題点を説明するための図である(その1)。
【図18】図14に示すオーディオ再生装置において、通常再生と特殊再生の切り換え時に生じ得る問題点を説明するための図である(その2)。
【図19】図14に示すオーディオ再生装置において、通常再生と特殊再生の切り換え時に生じ得る問題点を説明するための図である(その3)。
【発明を実施するための形態】
【0034】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0035】
図1は、本発明の実施の形態にかかるオーディオ再生装置100を示す。オーディオ再生装置100は、第1のプロセッサとなるプロセッサA、第2のプロセッサとなるプロセッサB、メモリ102、DMA転送部110、PCM104、DAC(DAコンバータ)106、割込み方向切り換えスイッチ(以下単に「切り換えスイッチ」という)108、フレーム情報テーブル140を備える。
【0036】
該オーディオ再生装置100は、通常再生以外に、早送りや早戻しなどの特殊再生が可能である。
【0037】
プロセッサAは、オーディオ再生装置100全体を統括し、プロセッサBの電源制御を行う。プロセッサAは、切り換えスイッチ108からのDMA転送完了割り込み信号SA、外部からの指示信号INS、プロセッサBからのレスポンス信号RESをそれぞれ入力とし、プロセッサBに要求指示信号REQを、切り換えスイッチ108に制御信号CTRをそれぞれ出力する。
【0038】
プロセッサBは、圧縮された音声データをデコードし、DMA転送部110の制御を行う。プロセッサBは、プロセッサAからの要求指示信号REQ、切り換えスイッチ108からのDMA転送完了割り込み信号SBをそれぞれ入力とし、プロセッサAにレスポンス信号RESを出力する。また、プロセッサBは、デコードしたデータ(デコード後データ)をメモリ102に格納する。
【0039】
メモリ102は、プロセッサBからのデコード後データを格納すると共に、格納されたデコード後データをDMA転送部110に出力する。
【0040】
DMA転送部110は、DMA転送、すなわちプロセッサを介さずにデータの転送を行うものであり、メモリ102に格納されたデコード後データを順次PCM104に転送すると共に、各回のDMA転送が完了する度に、DMA転送完了割り込み信号Sを出力する。
【0041】
なお、本実施の形態において、DMA転送部110は、11個のレジスタを有し、これらのレジスタは、DMA転送中アドレスレジスタ112、DMA転送停止アドレスレジスタ114、DMA転送サイズレジスタ116、DMA転送中フレーム番号レジスタ118、DMA転送フレーム情報設定レジスタ120、DMA転送フレーム情報参照レジスタ122、フェード対象設定レジスタ124、DMA転送切り換えフレーム番号レジスタ126、DMA転送方向レジスタ128、DMA連続転送フレーム数レジスタ130、DMA転送スキップフレーム数レジスタ132である。
【0042】
DMA転送中アドレスレジスタ112は、DMA転送中のデコード後データのメモリ102におけるアドレスを示すものであり、DMA転送停止アドレスレジスタ114は、DMA転送を停止するアドレスを設定するためのものであり、DMA転送サイズレジスタ116は、DMA転送の開始時にプロセッサBによりDMA転送のデータサイズを設定するためのものであり、DMA転送の開始後は、まだ転送されているデコード後データのサイズ(残量)を示す。
【0043】
また、DMA転送中フレーム番号レジスタ118は、DMA転送中のデコード後データのフレーム番号を示す。
【0044】
DMA転送フレーム情報設定レジスタ120は、DAM転送するフレームの情報が格納されたテーブルの先頭アドレスを設定するためのものであり、具体的には、フレーム情報テーブル140の先頭アドレスが設定される。
【0045】
DMA転送フレーム情報参照レジスタ122は、DMA転送中に、フレーム情報テーブル140の読出しアドレスを示す。この読出しアドレスが示す位置には、現在転送中のフレームの先頭アドレスが格納されている。
【0046】
フェード対象設定レジスタ124は、DMA転送にて、後述するスキップ前後のフレームにフェードをかける対象サイズを設定するためのものである。
【0047】
DMA転送切り換えフレーム番号レジスタ126は、通常再生のためのDMA転送と、特殊再生のためのDMA転送(「特殊再生転送」という)との切り換えがなされるフレーム番号を設定するためのものである。
【0048】
DMA転送方向レジスタ128は、DMA転送を行うフレームの転送順の方向を設定する。「順方向」はメモリ102における格納順であり、「逆方向」はメモリ102における格納順の逆順である。例えば、通常再生と早送り再生の場合は、DMA転送方向レジスタ128は「順方向」に設定され、戻し再生または早戻し再生の場合は「逆方向」に設定される。
【0049】
DMA連続転送フレーム数レジスタ130は、特殊再生転送時における連続フレーム数を設定するためのものであり、DMA転送スキップフレーム数レジスタ132は、特殊再生転送時におけるスキップフレーム数を設定するためのものである。「連続フレーム数」と「スキップフレーム数」は、特殊再生の種類(早送りか早戻しか、倍率など)に応じて異なる。例えば、2倍早送り再生または2倍早戻し再生のときに、「1フレーム再生、1フレーム破棄」を行う場合は、「連続フレーム数」は「1」となり、「スキップフレーム数」は「1」となる。
【0050】
DMA転送部110における上述の各レジスタのうち、DMA転送停止アドレスレジスタ114、該レジスタに対する設定、設定内容に応じたDMA転送部110の動作などは、例えば図14に示すオーディオ再生装置におけるDMA転送停止アドレスレジスタ9と同様であり、本明細書において詳細な説明を省略する。
【0051】
また、フェード対象設定レジスタ124は、後述するスキップ前後においてプロセッサBによりフェードをかけるデコード後データのサイズを設定するためのものであり、DMA転送部110は、設定されたサイズ分フェードをかける。分かりやすいように、後にプロセッサBとDMA転送部110の動作を具体的に説明する際に、フェード対象設定レジスタ124に関連する説明を省略する。
【0052】
他の各レジスタについては、後にさらに詳細に説明する。
【0053】
PCM104は、DMA転送部110から転送されたデコード後データをDAC106に出力する。
DAC106は、PCM104から入力されたデコード後データをアナログ信号に変換して外部のスピーカ等に出力する。
【0054】
切り換えスイッチ108は、DMA転送部110からのDMA転送完了割り込み信号Sの出力先をプロセッサAとプロセッサB間で切り換えるものであり、プロセッサAからの制御信号CTR、DMA転送部110からのDMA転送完了割り込み信号Sをそれぞれ入力とする。なお、切り換えスイッチ108がプロセッサAとプロセッサBに出力したDMA転送完了割り込み信号Sを夫々「DMA転送完了割り込み信号SA」と「DMA転送完了割り込み信号SB」という。
【0055】
フレーム情報テーブル140は、DMA転送する各フレームの先頭アドレスと、該フレームの番号とを対応付けて記憶するものである。フレーム情報テーブル140は、プロセッサBからDMA転送する各フレームの先頭アドレスを入力し、DMA転送部110にDMA転送する各フレームの先頭アドレスを出力する。また、フレーム情報テーブル140は、テーブルの最後(EOS)には、「最後のフレームの終端アドレス+1」を格納する。この「先頭アドレス」、「終端アドレス」とは、メモリ102における当該フレームの先頭アドレス、終端アドレスを意味する。
【0056】
図2は、オーディオ再生装置100におけるプロセッサAの動作例を示すフローチャートである。プロセッサAは、外部からの(例えばユーザにより入力された)指示信号INSや、切り換えスイッチ108を介したDMA転送部110からのDMA転送完了割り込み信号SAにより起動され、プロセッサBの電源をON状態にする(S100)。
【0057】
その後、プロセッサAは、起動要因に応じた制御を行う(S101〜)。ここで、例として、プロセッサAの起動要因がA1〜A5のいずれか1つであるとする。「要因A1」は、切り換えスイッチ108を介したDMA転送部110からのDMA転送完了割り込み信号SAの受信である。「要因A2」は、早送りを指示する指示信号INSの受信であり、「要因A3」は、早戻しを指示する指示信号INSの受信である。また、「要因A4」は、早送りの解除を示す指示信号INSの受信であり、「要因A5」は、早戻しの解除を示す指示信号INSの受信である。
【0058】
起動要因がDMA転送完了割り込み信号SAであれば、プロセッサAは、ステップS102に進み、プロセッサBに対してデコードを要求する要求指示信号REQを出力する(S101:要因A1、S102)。
【0059】
起動要因が早送りを指示する指示信号INSであれば、プロセッサAは、ステップS103に進み、プロセッサBに対して早送りを要求する要求指示信号REQを出力する(S101:要因A2、S103)。
【0060】
起動要因が早戻しを指示する指示信号INSであれば、プロセッサAは、ステップS104に進み、プロセッサBに対して早戻しを要求する要求指示信号REQを出力する(S101:要因A3、S104)。
【0061】
起動要因が早送りまたは早戻しの解除を示す指示信号INSであれば、プロセッサAは、ステップS105に進み、プロセッサBに対して特殊再生の解除を要求する要求指示信号REQを出力する(S101:要因A4またはA5、S105)。
【0062】
プロセッサAから要求指示信号REQを受信したプロセッサBは、要求指示信号REQにより指示された処理を完了すると、処理の完了を通知するレスポンス信号RESを出力する。プロセッサAは、要求指示信号REQの出力後、プロセッサBからの処理の完了を通知するレスポンス信号RESを待つ(S106:No、S106〜)。当該レスポンス信号RESを受信すると、プロセッサAは、プロセッサBの電源をOFF状態にする(S107)。
【0063】
図3は、オーディオ再生装置100におけるプロセッサBがプロセッサAにより起動されてから電源OFFされるまでの動作例を示すフローチャートであり、図2に示すプロセッサAの動作例に対応する。
【0064】
プロセッサBは、プロセッサAからの要求指示信号REQにより起動されると、起動要因に応じた動作を行う(S200〜)。ここで、プロセッサBの起動要因が要因B1〜B4の4つであるとする。要因B1は、デコードを要求する要求指示信号REQの受信であり、プロセッサAの要因A1(DMA転送完了割り込み信号SA)に対応する。要因B2は、早送りを要求する要求指示信号REQの受信であり、プロセッサAの要因A2(早送りを指示する指示信号INS)に対応する。要因B3は、早戻しを要求する要求指示信号REQの受信であり、プロセッサAの要因A3(早戻しを指示する指示信号INS)に対応する。また、要因B4は、特殊再生の解除を示す要求指示信号REQであり、プロセッサAの要因A4とA5(早送りと早戻しの解除を指示する指示信号INS)に対応する。ここで、要因毎にステップS200以降の処理を説明する。
【0065】
<ステップS200:要因B1>
この場合、プロセッサAからの要求指示信号REQは、デコードを要求するものである。そのため、プロセッサBは、ステップS201に進み、フレームDxxをデコードする(S201)。なお、このフレームDxxは、後述するステップS205でプロセッサBが更新したフレーム番号に対応するフレームである。
【0066】
次に、プロセッサBは、ステップS201でフレームDxxをデコードして得たデコード後データをメモリ102に格納できるか否かを判断、格納できる場合にはステップS203に進み(S202:Yes、S203)、格納できない場合にはステップS206に進む(S202:No、S206)。
【0067】
ステップS203において、プロセッサBは、フレームDxxのデコード後データをメモリ102に格納する。そして、ステップS203でメモリ102に格納したフレームDxxのデコード後データの先頭アドレスをフレーム情報テーブル140に格納する(S204)。前述した通り、先頭アドレスは、当該フレームのデコード後データの先頭がメモリ102におけるアドレスを意味する。
【0068】
また、プロセッサBは、フレームDxxのデコード後データをメモリ102に格納すると、次にデコードすべきフレームの番号を更新して(S205)、ステップS201に戻る。前述したように、プロセッサBは、ステップS201でこのフレームの番号に対応するフレームすなわちフレームDxxのデコードをする。
【0069】
ステップS202において、フレームDxxのデコード後データがメモリ102に格納できないと判断した場合に、プロセッサBは、EOS情報をフレーム情報テーブル140に格納する(S206)。なお、EOS情報は、フレーム情報テーブル140の最後を示す情報であり、前述したように、プロセッサBが最後にメモリ102に格納したデコード後データの終端アドレスに「1」を足した値である。
【0070】
すなわち、プロセッサBは、デコード後データがメモリ102に格納できる限り、フレームを順次デコードしてメモリ102に格納すると共に、各フレームのデコード後データの先頭アドレスをフレーム情報テーブル140に格納する。そして、デコード後データがメモリ102に格納できなくなると、プロセッサBは、EOS情報をフレーム情報テーブル140に格納する。
【0071】
フレーム情報テーブル140にEOS情報を格納すると、プロセッサBは、DMA転送フレーム情報として、フレーム情報テーブル140に格納された各先頭アドレスのうちの、最も先頭のフレームの先頭アドレスをDMA転送フレーム情報設定レジスタ120に設定し、DMA転送部110がDMA転送中ではなければ、DMA転送部110にDMA転送を開始させる(S207)。
【0072】
そして、プロセッサBは、デコードに関する処理の完了を通知するレスポンス信号RESをプロセッサAに出力する(S208)。図2のときに説明したように、プロセッサAは、このレスポンス信号RESを受信すると、プロセッサBの電源をOFF状態にする(図2におけるS107)。
【0073】
<ステップS200:要因B2>
この場合、プロセッサAからの要求指示信号REQは、早送りを要求するものである。そのため、プロセッサBは、ステップS209に進み、DMA転送中フレーム番号レジスタ118の内容を読み出し、現在DMA転送中のフレームのフレーム番号を取得する(S209)。
【0074】
そして、プロセッサBは、DMA転送方向レジスタ128、DMA連続転送フレーム数レジスタ130、DMA転送スキップフレーム数レジスタ132を設定する(S210)。具体的には、DMA転送方向レジスタ128に「順方向」を設定する。また、DMA連続転送フレーム数レジスタ130に連続転送フレーム数を設定し、DMA転送スキップフレーム数レジスタ132にスキップフレーム数を設定する。これらのフレーム数は、プロセッサAが送った早送りを要求する要求指示信号REQにより指定されるか、プロセッサBが要求指示信号REQ信号が示す特殊再生の種類に応じて設定される。
【0075】
次いで、プロセッサBは、ステップS209で取得したフレーム番号(現在転送中のフレーム番号)を元に、DMA転送切り換えフレーム番号レジスタ126を設定する(S211)。
【0076】
そして、プロセッサBは、早送りに関する処理の完了を通知するレスポンス信号RESをプロセッサAに出力する(S208)。上述したように、プロセッサAは、レスポンス信号RESを受信すると、プロセッサBの電源をOFF状態にする(図2におけるS107)。
【0077】
<ステップS200:要因B3>
この場合、プロセッサAからの要求指示信号REQは、早戻しを要求するものである。そのため、プロセッサBは、ステップS213に進み、DMA転送中フレーム番号レジスタ118の内容を読み出し、現在DMA転送中のフレームのフレーム番号を取得する(S213)。
【0078】
そして、プロセッサBは、DMA転送方向レジスタ128、DMA連続転送フレーム数レジスタ130、DMA転送スキップフレーム数レジスタ132を設定する(S214)。具体的には、DMA転送方向レジスタ128に「逆方向」を設定する。また、DMA連続転送フレーム数レジスタ130に連続転送フレーム数を設定し、DMA転送スキップフレーム数レジスタ132にスキップフレーム数を設定する。
【0079】
次いで、プロセッサBは、ステップS213で取得したフレーム番号(現在転送中のフレーム番号)を元に、DMA転送切り換えフレーム番号レジスタ126を設定する(S215)。
【0080】
そして、プロセッサBは、早戻しに関する処理の完了を通知するレスポンス信号RESをプロセッサAに出力する(S208)。上述したように、プロセッサAは、レスポンス信号RESを受信すると、プロセッサBの電源をOFF状態にする(図2におけるS107)。
【0081】
<ステップS200:要因B4>
この場合、プロセッサAからの要求指示信号REQは、特殊再生の解除を要求するものである。そのため、プロセッサBは、ステップS217に進み、DMA転送中フレーム番号レジスタ118の内容を読み出し、現在DMA転送中のフレームのフレーム番号を取得する(S217)。
【0082】
そして、プロセッサBは、DMA転送方向レジスタ128、DMA連続転送フレーム数レジスタ130、DMA転送スキップフレーム数レジスタ132を通常再生時の設定に戻す(S218)。具体的には、DMA転送方向レジスタ128に「順方向」を設定する。また、DMA連続転送フレーム数レジスタ130とDMA転送スキップフレーム数レジスタ132に「0」を設定する。
【0083】
次いで、プロセッサBは、ステップS217で取得したフレーム番号(現在転送中のフレーム番号)を元に、DMA転送切り換えフレーム番号レジスタ126を設定する(S219)。
【0084】
そして、プロセッサBは、特殊再生の解除に関する処理の完了を通知するレスポンス信号RESをプロセッサAに出力する(S208)。上述したように、プロセッサAは、レスポンス信号RESを受信すると、プロセッサBの電源をOFF状態にする(図2におけるS107)。
【0085】
ここで、具体例を用いて、通常再生から早送りに切り換える場合について、メモリ102、フレーム情報テーブル140の内容、DMA転送部110内のレジスタの内容の遷移を説明する。
【0086】
<通常再生時>
前述したように、この場合、プロセッサBは、プロセッサAからの要求指示信号REQによりデコードを開始し、図3におけるステップS201〜S208までの処理をする。図4〜図9は、この場合において、プロセッサBの処理に伴って、メモリ102に格納されたデコード後データ、フレーム情報テーブル140、DMA転送部110内のレジスタの内容の遷移を示す。なお、図4以降の各図面における「0x」は、16進数であることを示し、ステップ番号は、図3における当該ステップを意味する。
【0087】
図4に示すように、プロセッサBは、まず、フレームD1をデコードしてそのデコード後データをメモリ102の「0x10000000」番地に書き込む(S203)と共に、当該番地のアドレス(フレームD1の先頭アドレス)「0x10000000」をフレーム情報テーブル140のF1行目に格納する(S204)。このとき、メモリ102がまだ空容量があるため、プロセッサBは、次のフレーム(フレームD2)のデコードを行う。
【0088】
図5は、フレームD1の次のフレーム(フレームD2)についてプロセッサBがデコードした後のメモリ102とフレーム情報テーブル140の内容を示す。プロセッサBは、フレームD2をデコードしてそのデコード後データをメモリ102の「0x10001000」番地に書き込む(S203)と共に、当該番地のアドレス「0x10001000」をフレーム情報テーブル140のF2行目に格納する(S204)。以降、このような処理を繰り返す(S202:Yes、S203〜)。
【0089】
図6は、プロセッサBがフレームDnをデコードした後のメモリ102とフレーム情報テーブル140の内容を示す。なお、この例では、フレームDnのデコード後データを格納すると、メモリ102が一杯になっている。
【0090】
図示のように、プロセッサBは、フレームDnのデコード後データをメモリ102の「0x10100000」番地に書き込む(S203)と共に、当該番地のアドレス「0x10100000」をフレーム情報テーブル140のFn行目に格納する(S204)と共に、EOS情報として、「フレームDnの終端アドレス+1(0x10101000)」を、フレーム情報テーブル140のFn行目の次の行であるEOS行目に格納する(S206)。
【0091】
そして、プロセッサBは、DMA転送部110にDMA転送を開始させるために、DMA転送部110に対して設定を行う(S207)。具体的には、プロセッサBは、DMA転送フレーム情報設定レジスタ120にフレーム情報テーブル140の先頭であるF1行目を設定し、DMA転送中アドレスレジスタ112にメモリ102の先頭アドレスである「0x10000000」番地を設定し、DMA転送サイズレジスタ116にフレーム情報テーブル140のEOS行目に格納された値とF1行目に格納された値の差分を算出してDMA転送サイズを設定する。これにて、DMA転送部110によるDMA転送が開始される。
【0092】
図7は、DMA転送開始直後の メモリ102の内容と、DMA転送部110内の各レジスタの態様を示す。図示のように、このとき、DMA転送中アドレスレジスタ112はメモリ102の先頭であるフレームD1のデコード後データの先頭を指しており、DMA転送フレーム情報参照レジスタ122はフレーム情報テーブル140の先頭(F1行目)を指している。また、DMA転送サイズレジスタ116にはメモリ102に格納したデコード後データの合計サイズ、すなわちフレーム情報テーブル140のEOS行目に格納された値とF1行目に格納された値の差分が保持されており、DMA転送中フレーム番号レジスタ118にはメモリ102の1番目に格納されたフレーム(フレームD1)のデコード後データを転送中であることを示す1が保持されている。
【0093】
図8は、(n−1)番目までのフレームのDMA転送が完了した時(即ちフレームDnのDMA転送が開始する時)のメモリ102の内容と、DMA転送部110内の各レジスタの態様を示す。図示のように、このとき、DMA転送中アドレスレジスタ112はフレームDnのデコード後データの先頭を指しており、DMA転送フレーム情報参照レジスタ122はフレーム情報テーブル140のFn行目を指している。また、DMA転送サイズレジスタ116にはDMA転送残量、すなわちフレーム情報テーブル140のEOS行目に格納された値とFn行目に格納された値の差分が保持されており、DMA転送中フレーム番号レジスタ118にはメモリ102のn番目に格納されたフレーム(フレームDn)のデコード後データを転送中であることを示すnが保持されている。
【0094】
図9は、今回のDMA転送完了時、すなわちフレームDnの転送が完了した時のメモリ102の内容と、DMA転送部110内の各レジスタの態様を示す。図示のように、このとき、DMA転送中アドレスレジスタ112はメモリ102の終端を指しており、DMA転送フレーム情報参照レジスタ122はフレーム情報テーブル140のEOS行目を指している。また、DMA転送が完了したため、DMA転送サイズレジスタ116とDMAフレーム番号レジスタ118は「0」に初期化されている。
【0095】
通常再生が続く限り、図4〜図9を用いて説明した処理が繰り返される。ここで、通常再生の途中で早送りを要求する要求指示信号REQを受信した場合を説明する。例として、早送りの要求指示信号REQの受信直前の通常再生中において、メモリ102、フレーム情報テーブル140、DMA転送部110内のレジスタの内容は、図10に示すようになっているとする。
【0096】
図10に示す例において、このとき、メモリ102において、フレームD1〜フレームD40のデコード後データが格納されており、これらのデータのDMA転送がなされている。
【0097】
また、DMA転送中のデコード後データがメモリ102に3番目に格納されたフレームD3のデコード後データであるため、DMA転送中アドレスレジスタ112は、フレームD3を指している。そのため、DMA転送中フレーム番号レジスタ118には、メモリ102に格納されている3番目のデコード後データを転送中であることを示す「3」が保持される。同様に、DMA転送フレーム情報参照レジスタ122は、フレーム情報テーブル140のF3行目を指している。なお、フレームD3について、既に転送された量は、αである。
【0098】
また、DMA転送サイズレジスタ116には、DMA転送残量が格納されている。図示のように、このときのDMA転送残量は、フレーム情報テーブル140のEOS行目に格納された値から、フレーム情報テーブル140のF3行目に格納された値と、フレームD3のデコード後データの既にDMA転送が完了した量αとを減算した値「Δ(EOS−F3)−α」である。
【0099】
DMA転送部110における他のレジスタは、通常再生時の設定になっている。図示のように、DMA転送切り換えフレーム番号レジスタ126は「0」に、DMA転送方向レジスタ128は「順方向」に、DMA連続転送フレーム数レジスタ130は「0」に、DMA転送スキップフレーム数レジスタ132は「0」になっている。
【0100】
図11は、図10に示す状態のときにプロセッサAがプロセッサBに早送り再生を要求する(1フレーム再生、1フレーム破棄)要求指示信号REQを送信した場合(図2におけるステップS103、図3におけるステップS200:要因B2)におけるプロセッサB及びDMA転送部110の動作を説明するための図である。
【0101】
このとき、まず、プロセッサBは、DMA転送中フレーム番号レジスタ118を参照し、メモリ102に3番目に格納されているフレームD3が転送中であることを認識する(図3におけるステップS209)。
【0102】
そして、プロセッサBは、DMA転送方向レジスタ128、DMA連続転送フレーム数レジスタ130、DMA転送スキップフレーム数レジスタ132を設定する(図3におけるステップS210)。具体的には、図11に示すように、DMA転送方向レジスタ128に「順方向」を、DMA連続転送フレーム数レジスタ130に「1フレーム再生」を示す「1」を、DMA転送スキップフレーム数レジスタ132に「1フレーム破棄」を示す「1」を設定する。なお、通常再生時においてもDMA転送方向レジスタ128の設定が「順方向」になっているため、プロセッサBは、ここでは、DMA転送方向レジスタ128の設定を維持する。
【0103】
さらに、プロセッサBは、図3におけるステップS209で認識したフレーム番号(3番目)に基づいて、早送り再生に切り換わるフレーム番号である「4」をDMA転送切り換えフレーム番号レジスタ126に設定する(図3におけるステップS211)。
【0104】
DMA転送部110は、DMA転送切り換えフレーム番号レジスタ126に設定されたフレーム番号に対応するフレーム(ここではフレームD4)のDMA転送が完了すると、早送りのためのDMA転送に切り換わる。図12を参照して説明する。
【0105】
フレームD4のDMA転送が完了すると、DMA転送中アドレスレジスタ112は、フレームD4の終端アドレスに到達する。引き続き通常再生の場合、この後、DMA転送中フレーム番号レジスタ118はフレームD5に対応する「5」を指し、DMA転送フレーム情報参照レジスタ122はフレーム情報テーブル140のF5行目を指すようになる。
【0106】
しかし、DMA転送切り換えフレーム番号レジスタ126に「4」が格納されており、DMA転送方向レジスタ128に「順方向」が格納されており、DMA転送スキップフレーム数レジスタ132には「1」が夫々格納されている。そのため、図12に示すように、DMA転送中アドレスレジスタ112、DMA転送中フレーム番号レジスタ118、DMA転送フレーム情報参照レジスタ122は、順方向に次の1フレーム(ここではフレームD5)の分をスキップして、夫々、フレームD6の先頭アドレス、「6」、フレーム情報テーブル140のF6行目に切り換わる。
【0107】
図13は、早送り再生中におけるDMA転送部110内の各レジスタの状態の例を示す。この例は、図12の状態から、フレームD5をスキップしてフレームD6のDMA転送が行われた後の状態である。DMA連続転送フレーム数レジスタ130の値が「1」であるため、当該1フレーム(フレームD6)のDMA転送が完了すると、DMA転送中アドレスレジスタ112は、再びDMA転送方向レジスタ128が示す順方向に、DMA転送スキップフレーム数レジスタ132に格納された「1」に従って1つのフレーム(フレームD7)をスキップして、フレームD8の先頭アドレスを指すようになる。同様に、DMA転送フレーム情報参照レジスタ122も、フレーム情報テーブル140のF8行目を指し、DMA転送中フレーム番号レジスタ118は、フレームD8の番号を示す「8」の値になる。
【0108】
以上、通常再生から早送り再生に切り換わる場合について詳細に説明した。通常再生から早戻し再生に切り換わる場合については、DMA転送方向レジスタ128の設定が「逆方向」になる点を除き、プロセッサB及びDMA転送部110による処理の流れが通常再生から早送り再生に切り換わる場合と同様であるので、ここで詳細な説明を省略する。
【0109】
また、特殊再生(早送り再生または早戻し再生)を解除して通常再生に戻る場合には、各レジスタの設定を通常再生時の値に戻すようにすればよい。
【0110】
このように、本実施の形態のオーディオ再生装置100は、通常再生中に特殊再生が指示されたときに、特殊再生の種類(早送り再生か早戻し再生か、倍率など)に応じ方向と連続フレーム数とスキップフレーム数で、メモリ102に格納されたデコード後データに対して、スキップフレーム数の分のフレームのデコード後データのスキップと、連続フレーム数の分のフレームのデコード後データの連続転送とを交互にする特殊再生転送を行う。こうすることにより、既にメモリ102に格納されている通常再生用のデコード後データを特殊再生に利用することができ、オーディオ再生装置の消費電力を抑制すると共に、通常再生と特殊再生を効率良く切り換えることができる。
【0111】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【0112】
例えば、分かりやすいように、本実施の形態のオーディオ再生装置に対して、DMA転送予約機能の説明をしていないが、本発明にかかる技術は、DMA転送予約を備えたオーディオ再生装置にも適用することができる。この場合、プロセッサBが、DMA転送1回分のデコード後データをメモリ102に格納した際に、DMA転送部110がDMA転送中であれば、DMA転送を予約するようにすればよい。また、DMA転送部110は、現在のDMA転送が完了したときに、DMA転送が予約されていれば、予約されたDMA転送をする。
【符号の説明】
【0113】
1 プロセッサ
2 プロセッサ
3 メモリ
4 DMA転送部
5 PCM
6 DAコンバータ(DAC)
7 割り込み方向切り換えスイッチ
8 DMA転送中アドレスレジスタ
9 DMA転送停止アドレスレジスタ
10 割り込み信号
11 割り込み信号
12 割り込み信号切り換え制御信号
13 プロセッサ1の要求
14 プロセッサ2のレスポンス
51 DMA転送中データ
52 DMA転送予約データ
53 早送りデータ
54 DMA停止期間
100 オーディオ再生装置
A プロセッサ
B プロセッサ
102 メモリ
104 PCM
106 DAC
108 切り換えスイッチ
110 DMA転送部
112 DMA転送中アドレスレジスタ
114 DMA転送停止アドレスレジスタ
116 DMA転送サイズレジスタ
118 DMA転送中フレーム番号レジスタ
120 DMA転送フレーム情報設定レジスタ
122 DMA転送フレーム情報参照レジスタ
124 フェード対象設定レジスタ
126 DMA転送切り換えフレーム番号レジスタ
128 DMA転送方向レジスタ
130 DMA連続転送フレーム数レジスタ
132 DMA転送スキップフレーム数レジスタ
140 フレーム情報テーブル
CTR 制御信号
INS 指示信号
REQ 要求指示信号
RES レスポンス信号
S DMA転送完了割り込み信号
SA DMA転送完了割り込み信号
SB DMA転送完了割り込み信号

【特許請求の範囲】
【請求項1】
第1のプロセッサと、
前記第1のプロセッサにより電源のオン・オフが制御され、圧縮された音声データをデコードする第2のプロセッサと、
前記第2のプロセッサによりデコードされたデコード後データを格納するメモリと、
通常再生時において、前記メモリに格納されたデコード後データを格納順に転送する転送部とを備え、
前記DMA転送部は、
通常再生時のDMA転送中に、通常再生と異なる特殊再生が要求されたときに、
前記特殊再生の種類に応じた方向と連続フレーム数とスキップフレーム数で、前記メモリに格納されたデコード後データに対して、前記スキップフレーム数の分のフレームのデコード後データのスキップと、前記連続フレーム数の分のフレームのデコード後データの連続転送とを交互にする特殊再生転送を行うことを特徴とするオーディオ再生装置。
【請求項2】
前記メモリに格納された各フレームの番号と、該フレームの先頭アドレスとを対応付けて格納するフレーム情報テーブルをさらに備え、
前記DMA転送部は、
現在転送中のデコード後データの前記メモリにおけるアドレスを格納するDMA転送中アドレスレジスタと、
前記DMA転送中アドレスレジスタと前記フレーム情報テーブルとを参照して、現在転送中のフレームの番号を取得して格納するDMA転送中フレーム番号レジスタとをさらに有し、
前記DMA転送中フレーム番号レジスタと、前記フレーム情報テーブルとを参照して通常再生のための転送から前記特殊再生転送に切り換えることを特徴とする請求項1に記載のオーディオ再生装置。
【請求項3】
通常再生のための転送と前記特殊再生転送の切り換えが行われるフレームの番号を設定するためのDMA転送切り換えフレーム番号レジスタをさらに有し、
前記第2のプロセッサは、前記切り換えのときに、前記DMA転送中フレーム番号レジスタに格納されたフレームの番号を元に、前記DMA転送切り換えフレーム番号レジスタを設定し、
前記DMA転送部は、前記DMA転送切り換えフレーム番号レジスタに設定された番号に対応するフレームのデコード後データの転送完了時から前記通常再生のための転送と前記特殊再生転送の切換えを行うことを特徴とする請求項2に記載のオーディオ再生装置。
【請求項4】
前記方向と、前記連続フレーム数と、前記スキップフレーム数を夫々設定するためのDMA転送方向レジスタと、DMA連続転送フレーム数レジスタと、DMA転送スキップフレーム数レジスタをさらに備え、
前記DMA転送部は、前記DMA転送方向レジスタと、前記DMA連続転送フレーム数レジスタと、前記DMA転送スキップフレーム数レジスタとに基づいて前記特殊再生転送を行うことを特徴とする請求項1〜3のいずれか1項に記載のオーディオ再生装置。
【請求項5】
第1のプロセッサで電源のオン・オフが制御される第2のプロセッサにより、圧縮された音声データをデコードし、
デコードされたデコード後データをメモリに格納し、
通常再生時において前記メモリに格納されたデコード後データを格納順にDMA転送し、
通常再生時のDMA転送中に、通常再生と異なる特殊再生が要求されたときに、前記特殊再生の種類に応じた方向と連続フレーム数とスキップフレーム数で、前記メモリに格納されたデコード後データに対して、前記スキップフレーム数の分のフレームのデコード後データのスキップと、前記連続フレーム数の分のフレームのデコード後データの連続転送とを交互にする特殊再生転送を行うことを特徴とするオーディオ再生方法。

【図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

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−3692(P2013−3692A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−131827(P2011−131827)
【出願日】平成23年6月14日(2011.6.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.INS
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】