効率的なダウンミキシングを使ったオーディオ・デコーダおよびデコード方法
方法、装置、方法を実行するための命令を構成されたコンピュータ可読記憶媒体および一つまたは複数のコンピュータ可読の有形の媒体にエンコードされた諸工程を実行するための論理。方法は、N.nチャンネルを含むオーディオ・データを復号してM.m個の復号されたオーディオ・チャンネルにするものであり、メタデータをアンパックし、周波数領域の指数および仮数データをアンパックおよび復号し;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定し;周波数領域データを逆変換し;M<Nの場合、ダウンミキシング・データに従ってダウンミキシングすることを含み、ダウンミキシングは効率的に実行される。
【発明の詳細な説明】
【技術分野】
【0001】
〈関連出願への相互参照〉
本願は、2010年2月5日に出願された米国仮特許出願第61/305,871号および2010年6月29日に出願された米国仮特許出願第61/359,763号の優先権を主張するものである。両文献はここに参照によってその全体において組み込まれる。
【0002】
〈発明の分野〉
本開示は概括的にはオーディオ信号処理に関する。
【背景技術】
【0003】
デジタル・オーディオ・データ圧縮はオーディオ産業において重要な技術となっている。伝統的な技術を使うときに必要とされる高いデータ帯域幅の必要なしに高品質のオーディオ再生を可能にする新しいフォーマットが導入されている。AC-3およびより最近ではエンハンストAC-3(E-AC-3)符号化技術は、先進テレビジョン・システム委員会(ATSC: Advanced Television Systems Committee)によって米国における高精細度テレビジョン(HDTV: High Definition Television)のためのオーディオ・サービス規格として採用された。E-AC-3は消費者メディア(デジタル・ビデオ・ディスク)および直接衛星放送でも応用を見出している。E-AC-3は知覚的な符号化の例であり、デジタル・オーディオの複数のチャンネルを符号化されたオーディオおよびメタデータのビットストリームに符号化することを提供する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Advanced Television Systems Committee, Inc. (ATSC), "Digital Audio Compression Standard (AC-3, E-AC-3)", Revision B, Document A/52B, 14 June 2005、URL: www^dot^atsc^dot^org/cms/standards/a_52b^dot^pdf(^dot^は実際のウェブ・アドレスではピリオド(「.」)を表す)、2009年12月1日アクセス
【発明の概要】
【発明が解決しようとする課題】
【0005】
符号化されたオーディオ・ビットストリームを効率的に復号することに関心が向けられている。たとえば、ポータブル機器のバッテリー寿命は主としてその主処理ユニットのエネルギー消費によって制限される。処理ユニットのエネルギー消費は、そのタスクの計算量に密接に関係している。よって、ポータブル・オーディオ処理システムの計算量を減らすことは、そのようなシステムのバッテリー寿命を延ばすはずである。
【0006】
x86という用語は、インテル8086プロセッサに起源をもつプロセッサ命令セット・アーキテクチャーのファミリーを指すことが当業者によって一般に理解される。x86命令セット・アーキテクチャーがあまねく広まっている結果として、x86命令セット・アーキテクチャーをもつプロセッサまたは処理システム上で符号化されたオーディオ・ビットストリームを効率的に復号することにも関心が寄せられている。多くのデコーダ実装は性質上、一般的である。一方、埋め込まれるプロセッサのために特別に設計されるものもある。AMDのGeodeおよび新たなインテル・アトムのような新しいプロセッサはx86命令セットを使用し、小型のポータブル機器において使用される32ビットおよび64ビット設計の例である。
【課題を解決するための手段】
【0007】
課題は、請求項記載の手段によって解決される。
【図面の簡単な説明】
【0008】
【図1】実行されると典型的なAC-3復号プロセスを実行する命令のための擬似コード100を示す図である。
【図2】一つまたは複数の共通モジュールを有利に使用できるいくつかの異なるデコーダ構成を示すブロック概略図である。
【図3】フロントエンド復号モジュールのある実施形態の擬似コードおよびブロック概略図である。
【図4】フロントエンド復号モジュールのある実施形態の動作のための簡略化されたデータフロー図である。
【図5A】バックエンド復号モジュールのある実施形態の擬似コードおよびブロック概略図である。
【図5B】バックエンド復号モジュールの別の実施形態の擬似コードおよびブロック概略図である。
【図6】バックエンド復号モジュールのある実施形態の動作のための簡略化されたデータフロー図である。
【図7】バックエンド復号モジュールの別の実施形態の動作のための簡略化されたデータフロー図である。
【図8】図7に示されるもののようなバックエンド復号モジュールのための処理のある実施形態のフローチャートである。
【図9】5.1から2.0へのダウンミキシングを含む非重複変換(non-overlap transform)の場合についての、本発明のある実施形態を使った、5.1から2.0へのダウンミキシングを含む5つの処理ブロックの例を示す図である。
【図10】重複変換(overlapping transform)の場合についての、本発明のある実施形態を使った、5.1から2.0へのダウンミキシングを含む5つの処理ブロックのもう一つの例を示す図である。
【図11】時間領域ダウンミキシングのある実施形態についての簡略化された擬似コードを示す図である。
【図12】本発明の一つまたは複数の特徴を含む、少なくとも一つのプロセッサを含み、復号を実行できる処理システムのある実施形態のブロック概略図である。
【発明を実施するための形態】
【0009】
〈概要〉
本発明の実施形態は、方法、装置および一つまたは複数のコンピュータ可読の有形の媒体にエンコードされた諸工程を実行するための論理を含む。
【0010】
個別的な実施形態は、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・デコーダを動作させる方法を含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。本方法は、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる段階と;受け入れたオーディオ・データを復号する段階とを含む。復号する段階は:周波数領域の指数および仮数データをアンパックおよび復号する段階と;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する段階と;周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する段階と;M<Nの場合についてダウンミキシング・データに従って決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする段階とを含む。A1、B1およびC1のうちの少なくとも一つは真である。
【0011】
A1は、前記復号する段階は、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことである。
【0012】
B1は、前記時間領域ダウンミキシングが、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことである。
【0013】
C1は、本方法が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、本方法が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0014】
本発明の個別的な実施形態は、処理システムの一つまたは複数のプロセッサによって実行されたときに処理システムに、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成することを実行させる復号命令を記憶しているコンピュータ可読記憶媒体を含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。前記復号命令は、実行されたときに、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れさせる命令と;実行されたときに、受け入れたオーディオ・データを復号させる命令とを含む。実行されたときに復号させる前記命令は:実行されたときに、周波数領域の指数および仮数データをアンパックおよび復号させる命令と;実行されたときに、アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定させる命令と;実行されたときに周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定させる命令と;実行されたときに、M<Nであるかどうかを見きわめさせる命令と;実行されたときにM<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングさせる命令とを含む。A2、B2およびC2のうちの少なくとも一つは真である。
【0015】
A2は、実行されたときに復号させる前記命令が、実行されたときに、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定させる命令と、実行されたときに、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、周波数領域ダウンミキシングを適用させる命令とを含むことである。
【0016】
B2は、前記時間領域ダウンミキシングが、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことである。
【0017】
C2は、実行されたときに復号させる前記命令が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0018】
個別的な実施形態は、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・データ処理装置を含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。本装置は、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる手段と;受け入れたオーディオ・データを復号する手段とを含む。復号する手段は:周波数領域の指数および仮数データをアンパックおよび復号する手段と;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する手段と;M<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする手段とを含む。A3、B3およびC3のうちの少なくとも一つは真である。
【0019】
A3は、前記復号する手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことである。
【0020】
B3は、前記時間領域ダウンミキシングする手段が、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことである。
【0021】
C3は、本装置が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、本装置が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0022】
個別的な実施形態は、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを処理してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成する装置を含み、M≧1であり、n=0または1はエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、m=0または1は復号オーディオ・データにおける低周波数効果チャンネルの数である。本装置は、エンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データを含むオーディオ・データを受け入れる手段であって、前記エンコード方法は、N.nチャンネルのデジタル・オーディオ・データを、逆変換およびさらなる処理によってエイリアシング・エラーなしで時間領域サンプルを復元できるよう変換し、周波数領域の指数および仮数データを形成およびパッキングし、該周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理(transient pre-noise processing)に関係したメタデータを含む、手段と;受け入れたオーディオ・データを復号する手段とを有する。復号する手段は:フロントエンド復号のための一つまたは複数の手段とバックエンド復号のための一つまたは複数の手段とを有する。フロントエンド復号のための手段は、メタデータのアンパックのためであり、周波数領域の指数および仮数データのアンパックおよび復号のためである手段を含む。バックエンド復号のための手段は、アンパックされて復号された周波数領域の指数および仮数データから変換係数を決定するため;周波数領域データを逆変換するため;窓処理(windowing)および重複加算(overlap-add)演算を適用してサンプリングされたオーディオ・データを決定するため;過渡プレノイズ処理に関係した前記メタデータに従って、必要とされる過渡プレノイズ処理復号があればそれを適用するため;およびダウンミキシング・データに従って時間領域ダウンミキシングのための手段を含む。前記ダウンミキシングは、M<Nの場合にダウンミキシング・データに従ってデータの少なくともいくつかのブロックを時間領域ダウンミキシングするよう構成される。A4、B4およびC4のうちの少なくとも一つは真である。
【0023】
A4は、前記バックエンド復号のための手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことである。
【0024】
B4は、前記時間領域ダウンミキシングする手段が、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことである。
【0025】
C4は、本装置が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、バックエンド復号のための手段が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0026】
個別的な実施形態は、N.nチャンネルのオーディオ・データのエンコードされたオーディオ・データを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するシステムを含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。本システムは:一つまたは複数のプロセッサと;前記一つまたは複数のプロセッサに結合された記憶サブシステムとを有する。本システムは、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れ;さらに、受け入れたオーディオ・データを復号する。復号する段階は:周波数領域の指数および仮数データをアンパックおよび復号し;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定し;周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定し;M<Nの場合についてはダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングすることを含む。A5、B5およびC5のうちの少なくとも一つは真である。
【0027】
A5は、前記復号が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことである。
【0028】
B5は、前記時間領域ダウンミキシングが、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことである。
【0029】
C5は、前記方法が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0030】
システム実施形態のいくつかのバージョンでは、受け入れたオーディオ・データは、符号化されたデータのフレームからなるビットストリームの形であり、記憶サブシステムは、前記処理システムの前記プロセッサの一つまたは複数によって実行されたとき、受け入れたオーディオ・データの復号をさせる命令を与えられる。
【0031】
システム実施形態のいくつかのバージョンは、ネットワーク・リンクを介してネットワーク接続される一つまたは複数のサブシステムを含む。各サブシステムは少なくとも一つのプロセッサを含む。
【0032】
A1、A2、A3、A4またはA5が真であるいくつかの実施形態では、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかの決定は、過渡プレノイズ処理があるかどうかを判定し、N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用されることを含む。
【0033】
A1、A2、A3、A4またはA5が真であり、前記エンコード方法における変換が重複変換〔重畳変換〕(overlapped-transform)を含み、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含むいくつかの実施形態では、(i)前記特定のブロックについて周波数領域ダウンミキシングを適用することは、前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき前のブロックのデータに対して時間領域ダウンミキシング(または擬似時間領域(pseudo-time domain)におけるダウンミキシング)を適用することを含み、(ii)特定のブロックについて時間領域ダウンミキシングを適用することは、前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む。
【0034】
B1、B2、B3、B4またはB5が真であるいくつかの実施形態では、ベクトル命令を含むストリーミング単一命令複数データ拡張(SSE:streaming single instruction multiple data extensions)を含む命令セットを有する少なくとも一つのx86プロセッサが使用され、時間領域ダウンミキシングは前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行することを含む。
【0035】
C1、C2、C3、C4またはC5が真であるいくつかの実施形態では、n=1かつm=0であり、それにより逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない。さらに、Cが真であるいくつかの実施形態では、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する情報を使う。さらに、Cが真であるいくつかの実施形態では、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である。いくつかの場合については、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも18dB低い場合であり、一方、他の用途では、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも25dB低い場合である。
【0036】
いくつかの実施形態では、エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、MPEG-2 AAC規格およびHE-AAC規格からなる規格の集合のうちの一つに従ってエンコードされている。
【0037】
本発明のいくつかの実施形態では、前記エンコード方法における変換は、重複変換を使い、前記さらなる処理は、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む。
【0038】
本発明のいくつかの実施形態では、前記エンコード方法は、周波数領域の指数および仮数データに関係したメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む。
【0039】
個別的な実施形態は、これらの側面、特徴または利点の全部を提供することもあれば、一部を提供することもあれば、あるいは一つも提供しないこともある。個別的な実施形態は、一つまたは複数の他の側面、特徴または利点を提供することもありえ、その一つまたは複数は、本願の図面、明細書および請求項から当業者にはすぐ明白となりうる。
【0040】
〈エンコードされたストリームの復号〉
拡張AC-3(E-AC-3: Extended AC-3)規格に従って符号化ビットストリームに符号化されたオーディオを復号するための本発明の諸実施形態について述べる。E-AC-3およびそれ以前のAC-3規格は非特許文献1において詳細に記載されている。しかしながら、本発明はE-AC-3でエンコードされたビットストリームの復号に限定されるものではなく、別の符号化方法に従ってエンコードされたビットストリームのデコーダおよび復号や、そのような復号方法、符号装置、そのような復号を実行するシステム、実行されたときに一つまたは複数のプロセッサにそのような復号を実行させるソフトウェアおよび/またはそのようなソフトウェアが記憶されている有形の記憶媒体にも適用されうる。たとえば、本発明の諸実施形態は、MPEG-2 AAC(ISO/IEC 13818-7)およびMPEG-4オーディオ(ISO/IEC 14496-3)規格に従って符号化されたオーディオの復号にも適用可能である。MPEG-4オーディオ規格は、高効率AACバージョン1(HE-AAC v1: High Efficiency AAC version 1)および高効率AACバージョン2(HE-AAC v2)符号化の両方を含む。これらは本稿ではまとめてHE-AACと称される。
【0041】
AC-3およびE-AC-3はドルビー(登録商標)デジタルおよびドルビー(登録商標)デジタル・プラスとしても知られる。いくつかの追加的な互換な改善を組み込んだHE-AACのバージョンもドルビー(登録商標)パルスとして知られる。これらは本発明の被譲渡者であるドルビー・ラボラトリーズ・ライセンシング・コーポレーションの商標であり、一つまたは複数の管轄域において登録されていることがありうる。E-AC-3はAC-3と互換であり、追加的な機能を含む。
【0042】
x86アーキテクチャー
x86という用語は、インテル8086プロセッサに起源をもつプロセッサ命令セット・アーキテクチャーのファミリーを指すことが当業者によって一般に理解される。このアーキテクチャーは、インテル、サイリックス、AMD、VIAおよび他の多くの会社からのプロセッサにおいて実装されてきた。一般に、この用語は、インテル80386プロセッサの32ビット命令セットとのバイナリー互換性を含意するものと理解される。今日(2010年初頭)、x86アーキテクチャーはデスクトップおよびノートブック・コンピュータの間ではあまねく広まっており、またサーバーおよびワークステーションの間でも多数派として増えつつある。MS-DOS、ウィンドウズ、リナックス、BSD、ソラリスおよびMac OS Xといった多くのソフトウェアがこのプラットフォームをサポートしている。
【0043】
本稿での用法では、用語x86は、単一命令複数データ(SIMD: single instruction multiple data)命令セット拡張(SSE)をもサポートするx86プロセッサ命令セット・アーキテクチャーを意味する。SSEはもとのx86アーキテクチャーに対する単一命令複数データ(SIMD)命令セット拡張であり、1999年にインテルのペンティアムIIIシリーズのプロセッサにおいて導入され、今や多くのベンダーによって製造されるx86アーキテクチャーにおいて普通になっている。
【0044】
AC-3およびE-AC-3ビットストリーム
複数チャンネル・オーディオ信号のAC-3ビットストリームはフレームから構成される。フレームは、すべての符号化されたチャンネルにわたるオーディオ信号の1536個のパルス符号変調(PCM)されたサンプルの一定の時間期間を表す。五つまでのメイン・チャンネルおよび任意的に、「.1」と表される低周波数効果(LFE: low frequency effects)チャンネルが提供される。すなわち、5.1チャンネルまでのオーディオが提供される。各フレームは固定サイズをもち、そのサイズはサンプル・レートおよび符号化されるデータ・レートのみに依存する。
【0045】
手短に言うと、AC-3符号化は、重複変換――50%重複をもつカイザー・ベッセル派生(KBD: Kaiser Bessel derived)窓を用いた修正離散コサイン変換(MDCT: modified discrete cosine transform)――を使って時間データを周波数データに変換することを含む。周波数データは、該データを圧縮するために知覚的に符号化され、圧縮されたビットストリームを形成する。そのビットストリームの各フレームは、符号化されたオーディオ・データおよびメタデータを含む。各AC-3フレームは独立した実体であり、時間データを周波数データに変換するのに使われたMDCTに内在する変換の重なり(transform overlap)のほかは、前の諸フレームと何らデータを共有しない。
【0046】
各AC-3フレームの先頭には、SI(Sync Information[同期情報])およびBSI(Bit Stream Information[ビットストリーム情報])フィールドがある。SIおよびBSIフィールドは、サンプル・レート、データ・レート、符号化されるチャンネルの数およびいくつかの他のシステム・レベルの要素を含むビットストリーム構成を記述する。フレーム毎に、先頭と末尾に一つずつ、誤り検出手段を提供する二つのCRC(cyclic redundancy code[巡回冗長符号])語もある。
【0047】
各フレーム内には六つのオーディオ・ブロックがあり、各ブロックはオーディオ・データの符号化されたチャンネル毎に256個のPCMサンプルを表現する。オーディオ・ブロックは、ブロック切り換えフラグ(block switch flags)、結合座標(coupling coordinates)、指数(exponents)、ビット割り当てパラメータ(bit allocation parameters)および仮数(mantissas)を含む。ブロック0に存在する情報がその後のブロックにおいて再利用されてもよいといったデータ共有が、フレーム内で許容される。
【0048】
任意的な補助(aux)データ・フィールドがフレームの末尾に位置される。このフィールドは、システム設計者が、プライベートな制御または状態情報をシステム・ワイドな伝送のためにAC-3ビットストリーム中に埋め込めるようにする。
【0049】
E-AC-3は六つの256係数変換というAC-3のフレーム構造を保存している、一方で、一つ、二つおよび三つの256係数変換ブロックからなるより短いフレームをも許容する。これは、640kbpsより大きなデータ・レートでのオーディオの転送を可能にする。各E-AC-3フレームはメタデータおよびオーディオ・データを含む。
【0050】
E-AC-3は、AC-3の5.1より有意に多数のチャンネルを許容する。特に、E-AC-3は今日一般的な6.1および7.1オーディオの搬送を許容し、たとえば将来のマルチチャンネル・オーディオ・サウンド・トラックをサポートするための少なくとも13.1チャンネルの搬送を許容する。5.1を超える追加的なチャンネルは、メイン・オーディオ・プログラム・ビットストリームを、8個までの追加的な従属ビットストリームと関連付けることによって得られる。該従属ビットストリームはみな、一つのE-AC-3ビットストリームに多重化される。これは、メイン・オーディオ・プログラムがAC-3の5.1チャンネル・フォーマットを伝送することを許容し、その一方で追加的なチャンネル容量は従属ビットストリームに由来する。これは、5.1チャンネル・バージョンおよびさまざまな従来式のダウンミックスが常に利用可能であり、チャンネル代替プロセスの使用により、マトリクス減算に誘起された符号化アーチファクトが解消されることを意味する。
【0051】
それぞれ関連付けられた従属サブストリームをもつ可能性がある七つのさらなる独立オーディオ・ストリームを搬送できることにより、複数プログラム・サポートも利用可能となり、各プログラムのチャンネル搬送を5.1チャンネルを超えて増大させる。
【0052】
AC-3は、オーディオ素材を知覚的に符号化するために、比較的短い変換および単純なスカラー量子化を使う。E-AC-3は、AC-3と互換でありながら、改善されたスペクトル分解能、改善された量子化および改善された符号化を提供する。E-AC-3では、符号化効率はAC-3より高められており、低めのデータ・レートを有益に使用できる。これは、時間データを周波数領域データに変換するための改善されたフィルタバンク、改善された量子化、向上されたチャンネル結合、スペクトル拡張および過渡プレノイズ処理(TPNP: transient pre-noise processing)と呼ばれる技法を使って達成される。
【0053】
時間データを周波数データに変換するための重複変換MDCTに加えて、E-AC-3は、定常的なオーディオ信号について適応ハイブリッド変換(AHT: adaptive hybrid transform)を使う。AHTは重複カイザー・ベッセル派生(KBD)窓を用いたMDCTと、定常信号についてはそれに続く、非窓処理、非重複のII型離散コサイン変換(DCT)の形の二次ブロック変換とを含む。このように、AHTは、定常的な特性をもつオーディオが存在するとき、既存のAC-3のMDCT/KBDフィルタバンクのあとに第二段のDCTを追加して、六個の256係数変換ブロックを周波数分解能が増した単一の1536係数ハイブリッド変換ブロックに変換する。この増大した周波数分解能は、六次元ベクトル量子化(VQ: vector quantization)および利得適応量子化(GAQ: gain adaptive quantization)と組み合わされて、いくつかの信号、たとえば「符号化困難な」信号について符号化効率を改善する。VQは、それほどの精度が要求されない周波数帯域を効率的に符号化するのに使われ、GAQは高めの精度の量子化が要求されるときにより高い効率を提供する。
【0054】
改善された符号化効率は、位相保存(phase preservation)とともにチャンネル結合(channel coupling)を使うことを通じても得られる。この方法は、復号時に各チャンネルの高周波数部分を再構成する高周波数モノ複合チャンネルを使うAC-3のチャンネル結合方法をもとに拡張する。位相情報の追加と、ビットストリーム中で送られるスペクトル振幅情報の、エンコーダに制御される処理とがこのプロセスの忠実度を改善し、それにより、モノ複合チャンネルが、それまで可能であったより低い周波数に拡張されることができる。これはエンコードされる有効帯域幅を減らし、よって符号化効率を高める。
【0055】
E-AC-3はスペクトル拡張をも含む。スペクトル拡張は、上の(upper)周波数変換係数を、下の(lower)周波数スペクトル・セグメントを周波数において上に移したもので置き換えることを含む。移されたセグメントのスペクトル特性は、変換係数のスペクトル修正を通じて、また整形されたノイズ成分の移された下の周波数スペクトル・セグメントとの混合と通じて、オリジナルにマッチされる。
【0056】
E-AC-3は低周波数効果(LFE)チャンネルを含む。これは、限られた(<120Hz)帯域幅の任意的な単一のチャンネルであり、フル帯域幅のチャンネルに対して+10dBのレベルで再生されることが意図されている。この任意的なLFEチャンネルにより、低周波数音について高い音圧レベルが提供できる。他の符号化規格、たとえばAC-3およびHE-AACも任意的なLFEチャンネルを含む。
【0057】
低データ・レートでのオーディオ品質を改善するための追加的な技法は、後述する過渡プレノイズ処理の使用である。
【0058】
AC-3復号
典型的なAC-3デコーダ実装では、メモリおよびデコーダ・レイテンシ要求をできるだけ小さくしておくため、各AC-3フレームは一連のネストされたループにおいて復号される。
【0059】
第一のステップはフレーム整列を確立する。これは、AC-3同期語を見出し、次いでCRC誤り検出語が誤りなしを示していることを確認すことを含む。ひとたびフレーム同期が見出されたら、BSIデータがアンパックされて、符号化されたチャンネル数といった重要なフレーム情報を決定する。チャンネルの一つはLFEチャンネルであってもよい。符号化されたチャンネル数は本稿ではN.nと記される。ここで、nはLFEチャンネルの数であり、Nはメイン・チャンネルの数である。現在使われている符号化規格では、n=0または1である。将来には、n>1であるケースが生じることがありうる。
【0060】
復号における次のステップは、六つのオーディオ・ブロックのそれぞれをアンパックすることである。出力パルス符号変調データ(PCM)バッファのメモリ要求を最小限にするため、オーディオ・ブロックは一つずつアンパックされる。各ブロック期間の終わりに、PCM結果が、多くの実装では、出力バッファにコピーされ、該バッファはハードウェア・デコーダでのリアルタイム動作のために、典型的には、デジタル‐アナログ変換器(DAC: digital-to-analog converter)による直接割り込みアクセス(direct interrupt access)のためにダブル・バッファリングまたは環状バッファリングされる。
【0061】
AC-3デコーダのオーディオ・ブロック処理は、二つの相異なる段階に分割できる。それらの段階をここでは入力処理および出力処理と称する。入力処理はあらゆるビットストリーム・アンパッキングおよび符号化チャンネル操作を含む。出力処理は主として逆MDCT変換の窓処理および重複加算段階を指す。
【0062】
この区別をするのは、本稿でM≧1で表す、AC-3デコーダによって生成されるメイン出力チャンネルの数が必ずしも、本稿でNで表す(N≧1)ビットストリーム中にエンコードされている入力メイン・チャンネルの数に一致しないからである。必ずというわけではないが、典型的にはN≧Mである。ダウンミキシングの使用により、デコーダはいかなる数Nの符号化されるチャンネルをもつビットストリームでも受け入れることができ、任意の数Mの(M≧1)出力チャンネルを生成できる。一般に、本稿では出力チャンネルの数はM.mと表され、Mはメイン・チャンネルの数であり、mはLFE出力チャンネルの数であることを注意しておく。今日の応用では、m=0または1である。将来にはm>1とすることも可能でありうる。
【0063】
ダウンミキシングにおいて、符号化されたチャンネルのすべてが出力チャンネルに含められるわけではないことを注意しておく。たとえば、5.1からステレオへのダウンミックスでは、LFEチャンネル情報は通例破棄される。このように、一部のダウンミキシングでは、n=1かつm=0である。すなわち、出力LFEチャンネルはない。
【0064】
図1は、実行されたときに典型的なAC-3復号プロセスを行う命令の擬似コード100を示している。
【0065】
AC-3復号における入力処理は典型的には、デコーダが、オーディオ・ブロックの先頭に位置するパラメータおよびフラグの集合である固定オーディオ・ブロック・データをアンパックするときに始まる。この固定データは、ブロック切り換えフラグ、結合情報、指数およびビット割り当てパラメータといった項目を含む。「固定データ(fixed data)」という用語は、これらのビットストリーム要素のための語のサイズが先験的に知られており、そのような要素を復元するために可変長復号プロセスは必要とされないという事実をいったものである。
【0066】
指数は、符号化された各チャンネルからのすべての指数を含むので、固定データ領域中の単一の最も大きなフィールドをなす。符号化モードに依存して、AC-3では、仮数一つ当たり最大一つの指数があってもよく、チャンネル一つ当たり256までの仮数があってもよい。これらの指数のすべてをローカル・メモリにアンパックするのではなく、多くのデコーダ実装は指数フィールドへのポインタを保存し、必要とされる際に一チャンネルずつアンパックする。
【0067】
ひとたび固定データがアンパックされると、多くの既知のAC-3デコーダは符号化された各チャンネルの処理を開始する。まず、所与のチャンネルについての指数が入力フレームからアンパックされる。次いで、ビット割り当て計算が典型的には実行され、これは前記指数およびビット割り当てパラメータを受けて、パックされた各仮数についての語のサイズを計算する。次いで仮数が典型的には入力フレームからアンパックされる。仮数は、適切なダイナミックレンジ制御を与え、必要であれば結合動作を打ち消すために、スケーリングされ、次いで指数によって非正規化される(denormalized)。最後に、プレ重複加算(pre-overlap-add)データという、「窓領域(window domain)」と呼ばれるものの中のデータを決定するために、逆変換が計算され、その結果が、その後の出力処理のために、適切なダウンミックス・バッファ中にダウンミキシングされる。
【0068】
いくつかの実装では、個々のチャンネルについての指数は「MDCTバッファ」と呼ばれる256サンプル長のバッファ中にアンパックされる。これらの指数は次いでビット割り当ての目的のために50もの帯域にグループ化される。各帯域中の指数の数は、より高いオーディオ周波数に向かうほど増大し、ほぼ、音響心理学上の臨界帯域をモデル化する対数的な分割に従う。
【0069】
これらのビット割り当て帯域のそれぞれについて、指数およびビット割り当てパラメータが組み合わされて、その帯域中の各仮数について仮数語サイズが生成される。これらの語サイズは24サンプル長の帯域バッファに記憶され、最も幅広いビット割り当て帯域は24個の周波数ビンからなる。ひとたびこれらの語サイズが計算されたら、対応する仮数が入力フレームからアンパックされて、もとの帯域バッファ中のしかるべき位置に記憶される。これらの仮数はスケーリングされ、対応する指数によって非正規化され、書き込まれる、たとえばもとのMDCTバッファ中のしかるべき位置に書き込まれる。すべての帯域が処理され、すべての仮数がアンパックされたのち、MDCTバッファ中に残っている位置があればそれらの位置は典型的にはゼロが書き込まれる。
【0070】
逆変換が実行される、たとえばMDCTバッファ中のしかるべき位置で実行される。この処理の出力である窓領域データは、次いで、メタデータに従って決定される、たとえばメタデータに従ってあらかじめ定義されたデータからフェッチされるダウンミックス・パラメータに従って、適切なダウンミックス・バッファ中にダウンミキシングされることができる。
【0071】
ひとたび入力処理が完了し、ダウンミックス・バッファが窓領域のダウンミックスされたデータをもってフルに生成されたら、デコーダは出力処理を実行できる。各出力チャンネルについて、ダウンミックス・バッファおよびその対応する128サンプル長の半ブロック遅延バッファが窓処理され、組み合わされて、256個のPCM出力サンプルを生じる。デコーダおよび一つまたは複数のDACを含むハードウェア・サウンド・システムでは、これらのサンプルはDAC語幅に丸められ、出力バッファにコピーされる。ひとたびこれがなされたら、ダウンミックス・バッファの半分は次いでその対応する遅延バッファにコピーされる。これにより、次のオーディオ・ブロックの適正な再構成に必要な50%の重複情報が与えられる。
【0072】
E-AC-3符号化
本発明の個別的な実施形態は、M.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するよう、エンコードされたオーディオ・データのN.nで表されるある数のチャンネルを含むオーディオ・データを復号するオーディオ・デコーダ、たとえばE-AC-3エンコードされたオーディオ・データを復号するE-AC-3オーディオ・デコーダを動作させる方法を含む。ここで、n=0または1であり、m=0または1であり、M≧1である。n=1は一つの入力LFEチャンネルを示し、m=1は一つの出力LFEチャンネルを示す。M<Nであることはダウンミキシングを示し、M>Nであることはアップミキシングを示す。
【0073】
本方法は、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを受け入れ、エンコード方法によってエンコードすることを含む。該エンコード方法は、たとえば重複変換を使ってNチャンネルのデジタル・オーディオ・データを変換し、周波数領域の指数および仮数データを形成およびパッキングし、前記周波数領域の指数および仮数データに関係したメタデータを形成およびパッキングすることを含むエンコード方法であり、たとえばE-AC-3エンコード方法である。前記メタデータは任意的に、過渡プレノイズ処理に関係したメタデータを含む。
【0074】
本稿に記載されるいくつかの実施形態は、E-AC-3規格またはE-AC-3規格に対して上位互換な規格に従ってエンコードされ、5つより多い符号化されたメイン・チャンネルを含んでいてもよいエンコードされたオーディオ・データを受け入れるよう設計される。
【0075】
下記でより詳細に述べるように、本方法は、受け入れられたオーディオ・データを復号することを含む。復号は:前記メタデータをアンパックし、周波数領域の指数および仮数データをアンパックおよび復号し;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定し;周波数領域データを逆変換し;窓処理および重複加算を適用してサンプリングされたオーディオ・データを決定し;過渡プレノイズ処理に関係した前記メタデータに従って必要とされる過渡プレノイズ処理復号があればそれを適用し;M<Nの場合、ダウンミキシング・データに従って、ダウンミキシングすることを含む。ダウンミキシングは、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従ってダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、ダウンミキシングすることを含む。
【0076】
本発明のいくつかの実施形態では、デコーダは、ベクトル命令を含む、ストリーミング単一命令複数データ(SIMD)拡張(SSE)命令を実行する少なくとも一つのx86プロセッサを使う。そのような実施形態では、ダウンミキシングは、前記一つまたは複数のx86プロセッサの少なくとも一つでベクトル命令を走らせることを含む。
【0077】
本発明のいくつかの実施形態では、AC-3オーディオであってもよいE-AC-3オーディオ用の復号方法は、二回以上適用できる、すなわち異なるデコーダ実装において二回以上インスタンス生成されることのできる動作モジュールに分割される。復号を含む方法の場合、復号は、フロントエンド復号(FED: front-end decode)動作のセットとバックエンド復号(BED: back-end decode)動作のセットに分割される。後述するように、フロントエンド復号動作はAC-3またはE-AC-3ビットストリームのフレームの周波数領域の指数および仮数データをアンパックおよび復号して、そのフレームについての、アンパックされ復号された周波数領域の指数および仮数データおよびそのフレームの付随するメタデータを得る。バックエンド復号動作は、変換係数を決定し、決定された変換係数を逆変換し、窓処理および重複加算動作を適用し、必要とされる過渡プレノイズ処理復号があればそれを適用し、ビットストリーム中の符号化されているチャンネルより少数の出力チャンネルがある場合には、ダウンミキシングを適用することを含む。
【0078】
本発明のいくつかの実施形態は、処理システムの一つまたは複数のプロセッサによって実行されたときに処理システムに、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成することを実行させる命令を記憶しているコンピュータ可読記憶媒体を含み、M≧1である。今日の規格では、n=0または1であり、m=0または1であるが、本発明はそれに限定されない。前記命令は、実行されたときに、エンコード方法、たとえばAC-3またはE-AC-3によってエンコードされた、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを受け入れさせる命令を含む。前記命令はさらに、実行されたときに、受け入れられたオーディオ・データを復号させる命令を含む。
【0079】
そのようないくつかの実施形態では、受け入れられたオーディオ・データは、符号化されたデータのフレームからなるAC-3またはE-AC-3ビットストリームの形である。実行されたときに、受け入れられたオーディオ・データを復号させる前記命令は、フロントエンド復号(FED)モジュールおよびバックエンド復号(BED)モジュールを含む、一組の再使用可能な命令モジュールに分割される。フロントエンド復号モジュールは、実行されたときに、ビットストリームのフレームの周波数領域の指数および仮数データをアンパックおよび復号してそのフレームについてのアンパックされ復号された周波数領域の指数および仮数データおよびそのフレームの付随するメタデータにさせる命令を含む。バックエンド復号モジュールは、実行されたときに、変換係数を決定し、逆変換し、窓処理および重複加算動作を適用し、必要とされる過渡プレノイズ処理復号があればそれを適用し、入力された符号化されているチャンネルより少数の出力チャンネルがある場合には、ダウンミキシングを適用することを行わせる命令を含む。
【0080】
図2のA〜Dは、一つまたは複数の共通モジュールを有利に使用できるいくつかの異なるデコーダ構成をブロック概略図の形で示している。図2のAは、AC-3またはE-AC-3で符号化された5.1オーディオのための例示的なE-AC-3デコーダ200のブロック概略図である。もちろん、ブロック図におけるブロックをいうときの用語「ブロック」の使用は、ある量のオーディオ・データを表す、オーディオ・データのブロックと同じではない。デコーダ200は、AC-3またはE-AC-3フレームを受け入れ、フレームごとに、フレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることを行うフロントエンド復号(FED)モジュール201を含む。デコーダ200はまた、フロントエンド復号モジュール201からの周波数領域の指数および仮数データを受け入れ、それを5.1チャンネルまでのPCMオーディオ・データに復号するバックエンド復号(BED)モジュール203をも含む。
【0081】
デコーダのフロントエンド復号モジュールおよびバックエンド復号モジュールへの分解は、設計上の選択であり、必須の分割ではない。そのような分割は、いくつかの代替的な構成で共通のモジュールをもつという恩恵を与える。FEDモジュールは、そのような代替的な諸構成に共通であることができ、多くの構成では、FEDモジュールによって実行されるような、フレームのメタデータのアンパックおよびフレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることが共通している。
【0082】
代替的な構成の一例として、図2のBは、AC-3またはE-AC-3符号化5.1オーディオを復号するとともに、E-AC-3符号化フレームの5.1チャンネルまでのオーディオを5.1チャンネルまでのAC-3符号化フレームに変換する、E-AC-3符号化5.1オーディオのためのE-AC-3デコーダ/変換器210のブロック概略図である。デコーダ/変換器210は、AC-3またはE-AC-3フレームを受け入れ、フレームごとに、フレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることを行うフロントエンド復号(FED)モジュール201を含む。デコーダ/変換器210はまた、デコーダ200のバックエンド復号(BED)モジュールと同じまたは同様であり、フロントエンド復号モジュール201からの周波数領域の指数および仮数データを受け入れ、それを5.1チャンネルまでのPCMオーディオ・データに復号するバックエンド復号(BED)モジュール203をも含む。デコーダ/変換器210はまた、メタデータを変換するメタデータ変換器モジュール205と、フロントエンド復号モジュール201からの周波数領域の指数および仮数データを受け入れ、そのデータを、高々AC-3で可能な640kbpsの最大データ・レートの、5.1チャンネルまでのオーディオ・データのAC-3フレームとしてエンコードするバックエンド・エンコード・モジュール207とを含む。
【0083】
代替的な構成の一例として、図2のCは、5.1チャンネルまでの符号化オーディオのAC-3フレームを復号するとともに7.1チャンネルまでのオーディオのE-AC-3符号化フレームを復号するE-AC-3デコーダのブロック概略図である。デコーダ220はフレーム情報解析モジュール221を含む。フレーム情報解析モジュール221は、BSIデータをアンパックし、フレームおよびフレーム種別を識別し、フレームを適切なフロントエンド・デコーダ要素に与える。一つまたは複数のプロセッサおよび実行されたときに各モジュールの機能を実行させる命令が記憶されているメモリを含む典型的な実装では、フロントエンド復号モジュールの複数のインスタンス生成したものおよびバックエンド復号モジュールの複数のインスタンス生成したものが動作していてもよい。E-AC-3デコーダのいくつかの実施形態では、BSIアンパッキング機能は、BSIデータを見るために、フロントエンド復号モジュールから分離される。これは、さまざまな代替的な実装において使用される共通のモジュールを提供する。図2のCは、7.1チャンネルまでのオーディオ・データに好適なそのようなアーキテクチャーをもつデコーダのブロック概略図である。図2のDは、そのようなアーキテクチャーをもつ5.1デコーダ240のブロック概略図である。デコーダ240はフレーム情報解析モジュール241、フロントエンド復号モジュール243およびバックエンド復号モジュール245を含む。これらのFEDおよびBEDモジュールは、図2のCのアーキテクチャーにおいて使用されたFEDおよびBEDモジュールと構造が同様であってもよい。
【0084】
図2のCに戻ると、フレーム情報解析モジュール221は、5.1チャンネルまでの独立なAC-3/E-AC-3符号化フレームのデータを、AC-3またはE-AC-3フレームを受け入れ、フレームごとに、フレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることを行うフロントエンド復号モジュール223に与える。周波数領域の指数および仮数データは、デコーダ200のBEDモジュール203と同じまたは同様であるバックエンド復号モジュール255によって受け入れられる。バックエンド復号モジュール255は、フロントエンド復号モジュール223から周波数領域の指数および仮数データを受け入れ、そのデータを5.1チャンネルまでのPCMオーディオ・データに復号する。追加的なチャンネル・データの従属的なAC-3/E-AC-3符号化フレームがあればそれは、他のFEDモジュールと同様である別のフロントエンド復号モジュール227に与えられる。該別のフロントエンド復号モジュール227はフレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにする。バックエンド復号モジュール229はFEDモジュール227からデータを受け入れ、そのデータを復号して任意の追加的なチャンネルのPCMオーディオ・データにする。PCMチャンネル・マッピング器モジュール231が、それぞれのBEDモジュールからの復号されたデータを組み合わせて、7.1チャンネルまでのPCMデータを与えるのに使われる。
【0085】
5つより多くの符号化されたメイン・チャンネルがある場合、すなわちN>5の場合、たとえば7.1符号化チャンネルがある場合、符号化されたビットストリームは、5.1までの符号化チャンネルの独立フレームと、少なくとも一つの従属フレームの符号化データとを含む。そのような場合のためのソフトウェア実施形態、たとえば実行のための命令を記憶するコンピュータ可読媒体を含む実施形態では、命令は、複数の5.1チャンネル復号モジュールとして構成され、各5.1チャンネル復号モジュールは、フロントエンド復号モジュールのそれぞれのインスタンス生成したものおよびバックエンド復号モジュールのそれぞれのインスタンス生成したものを含む。前記複数の5.1チャンネル復号モジュールは、実行されたときに独立フレームの復号をさせる第一の5.1チャンネル復号モジュールと、それぞれの従属フレームについての一つまたは複数の他のチャンネル復号モジュールとを含む。いくつかのそのような実施形態では、命令は、実行されたときに、各フレームからのビットストリーム情報(BSI)をアンパックしてフレームおよびフレーム種別を識別させ、識別されたフレームを適切なフロントエンド復号モジュールのインスタンス生成したものに与える命令のフレーム情報解析モジュールと、実行されたとき、N>5の場合、それぞれのバックエンド復号モジュールからの復号されたデータを組み合わせてN個のメイン・チャンネルの復号データを形成させる命令のチャンネル・マッピング器モジュールとを含む。
【0086】
AC-3/E-AC-3デュアル・デコーダ変換器の動作方法
本発明のある実施形態は、それぞれ高々5.1チャンネルをもつ「メイン」および「付随」と表される二つのAC-3/E-AC-3入力ビットストリームを復号してPCMオーディオにし、変換の場合、メイン・オーディオ・ビットストリームをE-AC-3からAC-3に変換し、復号の場合、メイン・ビットストリームおよびもし存在すれば付随ビットストリームを復号する、デュアル・デコーダ変換器(DDC: dual decoder converter)の形である。デュアル・デコーダ変換器は、任意的に、付随オーディオ・ビットストリームから抽出された混合メタデータを使って、二つのPCM出力を混合する。
【0087】
デュアル・デコーダ変換器の一つの実施形態は、前記二つまでのAC-3/E-AC-3入力ビットストリームの復号および/または変換に含まれるプロセスを実行するデコーダの動作方法を実行する。もう一つの実施形態は、処理システムの一つまたは複数のプロセッサによって実行されたときに、処理システムに、前記二つまでのAC-3/E-AC-3入力ビットストリームの復号および/または変換に含まれるプロセスを実行させる命令、たとえばソフトウェア命令を有する有形の記憶媒体の形である。
【0088】
AC-3/E-AC-3デュアル・デコーダ変換器のある実施形態は、六つのサブコンポーネントを有し、そのいくつかは共通のサブコンポーネントを含む。それらのモジュールは下記のとおり。
【0089】
デコーダ変換器:デコーダ変換器は、実行されたときに、AC-3/E-AC-3入力ビットストリーム(高々5.1チャンネル)を復号してPCMオーディオにする、および/または入力ビットストリームをE-AC-3からAC-3に変換するよう構成されている。デコーダ変換器は三つの主要なサブコンポーネントを有し、上記の図2のBに示した実施形態を実装できる。それらの主要なサブコンポーネントは下記のとおり。
【0090】
フロントエンド復号:FEDモジュールは、実行されたときに、AC-3/E-AC-3ビットストリームのフレームを復号して、生の周波数領域のオーディオ・データおよびその付随メタデータにするよう構成されている。
【0091】
バックエンド復号:BEDモジュールは、実行されたときに、FEDモジュールによって開始された復号プロセスの残りの部分を完遂するよう構成される。具体的には、BEDモジュールは(仮数および指数のフォーマットの)オーディオ・データを復号してPCMオーディオ・データにする。
【0092】
バックエンド・エンコード:バックエンド・エンコード・モジュールは、実行されたときに、FEDからのオーディオ・データの六つのブロックを使ってAC-3フレームをエンコードするよう構成される。バックエンド・エンコード・モジュールはまた、実行されたときに、含まれているメタデータ変換器モジュールを使って、E-AC-3メタデータを、同期し、解決し(resolve)、ドルビー・デジタル・メタデータに変換するよう構成される。
【0093】
5.1デコーダ:5.1デコーダ・モジュールは、実行されたときに、AC-3/E-AC-3入力ビットストリーム(高々5.1チャンネル)を復号してPCMオーディオにするよう構成される。5.1デコーダはまた、任意的に、外部アプリケーションによる使用のために、二つのAC-3/E-AC-3ビットストリームを混合するための混合メタデータを出力する。デコーダ・モジュールは二つの主要なサブコンポーネントを含む:上述したFEDモジュールと上述したBEDモジュールである。例示的な5.1デコーダのブロック図が図2のDに示されている。
【0094】
フレーム情報:フレーム情報モジュールは、実行されたときに、AC-3/E-AC-3フレームをパースして、そのビットストリーム情報をアンパックするよう構成される。アンパック・プロセスの一環として、フレームに対してCRC検査が実行される。
【0095】
バッファ記述子:バッファ記述子モジュールは、バッファ動作のためのAC-3、E-AC-3およびPCMバッファ記述および機能を含む。
【0096】
サンプル・レート変換器:サンプル・レート変換器は任意的で、実行されたときに、PCMオーディオを2倍アップサンプリングするよう構成される。
【0097】
外部混合器:外部混合器モジュールは任意的で、実行されたときに、メイン・オーディオ・プログラムおよび付随オーディオ・プログラムを、該付随オーディオ・プログラムにおいて供給される混合メタデータを使って混合して単一の出力オーディオ・プログラムにするよう構成される。
【0098】
〈フロントエンド復号モジュールの設計〉
フロントエンド復号モジュールは、AC-3の方法に従って、かつ定常信号用のAHTデータの復号、E-AC-3の向上したチャンネル結合およびスペクトル拡張を含むE-AC-3の追加的な復号側面に従って、データを復号する。
【0099】
有形の記憶媒体の形の実施形態の場合、フロントエンド復号モジュールは、処理システムの一つまたは複数のプロセッサによって実行されたときに、フロントエンド復号モジュールの動作について本稿で詳細に記述されている工程を引き起こす、有形の記憶媒体に記憶されたソフトウェア命令を含む。ハードウェア実装では、フロントエンド復号モジュールは、動作において、フロントエンド復号モジュールの動作について本稿で詳細に記述されている工程を実行するよう構成されている要素を含む。
【0100】
AC-3復号では、ブロックごとの復号が可能である。E-AC-3では、最初のオーディオ・ブロック――フレームのオーディオ・ブロック0――は6ブロックすべてのAHT仮数を含む。よって、ブロックごとの復号は典型的には使われず、むしろいくつかのブロックが一度に処理される。しかしながら、実際のデータの処理はもちろん、各ブロックに対して実行される。
【0101】
ある実施形態では、AHTが使われるかどうかに関わりなく、一様な復号方法/デコーダ・アーキテクチャを使うために、FEDモジュールは、チャネルごとに2つのパスを実行する。第一のパスは、ブロックごとにメタデータをアンパックし、パックされた指数および仮数のデータが記憶されている場所へのポインタを保存することを含み、第二のパスは、パックされた指数および仮数への保存されたポインタを使って、チャンネルごとに指数および仮数のデータをアンパックおよび復号することを含む。
【0102】
図3は、たとえば実行されたときにFED処理を行わせるメモリ内に記憶された命令の集合として実装されるフロントエンド復号モジュールのある実施形態のブロック概略図である。図3はまた、2パスのフロントエンド復号モジュール300の第一のパスの命令についての擬似コードならびに2パスのフロントエンド復号モジュールの第二のパスの命令についての擬似コードをも示している。FEDモジュールは以下のモジュールを含む。各モジュールは命令を含み、いくつかのそのような命令は、構造およびパラメータを定義するという意味で定義的である。
【0103】
チャンネル:チャンネル・モジュールは、メモリ内でオーディオ・チャンネルを表現するための構造を定義し、AC-3またはE-AC-3ビットストリームからオーディオ・チャンネルをアンパックおよび復号するための命令を提供する。
【0104】
ビット割り当て:ビット割り当てモジュールは、マスキング曲線を計算し、符号化されたデータについてのビット割り当てを計算するための命令を提供する。
【0105】
ビットストリーム動作:ビットストリーム動作モジュールはAC-3またはE-AC-3ビットストリームからデータをアンパックするための命令を提供する。
【0106】
指数:指数モジュールは、メモリにおいて指数を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから指数をアンパックおよび復号するよう構成された命令を提供する。
【0107】
指数および仮数:指数および仮数モジュールは、メモリにおいて指数および仮数を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから指数および仮数をアンパックおよび復号するよう構成された命令を提供する。
【0108】
マトリクス処理(matrixing):マトリクス処理モジュールは、実行されたときに、マトリクス処理されたチャンネルの逆マトリクス処理をサポートするよう構成された命令を提供する。
【0109】
補助データ:補助データ・モジュールは、FED処理を行うためにFEDモジュールにおいて使用される補助データ構造を定義する。
【0110】
仮数:仮数モジュールは、メモリにおいて仮数を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから仮数をアンパックおよび復号するよう構成された命令を提供する。
【0111】
適応ハイブリッド変換:AHTモジュールは、実行されたときに、E-AC-3ビットストリームから適応ハイブリッド変換データをアンパックおよび復号するよう構成された命令を提供する。
【0112】
オーディオ・フレーム:オーディオ・フレーム・モジュールは、メモリにおいてオーディオ・フレームを表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームからオーディオ・フレームをアンパックおよび復号するよう構成された命令を提供する。
【0113】
向上された結合(enhanced coupling):向上された結合モジュールは、メモリにおいて向上された結合チャンネルを表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから向上された結合チャンネルをアンパックおよび復号するよう構成された命令を提供する。向上された結合は、E-AC-3ビットストリームにおける伝統的な結合を、位相およびカオス情報を与えることによって拡張する。
【0114】
オーディオ・ブロック:オーディオ・ブロック・モジュールは、メモリにおいてオーディオ・ブロックを表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームからオーディオ・ブロックをアンパックおよび復号するよう構成された命令を提供する。
【0115】
スペクトル拡張(spectral extension):スペクトル拡張モジュールは、E-AC-3ビットストリームにおけるスペクトル拡張復号のためのサポートを提供する。
【0116】
結合(coupling):結合モジュールは、メモリにおいて結合を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから結合をアンパックおよび復号するよう構成された命令を提供する。
【0117】
図4は、図3のフロントエンド復号モジュール300のある実施形態の動作のための簡略化されたデータフロー図を示しており、図3に示した擬似コードおよびサブモジュールがどのように協働してフロントエンド復号モジュールの機能を実行するかを記述している。機能的な要素によって意味されているのは、処理機能を実行する要素である。そのような各要素は、ハードウェア要素または処理システムおよび実行されたときに当該機能を行う命令を含む記憶媒体であってもよい。ビットストリーム・アンパック機能要素403はAC-3/E-AC-3フレームを受け入れ、標準的なおよび/またはAHTビット割り当て機能要素405のためにビット割り当てパラメータを生成する。機能要素405は、最終的には含まれている標準的な/向上された結合分離(decoupling)機能要素407のための指数および仮数データを生成するための、ビットストリーム・アンパッキングのためのさらなるデータを生じる。機能要素407は、必要とされる再マトリクス処理があれば含まれている再マトリクス処理(rematrixing)機能要素409がそれを実行するための指数および仮数データを生成する。機能要素409は、必要とされるスペクトル拡張があれば含まれるスペクトル拡張復号機能要素411がそれを実行するための指数および仮数データを生成する。機能要素407ないし411は、機能要素403のアンパック動作によって得られたデータを使う。フロントエンド復号の結果は、指数および仮数データならびに追加的なアンパックされたオーディオ・フレーム・パラメータおよびオーディオ・ブロック・パラメータである。
【0118】
図3に示される第一のパスおよび第二のパスの擬似コードをより詳細に参照するに、第一のパスの命令は、実行されたときに、AC-3/E-AC-3フレームからメタデータをアンパックするよう構成されている。具体的には、第一のパスは、BSI情報をアンパックし、オーディオ・フレーム情報をアンパックすることを含む。(フレーム毎に6ブロックの場合)ブロック0から始まってブロック5までの各ブロックについて、固定データがアンパックされ、各チャンネルについて、ビットストリーム中のパックされた指数へのポインタが保存され、指数がアンパックされ、パックされた仮数が存在するビットストリーム中の位置が保存される。ビット割り当てが計算され、ビット割り当てに基づいて仮数がスキップされてもよい。
【0119】
第二のパスの命令は、実行されたときに、フレームからオーディオ・データを復号して、仮数および指数のデータを形成するよう構成されている。ブロック0から始めて各ブロックについて、アンパッキングは、パックされた指数への保存されたポインタをロードし、それによりポイントされる指数をアンパックし、ビット割り当てを計算し、パックされた仮数への保存されたポインタをロードし、それによりポイントされる仮数をアンパックすることを含む。復号は、標準的なおよび向上された結合分離を実行し、スペクトル拡張帯域(単数または複数)を生成し、他のモジュールから独立であるために、結果として得られるデータをメモリ、たとえば当該パスの内部メモリにとって外部のメモリに転送することを含む。それにより結果として得られるデータが他のモジュール、たとえばBEDモジュールによってアクセスできる。このメモリは、便宜上、「外部」メモリと呼ばれるが、当業者には明らかだろうが、すべてのモジュールについて使われる単一メモリ構造の一部であってもよい。
【0120】
いくつかの実施形態では、指数アンパッキングのために、第一のパスの間にアンパックされた指数は、メモリ転送を最小限にするために保存されない。あるチャンネルについてAHTが使われている場合、指数はブロック0からアンパックされて、1番から5番の他の5つのブロックにコピーされる。あるチャンネルについてAHTが使用されていない場合、パックされた指数へのポインタが保存される。チャンネル指数戦略が、指数を再使用することであるならば、保存されたポインタを使って指数は再びアンパックされる。
【0121】
いくつかの実施形態では、結合仮数のアンパッキング(coupling mantissa unpacking)のために、AHTが当該結合チャンネル(coupling channel)について使用される場合、AHT結合チャンネル仮数(AHT coupling channel mantissas)の六つすべてのブロックがブロック0においてアンパックされ、相関しないディザ(dither)を生じるために結合されたチャンネル(coupled channel)である各チャンネルについてディザが再生成される(regenerated)。AHTが当該結合チャンネルについて使用されない場合、結合仮数へのポインタが保存される。これらの保存されたポインタが、所与のブロック内の結合されたチャンネルである各チャンネルについて結合仮数を再アンパックするために使用される。
【0122】
〈バックエンド復号モジュールの設計〉
バックエンド復号(BED)モジュールは、周波数領域の指数および仮数データを受けて、それをPCMオーディオ・データに復号するよう動作する。PCMオーディオ・データは、ユーザー選択されたモード、ダイナミックレンジ圧縮およびダウンミックスに基づいてレンダリングされる。
【0123】
フロントエンド復号モジュールが指数および仮数データをフロントエンド・モジュールの作業メモリとは別個のメモリ――これは外部メモリと呼んでいる――に記憶するいくつかの実施形態では、BEDモジュールは、ダウンミックスおよび遅延バッファ要求を最小限にするために、ブロックごとのフレーム処理を使用し、フロントエンド・モジュールの出力と互換となるために、処理すべき指数および仮数データにアクセスするために外部メモリからの転送を使用する。
【0124】
有形の記憶媒体の形の実施形態の場合、バックエンド復号モジュールは、処理システムの一つまたは複数のプロセッサによって実行されたときに、バックエンド復号モジュールの動作について本稿で詳細に記述されている工程を引き起こす、有形の記憶媒体に記憶されたソフトウェア命令を含む。ハードウェア実装では、バックエンド復号モジュールは、動作において、バックエンド復号モジュールの動作について本稿で詳細に記述されている工程を実行するよう構成されている要素を含む。
【0125】
図5Aは、実行されたときにBED処理を行わせるメモリ内に記憶された命令の集合として実装されるバックエンド復号モジュール500のある実施形態のブロック概略図である。図5Aはまた、バックエンド復号モジュール500の命令についての擬似コードをも示している。BEDモジュールは以下のモジュールを含む。各モジュールは命令を含み、いくつかのそのような命令は定義的である。
【0126】
ダイナミックレンジ制御:ダイナミックレンジ制御モジュールは、実行されたときに、利得レンジング(gain ranging)を適用することおよびダイナミックレンジ制御を適用することを含む、復号された信号のダイナミックレンジを制御するための機能を実行させる命令を提供する。
【0127】
変換(transform):変換モジュールは、実行されたときに、逆変換を実行させる命令を提供する。逆変換の実行は、逆修正離散コサイン変換(IMDCT: inverse modified discrete cosine transform)を含み、逆修正離散コサイン変換の実行は、逆DCT変換を計算するために使われたプレ回転(pre-rotation)の実行、逆DCT変換を計算するために使われたポスト回転(post-rotation)の実行および逆高速フーリエ変換(IFFT: inverse fast Fourier transform)の決定を含む。
【0128】
過渡プレノイズ処理(transient pre-noise processing):過渡プレノイズ処理モジュールは、実行されたときに、過渡プレノイズ処理を実行させる命令を提供する。
【0129】
窓処理&重複加算(window & overlap-add):窓処理および重複加算モジュールは、実行されたときに、遅延バッファを用いて、逆変換されたサンプルから出力サンプルを再構成するために窓処理および重複/加算演算を行わせる命令を提供する。
【0130】
時間領域(TD: time domain)ダウンミックス:TDダウンミックス・モジュールは、実行されたときに、必要に応じてより少数のチャンネルへの時間領域でのダウンミキシングを行わせる命令を手供する。
【0131】
図6は、図5Aのバックエンド復号モジュール500のある実施形態の動作の簡略化したデータフロー図を示しており、図5Aに示されるコードおよびサブモジュール要素がどのように協働してバックエンド復号モジュールの機能を実行するかを記述している。利得制御機能要素603は、フロントエンド復号モジュール300から指数および仮数データを受け入れ、メタデータに従って、必要とされるダイナミックレンジ制御、ダイアログ正規化(dialog normalization)および利得レンジングがあればそれを適用する。結果として得られる指数および仮数データは、指数による仮数の非正規化機能要素605によって受け入れられる。機能要素605は逆変換のための変換係数を生成する。逆変換機能要素607はそれらの変換係数にIMDCTを適用し、窓処理および重複加算の前の時間サンプルを生成する。そのような重複加算の前の時間領域サンプルは本稿では「擬似時間領域」サンプルと呼ばれ、これらのサンプルは本稿で擬似時間領域と呼ばれる領域にある。それらのサンプルは、窓処理および重複加算機能要素609によって受け入れられる。機能要素609は、擬似時間領域サンプルに窓処理および重複加算動作を適用することによってPCMサンプルを生成する。メタデータに従って、過渡プレノイズ処理があれば、過渡プレノイズ処理機能要素611によって適用される。たとえばメタデータ中またはその他の仕方で指定されていれば、結果として得られる過渡プレノイズ処理後のPCMサンプルは、ダウンミキシング機能要素613によって、M.m個の出力チャンネルのPCMサンプルにダウンミックスされる。
【0132】
再び図5Aを参照するに、BEDモジュール処理のための擬似コードは、各データ・ブロックについて、あるチャンネルの諸ブロックについての仮数および指数データを外部メモリから転送し、各チャンネルについて:メタデータに従って、必要とされるダイナミックレンジ制御、ダイアログ正規化および利得レンジングがあればそれを適用し;指数によって仮数を非正規化して、逆変換のための変換係数を生成し;変換係数に対してIMDCTを計算して擬似時間領域サンプルを生成し;窓処理および重複加算演算を擬似時間領域サンプルに適用し;メタデータに従って、過渡プレノイズ処理があれば適用し;要求されていれば、M.m個の出力チャンネルのPCMサンプルに時間領域ダウンミキシングすることを含む。
【0133】
図5Aに示される復号の諸実施形態は、そのような利得調整を、メタデータに従ってダイアログ正規化オフセットを適用すること、および、メタデータに従ってダイナミックレンジ制御利得因子を適用することとして実行することを含む。データが周波数領域における仮数および指数の形で与えられている段階でそのような利得調整を実行することは、有利である。利得変化は時間とともに変わることがあり、周波数領域においてなされたそのような利得変化は、ひとたび逆変換および窓処理/重複加算演算が行われたら、なめらかなクロスフェードを与えるのである。
【0134】
過渡プレノイズ処理(Transient Pre-Noise Processing)
E-AC-3エンコードおよびデコードは、AC-3よりも低いデータ・レートで動作し、よりよいオーディオ品質を与えるよう設計されたものである。より低いデータ・レートでは、符号化されたオーディオのオーディオ品質は、特に比較的符号化困難な過渡的な素材について、負の影響を受けることがある。オーディオ品質に対するこの影響は、主として、こうした型の信号を正確に符号化するために利用可能なデータ・ビットの数が限られていることによる。過渡信号の符号化アーチファクトは、当該過渡信号の精細度(definition)の低下ならびに「過渡プレノイズ」アーチファクトとして示される。「過渡プレノイズ(transient pre-noise)」アーチファクトは、符号化量子化誤差のため、エンコード窓全体にわたって可聴ノイズを広げる(smear)。
【0135】
上記および図5および図6において記述されるように、BEDは過渡プレノイズ処理を提供する。E-AC-3エンコードは、適切なオーディオ・セグメントを、過渡プレノイズに先行して位置するオーディオを使って合成されるオーディオで置換することによって、過渡成分を含むオーディオがエンコードされるときに導入されうる過渡プレノイズ・アーチファクトを減らすために、過渡プレノイズ処理符号化(transient pre-noise processing coding)を含む。該オーディオは、時間スケーリング合成(time scaling synthesis)を使って処理され、それによりその継続時間は増加させられ、そのため、過渡プレノイズを含むオーディオを置換するのに適切な長さとなる。オーディオ合成バッファは、オーディオ・シーン解析および最大類似度処理を使って解析され、次いで、その継続時間が過渡プレノイズを含むオーディオを置換するのに十分長くされるよう時間スケーリングされる。長くされた合成オーディオは過渡プレノイズを置換するために使われ、合成されたオーディオからもとの符号化されたオーディオ・データへのなめらかな遷移を保証するよう、過渡成分の位置の直前の既存の過渡プレノイズ中にクロスフェードされる。過渡プレノイズ処理を使うことにより、ブロック切り換え(block switching)が無効にされている場合でさえ、過渡プレノイズの長さが劇的に削減されるまたは除去されることができる。
【0136】
あるE-AC-3エンコーダ実施形態では、過渡プレノイズ処理ツールのための時間スケーリング合成解析および処理は、時間領域データに対して実行されて、たとえば時間スケーリング・パラメータを含むメタデータ情報が決定される。メタデータ情報は、エンコードされたビットストリームと一緒にデコーダによって受け入れられる。送信された過渡プレノイズ・メタデータは、低データ・レートでの低ビットレートのオーディオ符号化によって導入された過渡プレノイズを削減または除去するために、復号されたオーディオに対して時間領域処理を実行するために使われる。
【0137】
E-AC-3エンコーダは、検出された各過渡成分について、オーディオ・コンテンツに基づいて、時間スケーリング合成解析を実行し、時間スケーリング・パラメータを決定する。時間スケーリング・パラメータは、追加的なメタデータとして、エンコードされたオーディオ・データと一緒に送信される。
【0138】
E-AC-3デコーダでは、E-AC-3メタデータにおいて提供されている最適な時間スケーリング・パラメータが、過渡プレノイズ処理における使用のために、受け入れられるE-AC-3メタデータの一部として受け入れられる。デコーダは、E-AC-3メタデータから得られる送信された時間スケーリング・パラメータを使って、オーディオ・バッファ・スプライシングおよびクロスフェードを実行する。
【0139】
最適時間スケーリング情報を使い、それを適切なクロスフェード処理とともに適用することにより、低ビットレートのオーディオ符号化によって導入された過渡プレノイズは、復号において、劇的に削減または除去されることができる。
【0140】
このように、過渡プレノイズ処理はプレノイズを、もとの内容に最もよく似たオーディオのセグメントで上書きする。過渡プレノイズ処理命令は、実行されるとき、コピー・オーバー(copy over)において使うために、4ブロックの遅延バッファを維持する。過渡プレノイズ処理命令は、実行されるとき、上書きが起こる場合、上書きされるプレノイズに対して出入りするクロスフェードを実行させる。
【0141】
〈ダウンミキシング〉
N.nがE-AC-3ビットストリームにおいてエンコードされるチャンネルの数を表すことにする。Nはメイン・チャンネルの数、n=0または1はLFEチャンネルの数である。しばしば、N個のメイン・チャンネルを、Mと表されるより少数の出力メイン・チャンネルにダウンミックスすることが所望される。M<NとしてNチャンネルからMチャンネルへのダウンミックスは、本発明の諸実施形態によってサポートされる。アップミックスも可能であり、その場合、M>Nである。
【0142】
このように、最も一般的な実装では、オーディオ・デコーダ実施形態は、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを復号して、M.mチャンネルの復号されたオーディオを含むオーディオ・データを復号するよう動作し、M≧1であり、n、mはそれぞれ入力、出力におけるLFEチャンネルの数である。ダウンミキシングはM<Nの場合であり、M<Nの場合、一組のダウンミキシング係数に従って、含められる。
【0143】
周波数領域のダウンミキシングと時間領域のダウンミキシング
ダウンミキシングは完全に周波数領域で、逆変換の前に行うこともできるし、逆変換後、ただし重複加算ブロック処理の場合には窓処理および重複加算演算の前に時間領域で行うこともできるし、あるいは窓処理および重複加算演算後に時間領域で行うこともできる。
【0144】
周波数領域(FD: frequency domain)ダウンミキシングは時間領域ダウンミキシングよりずっと効率的である。その効率性は、たとえば、ダウンミキシング段階後のいかなる処理ステップも残った数のチャンネルに対してのみ実行され、該残った数は一般にダウンミキシング後は少なくなっているという事実からくる。このように、ダウンミキシング段階後の全処理ステップの計算量が、少なくとも、入力チャンネルと出力チャンネルの比だけ削減される。
【0145】
一例として、5.0チャンネルからステレオへのダウンミックスを考えてみよう。この場合、あらゆる後続処理ステップの計算量が約5/2=2.5倍低下することになる。
【0146】
時間領域(TD)ダウンミキシングは、典型的なE-AC-3デコーダおよび上述し図5A、図6で図解した実施形態において使用される。典型的なE-AC-3デコーダが時間領域のダウンミキシングを使用する三つの主要な理由がある。
【0147】
異なるブロック型をもつチャンネル
エンコードされるべきオーディオ内容に依存して、E-AC-3エンコーダは、オーディオ・データをセグメント分割するのに、短いブロックおよび長いブロックという二つの異なるブロック型の間で選択をすることができる。倍音的(harmonic)でゆるやかに変化するオーディオ・データは典型的には長いブロックを使ってセグメント分割およびエンコードされ、一方、過渡信号は短いブロックを使ってセグメント分割およびエンコードされる。結果として、短いブロックおよび長いブロックの周波数領域表現は本来的に異なっており、周波数領域のダウンミキシング動作では組み合わせられない。
【0148】
ブロック型固有のエンコード段階がデコーダにおいて打ち消されたのちにはじめて、それらのチャンネルを一緒に混合することができる。このように、ブロック切り換えのある(block-switched)変換の場合、異なる部分的逆変換プロセスが使われ、二つの異なる変換の結果は、窓処理段の直前まで、直接組み合わせることはできないのである。
【0149】
しかしながら、まず短い長さの変換データを長いほうの周波数領域データに変換する諸方法が知られており、その場合、ダウンミキシングは、周波数領域で実行できる。にもかかわらず、大半の既知のデコーダ実装では、ダウンミキシングは、ダウンミキシング係数に従って逆変換後に実行される。
【0150】
アップミックス
出力メイン・チャンネルの数が入力メイン・チャンネルの数より多い、M>Nの場合、時間領域混合のアプローチは有益である。これはアップミキシング段階を処理の終わりのほうに繰り下げ、処理におけるチャンネル数を減らすからである。
【0151】
TPNP
過渡プレノイズ処理(TPNP)にかけらるブロックは、TPNPが時間領域で動作するため、周波数領域ではダウンミックされえないことがありうる。TPNPは、4つまでのブロックのPCMデータ(1024個のサンプル)の履歴を必要とし、それがTPNPが適用されるチャンネルについて存在していなければならない。よって、PCMデータ履歴を埋め、プレノイズ置換を実行するために時間領域ダウンミックスへの切り換えが必要となる。
【0152】
周波数領域と時間領域両方のダウンミキシングを使うハイブリッド・ダウンミキシング
本発明者らは、大半の符号化されたオーディオ信号におけるチャンネルは、90%より多くの時間にわたって同じブロック型を使うことを認識している。これは、TPNPがないとして、典型的な符号化オーディオ中のデータの90%より多くについて、より効率がよい周波数領域ダウンミキシングが機能するということを意味している。残りの10%以下が、典型的な従来技術のE-AC-3デコーダにおいて行われるような時間領域ダウンミキシングを必要とすることになる。
【0153】
本発明の諸実施形態は、ブロックごとにどちらのダウンミキシング方法を適用すべきかを決定するダウンミックス方法選択論理と、適宜個別的なダウンミキシング方法を適用するための時間領域ダウンミキシング論理および周波数領域ダウンミキシング論理の両方を含む。こうして、方法実施形態は、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定することを含む。ダウンミックス方法選択論理は、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定するよう動作し、過渡プレノイズ処理があるかどうかを判別し、N個のチャンネルのうちのいずれかが異なるブロック型をもつかどうかを判別することを含む。選択論理は、N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理がなく、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用されるべきであると決定する。
【0154】
図5Bは、実行されたときにBED処理を行わせるメモリ内に記憶された命令の集合として実装されるバックエンド復号モジュール520のある実施形態のブロック概略図である。図5Bはまた、バックエンド復号モジュール520の命令についての擬似コードをも示している。BEDモジュール520は図5Aに示した、時間領域ダウンミキシングのみを使うモジュールと、以下の追加的なモジュールとを含む。各追加的モジュールは命令を含み、いくつかのそのような命令は定義的である。
【0155】
ダウンミックス方法選択モジュールは、(i)ブロック型の変化があるかどうか、(ii)真のダウンミキシング(M<N)がなくアップミキシングがあるかどうか、および(iii)当該ブロックがTPNPにかけられるかどうかについて検査し、このうちどれも真でない場合、周波数領域ダウンミキシングを選択する。このモジュールは、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定することを実行する。
【0156】
周波数領域ダウンミックス・モジュール。これは、指数によって仮数を非正規化したのち、周波数領域ダウンミキシングを実行する。周波数領域ダウンミックス・モジュールはまた、時間領域から周波数領域への遷移論理モジュールをも含んでいることを注意しておく。該遷移論理モジュールは、直前のブロックが時間領域ダウンミックスを使ったかどうかを検査し、その場合、当該ブロックは異なる仕方で扱われる。これについては下記でより詳しく述べる。さらに、前記遷移論理モジュールはまた、ある種の、不規則的に繰り返されるイベント、たとえばフェードアウトするチャンネルのようなプログラム変化に関連付けられた処理ステップをも扱う。
【0157】
FDからTDへのダウンミックス遷移論理モジュール。これは直前のブロックが周波数領域ダウンミックスを使ったかどうかを検査し、その場合、当該ブロックは異なる仕方で扱われる。これについては下記でより詳しく述べる。さらに、前記遷移論理モジュールはまた、ある種の、不規則的に繰り返されるイベント、たとえばフェードアウトするチャンネルのようなプログラム変化に関連付けられた処理ステップをも扱う。
【0158】
さらに、図5Aにあるモジュールは、ハイブリッド・ダウンミキシング、すなわち現在ブロックについての一つまたは複数の条件に依存してFDおよびTD両方のダウンミキシングを含む実施形態では異なる振る舞いをすることがある。
【0159】
図5Bの擬似コードを参照するに、バックエンド復号方法のいくつかの実施形態は、外部メモリからあるフレームの諸ブロックのデータを転送したのち、FDダウンミキシングするかTDダウンミキシングするかを見きわめることを含む。FDダウンミキシングのためには、各チャンネルについて、当該方法は、(i)ダイナミックレンジ制御およびダイアログ正規化を適用し、ただし、後述するように、利得レンジングは無効にし;(ii)指数によって仮数を非正規化し;(iii)FDダウンミキシングを実行し;(iv)フェードアウトするチャンネルがあるかどうかまたは直前のブロックが時間領域ダウンミキシングによってダウンミキシングされたかどうかを見きわめ、その場合、処理は異なる仕方で実行される。これについては下記でより詳細に述べる。TDダウンミキシングの場合について、またFDダウンミックスされたデータについても、当該処理は、各チャンネルについて、(i)直前のブロックがFDダウンミックスされた場合、TDダウンミックスされるようブロックを異なる仕方で処理し、またプログラム変化があればそれに対処し;(ii)逆変換を決定し;(iii)窓重複加算を実行し;TDダウンミキシングの場合、(iv)TPNPがあればそれを実行し、適切な出力チャンネルにダウンミキシングすることを含む。
【0160】
図7は、単純なデータフロー図を示している。ブロック701は、ブロック型変化、TPNPまたはアップミキシングという三つの条件について試験し、いずれかの条件が真であればデータフローをTDダウンミキシング分枝721に差し向けるダウンミックス方法選択論理に対応する。TDダウンミキシング分枝721は、723における、FDダウンミキシングによって処理されたブロックの直後に現れるブロックを異なる仕方で処理し、プログラム変化処理するFDダウンミックス遷移論理と、725における指数による仮数の非正規化とを含む。ブロック721後のデータフローは、共通の処理ブロック731によって処理される。ダウンミックス方法選択論理ブロック701の試験が、当該ブロックがFDダウンミキシングのためのものであると判定する場合、データフローはFDダウンミキシング処理711に分岐する。FDダウンミキシング処理711は、利得レンジングを無効にし、指数によって仮数を非正規化し、FDダウンミキシングを実行する周波数領域ダウンミックス・プロセス713と、直前のブロックがTDダウンミキシングによって処理されたかどうかを判定し、そのようなブロックを異なる仕方で処理し、またフェードアウトするチャンネルのような何らかのプログラム変化を検出しこれに対処するTDダウンミックス遷移論理ブロック715とを含む。TDダウンミックス遷移ブロック715後のデータフローは、同じ共通の処理ブロック731に進む。
【0161】
共通の処理ブロック731は、逆変換および任意のさらなる時間領域処理を含む。該さらなる時間領域処理は、利得レンジングの打ち消しおよび窓処理および重複加算処理を含む。当該ブロックがTDダウンミキシング・ブロック721からの場合、該さらなる時間領域処理はさらに、TPNP処理および時間領域ダウンミキシングがあればそれを含む。
【0162】
図8は、図7に示したようなバックエンド復号モジュールについての処理のある実施形態のフローチャートである。このフローチャートは下記のように区分されており、同様な機能データフロー・ブロックについては図7と同じ参照符号を用いている。ダウンミックス方法選択論理セクション701では、論理的なフラグFD_dmxが、1のときに、当該ブロックについて周波数領域ダウンミキシングが使用されることを示すために使われる。TDダウンミキシング論理セクション721は、FDダウンミキシングによって処理されたブロックの直後に現れるブロックを異なる仕方で処理し、プログラム変化処理を実行する、FDダウンミックス遷移論理およびプログラム変化論理セクション723と、各入力チャンネルについて指数によって仮数を非正規化するセクションとを含む。ブロック721後のデータフローは、共通の処理セクション731によって処理される。ダウンミックス方法選択論理ブロック701が、当該ブロックがFDダウンミキシングのためのものであると判定する場合、データフローはFDダウンミキシング処理セクション711に分岐する。FDダウンミキシング処理セクション711は、利得レンジングを無効にし、各チャンネルについて、指数によって仮数を非正規化し、FDダウンミキシングを実行する周波数領域ダウンミックス・プロセスと、直前のブロックの各チャンネルについて、チャンネルのフェードアウトがあるかどうかまたは直前のブロックがTDダウンミキシングによって処理されたかどうかを判定し、そのようなブロックを異なる仕方で処理するTDダウンミックス遷移論理セクション715とを含む。TDダウンミックス遷移セクション715後のデータフローは、同じ共通の処理論理セクション731に進む。共通の処理論理セクション731は、各チャンネルについて、逆変換および任意のさらなる時間領域処理を含む。該さらなる時間領域処理は、利得レンジングの打ち消しおよび窓処理および重複加算処理を含む。FD_dmxが0であり、TDダウンミキシングを示すなら、731における前記さらなる時間領域処理は、TPNP処理があれば該処理と、時間領域ダウンミキシングをも含む。
【0163】
FDダウンミキシング後は、TDダウンミックス遷移論理セクション715内で、817において、入力チャンネルの数Nが出力チャンネルの数Mと同じに設定されることを注意しておく。これにより、残りの処理、たとえば共通の処理論理セクション731における処理は、ダウンミキシングされたデータに対してのみ実行される。これは、計算量を減らす。もちろん、TDダウンミキシング――そのようなTDダウンミキシングはセクション715内の819として示されている――されたブロックからの遷移があるときの直前のブロックからのデータの時間領域ダウンミキシングは、N個の入力チャンネルのうちダウンミキシングに関わるもののすべてに対して実行される。
【0164】
遷移の処理
復号において、オーディオ・ブロック間のなめらかな遷移をもつことが必要である。E-AC-3および他の多くのエンコード方法は、ラップ変換(lapped transform)、たとえば50%重複(overlapping)MDCTを使う。よって、現在ブロックを処理するとき、直前のブロックとの50%の重なりがあり、さらに、時間領域で次のブロックとの間に50%の重なりがある。本発明のいくつかの実施形態は、重複加算バッファを含む重複加算論理を使う。現在ブロックを処理するとき、重複加算バッファは直前のオーディオ・ブロックからのデータを含む。オーディオ・ブロック間でなめらかな遷移をもつことが必要なので、TDダウンミキシングからFDダウンミキシングへ、および、FDダウンミキシングからTDダウンミキシングへの遷移を異なる仕方で扱う論理が含められる。
【0165】
図9は、それぞれL、C、R、LSおよびRSで表される左、中央、右、左サラウンドおよび右サラウンドのチャンネルを含む一般的な5チャンネル・オーディオのブロックk、k+1、……、k+4で表される5つのブロックを処理し、次の公式を使ってステレオ・ミックスにダウンミキシングする例を示している。
【0166】
L'で表される左出力=aC+bL+cLS および
R'で表される右出力=aC+bR+cRS。
【0167】
図9は、非重複変換(non-overlapped transform)が使われることを想定している。各長方形はブロックのオーディオ内容を表す。横軸は、左から右へ、ブロックk、……、k+4を表し、縦軸は上から下に、データの復号の進行を表す。ブロックkがTDダウンミキシングによって処理され、ブロックk+1およびk+2がFDダウンミキシングによって処理され、ブロックk+3およびk+4がTDダウンミキシングによって処理されるとする。見て取れるように、各TDダウンミキシング・ブロックについては、ダウンミキシングは、下のほうの時間領域ダウンミキシング後まで行われない。該時間領域ダウンミキシング後に、それらの内容はダウンミキシングされたL'およびR'チャンネルとなる。一方、FDダウンミキシングされるブロックについては、周波数領域における左および右チャンネルがすでに周波数領域ダウンミキシング後にダウンミックスされ、C、LSおよびRSチャンネル・データは無視される。ブロック間の重複がないので、TDダウンミキシングからFDダウンミキシングへ、あるいはFDダウンミキシングからTDダウンミキシングへの切り換えの際に特別なケースの処理は必要とされない。
【0168】
図10は、50%重複(overlapped)変換の場合を記述している。重複加算が重複加算復号によって重複加算バッファを使って実行されるとする。この図では、データ・ブロックが二つの三角形として示されるときは、左下の三角形が、直前ブロックからの重複加算バッファ内のデータであり、一方、右上の三角形が現在ブロックからのデータを示す。
【0169】
TDダウンミックスからFDダウンミックスへの遷移についての遷移処理
TDダウンミキシング・ブロックの直後のFDダウンミキシング・ブロックであるブロックk+1を考えよう。TDダウンミキシング後、重複加算バッファは直前ブロックからのL、C、R、LSおよびRSデータを含み、これが現在ブロックのために含められる必要がある。また、すでにFDダウンミックスされている現在ブロックk+1の寄与も含められる。出力のためのダウンミックスされたPCMデータを適正に決定するために、現在ブロックおよび直前ブロックのデータが含められる必要がある。このために、直前ブロックのデータは、フラッシュ・アウトされ、まだダウンミキシングされていないので時間領域でダウンミキシングされる必要がある。出力のためのダウンミックスされたPCMデータを決定するために、これら二つの寄与が加算されなければならない。この処理は、図7および図8のTDダウンミックス遷移論理715に、および図5Bに示されるFDダウンミックス・モジュールに含まれるTDダウンミックス遷移論理中のコードによって、含められる。そこで実行される処理は、図8のTDダウンミックス遷移論理セクション715においてまとめられている。より詳細には、TDダウンミックスからFDダウンミックスへの遷移のための遷移処理は、下記を含む。
【0170】
・重複加算論理にゼロを供給し、窓処理および重複加算を実行することによって重複バッファをフラッシュ・アウトする(flush out)。重複加算論理からのフラッシュ・アウトされた出力をコピーする。これは、ダウンミキシング前のその特定のチャンネルの直前ブロックのPCMデータである。重複バッファは今やゼロを含んでいる。
【0171】
・重複バッファからのPCMデータを時間領域ダウンミックスして、直前ブロックのTDダウンミックスのPCMデータを生成する。
【0172】
・現在ブロックからの新たなデータの周波数領域ダウンミックス。逆変換を実行し、FDダウンミキシングおよび逆変換後の新たなデータを重複加算論理に供給する。該新たなデータに関して窓処理および重複加算などを実行し、現在ブロックのFDダウンミックスのPCMデータを生成する。
【0173】
・TDダウンミックスおよびFDダウンミックスのPCMデータを加えてPCM出力を生成する。
【0174】
ある代替的な実施形態では、直前ブロックにTPNPがなかったとして、重複加算バッファ内のデータがダウンミキシングされ、次いで重複加算演算がダウンミックスされた出力チャンネルに対して実行される。これは、各直前ブロックチャンネルについて重複加算演算を実行する必要を回避する。さらに、AC-3復号について上述したように、ダウンミックス・バッファとその対応する128サンプル長の半ブロック遅延バッファが使用され、窓処理され、組み合わされて256個のPCM出力サンプルを生成するとき、ダウンミックス演算はより単純になる。遅延バッファが256ではなくたった128個のサンプルだからである。この側面は、遷移処理に内在するピーク計算量を減らす。したがって、いくつかの実施形態では、データがTDダウンミックスされたブロックに続いてFDダウンミックスされる特定のブロックについて、遷移処理は、その特定のブロックの復号されたデータと重畳させられるべき直前ブロックのデータに、擬似時間領域においてダウンミキシングを適用することを含む。
【0175】
FDダウンミックスからTDダウンミックスへの遷移についての遷移処理
FDダウンミキシング・ブロックk+2の直後のTDダウンミキシング・ブロックであるブロックk+3を考えよう。直前ブロックがFDダウンミキシング・ブロックだったので、より早い段階、たとえばTDダウンミキシング前の重複加算バッファは、左および右のチャンネルにはダウンミックスされたデータを含み、他のチャンネルにはデータを含まない。現在ブロックの寄与がダウンミックスされるのは、TDダウンミキシング後のことである。出力のためのダウンミックスされたPCMデータを適正に決定するために、現在ブロックおよび直前ブロックのデータが含められる必要がある。このために、直前ブロックのデータは、フラッシュ・アウトされる必要がある。出力のためのダウンミックスされたPCMデータを決定するためには、現在ブロックのデータは、時間領域でダウンミキシングされ、フラッシュ・アウトされた逆変換されたデータに加えられる必要がある。この処理は、図7および図8のFDダウンミックス遷移論理723に、および図5Bに示されるFDダウンミックス遷移論理モジュールに含まれるコードによって、含められる。そこで実行される処理は、図8のFDダウンミックス遷移論理セクション723においてまとめられている。より詳細には、各出力チャンネルについて出力PCMバッファがあるとして、FDダウンミックスからTDダウンミックスへの遷移のための遷移処理は、下記を含む。
【0176】
・重複加算論理にゼロを供給し、窓処理および重複加算を実行することによって重複バッファをフラッシュ・アウトする。その出力を出力PCMバッファにコピーする。フラッシュ・アウトされたデータは、直前ブロックのFDダウンミックスのPCMデータである。重複バッファは今やゼロを含んでいる。
【0177】
・現在ブロックの新たなデータの逆変換を実行し、現在ブロックのダウンミキシング前データを生成する。この新しい時間領域データ(変換後)を重複加算論理に供給する。
【0178】
・現在ブロックからの該新たなデータに関して窓処理および重複加算、もしあればTPNPならびにTDダウンミックスを実行し、現在ブロックのTDダウンミックスのPCMデータを生成する。
【0179】
・TDダウンミックスおよびFDダウンミックスのPCMデータを加えてPCM出力を生成する。
【0180】
時間領域ダウンミキシングから周波数領域ダウンミキシングへの遷移に加えて、時間領域ダウンミックス遷移論理およびプログラム変化ハンドラにおいて、プログラム変化が扱われる。新たに出現するチャンネルが自動的にダウンミックスに含められ、よっていかなる特別な処置も必要としない。新たなプログラムにおいてもはや存在しないチャンネルはフェードアウトされる必要がある。これは、FDダウンミキシングの場合について図8のセクション715において示されるように、フェードするチャンネルの重複バッファをフラッシュ・アウトすることによって実行される。フラッシュ・アウトは、重複加算論理にゼロを供給し、窓処理および重複加算を実行することによって実行される。
【0181】
図示したフローチャートおよびいくつかの実施形態では、周波数領域ダウンミックス論理セクション711は、周波数領域ダウンミックスの一部であるすべてのチャンネルについて任意的な利得レンジング機能を無効にすることを含むことを注意しておく。諸チャンネルは異なる利得レンジング・パラメータを有していてもよく、これはチャンネルのスペクトル係数の異なるスケーリングを誘導し、よってダウンミックスを妨げるのである。
【0182】
ある代替的な実装では、FDダウンミキシング論理セクション711は、すべての利得のうち最小のものが、(周波数領域)ダウンミックスされたチャンネルについての利得レンジングを実行するために使われるよう、修正される。
【0183】
変化するダウンミキシング係数をもつ時間領域ダウンミキシングならびに明示的なクロスフェードの必要性
ダウンミキシングはいくつかの問題を生じうる。異なるダウンミックスの式が異なる状況において求められる。よって、ダウンミックス係数は、信号条件に基づいて動的に変化する必要があることがある。最適な結果を求めてダウンミックス係数を調整することを許容するメタデータ・パラメータが利用可能である。
【0184】
このように、ダウンミックス係数は時間とともに変化できる。第一の組のダウンミキシング係数から第二の組のダウンミキシング係数への変化があるとき、データは、第一の組から第二の組へとクロスフェードされるべきである。
【0185】
ダウンミキシングが周波数領域で実行されるとき、また多くのデコーダ実装において、たとえば図1に示すような従来技術のAC-3デコーダにおいて、ダウンミキシングは窓処理および重複加算演算の前に実行される。ダウンミキシングを周波数領域で、あるいは時間領域で窓処理および重複加算の前に実行することの利点は、重複加算演算の結果として内在的なクロスフェードがあるということである。よって、ダウンミキシングが逆変換後に窓領域で、あるいはハイブリッド・ダウンミキシング実装において周波数領域で実行される多くの既知のAC-3デコーダおよび復号方法においては、明示的なクロスフェード処理はない。
【0186】
時間領域ダウンミキシングおよび過渡プレノイズ処理(TPNP)の場合、たとえば7.1デコーダにおけるプログラム変化の問題によって引き起こされる、過渡プレノイズ処理復号における1ブロックの遅延がある。よって、本発明の諸実施形態において、ダウンミキシングが時間領域で実行され、TPNPが使用されるとき、時間領域ダウンミキシングは窓処理および重複加算後に実行される。時間領域ダウンミキシングが使用される場合の処理の順序は:逆変換、たとえばMDCTを実行、窓処理および重複加算を実行、過渡プレノイズ処理復号があればそれを実行(遅延なし)、そして時間領域ダウンミキシングである。
【0187】
そのような場合、時間領域ダウンミキシングは、ダウンミックス係数における変化があったとしてもならされてしまうことを保証するよう、前および現在のダウンミキシング・データ、たとえばダウンミキシング係数またはダウンミキシング・テーブルのクロスフェードを必要とする。
【0188】
一つの選択肢は、結果として得られる係数を計算するようクロスフェード処理を実行することである。使用すべきミキシング係数をc[i]で表す。ここで、iは256個の時間領域サンプルの時間インデックスを表し、範囲はi=0,…,255である。w2[i]は、i=0,…,255についてw2[i]+w2[255−i]=1となるような正の窓関数を表すとする。coldは、更新前のミキシング係数、cnewは更新されたミキシング係数を表すとする。適用すべきクロスフェード処理は:
c[i]=w2[i]・cnew+w2[255−i]・cold i=0,…255
となる。
【0189】
係数クロスフェード処理を通じた各パス後、cold←cnewのように、古い係数は新しい係数で更新される。
【0190】
次のパスでは、係数が更新されない場合、
c[i]=w2[i]・cnew+w2[255−i]・cnew=cnew
となる。
【0191】
換言すれば、古い係数の組の影響は完全になくなっているのである!
本発明者は、多くのオーディオ・ストリームおよびダウンミキシング状況において、ミキシング係数はしばしば変化しないことを観察した。時間領域ダウンミキシング・プロセスのパフォーマンスを改善するため、時間領域ダウンミキシング・モジュールの諸実施形態は、ダウンミキシング係数がその前の値から変化しているかどうかを見きわめるべく試験し、変化していなければダウンミキシングを実行し、変化していれば、事前選択された正の窓関数に従ってダウンミキシング係数のクロスフェードを実行することを含む。ある実施形態では、窓関数は、窓処理および重複加算演算において使用されるのと同じ窓関数である。別の実施形態では、異なる窓関数が使用される。
【0192】
図11は、ダウンミキシングのある実施形態についての簡略化された擬似コードを示している。そのような実施形態についてのデコーダは、SSEベクトル命令を実行する少なくとも一つのx86プロセッサを使用する。ダウンミキシングは、新しいダウンミキシング・データが古いダウンミキシング・データから不変であるかどうかを見きわめることを含む。もしそうであれば、ダウンミキシングは、前記一つまたは複数のx86プロセッサのうちの少なくとも一つでSSEベクトル命令を走らせるためにセットアップし、不変のダウンミキシング・データを使ってダウンミキシングすることを含み、該ダウンミキシングすることは、少なくとも一つの走っているSSEベクトル命令を実行することを含む。そうでなく、新しいダウンミキシング・データが古いダウンミキシング・データから変化していれば、本方法は、クロスフェード処理により、クロスフェードされたダウンミキシング・データを決定することを含む。
【0193】
必要とされないデータの処理の除外
いくつかのダウンミキシング状況では、ダウンミックスされる出力に寄与しない少なくとも一つのチャンネルがある。たとえば、5.1オーディオからステレオへのダウンミックスの多くの場合、LFEチャンネルは含められない。よって、ダウンミックスは5.1から2.0である。LFEチャンネルをダウンミックスから除外することは、AC-3の場合のように、符号化フォーマットにとって本来的であってもよいし、E-AC-3の場合のように、メタデータによって制御されてもよい。E-AC-3では、lfemixlevcodeパラメータが、LFEチャンネルがダウンミックスに含められるかどうかを決定する。lfemixlevcodeパラメータが0のとき、LFEチャンネルはダウンミックスに含められない。
【0194】
ダウンミックスが周波数領域で、擬似時間領域で逆変換後だが窓処理および重複加算演算前に、あるいは時間領域で逆変換後かつ窓処理および重複加算演算後に、実行されうることを想起されたい。純粋な時間領域ダウンミキシングは多くの既知のE-AC-3デコーダおよび本発明のいくつかの実施形態において実行され、たとえばTPNPの存在のために有利である。擬似時間領域ダウンミキシングは多くのAC-3デコーダおよび本発明のいくつかの実施形態において実行され、重複加算演算が本来的なクロスフェードを与え、これがダウンミキシング係数が変化するときに有利なので有利である。周波数領域ダウンミキシングは、本発明のいくつかの実施形態において条件が許すときに実行される。
【0195】
本稿で論じたように、周波数領域ダウンミキシングは、5.1チャンネル入力から2チャンネル出力を生成するのに必要とされる逆変換および窓処理および重複加算演算の数を最小限にするので、最も効率的なダウンミキシング方法である。本発明のいくつかの実施形態では、たとえば図8においてFDダウンミキシングが実行されるとき、FDダウンミックス・ループ・セクション711において、要素813で始まり814で終わり、815で次のチャンネルにインクリメントされるループにおいて、ダウンミックスに含まれないチャンネルは、処理から除外される。
【0196】
擬似時間領域で逆変換後だが窓処理および重複加算演算前に、あるいは時間領域で逆変換後かつ窓処理および重複加算後に行われるダウンミキシングは、周波数領域ほど計算効率がいいわけではない。今日のAC-3デコーダのような多くの今日のデータでは、ダウンミキシングは擬似時間領域で実行される。逆変換演算はダウンミキシング演算とは独立して、たとえば別個のモジュールにおいて実行される。そのようなデコーダにおける逆変換は、すべての入力チャンネル上で実行される。これは、比較的計算効率が悪い。というのも、LFEチャンネルが含まれない場合でも、逆変換がこのチャンネルについて実行されるからである。たとえLFEチャンネルが限られた帯域幅であったとしても、逆変換をLFEチャンネルに適用するのはいかなるフル帯域幅のチャンネルに逆変換を適用するのとも同じくらいの計算を必要とするので、この無用の処理は有意である。本発明者らは、この不効率を認識した。本発明のいくつかの実施形態は、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含む。非寄与チャンネルとは、復号されたオーディオのM.m個の出力チャンネルに寄与しないチャンネルである。いくつかの実施形態では、同定は、情報、たとえばダウンミキシングを定義するメタデータを使う。5.1から2.0へのダウンミキシングの例では、LFEチャンネルはそのようにして非寄与チャンネルとして同定される。本発明のいくつかの実施形態は、M.m個の出力チャンネルに寄与する各チャンネルに対して周波数から時間への変換を実行し、M.m個のチャンネル信号に寄与しない同定された各チャンネルに対しては周波数から時間への変換を実行しないことを含む。LFEチャンネルがダウンミックスに寄与しない5.1から2.0への例では、逆変換、たとえばIMCDTは5つのフル帯域幅のチャンネルに対してのみ実行され、よって、逆変換は、5.1チャンネルすべてについて必要とされる計算資源に対して約16%の削減をもって実行される。IMDCTは復号方法において計算量のかなりの源なので、この削減は有意となりうる。
【0197】
今日のE-AC-3デコーダのような多くの今日のデコーダにおいて、ダウンミキシングは時間領域で実行される。逆変換演算および重複加算演算は、TPNPがあれば該TPNPより前に、かつダウンミキシング前に、ダウンミキシング演算とは独立に、たとえば別個のモジュールにおいて実行される。そのようなデコーダにおける逆変換および窓処理および重複加算演算は、すべての入力チャンネルに対して実行される。これは、比較的計算効率が悪い。というのも、LFEチャンネルが含まれない場合でも、逆変換および窓処理/重複加算がこのチャンネルについて実行されるからである。たとえLFEチャンネルが限られた帯域幅であったとしても、逆変換および重複加算をLFEチャンネルに適用するのはいかなるフル帯域幅のチャンネルに逆変換/重複加算を適用するのとも同じくらいの計算を必要とするので、この無用の処理は有意である。本発明のいくつかの実施形態では、ダウンミキシングは時間領域で実行され、他の実施形態では、ダウンミキシングは、ダウンミックス方法選択論理を適用した結果に依存して時間領域で実行されてもよい。TDダウンミキシングが使われる本発明のいくつかの実施形態は、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含む。いくつかの実施形態では、同定は、情報、たとえばダウンミキシングを定義するメタデータを使う。5.1から2.0へのダウンミキシングの例では、LFEチャンネルはそのようにして非寄与チャンネルとして同定される。本発明のいくつかの実施形態は、M.m個の出力チャンネルに寄与する各チャンネルに対して逆変換、すなわち周波数から時間への変換を実行し、M.m個のチャンネル信号に寄与しない同定された各チャンネルに対しては周波数から時間への変換や他の時間領域処理を実行しないことを含む。LFEチャンネルがダウンミックスに寄与しない5.1から2.0への例では、逆変換、たとえばIMCDT、重複加算およびTPNPは5つのフル帯域幅のチャンネルに対してのみ実行され、よって、逆変換および窓処理/重複加算部分は、5.1チャンネルすべてについて必要とされる計算資源に対して約16%の削減をもって実行される。図8のフローチャートでは、共通処理論理セクション731において、いくつかの実施形態の一つの特徴は、要素833で始まり834に続き、次のチャンネル要素へのインクリメント835を含むループにおける処理が、非寄与チャンネル以外のすべてのチャンネルについて実行されることを含む。これは、FDダウンミックスされるブロックについては本来的に行われる。
【0198】
いくつかの実施形態では、LFEは非寄与チャンネルである、すなわちAC-3やE-AC-3において一般的であるようにダウンミックスされた出力チャンネルに含められないが、他の実施形態では、それに加えて、またはその代わりに、LFE以外のチャンネルが非寄与チャンネルとなり、ダウンミックス出力に含められない。本発明のいくつかの実施形態は、もしあるとすればどの一つまたは複数のチャンネルが、該チャンネルがダウンミックスに含められないという意味で非寄与であるかを識別するような条件について検査し、時間領域ダウンミキシングの場合、識別された非寄与チャンネルがあれば該チャンネルについて逆変換および窓重複加算演算を通じた処理を実行しないことを含む。
【0199】
たとえば、AC-3およびE-AC-3では、サラウンド・チャンネルおよび/または中央チャンネルがダウンミックスされた出力チャンネルに含められないある種の条件がある。これらの条件は、エンコードされたビットストリームに含まれるメタデータが所定の値を取ることによって定義される。該メタデータはたとえば、ダウンミキシングがミックス・レベル・パラメータを含むことを定義する情報を含んでいてもよい。
【0200】
そのようなミックス・レベル・パラメータのそのような例のいくつかについてここでE-AC-3の場合について例解の目的で述べておく。E-AC-3におけるステレオへのダウンミキシングでは、二つの型のダウンミキシングが提供される:LtRtマトリクス・サラウンド・エンコードされたステレオ対へのダウンミックスと、通常のステレオ信号LoRoへのダウンミックスである。ダウンミックスされたステレオ信号(LoRoまたはLtRt)はさらにモノにミックスされてもよい。ltrtsurmixlevと表される3ビットのLtRtサラウンド・ミックス・レベル・コードおよびlorosurmixlevと表される3ビットのLoRoサラウンド・ミックス・レベル・コードは、それぞれLtRtまたはLoRoダウンミックスにおける、左および右チャンネルに関するサラウンド・チャンネルの名目ダウンミックス・レベルを示す。二進「111」の値がダウンミックス・レベル0、すなわち−∞dBを示す。ltrtcmixlev、lorocmixlevと表される3ビットのLtRtおよびLoRo中央ミックス・レベル・コードは、それぞれLtRtまたはLoRoダウンミックスにおける、左および右チャンネルに関する中央チャンネルの名目ダウンミックス・レベルを示す。二進「111」の値がダウンミックス・レベル0、すなわち−∞dBを示す。
【0201】
サラウンド・チャンネルがダウンミックスされた出力チャンネルに含められない条件がある。E-AC-3では、これらの条件は、メタデータによって同定される。これらの条件は、surmixlev='10'(AC-3のみ)、ltrtsurmixlev='111'およびlorosurmixlev='111'の場合を含む。これらの条件について、いくつかの実施形態では、デコーダは、ミックス・レベル・メタデータを使って、該メタデータがサラウンド・チャンネルがダウンミックスに含められないことを示していることを同定し、該サラウンド・チャンネルを、逆変換および窓処理/重複加算段階を通じて処理しないことを含む。さらに、中央チャンネルがダウンミックスされた出力チャンネルに含められない条件がある。これらの条件は、ltrtcmixlev='111'およびlorocmixlev='111'によって同定される。これらの条件について、いくつかの実施形態では、デコーダは、ミックス・レベル・メタデータを使って、該メタデータが中央チャンネルがダウンミックスに含められないことを示していることを同定し、該中央チャンネルを、逆変換および窓処理/重複加算段階を通じて処理しないことを含む。
【0202】
いくつかの実施形態では、一つまたは複数の非寄与チャンネルを同定することは、内容依存である。一例として、該同定は、一つまたは複数のチャンネルが、一つまたは複数の他のチャンネルに比して取るに足りない量の内容を有するかどうかを識別することを含む。内容量の指標が使用される。ある実施形態では、内容量の指標はエネルギーであり、他の実施形態では、内容量の指標は絶対レベルである。同定は、チャンネル対の間の内容量の指標の差を設定可能な閾値と比較することを含む。一例として、ある実施形態では、一つまたは複数の非寄与チャンネルを同定することは、サラウンド・チャンネルが非寄与チャンネルであるかどうかを見きわめるために、あるブロックのサラウンド・チャンネルの内容量が各前方チャンネルの内容量より、少なくともある設定可能な閾値だけ小さいかどうかを見きわめることを含む。
【0203】
理想的には、品質損失を最小にしながら必要とされる計算量を減らすようチャンネルを非寄与チャンネルとして同定するのを最大化するために、閾値は、信号のダウンミックスされたバージョンに知覚できるアーチファクトを導入することなく可能な限り低く選択される。いくつかの実施形態では、異なる復号アプリケーションについて異なる閾値が用意される。特定の復号アプリケーションについての閾値の選択は、その特定のアプリケーションについてのダウンミックスの品質(より高い閾値)と計算量削減(より低い閾値)との間の受け容れ可能なバランスを表す。
【0204】
本発明のいくつかの実施形態では、チャンネルが他のチャンネルに対して取るに足りないと考えられるのは、そのエネルギーまたは絶対レベルが前記他のチャンネルより少なくとも15dB低い場合である。理想的には、チャンネルが他のチャンネルに対して取るに足りないのは、そのエネルギーまたは絶対レベルが前記他のチャンネルより少なくとも25dB低い場合である。
【0205】
AおよびBと表される二つのチャンネルの間の差について、25dBと等価な閾値を使うことは、二つのチャンネルの絶対値の和のレベルが優勢なチャンネルのレベルの0.5dB以内であるということにほぼ等価である。すなわち、チャンネルAが−6dBFS(dB relative to full scale[フル・スケールに対するdB])であり、チャンネルBが−31dBFSであれば、チャンネルAおよびBの絶対値の和はほぼ−5.5dBFS、すなわちチャンネルAのレベルより約0.5dB上になる。
【0206】
オーディオが比較的低品質である場合、および低コスト・アプリケーションについては、計算量を減らすために品質を犠牲にすることが受け容れ可能であることがあり、閾値は25dBより低くてもよい。一例では、18dBの閾値が使用される。そのような場合、二つのチャンネルの和が、高いほうのレベルをもつチャンネルのレベルの約1dB以内でありうる。これは、ある種の場合には聞いてわかることがありうるが、過度に不快ではないはずである。別の実施形態では、15dBの閾値が使用される。この場合、二つのチャンネルの和は優勢なチャンネルのレベルの1.5dB以内である。
【0207】
いくつかの実施形態では、いくつかの閾値が使用される。たとえば、15dB、18dBおよび25dBである。
【0208】
上記では非寄与チャンネルの同定はAC-3およびE-AC-3について記述されているが、本発明の非寄与チャンネル同定機能はそのようなフォーマットに限定されるわけではない。たとえば他のフォーマットも、一つまたは複数の非寄与チャンネルの同定のために使用可能なダウンミキシングに関する情報、たとえばメタデータを提供する。MPEG-2 AAC(ISO/IEC13818-7)およびMPEG-4オーディオ(ISO/IEC14496-3)はいずれも、当該規格によって「マトリクス・ミックスダウン係数(matrix-mixdown coefficient)」と称されるものを伝送できる。そのようなフォーマットを復号するための本発明のいくつかの実施形態は、3/2、すなわち左、中央、右、左サラウンド、右サラウンド信号からステレオまたはモノ信号を構築するためにこの係数を使う。マトリクス・ミックスダウン係数は、ステレオまたはモノ出力を構築するためにサラウンド・チャンネルがどのように前方チャンネルと混合されるかを決定する。これらの規格によれば、マトリクス・ミックスダウン係数の四つの可能な値があり、その一つは0である。値0は、サラウンド・チャンネルがダウンミックスに含まれないという結果を与える。本発明のいくつかのMPEG-2 AACデコーダまたはMPEG-4オーディオ・デコーダの実施形態は、ビットストリームにおいて信号伝達されるミックスダウン係数を使って3/2信号ステレオまたはモノのダウンミックスを生成することを含み、さらに、マトリクス・ミックスダウン係数0によって非寄与チャンネルを同定し、その場合、逆変換および窓処理/重複加算処理が実行されないことを含む。
【0209】
図12は、少なくとも一つのプロセッサ1203を含む処理システム1200のある実施形態のブロック概略図である。この例では、SSEベクトル命令を含む命令セットをもつ一つのx86プロセッサが示されている。また、当該処理システムのさまざまなコンポーネントを結合するバス・サブシステム1205も簡略化されたブロックの形で示されている。処理システムは、たとえばバス・サブシステム1205を介してプロセッサ(単数または複数)に結合された、一つまたは複数の記憶装置を有する記憶サブシステム1211を含む。該記憶装置は、少なくともメモリを、そしていくつかの実施形態では磁気および/または光学式記憶コンポーネントのような一つまたは複数の他の記憶装置を含む。いくつかの実施形態はまた、少なくとも一つのネットワーク・インターフェース1207およびオーディオ入出力サブシステム1209をも含む。オーディオ入出力サブシステム1209はPCMデータを受け入れることができ、該PCMデータを一組のラウドスピーカーまたはイヤホンを駆動するための電気的な波形に変換する一つまたは複数のDACを含む。他の要素も当該処理システムに含まれていてもよく、当業者には明確であろう。よって、簡単のため図12には示していない。
【0210】
記憶サブシステム1211は、処理システムにおいて実行されたときに、処理システムに、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データ、たとえばE-AC-3データの復号してM.mチャンネルの復号オーディオを含む復号されたオーディオ・データを形成することを実行させる命令1213を含んでいる。ここで、M≧1であり、ダウンミキシングの場合にはM<Nである。今日の既知の符号化フォーマットについては、n=0または1であり、m=0または1であるが、本発明はそれに限定されない。いくつかの実施形態では、命令1211は、複数のモジュールに区分される。典型的には他の命令(他のソフトウェア)1215も記憶サブシステムに含まれる。図示した実施形態は、命令1211の中に以下のモジュールを含む:二つのデコーダ・モジュール、すなわちフロントエンド復号モジュール1231およびバックエンド復号モジュール1233を含む独立フレーム5.1チャンネル・デコーダ・モジュール1223ならびにフロントエンド復号モジュール1235およびバックエンド復号モジュール1237を含む従属フレーム・デコーダ・モジュール1225と、実行されたときに各フレームからビットストリーム情報(BSI)フィールドをアンパックしてフレームおよびフレーム種別を識別させ、識別されたフレームを適切なフロントエンド復号モジュールのインスタンス1231または1235に提供させる命令1221のフレーム情報解析モジュールと、実行されたとき、N>5の場合、それぞれのバックエンド復号モジュールからの復号データを組み合わせてN.nチャンネルの復号データを形成させる命令1227のチャンネル・マッピング器モジュールとである。
【0211】
代替的な処理システム実施形態は、少なくとも一つのネットワーク・リンクによって結合された、すなわち分散した一つまたは複数のプロセッサを含んでいてもよい。すなわち、前記モジュールの一つまたは複数が、主たる処理システムにネットワーク・リンクによって結合された他の処理システムにあってもよい。そのような代替的な実施形態は、当業者には明白であろう。よって、いくつかの実施形態では、システムは、ネットワーク・リンクを介してネットワーク接続された、それぞれ少なくとも一つのプロセッサを含む一つまたは複数のサブシステムを有する。
【0212】
よって、このように、図12の処理システムは、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを処理してM.mチャンネルの復号オーディオを含む復号されたオーディオ・データを形成する装置の実施形態をなす。ここで、M≧1であり、ダウンミキシングの場合にはM<Nであり、アップミキシングについてはM>Nである。今日の規格については、n=0または1であり、m=0または1であるが、他の実施形態も可能である。本装置は、機能を実行する手段として機能的に表現されるいくつかの機能要素を含む。機能要素とは、処理機能を実行する要素を意味する。そのような各要素はハードウェア要素、たとえば専用ハードウェアまたは実行されたときに当該機能を実行する命令を含む記憶媒体を含む処理システムであってもよい。図12の装置は、エンコード方法によってエンコードされたNチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを受け入れる手段を含む。エンコード方法は、たとえばE-AC-3符号化方法であり、より一般には、重複変換を使ってNチャンネルのデジタル・オーディオ・データを変換し、周波数領域の指数および仮数データを形成およびパッキングし、周波数領域の指数および仮数データに関係したメタデータを形成およびパッキングすることを含むエンコード方法である。メタデータは、任意的に、過渡プレノイズ処理に関係したメタデータを含む。
【0213】
本装置は、受け入れられたオーディオ・データを復号する手段を含む。
【0214】
いくつかの実施形態では、復号する手段は、メタデータをアンパックする手段および周波数領域の指数および仮数データをアンパックおよび復号する手段と;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;周波数領域データを逆変換する手段と;窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定する手段と;過渡プレノイズ処理に関係したメタデータに従って要求される過渡プレノイズ処理復号があればそれを適用する手段と;ダウンミキシング・データに従ってTDダウンミキシングする手段とを含む。TDダウンミキシングする手段は、M<Nの場合、ダウンミキシング・データに従ってダウンミックスする。該ダウンミックスは、いくつかの実施形態では、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従ってダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む。
【0215】
いくつかの実施形態は、あるブロックについて、TDダウンミキシングまたはFDダウンミキシングのどちらが使われるかを見きわめる手段と、FDダウンミキシング手段であって、前記あるブロックについてTDダウンミキシングまたはFDダウンミキシングのどちらが使われるかを見きわめる手段がFDダウンミキシングを特定した場合に作動され、TDからFDダウンミックスへの遷移処理のための手段を含む手段とを含む。そのような実施形態は、FDからTDダウンミックスへの遷移処理のための手段をも含む。これらの要素の動作は上述したとおりである。
【0216】
いくつかの実施形態では、本装置は、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルである。本装置は、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびTPNPや重複加算のようなさらなる処理の適用を実行しない。
【0217】
いくつかの実施形態では、本装置は、ベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含む。前記ダウンミキシングする手段は、動作において、前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を走らせる。
【0218】
図12に示された装置に対する代替的な装置も可能である。たとえば、示されている要素の一つまたは複数がハードウェア装置によって実装され、一方、他の要素はx86プロセッサの動作によって実装されてもよい。そのような変形は、当業者にとってはストレートであろう。
【0219】
本装置のいくつかの実施形態では、復号する手段は、一つまたは複数のフロントエンド復号手段および一つまたは複数のバックエンド復号手段を含む。フロントエンド復号手段は、メタデータをアンパックする手段および周波数領域の指数および仮数データをアンパックおよび復号する手段を含む。バックエンド復号手段は、あるブロックについて、TDダウンミキシングまたはFDダウンミキシングのどちらが使われるかを見きわめる手段と、FDダウンミキシング手段であって、TDからFDダウンミックスへの遷移処理のための手段と、FDからTDダウンミックスへの遷移処理のための手段と、アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;周波数領域データを逆変換する手段と;窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定する手段と;過渡プレノイズ処理に関係したメタデータに従って要求される過渡プレノイズ処理復号があればそれを適用する手段と;ダウンミキシング・データに従って時間領域ダウンミキシングする手段とを含む。時間領域ダウンミキシングは、M<Nの場合、ダウンミキシング・データに従ってダウンミックスする。該ダウンミックスは、いくつかの実施形態では、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従ってダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む。
【0220】
5.1チャンネルより多い符号化データのE-AC-3データを処理するためには、復号する手段は、フロントエンド復号手段およびバックエンド復号手段の複数のインスタンスを含む。それには、5.1チャンネルまでの独立フレームを復号するための第一のフロントエンド復号手段および第一のバックエンド復号手段と、一つまたは複数の従属フレームのデータを復号するための第二のフロントエンド復号手段および第二のバックエンド復号手段とが含まれる。本装置はまた、ビットストリーム情報フィールドをアンパックしてフレームおよびフレーム種別を識別し、識別されたフレームを適切なフロントエンド復号手段に与える手段と、それぞれのバックエンド復号手段からの復号データを組み合わせてNチャンネルの復号データを形成する手段をも含む。
【0221】
E-AC-3および他の符号化方法が重複加算変換を使い、逆変換においては窓処理および重複加算演算を含むものの、逆変換およびさらなる処理によりエイリアシング・エラーなしで時間領域サンプルを復元できるように動作する他の形の変換が可能であることは知られている。したがって、本発明は重複加算変換に限定されるものではなく、周波数領域のデータを逆変換し、窓処理された重複加算演算を実行して時間領域のサンプルを決定することが言及されるときは常に、当業者は、一般には、これらの処理は、「周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する」と表現できることを理解するであろう。
【0222】
本稿を通じて指数(exponent)および仮数(mantissa)という用語が使われているが、それはこれらがAC-3およびE-AC-3で使われている用語だからであって、他の符号化フォーマットは他の用語を使うこともありうる。たとえば、HE-AACの場合ならスケール因子(scale factor)およびスペクトル係数(spectral coefficient)である。指数および仮数という用語を使っていることは、本発明の範囲を、指数および仮数という用語を使うフォーマットに限定するものではない。
【0223】
特に断りのない限り、以下の記述から明白であるように、本明細書を通じて、「処理」「コンピューティング」「計算」「決定」「生成」などといった用語を使った議論は、電子的な量などの物理量として表現されたデータを操作および/または変換して物理量として同様に表現された他のデータにする、ハードウェア要素、たとえばコンピュータまたはコンピューティング・システム、処理システムまたは同様の電子計算装置の動作および/または工程をいう。
【0224】
同様に、「プロセッサ」という用語は、レジスタおよび/またはメモリなどからの電子デを処理してその電子データを、レジスタおよび/またはメモリに記憶されるなどしうる他の電子データに変換する任意の装置または装置の一部を指しうる。「処理システム」または「コンピュータ」または「計算機械」または「コンピューティング・プラットフォーム」は一つまたは複数のプロセッサを含んでいてもよい。
【0225】
いくつかの要素、たとえばいくつかの段階を含む方法が記述されるとき、特に明記されない限り、そのような要素、たとえば段階のいかなる順序も含意されないことを注意しておく。
【0226】
いくつかの実施形態では、コンピュータ可読媒体は、少なくとも一つのプロセッサ要素および記憶サブシステムを含む、デジタル信号処理装置またはサブシステムのような処理システムの一つまたは複数のプロセッサによって実行されたときに、本稿に記載される方法を実行させる命令をもって構成されている、たとえば該命令をエンコードされている、たとえば該命令を記憶している。上記の記述において、命令が、実行されたときにプロセスを実行するよう構成されていると述べられるとき、それは、命令が、実行されたときに、ハードウェア装置、たとえば処理システムがそのプロセスを実行するよう一つまたは複数のプロセッサを動作させることを意味することは理解しておくべきである。
【0227】
本稿に記載される方法論は、いくつかの実施形態では、一つまたは複数のコンピュータ可読媒体にエンコードされた論理、命令を受け入れる一つまたは複数のプロセッサによって実行可能である。該プロセッサの一つまたは複数によって実行されるとき、前記命令は、本稿に記載される方法の少なくとも一つの実行を引き起こす。工程が行われることを規定する一組の命令(シーケンシャルであってもなくてもよい)を実行することのできる任意のプロセッサが含まれる。よって、一つの例は、一つまたは複数のプロセッサを含む典型的な処理システムである。各プロセッサは、CPUまたは同様の要素、グラフィック処理ユニット(GPU: graphics processing unit)および/またはプログラム可能なDSPユニットの一つまたは複数を含んでいてもよい。処理システムはさらに、少なくとも一つの記憶媒体をもつ記憶サブシステムを含む。該記憶媒体は、半導体デバイスに埋め込まれたメモリまたはメインRAMおよび/または静的RAMおよび/またはROMまたキャッシュ・メモリを含む別個のメモリ・サブシステムを含みうる。記憶サブシステムはさらに、磁気および/または光学式および/またはさらなる半導体記憶デバイスといった一つまたは複数の他の記憶装置を含んでいてもよい。コンポーネント間の通信をするためにバス・サブシステムが含められてもよい。処理システムはさらに、ネットワーク・インターフェース・デバイスまたは無線ネットワーク・インターフェース・デバイスなどを介して、ネットワークによって結合されるプロセッサをもつ、分散式の処理システムであってもよい。処理システムがディスプレイを必要とする場合、そのようなディスプレイが含められてもよい。たとえば、液晶ディスプレイ(LCD)、有機発光ディスプレイ(OLED)または陰極線管(CRT)ディスプレイである。手動のデータ入力が必要とされる場合、処理システムは、キーボードのような英数字入力ユニット、マウスのような一制御デバイスなどの一つまたは複数といった入力装置をも含む。記憶装置、記憶サブシステムまたはメモリ・ユニットの用語は、本稿での用法では、コンテキストから明確であり、そうでないと明確に述べられているのでない限り、ディスク・ドライブ・ユニットのような記憶システムをも包含する。いくつかの構成の処理システムは、音出力装置およびネットワーク・インターフェース・デバイスを含んでいてもよい。
【0228】
記憶サブシステムはこのように、一つまたは複数のプロセッサによって実行されたときに、本稿に記載される方法ステップの一つまたは複数を実行させる命令、たとえば論理、たとえばソフトウェアをもって構成されている、たとえばそれをエンコードされているコンピュータ可読媒体を含む。ソフトウェアは、ハードディスクに存在していてもよく、あるいはそのコンピュータ・システムによる実行の間、完全にまたは少なくとも部分的にRAMのようなメモリ内および/またはプロセッサ内部のメモリ内に存在していてもよい。このように、メモリおよびメモリを含むプロセッサも、命令がエンコードされるコンピュータ可読媒体をなす。
【0229】
さらに、コンピュータ可読媒体はコンピュータ・プログラム・プロダクトをなしてもよく、あるいはコンピュータ・プログラム・プロダクトに含まれてもよい。
【0230】
代替的な諸実施形態では、前記一つまたは複数のプロセッサはスタンドアローンの装置として動作するか、あるいはネットワーク展開において他のプロセッサ(単数または複数)に接続、たとえばネットワーク接続されていてもよく、前記一つまたは複数のプロセッサは、サーバー‐クライアント・ネットワーク環境におけるサーバーまたはクライアント・マシンの資格で、あるいはピアツーピアまたは分散式ネットワーク環境におけるピア・マシンとして機能してもよい。処理システムという用語は、本稿において明示的に除外されていない限り、そのようなあらゆる可能性を包含する。前記一つまたは複数のプロセッサは、パーソナル・コンピュータ(PC)、メディア再生装置、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA: Personal Digital Assistant)、ゲーム機、携帯電話、ウェブ・アプライアンス、ネットワーク・ルータ、スイッチもしくはブリッジまたは機械によって行われるべき工程を規定する一組の命令(シーケンシャルであってもなくてもよい)を実行できる任意の機械の形を取ってもよい。
【0231】
一部の図面(単数または複数)は単一のプロセッサおよび単一の記憶サブシステム、たとえば命令を含む論理を記憶する単一のメモリしか示していないが、当業者は、上記のコンポーネントの多数が含まれるが、発明的な側面を埋没させないために明示的に図示したり説明したりはしていないことを理解するであろう。たとえば、単一の機械しか図示されていなくても、「機械」という用語は、個々にまたは合同して本稿で論じた方法論の任意の一つまたは複数を実行するよう一組(または複数組)の命令を実行する機械の任意の集合を含むものとも解釈されるものとする。
【0232】
このように、本稿で記載される各方法の一つの実施形態は、一つまたは複数のプロセッサ、たとえばメディア・デバイスの一部である一つまたは複数のプロセッサ上で実行されるときに方法ステップの実行を引き起こす一組の命令、たとえばコンピュータ・プログラムをもって構成されたコンピュータ可読媒体の形である。いくつかの実施形態は、論理そのものの形である。よって、当業者は、本発明の諸実施形態は、方法、専用装置のような装置、データ処理システムのような装置、コンピュータ可読記憶媒体において具現されるなどした論理、または命令をエンコードされたコンピュータ可読記憶媒体、たとえばコンピュータ・プログラム・プロダクトとして構成されたコンピュータ可読記憶媒体として具現されてもよい。コンピュータ可読媒体は、一つまたは複数のプロセッサによって実行されたときに方法ステップの実行を引き起こす一組の命令をももって構成される。よって、本発明の諸側面は、方法、いくつかの機能要素を含む完全にハードウェアの実施形態の形を取ってもよい。ここで、機能要素とは処理機能を実行する要素を意味する。そのような各要素はハードウェア要素、たとえば専用ハードウェアまたは実行されたときに当該機能を実行する命令を含む記憶媒体を含む処理システムであってもよい。本発明の諸側面は、完全にソフトウェアの実施形態またはソフトウェアおよびハードウェアの側面を組み合わせる実施形態の形を取ってもよい。さらに、本発明は、コンピュータ可読媒体中などのプログラム論理、たとえばコンピュータ可読記憶媒体上のコンピュータ・プログラム、あるいはコンピュータ可読プログラム・コードをもって構成された該コンピュータ可読媒体、たとえばコンピュータ・プログラム・プロダクトの形を取ってもよい。専用ハードウェアの場合、ハードウェアの機能を定義することは、当業者が、プログラムによって処理できる機能記述を書くことができるようにするのに十分であることを注意しておく。あとは該プログラムが自動的に当該機能を実行するためのハードウェアを創り出すためのハードウェア記述を決定する。よって、本稿における記述は、そのような専用ハードウェアを定義するのに十分である。
【0233】
コンピュータ可読媒体がある例示的実施形態では単一の媒体として示されているが、「媒体」という用語は、一つまたは複数の組の命令を記憶する単一の媒体または複数の媒体(たとえばいくつかのメモリ、中央集中されたまたは分散式のデータベースおよび/または付随するキャッシュおよびサーバー)を含むと解釈されるべきである。コンピュータ可読媒体は、これに限られないが不揮発性媒体および揮発性媒体を含む多くの形を取ることができる。不揮発性媒体はたとえば光ディスク、磁気ディスクおよび光磁気ディスクを含む。揮発性媒体はメイン・メモリのような動的〔ダイナミック〕メモリを含む。
【0234】
本発明の実施形態が、いかなる特定の実装またはプログラミング技法にも限定されないこと、および本発明が本稿に記載される機能を実装するためのいかなる適切な技法を使って実装されてもよいことも理解されるであろう。さらに、諸実施形態は、いかなる特定のプログラミング言語またはオペレーティング・システムにも限定されない。
【0235】
本明細書を通じての「一つの実施形態」または「ある実施形態」への言及は、その実施形態との関連で記述される特定の特徴、構造または特性が、本発明の少なくとも一つの実施形態に含まれることを意味する。よって、本明細書の随所で「一つの実施形態では」または「ある実施形態では」という表現が現れることは、必ずしも全部が同じ実施形態のことを指しているのではない。ただ、そうであることもありうる。さらに、一つまたは複数の実施形態において、該特定の特徴、構造または特性は、本開示から当業者には明白であろうように、いかなる好適な仕方で組み合わされてもよい。
【0236】
同様に、本発明の例示的な実施形態の上記の記述において、本開示の流れをよくし、さまざまな発明的側面の一つまたは複数の理解を助ける目的で、本発明のさまざまな特徴が時に単一の実施形態、図面またはその説明においてまとめられていることを認識しておくべきである。しかしながら、このような開示法は、特許請求される発明が、各請求項において明示的に記載されているよりも多くの特徴を必要とするという意図を判定したものと解釈すべきではない。むしろ、付属の請求項に反映されるように、発明的側面は、上記で開示される単一の実施形態のすべての特徴よりも少ないもののうちにある。よって、請求項の記載は、ここに、明示的に、この発明を実施するための形態に組み込まれ、各請求項が本発明の別個の実施形態をなす。
【0237】
さらに、本稿で記述されるいくつかの実施形態は、他の実施形態に含まれる特徴の一部を含み一部は含まないが、異なる実施形態の特徴の組み合わせも本発明の範囲内であり、異なる実施形態をなすことが意図される。そのことは、当業者には理解されるであろう。たとえば、請求項において、記載される実施形態の任意のものが任意の組み合わせにおいて使用できる。
【0238】
さらに、いくつかの実施形態は、本稿では、コンピュータ・システムのプロセッサによってまたは当該機能を実行する他の手段によって実装できる方法または方法の要素の組み合わせとして記述される。よって、そのような方法または方法の要素を実行するための必要な命令をもつプロセッサは、方法または方法の要素を実行する手段をなす。さらに、装置実施形態の本稿に記載される要素は、本発明を実行するための該要素によって実行される機能を実行する手段の例である。
【0239】
本稿で与えられる記述において、数多くの個別的詳細が記述されている。しかしながら、本発明の実施形態はそれらの個別的詳細なしでも実施されうることは理解されるものとする。その一方、よく知られた方法、構造および技法は、本記述の理解をかすませないよう、詳細に示しはしなかった。
【0240】
本稿での用法では、特に断りのない限り、共通のオブジェクトを記述するための序数「第一」「第二」「第三」などの使用は単に、同様のオブジェクトの異なるインスタンスが言及されていることを示すのであって、そのように記述されているオブジェクトが時間的に、空間的に、序列において、またはいかなる仕方であれ、所定のシーケンスでなければならないことは意図していない。
【0241】
本発明はE-AC-3規格のコンテキストで記述してきたが、本発明はそのようなコンテキストに限定されるものではなく、E-AC-3と何らかの類似性をもつ技法を使う他の方法によってエンコードされたデータを復号するためにも利用されうることは認識しておくべきである。たとえば、本発明の諸実施形態は、E-AC-3に対して上位互換である符号化オーディオを復号するためにも適用可能である。他の実施形態は、HE-AAC規格に従って符号化されている符号化オーディオを復号するためおよびHE-AACに対して上位互換である符号化オーディオを復号するために適用可能である。他の符号化ストリームも本発明の実施形態を使って有利に復号できる。
【0242】
本稿において引用されているあらゆる米国特許、米国特許出願および米国を指定国とする国際(PCT)特許出願は、ここに参照によって組み込まれる。特許規則または法令が、それ自身参照によって情報を組み込んでいる素材の参照による組み込みを許さない場合には、本稿における参照による組み込みは、そのような参照によって組み込まれる素材における参照によって組み込まれている情報は、そのような情報が明示的に本稿に参照によって組み込まれているのでない限り、除外する。
【0243】
本明細書における従来技術のいかなる議論も、いかなる意味でも、そのような従来技術が周知である、公知であるまたは技術常識であることを認めたものであると考えるべきではない。
【0244】
請求項および明細書の記述において、有する、からなる、含むといった用語のいずれも、挙げられている要素/特徴を少なくとも含むが他を排除するものではないことを意味するオープンな用語である。よって、請求項で使われるときの有する、含むの語は、挙げられている手段または要素またはステップに限定するものとして解釈すべきではない。たとえば、AおよびBを有する装置という表現の範囲は、要素AおよびBのみを有する装置に限定されるべきではない。含むは有すると同義であり、有することを意味する。
【0245】
同様に、請求項において使用されるときの結合されたという語は、直接接続だけに限定するものと解釈すべきではないことも注意しておくべきである。「結合された」および「接続された」という用語およびそれらの派生形が使用されうるが、これらの用語は、互いと同義であるとは意図されていないことを理解しておくべきである。よって、装置Bに結合された装置Aという表現の範囲は、装置Aの出力が装置Bの入力に直接接続されている装置系またはシステムに限定されるべきではない。Aの出力とBの入力の間に経路が存在し、その経路が他の装置または手段を含んでいてもよいことを意味する。「結合された」は二つ以上の要素が直接的な物理的または電気的接触状態にあること、あるいは二つ以上の要素が互いに直接接触してはいないがそれでも互いと協働または対話するを意味しうる。
【0246】
このように、本発明の好ましい実施形態であると考えられるものについて記述してきたが、当業者は、本発明の精神から外れることなく他のさらなる修正がされうることを認識するであろう。本発明の範囲内にはいるようなそのようなすべての変更および修正を特許請求することが意図されている。たとえば、上記で挙げた公式は単に使用されうる手順の代表的なものである。ブロック図に機能を追加あるいは削除してもよく、機能要素間で処理が交換されてもよい。本発明の範囲内で記載される方法にステップが追加または削除されてもよい。
【技術分野】
【0001】
〈関連出願への相互参照〉
本願は、2010年2月5日に出願された米国仮特許出願第61/305,871号および2010年6月29日に出願された米国仮特許出願第61/359,763号の優先権を主張するものである。両文献はここに参照によってその全体において組み込まれる。
【0002】
〈発明の分野〉
本開示は概括的にはオーディオ信号処理に関する。
【背景技術】
【0003】
デジタル・オーディオ・データ圧縮はオーディオ産業において重要な技術となっている。伝統的な技術を使うときに必要とされる高いデータ帯域幅の必要なしに高品質のオーディオ再生を可能にする新しいフォーマットが導入されている。AC-3およびより最近ではエンハンストAC-3(E-AC-3)符号化技術は、先進テレビジョン・システム委員会(ATSC: Advanced Television Systems Committee)によって米国における高精細度テレビジョン(HDTV: High Definition Television)のためのオーディオ・サービス規格として採用された。E-AC-3は消費者メディア(デジタル・ビデオ・ディスク)および直接衛星放送でも応用を見出している。E-AC-3は知覚的な符号化の例であり、デジタル・オーディオの複数のチャンネルを符号化されたオーディオおよびメタデータのビットストリームに符号化することを提供する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Advanced Television Systems Committee, Inc. (ATSC), "Digital Audio Compression Standard (AC-3, E-AC-3)", Revision B, Document A/52B, 14 June 2005、URL: www^dot^atsc^dot^org/cms/standards/a_52b^dot^pdf(^dot^は実際のウェブ・アドレスではピリオド(「.」)を表す)、2009年12月1日アクセス
【発明の概要】
【発明が解決しようとする課題】
【0005】
符号化されたオーディオ・ビットストリームを効率的に復号することに関心が向けられている。たとえば、ポータブル機器のバッテリー寿命は主としてその主処理ユニットのエネルギー消費によって制限される。処理ユニットのエネルギー消費は、そのタスクの計算量に密接に関係している。よって、ポータブル・オーディオ処理システムの計算量を減らすことは、そのようなシステムのバッテリー寿命を延ばすはずである。
【0006】
x86という用語は、インテル8086プロセッサに起源をもつプロセッサ命令セット・アーキテクチャーのファミリーを指すことが当業者によって一般に理解される。x86命令セット・アーキテクチャーがあまねく広まっている結果として、x86命令セット・アーキテクチャーをもつプロセッサまたは処理システム上で符号化されたオーディオ・ビットストリームを効率的に復号することにも関心が寄せられている。多くのデコーダ実装は性質上、一般的である。一方、埋め込まれるプロセッサのために特別に設計されるものもある。AMDのGeodeおよび新たなインテル・アトムのような新しいプロセッサはx86命令セットを使用し、小型のポータブル機器において使用される32ビットおよび64ビット設計の例である。
【課題を解決するための手段】
【0007】
課題は、請求項記載の手段によって解決される。
【図面の簡単な説明】
【0008】
【図1】実行されると典型的なAC-3復号プロセスを実行する命令のための擬似コード100を示す図である。
【図2】一つまたは複数の共通モジュールを有利に使用できるいくつかの異なるデコーダ構成を示すブロック概略図である。
【図3】フロントエンド復号モジュールのある実施形態の擬似コードおよびブロック概略図である。
【図4】フロントエンド復号モジュールのある実施形態の動作のための簡略化されたデータフロー図である。
【図5A】バックエンド復号モジュールのある実施形態の擬似コードおよびブロック概略図である。
【図5B】バックエンド復号モジュールの別の実施形態の擬似コードおよびブロック概略図である。
【図6】バックエンド復号モジュールのある実施形態の動作のための簡略化されたデータフロー図である。
【図7】バックエンド復号モジュールの別の実施形態の動作のための簡略化されたデータフロー図である。
【図8】図7に示されるもののようなバックエンド復号モジュールのための処理のある実施形態のフローチャートである。
【図9】5.1から2.0へのダウンミキシングを含む非重複変換(non-overlap transform)の場合についての、本発明のある実施形態を使った、5.1から2.0へのダウンミキシングを含む5つの処理ブロックの例を示す図である。
【図10】重複変換(overlapping transform)の場合についての、本発明のある実施形態を使った、5.1から2.0へのダウンミキシングを含む5つの処理ブロックのもう一つの例を示す図である。
【図11】時間領域ダウンミキシングのある実施形態についての簡略化された擬似コードを示す図である。
【図12】本発明の一つまたは複数の特徴を含む、少なくとも一つのプロセッサを含み、復号を実行できる処理システムのある実施形態のブロック概略図である。
【発明を実施するための形態】
【0009】
〈概要〉
本発明の実施形態は、方法、装置および一つまたは複数のコンピュータ可読の有形の媒体にエンコードされた諸工程を実行するための論理を含む。
【0010】
個別的な実施形態は、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・デコーダを動作させる方法を含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。本方法は、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる段階と;受け入れたオーディオ・データを復号する段階とを含む。復号する段階は:周波数領域の指数および仮数データをアンパックおよび復号する段階と;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する段階と;周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する段階と;M<Nの場合についてダウンミキシング・データに従って決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする段階とを含む。A1、B1およびC1のうちの少なくとも一つは真である。
【0011】
A1は、前記復号する段階は、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことである。
【0012】
B1は、前記時間領域ダウンミキシングが、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことである。
【0013】
C1は、本方法が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、本方法が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0014】
本発明の個別的な実施形態は、処理システムの一つまたは複数のプロセッサによって実行されたときに処理システムに、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成することを実行させる復号命令を記憶しているコンピュータ可読記憶媒体を含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。前記復号命令は、実行されたときに、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れさせる命令と;実行されたときに、受け入れたオーディオ・データを復号させる命令とを含む。実行されたときに復号させる前記命令は:実行されたときに、周波数領域の指数および仮数データをアンパックおよび復号させる命令と;実行されたときに、アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定させる命令と;実行されたときに周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定させる命令と;実行されたときに、M<Nであるかどうかを見きわめさせる命令と;実行されたときにM<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングさせる命令とを含む。A2、B2およびC2のうちの少なくとも一つは真である。
【0015】
A2は、実行されたときに復号させる前記命令が、実行されたときに、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定させる命令と、実行されたときに、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、周波数領域ダウンミキシングを適用させる命令とを含むことである。
【0016】
B2は、前記時間領域ダウンミキシングが、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことである。
【0017】
C2は、実行されたときに復号させる前記命令が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0018】
個別的な実施形態は、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・データ処理装置を含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。本装置は、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる手段と;受け入れたオーディオ・データを復号する手段とを含む。復号する手段は:周波数領域の指数および仮数データをアンパックおよび復号する手段と;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する手段と;M<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする手段とを含む。A3、B3およびC3のうちの少なくとも一つは真である。
【0019】
A3は、前記復号する手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことである。
【0020】
B3は、前記時間領域ダウンミキシングする手段が、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことである。
【0021】
C3は、本装置が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、本装置が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0022】
個別的な実施形態は、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを処理してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成する装置を含み、M≧1であり、n=0または1はエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、m=0または1は復号オーディオ・データにおける低周波数効果チャンネルの数である。本装置は、エンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データを含むオーディオ・データを受け入れる手段であって、前記エンコード方法は、N.nチャンネルのデジタル・オーディオ・データを、逆変換およびさらなる処理によってエイリアシング・エラーなしで時間領域サンプルを復元できるよう変換し、周波数領域の指数および仮数データを形成およびパッキングし、該周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理(transient pre-noise processing)に関係したメタデータを含む、手段と;受け入れたオーディオ・データを復号する手段とを有する。復号する手段は:フロントエンド復号のための一つまたは複数の手段とバックエンド復号のための一つまたは複数の手段とを有する。フロントエンド復号のための手段は、メタデータのアンパックのためであり、周波数領域の指数および仮数データのアンパックおよび復号のためである手段を含む。バックエンド復号のための手段は、アンパックされて復号された周波数領域の指数および仮数データから変換係数を決定するため;周波数領域データを逆変換するため;窓処理(windowing)および重複加算(overlap-add)演算を適用してサンプリングされたオーディオ・データを決定するため;過渡プレノイズ処理に関係した前記メタデータに従って、必要とされる過渡プレノイズ処理復号があればそれを適用するため;およびダウンミキシング・データに従って時間領域ダウンミキシングのための手段を含む。前記ダウンミキシングは、M<Nの場合にダウンミキシング・データに従ってデータの少なくともいくつかのブロックを時間領域ダウンミキシングするよう構成される。A4、B4およびC4のうちの少なくとも一つは真である。
【0023】
A4は、前記バックエンド復号のための手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことである。
【0024】
B4は、前記時間領域ダウンミキシングする手段が、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことである。
【0025】
C4は、本装置が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、バックエンド復号のための手段が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0026】
個別的な実施形態は、N.nチャンネルのオーディオ・データのエンコードされたオーディオ・データを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するシステムを含み、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数である。本システムは:一つまたは複数のプロセッサと;前記一つまたは複数のプロセッサに結合された記憶サブシステムとを有する。本システムは、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れ;さらに、受け入れたオーディオ・データを復号する。復号する段階は:周波数領域の指数および仮数データをアンパックおよび復号し;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定し;周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定し;M<Nの場合についてはダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングすることを含む。A5、B5およびC5のうちの少なくとも一つは真である。
【0027】
A5は、前記復号が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことである。
【0028】
B5は、前記時間領域ダウンミキシングが、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことである。
【0029】
C5は、前記方法が、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである。
【0030】
システム実施形態のいくつかのバージョンでは、受け入れたオーディオ・データは、符号化されたデータのフレームからなるビットストリームの形であり、記憶サブシステムは、前記処理システムの前記プロセッサの一つまたは複数によって実行されたとき、受け入れたオーディオ・データの復号をさせる命令を与えられる。
【0031】
システム実施形態のいくつかのバージョンは、ネットワーク・リンクを介してネットワーク接続される一つまたは複数のサブシステムを含む。各サブシステムは少なくとも一つのプロセッサを含む。
【0032】
A1、A2、A3、A4またはA5が真であるいくつかの実施形態では、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかの決定は、過渡プレノイズ処理があるかどうかを判定し、N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用されることを含む。
【0033】
A1、A2、A3、A4またはA5が真であり、前記エンコード方法における変換が重複変換〔重畳変換〕(overlapped-transform)を含み、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含むいくつかの実施形態では、(i)前記特定のブロックについて周波数領域ダウンミキシングを適用することは、前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき前のブロックのデータに対して時間領域ダウンミキシング(または擬似時間領域(pseudo-time domain)におけるダウンミキシング)を適用することを含み、(ii)特定のブロックについて時間領域ダウンミキシングを適用することは、前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む。
【0034】
B1、B2、B3、B4またはB5が真であるいくつかの実施形態では、ベクトル命令を含むストリーミング単一命令複数データ拡張(SSE:streaming single instruction multiple data extensions)を含む命令セットを有する少なくとも一つのx86プロセッサが使用され、時間領域ダウンミキシングは前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行することを含む。
【0035】
C1、C2、C3、C4またはC5が真であるいくつかの実施形態では、n=1かつm=0であり、それにより逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない。さらに、Cが真であるいくつかの実施形態では、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する情報を使う。さらに、Cが真であるいくつかの実施形態では、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である。いくつかの場合については、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも18dB低い場合であり、一方、他の用途では、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも25dB低い場合である。
【0036】
いくつかの実施形態では、エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、MPEG-2 AAC規格およびHE-AAC規格からなる規格の集合のうちの一つに従ってエンコードされている。
【0037】
本発明のいくつかの実施形態では、前記エンコード方法における変換は、重複変換を使い、前記さらなる処理は、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む。
【0038】
本発明のいくつかの実施形態では、前記エンコード方法は、周波数領域の指数および仮数データに関係したメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む。
【0039】
個別的な実施形態は、これらの側面、特徴または利点の全部を提供することもあれば、一部を提供することもあれば、あるいは一つも提供しないこともある。個別的な実施形態は、一つまたは複数の他の側面、特徴または利点を提供することもありえ、その一つまたは複数は、本願の図面、明細書および請求項から当業者にはすぐ明白となりうる。
【0040】
〈エンコードされたストリームの復号〉
拡張AC-3(E-AC-3: Extended AC-3)規格に従って符号化ビットストリームに符号化されたオーディオを復号するための本発明の諸実施形態について述べる。E-AC-3およびそれ以前のAC-3規格は非特許文献1において詳細に記載されている。しかしながら、本発明はE-AC-3でエンコードされたビットストリームの復号に限定されるものではなく、別の符号化方法に従ってエンコードされたビットストリームのデコーダおよび復号や、そのような復号方法、符号装置、そのような復号を実行するシステム、実行されたときに一つまたは複数のプロセッサにそのような復号を実行させるソフトウェアおよび/またはそのようなソフトウェアが記憶されている有形の記憶媒体にも適用されうる。たとえば、本発明の諸実施形態は、MPEG-2 AAC(ISO/IEC 13818-7)およびMPEG-4オーディオ(ISO/IEC 14496-3)規格に従って符号化されたオーディオの復号にも適用可能である。MPEG-4オーディオ規格は、高効率AACバージョン1(HE-AAC v1: High Efficiency AAC version 1)および高効率AACバージョン2(HE-AAC v2)符号化の両方を含む。これらは本稿ではまとめてHE-AACと称される。
【0041】
AC-3およびE-AC-3はドルビー(登録商標)デジタルおよびドルビー(登録商標)デジタル・プラスとしても知られる。いくつかの追加的な互換な改善を組み込んだHE-AACのバージョンもドルビー(登録商標)パルスとして知られる。これらは本発明の被譲渡者であるドルビー・ラボラトリーズ・ライセンシング・コーポレーションの商標であり、一つまたは複数の管轄域において登録されていることがありうる。E-AC-3はAC-3と互換であり、追加的な機能を含む。
【0042】
x86アーキテクチャー
x86という用語は、インテル8086プロセッサに起源をもつプロセッサ命令セット・アーキテクチャーのファミリーを指すことが当業者によって一般に理解される。このアーキテクチャーは、インテル、サイリックス、AMD、VIAおよび他の多くの会社からのプロセッサにおいて実装されてきた。一般に、この用語は、インテル80386プロセッサの32ビット命令セットとのバイナリー互換性を含意するものと理解される。今日(2010年初頭)、x86アーキテクチャーはデスクトップおよびノートブック・コンピュータの間ではあまねく広まっており、またサーバーおよびワークステーションの間でも多数派として増えつつある。MS-DOS、ウィンドウズ、リナックス、BSD、ソラリスおよびMac OS Xといった多くのソフトウェアがこのプラットフォームをサポートしている。
【0043】
本稿での用法では、用語x86は、単一命令複数データ(SIMD: single instruction multiple data)命令セット拡張(SSE)をもサポートするx86プロセッサ命令セット・アーキテクチャーを意味する。SSEはもとのx86アーキテクチャーに対する単一命令複数データ(SIMD)命令セット拡張であり、1999年にインテルのペンティアムIIIシリーズのプロセッサにおいて導入され、今や多くのベンダーによって製造されるx86アーキテクチャーにおいて普通になっている。
【0044】
AC-3およびE-AC-3ビットストリーム
複数チャンネル・オーディオ信号のAC-3ビットストリームはフレームから構成される。フレームは、すべての符号化されたチャンネルにわたるオーディオ信号の1536個のパルス符号変調(PCM)されたサンプルの一定の時間期間を表す。五つまでのメイン・チャンネルおよび任意的に、「.1」と表される低周波数効果(LFE: low frequency effects)チャンネルが提供される。すなわち、5.1チャンネルまでのオーディオが提供される。各フレームは固定サイズをもち、そのサイズはサンプル・レートおよび符号化されるデータ・レートのみに依存する。
【0045】
手短に言うと、AC-3符号化は、重複変換――50%重複をもつカイザー・ベッセル派生(KBD: Kaiser Bessel derived)窓を用いた修正離散コサイン変換(MDCT: modified discrete cosine transform)――を使って時間データを周波数データに変換することを含む。周波数データは、該データを圧縮するために知覚的に符号化され、圧縮されたビットストリームを形成する。そのビットストリームの各フレームは、符号化されたオーディオ・データおよびメタデータを含む。各AC-3フレームは独立した実体であり、時間データを周波数データに変換するのに使われたMDCTに内在する変換の重なり(transform overlap)のほかは、前の諸フレームと何らデータを共有しない。
【0046】
各AC-3フレームの先頭には、SI(Sync Information[同期情報])およびBSI(Bit Stream Information[ビットストリーム情報])フィールドがある。SIおよびBSIフィールドは、サンプル・レート、データ・レート、符号化されるチャンネルの数およびいくつかの他のシステム・レベルの要素を含むビットストリーム構成を記述する。フレーム毎に、先頭と末尾に一つずつ、誤り検出手段を提供する二つのCRC(cyclic redundancy code[巡回冗長符号])語もある。
【0047】
各フレーム内には六つのオーディオ・ブロックがあり、各ブロックはオーディオ・データの符号化されたチャンネル毎に256個のPCMサンプルを表現する。オーディオ・ブロックは、ブロック切り換えフラグ(block switch flags)、結合座標(coupling coordinates)、指数(exponents)、ビット割り当てパラメータ(bit allocation parameters)および仮数(mantissas)を含む。ブロック0に存在する情報がその後のブロックにおいて再利用されてもよいといったデータ共有が、フレーム内で許容される。
【0048】
任意的な補助(aux)データ・フィールドがフレームの末尾に位置される。このフィールドは、システム設計者が、プライベートな制御または状態情報をシステム・ワイドな伝送のためにAC-3ビットストリーム中に埋め込めるようにする。
【0049】
E-AC-3は六つの256係数変換というAC-3のフレーム構造を保存している、一方で、一つ、二つおよび三つの256係数変換ブロックからなるより短いフレームをも許容する。これは、640kbpsより大きなデータ・レートでのオーディオの転送を可能にする。各E-AC-3フレームはメタデータおよびオーディオ・データを含む。
【0050】
E-AC-3は、AC-3の5.1より有意に多数のチャンネルを許容する。特に、E-AC-3は今日一般的な6.1および7.1オーディオの搬送を許容し、たとえば将来のマルチチャンネル・オーディオ・サウンド・トラックをサポートするための少なくとも13.1チャンネルの搬送を許容する。5.1を超える追加的なチャンネルは、メイン・オーディオ・プログラム・ビットストリームを、8個までの追加的な従属ビットストリームと関連付けることによって得られる。該従属ビットストリームはみな、一つのE-AC-3ビットストリームに多重化される。これは、メイン・オーディオ・プログラムがAC-3の5.1チャンネル・フォーマットを伝送することを許容し、その一方で追加的なチャンネル容量は従属ビットストリームに由来する。これは、5.1チャンネル・バージョンおよびさまざまな従来式のダウンミックスが常に利用可能であり、チャンネル代替プロセスの使用により、マトリクス減算に誘起された符号化アーチファクトが解消されることを意味する。
【0051】
それぞれ関連付けられた従属サブストリームをもつ可能性がある七つのさらなる独立オーディオ・ストリームを搬送できることにより、複数プログラム・サポートも利用可能となり、各プログラムのチャンネル搬送を5.1チャンネルを超えて増大させる。
【0052】
AC-3は、オーディオ素材を知覚的に符号化するために、比較的短い変換および単純なスカラー量子化を使う。E-AC-3は、AC-3と互換でありながら、改善されたスペクトル分解能、改善された量子化および改善された符号化を提供する。E-AC-3では、符号化効率はAC-3より高められており、低めのデータ・レートを有益に使用できる。これは、時間データを周波数領域データに変換するための改善されたフィルタバンク、改善された量子化、向上されたチャンネル結合、スペクトル拡張および過渡プレノイズ処理(TPNP: transient pre-noise processing)と呼ばれる技法を使って達成される。
【0053】
時間データを周波数データに変換するための重複変換MDCTに加えて、E-AC-3は、定常的なオーディオ信号について適応ハイブリッド変換(AHT: adaptive hybrid transform)を使う。AHTは重複カイザー・ベッセル派生(KBD)窓を用いたMDCTと、定常信号についてはそれに続く、非窓処理、非重複のII型離散コサイン変換(DCT)の形の二次ブロック変換とを含む。このように、AHTは、定常的な特性をもつオーディオが存在するとき、既存のAC-3のMDCT/KBDフィルタバンクのあとに第二段のDCTを追加して、六個の256係数変換ブロックを周波数分解能が増した単一の1536係数ハイブリッド変換ブロックに変換する。この増大した周波数分解能は、六次元ベクトル量子化(VQ: vector quantization)および利得適応量子化(GAQ: gain adaptive quantization)と組み合わされて、いくつかの信号、たとえば「符号化困難な」信号について符号化効率を改善する。VQは、それほどの精度が要求されない周波数帯域を効率的に符号化するのに使われ、GAQは高めの精度の量子化が要求されるときにより高い効率を提供する。
【0054】
改善された符号化効率は、位相保存(phase preservation)とともにチャンネル結合(channel coupling)を使うことを通じても得られる。この方法は、復号時に各チャンネルの高周波数部分を再構成する高周波数モノ複合チャンネルを使うAC-3のチャンネル結合方法をもとに拡張する。位相情報の追加と、ビットストリーム中で送られるスペクトル振幅情報の、エンコーダに制御される処理とがこのプロセスの忠実度を改善し、それにより、モノ複合チャンネルが、それまで可能であったより低い周波数に拡張されることができる。これはエンコードされる有効帯域幅を減らし、よって符号化効率を高める。
【0055】
E-AC-3はスペクトル拡張をも含む。スペクトル拡張は、上の(upper)周波数変換係数を、下の(lower)周波数スペクトル・セグメントを周波数において上に移したもので置き換えることを含む。移されたセグメントのスペクトル特性は、変換係数のスペクトル修正を通じて、また整形されたノイズ成分の移された下の周波数スペクトル・セグメントとの混合と通じて、オリジナルにマッチされる。
【0056】
E-AC-3は低周波数効果(LFE)チャンネルを含む。これは、限られた(<120Hz)帯域幅の任意的な単一のチャンネルであり、フル帯域幅のチャンネルに対して+10dBのレベルで再生されることが意図されている。この任意的なLFEチャンネルにより、低周波数音について高い音圧レベルが提供できる。他の符号化規格、たとえばAC-3およびHE-AACも任意的なLFEチャンネルを含む。
【0057】
低データ・レートでのオーディオ品質を改善するための追加的な技法は、後述する過渡プレノイズ処理の使用である。
【0058】
AC-3復号
典型的なAC-3デコーダ実装では、メモリおよびデコーダ・レイテンシ要求をできるだけ小さくしておくため、各AC-3フレームは一連のネストされたループにおいて復号される。
【0059】
第一のステップはフレーム整列を確立する。これは、AC-3同期語を見出し、次いでCRC誤り検出語が誤りなしを示していることを確認すことを含む。ひとたびフレーム同期が見出されたら、BSIデータがアンパックされて、符号化されたチャンネル数といった重要なフレーム情報を決定する。チャンネルの一つはLFEチャンネルであってもよい。符号化されたチャンネル数は本稿ではN.nと記される。ここで、nはLFEチャンネルの数であり、Nはメイン・チャンネルの数である。現在使われている符号化規格では、n=0または1である。将来には、n>1であるケースが生じることがありうる。
【0060】
復号における次のステップは、六つのオーディオ・ブロックのそれぞれをアンパックすることである。出力パルス符号変調データ(PCM)バッファのメモリ要求を最小限にするため、オーディオ・ブロックは一つずつアンパックされる。各ブロック期間の終わりに、PCM結果が、多くの実装では、出力バッファにコピーされ、該バッファはハードウェア・デコーダでのリアルタイム動作のために、典型的には、デジタル‐アナログ変換器(DAC: digital-to-analog converter)による直接割り込みアクセス(direct interrupt access)のためにダブル・バッファリングまたは環状バッファリングされる。
【0061】
AC-3デコーダのオーディオ・ブロック処理は、二つの相異なる段階に分割できる。それらの段階をここでは入力処理および出力処理と称する。入力処理はあらゆるビットストリーム・アンパッキングおよび符号化チャンネル操作を含む。出力処理は主として逆MDCT変換の窓処理および重複加算段階を指す。
【0062】
この区別をするのは、本稿でM≧1で表す、AC-3デコーダによって生成されるメイン出力チャンネルの数が必ずしも、本稿でNで表す(N≧1)ビットストリーム中にエンコードされている入力メイン・チャンネルの数に一致しないからである。必ずというわけではないが、典型的にはN≧Mである。ダウンミキシングの使用により、デコーダはいかなる数Nの符号化されるチャンネルをもつビットストリームでも受け入れることができ、任意の数Mの(M≧1)出力チャンネルを生成できる。一般に、本稿では出力チャンネルの数はM.mと表され、Mはメイン・チャンネルの数であり、mはLFE出力チャンネルの数であることを注意しておく。今日の応用では、m=0または1である。将来にはm>1とすることも可能でありうる。
【0063】
ダウンミキシングにおいて、符号化されたチャンネルのすべてが出力チャンネルに含められるわけではないことを注意しておく。たとえば、5.1からステレオへのダウンミックスでは、LFEチャンネル情報は通例破棄される。このように、一部のダウンミキシングでは、n=1かつm=0である。すなわち、出力LFEチャンネルはない。
【0064】
図1は、実行されたときに典型的なAC-3復号プロセスを行う命令の擬似コード100を示している。
【0065】
AC-3復号における入力処理は典型的には、デコーダが、オーディオ・ブロックの先頭に位置するパラメータおよびフラグの集合である固定オーディオ・ブロック・データをアンパックするときに始まる。この固定データは、ブロック切り換えフラグ、結合情報、指数およびビット割り当てパラメータといった項目を含む。「固定データ(fixed data)」という用語は、これらのビットストリーム要素のための語のサイズが先験的に知られており、そのような要素を復元するために可変長復号プロセスは必要とされないという事実をいったものである。
【0066】
指数は、符号化された各チャンネルからのすべての指数を含むので、固定データ領域中の単一の最も大きなフィールドをなす。符号化モードに依存して、AC-3では、仮数一つ当たり最大一つの指数があってもよく、チャンネル一つ当たり256までの仮数があってもよい。これらの指数のすべてをローカル・メモリにアンパックするのではなく、多くのデコーダ実装は指数フィールドへのポインタを保存し、必要とされる際に一チャンネルずつアンパックする。
【0067】
ひとたび固定データがアンパックされると、多くの既知のAC-3デコーダは符号化された各チャンネルの処理を開始する。まず、所与のチャンネルについての指数が入力フレームからアンパックされる。次いで、ビット割り当て計算が典型的には実行され、これは前記指数およびビット割り当てパラメータを受けて、パックされた各仮数についての語のサイズを計算する。次いで仮数が典型的には入力フレームからアンパックされる。仮数は、適切なダイナミックレンジ制御を与え、必要であれば結合動作を打ち消すために、スケーリングされ、次いで指数によって非正規化される(denormalized)。最後に、プレ重複加算(pre-overlap-add)データという、「窓領域(window domain)」と呼ばれるものの中のデータを決定するために、逆変換が計算され、その結果が、その後の出力処理のために、適切なダウンミックス・バッファ中にダウンミキシングされる。
【0068】
いくつかの実装では、個々のチャンネルについての指数は「MDCTバッファ」と呼ばれる256サンプル長のバッファ中にアンパックされる。これらの指数は次いでビット割り当ての目的のために50もの帯域にグループ化される。各帯域中の指数の数は、より高いオーディオ周波数に向かうほど増大し、ほぼ、音響心理学上の臨界帯域をモデル化する対数的な分割に従う。
【0069】
これらのビット割り当て帯域のそれぞれについて、指数およびビット割り当てパラメータが組み合わされて、その帯域中の各仮数について仮数語サイズが生成される。これらの語サイズは24サンプル長の帯域バッファに記憶され、最も幅広いビット割り当て帯域は24個の周波数ビンからなる。ひとたびこれらの語サイズが計算されたら、対応する仮数が入力フレームからアンパックされて、もとの帯域バッファ中のしかるべき位置に記憶される。これらの仮数はスケーリングされ、対応する指数によって非正規化され、書き込まれる、たとえばもとのMDCTバッファ中のしかるべき位置に書き込まれる。すべての帯域が処理され、すべての仮数がアンパックされたのち、MDCTバッファ中に残っている位置があればそれらの位置は典型的にはゼロが書き込まれる。
【0070】
逆変換が実行される、たとえばMDCTバッファ中のしかるべき位置で実行される。この処理の出力である窓領域データは、次いで、メタデータに従って決定される、たとえばメタデータに従ってあらかじめ定義されたデータからフェッチされるダウンミックス・パラメータに従って、適切なダウンミックス・バッファ中にダウンミキシングされることができる。
【0071】
ひとたび入力処理が完了し、ダウンミックス・バッファが窓領域のダウンミックスされたデータをもってフルに生成されたら、デコーダは出力処理を実行できる。各出力チャンネルについて、ダウンミックス・バッファおよびその対応する128サンプル長の半ブロック遅延バッファが窓処理され、組み合わされて、256個のPCM出力サンプルを生じる。デコーダおよび一つまたは複数のDACを含むハードウェア・サウンド・システムでは、これらのサンプルはDAC語幅に丸められ、出力バッファにコピーされる。ひとたびこれがなされたら、ダウンミックス・バッファの半分は次いでその対応する遅延バッファにコピーされる。これにより、次のオーディオ・ブロックの適正な再構成に必要な50%の重複情報が与えられる。
【0072】
E-AC-3符号化
本発明の個別的な実施形態は、M.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するよう、エンコードされたオーディオ・データのN.nで表されるある数のチャンネルを含むオーディオ・データを復号するオーディオ・デコーダ、たとえばE-AC-3エンコードされたオーディオ・データを復号するE-AC-3オーディオ・デコーダを動作させる方法を含む。ここで、n=0または1であり、m=0または1であり、M≧1である。n=1は一つの入力LFEチャンネルを示し、m=1は一つの出力LFEチャンネルを示す。M<Nであることはダウンミキシングを示し、M>Nであることはアップミキシングを示す。
【0073】
本方法は、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを受け入れ、エンコード方法によってエンコードすることを含む。該エンコード方法は、たとえば重複変換を使ってNチャンネルのデジタル・オーディオ・データを変換し、周波数領域の指数および仮数データを形成およびパッキングし、前記周波数領域の指数および仮数データに関係したメタデータを形成およびパッキングすることを含むエンコード方法であり、たとえばE-AC-3エンコード方法である。前記メタデータは任意的に、過渡プレノイズ処理に関係したメタデータを含む。
【0074】
本稿に記載されるいくつかの実施形態は、E-AC-3規格またはE-AC-3規格に対して上位互換な規格に従ってエンコードされ、5つより多い符号化されたメイン・チャンネルを含んでいてもよいエンコードされたオーディオ・データを受け入れるよう設計される。
【0075】
下記でより詳細に述べるように、本方法は、受け入れられたオーディオ・データを復号することを含む。復号は:前記メタデータをアンパックし、周波数領域の指数および仮数データをアンパックおよび復号し;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定し;周波数領域データを逆変換し;窓処理および重複加算を適用してサンプリングされたオーディオ・データを決定し;過渡プレノイズ処理に関係した前記メタデータに従って必要とされる過渡プレノイズ処理復号があればそれを適用し;M<Nの場合、ダウンミキシング・データに従って、ダウンミキシングすることを含む。ダウンミキシングは、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従ってダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、ダウンミキシングすることを含む。
【0076】
本発明のいくつかの実施形態では、デコーダは、ベクトル命令を含む、ストリーミング単一命令複数データ(SIMD)拡張(SSE)命令を実行する少なくとも一つのx86プロセッサを使う。そのような実施形態では、ダウンミキシングは、前記一つまたは複数のx86プロセッサの少なくとも一つでベクトル命令を走らせることを含む。
【0077】
本発明のいくつかの実施形態では、AC-3オーディオであってもよいE-AC-3オーディオ用の復号方法は、二回以上適用できる、すなわち異なるデコーダ実装において二回以上インスタンス生成されることのできる動作モジュールに分割される。復号を含む方法の場合、復号は、フロントエンド復号(FED: front-end decode)動作のセットとバックエンド復号(BED: back-end decode)動作のセットに分割される。後述するように、フロントエンド復号動作はAC-3またはE-AC-3ビットストリームのフレームの周波数領域の指数および仮数データをアンパックおよび復号して、そのフレームについての、アンパックされ復号された周波数領域の指数および仮数データおよびそのフレームの付随するメタデータを得る。バックエンド復号動作は、変換係数を決定し、決定された変換係数を逆変換し、窓処理および重複加算動作を適用し、必要とされる過渡プレノイズ処理復号があればそれを適用し、ビットストリーム中の符号化されているチャンネルより少数の出力チャンネルがある場合には、ダウンミキシングを適用することを含む。
【0078】
本発明のいくつかの実施形態は、処理システムの一つまたは複数のプロセッサによって実行されたときに処理システムに、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成することを実行させる命令を記憶しているコンピュータ可読記憶媒体を含み、M≧1である。今日の規格では、n=0または1であり、m=0または1であるが、本発明はそれに限定されない。前記命令は、実行されたときに、エンコード方法、たとえばAC-3またはE-AC-3によってエンコードされた、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを受け入れさせる命令を含む。前記命令はさらに、実行されたときに、受け入れられたオーディオ・データを復号させる命令を含む。
【0079】
そのようないくつかの実施形態では、受け入れられたオーディオ・データは、符号化されたデータのフレームからなるAC-3またはE-AC-3ビットストリームの形である。実行されたときに、受け入れられたオーディオ・データを復号させる前記命令は、フロントエンド復号(FED)モジュールおよびバックエンド復号(BED)モジュールを含む、一組の再使用可能な命令モジュールに分割される。フロントエンド復号モジュールは、実行されたときに、ビットストリームのフレームの周波数領域の指数および仮数データをアンパックおよび復号してそのフレームについてのアンパックされ復号された周波数領域の指数および仮数データおよびそのフレームの付随するメタデータにさせる命令を含む。バックエンド復号モジュールは、実行されたときに、変換係数を決定し、逆変換し、窓処理および重複加算動作を適用し、必要とされる過渡プレノイズ処理復号があればそれを適用し、入力された符号化されているチャンネルより少数の出力チャンネルがある場合には、ダウンミキシングを適用することを行わせる命令を含む。
【0080】
図2のA〜Dは、一つまたは複数の共通モジュールを有利に使用できるいくつかの異なるデコーダ構成をブロック概略図の形で示している。図2のAは、AC-3またはE-AC-3で符号化された5.1オーディオのための例示的なE-AC-3デコーダ200のブロック概略図である。もちろん、ブロック図におけるブロックをいうときの用語「ブロック」の使用は、ある量のオーディオ・データを表す、オーディオ・データのブロックと同じではない。デコーダ200は、AC-3またはE-AC-3フレームを受け入れ、フレームごとに、フレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることを行うフロントエンド復号(FED)モジュール201を含む。デコーダ200はまた、フロントエンド復号モジュール201からの周波数領域の指数および仮数データを受け入れ、それを5.1チャンネルまでのPCMオーディオ・データに復号するバックエンド復号(BED)モジュール203をも含む。
【0081】
デコーダのフロントエンド復号モジュールおよびバックエンド復号モジュールへの分解は、設計上の選択であり、必須の分割ではない。そのような分割は、いくつかの代替的な構成で共通のモジュールをもつという恩恵を与える。FEDモジュールは、そのような代替的な諸構成に共通であることができ、多くの構成では、FEDモジュールによって実行されるような、フレームのメタデータのアンパックおよびフレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることが共通している。
【0082】
代替的な構成の一例として、図2のBは、AC-3またはE-AC-3符号化5.1オーディオを復号するとともに、E-AC-3符号化フレームの5.1チャンネルまでのオーディオを5.1チャンネルまでのAC-3符号化フレームに変換する、E-AC-3符号化5.1オーディオのためのE-AC-3デコーダ/変換器210のブロック概略図である。デコーダ/変換器210は、AC-3またはE-AC-3フレームを受け入れ、フレームごとに、フレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることを行うフロントエンド復号(FED)モジュール201を含む。デコーダ/変換器210はまた、デコーダ200のバックエンド復号(BED)モジュールと同じまたは同様であり、フロントエンド復号モジュール201からの周波数領域の指数および仮数データを受け入れ、それを5.1チャンネルまでのPCMオーディオ・データに復号するバックエンド復号(BED)モジュール203をも含む。デコーダ/変換器210はまた、メタデータを変換するメタデータ変換器モジュール205と、フロントエンド復号モジュール201からの周波数領域の指数および仮数データを受け入れ、そのデータを、高々AC-3で可能な640kbpsの最大データ・レートの、5.1チャンネルまでのオーディオ・データのAC-3フレームとしてエンコードするバックエンド・エンコード・モジュール207とを含む。
【0083】
代替的な構成の一例として、図2のCは、5.1チャンネルまでの符号化オーディオのAC-3フレームを復号するとともに7.1チャンネルまでのオーディオのE-AC-3符号化フレームを復号するE-AC-3デコーダのブロック概略図である。デコーダ220はフレーム情報解析モジュール221を含む。フレーム情報解析モジュール221は、BSIデータをアンパックし、フレームおよびフレーム種別を識別し、フレームを適切なフロントエンド・デコーダ要素に与える。一つまたは複数のプロセッサおよび実行されたときに各モジュールの機能を実行させる命令が記憶されているメモリを含む典型的な実装では、フロントエンド復号モジュールの複数のインスタンス生成したものおよびバックエンド復号モジュールの複数のインスタンス生成したものが動作していてもよい。E-AC-3デコーダのいくつかの実施形態では、BSIアンパッキング機能は、BSIデータを見るために、フロントエンド復号モジュールから分離される。これは、さまざまな代替的な実装において使用される共通のモジュールを提供する。図2のCは、7.1チャンネルまでのオーディオ・データに好適なそのようなアーキテクチャーをもつデコーダのブロック概略図である。図2のDは、そのようなアーキテクチャーをもつ5.1デコーダ240のブロック概略図である。デコーダ240はフレーム情報解析モジュール241、フロントエンド復号モジュール243およびバックエンド復号モジュール245を含む。これらのFEDおよびBEDモジュールは、図2のCのアーキテクチャーにおいて使用されたFEDおよびBEDモジュールと構造が同様であってもよい。
【0084】
図2のCに戻ると、フレーム情報解析モジュール221は、5.1チャンネルまでの独立なAC-3/E-AC-3符号化フレームのデータを、AC-3またはE-AC-3フレームを受け入れ、フレームごとに、フレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにすることを行うフロントエンド復号モジュール223に与える。周波数領域の指数および仮数データは、デコーダ200のBEDモジュール203と同じまたは同様であるバックエンド復号モジュール255によって受け入れられる。バックエンド復号モジュール255は、フロントエンド復号モジュール223から周波数領域の指数および仮数データを受け入れ、そのデータを5.1チャンネルまでのPCMオーディオ・データに復号する。追加的なチャンネル・データの従属的なAC-3/E-AC-3符号化フレームがあればそれは、他のFEDモジュールと同様である別のフロントエンド復号モジュール227に与えられる。該別のフロントエンド復号モジュール227はフレームのメタデータをアンパックし、フレームのオーディオ・データを復号して周波数領域の指数および仮数データにする。バックエンド復号モジュール229はFEDモジュール227からデータを受け入れ、そのデータを復号して任意の追加的なチャンネルのPCMオーディオ・データにする。PCMチャンネル・マッピング器モジュール231が、それぞれのBEDモジュールからの復号されたデータを組み合わせて、7.1チャンネルまでのPCMデータを与えるのに使われる。
【0085】
5つより多くの符号化されたメイン・チャンネルがある場合、すなわちN>5の場合、たとえば7.1符号化チャンネルがある場合、符号化されたビットストリームは、5.1までの符号化チャンネルの独立フレームと、少なくとも一つの従属フレームの符号化データとを含む。そのような場合のためのソフトウェア実施形態、たとえば実行のための命令を記憶するコンピュータ可読媒体を含む実施形態では、命令は、複数の5.1チャンネル復号モジュールとして構成され、各5.1チャンネル復号モジュールは、フロントエンド復号モジュールのそれぞれのインスタンス生成したものおよびバックエンド復号モジュールのそれぞれのインスタンス生成したものを含む。前記複数の5.1チャンネル復号モジュールは、実行されたときに独立フレームの復号をさせる第一の5.1チャンネル復号モジュールと、それぞれの従属フレームについての一つまたは複数の他のチャンネル復号モジュールとを含む。いくつかのそのような実施形態では、命令は、実行されたときに、各フレームからのビットストリーム情報(BSI)をアンパックしてフレームおよびフレーム種別を識別させ、識別されたフレームを適切なフロントエンド復号モジュールのインスタンス生成したものに与える命令のフレーム情報解析モジュールと、実行されたとき、N>5の場合、それぞれのバックエンド復号モジュールからの復号されたデータを組み合わせてN個のメイン・チャンネルの復号データを形成させる命令のチャンネル・マッピング器モジュールとを含む。
【0086】
AC-3/E-AC-3デュアル・デコーダ変換器の動作方法
本発明のある実施形態は、それぞれ高々5.1チャンネルをもつ「メイン」および「付随」と表される二つのAC-3/E-AC-3入力ビットストリームを復号してPCMオーディオにし、変換の場合、メイン・オーディオ・ビットストリームをE-AC-3からAC-3に変換し、復号の場合、メイン・ビットストリームおよびもし存在すれば付随ビットストリームを復号する、デュアル・デコーダ変換器(DDC: dual decoder converter)の形である。デュアル・デコーダ変換器は、任意的に、付随オーディオ・ビットストリームから抽出された混合メタデータを使って、二つのPCM出力を混合する。
【0087】
デュアル・デコーダ変換器の一つの実施形態は、前記二つまでのAC-3/E-AC-3入力ビットストリームの復号および/または変換に含まれるプロセスを実行するデコーダの動作方法を実行する。もう一つの実施形態は、処理システムの一つまたは複数のプロセッサによって実行されたときに、処理システムに、前記二つまでのAC-3/E-AC-3入力ビットストリームの復号および/または変換に含まれるプロセスを実行させる命令、たとえばソフトウェア命令を有する有形の記憶媒体の形である。
【0088】
AC-3/E-AC-3デュアル・デコーダ変換器のある実施形態は、六つのサブコンポーネントを有し、そのいくつかは共通のサブコンポーネントを含む。それらのモジュールは下記のとおり。
【0089】
デコーダ変換器:デコーダ変換器は、実行されたときに、AC-3/E-AC-3入力ビットストリーム(高々5.1チャンネル)を復号してPCMオーディオにする、および/または入力ビットストリームをE-AC-3からAC-3に変換するよう構成されている。デコーダ変換器は三つの主要なサブコンポーネントを有し、上記の図2のBに示した実施形態を実装できる。それらの主要なサブコンポーネントは下記のとおり。
【0090】
フロントエンド復号:FEDモジュールは、実行されたときに、AC-3/E-AC-3ビットストリームのフレームを復号して、生の周波数領域のオーディオ・データおよびその付随メタデータにするよう構成されている。
【0091】
バックエンド復号:BEDモジュールは、実行されたときに、FEDモジュールによって開始された復号プロセスの残りの部分を完遂するよう構成される。具体的には、BEDモジュールは(仮数および指数のフォーマットの)オーディオ・データを復号してPCMオーディオ・データにする。
【0092】
バックエンド・エンコード:バックエンド・エンコード・モジュールは、実行されたときに、FEDからのオーディオ・データの六つのブロックを使ってAC-3フレームをエンコードするよう構成される。バックエンド・エンコード・モジュールはまた、実行されたときに、含まれているメタデータ変換器モジュールを使って、E-AC-3メタデータを、同期し、解決し(resolve)、ドルビー・デジタル・メタデータに変換するよう構成される。
【0093】
5.1デコーダ:5.1デコーダ・モジュールは、実行されたときに、AC-3/E-AC-3入力ビットストリーム(高々5.1チャンネル)を復号してPCMオーディオにするよう構成される。5.1デコーダはまた、任意的に、外部アプリケーションによる使用のために、二つのAC-3/E-AC-3ビットストリームを混合するための混合メタデータを出力する。デコーダ・モジュールは二つの主要なサブコンポーネントを含む:上述したFEDモジュールと上述したBEDモジュールである。例示的な5.1デコーダのブロック図が図2のDに示されている。
【0094】
フレーム情報:フレーム情報モジュールは、実行されたときに、AC-3/E-AC-3フレームをパースして、そのビットストリーム情報をアンパックするよう構成される。アンパック・プロセスの一環として、フレームに対してCRC検査が実行される。
【0095】
バッファ記述子:バッファ記述子モジュールは、バッファ動作のためのAC-3、E-AC-3およびPCMバッファ記述および機能を含む。
【0096】
サンプル・レート変換器:サンプル・レート変換器は任意的で、実行されたときに、PCMオーディオを2倍アップサンプリングするよう構成される。
【0097】
外部混合器:外部混合器モジュールは任意的で、実行されたときに、メイン・オーディオ・プログラムおよび付随オーディオ・プログラムを、該付随オーディオ・プログラムにおいて供給される混合メタデータを使って混合して単一の出力オーディオ・プログラムにするよう構成される。
【0098】
〈フロントエンド復号モジュールの設計〉
フロントエンド復号モジュールは、AC-3の方法に従って、かつ定常信号用のAHTデータの復号、E-AC-3の向上したチャンネル結合およびスペクトル拡張を含むE-AC-3の追加的な復号側面に従って、データを復号する。
【0099】
有形の記憶媒体の形の実施形態の場合、フロントエンド復号モジュールは、処理システムの一つまたは複数のプロセッサによって実行されたときに、フロントエンド復号モジュールの動作について本稿で詳細に記述されている工程を引き起こす、有形の記憶媒体に記憶されたソフトウェア命令を含む。ハードウェア実装では、フロントエンド復号モジュールは、動作において、フロントエンド復号モジュールの動作について本稿で詳細に記述されている工程を実行するよう構成されている要素を含む。
【0100】
AC-3復号では、ブロックごとの復号が可能である。E-AC-3では、最初のオーディオ・ブロック――フレームのオーディオ・ブロック0――は6ブロックすべてのAHT仮数を含む。よって、ブロックごとの復号は典型的には使われず、むしろいくつかのブロックが一度に処理される。しかしながら、実際のデータの処理はもちろん、各ブロックに対して実行される。
【0101】
ある実施形態では、AHTが使われるかどうかに関わりなく、一様な復号方法/デコーダ・アーキテクチャを使うために、FEDモジュールは、チャネルごとに2つのパスを実行する。第一のパスは、ブロックごとにメタデータをアンパックし、パックされた指数および仮数のデータが記憶されている場所へのポインタを保存することを含み、第二のパスは、パックされた指数および仮数への保存されたポインタを使って、チャンネルごとに指数および仮数のデータをアンパックおよび復号することを含む。
【0102】
図3は、たとえば実行されたときにFED処理を行わせるメモリ内に記憶された命令の集合として実装されるフロントエンド復号モジュールのある実施形態のブロック概略図である。図3はまた、2パスのフロントエンド復号モジュール300の第一のパスの命令についての擬似コードならびに2パスのフロントエンド復号モジュールの第二のパスの命令についての擬似コードをも示している。FEDモジュールは以下のモジュールを含む。各モジュールは命令を含み、いくつかのそのような命令は、構造およびパラメータを定義するという意味で定義的である。
【0103】
チャンネル:チャンネル・モジュールは、メモリ内でオーディオ・チャンネルを表現するための構造を定義し、AC-3またはE-AC-3ビットストリームからオーディオ・チャンネルをアンパックおよび復号するための命令を提供する。
【0104】
ビット割り当て:ビット割り当てモジュールは、マスキング曲線を計算し、符号化されたデータについてのビット割り当てを計算するための命令を提供する。
【0105】
ビットストリーム動作:ビットストリーム動作モジュールはAC-3またはE-AC-3ビットストリームからデータをアンパックするための命令を提供する。
【0106】
指数:指数モジュールは、メモリにおいて指数を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから指数をアンパックおよび復号するよう構成された命令を提供する。
【0107】
指数および仮数:指数および仮数モジュールは、メモリにおいて指数および仮数を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから指数および仮数をアンパックおよび復号するよう構成された命令を提供する。
【0108】
マトリクス処理(matrixing):マトリクス処理モジュールは、実行されたときに、マトリクス処理されたチャンネルの逆マトリクス処理をサポートするよう構成された命令を提供する。
【0109】
補助データ:補助データ・モジュールは、FED処理を行うためにFEDモジュールにおいて使用される補助データ構造を定義する。
【0110】
仮数:仮数モジュールは、メモリにおいて仮数を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから仮数をアンパックおよび復号するよう構成された命令を提供する。
【0111】
適応ハイブリッド変換:AHTモジュールは、実行されたときに、E-AC-3ビットストリームから適応ハイブリッド変換データをアンパックおよび復号するよう構成された命令を提供する。
【0112】
オーディオ・フレーム:オーディオ・フレーム・モジュールは、メモリにおいてオーディオ・フレームを表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームからオーディオ・フレームをアンパックおよび復号するよう構成された命令を提供する。
【0113】
向上された結合(enhanced coupling):向上された結合モジュールは、メモリにおいて向上された結合チャンネルを表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから向上された結合チャンネルをアンパックおよび復号するよう構成された命令を提供する。向上された結合は、E-AC-3ビットストリームにおける伝統的な結合を、位相およびカオス情報を与えることによって拡張する。
【0114】
オーディオ・ブロック:オーディオ・ブロック・モジュールは、メモリにおいてオーディオ・ブロックを表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームからオーディオ・ブロックをアンパックおよび復号するよう構成された命令を提供する。
【0115】
スペクトル拡張(spectral extension):スペクトル拡張モジュールは、E-AC-3ビットストリームにおけるスペクトル拡張復号のためのサポートを提供する。
【0116】
結合(coupling):結合モジュールは、メモリにおいて結合を表現するための構造を定義し、実行されたときにAC-3またはE-AC-3ビットストリームから結合をアンパックおよび復号するよう構成された命令を提供する。
【0117】
図4は、図3のフロントエンド復号モジュール300のある実施形態の動作のための簡略化されたデータフロー図を示しており、図3に示した擬似コードおよびサブモジュールがどのように協働してフロントエンド復号モジュールの機能を実行するかを記述している。機能的な要素によって意味されているのは、処理機能を実行する要素である。そのような各要素は、ハードウェア要素または処理システムおよび実行されたときに当該機能を行う命令を含む記憶媒体であってもよい。ビットストリーム・アンパック機能要素403はAC-3/E-AC-3フレームを受け入れ、標準的なおよび/またはAHTビット割り当て機能要素405のためにビット割り当てパラメータを生成する。機能要素405は、最終的には含まれている標準的な/向上された結合分離(decoupling)機能要素407のための指数および仮数データを生成するための、ビットストリーム・アンパッキングのためのさらなるデータを生じる。機能要素407は、必要とされる再マトリクス処理があれば含まれている再マトリクス処理(rematrixing)機能要素409がそれを実行するための指数および仮数データを生成する。機能要素409は、必要とされるスペクトル拡張があれば含まれるスペクトル拡張復号機能要素411がそれを実行するための指数および仮数データを生成する。機能要素407ないし411は、機能要素403のアンパック動作によって得られたデータを使う。フロントエンド復号の結果は、指数および仮数データならびに追加的なアンパックされたオーディオ・フレーム・パラメータおよびオーディオ・ブロック・パラメータである。
【0118】
図3に示される第一のパスおよび第二のパスの擬似コードをより詳細に参照するに、第一のパスの命令は、実行されたときに、AC-3/E-AC-3フレームからメタデータをアンパックするよう構成されている。具体的には、第一のパスは、BSI情報をアンパックし、オーディオ・フレーム情報をアンパックすることを含む。(フレーム毎に6ブロックの場合)ブロック0から始まってブロック5までの各ブロックについて、固定データがアンパックされ、各チャンネルについて、ビットストリーム中のパックされた指数へのポインタが保存され、指数がアンパックされ、パックされた仮数が存在するビットストリーム中の位置が保存される。ビット割り当てが計算され、ビット割り当てに基づいて仮数がスキップされてもよい。
【0119】
第二のパスの命令は、実行されたときに、フレームからオーディオ・データを復号して、仮数および指数のデータを形成するよう構成されている。ブロック0から始めて各ブロックについて、アンパッキングは、パックされた指数への保存されたポインタをロードし、それによりポイントされる指数をアンパックし、ビット割り当てを計算し、パックされた仮数への保存されたポインタをロードし、それによりポイントされる仮数をアンパックすることを含む。復号は、標準的なおよび向上された結合分離を実行し、スペクトル拡張帯域(単数または複数)を生成し、他のモジュールから独立であるために、結果として得られるデータをメモリ、たとえば当該パスの内部メモリにとって外部のメモリに転送することを含む。それにより結果として得られるデータが他のモジュール、たとえばBEDモジュールによってアクセスできる。このメモリは、便宜上、「外部」メモリと呼ばれるが、当業者には明らかだろうが、すべてのモジュールについて使われる単一メモリ構造の一部であってもよい。
【0120】
いくつかの実施形態では、指数アンパッキングのために、第一のパスの間にアンパックされた指数は、メモリ転送を最小限にするために保存されない。あるチャンネルについてAHTが使われている場合、指数はブロック0からアンパックされて、1番から5番の他の5つのブロックにコピーされる。あるチャンネルについてAHTが使用されていない場合、パックされた指数へのポインタが保存される。チャンネル指数戦略が、指数を再使用することであるならば、保存されたポインタを使って指数は再びアンパックされる。
【0121】
いくつかの実施形態では、結合仮数のアンパッキング(coupling mantissa unpacking)のために、AHTが当該結合チャンネル(coupling channel)について使用される場合、AHT結合チャンネル仮数(AHT coupling channel mantissas)の六つすべてのブロックがブロック0においてアンパックされ、相関しないディザ(dither)を生じるために結合されたチャンネル(coupled channel)である各チャンネルについてディザが再生成される(regenerated)。AHTが当該結合チャンネルについて使用されない場合、結合仮数へのポインタが保存される。これらの保存されたポインタが、所与のブロック内の結合されたチャンネルである各チャンネルについて結合仮数を再アンパックするために使用される。
【0122】
〈バックエンド復号モジュールの設計〉
バックエンド復号(BED)モジュールは、周波数領域の指数および仮数データを受けて、それをPCMオーディオ・データに復号するよう動作する。PCMオーディオ・データは、ユーザー選択されたモード、ダイナミックレンジ圧縮およびダウンミックスに基づいてレンダリングされる。
【0123】
フロントエンド復号モジュールが指数および仮数データをフロントエンド・モジュールの作業メモリとは別個のメモリ――これは外部メモリと呼んでいる――に記憶するいくつかの実施形態では、BEDモジュールは、ダウンミックスおよび遅延バッファ要求を最小限にするために、ブロックごとのフレーム処理を使用し、フロントエンド・モジュールの出力と互換となるために、処理すべき指数および仮数データにアクセスするために外部メモリからの転送を使用する。
【0124】
有形の記憶媒体の形の実施形態の場合、バックエンド復号モジュールは、処理システムの一つまたは複数のプロセッサによって実行されたときに、バックエンド復号モジュールの動作について本稿で詳細に記述されている工程を引き起こす、有形の記憶媒体に記憶されたソフトウェア命令を含む。ハードウェア実装では、バックエンド復号モジュールは、動作において、バックエンド復号モジュールの動作について本稿で詳細に記述されている工程を実行するよう構成されている要素を含む。
【0125】
図5Aは、実行されたときにBED処理を行わせるメモリ内に記憶された命令の集合として実装されるバックエンド復号モジュール500のある実施形態のブロック概略図である。図5Aはまた、バックエンド復号モジュール500の命令についての擬似コードをも示している。BEDモジュールは以下のモジュールを含む。各モジュールは命令を含み、いくつかのそのような命令は定義的である。
【0126】
ダイナミックレンジ制御:ダイナミックレンジ制御モジュールは、実行されたときに、利得レンジング(gain ranging)を適用することおよびダイナミックレンジ制御を適用することを含む、復号された信号のダイナミックレンジを制御するための機能を実行させる命令を提供する。
【0127】
変換(transform):変換モジュールは、実行されたときに、逆変換を実行させる命令を提供する。逆変換の実行は、逆修正離散コサイン変換(IMDCT: inverse modified discrete cosine transform)を含み、逆修正離散コサイン変換の実行は、逆DCT変換を計算するために使われたプレ回転(pre-rotation)の実行、逆DCT変換を計算するために使われたポスト回転(post-rotation)の実行および逆高速フーリエ変換(IFFT: inverse fast Fourier transform)の決定を含む。
【0128】
過渡プレノイズ処理(transient pre-noise processing):過渡プレノイズ処理モジュールは、実行されたときに、過渡プレノイズ処理を実行させる命令を提供する。
【0129】
窓処理&重複加算(window & overlap-add):窓処理および重複加算モジュールは、実行されたときに、遅延バッファを用いて、逆変換されたサンプルから出力サンプルを再構成するために窓処理および重複/加算演算を行わせる命令を提供する。
【0130】
時間領域(TD: time domain)ダウンミックス:TDダウンミックス・モジュールは、実行されたときに、必要に応じてより少数のチャンネルへの時間領域でのダウンミキシングを行わせる命令を手供する。
【0131】
図6は、図5Aのバックエンド復号モジュール500のある実施形態の動作の簡略化したデータフロー図を示しており、図5Aに示されるコードおよびサブモジュール要素がどのように協働してバックエンド復号モジュールの機能を実行するかを記述している。利得制御機能要素603は、フロントエンド復号モジュール300から指数および仮数データを受け入れ、メタデータに従って、必要とされるダイナミックレンジ制御、ダイアログ正規化(dialog normalization)および利得レンジングがあればそれを適用する。結果として得られる指数および仮数データは、指数による仮数の非正規化機能要素605によって受け入れられる。機能要素605は逆変換のための変換係数を生成する。逆変換機能要素607はそれらの変換係数にIMDCTを適用し、窓処理および重複加算の前の時間サンプルを生成する。そのような重複加算の前の時間領域サンプルは本稿では「擬似時間領域」サンプルと呼ばれ、これらのサンプルは本稿で擬似時間領域と呼ばれる領域にある。それらのサンプルは、窓処理および重複加算機能要素609によって受け入れられる。機能要素609は、擬似時間領域サンプルに窓処理および重複加算動作を適用することによってPCMサンプルを生成する。メタデータに従って、過渡プレノイズ処理があれば、過渡プレノイズ処理機能要素611によって適用される。たとえばメタデータ中またはその他の仕方で指定されていれば、結果として得られる過渡プレノイズ処理後のPCMサンプルは、ダウンミキシング機能要素613によって、M.m個の出力チャンネルのPCMサンプルにダウンミックスされる。
【0132】
再び図5Aを参照するに、BEDモジュール処理のための擬似コードは、各データ・ブロックについて、あるチャンネルの諸ブロックについての仮数および指数データを外部メモリから転送し、各チャンネルについて:メタデータに従って、必要とされるダイナミックレンジ制御、ダイアログ正規化および利得レンジングがあればそれを適用し;指数によって仮数を非正規化して、逆変換のための変換係数を生成し;変換係数に対してIMDCTを計算して擬似時間領域サンプルを生成し;窓処理および重複加算演算を擬似時間領域サンプルに適用し;メタデータに従って、過渡プレノイズ処理があれば適用し;要求されていれば、M.m個の出力チャンネルのPCMサンプルに時間領域ダウンミキシングすることを含む。
【0133】
図5Aに示される復号の諸実施形態は、そのような利得調整を、メタデータに従ってダイアログ正規化オフセットを適用すること、および、メタデータに従ってダイナミックレンジ制御利得因子を適用することとして実行することを含む。データが周波数領域における仮数および指数の形で与えられている段階でそのような利得調整を実行することは、有利である。利得変化は時間とともに変わることがあり、周波数領域においてなされたそのような利得変化は、ひとたび逆変換および窓処理/重複加算演算が行われたら、なめらかなクロスフェードを与えるのである。
【0134】
過渡プレノイズ処理(Transient Pre-Noise Processing)
E-AC-3エンコードおよびデコードは、AC-3よりも低いデータ・レートで動作し、よりよいオーディオ品質を与えるよう設計されたものである。より低いデータ・レートでは、符号化されたオーディオのオーディオ品質は、特に比較的符号化困難な過渡的な素材について、負の影響を受けることがある。オーディオ品質に対するこの影響は、主として、こうした型の信号を正確に符号化するために利用可能なデータ・ビットの数が限られていることによる。過渡信号の符号化アーチファクトは、当該過渡信号の精細度(definition)の低下ならびに「過渡プレノイズ」アーチファクトとして示される。「過渡プレノイズ(transient pre-noise)」アーチファクトは、符号化量子化誤差のため、エンコード窓全体にわたって可聴ノイズを広げる(smear)。
【0135】
上記および図5および図6において記述されるように、BEDは過渡プレノイズ処理を提供する。E-AC-3エンコードは、適切なオーディオ・セグメントを、過渡プレノイズに先行して位置するオーディオを使って合成されるオーディオで置換することによって、過渡成分を含むオーディオがエンコードされるときに導入されうる過渡プレノイズ・アーチファクトを減らすために、過渡プレノイズ処理符号化(transient pre-noise processing coding)を含む。該オーディオは、時間スケーリング合成(time scaling synthesis)を使って処理され、それによりその継続時間は増加させられ、そのため、過渡プレノイズを含むオーディオを置換するのに適切な長さとなる。オーディオ合成バッファは、オーディオ・シーン解析および最大類似度処理を使って解析され、次いで、その継続時間が過渡プレノイズを含むオーディオを置換するのに十分長くされるよう時間スケーリングされる。長くされた合成オーディオは過渡プレノイズを置換するために使われ、合成されたオーディオからもとの符号化されたオーディオ・データへのなめらかな遷移を保証するよう、過渡成分の位置の直前の既存の過渡プレノイズ中にクロスフェードされる。過渡プレノイズ処理を使うことにより、ブロック切り換え(block switching)が無効にされている場合でさえ、過渡プレノイズの長さが劇的に削減されるまたは除去されることができる。
【0136】
あるE-AC-3エンコーダ実施形態では、過渡プレノイズ処理ツールのための時間スケーリング合成解析および処理は、時間領域データに対して実行されて、たとえば時間スケーリング・パラメータを含むメタデータ情報が決定される。メタデータ情報は、エンコードされたビットストリームと一緒にデコーダによって受け入れられる。送信された過渡プレノイズ・メタデータは、低データ・レートでの低ビットレートのオーディオ符号化によって導入された過渡プレノイズを削減または除去するために、復号されたオーディオに対して時間領域処理を実行するために使われる。
【0137】
E-AC-3エンコーダは、検出された各過渡成分について、オーディオ・コンテンツに基づいて、時間スケーリング合成解析を実行し、時間スケーリング・パラメータを決定する。時間スケーリング・パラメータは、追加的なメタデータとして、エンコードされたオーディオ・データと一緒に送信される。
【0138】
E-AC-3デコーダでは、E-AC-3メタデータにおいて提供されている最適な時間スケーリング・パラメータが、過渡プレノイズ処理における使用のために、受け入れられるE-AC-3メタデータの一部として受け入れられる。デコーダは、E-AC-3メタデータから得られる送信された時間スケーリング・パラメータを使って、オーディオ・バッファ・スプライシングおよびクロスフェードを実行する。
【0139】
最適時間スケーリング情報を使い、それを適切なクロスフェード処理とともに適用することにより、低ビットレートのオーディオ符号化によって導入された過渡プレノイズは、復号において、劇的に削減または除去されることができる。
【0140】
このように、過渡プレノイズ処理はプレノイズを、もとの内容に最もよく似たオーディオのセグメントで上書きする。過渡プレノイズ処理命令は、実行されるとき、コピー・オーバー(copy over)において使うために、4ブロックの遅延バッファを維持する。過渡プレノイズ処理命令は、実行されるとき、上書きが起こる場合、上書きされるプレノイズに対して出入りするクロスフェードを実行させる。
【0141】
〈ダウンミキシング〉
N.nがE-AC-3ビットストリームにおいてエンコードされるチャンネルの数を表すことにする。Nはメイン・チャンネルの数、n=0または1はLFEチャンネルの数である。しばしば、N個のメイン・チャンネルを、Mと表されるより少数の出力メイン・チャンネルにダウンミックスすることが所望される。M<NとしてNチャンネルからMチャンネルへのダウンミックスは、本発明の諸実施形態によってサポートされる。アップミックスも可能であり、その場合、M>Nである。
【0142】
このように、最も一般的な実装では、オーディオ・デコーダ実施形態は、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを復号して、M.mチャンネルの復号されたオーディオを含むオーディオ・データを復号するよう動作し、M≧1であり、n、mはそれぞれ入力、出力におけるLFEチャンネルの数である。ダウンミキシングはM<Nの場合であり、M<Nの場合、一組のダウンミキシング係数に従って、含められる。
【0143】
周波数領域のダウンミキシングと時間領域のダウンミキシング
ダウンミキシングは完全に周波数領域で、逆変換の前に行うこともできるし、逆変換後、ただし重複加算ブロック処理の場合には窓処理および重複加算演算の前に時間領域で行うこともできるし、あるいは窓処理および重複加算演算後に時間領域で行うこともできる。
【0144】
周波数領域(FD: frequency domain)ダウンミキシングは時間領域ダウンミキシングよりずっと効率的である。その効率性は、たとえば、ダウンミキシング段階後のいかなる処理ステップも残った数のチャンネルに対してのみ実行され、該残った数は一般にダウンミキシング後は少なくなっているという事実からくる。このように、ダウンミキシング段階後の全処理ステップの計算量が、少なくとも、入力チャンネルと出力チャンネルの比だけ削減される。
【0145】
一例として、5.0チャンネルからステレオへのダウンミックスを考えてみよう。この場合、あらゆる後続処理ステップの計算量が約5/2=2.5倍低下することになる。
【0146】
時間領域(TD)ダウンミキシングは、典型的なE-AC-3デコーダおよび上述し図5A、図6で図解した実施形態において使用される。典型的なE-AC-3デコーダが時間領域のダウンミキシングを使用する三つの主要な理由がある。
【0147】
異なるブロック型をもつチャンネル
エンコードされるべきオーディオ内容に依存して、E-AC-3エンコーダは、オーディオ・データをセグメント分割するのに、短いブロックおよび長いブロックという二つの異なるブロック型の間で選択をすることができる。倍音的(harmonic)でゆるやかに変化するオーディオ・データは典型的には長いブロックを使ってセグメント分割およびエンコードされ、一方、過渡信号は短いブロックを使ってセグメント分割およびエンコードされる。結果として、短いブロックおよび長いブロックの周波数領域表現は本来的に異なっており、周波数領域のダウンミキシング動作では組み合わせられない。
【0148】
ブロック型固有のエンコード段階がデコーダにおいて打ち消されたのちにはじめて、それらのチャンネルを一緒に混合することができる。このように、ブロック切り換えのある(block-switched)変換の場合、異なる部分的逆変換プロセスが使われ、二つの異なる変換の結果は、窓処理段の直前まで、直接組み合わせることはできないのである。
【0149】
しかしながら、まず短い長さの変換データを長いほうの周波数領域データに変換する諸方法が知られており、その場合、ダウンミキシングは、周波数領域で実行できる。にもかかわらず、大半の既知のデコーダ実装では、ダウンミキシングは、ダウンミキシング係数に従って逆変換後に実行される。
【0150】
アップミックス
出力メイン・チャンネルの数が入力メイン・チャンネルの数より多い、M>Nの場合、時間領域混合のアプローチは有益である。これはアップミキシング段階を処理の終わりのほうに繰り下げ、処理におけるチャンネル数を減らすからである。
【0151】
TPNP
過渡プレノイズ処理(TPNP)にかけらるブロックは、TPNPが時間領域で動作するため、周波数領域ではダウンミックされえないことがありうる。TPNPは、4つまでのブロックのPCMデータ(1024個のサンプル)の履歴を必要とし、それがTPNPが適用されるチャンネルについて存在していなければならない。よって、PCMデータ履歴を埋め、プレノイズ置換を実行するために時間領域ダウンミックスへの切り換えが必要となる。
【0152】
周波数領域と時間領域両方のダウンミキシングを使うハイブリッド・ダウンミキシング
本発明者らは、大半の符号化されたオーディオ信号におけるチャンネルは、90%より多くの時間にわたって同じブロック型を使うことを認識している。これは、TPNPがないとして、典型的な符号化オーディオ中のデータの90%より多くについて、より効率がよい周波数領域ダウンミキシングが機能するということを意味している。残りの10%以下が、典型的な従来技術のE-AC-3デコーダにおいて行われるような時間領域ダウンミキシングを必要とすることになる。
【0153】
本発明の諸実施形態は、ブロックごとにどちらのダウンミキシング方法を適用すべきかを決定するダウンミックス方法選択論理と、適宜個別的なダウンミキシング方法を適用するための時間領域ダウンミキシング論理および周波数領域ダウンミキシング論理の両方を含む。こうして、方法実施形態は、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定することを含む。ダウンミックス方法選択論理は、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定するよう動作し、過渡プレノイズ処理があるかどうかを判別し、N個のチャンネルのうちのいずれかが異なるブロック型をもつかどうかを判別することを含む。選択論理は、N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理がなく、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用されるべきであると決定する。
【0154】
図5Bは、実行されたときにBED処理を行わせるメモリ内に記憶された命令の集合として実装されるバックエンド復号モジュール520のある実施形態のブロック概略図である。図5Bはまた、バックエンド復号モジュール520の命令についての擬似コードをも示している。BEDモジュール520は図5Aに示した、時間領域ダウンミキシングのみを使うモジュールと、以下の追加的なモジュールとを含む。各追加的モジュールは命令を含み、いくつかのそのような命令は定義的である。
【0155】
ダウンミックス方法選択モジュールは、(i)ブロック型の変化があるかどうか、(ii)真のダウンミキシング(M<N)がなくアップミキシングがあるかどうか、および(iii)当該ブロックがTPNPにかけられるかどうかについて検査し、このうちどれも真でない場合、周波数領域ダウンミキシングを選択する。このモジュールは、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定することを実行する。
【0156】
周波数領域ダウンミックス・モジュール。これは、指数によって仮数を非正規化したのち、周波数領域ダウンミキシングを実行する。周波数領域ダウンミックス・モジュールはまた、時間領域から周波数領域への遷移論理モジュールをも含んでいることを注意しておく。該遷移論理モジュールは、直前のブロックが時間領域ダウンミックスを使ったかどうかを検査し、その場合、当該ブロックは異なる仕方で扱われる。これについては下記でより詳しく述べる。さらに、前記遷移論理モジュールはまた、ある種の、不規則的に繰り返されるイベント、たとえばフェードアウトするチャンネルのようなプログラム変化に関連付けられた処理ステップをも扱う。
【0157】
FDからTDへのダウンミックス遷移論理モジュール。これは直前のブロックが周波数領域ダウンミックスを使ったかどうかを検査し、その場合、当該ブロックは異なる仕方で扱われる。これについては下記でより詳しく述べる。さらに、前記遷移論理モジュールはまた、ある種の、不規則的に繰り返されるイベント、たとえばフェードアウトするチャンネルのようなプログラム変化に関連付けられた処理ステップをも扱う。
【0158】
さらに、図5Aにあるモジュールは、ハイブリッド・ダウンミキシング、すなわち現在ブロックについての一つまたは複数の条件に依存してFDおよびTD両方のダウンミキシングを含む実施形態では異なる振る舞いをすることがある。
【0159】
図5Bの擬似コードを参照するに、バックエンド復号方法のいくつかの実施形態は、外部メモリからあるフレームの諸ブロックのデータを転送したのち、FDダウンミキシングするかTDダウンミキシングするかを見きわめることを含む。FDダウンミキシングのためには、各チャンネルについて、当該方法は、(i)ダイナミックレンジ制御およびダイアログ正規化を適用し、ただし、後述するように、利得レンジングは無効にし;(ii)指数によって仮数を非正規化し;(iii)FDダウンミキシングを実行し;(iv)フェードアウトするチャンネルがあるかどうかまたは直前のブロックが時間領域ダウンミキシングによってダウンミキシングされたかどうかを見きわめ、その場合、処理は異なる仕方で実行される。これについては下記でより詳細に述べる。TDダウンミキシングの場合について、またFDダウンミックスされたデータについても、当該処理は、各チャンネルについて、(i)直前のブロックがFDダウンミックスされた場合、TDダウンミックスされるようブロックを異なる仕方で処理し、またプログラム変化があればそれに対処し;(ii)逆変換を決定し;(iii)窓重複加算を実行し;TDダウンミキシングの場合、(iv)TPNPがあればそれを実行し、適切な出力チャンネルにダウンミキシングすることを含む。
【0160】
図7は、単純なデータフロー図を示している。ブロック701は、ブロック型変化、TPNPまたはアップミキシングという三つの条件について試験し、いずれかの条件が真であればデータフローをTDダウンミキシング分枝721に差し向けるダウンミックス方法選択論理に対応する。TDダウンミキシング分枝721は、723における、FDダウンミキシングによって処理されたブロックの直後に現れるブロックを異なる仕方で処理し、プログラム変化処理するFDダウンミックス遷移論理と、725における指数による仮数の非正規化とを含む。ブロック721後のデータフローは、共通の処理ブロック731によって処理される。ダウンミックス方法選択論理ブロック701の試験が、当該ブロックがFDダウンミキシングのためのものであると判定する場合、データフローはFDダウンミキシング処理711に分岐する。FDダウンミキシング処理711は、利得レンジングを無効にし、指数によって仮数を非正規化し、FDダウンミキシングを実行する周波数領域ダウンミックス・プロセス713と、直前のブロックがTDダウンミキシングによって処理されたかどうかを判定し、そのようなブロックを異なる仕方で処理し、またフェードアウトするチャンネルのような何らかのプログラム変化を検出しこれに対処するTDダウンミックス遷移論理ブロック715とを含む。TDダウンミックス遷移ブロック715後のデータフローは、同じ共通の処理ブロック731に進む。
【0161】
共通の処理ブロック731は、逆変換および任意のさらなる時間領域処理を含む。該さらなる時間領域処理は、利得レンジングの打ち消しおよび窓処理および重複加算処理を含む。当該ブロックがTDダウンミキシング・ブロック721からの場合、該さらなる時間領域処理はさらに、TPNP処理および時間領域ダウンミキシングがあればそれを含む。
【0162】
図8は、図7に示したようなバックエンド復号モジュールについての処理のある実施形態のフローチャートである。このフローチャートは下記のように区分されており、同様な機能データフロー・ブロックについては図7と同じ参照符号を用いている。ダウンミックス方法選択論理セクション701では、論理的なフラグFD_dmxが、1のときに、当該ブロックについて周波数領域ダウンミキシングが使用されることを示すために使われる。TDダウンミキシング論理セクション721は、FDダウンミキシングによって処理されたブロックの直後に現れるブロックを異なる仕方で処理し、プログラム変化処理を実行する、FDダウンミックス遷移論理およびプログラム変化論理セクション723と、各入力チャンネルについて指数によって仮数を非正規化するセクションとを含む。ブロック721後のデータフローは、共通の処理セクション731によって処理される。ダウンミックス方法選択論理ブロック701が、当該ブロックがFDダウンミキシングのためのものであると判定する場合、データフローはFDダウンミキシング処理セクション711に分岐する。FDダウンミキシング処理セクション711は、利得レンジングを無効にし、各チャンネルについて、指数によって仮数を非正規化し、FDダウンミキシングを実行する周波数領域ダウンミックス・プロセスと、直前のブロックの各チャンネルについて、チャンネルのフェードアウトがあるかどうかまたは直前のブロックがTDダウンミキシングによって処理されたかどうかを判定し、そのようなブロックを異なる仕方で処理するTDダウンミックス遷移論理セクション715とを含む。TDダウンミックス遷移セクション715後のデータフローは、同じ共通の処理論理セクション731に進む。共通の処理論理セクション731は、各チャンネルについて、逆変換および任意のさらなる時間領域処理を含む。該さらなる時間領域処理は、利得レンジングの打ち消しおよび窓処理および重複加算処理を含む。FD_dmxが0であり、TDダウンミキシングを示すなら、731における前記さらなる時間領域処理は、TPNP処理があれば該処理と、時間領域ダウンミキシングをも含む。
【0163】
FDダウンミキシング後は、TDダウンミックス遷移論理セクション715内で、817において、入力チャンネルの数Nが出力チャンネルの数Mと同じに設定されることを注意しておく。これにより、残りの処理、たとえば共通の処理論理セクション731における処理は、ダウンミキシングされたデータに対してのみ実行される。これは、計算量を減らす。もちろん、TDダウンミキシング――そのようなTDダウンミキシングはセクション715内の819として示されている――されたブロックからの遷移があるときの直前のブロックからのデータの時間領域ダウンミキシングは、N個の入力チャンネルのうちダウンミキシングに関わるもののすべてに対して実行される。
【0164】
遷移の処理
復号において、オーディオ・ブロック間のなめらかな遷移をもつことが必要である。E-AC-3および他の多くのエンコード方法は、ラップ変換(lapped transform)、たとえば50%重複(overlapping)MDCTを使う。よって、現在ブロックを処理するとき、直前のブロックとの50%の重なりがあり、さらに、時間領域で次のブロックとの間に50%の重なりがある。本発明のいくつかの実施形態は、重複加算バッファを含む重複加算論理を使う。現在ブロックを処理するとき、重複加算バッファは直前のオーディオ・ブロックからのデータを含む。オーディオ・ブロック間でなめらかな遷移をもつことが必要なので、TDダウンミキシングからFDダウンミキシングへ、および、FDダウンミキシングからTDダウンミキシングへの遷移を異なる仕方で扱う論理が含められる。
【0165】
図9は、それぞれL、C、R、LSおよびRSで表される左、中央、右、左サラウンドおよび右サラウンドのチャンネルを含む一般的な5チャンネル・オーディオのブロックk、k+1、……、k+4で表される5つのブロックを処理し、次の公式を使ってステレオ・ミックスにダウンミキシングする例を示している。
【0166】
L'で表される左出力=aC+bL+cLS および
R'で表される右出力=aC+bR+cRS。
【0167】
図9は、非重複変換(non-overlapped transform)が使われることを想定している。各長方形はブロックのオーディオ内容を表す。横軸は、左から右へ、ブロックk、……、k+4を表し、縦軸は上から下に、データの復号の進行を表す。ブロックkがTDダウンミキシングによって処理され、ブロックk+1およびk+2がFDダウンミキシングによって処理され、ブロックk+3およびk+4がTDダウンミキシングによって処理されるとする。見て取れるように、各TDダウンミキシング・ブロックについては、ダウンミキシングは、下のほうの時間領域ダウンミキシング後まで行われない。該時間領域ダウンミキシング後に、それらの内容はダウンミキシングされたL'およびR'チャンネルとなる。一方、FDダウンミキシングされるブロックについては、周波数領域における左および右チャンネルがすでに周波数領域ダウンミキシング後にダウンミックスされ、C、LSおよびRSチャンネル・データは無視される。ブロック間の重複がないので、TDダウンミキシングからFDダウンミキシングへ、あるいはFDダウンミキシングからTDダウンミキシングへの切り換えの際に特別なケースの処理は必要とされない。
【0168】
図10は、50%重複(overlapped)変換の場合を記述している。重複加算が重複加算復号によって重複加算バッファを使って実行されるとする。この図では、データ・ブロックが二つの三角形として示されるときは、左下の三角形が、直前ブロックからの重複加算バッファ内のデータであり、一方、右上の三角形が現在ブロックからのデータを示す。
【0169】
TDダウンミックスからFDダウンミックスへの遷移についての遷移処理
TDダウンミキシング・ブロックの直後のFDダウンミキシング・ブロックであるブロックk+1を考えよう。TDダウンミキシング後、重複加算バッファは直前ブロックからのL、C、R、LSおよびRSデータを含み、これが現在ブロックのために含められる必要がある。また、すでにFDダウンミックスされている現在ブロックk+1の寄与も含められる。出力のためのダウンミックスされたPCMデータを適正に決定するために、現在ブロックおよび直前ブロックのデータが含められる必要がある。このために、直前ブロックのデータは、フラッシュ・アウトされ、まだダウンミキシングされていないので時間領域でダウンミキシングされる必要がある。出力のためのダウンミックスされたPCMデータを決定するために、これら二つの寄与が加算されなければならない。この処理は、図7および図8のTDダウンミックス遷移論理715に、および図5Bに示されるFDダウンミックス・モジュールに含まれるTDダウンミックス遷移論理中のコードによって、含められる。そこで実行される処理は、図8のTDダウンミックス遷移論理セクション715においてまとめられている。より詳細には、TDダウンミックスからFDダウンミックスへの遷移のための遷移処理は、下記を含む。
【0170】
・重複加算論理にゼロを供給し、窓処理および重複加算を実行することによって重複バッファをフラッシュ・アウトする(flush out)。重複加算論理からのフラッシュ・アウトされた出力をコピーする。これは、ダウンミキシング前のその特定のチャンネルの直前ブロックのPCMデータである。重複バッファは今やゼロを含んでいる。
【0171】
・重複バッファからのPCMデータを時間領域ダウンミックスして、直前ブロックのTDダウンミックスのPCMデータを生成する。
【0172】
・現在ブロックからの新たなデータの周波数領域ダウンミックス。逆変換を実行し、FDダウンミキシングおよび逆変換後の新たなデータを重複加算論理に供給する。該新たなデータに関して窓処理および重複加算などを実行し、現在ブロックのFDダウンミックスのPCMデータを生成する。
【0173】
・TDダウンミックスおよびFDダウンミックスのPCMデータを加えてPCM出力を生成する。
【0174】
ある代替的な実施形態では、直前ブロックにTPNPがなかったとして、重複加算バッファ内のデータがダウンミキシングされ、次いで重複加算演算がダウンミックスされた出力チャンネルに対して実行される。これは、各直前ブロックチャンネルについて重複加算演算を実行する必要を回避する。さらに、AC-3復号について上述したように、ダウンミックス・バッファとその対応する128サンプル長の半ブロック遅延バッファが使用され、窓処理され、組み合わされて256個のPCM出力サンプルを生成するとき、ダウンミックス演算はより単純になる。遅延バッファが256ではなくたった128個のサンプルだからである。この側面は、遷移処理に内在するピーク計算量を減らす。したがって、いくつかの実施形態では、データがTDダウンミックスされたブロックに続いてFDダウンミックスされる特定のブロックについて、遷移処理は、その特定のブロックの復号されたデータと重畳させられるべき直前ブロックのデータに、擬似時間領域においてダウンミキシングを適用することを含む。
【0175】
FDダウンミックスからTDダウンミックスへの遷移についての遷移処理
FDダウンミキシング・ブロックk+2の直後のTDダウンミキシング・ブロックであるブロックk+3を考えよう。直前ブロックがFDダウンミキシング・ブロックだったので、より早い段階、たとえばTDダウンミキシング前の重複加算バッファは、左および右のチャンネルにはダウンミックスされたデータを含み、他のチャンネルにはデータを含まない。現在ブロックの寄与がダウンミックスされるのは、TDダウンミキシング後のことである。出力のためのダウンミックスされたPCMデータを適正に決定するために、現在ブロックおよび直前ブロックのデータが含められる必要がある。このために、直前ブロックのデータは、フラッシュ・アウトされる必要がある。出力のためのダウンミックスされたPCMデータを決定するためには、現在ブロックのデータは、時間領域でダウンミキシングされ、フラッシュ・アウトされた逆変換されたデータに加えられる必要がある。この処理は、図7および図8のFDダウンミックス遷移論理723に、および図5Bに示されるFDダウンミックス遷移論理モジュールに含まれるコードによって、含められる。そこで実行される処理は、図8のFDダウンミックス遷移論理セクション723においてまとめられている。より詳細には、各出力チャンネルについて出力PCMバッファがあるとして、FDダウンミックスからTDダウンミックスへの遷移のための遷移処理は、下記を含む。
【0176】
・重複加算論理にゼロを供給し、窓処理および重複加算を実行することによって重複バッファをフラッシュ・アウトする。その出力を出力PCMバッファにコピーする。フラッシュ・アウトされたデータは、直前ブロックのFDダウンミックスのPCMデータである。重複バッファは今やゼロを含んでいる。
【0177】
・現在ブロックの新たなデータの逆変換を実行し、現在ブロックのダウンミキシング前データを生成する。この新しい時間領域データ(変換後)を重複加算論理に供給する。
【0178】
・現在ブロックからの該新たなデータに関して窓処理および重複加算、もしあればTPNPならびにTDダウンミックスを実行し、現在ブロックのTDダウンミックスのPCMデータを生成する。
【0179】
・TDダウンミックスおよびFDダウンミックスのPCMデータを加えてPCM出力を生成する。
【0180】
時間領域ダウンミキシングから周波数領域ダウンミキシングへの遷移に加えて、時間領域ダウンミックス遷移論理およびプログラム変化ハンドラにおいて、プログラム変化が扱われる。新たに出現するチャンネルが自動的にダウンミックスに含められ、よっていかなる特別な処置も必要としない。新たなプログラムにおいてもはや存在しないチャンネルはフェードアウトされる必要がある。これは、FDダウンミキシングの場合について図8のセクション715において示されるように、フェードするチャンネルの重複バッファをフラッシュ・アウトすることによって実行される。フラッシュ・アウトは、重複加算論理にゼロを供給し、窓処理および重複加算を実行することによって実行される。
【0181】
図示したフローチャートおよびいくつかの実施形態では、周波数領域ダウンミックス論理セクション711は、周波数領域ダウンミックスの一部であるすべてのチャンネルについて任意的な利得レンジング機能を無効にすることを含むことを注意しておく。諸チャンネルは異なる利得レンジング・パラメータを有していてもよく、これはチャンネルのスペクトル係数の異なるスケーリングを誘導し、よってダウンミックスを妨げるのである。
【0182】
ある代替的な実装では、FDダウンミキシング論理セクション711は、すべての利得のうち最小のものが、(周波数領域)ダウンミックスされたチャンネルについての利得レンジングを実行するために使われるよう、修正される。
【0183】
変化するダウンミキシング係数をもつ時間領域ダウンミキシングならびに明示的なクロスフェードの必要性
ダウンミキシングはいくつかの問題を生じうる。異なるダウンミックスの式が異なる状況において求められる。よって、ダウンミックス係数は、信号条件に基づいて動的に変化する必要があることがある。最適な結果を求めてダウンミックス係数を調整することを許容するメタデータ・パラメータが利用可能である。
【0184】
このように、ダウンミックス係数は時間とともに変化できる。第一の組のダウンミキシング係数から第二の組のダウンミキシング係数への変化があるとき、データは、第一の組から第二の組へとクロスフェードされるべきである。
【0185】
ダウンミキシングが周波数領域で実行されるとき、また多くのデコーダ実装において、たとえば図1に示すような従来技術のAC-3デコーダにおいて、ダウンミキシングは窓処理および重複加算演算の前に実行される。ダウンミキシングを周波数領域で、あるいは時間領域で窓処理および重複加算の前に実行することの利点は、重複加算演算の結果として内在的なクロスフェードがあるということである。よって、ダウンミキシングが逆変換後に窓領域で、あるいはハイブリッド・ダウンミキシング実装において周波数領域で実行される多くの既知のAC-3デコーダおよび復号方法においては、明示的なクロスフェード処理はない。
【0186】
時間領域ダウンミキシングおよび過渡プレノイズ処理(TPNP)の場合、たとえば7.1デコーダにおけるプログラム変化の問題によって引き起こされる、過渡プレノイズ処理復号における1ブロックの遅延がある。よって、本発明の諸実施形態において、ダウンミキシングが時間領域で実行され、TPNPが使用されるとき、時間領域ダウンミキシングは窓処理および重複加算後に実行される。時間領域ダウンミキシングが使用される場合の処理の順序は:逆変換、たとえばMDCTを実行、窓処理および重複加算を実行、過渡プレノイズ処理復号があればそれを実行(遅延なし)、そして時間領域ダウンミキシングである。
【0187】
そのような場合、時間領域ダウンミキシングは、ダウンミックス係数における変化があったとしてもならされてしまうことを保証するよう、前および現在のダウンミキシング・データ、たとえばダウンミキシング係数またはダウンミキシング・テーブルのクロスフェードを必要とする。
【0188】
一つの選択肢は、結果として得られる係数を計算するようクロスフェード処理を実行することである。使用すべきミキシング係数をc[i]で表す。ここで、iは256個の時間領域サンプルの時間インデックスを表し、範囲はi=0,…,255である。w2[i]は、i=0,…,255についてw2[i]+w2[255−i]=1となるような正の窓関数を表すとする。coldは、更新前のミキシング係数、cnewは更新されたミキシング係数を表すとする。適用すべきクロスフェード処理は:
c[i]=w2[i]・cnew+w2[255−i]・cold i=0,…255
となる。
【0189】
係数クロスフェード処理を通じた各パス後、cold←cnewのように、古い係数は新しい係数で更新される。
【0190】
次のパスでは、係数が更新されない場合、
c[i]=w2[i]・cnew+w2[255−i]・cnew=cnew
となる。
【0191】
換言すれば、古い係数の組の影響は完全になくなっているのである!
本発明者は、多くのオーディオ・ストリームおよびダウンミキシング状況において、ミキシング係数はしばしば変化しないことを観察した。時間領域ダウンミキシング・プロセスのパフォーマンスを改善するため、時間領域ダウンミキシング・モジュールの諸実施形態は、ダウンミキシング係数がその前の値から変化しているかどうかを見きわめるべく試験し、変化していなければダウンミキシングを実行し、変化していれば、事前選択された正の窓関数に従ってダウンミキシング係数のクロスフェードを実行することを含む。ある実施形態では、窓関数は、窓処理および重複加算演算において使用されるのと同じ窓関数である。別の実施形態では、異なる窓関数が使用される。
【0192】
図11は、ダウンミキシングのある実施形態についての簡略化された擬似コードを示している。そのような実施形態についてのデコーダは、SSEベクトル命令を実行する少なくとも一つのx86プロセッサを使用する。ダウンミキシングは、新しいダウンミキシング・データが古いダウンミキシング・データから不変であるかどうかを見きわめることを含む。もしそうであれば、ダウンミキシングは、前記一つまたは複数のx86プロセッサのうちの少なくとも一つでSSEベクトル命令を走らせるためにセットアップし、不変のダウンミキシング・データを使ってダウンミキシングすることを含み、該ダウンミキシングすることは、少なくとも一つの走っているSSEベクトル命令を実行することを含む。そうでなく、新しいダウンミキシング・データが古いダウンミキシング・データから変化していれば、本方法は、クロスフェード処理により、クロスフェードされたダウンミキシング・データを決定することを含む。
【0193】
必要とされないデータの処理の除外
いくつかのダウンミキシング状況では、ダウンミックスされる出力に寄与しない少なくとも一つのチャンネルがある。たとえば、5.1オーディオからステレオへのダウンミックスの多くの場合、LFEチャンネルは含められない。よって、ダウンミックスは5.1から2.0である。LFEチャンネルをダウンミックスから除外することは、AC-3の場合のように、符号化フォーマットにとって本来的であってもよいし、E-AC-3の場合のように、メタデータによって制御されてもよい。E-AC-3では、lfemixlevcodeパラメータが、LFEチャンネルがダウンミックスに含められるかどうかを決定する。lfemixlevcodeパラメータが0のとき、LFEチャンネルはダウンミックスに含められない。
【0194】
ダウンミックスが周波数領域で、擬似時間領域で逆変換後だが窓処理および重複加算演算前に、あるいは時間領域で逆変換後かつ窓処理および重複加算演算後に、実行されうることを想起されたい。純粋な時間領域ダウンミキシングは多くの既知のE-AC-3デコーダおよび本発明のいくつかの実施形態において実行され、たとえばTPNPの存在のために有利である。擬似時間領域ダウンミキシングは多くのAC-3デコーダおよび本発明のいくつかの実施形態において実行され、重複加算演算が本来的なクロスフェードを与え、これがダウンミキシング係数が変化するときに有利なので有利である。周波数領域ダウンミキシングは、本発明のいくつかの実施形態において条件が許すときに実行される。
【0195】
本稿で論じたように、周波数領域ダウンミキシングは、5.1チャンネル入力から2チャンネル出力を生成するのに必要とされる逆変換および窓処理および重複加算演算の数を最小限にするので、最も効率的なダウンミキシング方法である。本発明のいくつかの実施形態では、たとえば図8においてFDダウンミキシングが実行されるとき、FDダウンミックス・ループ・セクション711において、要素813で始まり814で終わり、815で次のチャンネルにインクリメントされるループにおいて、ダウンミックスに含まれないチャンネルは、処理から除外される。
【0196】
擬似時間領域で逆変換後だが窓処理および重複加算演算前に、あるいは時間領域で逆変換後かつ窓処理および重複加算後に行われるダウンミキシングは、周波数領域ほど計算効率がいいわけではない。今日のAC-3デコーダのような多くの今日のデータでは、ダウンミキシングは擬似時間領域で実行される。逆変換演算はダウンミキシング演算とは独立して、たとえば別個のモジュールにおいて実行される。そのようなデコーダにおける逆変換は、すべての入力チャンネル上で実行される。これは、比較的計算効率が悪い。というのも、LFEチャンネルが含まれない場合でも、逆変換がこのチャンネルについて実行されるからである。たとえLFEチャンネルが限られた帯域幅であったとしても、逆変換をLFEチャンネルに適用するのはいかなるフル帯域幅のチャンネルに逆変換を適用するのとも同じくらいの計算を必要とするので、この無用の処理は有意である。本発明者らは、この不効率を認識した。本発明のいくつかの実施形態は、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含む。非寄与チャンネルとは、復号されたオーディオのM.m個の出力チャンネルに寄与しないチャンネルである。いくつかの実施形態では、同定は、情報、たとえばダウンミキシングを定義するメタデータを使う。5.1から2.0へのダウンミキシングの例では、LFEチャンネルはそのようにして非寄与チャンネルとして同定される。本発明のいくつかの実施形態は、M.m個の出力チャンネルに寄与する各チャンネルに対して周波数から時間への変換を実行し、M.m個のチャンネル信号に寄与しない同定された各チャンネルに対しては周波数から時間への変換を実行しないことを含む。LFEチャンネルがダウンミックスに寄与しない5.1から2.0への例では、逆変換、たとえばIMCDTは5つのフル帯域幅のチャンネルに対してのみ実行され、よって、逆変換は、5.1チャンネルすべてについて必要とされる計算資源に対して約16%の削減をもって実行される。IMDCTは復号方法において計算量のかなりの源なので、この削減は有意となりうる。
【0197】
今日のE-AC-3デコーダのような多くの今日のデコーダにおいて、ダウンミキシングは時間領域で実行される。逆変換演算および重複加算演算は、TPNPがあれば該TPNPより前に、かつダウンミキシング前に、ダウンミキシング演算とは独立に、たとえば別個のモジュールにおいて実行される。そのようなデコーダにおける逆変換および窓処理および重複加算演算は、すべての入力チャンネルに対して実行される。これは、比較的計算効率が悪い。というのも、LFEチャンネルが含まれない場合でも、逆変換および窓処理/重複加算がこのチャンネルについて実行されるからである。たとえLFEチャンネルが限られた帯域幅であったとしても、逆変換および重複加算をLFEチャンネルに適用するのはいかなるフル帯域幅のチャンネルに逆変換/重複加算を適用するのとも同じくらいの計算を必要とするので、この無用の処理は有意である。本発明のいくつかの実施形態では、ダウンミキシングは時間領域で実行され、他の実施形態では、ダウンミキシングは、ダウンミックス方法選択論理を適用した結果に依存して時間領域で実行されてもよい。TDダウンミキシングが使われる本発明のいくつかの実施形態は、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含む。いくつかの実施形態では、同定は、情報、たとえばダウンミキシングを定義するメタデータを使う。5.1から2.0へのダウンミキシングの例では、LFEチャンネルはそのようにして非寄与チャンネルとして同定される。本発明のいくつかの実施形態は、M.m個の出力チャンネルに寄与する各チャンネルに対して逆変換、すなわち周波数から時間への変換を実行し、M.m個のチャンネル信号に寄与しない同定された各チャンネルに対しては周波数から時間への変換や他の時間領域処理を実行しないことを含む。LFEチャンネルがダウンミックスに寄与しない5.1から2.0への例では、逆変換、たとえばIMCDT、重複加算およびTPNPは5つのフル帯域幅のチャンネルに対してのみ実行され、よって、逆変換および窓処理/重複加算部分は、5.1チャンネルすべてについて必要とされる計算資源に対して約16%の削減をもって実行される。図8のフローチャートでは、共通処理論理セクション731において、いくつかの実施形態の一つの特徴は、要素833で始まり834に続き、次のチャンネル要素へのインクリメント835を含むループにおける処理が、非寄与チャンネル以外のすべてのチャンネルについて実行されることを含む。これは、FDダウンミックスされるブロックについては本来的に行われる。
【0198】
いくつかの実施形態では、LFEは非寄与チャンネルである、すなわちAC-3やE-AC-3において一般的であるようにダウンミックスされた出力チャンネルに含められないが、他の実施形態では、それに加えて、またはその代わりに、LFE以外のチャンネルが非寄与チャンネルとなり、ダウンミックス出力に含められない。本発明のいくつかの実施形態は、もしあるとすればどの一つまたは複数のチャンネルが、該チャンネルがダウンミックスに含められないという意味で非寄与であるかを識別するような条件について検査し、時間領域ダウンミキシングの場合、識別された非寄与チャンネルがあれば該チャンネルについて逆変換および窓重複加算演算を通じた処理を実行しないことを含む。
【0199】
たとえば、AC-3およびE-AC-3では、サラウンド・チャンネルおよび/または中央チャンネルがダウンミックスされた出力チャンネルに含められないある種の条件がある。これらの条件は、エンコードされたビットストリームに含まれるメタデータが所定の値を取ることによって定義される。該メタデータはたとえば、ダウンミキシングがミックス・レベル・パラメータを含むことを定義する情報を含んでいてもよい。
【0200】
そのようなミックス・レベル・パラメータのそのような例のいくつかについてここでE-AC-3の場合について例解の目的で述べておく。E-AC-3におけるステレオへのダウンミキシングでは、二つの型のダウンミキシングが提供される:LtRtマトリクス・サラウンド・エンコードされたステレオ対へのダウンミックスと、通常のステレオ信号LoRoへのダウンミックスである。ダウンミックスされたステレオ信号(LoRoまたはLtRt)はさらにモノにミックスされてもよい。ltrtsurmixlevと表される3ビットのLtRtサラウンド・ミックス・レベル・コードおよびlorosurmixlevと表される3ビットのLoRoサラウンド・ミックス・レベル・コードは、それぞれLtRtまたはLoRoダウンミックスにおける、左および右チャンネルに関するサラウンド・チャンネルの名目ダウンミックス・レベルを示す。二進「111」の値がダウンミックス・レベル0、すなわち−∞dBを示す。ltrtcmixlev、lorocmixlevと表される3ビットのLtRtおよびLoRo中央ミックス・レベル・コードは、それぞれLtRtまたはLoRoダウンミックスにおける、左および右チャンネルに関する中央チャンネルの名目ダウンミックス・レベルを示す。二進「111」の値がダウンミックス・レベル0、すなわち−∞dBを示す。
【0201】
サラウンド・チャンネルがダウンミックスされた出力チャンネルに含められない条件がある。E-AC-3では、これらの条件は、メタデータによって同定される。これらの条件は、surmixlev='10'(AC-3のみ)、ltrtsurmixlev='111'およびlorosurmixlev='111'の場合を含む。これらの条件について、いくつかの実施形態では、デコーダは、ミックス・レベル・メタデータを使って、該メタデータがサラウンド・チャンネルがダウンミックスに含められないことを示していることを同定し、該サラウンド・チャンネルを、逆変換および窓処理/重複加算段階を通じて処理しないことを含む。さらに、中央チャンネルがダウンミックスされた出力チャンネルに含められない条件がある。これらの条件は、ltrtcmixlev='111'およびlorocmixlev='111'によって同定される。これらの条件について、いくつかの実施形態では、デコーダは、ミックス・レベル・メタデータを使って、該メタデータが中央チャンネルがダウンミックスに含められないことを示していることを同定し、該中央チャンネルを、逆変換および窓処理/重複加算段階を通じて処理しないことを含む。
【0202】
いくつかの実施形態では、一つまたは複数の非寄与チャンネルを同定することは、内容依存である。一例として、該同定は、一つまたは複数のチャンネルが、一つまたは複数の他のチャンネルに比して取るに足りない量の内容を有するかどうかを識別することを含む。内容量の指標が使用される。ある実施形態では、内容量の指標はエネルギーであり、他の実施形態では、内容量の指標は絶対レベルである。同定は、チャンネル対の間の内容量の指標の差を設定可能な閾値と比較することを含む。一例として、ある実施形態では、一つまたは複数の非寄与チャンネルを同定することは、サラウンド・チャンネルが非寄与チャンネルであるかどうかを見きわめるために、あるブロックのサラウンド・チャンネルの内容量が各前方チャンネルの内容量より、少なくともある設定可能な閾値だけ小さいかどうかを見きわめることを含む。
【0203】
理想的には、品質損失を最小にしながら必要とされる計算量を減らすようチャンネルを非寄与チャンネルとして同定するのを最大化するために、閾値は、信号のダウンミックスされたバージョンに知覚できるアーチファクトを導入することなく可能な限り低く選択される。いくつかの実施形態では、異なる復号アプリケーションについて異なる閾値が用意される。特定の復号アプリケーションについての閾値の選択は、その特定のアプリケーションについてのダウンミックスの品質(より高い閾値)と計算量削減(より低い閾値)との間の受け容れ可能なバランスを表す。
【0204】
本発明のいくつかの実施形態では、チャンネルが他のチャンネルに対して取るに足りないと考えられるのは、そのエネルギーまたは絶対レベルが前記他のチャンネルより少なくとも15dB低い場合である。理想的には、チャンネルが他のチャンネルに対して取るに足りないのは、そのエネルギーまたは絶対レベルが前記他のチャンネルより少なくとも25dB低い場合である。
【0205】
AおよびBと表される二つのチャンネルの間の差について、25dBと等価な閾値を使うことは、二つのチャンネルの絶対値の和のレベルが優勢なチャンネルのレベルの0.5dB以内であるということにほぼ等価である。すなわち、チャンネルAが−6dBFS(dB relative to full scale[フル・スケールに対するdB])であり、チャンネルBが−31dBFSであれば、チャンネルAおよびBの絶対値の和はほぼ−5.5dBFS、すなわちチャンネルAのレベルより約0.5dB上になる。
【0206】
オーディオが比較的低品質である場合、および低コスト・アプリケーションについては、計算量を減らすために品質を犠牲にすることが受け容れ可能であることがあり、閾値は25dBより低くてもよい。一例では、18dBの閾値が使用される。そのような場合、二つのチャンネルの和が、高いほうのレベルをもつチャンネルのレベルの約1dB以内でありうる。これは、ある種の場合には聞いてわかることがありうるが、過度に不快ではないはずである。別の実施形態では、15dBの閾値が使用される。この場合、二つのチャンネルの和は優勢なチャンネルのレベルの1.5dB以内である。
【0207】
いくつかの実施形態では、いくつかの閾値が使用される。たとえば、15dB、18dBおよび25dBである。
【0208】
上記では非寄与チャンネルの同定はAC-3およびE-AC-3について記述されているが、本発明の非寄与チャンネル同定機能はそのようなフォーマットに限定されるわけではない。たとえば他のフォーマットも、一つまたは複数の非寄与チャンネルの同定のために使用可能なダウンミキシングに関する情報、たとえばメタデータを提供する。MPEG-2 AAC(ISO/IEC13818-7)およびMPEG-4オーディオ(ISO/IEC14496-3)はいずれも、当該規格によって「マトリクス・ミックスダウン係数(matrix-mixdown coefficient)」と称されるものを伝送できる。そのようなフォーマットを復号するための本発明のいくつかの実施形態は、3/2、すなわち左、中央、右、左サラウンド、右サラウンド信号からステレオまたはモノ信号を構築するためにこの係数を使う。マトリクス・ミックスダウン係数は、ステレオまたはモノ出力を構築するためにサラウンド・チャンネルがどのように前方チャンネルと混合されるかを決定する。これらの規格によれば、マトリクス・ミックスダウン係数の四つの可能な値があり、その一つは0である。値0は、サラウンド・チャンネルがダウンミックスに含まれないという結果を与える。本発明のいくつかのMPEG-2 AACデコーダまたはMPEG-4オーディオ・デコーダの実施形態は、ビットストリームにおいて信号伝達されるミックスダウン係数を使って3/2信号ステレオまたはモノのダウンミックスを生成することを含み、さらに、マトリクス・ミックスダウン係数0によって非寄与チャンネルを同定し、その場合、逆変換および窓処理/重複加算処理が実行されないことを含む。
【0209】
図12は、少なくとも一つのプロセッサ1203を含む処理システム1200のある実施形態のブロック概略図である。この例では、SSEベクトル命令を含む命令セットをもつ一つのx86プロセッサが示されている。また、当該処理システムのさまざまなコンポーネントを結合するバス・サブシステム1205も簡略化されたブロックの形で示されている。処理システムは、たとえばバス・サブシステム1205を介してプロセッサ(単数または複数)に結合された、一つまたは複数の記憶装置を有する記憶サブシステム1211を含む。該記憶装置は、少なくともメモリを、そしていくつかの実施形態では磁気および/または光学式記憶コンポーネントのような一つまたは複数の他の記憶装置を含む。いくつかの実施形態はまた、少なくとも一つのネットワーク・インターフェース1207およびオーディオ入出力サブシステム1209をも含む。オーディオ入出力サブシステム1209はPCMデータを受け入れることができ、該PCMデータを一組のラウドスピーカーまたはイヤホンを駆動するための電気的な波形に変換する一つまたは複数のDACを含む。他の要素も当該処理システムに含まれていてもよく、当業者には明確であろう。よって、簡単のため図12には示していない。
【0210】
記憶サブシステム1211は、処理システムにおいて実行されたときに、処理システムに、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データ、たとえばE-AC-3データの復号してM.mチャンネルの復号オーディオを含む復号されたオーディオ・データを形成することを実行させる命令1213を含んでいる。ここで、M≧1であり、ダウンミキシングの場合にはM<Nである。今日の既知の符号化フォーマットについては、n=0または1であり、m=0または1であるが、本発明はそれに限定されない。いくつかの実施形態では、命令1211は、複数のモジュールに区分される。典型的には他の命令(他のソフトウェア)1215も記憶サブシステムに含まれる。図示した実施形態は、命令1211の中に以下のモジュールを含む:二つのデコーダ・モジュール、すなわちフロントエンド復号モジュール1231およびバックエンド復号モジュール1233を含む独立フレーム5.1チャンネル・デコーダ・モジュール1223ならびにフロントエンド復号モジュール1235およびバックエンド復号モジュール1237を含む従属フレーム・デコーダ・モジュール1225と、実行されたときに各フレームからビットストリーム情報(BSI)フィールドをアンパックしてフレームおよびフレーム種別を識別させ、識別されたフレームを適切なフロントエンド復号モジュールのインスタンス1231または1235に提供させる命令1221のフレーム情報解析モジュールと、実行されたとき、N>5の場合、それぞれのバックエンド復号モジュールからの復号データを組み合わせてN.nチャンネルの復号データを形成させる命令1227のチャンネル・マッピング器モジュールとである。
【0211】
代替的な処理システム実施形態は、少なくとも一つのネットワーク・リンクによって結合された、すなわち分散した一つまたは複数のプロセッサを含んでいてもよい。すなわち、前記モジュールの一つまたは複数が、主たる処理システムにネットワーク・リンクによって結合された他の処理システムにあってもよい。そのような代替的な実施形態は、当業者には明白であろう。よって、いくつかの実施形態では、システムは、ネットワーク・リンクを介してネットワーク接続された、それぞれ少なくとも一つのプロセッサを含む一つまたは複数のサブシステムを有する。
【0212】
よって、このように、図12の処理システムは、N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを処理してM.mチャンネルの復号オーディオを含む復号されたオーディオ・データを形成する装置の実施形態をなす。ここで、M≧1であり、ダウンミキシングの場合にはM<Nであり、アップミキシングについてはM>Nである。今日の規格については、n=0または1であり、m=0または1であるが、他の実施形態も可能である。本装置は、機能を実行する手段として機能的に表現されるいくつかの機能要素を含む。機能要素とは、処理機能を実行する要素を意味する。そのような各要素はハードウェア要素、たとえば専用ハードウェアまたは実行されたときに当該機能を実行する命令を含む記憶媒体を含む処理システムであってもよい。図12の装置は、エンコード方法によってエンコードされたNチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを受け入れる手段を含む。エンコード方法は、たとえばE-AC-3符号化方法であり、より一般には、重複変換を使ってNチャンネルのデジタル・オーディオ・データを変換し、周波数領域の指数および仮数データを形成およびパッキングし、周波数領域の指数および仮数データに関係したメタデータを形成およびパッキングすることを含むエンコード方法である。メタデータは、任意的に、過渡プレノイズ処理に関係したメタデータを含む。
【0213】
本装置は、受け入れられたオーディオ・データを復号する手段を含む。
【0214】
いくつかの実施形態では、復号する手段は、メタデータをアンパックする手段および周波数領域の指数および仮数データをアンパックおよび復号する手段と;アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;周波数領域データを逆変換する手段と;窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定する手段と;過渡プレノイズ処理に関係したメタデータに従って要求される過渡プレノイズ処理復号があればそれを適用する手段と;ダウンミキシング・データに従ってTDダウンミキシングする手段とを含む。TDダウンミキシングする手段は、M<Nの場合、ダウンミキシング・データに従ってダウンミックスする。該ダウンミックスは、いくつかの実施形態では、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従ってダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む。
【0215】
いくつかの実施形態は、あるブロックについて、TDダウンミキシングまたはFDダウンミキシングのどちらが使われるかを見きわめる手段と、FDダウンミキシング手段であって、前記あるブロックについてTDダウンミキシングまたはFDダウンミキシングのどちらが使われるかを見きわめる手段がFDダウンミキシングを特定した場合に作動され、TDからFDダウンミックスへの遷移処理のための手段を含む手段とを含む。そのような実施形態は、FDからTDダウンミックスへの遷移処理のための手段をも含む。これらの要素の動作は上述したとおりである。
【0216】
いくつかの実施形態では、本装置は、N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、M.m個のチャンネルに寄与しないチャンネルである。本装置は、同定された一つまたは複数の非寄与チャンネルに対しては、周波数領域データの逆変換およびTPNPや重複加算のようなさらなる処理の適用を実行しない。
【0217】
いくつかの実施形態では、本装置は、ベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含む。前記ダウンミキシングする手段は、動作において、前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を走らせる。
【0218】
図12に示された装置に対する代替的な装置も可能である。たとえば、示されている要素の一つまたは複数がハードウェア装置によって実装され、一方、他の要素はx86プロセッサの動作によって実装されてもよい。そのような変形は、当業者にとってはストレートであろう。
【0219】
本装置のいくつかの実施形態では、復号する手段は、一つまたは複数のフロントエンド復号手段および一つまたは複数のバックエンド復号手段を含む。フロントエンド復号手段は、メタデータをアンパックする手段および周波数領域の指数および仮数データをアンパックおよび復号する手段を含む。バックエンド復号手段は、あるブロックについて、TDダウンミキシングまたはFDダウンミキシングのどちらが使われるかを見きわめる手段と、FDダウンミキシング手段であって、TDからFDダウンミックスへの遷移処理のための手段と、FDからTDダウンミックスへの遷移処理のための手段と、アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;周波数領域データを逆変換する手段と;窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定する手段と;過渡プレノイズ処理に関係したメタデータに従って要求される過渡プレノイズ処理復号があればそれを適用する手段と;ダウンミキシング・データに従って時間領域ダウンミキシングする手段とを含む。時間領域ダウンミキシングは、M<Nの場合、ダウンミキシング・データに従ってダウンミックスする。該ダウンミックスは、いくつかの実施形態では、ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従ってダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む。
【0220】
5.1チャンネルより多い符号化データのE-AC-3データを処理するためには、復号する手段は、フロントエンド復号手段およびバックエンド復号手段の複数のインスタンスを含む。それには、5.1チャンネルまでの独立フレームを復号するための第一のフロントエンド復号手段および第一のバックエンド復号手段と、一つまたは複数の従属フレームのデータを復号するための第二のフロントエンド復号手段および第二のバックエンド復号手段とが含まれる。本装置はまた、ビットストリーム情報フィールドをアンパックしてフレームおよびフレーム種別を識別し、識別されたフレームを適切なフロントエンド復号手段に与える手段と、それぞれのバックエンド復号手段からの復号データを組み合わせてNチャンネルの復号データを形成する手段をも含む。
【0221】
E-AC-3および他の符号化方法が重複加算変換を使い、逆変換においては窓処理および重複加算演算を含むものの、逆変換およびさらなる処理によりエイリアシング・エラーなしで時間領域サンプルを復元できるように動作する他の形の変換が可能であることは知られている。したがって、本発明は重複加算変換に限定されるものではなく、周波数領域のデータを逆変換し、窓処理された重複加算演算を実行して時間領域のサンプルを決定することが言及されるときは常に、当業者は、一般には、これらの処理は、「周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する」と表現できることを理解するであろう。
【0222】
本稿を通じて指数(exponent)および仮数(mantissa)という用語が使われているが、それはこれらがAC-3およびE-AC-3で使われている用語だからであって、他の符号化フォーマットは他の用語を使うこともありうる。たとえば、HE-AACの場合ならスケール因子(scale factor)およびスペクトル係数(spectral coefficient)である。指数および仮数という用語を使っていることは、本発明の範囲を、指数および仮数という用語を使うフォーマットに限定するものではない。
【0223】
特に断りのない限り、以下の記述から明白であるように、本明細書を通じて、「処理」「コンピューティング」「計算」「決定」「生成」などといった用語を使った議論は、電子的な量などの物理量として表現されたデータを操作および/または変換して物理量として同様に表現された他のデータにする、ハードウェア要素、たとえばコンピュータまたはコンピューティング・システム、処理システムまたは同様の電子計算装置の動作および/または工程をいう。
【0224】
同様に、「プロセッサ」という用語は、レジスタおよび/またはメモリなどからの電子デを処理してその電子データを、レジスタおよび/またはメモリに記憶されるなどしうる他の電子データに変換する任意の装置または装置の一部を指しうる。「処理システム」または「コンピュータ」または「計算機械」または「コンピューティング・プラットフォーム」は一つまたは複数のプロセッサを含んでいてもよい。
【0225】
いくつかの要素、たとえばいくつかの段階を含む方法が記述されるとき、特に明記されない限り、そのような要素、たとえば段階のいかなる順序も含意されないことを注意しておく。
【0226】
いくつかの実施形態では、コンピュータ可読媒体は、少なくとも一つのプロセッサ要素および記憶サブシステムを含む、デジタル信号処理装置またはサブシステムのような処理システムの一つまたは複数のプロセッサによって実行されたときに、本稿に記載される方法を実行させる命令をもって構成されている、たとえば該命令をエンコードされている、たとえば該命令を記憶している。上記の記述において、命令が、実行されたときにプロセスを実行するよう構成されていると述べられるとき、それは、命令が、実行されたときに、ハードウェア装置、たとえば処理システムがそのプロセスを実行するよう一つまたは複数のプロセッサを動作させることを意味することは理解しておくべきである。
【0227】
本稿に記載される方法論は、いくつかの実施形態では、一つまたは複数のコンピュータ可読媒体にエンコードされた論理、命令を受け入れる一つまたは複数のプロセッサによって実行可能である。該プロセッサの一つまたは複数によって実行されるとき、前記命令は、本稿に記載される方法の少なくとも一つの実行を引き起こす。工程が行われることを規定する一組の命令(シーケンシャルであってもなくてもよい)を実行することのできる任意のプロセッサが含まれる。よって、一つの例は、一つまたは複数のプロセッサを含む典型的な処理システムである。各プロセッサは、CPUまたは同様の要素、グラフィック処理ユニット(GPU: graphics processing unit)および/またはプログラム可能なDSPユニットの一つまたは複数を含んでいてもよい。処理システムはさらに、少なくとも一つの記憶媒体をもつ記憶サブシステムを含む。該記憶媒体は、半導体デバイスに埋め込まれたメモリまたはメインRAMおよび/または静的RAMおよび/またはROMまたキャッシュ・メモリを含む別個のメモリ・サブシステムを含みうる。記憶サブシステムはさらに、磁気および/または光学式および/またはさらなる半導体記憶デバイスといった一つまたは複数の他の記憶装置を含んでいてもよい。コンポーネント間の通信をするためにバス・サブシステムが含められてもよい。処理システムはさらに、ネットワーク・インターフェース・デバイスまたは無線ネットワーク・インターフェース・デバイスなどを介して、ネットワークによって結合されるプロセッサをもつ、分散式の処理システムであってもよい。処理システムがディスプレイを必要とする場合、そのようなディスプレイが含められてもよい。たとえば、液晶ディスプレイ(LCD)、有機発光ディスプレイ(OLED)または陰極線管(CRT)ディスプレイである。手動のデータ入力が必要とされる場合、処理システムは、キーボードのような英数字入力ユニット、マウスのような一制御デバイスなどの一つまたは複数といった入力装置をも含む。記憶装置、記憶サブシステムまたはメモリ・ユニットの用語は、本稿での用法では、コンテキストから明確であり、そうでないと明確に述べられているのでない限り、ディスク・ドライブ・ユニットのような記憶システムをも包含する。いくつかの構成の処理システムは、音出力装置およびネットワーク・インターフェース・デバイスを含んでいてもよい。
【0228】
記憶サブシステムはこのように、一つまたは複数のプロセッサによって実行されたときに、本稿に記載される方法ステップの一つまたは複数を実行させる命令、たとえば論理、たとえばソフトウェアをもって構成されている、たとえばそれをエンコードされているコンピュータ可読媒体を含む。ソフトウェアは、ハードディスクに存在していてもよく、あるいはそのコンピュータ・システムによる実行の間、完全にまたは少なくとも部分的にRAMのようなメモリ内および/またはプロセッサ内部のメモリ内に存在していてもよい。このように、メモリおよびメモリを含むプロセッサも、命令がエンコードされるコンピュータ可読媒体をなす。
【0229】
さらに、コンピュータ可読媒体はコンピュータ・プログラム・プロダクトをなしてもよく、あるいはコンピュータ・プログラム・プロダクトに含まれてもよい。
【0230】
代替的な諸実施形態では、前記一つまたは複数のプロセッサはスタンドアローンの装置として動作するか、あるいはネットワーク展開において他のプロセッサ(単数または複数)に接続、たとえばネットワーク接続されていてもよく、前記一つまたは複数のプロセッサは、サーバー‐クライアント・ネットワーク環境におけるサーバーまたはクライアント・マシンの資格で、あるいはピアツーピアまたは分散式ネットワーク環境におけるピア・マシンとして機能してもよい。処理システムという用語は、本稿において明示的に除外されていない限り、そのようなあらゆる可能性を包含する。前記一つまたは複数のプロセッサは、パーソナル・コンピュータ(PC)、メディア再生装置、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA: Personal Digital Assistant)、ゲーム機、携帯電話、ウェブ・アプライアンス、ネットワーク・ルータ、スイッチもしくはブリッジまたは機械によって行われるべき工程を規定する一組の命令(シーケンシャルであってもなくてもよい)を実行できる任意の機械の形を取ってもよい。
【0231】
一部の図面(単数または複数)は単一のプロセッサおよび単一の記憶サブシステム、たとえば命令を含む論理を記憶する単一のメモリしか示していないが、当業者は、上記のコンポーネントの多数が含まれるが、発明的な側面を埋没させないために明示的に図示したり説明したりはしていないことを理解するであろう。たとえば、単一の機械しか図示されていなくても、「機械」という用語は、個々にまたは合同して本稿で論じた方法論の任意の一つまたは複数を実行するよう一組(または複数組)の命令を実行する機械の任意の集合を含むものとも解釈されるものとする。
【0232】
このように、本稿で記載される各方法の一つの実施形態は、一つまたは複数のプロセッサ、たとえばメディア・デバイスの一部である一つまたは複数のプロセッサ上で実行されるときに方法ステップの実行を引き起こす一組の命令、たとえばコンピュータ・プログラムをもって構成されたコンピュータ可読媒体の形である。いくつかの実施形態は、論理そのものの形である。よって、当業者は、本発明の諸実施形態は、方法、専用装置のような装置、データ処理システムのような装置、コンピュータ可読記憶媒体において具現されるなどした論理、または命令をエンコードされたコンピュータ可読記憶媒体、たとえばコンピュータ・プログラム・プロダクトとして構成されたコンピュータ可読記憶媒体として具現されてもよい。コンピュータ可読媒体は、一つまたは複数のプロセッサによって実行されたときに方法ステップの実行を引き起こす一組の命令をももって構成される。よって、本発明の諸側面は、方法、いくつかの機能要素を含む完全にハードウェアの実施形態の形を取ってもよい。ここで、機能要素とは処理機能を実行する要素を意味する。そのような各要素はハードウェア要素、たとえば専用ハードウェアまたは実行されたときに当該機能を実行する命令を含む記憶媒体を含む処理システムであってもよい。本発明の諸側面は、完全にソフトウェアの実施形態またはソフトウェアおよびハードウェアの側面を組み合わせる実施形態の形を取ってもよい。さらに、本発明は、コンピュータ可読媒体中などのプログラム論理、たとえばコンピュータ可読記憶媒体上のコンピュータ・プログラム、あるいはコンピュータ可読プログラム・コードをもって構成された該コンピュータ可読媒体、たとえばコンピュータ・プログラム・プロダクトの形を取ってもよい。専用ハードウェアの場合、ハードウェアの機能を定義することは、当業者が、プログラムによって処理できる機能記述を書くことができるようにするのに十分であることを注意しておく。あとは該プログラムが自動的に当該機能を実行するためのハードウェアを創り出すためのハードウェア記述を決定する。よって、本稿における記述は、そのような専用ハードウェアを定義するのに十分である。
【0233】
コンピュータ可読媒体がある例示的実施形態では単一の媒体として示されているが、「媒体」という用語は、一つまたは複数の組の命令を記憶する単一の媒体または複数の媒体(たとえばいくつかのメモリ、中央集中されたまたは分散式のデータベースおよび/または付随するキャッシュおよびサーバー)を含むと解釈されるべきである。コンピュータ可読媒体は、これに限られないが不揮発性媒体および揮発性媒体を含む多くの形を取ることができる。不揮発性媒体はたとえば光ディスク、磁気ディスクおよび光磁気ディスクを含む。揮発性媒体はメイン・メモリのような動的〔ダイナミック〕メモリを含む。
【0234】
本発明の実施形態が、いかなる特定の実装またはプログラミング技法にも限定されないこと、および本発明が本稿に記載される機能を実装するためのいかなる適切な技法を使って実装されてもよいことも理解されるであろう。さらに、諸実施形態は、いかなる特定のプログラミング言語またはオペレーティング・システムにも限定されない。
【0235】
本明細書を通じての「一つの実施形態」または「ある実施形態」への言及は、その実施形態との関連で記述される特定の特徴、構造または特性が、本発明の少なくとも一つの実施形態に含まれることを意味する。よって、本明細書の随所で「一つの実施形態では」または「ある実施形態では」という表現が現れることは、必ずしも全部が同じ実施形態のことを指しているのではない。ただ、そうであることもありうる。さらに、一つまたは複数の実施形態において、該特定の特徴、構造または特性は、本開示から当業者には明白であろうように、いかなる好適な仕方で組み合わされてもよい。
【0236】
同様に、本発明の例示的な実施形態の上記の記述において、本開示の流れをよくし、さまざまな発明的側面の一つまたは複数の理解を助ける目的で、本発明のさまざまな特徴が時に単一の実施形態、図面またはその説明においてまとめられていることを認識しておくべきである。しかしながら、このような開示法は、特許請求される発明が、各請求項において明示的に記載されているよりも多くの特徴を必要とするという意図を判定したものと解釈すべきではない。むしろ、付属の請求項に反映されるように、発明的側面は、上記で開示される単一の実施形態のすべての特徴よりも少ないもののうちにある。よって、請求項の記載は、ここに、明示的に、この発明を実施するための形態に組み込まれ、各請求項が本発明の別個の実施形態をなす。
【0237】
さらに、本稿で記述されるいくつかの実施形態は、他の実施形態に含まれる特徴の一部を含み一部は含まないが、異なる実施形態の特徴の組み合わせも本発明の範囲内であり、異なる実施形態をなすことが意図される。そのことは、当業者には理解されるであろう。たとえば、請求項において、記載される実施形態の任意のものが任意の組み合わせにおいて使用できる。
【0238】
さらに、いくつかの実施形態は、本稿では、コンピュータ・システムのプロセッサによってまたは当該機能を実行する他の手段によって実装できる方法または方法の要素の組み合わせとして記述される。よって、そのような方法または方法の要素を実行するための必要な命令をもつプロセッサは、方法または方法の要素を実行する手段をなす。さらに、装置実施形態の本稿に記載される要素は、本発明を実行するための該要素によって実行される機能を実行する手段の例である。
【0239】
本稿で与えられる記述において、数多くの個別的詳細が記述されている。しかしながら、本発明の実施形態はそれらの個別的詳細なしでも実施されうることは理解されるものとする。その一方、よく知られた方法、構造および技法は、本記述の理解をかすませないよう、詳細に示しはしなかった。
【0240】
本稿での用法では、特に断りのない限り、共通のオブジェクトを記述するための序数「第一」「第二」「第三」などの使用は単に、同様のオブジェクトの異なるインスタンスが言及されていることを示すのであって、そのように記述されているオブジェクトが時間的に、空間的に、序列において、またはいかなる仕方であれ、所定のシーケンスでなければならないことは意図していない。
【0241】
本発明はE-AC-3規格のコンテキストで記述してきたが、本発明はそのようなコンテキストに限定されるものではなく、E-AC-3と何らかの類似性をもつ技法を使う他の方法によってエンコードされたデータを復号するためにも利用されうることは認識しておくべきである。たとえば、本発明の諸実施形態は、E-AC-3に対して上位互換である符号化オーディオを復号するためにも適用可能である。他の実施形態は、HE-AAC規格に従って符号化されている符号化オーディオを復号するためおよびHE-AACに対して上位互換である符号化オーディオを復号するために適用可能である。他の符号化ストリームも本発明の実施形態を使って有利に復号できる。
【0242】
本稿において引用されているあらゆる米国特許、米国特許出願および米国を指定国とする国際(PCT)特許出願は、ここに参照によって組み込まれる。特許規則または法令が、それ自身参照によって情報を組み込んでいる素材の参照による組み込みを許さない場合には、本稿における参照による組み込みは、そのような参照によって組み込まれる素材における参照によって組み込まれている情報は、そのような情報が明示的に本稿に参照によって組み込まれているのでない限り、除外する。
【0243】
本明細書における従来技術のいかなる議論も、いかなる意味でも、そのような従来技術が周知である、公知であるまたは技術常識であることを認めたものであると考えるべきではない。
【0244】
請求項および明細書の記述において、有する、からなる、含むといった用語のいずれも、挙げられている要素/特徴を少なくとも含むが他を排除するものではないことを意味するオープンな用語である。よって、請求項で使われるときの有する、含むの語は、挙げられている手段または要素またはステップに限定するものとして解釈すべきではない。たとえば、AおよびBを有する装置という表現の範囲は、要素AおよびBのみを有する装置に限定されるべきではない。含むは有すると同義であり、有することを意味する。
【0245】
同様に、請求項において使用されるときの結合されたという語は、直接接続だけに限定するものと解釈すべきではないことも注意しておくべきである。「結合された」および「接続された」という用語およびそれらの派生形が使用されうるが、これらの用語は、互いと同義であるとは意図されていないことを理解しておくべきである。よって、装置Bに結合された装置Aという表現の範囲は、装置Aの出力が装置Bの入力に直接接続されている装置系またはシステムに限定されるべきではない。Aの出力とBの入力の間に経路が存在し、その経路が他の装置または手段を含んでいてもよいことを意味する。「結合された」は二つ以上の要素が直接的な物理的または電気的接触状態にあること、あるいは二つ以上の要素が互いに直接接触してはいないがそれでも互いと協働または対話するを意味しうる。
【0246】
このように、本発明の好ましい実施形態であると考えられるものについて記述してきたが、当業者は、本発明の精神から外れることなく他のさらなる修正がされうることを認識するであろう。本発明の範囲内にはいるようなそのようなすべての変更および修正を特許請求することが意図されている。たとえば、上記で挙げた公式は単に使用されうる手順の代表的なものである。ブロック図に機能を追加あるいは削除してもよく、機能要素間で処理が交換されてもよい。本発明の範囲内で記載される方法にステップが追加または削除されてもよい。
【特許請求の範囲】
【請求項1】
N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・デコーダを動作させる方法であって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該方法は:
N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる段階と;
受け入れたオーディオ・データを復号する段階とを含み、前記復号する段階は:
前記周波数領域の指数および仮数データをアンパックおよび復号する段階と;
アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する段階と;
前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する段階と;
M<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする段階とを含み、次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記復号する段階が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことであり、
Bは、前記時間領域ダウンミキシングが、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことであり、
Cは、当該方法が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、当該方法が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換および前記さらなる処理の適用を実行しない、ことである、
方法。
【請求項2】
請求項1記載の方法であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、方法。
【請求項3】
請求項1または2記載の方法であって、前記エンコード方法が、前記周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む、方法。
【請求項4】
請求項1ないし3のうちいずれか一項記載の方法であって、Aが真である方法。
【請求項5】
請求項4記載の方法であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかの決定は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、方法。
【請求項6】
請求項4または5記載の方法であって、
前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
前記特定のブロックについて周波数領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき直前のブロックのデータに対して時間領域ダウンミキシングまたは擬似時間領域におけるダウンミキシングを適用することを含み、
特定のブロックについて時間領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む、
方法。
【請求項7】
請求項1ないし6のうちいずれか一項記載の方法であって、Bが真である、方法。
【請求項8】
請求項7記載の方法であって、前記デコーダはベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを使用し、時間領域ダウンミキシングは前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行することを含む、方法。
【請求項9】
請求項1ないし8のうちいずれか一項記載の方法であって、Cが真である、方法。
【請求項10】
請求項9記載の方法であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、方法。
【請求項11】
請求項9または10記載の方法であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、方法。
【請求項12】
請求項11記載の方法であって、ダウンミキシングを定義する前記情報は、一つまたは複数のチャンネルが非寄与チャンネルであることを示すあらかじめ定義された値をもつミックス・レベル・パラメータを含む、方法。
【請求項13】
請求項9または10記載の方法であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、方法。
【請求項14】
請求項13記載の方法であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも18dB低い場合である、方法。
【請求項15】
請求項13記載の方法であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも25dB低い場合である、方法。
【請求項16】
請求項13記載の方法であって、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することは、チャンネルの対の間の内容量の指標の差を設定可能な閾値と比較することを含む、方法。
【請求項17】
請求項16記載の方法であって、前記設定可能な閾値は、複数のあらかじめ定義された値のうちの一つに設定される、方法。
【請求項18】
請求項1ないし17のうちいずれか一項記載の方法であって、前記受け入れられるオーディオ・データが符号化されたデータのフレームのビットストリームの形であり、前記復号する段階は、一組のフロントエンド復号処理および一組のバックエンド復号処理に分割され、前記フロントエンド復号処理は、前記ビットストリームのフレームの前記周波数領域の指数および仮数データをアンパックおよび復号して、そのフレームについてのアンパックおよび復号された周波数領域の指数および仮数データおよびそのフレームの付随メタデータにすることを含み、前記バックエンド復号処理は、前記変換係数を決定する段階と、前記逆変換し、さらなる処理を適用する段階と、要求される過渡プレノイズ処理復号があればそれを適用する段階と、M<Nの場合にはダウンミキシングする段階とを含む、方法。
【請求項19】
請求項18記載の方法であって、前記フロントエンド復号処理は、第一のパスおよびそれに続く第二のパスにおいて実行され、前記第一のパスは、ブロックごとにメタデータをアンパックし、パックされた指数および仮数のデータが記憶されている場所へのポインタを保存することを含み、前記第二のパスは、パックされた指数および仮数への保存されたポインタを使って、チャンネルごとに指数および仮数のデータをアンパックおよび復号することを含む、方法。
【請求項20】
請求項1ないし19のうちいずれか一項記載の方法であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、方法。
【請求項21】
処理システムの一つまたは複数のプロセッサによって実行されたときに前記処理システムに、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成することを実行させる復号命令を記憶しているコンピュータ可読記憶媒体であって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、前記復号命令は:
実行されたときに、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れさせる命令と;
実行されたときに、受け入れたオーディオ・データを復号させる命令とを含み、実行されたときに復号させる前記命令は:
実行されたときに、前記周波数領域の指数および仮数データをアンパックおよび復号させる命令と;
実行されたときに、アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定させる命令と;
実行されたときに前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定させる命令と;
実行されたときに、M<Nであるかどうかを見きわめさせる命令と;M<Nであれば、
実行されたときにダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングさせる命令とを含み、次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、実行されたときに復号させる前記命令が、実行されたときに、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定させる命令と、実行されたときに、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、周波数領域ダウンミキシングを適用させる命令とを含むことであり、
Bは、前記時間領域ダウンミキシングが、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことであり、
Cは、実行されたときに復号させる前記命令が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
コンピュータ可読記憶媒体。
【請求項22】
請求項21記載のコンピュータ可読記憶媒体であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、コンピュータ可読記憶媒体。
【請求項23】
請求項21または22記載のコンピュータ可読記憶媒体であって、前記エンコード方法が、前記周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む、コンピュータ可読記憶媒体。
【請求項24】
請求項21ないし23のうちいずれか一項記載のコンピュータ可読記憶媒体であって、Aが真である、コンピュータ可読記憶媒体。
【請求項25】
請求項24記載のコンピュータ可読記憶媒体であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかの決定は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、周波数領域ダウンミキシングが実行されるのは、実行されたときに、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ復号させる命令によってである、コンピュータ可読記憶媒体。
【請求項26】
請求項24または25記載のコンピュータ可読記憶媒体であって、
前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
前記特定のブロックについて周波数領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき直前のブロックのデータに対して時間領域ダウンミキシングまたは擬似時間領域におけるダウンミキシングを適用することを含み、
特定のブロックについて時間領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む、
コンピュータ可読記憶媒体。
【請求項27】
請求項21ないし26のうちいずれか一項記載のコンピュータ可読記憶媒体であって、Bが真である、コンピュータ可読記憶媒体。
【請求項28】
請求項27記載のコンピュータ可読記憶媒体であって、前記処理システムはベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを使用し、実行されたときに受け入れたオーディオ・データを復号させる前記命令は前記一つまたは複数のx86プロセッサの少なくとも一つの上での実行のための命令を含み、実行されたときに時間領域ダウンミキシングをさせる前記命令は、前記一つまたは複数のx86プロセッサの少なくとも一つのためのベクトル命令を含む、コンピュータ可読記憶媒体。
【請求項29】
請求項21ないし28のうちいずれか一項記載のコンピュータ可読記憶媒体であって、Cが真である、コンピュータ可読記憶媒体。
【請求項30】
請求項29記載のコンピュータ可読記憶媒体であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、コンピュータ可読記憶媒体。
【請求項31】
請求項29または30記載のコンピュータ可読記憶媒体であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、コンピュータ可読記憶媒体。
【請求項32】
請求項31記載のコンピュータ可読記憶媒体であって、ダウンミキシングを定義する前記情報は、一つまたは複数のチャンネルが非寄与チャンネルであることを示すあらかじめ定義された値をもつミックス・レベル・パラメータを含む、コンピュータ可読記憶媒体。
【請求項33】
請求項29または30記載のコンピュータ可読記憶媒体であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、コンピュータ可読記憶媒体。
【請求項34】
請求項33記載のコンピュータ可読記憶媒体であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも18dB低い場合である、コンピュータ可読記憶媒体。
【請求項35】
請求項33記載のコンピュータ可読記憶媒体であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも25dB低い場合である、コンピュータ可読記憶媒体。
【請求項36】
請求項33記載のコンピュータ可読記憶媒体であって、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することは、チャンネルの対の間の内容量の指標の差を設定可能な閾値と比較することを含む、コンピュータ可読記憶媒体。
【請求項37】
請求項36記載のコンピュータ可読記憶媒体であって、前記設定可能な閾値は、複数のあらかじめ定義された値のうちの一つに設定される、コンピュータ可読記憶媒体。
【請求項38】
請求項21ないし37のうちいずれか一項記載のコンピュータ可読記憶媒体であって、前記受け入れられるオーディオ・データが符号化されたデータのフレームのビットストリームの形であり、実行されたときに受け入れたデータを復号させる前記命令は、フロントエンド復号モジュールおよびバックエンド復号モジュールを含む一組の再利用可能なモジュールに分割され、前記フロントエンド復号モジュールは、実行されたときに前記ビットストリームのフレームの前記周波数領域の指数および仮数データをアンパックおよび復号して、そのフレームについてのアンパックおよび復号された周波数領域の指数および仮数データおよびそのフレームの付随メタデータにすることを行わせる命令を含み、前記バックエンド復号モジュールは、実行されたときに、前記変換係数を決定し、前記逆変換し、さらなる処理を適用し、要求される過渡プレノイズ処理復号があればそれを適用し、M<Nの場合にはダウンミキシングすることを行わせる命令を含む、コンピュータ可読記憶媒体。
【請求項39】
請求項21ないし38のうちいずれか一項記載のコンピュータ可読記憶媒体であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、コンピュータ可読記憶媒体。
【請求項40】
請求項38記載のコンピュータ可読記憶媒体であって、
前記エンコードされたオーディオ・データは、E-AC-3規格に従ってまたはE-AC-3規格に対して上位互換である規格に従ってエンコードされており、5つより多くの符号化されたチャンネルを含むことができ、
前記さらなる処理は、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
N>5の場合、前記符号化されたビットストリームは、5.1個までの符号化されたチャンネルの独立フレームおよび符号化されたデータの少なくとも一つの従属フレームを含み、
前記復号命令は、複数の5.1チャンネル復号モジュールとして構成され、各5.1チャンネル復号モジュールは、フロントエンド復号モジュールのそれぞれのインスタンスおよびバックエンド復号モジュールのそれぞれのインスタンスを含み、前記複数の5.1チャンネル復号モジュールは、実行されたときに前記独立フレームの復号をさせる第一の5.1チャンネル復号モジュールと、各従属フレームについての一つまたは複数の他のチャンネル復号モジュールとを含み、前記復号命令は、さらに:
実行されたときに、ビットストリーム情報フィールド・データをアンパックしてフレームおよびフレーム種別を識別させ、識別されたフレームを適切なフロントエンド復号モジュールのインスタンスに与えさせる命令のフレーム情報解析モジュールと、
実行されたときに、N>5の場合、それぞれのバックエンド復号モジュールからの復号されたデータを組み合わせて前記N個のチャンネルの復号データを形成させる命令のチャンネル・マッピング器モジュールとを含む、
コンピュータ可読記憶媒体。
【請求項41】
N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・データ処理装置であって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該装置は:
N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる手段と;
受け入れたオーディオ・データを復号する手段とを有しており、前記復号する手段は:
前記周波数領域の指数および仮数データをアンパックおよび復号する手段と;
アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;
前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する手段と;
M<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする手段とを含み、
次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記復号する手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことであり、
Bは、前記時間領域ダウンミキシングする手段が、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことであり、
Cは、当該装置が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、当該装置が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
装置。
【請求項42】
請求項41記載の装置であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、装置。
【請求項43】
請求項41または42記載の装置であって、前記エンコード方法が、前記周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む、装置。
【請求項44】
請求項41ないし43のうちいずれか一項記載の装置であって、Aが真である装置。
【請求項45】
請求項44記載の装置であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、装置。
【請求項46】
請求項44または45記載の装置であって、
前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
前記特定のブロックについて周波数領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき直前のブロックのデータに対して時間領域ダウンミキシングまたは擬似時間領域におけるダウンミキシングを適用することを含み、
特定のブロックについて時間領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む、
装置。
【請求項47】
請求項41ないし46のうちいずれか一項記載の装置であって、Bが真である、装置。
【請求項48】
請求項47記載の装置であって、当該装置はベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含み、時間領域ダウンミキシングする手段は前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行する、装置。
【請求項49】
請求項41ないし48のうちいずれか一項記載の装置であって、Cが真である、装置。
【請求項50】
請求項49記載の装置であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、装置。
【請求項51】
請求項49または50記載の装置であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、装置。
【請求項52】
請求項49または50記載の装置であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、装置。
【請求項53】
請求項41ないし52のうちいずれか一項記載の装置であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、装置。
【請求項54】
N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを処理してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成する装置であって、M≧1であり、n=0または1はエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、m=0または1は復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該装置は、
エンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データを含むオーディオ・データを受け入れる手段であって、前記エンコード方法は、N.nチャンネルのデジタル・オーディオ・データを、逆変換およびさらなる処理によってエイリアシング・エラーなしで時間領域サンプルを復元できるよう変換し、周波数領域の指数および仮数データを形成およびパッキングし、該周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理に関係したメタデータを含む、手段と;
受け入れたオーディオ・データを復号する手段とを有しており、
前記復号する手段は:
フロントエンド復号のための一つまたは複数の手段とバックエンド復号のための一つまたは複数の手段とを有しており、
前記フロントエンド復号のための手段は、前記メタデータのアンパックのためであり、前記周波数領域の指数および仮数データのアンパックおよび復号のためである手段を含み、
前記バックエンド復号のための手段は、アンパックされて復号された周波数領域の指数および仮数データから変換係数を決定するため;前記周波数領域データを逆変換するため;窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定するため;過渡プレノイズ処理に関係した前記メタデータに従って、必要とされる過渡プレノイズ処理復号があればそれを適用するため;およびダウンミキシング・データに従って時間領域ダウンミキシングするための手段を含み、前記時間領域ダウンミキシングは、M<Nの場合にダウンミキシング・データに従ってデータの少なくともいくつかのブロックを時間領域ダウンミキシングし、
次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記バックエンド復号のための手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことであり、
Bは、前記時間領域ダウンミキシングする手段が、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことであり、
Cは、当該装置が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、前記バックエンド復号のための手段が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
装置。
【請求項55】
請求項54記載の装置であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、装置。
【請求項56】
請求項54または55記載の装置であって、
前記エンコードされたオーディオ・データは、E-AC-3規格に従ってまたはE-AC-3規格に対して上位互換である規格に従ってエンコードされており、5つより多くの符号化されたチャンネルを含むことができ、
N>5の場合、前記オーディオ・データは5.1個までの符号化されたチャンネルの独立フレームおよび符号化されたデータの少なくとも一つの従属フレームを含み、
前記復号する手段は:
5.1チャンネルまでの前記独立フレームを復号するための第一のフロントエンド復号手段および第一のバックエンド復号手段と、一つまたは複数の従属フレームのデータを復号するための第二のフロントエンド復号手段および第二のバックエンド復号手段とを含む、前記フロントエンド復号のための手段および前記バックエンド復号のための手段の複数のインスタンスと;
ビットストリーム情報フィールド・データをアンパックしてフレームおよびフレーム種別を識別し、識別されたフレームを適切なフロントエンド復号手段に与える手段と;
それぞれのバックエンド復号手段からの復号データを組み合わせて前記Nチャンネルの復号データを形成する手段とを有する、
装置。
【請求項57】
請求項54ないし56のうちいずれか一項記載の装置であって、Aが真である、装置。
【請求項58】
請求項57記載の装置であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定することを実行し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、装置。
【請求項59】
請求項54ないし58のうちいずれか一項記載の装置であって、Bが真である、装置。
【請求項60】
請求項59記載の装置であって、当該装置はベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含み、時間領域ダウンミキシングする手段は前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行する、装置。
【請求項61】
請求項54ないし60のうちいずれか一項記載の装置であって、Cが真である、装置。
【請求項62】
請求項61記載の装置であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、装置。
【請求項63】
請求項61または62記載の装置であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、装置。
【請求項64】
請求項61または62記載の装置であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、装置。
【請求項65】
請求項54ないし64のうちいずれか一項記載の装置であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、装置。
【請求項66】
N.nチャンネルのオーディオ・データのエンコードされたオーディオ・データを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するよう構成されたシステムであって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該システムは:
一つまたは複数のプロセッサと;
前記一つまたは複数のプロセッサに結合された記憶サブシステムとを有しており、
当該システムは、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れ;さらに、受け入れたオーディオ・データを復号するよう構成されており、前記は:
前記周波数領域の指数および仮数データをアンパックおよび復号し;
アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定し;
前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定し;
M<Nの場合についてはダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングすることを含み、
次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記復号が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことであり、
Bは、前記時間領域ダウンミキシングが、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことであり、
Cは、前記方法が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
システム。
【請求項67】
請求項66記載のシステムであって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、システム。
【請求項68】
請求項66または67記載のシステムであって、Aが真である、システム。
【請求項69】
請求項68記載のシステムであって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定することは、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、システム。
【請求項70】
請求項66ないし69のうちいずれか一項記載のシステムであって、Bが真である、システム。
【請求項71】
請求項70記載のシステムであって、当該システムはベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含み、時間領域ダウンミキシングは前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行することを含む、システム。
【請求項72】
請求項66ないし71のうちいずれか一項記載のシステムであって、Cが真である、システム。
【請求項73】
請求項72記載のシステムであって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、システム。
【請求項74】
請求項72または73記載のシステムであって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、システム。
【請求項75】
請求項72または73記載のシステムであって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、システム。
【請求項76】
請求項66ないし75のうちいずれか一項記載のシステムであって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、システム。
【請求項77】
請求項66ないし76のうちいずれか一項記載のシステムであって、
受け入れたオーディオ・データは、符号化されたデータのフレームからなるビットストリームの形であり、
前記記憶サブシステムは、前記処理システムの前記プロセッサの一つまたは複数によって実行されたとき、受け入れたオーディオ・データの復号をさせる命令を与えられて構成されている、
システム。
【請求項78】
請求項66ないし77のうちいずれか一項記載のシステムであって、ネットワーク・リンクを介してネットワーク接続される一つまたは複数のサブシステムを含み、各サブシステムは少なくとも一つのプロセッサを含む、システム。
【請求項1】
N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・デコーダを動作させる方法であって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該方法は:
N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる段階と;
受け入れたオーディオ・データを復号する段階とを含み、前記復号する段階は:
前記周波数領域の指数および仮数データをアンパックおよび復号する段階と;
アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する段階と;
前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する段階と;
M<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする段階とを含み、次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記復号する段階が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことであり、
Bは、前記時間領域ダウンミキシングが、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことであり、
Cは、当該方法が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、当該方法が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換および前記さらなる処理の適用を実行しない、ことである、
方法。
【請求項2】
請求項1記載の方法であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、方法。
【請求項3】
請求項1または2記載の方法であって、前記エンコード方法が、前記周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む、方法。
【請求項4】
請求項1ないし3のうちいずれか一項記載の方法であって、Aが真である方法。
【請求項5】
請求項4記載の方法であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかの決定は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、方法。
【請求項6】
請求項4または5記載の方法であって、
前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
前記特定のブロックについて周波数領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき直前のブロックのデータに対して時間領域ダウンミキシングまたは擬似時間領域におけるダウンミキシングを適用することを含み、
特定のブロックについて時間領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む、
方法。
【請求項7】
請求項1ないし6のうちいずれか一項記載の方法であって、Bが真である、方法。
【請求項8】
請求項7記載の方法であって、前記デコーダはベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを使用し、時間領域ダウンミキシングは前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行することを含む、方法。
【請求項9】
請求項1ないし8のうちいずれか一項記載の方法であって、Cが真である、方法。
【請求項10】
請求項9記載の方法であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、方法。
【請求項11】
請求項9または10記載の方法であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、方法。
【請求項12】
請求項11記載の方法であって、ダウンミキシングを定義する前記情報は、一つまたは複数のチャンネルが非寄与チャンネルであることを示すあらかじめ定義された値をもつミックス・レベル・パラメータを含む、方法。
【請求項13】
請求項9または10記載の方法であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、方法。
【請求項14】
請求項13記載の方法であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも18dB低い場合である、方法。
【請求項15】
請求項13記載の方法であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも25dB低い場合である、方法。
【請求項16】
請求項13記載の方法であって、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することは、チャンネルの対の間の内容量の指標の差を設定可能な閾値と比較することを含む、方法。
【請求項17】
請求項16記載の方法であって、前記設定可能な閾値は、複数のあらかじめ定義された値のうちの一つに設定される、方法。
【請求項18】
請求項1ないし17のうちいずれか一項記載の方法であって、前記受け入れられるオーディオ・データが符号化されたデータのフレームのビットストリームの形であり、前記復号する段階は、一組のフロントエンド復号処理および一組のバックエンド復号処理に分割され、前記フロントエンド復号処理は、前記ビットストリームのフレームの前記周波数領域の指数および仮数データをアンパックおよび復号して、そのフレームについてのアンパックおよび復号された周波数領域の指数および仮数データおよびそのフレームの付随メタデータにすることを含み、前記バックエンド復号処理は、前記変換係数を決定する段階と、前記逆変換し、さらなる処理を適用する段階と、要求される過渡プレノイズ処理復号があればそれを適用する段階と、M<Nの場合にはダウンミキシングする段階とを含む、方法。
【請求項19】
請求項18記載の方法であって、前記フロントエンド復号処理は、第一のパスおよびそれに続く第二のパスにおいて実行され、前記第一のパスは、ブロックごとにメタデータをアンパックし、パックされた指数および仮数のデータが記憶されている場所へのポインタを保存することを含み、前記第二のパスは、パックされた指数および仮数への保存されたポインタを使って、チャンネルごとに指数および仮数のデータをアンパックおよび復号することを含む、方法。
【請求項20】
請求項1ないし19のうちいずれか一項記載の方法であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、方法。
【請求項21】
処理システムの一つまたは複数のプロセッサによって実行されたときに前記処理システムに、N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成することを実行させる復号命令を記憶しているコンピュータ可読記憶媒体であって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、前記復号命令は:
実行されたときに、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れさせる命令と;
実行されたときに、受け入れたオーディオ・データを復号させる命令とを含み、実行されたときに復号させる前記命令は:
実行されたときに、前記周波数領域の指数および仮数データをアンパックおよび復号させる命令と;
実行されたときに、アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定させる命令と;
実行されたときに前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定させる命令と;
実行されたときに、M<Nであるかどうかを見きわめさせる命令と;M<Nであれば、
実行されたときにダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングさせる命令とを含み、次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、実行されたときに復号させる前記命令が、実行されたときに、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定させる命令と、実行されたときに、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、周波数領域ダウンミキシングを適用させる命令とを含むことであり、
Bは、前記時間領域ダウンミキシングが、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことであり、
Cは、実行されたときに復号させる前記命令が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
コンピュータ可読記憶媒体。
【請求項22】
請求項21記載のコンピュータ可読記憶媒体であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、コンピュータ可読記憶媒体。
【請求項23】
請求項21または22記載のコンピュータ可読記憶媒体であって、前記エンコード方法が、前記周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む、コンピュータ可読記憶媒体。
【請求項24】
請求項21ないし23のうちいずれか一項記載のコンピュータ可読記憶媒体であって、Aが真である、コンピュータ可読記憶媒体。
【請求項25】
請求項24記載のコンピュータ可読記憶媒体であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかの決定は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、周波数領域ダウンミキシングが実行されるのは、実行されたときに、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ復号させる命令によってである、コンピュータ可読記憶媒体。
【請求項26】
請求項24または25記載のコンピュータ可読記憶媒体であって、
前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
前記特定のブロックについて周波数領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき直前のブロックのデータに対して時間領域ダウンミキシングまたは擬似時間領域におけるダウンミキシングを適用することを含み、
特定のブロックについて時間領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む、
コンピュータ可読記憶媒体。
【請求項27】
請求項21ないし26のうちいずれか一項記載のコンピュータ可読記憶媒体であって、Bが真である、コンピュータ可読記憶媒体。
【請求項28】
請求項27記載のコンピュータ可読記憶媒体であって、前記処理システムはベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを使用し、実行されたときに受け入れたオーディオ・データを復号させる前記命令は前記一つまたは複数のx86プロセッサの少なくとも一つの上での実行のための命令を含み、実行されたときに時間領域ダウンミキシングをさせる前記命令は、前記一つまたは複数のx86プロセッサの少なくとも一つのためのベクトル命令を含む、コンピュータ可読記憶媒体。
【請求項29】
請求項21ないし28のうちいずれか一項記載のコンピュータ可読記憶媒体であって、Cが真である、コンピュータ可読記憶媒体。
【請求項30】
請求項29記載のコンピュータ可読記憶媒体であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、コンピュータ可読記憶媒体。
【請求項31】
請求項29または30記載のコンピュータ可読記憶媒体であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、コンピュータ可読記憶媒体。
【請求項32】
請求項31記載のコンピュータ可読記憶媒体であって、ダウンミキシングを定義する前記情報は、一つまたは複数のチャンネルが非寄与チャンネルであることを示すあらかじめ定義された値をもつミックス・レベル・パラメータを含む、コンピュータ可読記憶媒体。
【請求項33】
請求項29または30記載のコンピュータ可読記憶媒体であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、コンピュータ可読記憶媒体。
【請求項34】
請求項33記載のコンピュータ可読記憶媒体であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも18dB低い場合である、コンピュータ可読記憶媒体。
【請求項35】
請求項33記載のコンピュータ可読記憶媒体であって、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも25dB低い場合である、コンピュータ可読記憶媒体。
【請求項36】
請求項33記載のコンピュータ可読記憶媒体であって、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することは、チャンネルの対の間の内容量の指標の差を設定可能な閾値と比較することを含む、コンピュータ可読記憶媒体。
【請求項37】
請求項36記載のコンピュータ可読記憶媒体であって、前記設定可能な閾値は、複数のあらかじめ定義された値のうちの一つに設定される、コンピュータ可読記憶媒体。
【請求項38】
請求項21ないし37のうちいずれか一項記載のコンピュータ可読記憶媒体であって、前記受け入れられるオーディオ・データが符号化されたデータのフレームのビットストリームの形であり、実行されたときに受け入れたデータを復号させる前記命令は、フロントエンド復号モジュールおよびバックエンド復号モジュールを含む一組の再利用可能なモジュールに分割され、前記フロントエンド復号モジュールは、実行されたときに前記ビットストリームのフレームの前記周波数領域の指数および仮数データをアンパックおよび復号して、そのフレームについてのアンパックおよび復号された周波数領域の指数および仮数データおよびそのフレームの付随メタデータにすることを行わせる命令を含み、前記バックエンド復号モジュールは、実行されたときに、前記変換係数を決定し、前記逆変換し、さらなる処理を適用し、要求される過渡プレノイズ処理復号があればそれを適用し、M<Nの場合にはダウンミキシングすることを行わせる命令を含む、コンピュータ可読記憶媒体。
【請求項39】
請求項21ないし38のうちいずれか一項記載のコンピュータ可読記憶媒体であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、コンピュータ可読記憶媒体。
【請求項40】
請求項38記載のコンピュータ可読記憶媒体であって、
前記エンコードされたオーディオ・データは、E-AC-3規格に従ってまたはE-AC-3規格に対して上位互換である規格に従ってエンコードされており、5つより多くの符号化されたチャンネルを含むことができ、
前記さらなる処理は、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
N>5の場合、前記符号化されたビットストリームは、5.1個までの符号化されたチャンネルの独立フレームおよび符号化されたデータの少なくとも一つの従属フレームを含み、
前記復号命令は、複数の5.1チャンネル復号モジュールとして構成され、各5.1チャンネル復号モジュールは、フロントエンド復号モジュールのそれぞれのインスタンスおよびバックエンド復号モジュールのそれぞれのインスタンスを含み、前記複数の5.1チャンネル復号モジュールは、実行されたときに前記独立フレームの復号をさせる第一の5.1チャンネル復号モジュールと、各従属フレームについての一つまたは複数の他のチャンネル復号モジュールとを含み、前記復号命令は、さらに:
実行されたときに、ビットストリーム情報フィールド・データをアンパックしてフレームおよびフレーム種別を識別させ、識別されたフレームを適切なフロントエンド復号モジュールのインスタンスに与えさせる命令のフレーム情報解析モジュールと、
実行されたときに、N>5の場合、それぞれのバックエンド復号モジュールからの復号されたデータを組み合わせて前記N個のチャンネルの復号データを形成させる命令のチャンネル・マッピング器モジュールとを含む、
コンピュータ可読記憶媒体。
【請求項41】
N.nチャンネルのオーディオ・データのエンコードされたブロックを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するオーディオ・データ処理装置であって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該装置は:
N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れる手段と;
受け入れたオーディオ・データを復号する手段とを有しており、前記復号する手段は:
前記周波数領域の指数および仮数データをアンパックおよび復号する手段と;
アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定する手段と;
前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定する手段と;
M<Nの場合についてダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングする手段とを含み、
次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記復号する手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことであり、
Bは、前記時間領域ダウンミキシングする手段が、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことであり、
Cは、当該装置が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、当該装置が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
装置。
【請求項42】
請求項41記載の装置であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、装置。
【請求項43】
請求項41または42記載の装置であって、前記エンコード方法が、前記周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理およびダウンミキシングに関係したメタデータを含む、装置。
【請求項44】
請求項41ないし43のうちいずれか一項記載の装置であって、Aが真である装置。
【請求項45】
請求項44記載の装置であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、装置。
【請求項46】
請求項44または45記載の装置であって、
前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含み、
前記特定のブロックについて周波数領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが時間領域ダウンミキシングであった場合、前記特定のブロックの復号データと重ねられるべき直前のブロックのデータに対して時間領域ダウンミキシングまたは擬似時間領域におけるダウンミキシングを適用することを含み、
特定のブロックについて時間領域ダウンミキシングを適用することは、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであったかどうかを判定し、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングであった場合、前記特定のブロックを、直前のブロックについてのダウンミキシングが周波数領域ダウンミキシングでなかった場合とは異なる仕方で処理することを含む、
装置。
【請求項47】
請求項41ないし46のうちいずれか一項記載の装置であって、Bが真である、装置。
【請求項48】
請求項47記載の装置であって、当該装置はベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含み、時間領域ダウンミキシングする手段は前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行する、装置。
【請求項49】
請求項41ないし48のうちいずれか一項記載の装置であって、Cが真である、装置。
【請求項50】
請求項49記載の装置であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、装置。
【請求項51】
請求項49または50記載の装置であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、装置。
【請求項52】
請求項49または50記載の装置であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、装置。
【請求項53】
請求項41ないし52のうちいずれか一項記載の装置であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、装置。
【請求項54】
N.nチャンネルのエンコードされたオーディオ・データを含むオーディオ・データを処理してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成する装置であって、M≧1であり、n=0または1はエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、m=0または1は復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該装置は、
エンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データを含むオーディオ・データを受け入れる手段であって、前記エンコード方法は、N.nチャンネルのデジタル・オーディオ・データを、逆変換およびさらなる処理によってエイリアシング・エラーなしで時間領域サンプルを復元できるよう変換し、周波数領域の指数および仮数データを形成およびパッキングし、該周波数領域の指数および仮数データに関係するメタデータを形成およびパッキングすることを含み、前記メタデータは任意的に、過渡プレノイズ処理に関係したメタデータを含む、手段と;
受け入れたオーディオ・データを復号する手段とを有しており、
前記復号する手段は:
フロントエンド復号のための一つまたは複数の手段とバックエンド復号のための一つまたは複数の手段とを有しており、
前記フロントエンド復号のための手段は、前記メタデータのアンパックのためであり、前記周波数領域の指数および仮数データのアンパックおよび復号のためである手段を含み、
前記バックエンド復号のための手段は、アンパックされて復号された周波数領域の指数および仮数データから変換係数を決定するため;前記周波数領域データを逆変換するため;窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定するため;過渡プレノイズ処理に関係した前記メタデータに従って、必要とされる過渡プレノイズ処理復号があればそれを適用するため;およびダウンミキシング・データに従って時間領域ダウンミキシングするための手段を含み、前記時間領域ダウンミキシングは、M<Nの場合にダウンミキシング・データに従ってデータの少なくともいくつかのブロックを時間領域ダウンミキシングし、
次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記バックエンド復号のための手段が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段と、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用する周波数領域ダウンミキシング適用手段とを含むことであり、
Bは、前記時間領域ダウンミキシングする手段が、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかの試験を実行し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングを適用する、ことであり、
Cは、当該装置が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定する手段を含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、前記バックエンド復号のための手段が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
装置。
【請求項55】
請求項54記載の装置であって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、装置。
【請求項56】
請求項54または55記載の装置であって、
前記エンコードされたオーディオ・データは、E-AC-3規格に従ってまたはE-AC-3規格に対して上位互換である規格に従ってエンコードされており、5つより多くの符号化されたチャンネルを含むことができ、
N>5の場合、前記オーディオ・データは5.1個までの符号化されたチャンネルの独立フレームおよび符号化されたデータの少なくとも一つの従属フレームを含み、
前記復号する手段は:
5.1チャンネルまでの前記独立フレームを復号するための第一のフロントエンド復号手段および第一のバックエンド復号手段と、一つまたは複数の従属フレームのデータを復号するための第二のフロントエンド復号手段および第二のバックエンド復号手段とを含む、前記フロントエンド復号のための手段および前記バックエンド復号のための手段の複数のインスタンスと;
ビットストリーム情報フィールド・データをアンパックしてフレームおよびフレーム種別を識別し、識別されたフレームを適切なフロントエンド復号手段に与える手段と;
それぞれのバックエンド復号手段からの復号データを組み合わせて前記Nチャンネルの復号データを形成する手段とを有する、
装置。
【請求項57】
請求項54ないし56のうちいずれか一項記載の装置であって、Aが真である、装置。
【請求項58】
請求項57記載の装置であって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定する手段は、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定することを実行し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、装置。
【請求項59】
請求項54ないし58のうちいずれか一項記載の装置であって、Bが真である、装置。
【請求項60】
請求項59記載の装置であって、当該装置はベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含み、時間領域ダウンミキシングする手段は前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行する、装置。
【請求項61】
請求項54ないし60のうちいずれか一項記載の装置であって、Cが真である、装置。
【請求項62】
請求項61記載の装置であって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、装置。
【請求項63】
請求項61または62記載の装置であって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、装置。
【請求項64】
請求項61または62記載の装置であって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、装置。
【請求項65】
請求項54ないし64のうちいずれか一項記載の装置であって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、装置。
【請求項66】
N.nチャンネルのオーディオ・データのエンコードされたオーディオ・データを含むオーディオ・データを復号してM.mチャンネルの復号されたオーディオを含む復号オーディオ・データを形成するよう構成されたシステムであって、M≧1であり、nはエンコードされたオーディオ・データにおける低周波数効果チャンネルの数であり、mは復号オーディオ・データにおける低周波数効果チャンネルの数であり、当該システムは:
一つまたは複数のプロセッサと;
前記一つまたは複数のプロセッサに結合された記憶サブシステムとを有しており、
当該システムは、N.nチャンネルのデジタル・オーディオ・データを変換して周波数領域の指数および仮数データを形成し、パッキングすることを含むエンコード方法によってエンコードされた、N.nチャンネルのエンコード・オーディオ・データのブロックを含むオーディオ・データを受け入れ;さらに、受け入れたオーディオ・データを復号するよう構成されており、前記は:
前記周波数領域の指数および仮数データをアンパックおよび復号し;
アンパックされ復号された周波数領域の指数および仮数データから変換係数を決定し;
前記周波数領域データを逆変換し、さらなる処理を適用してサンプリングされたオーディオ・データを決定し;
M<Nの場合についてはダウンミキシング・データに従って、決定されたサンプリングされたオーディオ・データの少なくともいくつかのブロックを時間領域ダウンミキシングすることを含み、
次のA、BおよびCのうちの少なくとも一つは真であり、
Aは、前記復号が、ブロックごとに、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定し、特定のブロックについて周波数領域ダウンミキシングを適用することが決定される場合、その特定のブロックについて周波数領域ダウンミキシングを適用することを含むことであり、
Bは、前記時間領域ダウンミキシングが、前記ダウンミキシング・データが前に使われたダウンミキシング・データから変わっているかどうかを試験し、もし変わっていれば、クロスフェーディングを適用してクロスフェードしたダウンミキシング・データを決定し、該クロスフェードしたダウンミキシング・データに従って時間領域ダウンミキシングし、もし変わっていなければ、前記ダウンミキシング・データに従って直接、時間領域ダウンミキシングすることを含む、ことであり、
Cは、前記方法が、前記N.n個の入力チャンネルのうちの一つまたは複数の非寄与チャンネルを同定することを含み、非寄与チャンネルとは、前記M.m個のチャンネルに寄与しないチャンネルであり、前記方法が、同定された一つまたは複数の非寄与チャンネルに対しては、前記周波数領域データの逆変換およびさらなる処理の適用を実行しない、ことである、
システム。
【請求項67】
請求項66記載のシステムであって、前記エンコード方法における変換が重複変換を使用し、前記さらなる処理が、窓処理および重複加算演算を適用してサンプリングされたオーディオ・データを決定することを含む、システム。
【請求項68】
請求項66または67記載のシステムであって、Aが真である、システム。
【請求項69】
請求項68記載のシステムであって、周波数領域ダウンミキシングを適用するか時間領域ダウンミキシングを適用するかを決定することは、過渡プレノイズ処理があるかどうかを判定し、前記N個のチャンネルのうちのいずれかが異なるブロック型を有しているかどうかを判定し、前記N個のチャンネルにおいて同じブロック型をもち、過渡プレノイズ処理をもたず、M<Nであるブロックについてのみ周波数領域ダウンミキシングが適用される、システム。
【請求項70】
請求項66ないし69のうちいずれか一項記載のシステムであって、Bが真である、システム。
【請求項71】
請求項70記載のシステムであって、当該システムはベクトル命令を含むストリーミング単一命令複数データ拡張(SSE)を含む命令セットを有する少なくとも一つのx86プロセッサを含み、時間領域ダウンミキシングは前記一つまたは複数のx86プロセッサの少なくとも一つの上でベクトル命令を実行することを含む、システム。
【請求項72】
請求項66ないし71のうちいずれか一項記載のシステムであって、Cが真である、システム。
【請求項73】
請求項72記載のシステムであって、n=1かつm=0であり、逆変換およびさらなる処理の適用は低周波数効果チャンネル上では実行されない、システム。
【請求項74】
請求項72または73記載のシステムであって、エンコードされたブロックを含むオーディオ・データは、ダウンミキシングを定義する情報を含み、一つまたは複数の非寄与チャンネルを同定することは、ダウンミキシングを定義する前記情報を使う、システム。
【請求項75】
請求項72または73記載のシステムであって、一つまたは複数の非寄与チャンネルを同定することは、さらに、一つまたは複数のチャンネルが一つまたは複数の他のチャンネルに対して取るに足りない量の内容をもつかどうかを識別することを含み、チャンネルが別のチャンネルに対して取るに足りない量の内容をもつのは、そのエネルギーまたは絶対レベルが、前記別のチャンネルより少なくとも15dB低い場合である、システム。
【請求項76】
請求項66ないし75のうちいずれか一項記載のシステムであって、前記エンコードされたオーディオ・データは、AC-3規格、E-AC-3規格、E-AC-3規格に対して上位互換である規格、HE-AAC規格およびHE-AAC規格に対して上位互換である規格からなる規格の集合のうちの一つに従ってエンコードされている、システム。
【請求項77】
請求項66ないし76のうちいずれか一項記載のシステムであって、
受け入れたオーディオ・データは、符号化されたデータのフレームからなるビットストリームの形であり、
前記記憶サブシステムは、前記処理システムの前記プロセッサの一つまたは複数によって実行されたとき、受け入れたオーディオ・データの復号をさせる命令を与えられて構成されている、
システム。
【請求項78】
請求項66ないし77のうちいずれか一項記載のシステムであって、ネットワーク・リンクを介してネットワーク接続される一つまたは複数のサブシステムを含み、各サブシステムは少なくとも一つのプロセッサを含む、システム。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2012−527021(P2012−527021A)
【公表日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2012−512088(P2012−512088)
【出願日】平成23年2月3日(2011.2.3)
【国際出願番号】PCT/US2011/023533
【国際公開番号】WO2011/102967
【国際公開日】平成23年8月25日(2011.8.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ウィンドウズ
2.リナックス
【出願人】(507236292)ドルビー ラボラトリーズ ライセンシング コーポレイション (82)
【出願人】(511105997)ドルビー インターナショナル アーベー (16)
【公表日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願日】平成23年2月3日(2011.2.3)
【国際出願番号】PCT/US2011/023533
【国際公開番号】WO2011/102967
【国際公開日】平成23年8月25日(2011.8.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ウィンドウズ
2.リナックス
【出願人】(507236292)ドルビー ラボラトリーズ ライセンシング コーポレイション (82)
【出願人】(511105997)ドルビー インターナショナル アーベー (16)
[ Back to top ]