(57)【特許請求の範囲】
【請求項１】
メディアデータを処理するためのデジタル処理集積回路であって、
該集積回路が、
前記集積回路内においてリング構成により配置され、サンプルロックされたレートに同期した複数の異なるサンプリングレートにより前記メディアデータを通信するデータ経路と、
前記データ経路内に配置され、前記メディアデータを処理するための複数の処理モジュールと、
ルーティングコントローラと、
前記集積回路の外部にある装置と通信するデジタルインターフェースと、
を含み、
前記データ経路が、隣接する前記処理モジュールの間においてデータを通信するための複数の別体部分であって、前記隣接する処理モジュールを直列に結合し、該隣接する処理モジュールの間において前記メディアデータを通信する複数の別体部分を含み、
前記ルーティングコントローラが、前記データ経路の前記別体部分の周りにある前記隣接する処理モジュールの間においてタイムスロット内に前記メディアデータをクロックして、ソース処理モジュールからターゲット処理モジュールへの通信を与えるように、構成されており、
前記複数の異なるサンプリングレートの各々について利用可能な前記タイムスロットの数が、前記複数の異なるサンプリングレートの各々に反比例しており、
前記処理モジュールの各々が、固定された出力タイムスロットと、変化させることが可能な入力タイムスロットと、を割り当てられている、
ことを特徴とするデジタル処理集積回路。
【請求項２】
前記データ経路の前記別体部分が複数のオーディオチャネルを通信するための時分割多重方式バスを具備する、ことを特徴とする請求項１に記載の装置。
【請求項３】
各処理モジュールが、
前記データ経路から処理するために、前記処理モジュールに割り当てられたデータ経路の少なくとも１つのタイムスロットに与えられるメディアデータを選択的に抽出し、
処理されたメディアデータを前記割り当てられたタイムスロットに選択的に挿入し、
記処理モジュールによって受け取られ、前記データ経路に沿って変化しない他の処理装置に関連付けられるメディアデータを中継する、ように構成される、
ことを特徴とする請求項１に記載の集積回路。
【請求項４】
前記データ経路がオーディオデータと処理制御データを伝送し、前記処理制御データは前記オーディオデータ上で動作する、フィルタパラメータ、時間遅延パラメータ、ミキシングパラメータ、及びサンプルレート変換パラメータのうちの少なくとも１つを含むことを特徴とする請求項１に記載の集積回路。
【請求項５】
前記データ経路が制御データ経路とメディアデータ経路とを含み、前記制御データ経路はメディアデータ経路は、時間分割多重であり前記リング構成の前記複数のモジュールを相互に接続するように配置されており、前記メディアデータが前記ソース処理モジュールから前記ターゲットモジュールに伝達されている間、任意の１つ以上の処理モジュールはメディアデータを前記メディアデータ経路に付加しあるいは、前記メディアデータ経路から受けとることができるようになっていることを特徴とする請求項１に記載の集積回路。
【請求項６】
前記データ経路が、
時間分割多重タイムスロットによって定義される複数のメディアチャンネルと、各メディアチャンネルを前記複数の処理モジュールに対して識別するためにチャンネル識別データを有するチャンネル識別経路とを備えていることを特徴とする請求項１に記載の集積回路。
【請求項７】
前記データ経路が、処理制御データを少なくとも１つの処理モジュールに伝達するための処理制御経路を有しており、前記制御データ経路は、時間分割多重タイムスロットによって定義された複数の制御チャンネルを含んでおり、
前記チャンネル識別経路は前記メディアチャンネルと前記制御チャンネルとの両方を識別するようになっていることを特徴とする請求項６に記載の集積回路。
【請求項８】
前記データ経路が、前記集積回路から隔離された外部メモリと前記集積回路の複数の処理モジュールの少なくとも１つとの間でデータを伝達するための転送バスを含むことを特徴とする請求項１に記載の集積回路。
【請求項９】
前記複数の処理装置がデジタル遅延ラインモジュール、サンプルレートコンバータモジュール、フィルターモジュール、ミキサーモジュール、デジタルシグナル処理モジュール、及びデジタル入出力モジュールからなるグループから選択されたデジタルオーディオ処理モジュールでありことを特徴とする請求項１に記載の集積回路。
【請求項１０】
各処理モジュールが第１の隣接処理モジュールによって送信されたデータの受信する入力と、第２の隣接処理モジュールにデータを送信するための出力を有しており、前記リング構成の処理モジュールの直列的相互接続を許容するようになっている請求項１に記載の集積回路。
【請求項１１】
デジタルメディア処理集積回路における複数の処理モジュールにおいてメディアデータを処理する方法であって、
該方法が、
ソース処理モジュールからのメディアデータが前記複数の処理モジュールのうちのターゲット処理モジュールに受け取られるまで、リング構成により前記複数の処理モジュールを相互接続するデータ経路に沿って、前記集積回路内の各処理モジュールが、該処理モジュールから隣接する処理モジュールにまで前記メディアデータを伝達する段階、
を含み、
前記メディアデータが、サンプルロックされたレートに同期した複数の異なるサンプリングレートにより通信されるようになっており、
前記方法が、さらに、
前記データ経路と前記集積回路の外部にある装置との間でメディアデータを伝達する段階を含み、
前記処理モジュールが、前記データ経路内に配置され、かつ、直列に結合され、
前記メディアデータが、前記データ経路の別体部分の周りにある隣接する前記処理モジュールの間においてタイムスロット内にクロックされることにより、前記ソース処理モジュールから前記ターゲット処理モジュールへの通信が与えられており、
前記複数の異なるサンプリングレートの各々について利用可能な前記タイムスロットの数が、前記複数の異なるサンプリングレートの各々に反比例しており、
前記処理モジュールの各々が、固定された出力タイムスロットと、変化させることが可能な入力タイムスロットと、を割り当てられている、
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタルメディアデータを処理する分野に関する。更に具体的には、本発明は、複数の処理モジュール間でメディアデータを伝達するための方法、及びメディアデータを処理するためのデジタル処理装置に関する。
【背景技術】
【０００２】
従来のオーディオ処理装置は、フィルタ構成要素、遅延構成要素、サンプルレートコンバータ（ＳＲＣ）、及びデジタル信号プロセッサ（ＤＳＰ）などの種々の処理構成要素を相互接続する固定及び予め決められた（ハードワイヤード）構成を使用する。しかしながら、このような構成は、ハードワイヤード構成が可能とする方式以外では、処理構成要素の接続を要求する特定アルゴリズムを実行することができない場合がある。種々の処理構成要素が少しでも通信できる場合には、これらはＤＳＰを介して互いに通信することができるだけであることから、通信「ボトルネック」を生じる可能性もある。従ってＤＳＰは、該ＤＳＰがデータを処理することが必要では無い場合でさえも、全てのデータが伝達されるハブとして機能する。更に、信号は、アルゴリズムがこの構成要素を必要としない場合でさえも常時特定の処理構成要素を通過することから、ハードワイヤード構成は処理電力を無駄にする結果となる場合が多い。ハードワイヤード構成が提供するよりも多くの処理要素をアルゴリズムが必要とする場合には、このアルゴリズムを実行することはできない。従って、このような構成は装置性能に支障をきたす可能性があることを理解されたい。
【発明の開示】
【課題を解決するための手段】
【０００３】
本発明によれば、メディアデータを処理するためのデジタル処理装置及び方法が提供され、この装置は、メディアデータを処理するための複数の処理モジュールと、処理モジュール間でデータを伝達するためのデータ経路とを含み、データ経路はリング構成で配置される。
【０００４】
本発明は、機械によって実行される場合に、本明細書に説明された方法の何れかを機械に実行させることができる命令シーケンスを具現化する機械読み取り可能なメディアに適用される。
【０００５】
本発明の他の特徴は、添付の図面及び以下の詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【０００６】
次に、例証として添付の図面を参照しながら本発明を説明する。
【０００７】
デジタルメディアデータを処理するための方法及び装置について説明する。以下の記述では、本発明の全体を理解するために説明の目的で多数の特定の詳細が示されている。しかしながら、これらの特定の詳細が無くとも本発明を実施することができることは当業者には明らかであろう。
【０００８】
図面を参照すると、参照番号１０は、一般に本発明による例示的なデジタル処理装置の概略ブロック図を示す。装置１０は、複数の処理モジュール、すなわち、デジタル信号処理（ＤＳＰ）モジュール１２、遅延モジュール１４、サンプルレートコンバータ（ＳＲＣ）モジュール１６、フィルタモジュール１８、及びミキサモジュール２０を含むものとして示されている。モジュール１２−２０は、リング構成で配置されたデータ経路２２により直列に相互接続され、このリング構成では、どの処理モジュールから他のどの処理モジュールへもデータがシーケンシャルに伝達される。従来のデジタル処理装置とは異なり、本発明による装置１０では、各モジュール１２−２０は、以下に詳細に説明するようにデータ経路２２に接続された他のどのモジュール１２−２０ともデータを伝達することができる。本発明の１つの実施形態において、データ経路２２は時分割多重化方式であり、ルーティング・コントローラが種々のモジュール１２−２０間のデータの伝達を制御している。更に、モジュール１２−２０は単に例示的なモジュールであり、別のモジュール（同様の或いは異なる処理機能を備えた）を装置１０に含むことができ、及び／又はモジュール２０の何れか１つ又はそれ以上を取り外して、例えば、他の何れかのモジュール１２−２０内に含むことができる点は理解されたい。
【０００９】
従って、１つの実施形態において、ルーティング・コントローラの制御によりモジュール１２−２０の何れもが、他のモジュール１２−２０の１つ又はそれ以上の何れともデータ通信を行なうことができる。その結果、デジタル処理装置１０によって処理されるデータは、様々なモジュール１２−２０間で柔軟に転送され、従来の装置の場合のように予め決められた経路に限定される必要は無い。モジュール１２−２０及び３４はまた、オーディオバス４６により自己にデータを返信することができることを理解されたい。従って、データに対して同じ処理モジュールによる反復処理を実行することができる。データ経路２２にデータを供給する処理モジュール１２−２０をソース処理モジュールとして捉えることができ、データを処理することになる特定の処理モジュール１２−２０を、目標又は宛先処理モジュールとして捉えることができる。処理モジュール１２−２０が処理済みデータを自己に返信することができる場合、オペレーションの１つのモードにおいて処理モジュール１２−２０は、ソース処理モジュール及び宛先処理モジュールの両方を定義することができる。従って、例えばフィルタモジュール１８は、出力又は処理データを別の処理のために自己に返信した後、別の処理モジュール１２−２０及び３４に送信することができるカスケード接続のフィルタ構成を形成することができる。
【００１０】
本発明をデジタルオーディオストリームの形式でのデジタル・メディア・ストリームの処理に関して説明するが、本発明は、例えば、デジタル・ビデオ・ストリーム又は同様のもの等の他のどのようなデジタル・メディア・ストリームの処理にも適用可能であることを認識されたい。
【００１１】
特に図２の図面を参照すると、参照番号３０は、一般に、本発明の別の実施形態によるデジタル処理装置を示す。装置３０は装置１０に類似しており、従って、他に指示しない限り同じ参照番号は、同じ又は類似の構成要素を示すのに使用される。
【００１２】
装置３０は、本明細書で既に説明されたモジュールとほぼ類似する、ＤＳＰモジュール１２、遅延モジュール１４、サンプルレートコンバータ（ＳＲＣ）モジュール１６、フィルタモジュール１８、及びミキサモジュール２０を含む。更に、装置３０は、オーディオメモリ転送モジュール３２及びデジタルオーディオ入出力（Ｉ／Ｏ）モジュール３４を含む。オーディオメモリ転送モジュール３２は、例えばコンピュータ装置（例えばパーソナルコンピュータ、すなわちＰＣ）のバスの一部を形成することができるインターフェイス・モジュール３８とバス３６により通信する。１つの実施形態において、インターフェイス・モジュール３８は、ブリッジ４０と、該ブリッジ４０を従来のＰＣバス４４に接続する２つのＰＣＩ−Ｘバスインターフェイス４２とを含む。デジタルＩ／Ｏモジュール３４は、デジタルオーディオ入力を受け取り、デジタルオーディオ出力を出力装置に供給することができる。装置１０の場合と同様に、装置３０は、モジュール１２、３４、３２及び１４−２０を直列に相互接続するデータ経路２２を含む。
【００１３】
装置３０のデータ経路２２は、オーディオデータ経路又はオーディオバス４６の例示的な形態であるメディアデータ経路と、パラメータバス４８の例示的な形態である処理制御経路とを含む。１つの実施形態において、オーディオバス４６とパラメータバス４８の両方は、種々の処理モジュール１２−２０、３２、３４間でデータが時分割多重化方式で通信されるリング構成で配置される。種々のモジュールがオーディオバス４６に沿って位置付けられると、オーディオデータは、中央ハブ（例えばＤＳＰ）を通したデータ転送を必要とすること無く、モジュール間で転送することができる。幾つかの実施形態において、装置３０は、インターフェイス・モジュール３８及びオーディオメモリ転送モジュール３２を介して外部コンピュータを処理モジュール１２−２０にインターフェイスする転送バス５０を含む。
【００１４】
データ経路２２（例えば、オーディオバス４６、パラメータバス４８、及び転送バス５０を含む）上のデータの転送を制御するために、幾つかの実施形態において、装置３０は、データ経路２２に沿うデータの転送を制御するルーティング・コントローラ５２（図３を参照）を含む。特に、参照番号５４で一般に示されるように、１つの実施形態において、ルーティング・コントローラ５２は、チップセレクト回線５６及びアドレス、書き込みデータ、並びに書き込み可能回線５８を介して各処理モジュール１２−２０、３２、３４へのデータの転送を制御する。各モジュール１２−２０、３２、３４は、読み込みデータ及び応答回線６０を介してルーティング・コントローラ５２にデータを伝達する。１つの実施形態において、ルーティング・コントローラ５２は、装置３０の種々の処理モジュール１２−２０、３２、３４をインターフェイスする全同期ハンドシェーク方式を使用するホストインターフェイスを定める。例えば、ルーティング・コントローラ５２は、応答信号が選択された処理モジュール１２−２０、３２、３４から受け取られるまでアクティブに保持されるチップセレクトを生成することができる。１つの実施形態において、ルーティング・コントローラ５２は、ホストアドレスの最上位ビットを復号し、これに応答して選択された処理モジュール１２−２０、３２、３４を使用可能にするチップセレクトを生成する。以下に詳細に説明されるように、各モジュール１２−２０、３２、３４は、有意にされるホストアドレスの残りの最下位ビットをローカルで復号して、これによりデータが転送されることになる特定のモジュール１２−２０、３２、３４を識別することができる。
【００１５】
図３の例示的なルーティング・コントローラ５２は、共通データバス５８を使用して、処理モジュール１２−２０、３２、３４の全てに対して、アドレス、書き込みデータ、及び書き込み可能データを供給することができる。しかしながら、各モジュール１２−２０、３２、３４は、データを読み込み、且つルーティング・コントローラ５２に肯定応答を供給するための専用読み込みデータ及び応答バス６０を含む。
【００１６】
本発明の１つの実施形態において、ＤＳＰモジュール１２は、モジュール１４−２０、３２、３４の各々に備えられたレジスタ及びランダムアクセスメモリ（ＲＡＭ）にＤＳＰモジュール１２がアクセスするような方式でルーティング・コントローラ５２にインターフェイスする。特に、図４に示されるように、ＤＳＰモジュール１２は、データバス６２、アドレスバス６４、応答回線６６、書き込み可能回線６８、要求回線７０、及びチップセレクト回線７２を介してルーティング・コントローラ５２と通信することができる。モジュール１４−２０、３２、３４に備えられたレジスタ及びＲＡＭにアクセスするために、ＤＳＰモジュール１２は、ルーティング・コントローラ５２に回線７０を介して要求を送信する。次いで、ルーティング・コントローラ５２は、応答回線６６を介して要求に応答し、その後要求された機能をアドレスバス６４及びデータバス６２を用いて実行することができる。
【００１７】
サンプルレートトラッカーをデジタルオーディオＩ／Ｏモジュール３４内に備える実施形態において、該モジュールはまた、ルーティング・コントローラ５２に接続され、これによりモジュール１２−２０、３２内のレジスタ及び／又はＲＡＭへアクセスすることができる。１つの実施形態において、ルーティング・コントローラ５２は、先着順優先方式を用いたホストプロセッサアクセスと同等のＤＳＰモジュール１２（及び、装備されている場合には１つ又はそれ以上のサンプルレートトラッカー）からの要求を処理する。しかしながら、要求が同時に到着した場合には、これらの要求をソートすることができる。例えば、ルーティング・コントローラ５２は最初にＤＳＰモジュール１２に要求を転送し、次いでデジタルオーディオＩ／Ｏモジュール３４に備えられているサンプルレートトラッカーに転送し、最後にホストプロセッサに要求を転送することができる。１つの実施形態において、装置３０は２つのベースアドレスレジスタを有し、１つはＩ／Ｏにマップされ、他方はメモリにマップされている。これらのレジスタの両方は同時にアクティブとすることができ、両方のアドレスレジスタは、装置３０が備えられているチップの同じ内部レジスタ及びメモリへのアクセスが可能である。
【００１８】
本発明の１つの実施形態において、オーディオバス４６は、時分割多重化方式のオーディオチャネルを提供する。各処理モジュール１２−２０、３２、３４は、該モジュールに割り当てられた固定出力タイムスロットと、プログラム可能な又は可変の入力タイムスロットを有することができる。従ってこの実施形態において、モジュール１２−２０、３２、３４は、オーディオバス４６に対して予め決められた同じタイムスロットにおいてデータを常時出力することができるが、ルーティング・コントローラ５２の制御によって、異なるタイムスロットにおいてデータを受け取ることができる。従って、各個々のモジュール１２−２０、３２、３４に関連する入力タイムスロットがプログラム可能である場合、データは柔軟な方式で種々のモジュール１２−２０、３２、３４間で転送することができる。以下に詳細に説明されるように、タイムスロットに関連するモジュール１２−２０、３２、３４を識別するために、チャネル識別バスを備えることができる。１つの実施形態において、チャネル識別バスは、ソース処理モジュール１２−２０、３２、３４を識別し、目標又は宛先処理モジュール１２−２０、３２、３４は、データが処理されることになるデータソースを識別するためのリストを含む。しかしながら、チャネル識別はまた、目標処理モジュール１２−２０、３２、３４をも識別することができる点を理解されたい。
【００１９】
幾つかの実施形態において、装置３０によってデジタルデータ（例えばデジタルオーディオデータ）を異なるサンプルレート（例えばＤＳＰモジュール１２によって設定されたサンプルレート）でオーディオバス４６に沿って通信することができる。例えば本発明の１つの実施形態において、４０９６のバッファチャネル又はタイムスロットをオーディオバス４６上に備えている。この結果、この例示的な構成において、オーディオバス４６は、４８ｋＨｚに１タイムスロット、９６ｋＨｚに２タイムスロット、１９２ｋＨｚに４タイムスロット、３８４ｋＨｚに８タイムスロットを割り当てることによって、最大３８４ｋＨｚのサンプルレートに対応することができる。従って、所与のサンプルにおいて４０９６の総チャネル又はタイムスロットが存在することから、２０４８のチャネル又はタイムスロットのみが９６ｋＨｚで利用可能であり、１０２４のタイムスロットが１９２ｋＨｚで利用可能であり、５１２のタイムスロットが３８４ｋＨｚで利用可能である。しかしながら、装置３０の動作中の所与のどの時間においても各サンプルレートのタイムスロットの数を変更することができ、例えば３３４８の４８ｋＨｚタイムスロットを設け、２０４の９６ｋＨｚタイムスロットを設け、及び８５の１９２ｋＨｚタイムスロットを設ける状況が生じる可能性があることは認識されるべきである。しかしながら、種々の構成（例えばビットレート）又はタイムスロットの数は、装置３０によって実行されることになる機能に応じて変更することができる。例えば、他の実施形態において、プログラム可能な動作クロック周波数を設定できる。例えば、３０７２、３５８４、及び４０９６のタイムスロットにそれぞれ対応する、１５０ＭＨｚ、１７５ＭＨｚ、及び２００ＭＨｚのクロック周波数を設定することができる。しかしながら、これらは単に周波数及びタイムスロットの例証に過ぎず、実施形態毎に変わる可能性がある点を認識されたい。従って、１つの実施形態において、メディアデータ経路は、複数の異なるビットレートでメディアデータを伝達するためのタイムスロットの総数を含むことができ、ここで複数のビットレートの各々に割り当てられたタイムスロットの数の和はタイムスロットの総数に等しい。
【００２０】
幾つかの実施形態において、新しい有効サンプルが処理のためにオーディオバス４６から取り出され、或いは抽出されることになる受信モジュール１２−２０、３２、３４に示されるインジケータビット（例えば有効ビット）を使用して、４４．１ｋＨｚのＣＤ標準などの任意のサンプルレートをオーディオバス４６を介して通信又は転送することができる。任意のサンプルレート（４４．１ｋＨｚサンプルレートなどの）がオーディオバス４６を介して通信され、例示的な有効ビットがｈｉｇｈであるとき、個々のモジュール１２−２０、３２、３４はデータを有効として受け入れることができる。しかし、有効ビットがｌｏｗになると、これによりモジュール１２−２０、３２、３４に後続のサンプルを無視するよう通知する。
【００２１】
１つの実施形態において可変サンプルレートはオーディオバス４６を介して伝達すことができるが、パラメータバス４８は、オーディオバス４６のサンプルレートとは別の固定サンプルレート（例えば４８ｋＨｚ）で制御データを伝達することができる。
【００２２】
１つの実施形態において、オーディオバス４６は、種々のモジュール１２−２０、３２、３４によって処理されることになるオーディオデータを伝達する。しかしながら、パラメータバス４８は、関連モジュール１２−２０、３２、３４が、該関連モジュール１２−２０、３２、３４の機能（例えばアルゴリズム）を定めるために使用するパラメータ又は処理データを含む。従って、制御データは、オーディオバス４６上のデータが特定のモジュール１２−２０、３２、３４によって処理される方法を制御することができる。例えば、パラメータバス４８を用いて、フィルタモジュール１８に対するフィルタパラメータ、サンプルレート・コンバータ・モジュール１６に対するサンプルレート変換パラメータ、モジュール１４に対してデジタルオーディオを遅延させる期間を定める遅延データ等を伝達することができる。従って、装置３０のどのような処理待ち時間をも短縮するために、各特定の処理モジュール１２−２０、３２、３４が処理済みオーディオデータを出力することになるタイムスロットに先だって、処理モジュール１２−２０、３２、３４の各々にこれらのパラメータデータを設定する必要がある点を理解されたい。従って以下に詳細に説明されるように、パラメータデータは、オーディオデータがオーディオバス４６を介して処理モジュール１２−２０、３２、３４に到着する前に、パラメータバス４８を介して特定の処理モジュール１２−２０、３２、３４に伝達される。
【００２３】
本発明の１つの実施形態において、オーディオバス４６を介して伝達されるオーディオデータは、３２ビットのＩＥＥＥ浮動小数点フォーマット（単精度）である。従って固定小数点フォーマット（例えば固定少数点オーディオ）で動作するデータ経路２２に配置されたどのようなモジュールも、浮動小数点フォーマットへの変換及び浮動小数点フォーマットからの変換を実行することが必要となる可能性がある。固定小数点フォーマットが−１から＋１の範囲内にあると定義される場合、固定小数点フォーマットのどのようなハードウェア変換もこの範囲外にある浮動少数点値を飽和させることになる。従って、ミキサモジュール２０を用いて、変換が−１から＋１の範囲内にあるように固定小数点変換を実行する任意の処理モジュールにおいて、データ経路２２上に位置するどのようなデジタルデータをも位取りすることができる。例えば、本発明の１つの実施形態において、サンプルレート・コンバータ・モジュール１６及びデジタルオーディオＩ／Ｏモジュール３４は、固定小数点フォーマットでデータを処理することができ、次いでミキサモジュール２０が位取りを要求することができる。
【００２４】
特に図５を参照すると、参照番号７０は、一般に、各処理モジュール１２−２０、３２、３４に備えられる例示的なデータ経路インターフェイスを示す。また、データ経路インターフェイス７０は、データ経路２２を介して通信するために装置３０にモジュール方式で付加することができる別の何れかの処理モジュールに備えることができる点を理解されたい。データ経路２２が、オーディオバス４６の形式でのメディアデータ経路、パラメータバス４８の形式での処理制御経路、及びチャネル識別バス４９を含む場合には、インターフェイス７０は、処理のためのそれぞれの処理モジュール１２−２０、３２、３４にデータ経路２２上の全ての入力をクロック制御する入力レジスタ７２、７４、７６を含むことができる。同様の方式で、出力レジスタ７８、８０、８２は、データ経路２０上に戻るデータをクロック制御する。専用処理ロジック８４が、各処理モジュール１２−２０、３２、３４内に備えられ、パラメータバス４８を介して受け取られるパラメータに従って、オーディオバス４６を介して受け取られるデジタルデータを処理する。処理ロジック８４の機能はモジュール毎に異なる。例えばフィルタモジュール１８の処理ロジックは、複数のフィルタ（例えばＩＩＲ及びＦＩＲフィルタ）を定義することができ、サンプルレート・コンバータ・モジュール１６の処理ロジック８４は、サンプルレートコンバータを定義することができる、等である。
【００２５】
図面に示された実施形態において、チャネル識別バス４９に含まれるチャネル識別データと、パラメータバス４８によって供給されるパラメータデータは、回線８６で示されるように処理ロジック８４によって読み取られ、チャネル識別バス４９及びパラメータバス４８にそれぞれ２クロックサイクル遅れて送られるか或いは返信される（回線８８で示される）。しかしながら、オーディオバス４６によって供給されたオーディオデータは、オーディオバス４６に直接送信される（線９０、９２で示されるように）か、或いは処理ロジック８４からの処理済みオーディオデータと置き換える（線９４及び９２で示されるように）ことができる。従って、データ経路インターフェイス７０は、オーディオバス４６を介して受け取られたデータと処理ロジック８４から受け取られた処理済みデータとの何れかを選択するマルチプレクサ９６を含むことができる。従って、特定の処理モジュール１２−２０、３２、３４が目標処理モジュール１２−２０、３２、３４では無く、且つデータを受け取る場合には、処理モジュール１２−２０、３２、３４は、次の処理モジュール１２−２０、３２、３４に通信リングに沿って単にデータを中継することができる。結果として、該データは、目標処理モジュール１２−２０、３２、３４に到達するまで順次中継することができる。転送されるデータは、処理されているメディアデータのストリームの一部を形成することができる点を理解されたい。同様に、処理制御データのストリームもパラメータバス４８に中継することができる。
【００２６】
特に図６を参照すると、データ経路２２の例示的構成が示されている。上述のように、１つの実施形態において、データ経路２２は、オーディオバス４６、パラメータバス４８、及びチャネル識別バス４９を含む。チャネル識別バス４９は、パラメータバス４８に対して設けられたチャネル又はタイムスロットと、オーディオバス４６に対して設けられたチャネル又はタイムスロットとの両方を識別するチャネル識別子を含むことができる。しかしながら、オーディオバス４６とパラメータバス４８について別個のチャネル識別子を設けることができる点は理解されたい。例えば、オーディオバス４６とパラメータバス４８が各々、独自のチャネル識別バスを有する実施形態を提供することができる。本発明の１つの実施形態において、各チャネル識別子は、チャネル識別バス４９に含まれるカウントを有するカウンターによって生成された１６進数の形式をとる。
【００２７】
パラメータバス４８に設けられる例示的なパラメータ定義（図６を参照）は以下の通りである。
Ｆｘ＝フィルタモジュール１８のフィルタパラメータ０−４
Ｐｉｔｃｈ＝サンプルレート・コンバータ・モジュール１６のピッチ
ＧＰＰ＝モジュール１２−２０、３２、３４によって使用されることになる汎用パラメータ
Ｔａｄｄｒ＝遅延モジュール１４の遅延回線アドレス
【００２８】
例示的なオーディオチャネル又はタイムスロット定義は以下の通りである。
ＦＩＬＴ＝フィルタモジュール１８（例えばＩＩＲフィルタ）からの出力
ＤＳＰ＝ＤＳＰモジュール１２の出力
ＳＲＣ＝サンプルレート・コンバータ・モジュール１６の出力
ＳＵＭ＝ミキサモジュール２０の合計ノード出力
ＤＡＩ＝Ｉ／Ｏモジュール３４からのデジタルオーディオ入力
Ｔａｎｋ＝遅延モジュール１４からのデータ出力
【００２９】
本発明の１つの実施形態において、上述のようにチャネル識別データの最下位の２、３、又は４ビットを用いて、特定のタイムスロットに関連する特定の処理モジュール１２−２０、３２、３４を識別することができ、従って、処理モジュール１２−２０、３２、３４が所有する特定のタイムスロット（又は複数のタイムスロット）を識別することができる。しかしながら、最上位ビットは、特定の処理モジュール内の論理チャネル又はタイムスロットを識別するのに使用することができる。例えば、オーディオの５１２の離散的チャネルを処理することができるフィルタモジュールは、複数の５１２の離散的フィルタチャネルを実装しており、各々がフィルタパラメータの独自のセットを必要とし、且つ独自の離散的フィルタオーディオ出力を供給する。このようなフィルタモジュールを含む本発明の実施形態において、チャネル識別データの最上位の９ビットにより、フィルタパラメータがどのフィルタチャネルに属するか、更にどのフィルタチャネルがオーディオを生成したかを求めることができる。
【００３０】
本発明の１つの実施形態において、チャネル識別バス４９を介して供給されたチャネル識別データが、ミキサモジュール２０で生成される。上述のように、チャネル識別データは、０から４０９５までランし、各数字が識別するか、或いは特定のチャネル又はタイムスロットに関連付けられるカウンターによって生成することができるチャネル識別子を定義することができる。更に上述のように、処理済みオーディオデータを出力することになるタイムスロットの前に、パラメータが適切な処理モジュール１２−２０、３２、３４に確実に到着するように、パラメータバス４８上のデータをオーディオバス４６に供給されたデータに対してオフセットすることができる。
【００３１】
本発明の１つの実施形態において、ソフトウェアはミキサモジュール２０をプログラムすることができる。次にソフトウェアは、モジュール１２−２０、３２、３４が入力パラメータ（パラメータバス４８を介して）上で動作するため、及び後でオーディオバス４６上に出力する処理済みオーディオデータを生成するために、一定の時間量を必要とすることを考慮することができる。これらの実施形態において、処理モジュール１２−２０、３２、３４における適切なパラメータは、モジュールがオーディオバス４６上にオーディオデータを出力するタイムスロットに先行するタイムスロットにおいて提供される。異なる処理モジュール１２−２０、３２、３４がパラメータ及びオーディオを処理するための異なるパラメータ及び時間を必要とする場合は、異なる処理モジュール１２−２０、３２、３４に関連するパラメータは、異なる数のタイムスロットだけオフセットすることができる。例えば、９６の例示的なオフセットは、サンプルレート・コンバータ・モジュール１６に提供することができ、４０の例示的なパラメータオフセットは、フィルタモジュール１８に提供することができ、２０の例示的なパラメータオフセットは、遅延モジュール１４に提供することができる。しかしながら、各オフセットは実施形態毎に異なり、また、単一の実施形態においてもモジュール１２−２０、３２、３４が実施するか又は実行することになる機能又はアルゴリズムに応じても異なる場合があることは理解されたい。
【００３２】
幾つかの実施形態において、オーディオバス４６を介して受け取られたオーディオデータをバッファする必要がある。特に、位相同期性は、位相キャンセル及び画像シフトを回避するためにマルチチャネルオーディオデータにおいては必要条件である。位相同期性は、オーディオデータの全サンプル周期をバッファすることによって簡素化される。次いで、処理モジュールは、データ到着及びデータ処理の相対的なサンプル間タイミングに関係無く、このローカルオーディオバッファからの保証された位相同期オーディオを処理することができる。オーディオバス４６を介して受け取られた全てのチャネルをバッファする必要は無く、処理されることになるチャネルだけをバッファすればよい。位相同期性を実現するために、少なくとも２つのバッファ「Ａ」及び「Ｂ」が書き込みから読み込みまで交互に使用されるピンポンバッファ方式を使用することができる。最初のサンプル周期の間、処理モジュールがバッファ「Ｂ」から読み込みながら、受け取られたオーディオデータをバッファ「Ａ」に書き込むことができる。ある時間においては、バッファは、次のサンプル周期の間に、処理モジュールがバッファ「Ａ」から読み込みながら、受け取られたオーディオデータをバッファ「Ｂ」に書き込むように機能をスワップすることができる。幾つかの実施形態において、遅延モジュール１４、フィルタモジュール１８、及びミキサモジュール２０は、これらそれぞれのチャネル処理時間と同期するオーディオバッファを変更或いは交換することができる。例えば、遅延モジュール１４のデータ経路又はオーディオリング入力バッファは、遅延モジュール１４のチャネルがゼロに等しい場合にスワップすることができ、例えば、遅延モジュール１４がオーディオを生成し始める場合、チャネル識別の最上位のビットがゼロに等しいときにオーディオバス４６に出力する。これは、データ経路又はオーディオリングチャネル又はタイムスロットが、最大チャネル識別から遅延モジュール１４のパラメータオフセットを引いた値に等しいときに起こる可能性がある。パラメータオフセットが２０に等しい場合には、これは、遅延モジュール１４の観点から他のリングチャネル又はタイムスロットに対して余分のサンプル周期だけ最後の２０オーディオリングチャネル又はタイムスロットから遅延する。同様に、フィルタモジュール１８の場合、最後の４０オーディオリングチャネル又はタイムスロットが、フィルタモジュール１８に対する余分のサンプル周期だけ遅延することができる。幾つかの実施形態において、ミキサモジュール２０は、最後の１８オーディオリングチャネル又はタイムスロットだけ遅延することができる。しかしながら、１つの実施形態において、サンプルレート・コンバータ・モジュール１６は、そのチャネルキャッシュに直接オーディオリングデータを書き込むことができ、従って、相対的な遅延問題を生じる可能性は無い。
【００３３】
上述のように、出力タイムスロット（各処理モジュール１２−２０、３２、３４がオーディオバス４６にデータを出力するタイムスロット）は、専用のタイムスロットである。しかしながら、幾つかの実施形態では、処理モジュール１２−２０、３２、３４の何れかにデータが伝達されるタイムスロットはプログラム可能であり、従って、チャネル識別データは、オーディオバス４６上のオーディオデータを処理するものである特定の処理モジュール１２−２０、３２、３４を識別する。１つの実施形態において、パラメータバス４８は割り当てられた入力タイムスロットを有する。更に、幾つかの実施形態において、ミキサモジュール２０は、パラメータバス４８を介して種々の処理モジュール１２−２０、３２、３４に伝達されるパラメータを提供することができる。従って、処理モジュール１２−２０、３２、３４の何れかから１つ又はそれ以上の他の何れかの処理モジュール１２−２０、３２、３４へデータを柔軟に転送することができるだけでなく、同様の方式で、パラメータを処理モジュール１２−２０、３２、３４の何れにも柔軟に転送することができる。本発明の１つの実施形態において、ＤＳＰモジュール１２は、パラメータバス４８に関するパラメータを上書きすることができ、これによりＤＳＰモジュール１２が遅延モジュール１４、サンプルレート・コンバータ・モジュール１６、フィルタモジュール１８、及びミキサモジュール２０（又はデータ経路２２に付加された他の全てのモジュール）によって実行又は実施される機能を直接制御することができる。
【００３４】
上述のように、オーディオバス４６に含まれるデータ及びパラメータバス４８に含まれるパラメータは、処理モジュール１２−２０、３２、３４に柔軟に転送することができる。本発明の１つの実施形態において、リンクリスト１００の形式の入力マッパ（図７を参照）が提供される。この実施形態において、ルーティング・コントローラ５２（図３を参照）が、種々の処理モジュール１２−２０、３２、３４に柔軟にオーディオデータを転送するためにプログラム可能な入力マッピングを実施する。使用中、入力マッパは、入力オーディオバッファ内のどのアドレスにどの入力チャネルを書き込むかを決定するために、入力チャネル識別子１０２と入力ＲＡＭアドレス１０４のリンクリスト１００を横断することができる。本発明の１つの実施形態において、リンクリスト１００が使用され、該リストは矢印１０６で示されるように、入力オーディオバッファアドレスに関係無くチャネル識別子の昇順で配置又はソートされる。ホストソフトウェアドライバがリスト１００を保持することができる。
【００３５】
使用中、入力マッパは、入力チャネル識別子１０２と入力オーディオバッファアドレス１０４とを含むリンクリスト１００に最初の要素をロードし、これをリストの次の要素として指定することができる。次に入力マッパは、チャネル識別バス４９の入力チャネル識別子が入力チャネル識別フィールド１０２と一致するまで待機し、次いで、指定された入力オーディオバッファアドレスにオーディオバス４６を介して受け取られる入力オーディオデータを書き込む。次に、次のリンクリストのアドレスフィールド１０１によって指定されたリンクリスト１００の要素をロードすることができ、このオペレーションを繰り返すことができる。リンクリスト１００は、この最後の要素がリンクリスト１００の最初の要素を示すように循環方式で保持することができる。リセット時には、例えば、デフォルトの入力マッピングリストは、ハードウェア初期化ロジックによって自動的に書き込むことができ、ホストドライバソフトウェアはリンクリスト１００を単に保持するだけでよい。複数のフィルタがフィルタモジュール１８によって提供される場合には、マッピングの追加レベルを、オーディオバス４６を介して供給される同様の入力信号又はデータに作用する複数のフィルタに対応するように設定することができる。
【００３６】
上述の方法論は図８の図面に概略的にまとめられている。参照番号１１０は、一般に、デジタルオーディオ処理装置などのデジタルメディア処理装置のデジタルメディアデータ（例えばデジタルオーディオデータ）を伝達する方法を示す。ブロック１１２に示されるようにデータ経路２２上に、デジタルデータが提供される。次に、各特定の処理モジュール１２−２０、３２、３４は、データが特定の処理モジュール１２−２０、３２、３４に関連しているか否かを識別する（ブロック１１４を参照）。ブロック１１２でデータ経路２２上に提供されたデジタルデータは、オーディオバス４６上に提供されるデジタルオーディオデータ、及び／又はパラメータバス４８上に提供される処理制御データ（例えばパラメータデータ）の両方を含むことができる。
【００３７】
判断ブロック１１６に示されるように、データ経路２２上のデータが特定の処理モジュール１２−２０、３２、３４と関連していない場合には、特定のモジュール１２−２０、３２、３４によって受け取られたデータは、データ経路２２に沿って単に中継される。しかしながら、データが特定のモジュール１２−２０、３２、３４に関連する（例えば、データが特定の処理モジュール１２−２０、３２、３４に転送されるものとルーティング・コントローラ５２が識別した）場合には、データ（場合によってはオーディオデータ及び／又はパラメータデータ）が、データ経路２２から抽出される（ブロック１１８を参照）。抽出されたデータがパラメータデータである場合には、処理モジュール１２−２０、３２、３４は、このデータを用いて実行されることになる機能（例えばアルゴリズム）を定める。引き続きオーディオデータが到着する場合、処理モジュール１２−２０は、オーディオデータを処理して、後でデータ経路２２に提供される処理済みデータを生成する（ブロック１２０を参照）。これ以降、方法１１０は、本明細書で説明されたような監視機能を繰り返す。本明細書に説明された方法の何れもが任意の機械読み取り可能なメディアにも提供できることは理解されたい。従って、本発明は、機械によって実行される場合、本明細書に説明された機能を機械に実行させることのできる命令シーケンスを具現化する機械読み取り可能なメディアに適用される。
【００３８】
本発明の１つの実施形態において、デジタル処理装置３０は、ＶＬＳＩチップの形態である。ＤＳＰモジュール１２は、同時に４つのインターリーブ・スレッドを実行する３２ビット固定／浮動小数点ＤＳＰとすることができる。例えば、装置３０は、以下の１つ又はそれ以上を含むことができる。
・２００ＭＨｚ内部クロック
・１２００ＭＦＬＯＰＳを備えるスレッデッド・インターリーブ・アーキテクチャＤＳＰ
・ＤＳＰはホストメモリ／ＳＤ  ＲＡＭにアクセスするための独立ＤＭＡコントローラ専用とすることが可能
・遅延モジュール１４は小数部遅延長及び１０２４メモリアクセスに対応可能
・ミキサモジュール２０は４０９６チャネル浮動小数点オーディオミキサとすることが可能
・５６３２チャネル・セルフ・ランピング・パラメータ発振器を備えることが可能
・サンプルレート・コンバータ・モジュール１６は、２５６チャネルのハイブリッド・サンプルレート・コンバータとすることが可能
・フィルタモジュール１８は、５１２チャネル二次デジタルフィルタとすることが可能
・インターフェイス・モジュール３８は、装置３０を１００ＭＨｚＳＤ  ＲＡＭインターフェイスに接続するＰＣＩ−Ｘインターフェイスとすることが可能
・４つのステレオＩ2Ｓデジタル入力を備えることが可能
・４つのステレオＩ2Ｓデジタル出力を備えることが可能
・８チャネルＣ／ＤＩＦ入力として構成可能な４つのステレオＳ／ＰＤＩＦ入力を備えることが可能
・８チャネルＣ／ＤＩＦ出力として構成可能な４つのステレオＳ／ＰＤＩＦ出力を備えることが可能
・Ｉ2Ｓ及びＳ／ＰＤＩＦ又はＣ／ＤＩＦ入力に対するＰＬＬスレーブ機能を備えることが可能
・１６の独立構成可能な汎用入出力ピンをチップに備えることが可能
・リセットデフォルトを上書きするためのＥＰＲＯＭインターフェイスを備えることが可能
【００３９】
１つの実施形態において、装置３０は、インターフェイス・モジュール３８又は組込み型マイクロプロセッサバスインターフェイスの何れかを介して汎用マイクロプロセッサに接続することができる。マイクロプロセッサは、例えばルーティング・コントローラ５２を介して装置３０を制御することができ、従って、ルーティング・コントローラ５２はホストインターフェイスを定めることができる。幾つかの実施形態において、オーディオメモリ転送モジュール３２に接続された外部ＳＤ  ＲＡＭを備えることができる。１つの実施形態において、オーディオバス４６は、各処理モジュール１２−２０、３２、３４に対して４８ｋＨｚでサンプルロックすることができる。１つの実施形態において、オーディオバス４６は、２５６の専用３２ビット入力チャネルを備え、従って、データ経路インターフェイス７０は、２５６の３２ビット入力チャネルと２５６の３２ビット出力チャネルとを含むことができる。上述のように、出力チャネルを予め定めるか或いは専用とすることができ、入力チャネルはプログラム可能とすることができる。上述のように、装置３０はリンクリスト１００を含むことができ、１つの実施形態ではＤＳＰモジュール１２は、リンクリスト１００を使用してオーディオバス４６の４０９６のチャネルにマップされる２５６の入力チャネルを含む。１つの実施形態において、ＤＳＰモジュール１２が所与のサンプル周期でオーディオバス４６のオーディオ出力チャネルに書き込む毎に、書き込まれたオーディオデータはオーディオバス４６に転送され、次いで、オーディオリング有効ビットを、次のサンプル周期の間に特定のチャネル用に設定することができる。パラメータバス４８は、パラメータの中継又は転送用の２５６の３２ビット入力／出力チャネルを提供することができる。
【００４０】
１つの実施形態において、オーディオバス４６の何れの入力チャネル又はタイムスロット（オーディオバス４６の他のモジュールによって使用されるデータであるか否かに関係無く）も、全ての処理モジュール１２−２０、３２、３４が見ることのできるサンプルロックされた３２ビットスレッド間データチャネルとして使用することができる。これは、異なる処理モジュール１２−２０、３２、３４に配置された時間領域ＤＳＰスレッド間でデータを中継するための主要機構を装置３０に提供することができる。使用されていない出力バッファチャネル又はタイムスロットが、スレッド間のデータ中継のために使用される場合、中継されたデータは、特定の出力バッファチャネル又はタイムスロットに割り当てられたタイムスロット内でオーディオバス４６に対して有効なものとして現れることができる。
【００４１】
スレッド間データの中継のために使用することができる入力又は出力オーディオバスバッファに書き込まれたデータは、書き込まれたサンプル周期の残りの期間、全ての他のスレッドで直ちに見ることができる。
【００４２】
以上のように、デジタル・メディア・ストリームを処理するための方法及び装置について説明した。本発明を特定の例示的な実施形態に関して説明してきたが、本発明の広範な精神及び範囲から逸脱すること無く、種々の改良及び変更をこれらの実施形態に行なうことができることは明らかである。従って、明細書及び図面は限定的な意味では無く、例証とみなされるべきである。
【図面の簡単な説明】
【００４３】
【図１】リング構成で配置されたデータ経路を含む本発明の１つの実施形態による例示的なデジタル処理装置の概略ブロック図を示す。
【図２】同様に本発明によるデジタル処理装置の別の実施形態の概略ブロック図を示す。
【図３】図２のデジタル処理装置においてデジタルデータを転送するための、本発明の実施形態によるルーティング・コントローラの概略ブロック図を示す。
【図４】デジタル処理装置のルーティング・コントローラとデジタル信号プロセッサ（ＤＳＰ）間の例示的なインターフェイスの概略ブロック図を示す。
【図５】本発明の実施形態による処理モジュールインターフェイスの概略ブロック図を示す。
【図６】図２のデータ経路の例示的なタイムスロットロケーション配置を示す。
【図７】入力マッパの例示的なリンクリストを示す。
【図８】デジタル処理装置においてデータを伝達するための、本発明による方法の概略フロー図を示す。
【符号の説明】
【００４４】
１０  デジタル処理装置
１２  デジタル信号処理（ＤＳＰ）モジュール
１４  遅延モジュール
１６  サンプルレートコンバータ（ＳＲＣ）モジュール
１８  フィルタモジュール
２０  ミキサモジュール
２２  データ経路
【図１】
0004672305.tif 000002
【図２】
0004672305.tif 000003
【図３】
0004672305.tif 000004
【図４】
0004672305.tif 000005
【図５】
0004672305.tif 000006
【図６】
0004672305.tif 000007
【図７】
0004672305.tif 000008
【図８】
0004672305.tif 000009