(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-06
(45)【発行日】2023-04-14
(54)【発明の名称】デジタルオーディオ信号における差分データ
(51)【国際特許分類】
G10L 19/035 20130101AFI20230407BHJP
【FI】
G10L19/035 B
(21)【出願番号】P 2019558589
(86)(22)【出願日】2018-04-23
(86)【国際出願番号】 US2018028877
(87)【国際公開番号】W WO2018200384
(87)【国際公開日】2018-11-01
【審査請求日】2021-03-11
(32)【優先日】2017-04-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-03-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503206684
【氏名又は名称】ディーティーエス・インコーポレイテッド
【氏名又は名称原語表記】DTS,Inc.
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100196612
【氏名又は名称】鎌田 慎也
(72)【発明者】
【氏名】セルーシ ガディエル
(72)【発明者】
【氏名】チュバレフ パヴェル
(72)【発明者】
【氏名】スミス ブランドン
【審査官】大野 弘
(56)【参考文献】
【文献】特開平08-251031(JP,A)
【文献】特開2001-343997(JP,A)
【文献】国際公開第2014/091694(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/035
(57)【特許請求の範囲】
【請求項1】
符号化システムであって、
プロセッサと、
前記プロセッサによって実行可能である
プログラムを格納するメモリデバイスであって、前記
プログラムが、オーディオ信号を符号化するための方法を実行するように前記プロセッサによって実行可能である、メモリデバイスと、
を含み、前記方法は、
デジタルオーディオ信号を受け取るステップと、
前記デジタルオーディオ信号を構文解析して、指定された数のオーディオサンプルを各々が含む複数のフレームにするステップと、
各フレームに関する複数の周波数領域係数を生成するために、各フレームの前記オーディオサンプルの変換を行うステップと、
各フレームに関する前記複数の周波数領域係数を各フレームに関する複数の帯域に分割するステップと、
各フレーム内の各帯域に対して指定されたビット数を割り当てるステップと、
各フレーム内の各帯域に対して割り当てられた前記ビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す、各フレーム内の各帯域に関する差分値を計算するステップと、
前記デジタルオーディオ信号を表すデータと前記差分値を表すデータとを含むが、各フレーム内の各帯域に対して割り当てられた前記ビット数を直接表すデータを含まないように、ビットストリームを符号化するステップと、
前記ビットストリームを出力するステップと、
を含
み、
前記方法は更に、
各フレームの各帯域の量子化されたノルムを計算するステップであって、量子化されたノルムの各々は、前記帯域における周波数領域係数から得られた値であって複数の指定された値のうちの1つに等しくなるように量子化された値を有する、計算するステップと、
前記量子化されたノルムに基づいて、各フレーム内の各帯域に対して割り当て可能な前記推定ビット数を決定するステップと、
前記量子化されたノルムを表すデータを前記ビットストリームに符号化するステップと、
を含む、
符号化システム。
【請求項2】
各フレーム内の各帯域に対して割り当て
可能な前記推定ビット数は、前記量子化されたノルムのみに基づいて決定される、請求項
1に記載の符号化システム。
【請求項3】
特定のフレーム内の各帯域に対して割り当て
可能な前記推定ビット数は、前記特定のフレームに関する前記量子化されたノルムのみに基づいて決定される、請求項
2に記載の符号化システム。
【請求項4】
特定のフレーム内の各帯域に対して割り当て
可能な前記推定ビット数は、前記デジタルオーディオ信号内の少なくとも1つの他のフレームに関する量子化されたノルムに少なくとも部分的に基づいて決定される、請求項
2に記載の符号化システム。
【請求項5】
前記方法は更に、
少なくとも1つの目標パラメータを決定するステップと、
少なくとも部分的に前記少なくとも1つの目標パラメータから、各フレーム内の各帯域に対して割り当て可能な前記推定ビット数を決定するステップと、
前記少なくとも1つの目標パラメータを表すデータを前記ビットストリームに符号化するステップと、
を含む、請求項1から
4のいずれか1項に記載の符号化システム。
【請求項6】
前記少なくとも1つの目標パラメータは、各帯域に対して割り当て可能な基準ビット数を含み、前記方法は更に、
前記デジタルオーディオ信号内の複数フレームに対して、各帯域に対して割り当て可能な前記基準ビット数に等しくなるように、各帯域に対して割り当て可能な前記推定ビット数を設定するステップと、
各帯域に対して割り当て可能な前記基準ビット数を表すデータを前記ビットストリームに符号化するステップと、
を含む、請求項
5に記載の符号化システム。
【請求項7】
前記少なくとも1つの目標パラメータは勾配を含
み、
前記勾配は各帯域に特定の数のビットを与える、請求項
5に記載の符号化システム。
【請求項8】
前記変換は修正離散コサイン変換である、請求項1に記載の符号化システム。
【請求項9】
各フレームは、正確に1024個のサンプルを含む、請求項1に記載の符号化システム。
【請求項10】
それぞれの複数の周波数領域係数における周波数領域係数の数は、各フレーム内のオーディオサンプルの前記指定された数に等しい、請求項1に記載の符号化システム。
【請求項11】
各フレームに関する前記複数の周波数領域係数は、正確に1024個の周波数領域係数を含む、請求項1に記載の符号化システム。
【請求項12】
各フレームに関する前記複数の帯域は、正確に22個の帯域を含む、請求項1に記載の符号化システム。
【請求項13】
前記符号化システムは、コーデックに含まれる、請求項1に記載の符号化システム。
【請求項14】
復号システムであって、
プロセッサと、
前記プロセッサによって実行可能である
プログラムを格納するメモリデバイスであって、前記
プログラムが、符号化されたオーディオ信号を復号するための方法を実行するように前記プロセッサによって実行可能である、メモリデバイスと、
を含み、前記方法は、
複数の帯域に各々が分割された複数のフレームを含むビットストリームを受け取るステップと、
各フレーム内の各帯域の量子化されたノルムを前記ビットストリームから抽出するステップと、
前記抽出された量子化ノルムに基づいて、各フレーム内の各帯域に対して割り当て可能な推定ビット数を決定するステップと、
各フレームの各帯域に対して、各フレーム内の各帯域に対して割り当てられるビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す差分値を、前記ビットストリームから抽出するステップと、
各フレーム内の各帯域に対して割り当てられるビット数を決定するために、前記差分値を、各フレーム内の各帯域に対して割り当て可能な前記対応する推定ビット数と組み合わせるステップと、
各フレーム内の各帯域に対して前記決定されたビット数を割り当てるステップと、
復号されたデジタルオーディオ信号を生成するために、各フレーム内の各帯域に関する前記決定されたビット数を使用して、前記ビットストリームを復号するステップと、
を含む、復号システム。
【請求項15】
各フレーム内の各帯域に対して割り当てられる前記推定ビット数は、前記量子化されたノルムのみに基づいて決定される、請求項
14に記載の復号システム。
【請求項16】
特定のフレーム内の各帯域に対して割り当てられる前記推定ビット数は、前記特定のフレームに関する前記量子化されたノルムのみに基づいて決定される、請求項
14に記載の復号システム。
【請求項17】
特定のフレーム内の各帯域に対して割り当てられる前記推定ビット数は、前記デジタルオーディオ信号内の少なくとも1つの他のフレームに関する量子化されたノルムに少なくとも部分的に基づいて決定される、請求項
14に記載の復号システム。
【請求項18】
符号化システムであって、
デジタルオーディオ信号を受け取るための受信器回路と、
前記デジタルオーディオ信号を構文解析して、指定された数のオーディオサンプルを各々が含む複数のフレームにするためのフレーマ回路と、
各フレームの前記オーディオサンプルの変換を行って、各フレームに関する複数の周波数領域係数を生成するための変換器回路と、
各フレームに関する前記複数の周波数領域係数を各フレームに関する複数の帯域に分割するための周波数帯域分割器回路と、
各フレーム内の各帯域に対して指定されたビット数を割り当てるためのフレームビット割り当て回路と、
各フレーム内の各帯域に対して割り当てられた前記ビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す、各フレーム内の各帯域に関する差分値を計算するための差分計算回路と、
前記デジタルオーディオ信号を表すデータと前記差分値を表すデータとを含むが、各フレーム内の各帯域に対して割り当てられた前記ビット数を直接表すデータを含まないように、ビットストリームを符号化するためのエンコーダ回路と、
前記ビットストリームを出力するための出力回路と、
を含
み、
前記エンコーダ回路は更に、
各フレームの各帯域の量子化されたノルムを計算することであって、量子化されたノルムの各々は、前記帯域における周波数領域係数から得られた値であって複数の指定された値のうちの1つに等しくなるように量子化された値を有する、計算することと、
前記量子化されたノルムに基づいて、各フレーム内の各帯域に対して割り当て可能な前記推定ビット数を決定することと、
前記量子化されたノルムを表すデータを前記ビットストリームに符号化することと、
を含む、
符号化システム。
【請求項19】
特定のフレーム内の各帯域に対して割り当て
可能な前記推定ビット数は、前記特定のフレームに関する前記量子化されたノルムのみに基づいて決定される、請求項
18に記載の符号化システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、オーディオ信号の符号化又は復号に関する。
【0002】
関連出願の相互参照
本出願は、2017年4月25日出願の米国仮特許出願第62/489,650号の利益を主張する2018年3月29日出願の米国特許出願第15/939,473号に対し優先権を主張するものであり、これらの開示内容全体は、引用により本明細書に組み込まれる。
【背景技術】
【0003】
オーディオコーデックは、時間領域オーディオ信号をデジタルファイル又はデジタルストリームに符号化して、デジタルファイル又はデジタルストリームを時間領域オーディオ信号に復号することができる。符号化されたファイル又はストリームのサイズを小さくすることなど、オーディオコーデックを改良する継続的な取り組みが行われている。
【発明の概要】
【課題を解決するための手段】
【0004】
符号化システムの例は、プロセッサと、該プロセッサによって実行可能ある命令を格納するメモリデバイスであって、前記命令が、オーディオ信号を符号化するための方法を実行するように前記プロセッサによって実行可能である、メモリデバイスと、を含むことができ、該方法は、デジタルオーディオ信号を受け取るステップと、該デジタルオーディオ信号を構文解析して(parsing)、指定された数のオーディオサンプルを各々が含む複数のフレームにするステップと、各フレームのオーディオサンプルの変換を行って、各フレームに関する複数の周波数領域係数を生成するステップと、各フレームに関する複数の周波数領域係数を各フレームに関する複数の帯域に分割する(partitioning)ステップと、各フレーム内の各帯域に対して指定された数のビットを割り当てるステップと、各フレーム内の各帯域に対して割り当てられたビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数(estimated number of bits)との間の差分を表す、各フレーム内の各帯域に関する差分値を計算するステップと、デジタルオーディオ信号を表すデータと該差分値を表すデータとを含むが、各フレーム内の各帯域に対して割り当てられたビット数を直接表すデータを含まないように、ビットストリームを符号化するステップと、該ビットストリームを出力するステップと、を含む。
【0005】
復号システムの例は、プロセッサと、該プロセッサによって実行可能である命令を格納するメモリデバイスであって、前記命令が、符号化されたオーディオ信号を復号するための方法を実行するように前記プロセッサによって実行可能である、メモリデバイスと、を含むことができ、該方法は、複数の帯域に各々が分割された複数のフレームを含むビットストリームを受け取るステップと、各フレーム内の各帯域の量子化されたノルム(quantized norm)を抽出するステップと、該抽出された量子化ノルムに基づいて、各フレーム内の各帯域に対して割り当て可能な推定ビット数を決定するステップと、各フレームの各帯域に対して、各フレーム内の各帯域に対して割り当てられるビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す差分値を、ビットストリームから抽出するステップと、該差分値を、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数と組み合わせて、各フレーム内の各帯域に対して割り当てられるビット数を決定するステップと、各フレーム内の各帯域に決定された数のビットを割り当てるステップと、各フレーム内の各帯域に関する決定された数のビットを使用してビットストリームを復号して、復号されたデジタルオーディオ信号を生成するステップと、を含む。
【0006】
符号化システムの別の例は、デジタルオーディオ信号を受け取るための受信器回路と、該デジタルオーディオ信号を構文解析して、指定された数のオーディオサンプルを各々が含む複数のフレームにするフレーマ回路と、各フレームのオーディオサンプルの変換を行って、各フレームに関する複数の周波数領域係数を生成する変換器回路と、各フレームに関する複数の周波数領域係数を各フレームに関する複数の帯域に分割する周波数帯域分割器回路と、各フレーム内の各帯域に対して指定された数のビットを割り当てるフレームビット割り当て回路と、各フレーム内の各帯域に対して割り当てられたビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す、各フレーム内の各帯域に関する差分値を計算する差分計算回路と、デジタルオーディオ信号を表すデータと該差分値を表すデータとを含むが、各フレーム内の各帯域に対して割り当てられたビット数を直接表すデータを含まないように、ビットストリームを符号化するエンコーダ回路と、ビットストリームを出力する出力回路と、を含むことができる。
【図面の簡単な説明】
【0007】
【
図1】幾つかの実施形態による符号化システムの1つの実施例のブロック図を示す。
【
図2】幾つかの実施形態による符号化システムの別の実施例のブロック図を示す。
【
図3】幾つかの実施形態による復号システムの1つの実施例のブロック図を示す。
【
図4】幾つかの実施形態による復号システムの別の実施例のブロック図を示す。
【
図5】幾つかの実施形態による、デジタルオーディオ信号の符号化と関連する量のうちのいくつかを示す。
【
図6】幾つかの実施形態による符号化/復号システムの1つの実施例のブロック図を示す。
【
図7】幾つかの実施形態によるエンコーダの1つの実施例のブロック図を示す。
【
図8】幾つかの実施形態によるデコーダの別の実施例のブロック図を示す。
【
図9】幾つかの実施形態によるエンコーダの別の実施例のブロック図を示す。
【
図10】幾つかの実施形態によるデコーダの別の実施例のブロック図を示す。
【
図11】幾つかの実施形態による、オーディオ信号を符号化するための方法の1つの実施例のフローチャートを示す。
【
図12】幾つかの実施形態による、符号化されたオーディオ信号を復号するための方法の1つの実施例のフローチャートを示す。
【
図13】幾つかの実施形態による符号化システムの1つの実施例のブロック図を示す。
【発明を実施するための形態】
【0008】
対応する参照符号は、幾つかの図全体にわたって対応する要素を示す。図面中の要素は、必ずしも縮尺どおりに描かれていない。図面に示された構成は、単なる例証に過ぎず、どのようにしても本発明の範囲を限定するものではないと解釈されたい。
【0009】
コーデックなどのオーディオ符号化及び/又は復号システムでは、各帯域に対して割り当てられたビット数を表すデータは、差分データとして符号化することができる。差分データは、各帯域に対して割り当て可能な推定ビット数との差分を表すことができ、ここで、この推定数は、ビットストリームに既に存在するデータ(例えば、符号化されたデジタルオーディオ信号)から計算することができる。差分データは、ビットストリームに存在するデータから計算された推定データと組み合わされて、各帯域に関する割り当てられた数のビットを生成することができる。差分データは、完全なビットデータ(例えば、各帯域に対して割り当てられたビット数の値を明示的に符号化する)よりも小さいサイズに圧縮することができ、これによって、ビットストリームに必要なスペースを小さくすることができる。
【0010】
図1は、幾つかの実施形態による符号化システム100の1つの実施例のブロック図を示している。
図1の構成は、符号化システムの一例に過ぎず、他の好適な構成も使用できる。
【0011】
符号化システム100は、入力としてデジタルオーディオ信号102を受け取り、ビットストリーム104を出力することができる。入力信号102及び出力信号104は、各々、ローカルに又はアクセス可能なサーバ上に保存された1又は2以上の個別ファイル及び/又はローカルで又はアクセス可能なサーバ上で生成された1又は2以上のオーディオストリームを含むことができる。
【0012】
符号化システム100は、プロセッサ106を含むことができる。符号化システム100は更に、プロセッサ106により実行可能な命令110を格納するメモリデバイス108を含むことができる。プロセッサ106が、オーディオ信号を符号化するための方法を実行するように命令110を実行することができる。オーディオ信号を符号化するためのこのような方法の例は、以下で詳細に説明される。
【0013】
図1の構成では、符号化は、ソフトウェアで実行され、典型的には、コンピューティングデバイスにおいて追加のタスクも実行できるプロセッサによって実行される。別の方法として、符号化はまた、符号化を実行するようにハードウェアに組み込まれた専用チップ又は専用プロセッサなどによって、ハードウェアで実行することもできる。このようなハードウェアベースのエンコーダの例が
図2に示されている。
【0014】
図2は、幾つかの実施形態による符号化システム200の別の実施例のブロック図を示している。
図2の構成は、符号化システムのほんの一例であり、他の好適な構成が、同様に使用できる。
【0015】
符号化システム200は、入力としてデジタルオーディオ信号202を受け取り、ビットストリーム204を出力することができる。符号化システム200は、専用符号化プロセッサ206を含むことができ、特定の符号化方法を実行するようにハードウェアに組み込まれたチップを含むことができる。オーディオ信号を符号化するためのこのような方法の例は、以下で詳細に説明される。
【0016】
図1及び
図2の例は、それぞれソフトウェア及びハードウェアで動作できる符号化システムを示している。幾つかの例において、符号化システムは、ソフトウェアとハードウェアとの組み合わせを使用することができる。以下の
図3及び4は、それぞれソフトウェア及びハードウェアで動作できる同等の復号システムを示している。同様に、復号システムはまた、ソフトウェアとハードウェアとの組み合わせを使用することもできる。
【0017】
図3は、幾つかの実施形態による復号システムの1つの実施例のブロック図を示している。
図3の構成は、復号システムのほんの一例であり、他の好適な構成が、同様に使用できる。
【0018】
復号システム300は、入力としてビットストリーム302を受け取り、復号されたデジタルオーディオ信号304を出力することができる。入力信号302及び出力信号304は、各々、ローカルに又はアクセス可能なサーバ上に保存された1又は2以上の個別ファイル及び/又はローカルで又はアクセス可能なサーバ上で生成された1又は2以上のオーディオストリームを含むことができる。
【0019】
復号システム300は、プロセッサ306を含むことができる。復号システム300は更に、プロセッサ306により実行可能な命令310を格納するメモリデバイス308を含むことができる。プロセッサ306が、オーディオ信号を復号するための方法を実行するように命令310を実行することができる。オーディオ信号を復号するためのこのような方法の例は、以下で詳細に説明される。
【0020】
図3の構成では、復号は、ソフトウェアで実行され、典型的には、コンピューティングデバイスにおいて追加のタスクも実行できるプロセッサによって実行される。別の方法として、復号はまた、符号化を実行するようにハードウェアに組み込まれた専用チップ又は専用プロセッサなどによって、ハードウェアで実行することもできる。このようなハードウェアベースのデコーダの例が
図4に示されている。
【0021】
図4は、幾つかの実施形態による復号システム400の別の実施例のブロック図を示している。
図4の構成は、復号システムのほんの一例であり、他の好適な構成が、同様に使用できる。
【0022】
復号システム400は、入力としてビットストリーム402を受け取り、復号されたデジタルオーディオ信号404を出力することができる。復号システム400は、専用復号プロセッサ406を含むことができ、特定の復号方法を実行するようにハードウェアに組み込まれたチップを含むことができる。オーディオ信号を復号するためのこのような方法の例は、以下で詳細に説明される。
【0023】
図5は、幾つかの実施形態による、デジタルオーディオ信号の符号化と関連する量のうちのいくつかを示している。ビットストリームの復号は、一般に、ビットストリームの符号化と同じ量を伴うが、数学演算が逆に行われる量を伴う。
図5に示されている量は、このような量のほんの一例であり、他の好適な量が、同様に使用できる。
図5に示されている量の各々は、
図1から4に示されているエンコーダ又はデコーダの何れかと共に使用できる。
【0024】
エンコーダは、デジタルオーディオ信号502を受け取ることができる。デジタルオーディオ信号502は、時間領域にあり、時間と共に展開するオーディオ信号振幅を表す一連の整数又は浮動小数点数を含むことができる。デジタルオーディオ信号502は、スタジオからの生放送などのストリーム(例えば、指定された開始及び/又は終了のない)の形態とすることができる。代替的に、デジタルオーディオ信号502は、サーバ上のオーディオファイル、コンパクトディスクからリッピングされた非圧縮オーディオファイル、又は非圧縮形式の曲のミックスダウンファイルなどの個別ファイル(例えば、開始及び終了と、指定された継続時間とを有する)とすることができる。
【0025】
エンコーダは、デジタルオーディオ信号502を構文解析して複数のフレーム504にすることができ、ここで、各フレーム504は、指定された数のオーディオサンプル506を含む。例えば、フレーム504は、1024個のサンプル506又は別の好適な値を含むことができる。一般に、デジタルオーディオ信号502をフレーム504にグループ化することにより、エンコーダは、明確に規定された数のサンプル506にエンコーダの処理を効率的に適用することができるようになる。幾つかの例において、このような処理は、各フレームが他のフレームと独立して処理されるように、フレームごとに異なるものとすることができる。他の例では、処理は、隣接するフレームからのサンプルデータを含むことができる。
【0026】
エンコーダは、各フレーム504のオーディオサンプル506の変換508を実行することができる。幾つかの例において、この変換は、修正離散コサイン変換(modified discrete cosine transformation)とすることができる。離散短時間フーリエ変換などの他の好適な変換が使用できる。変換508は、フレーム504内のサンプル506などの時間領域量を、フレーム504に関する周波数領域係数510などの周波数領域量に変換する。変換508は、各フレーム504に関する複数の周波数領域係数510を生成することができる。周波数領域係数510は、特定の周波数の信号がフレーム内にどの程度存在するかを記述するものである。
【0027】
幾つかの例において、変換508によって生成される周波数領域係数510の数は、1024などのフレーム内のサンプル506の数に等しいとすることができる。幾つかの例において、時間領域フレームにおける重複が存在することができる。例えば、修正離散コサイン変換を計算するために、時間領域フレームは、2048個のサンプルのうちの1024個のサンプルが隣接フレームからのものある状態で合計2048個のサンプルを使用することができる。この特定の例では、この変換は、隣接フレームからの1024個の別のサンプルを使用できるにもかかわらず、フレームサイズは、1024サンプルとみなすことができる。
【0028】
エンコーダは、各フレーム504に関する複数の周波数領域係数510を各フレーム504に関する複数の帯域512に分割することができる。幾つかの例において、フレーム504あたり22個の帯域512が存在することができるが、別の値が、同様に使用できる。各帯域512は、フレーム504内の周波数510の範囲を表して、全ての周波数範囲を連結したものが、フレーム504内で表される全ての周波数を含むことができるようになる。
【0029】
コーデックの一般的な目標は、データサイズが制限されている場合に、元の信号を最適に表することである。データサイズは、符号化されたファイルの特定のデータ転送速度又はビットレートとして表すことができる。例えば、データ転送速度は、1411kbps(キロビット毎秒)、320kbps、256kbps、192kbps、160kbps、128kbps、又は別の値を含むことができる。一般に、データ転送速度が高いほど、フレームの表現は、より正確になる。
【0030】
エンコーダは、各フレーム内の各帯域に対して指定された数のビット514を割り当てることができる。幾つかの例において、エンコーダは、比較的大量の周波数成分が存在する帯域に対して、これらの周波数成分を表すのに比較的多くの数のビットを割り当てることができる。比較的少ない周波数成分が存在する帯域の場合には、エンコーダは、これらの周波数成分を表すのに比較的少数のビットを割り当てることができる。一般に、特定の帯域に割り当てられるビット数が多いほど、この特定の帯域における周波数の表現はより正確になる。エンコーダは、ビット割当量を増加させる精度と、フレームごとに割り当てられるビット数に上限を与えることができるデータ転送速度との間のバランスをとることができる。
【0031】
特定のフレーム内の各帯域に対して割り当てられるビット数514は、ビット割り当て曲線と呼ばれることがある整数のベクトルとして表すことができる。フレーム504あたり22個の帯域512が存在する幾つかの例において、各フレーム504に関するビット割り当て曲線は、22値ベクトルとすることができる。
【0032】
デコーダがビットストリームを適切に復号するために、デコーダは、ビットストリームから各フレームに関するビット割り当て曲線を抽出する必要がある。従って、エンコーダは、ビット割り当て曲線における情報がビットストリームに含まれていることを保証する必要がある。
【0033】
1つの可能性は、エンコーダが、各フレームを有するオーディオ情報と共に各フレームに関するビット割り当て曲線を符号化することである。具体的には、エンコーダは、各フレーム内の各帯域に対して割り当てられたビット数を直接表すデータを含むようにビットストリームを符号化することができる。フレームあたり22個の帯域が存在する例では、エンコーダは、特定のフレームに関するオーディオデータ内で、それに隣接して、又はその近くで、この特定のフレームに関する完全な22個の整数値ベクトルを符号化することができる。
【0034】
ビット割り当て曲線を直接符号化することの欠点は、これを行うことにより、比較的大量のスペースがビットストリーム内で占有される場合があることである。フレームあたり22個の帯域が存在する例に関して、フレームごとの22個の整数が、ビットストリーム内のスペースを占有する場合があり、それ以外の場合には、このスペースは、オーディオ信号を符号化するのに使用することができる。このような符号化及び復号システムの例が、
図6に示されている。
【0035】
ビット割り当て曲線を直接符号化することに対する改良策は、ビット割り当て曲線の完全なビットデータを直接符号化することなく、代わりに、差分データをビットストリームに符号化することである。この差分データは、ビットストリームに既に存在するデータから計算された推定データと組み合わされた場合に、完全なビットデータをもたらすことができる。差分データは、完全なビットデータよりも小さいサイズに圧縮でき、これによって、ビットストリームに必要なスペースが削減できる。幾つかの例において、差分データは、幾つかのゼロ値を含むベクトルを表すことができ、効率的に圧縮できる。これらの改良された符号化及び復号システムの例が、
図7から10に示されている。
【0036】
推定データは、ビットストリームに既に存在するデータから形成することができる。幾つかの例において、推定データは、各フレームの各帯域の計算され量子化されたノルムから得ることができる。量子化されたノルムは、ビットストリーム内に直接符号化でき、各フレーム内の各帯域に対して割り当て可能なビット数のおおよその推定値を計算するのに使用することができる。以下に詳述するように、各量子化ノルムは、帯域における周波数領域係数から導出され(得られ)(derived)複数の指定値のうちの1つに等しくなるように量子化された値を有することができる。
【0037】
幾つかの例において、推定データは更に、ビットストリームに符号化できる1又は2以上のパラメータを含むことができる。
【0038】
幾つかの例において、これらのパラメータは、ビット割り当て曲線の多値ベクトルと異なる構造のものとすることができる。例えば、勾配(slope)は、単一のスカラー値とすることができる。好適なパラメータの一例は、特定のフレーム内の帯域にわたる勾配(ビット単位)対周波数を含むことができる。
【0039】
幾つかの例において、パラメータのうちの1つは、ビットストリームに直接符号化され複数のフレームに関する推定値として作用することができる基準ビット割り当て曲線( reference bit-allocation curve)を含むことができる。これらの例に関して、単一の基準ビット割り当て曲線が、一度に1つずつ複数の差分値と組み合わされて、デジタルオーディオ信号内の複数のフレームに適用される複数のビット割り当て曲線を生成することができる。1つのビット割り当て曲線(又はデジタルオーディオ信号内の所与の期間の1つのビット割り当て曲線)の符号化は、フレームごとのビット割り当て曲線の符号化よりも小さいスペースを使用することができる。
【0040】
以下の段落は、
図5に示されている様々な量をどのようにして計算するかについての詳細な例を提示する。この計算は、
図1から4に示されているプロセッサの何れかによって、又は別の好適なプロセッサによって実行することができる。この計算は、ほんの一例であり、他の好適な計算が同様に実行できる。
【0041】
エンコーダは、以下のようにビットストリーム(例えば、デジタルオーディオ信号)を符号化することができる。
【0042】
入力信号は、各フレームが固定数のオーディオサンプルを含むフレームに分割される。幾つかの例において、オーディオサンプルは連続している。幾つかの例において、或るフレームに対する下流処理は、任意選択で、隣接フレームからのサンプルを使用することができる。
【0043】
ビット割当量Cが、各フレームに割り当られ、このビット割当量は、フレームを記述するのに使用できるビット数である。このビット割当量は、フレームの相対的な重要性についてのインジケータなどの追加の考慮事項を任意選択で用いて、全体的に規定されたビットレートから少なくとも部分的に導出することができる。
【0044】
フレームごとに、変換が適用されて、オーディオサンプルが周波数領域に変換される。好適な変換は、修正離散コサイン変換を含むことができるが、他の変換が、同様に使用できる。この変換から、以下に従って係数x
iからなるベクトルXが形成される。
ここで、各係数x
iは、特定の周波数でのデジタルオーディオ信号の強度を表す。
フレームごとに、ベクトルXが、以下に従ってM個の帯域B
iに分割される。
【0045】
各帯域B
iは、以下のような、XからのN
i個の係数のサブシーケンスを含む。
ここで、k
iは、N
iの長さを有する帯域B
iの開始座標である。
【0046】
各帯域B
iのユークリッド(又はL
2)ノルムw
iが、以下に従って計算される。
ノルムw
iからなるベクトルwが、以下に従って形成される。
【0047】
【0048】
以下に従って、残りのビット割当量C’が、この帯域にわたって分配され、c
iビットが、帯域B
iに割り当てられ、ここで、i=0、1、...、M-1である。
ビット割り当てベクトルcが、以下に従って形成される。
【0049】
上述のように、比較的大量のスペースが、ビット割り当てベクトルcをビットストリームに直接書き込むのに必要となる。ビット割り当てベクトルcをビットストリームに直接書き込むことに対する改良策として、代わりに、差分ベクトルΔcを表すデータが書き込まれる。このことは、デコーダの方法論の概要に従って、以下で詳細に説明される。
【0050】
【0051】
【0052】
を記述するのに最大でc
iビットを使用して、ビットストリームに符号化される。
【0053】
デコーダは、エンコーダの順序を逆にした同様の順序でデジタルオーディオ信号を復号することができる。
【0054】
上述のように、ビット割り当てベクトル
は、ビットストリームに直接書き込むことができないため、デコーダは、ビット割り当てベクトルcをビットストリームから直接読み取ることができない。代わりに、デコーダは、デコーダの概要の完了後、以下で説明するように、ビットストリームから差分ベクトルΔcを読み取って、この差分ベクトルΔcからビット割り当てベクトルcを計算することができる。
【0055】
【0056】
【0057】
逆変換が、周波数領域表現X’に適用されて、フレームに対して復元されたオーディオサンプルが得られる。
【0058】
上述したように、エンコーダは、知覚的に重要なオーディオ信号部分がより多くのビットを割り当てられるように、フレーム内のビットを割り当てるが、知覚し難い部分(例えば、マスキング現象に起因)は、より少ないビットを使用して符号化することができる。ビット割り当て(ビット割り当て曲線と呼ばれる)を決定するために、エンコーダは、量子化されていないスペクトル表現X、量子化されていない帯域ノルムw
i、各帯域の内部構成に関する詳細などの、全ての利用可能な情報を使用することができる。これらの情報
復号してそれを復元する前に、いくつのビットが各帯域に割り当てられているかを認識する必要がある。その結果、ビット割り当てベクトルcは、ビットストリームに直接書き込まれないことがあるので、デコーダは、ビット割り当てベクトルcを正確に復元するための方法を必要とする。
【0059】
ビット割り当て曲線の符号化された記述又は表現は、圧縮されたビットストリームの一部であるため、この記述又は表現は、正規化された帯域を記述するのに利用可能なビット割当量を使い込む場合がある。エンコーダは、値ci自体を決定するときに、ビット割り当てベクトルcを記述するコストを考慮することができる。従って、ビット割り当てベクトルcの記述は、復元されたオーディオの品質に影響を与える場合がある。この記述が可能な限り効率的であり、この記述が可能な限り少ないビット数を占めることが望ましい。
【0060】
ビット割り当てベクトルcを直接ビットストリームに符号化することは、必要以上のビットを占める場合があるため、本明細書で説明する技法は、既にビットストリームに符号
ビット割り当ての記述とは無関係にビットストリームに符号化されるため、
自由である。
【0061】
使用して、エンコーダによるビット割り当ての計算を模擬することを試みることができる。デコーダは、エンコーダが利用できる他の情報の影響を無視することができる。このことは、真のビット割り当てcのおおよその近似値として作用できる推定ビット割り当て
をもたらすことができる。
【0062】
デコーダが利用できる全ての情報は、エンコーダにも利用可能であるので、エンコーダは、推定ビット割り当てc’を生成することができる。エンコーダは、以下に従って差分ベクトルΔcを形成することにより、真のビット割り当てcを記述することができる。
【0063】
要約すると、エンコーダは、実際の帯域ノルムベクトルw及びその他の情報を使用して
使用して推定ビット割り当てベクトルc’を計算でき、差分ベクトルΔc=c-c’を計算してそれを符号化してそれをビットストリームに書き込むことができる。同様に、
ベクトルc’を計算でき、ビットストリームから差分ベクトルΔc=c-c’を読み取ってそれを復号でき、推定ビット割り当てベクトルc’と差分ベクトルΔcとの和からビット割り当てベクトルcを計算することができる。
【0064】
推定ビット割り当てベクトルc’が、実際のビット割り当てベクトルcに類似している場合には、差分ベクトルΔcの符号化は、ビット割り当てベクトルcの符号化よりも非常に少ないビットを利用することができる。このビットの節約は、差分ベクトルΔcの多くのエントリがゼロ又は他の比較的小さな整数であり得るということから生じる。エンコーダ及びデコーダは、小さな大きさの整数に、より短い符号語を使用し、より大きい大きさの整数にはより長い符号語を使用することができ、これによって、差分ベクトルΔcに対する有意の圧縮が達成できる。
【0065】
このような符号の例は、Golomb符号である。Golomb符号は、整数をゼロ及び1からなるストリングとして符号化することができる。例えば、Golomb符号は、値0をストリング01として符号化し、値-1をストリング11として符号化し、値+1をストリング01として符号化し、値-2をストリング101として符号化し、値+2をストリング0001として符号化し、値-3をストリング1001として符号化し、値+3をストリング00001として符号化することなどが可能である。また、他の好適な符号が同様に使用できる。
【0066】
要約すると、エンコーダは、実際の帯域ノルムベクトルw及びその他の情報を使用してビット割り当てベクトルcを計算でき、量子化された帯域ノルムベクトルのみを使用して推定ビット割り当てベクトルc’を計算することができる。次に、エンコーダは、差分ベクトルΔc=c-c’を計算してそれを符号化してそれをビットストリームに書き込む
使用して推定ビット割り当てベクトルc’を計算でき、ビットストリームから差分ベクトルΔc=c-c’を読み取ってそれを復号することができる。次に、デコーダは、推定ビット割り当てベクトルc’と差分ベクトルΔcとの和からビット割り当てベクトルcを計算することができる。幾つかの例において、エンコーダは、差分ベクトルΔcのエントリが小さい整数である場合に、より短い符号化を使用し、これらのエントリがより大きい整数である場合に、より長い符号化を使用することができる。幾つかの例において、全てゼロのエントリを有する差分ベクトルΔcは、1ビットのみを使用して符号化することができる。
【0067】
任意選択の代替策として、エンコーダ及びデコーダは、ビット割り当てベクトルcのパラメータ化された記述を使用することができる。例えば、ビット割り当てベクトルcを明示的に符号化する代わりに、エンコーダは、パラメータ
のベクトルを導出してそれを記述することができる。エンコーダ及びデコーダは、決定論的計算により、パラメータpからビット割り当てベクトルcを導出することができる。
使用し、エンコーダのみが利用できデコーダが利用できない他の情報を無視して、推定パラメータベクトル
を計算することができる。次に、エンコーダは、差分ベクトルをΔp=p-p’として形成することができる。エンコーダは、差分ベクトルΔpを符号化してそれをビットストリームに書き込むことができる。デコーダは、このビットストリームから差分ベクトルΔpを復号することができる。デコーダは、推定パラメータベクトルp’と差分ベクトルΔpとの和からパラメータpを計算することができる。
【0068】
図6は、幾つかの実施形態による符号化/復号システム600の1つの実施例のブロック図を示している。後述するように、
図6の符号化/復号システムは、領域616における非効率性を含む場合がある。この非効率性は、後述し
図7から10に示されている構成で改善される。
【0069】
システム600は、ビットストリーム602を中心に展開される。エンコーダ604は、何らかの利用可能な情報源からの、エンコーダが有する何らかの情報を使用して、デジタルオーディオ信号を符号化してビットストリーム602にすることができる。デコーダ606は、典型的に、エンコーダ604から切り離されており、ビットストリーム602に格納された情報のみを使用して、デジタルオーディオ信号を復号することができる。結果的に、エンコーダ604は、デコーダ606がデジタルオーディオ信号を適切に復号するのに必要な全ての情報をビットストリーム602が有することを保証する必要がある。
【0070】
エンコーダ604は、帯域ノルム608を生成することができる。各帯域ノルム608は、この帯域における周波数領域係数から導出された値を有することができる。エンコーダ604は、帯域ノルム608を量子化して、量子化された帯域ノルム610を生成することができる。各帯域ノルムは、複数の指定値のうちの1つに等しくなるように量子化することができる。エンコーダ604は、量子化された帯域ノルム610を表すデータをビットストリーム602に書き込むことができる。デコーダ606は、量子化された帯域ノルムをビットストリーム602から抽出することができる。
【0071】
エンコーダ604は、フレームごとに各帯域にビットを割り当てることができる。割り当てを行う際に、エンコーダは、任意選択で帯域ノルム608を含み、任意選択でデジタルオーディオ信号の一部分を表す周波数信号612を含む、何らかの利用可能な情報源からの情報を使用することができる。エンコーダは、特定のフレームに対してビット割り当て曲線614を形成することができ、このビット割り当て曲線は、いくつのビットが特定のフレーム内の各帯域に対して割り当てられるかを表す。
【0072】
図6の構成では、エンコーダ604は、ビット割り当て曲線614を直接表すデータをビットストリーム602に書き込むことができ、デコーダ606は、ビット割り当て曲線614をビットストリーム602から直接抽出することができる。上述したように、ビット割り当て曲線614をビットストリーム602に直接格納することは、非効率的である場合がある。この非効率性は、
図6における領域616として示されている。
図7から10に示されているシステム構成は、この非効率性を改善することができる。
【0073】
エンコーダ604は、周波数信号612を正規化して量子化して、周波数信号612を表すデータをビットストリーム602に書き込むことができる。デコーダ606は、正規化されて量子化された周波数データをビットストリーム602から読み取ることができる。デコーダ606は、次に、周波数データを逆量子化して逆正規化し、次に、逆変換を実行して周波数データを時間領域オーディオデータに変換することができる。
【0074】
図7は、幾つかの実施形態によるエンコーダ700の1つの実施例のブロック図を示している。このエンコーダ700及びその対応するデコーダ(
図8)は、
図6のシステムの非効率性を改善することができる。
【0075】
エンコーダ700は、上述したように、量子化された帯域ノルム704を形成することができ、やはり上述したように、この量子化された帯域ノルム704を表すデータをビットストリーム702に書き込むことができる。更に、エンコーダ700は、ビット割り当て推定器706を適用して、推定ビット割り当て曲線708を形成することができる。デコーダ(
図8)は、同じビット割り当て推定器を量子化された帯域ノルムに適用でき、従って、ビットストリーム702の読み取りのみから推定ビット割り当て曲線708を正確に再現できることに留意されたい。
【0076】
エンコーダ700は、心理音響モデルなどを含む何らかの利用可能な情報源710からのデータを使用して、ビット割り当て712を実行してビット割り当て曲線714を生成することができる。
図7では、ビット割り当て曲線714は、エンコーダが実際にフレーム内の帯域に適用する曲線であるということから、この曲線は、「実際の」ビット割り当て曲線と呼ばれる。
【0077】
エンコーダは、実際のビット割り当て曲線714と推定ビット割り当て曲線708との間の差分716を計算して、差分曲線718を形成することができる。上述したように、差分曲線718は、実際のビット割り当て曲線714の直接表現よりも効率的に符号化できる(例えば、ビットストリーム内のより小さいスペースを占有する)多くのゼロ又は比較的小さい整数を含むことができる。
【0078】
図8は、幾つかの実施形態によるデコーダ800の別の実施例のブロック図を示している。このデコーダ800及びその対応するエンコーダ(
図7)は、
図6のシステムの非効率性を改善することができる。
【0079】
デコーダ800は、ビットストリーム802から、量子化された帯域ノルム804を抽出することができ、エンコーダで使用されるもの(
図7における要素706)と同じビット割り当て推定器806を使用することができ、従って、エンコーダで使用されるもの(
図7における要素708)と同じ推定ビット割り当て曲線808を正確に再現することができる。
【0080】
デコーダ800は、ビットストリーム802から差分曲線810を抽出することができる。デコーダ800は、次に、推定ビット割り当て曲線808と差分曲線810とを加算812して、復元されたビット割り当て曲線814を形成でき、このビット割り当て曲線は、エンコーダ700(
図7)によって使用される実際のビット割り当て曲線714に正確にマッチするものである。
【0081】
差分曲線(
図7における718、及び
図8における810)は、ビット割り当て曲線に対する数値の補正に対応することができる。例えば、ビット割り当て曲線が、22個の整数からなるベクトルである場合に、差分曲線(圧縮前)は、同様に22個の整数からなるベクトルとすることができる。
【0082】
図7及び
図8の差分曲線の代わりに又はそれに加えて使用できる代替策として、エンコーダ及びデコーダは、推定調整値を使用することができ、この推定調整値は、各々がフレーム内の複数の帯域に影響を与えることができる1又は2以上のパラメータを含むことができる。パラメータの例は、周波数単位ごとのビット単位での勾配とすることができる。このような勾配は、或る帯域に特定の数のビットを与えることができ、このビット数は、周波数の関数として帯域ごとに異なるものとすることができる。他の好適なパラメータが、同様に使用できる。
【0083】
図9は、幾つかの実施形態によるエンコーダ900の別の実施例のブロック図を示している。このエンコーダ900及びその対応するデコーダ(
図10)は、
図6のシステムの非効率性を改善することができる。
【0084】
エンコーダ900は、上述したように、量子化された帯域ノルム904を形成することができ、やはり上述したように、この量子化された帯域ノルム904を表すデータをビットストリーム902に書き込むことができる。更に、エンコーダ900は、調整値推定器906を適用して、推定調整値908を形成することができる。デコーダ(
図10)は、同じ調整値推定器を量子化された帯域ノルムに適用でき、従って、ビットストリーム902の読み取りのみから推定調整値908を正確に再現できることに留意されたい。
【0085】
エンコーダ900は、上述したように、ビット割り当て910を実行して、「実際の」ビット割り当て曲線912を生成することができる。追加的に、エンコーダ900は、実際のビット割り当て曲線912をパラメータ化して、目標(例えば、所望の)調整値914及び/又は勾配916を形成することができる。エンコーダ900は、勾配916及び/又は目標調整値を表すデータをビットストリームに書き込むことができる。エンコーダ900は、目標調整値914と推定調整値908との間の差分918を利用して、差分曲線920を形成することができる。エンコーダ900は、この差分曲線920を表すデータをビットストリームに書き込むことができる。
【0086】
図10は、幾つかの実施形態によるデコーダ1000の別の実施例のブロック図を示している。このデコーダ1000及びその対応するエンコーダ(
図9)は、
図6のシステムの非効率性を改善することができる。
【0087】
デコーダ1000は、ビットストリーム1002から、量子化された帯域ノルム1004を抽出することができ、エンコーダで使用されるもの(
図9における要素906)と同じ調整値推定器1006を使用することができ、従って、エンコーダで使用されるもの(
図9における要素908)と同じ推定調整値1008を正確に再現することができる。
【0088】
デコーダ1000は、ビットストリーム1002から差分曲線1010を抽出することができる。次に、デコーダ1000は、推定調整値1008と差分曲線1010とを加算1012して目標調整値1014を形成することができる。デコーダ1000は、ビットストリーム1002から勾配1016を抽出して、この勾配1016を目標調整値1014と結合1018して、復元されたビット割り当て曲線1020を形成でき、このビット割り当て曲線は、エンコーダ900(
図9)によって使用される実際のビット割り当て曲線912に正確にマッチするものである。
【0089】
図11は、幾つかの実施形態による、ビットストリーム(例えば、オーディオ信号)を符号化するための方法1100の例のフローチャートを示している。方法1100は、
図1又は
図2の符号化システム100又は200によって、或いは任意の他の好適な符号化システムによって実行することができる。方法1100は、オーディオ信号を符号化するための方法のほんの一例であり、他の好適な符号化方法が、同様に使用できる。
【0090】
動作1102において、符号化システムは、デジタルオーディオ信号を受け取ることができる。
【0091】
動作1104において、符号化システムは、デジタルオーディオ信号を構文解析して複数のフレームにすることができ、各フレームは、指定された数のオーディオサンプルを含む。
【0092】
動作1106において、符号化システムは、各フレームのオーディオサンプルの変換を行って、各フレームに関する複数の周波数領域係数を生成することができる。
【0093】
動作1108において、符号化システムは、各フレームに関する複数の周波数領域係数を各フレームに関する複数の帯域に分割することができる。
【0094】
動作1110において、符号化システムは、各フレーム内の各帯域に対して指定された数のビットを割り当てることができる。
【0095】
動作1112において、符号化システムは、各フレーム内の各帯域に関する差分値を計算することができ、この差分値は、各フレーム内の各帯域に対して割り当てられたビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す。
【0096】
動作1114において、符号化システムは、デジタルオーディオ信号を表すデータと差分値を表すデータとを含むが、各フレーム内の各帯域に対して割り当てられたビット数を直接表すデータを含まないように、ビットストリームを符号化することができる。
【0097】
動作1116において、符号化システムは、ビットストリームを出力することができる。
【0098】
幾つかの例において、方法1100は更に、任意選択で、各ノルムが、帯域における周波数領域係数から導出され複数の指定された値のうちの1つに等しくなるように量子化された値を有する、各フレームの各帯域の量子化されたノルムを計算するステップと、この量子化されたノルムに基づいて、各フレーム内の各帯域に対して割り当て可能な推定ビット数を決定するステップと、量子化されたノルムを表すデータをビットストリームに符号化するステップとを含むことができる。
【0099】
幾つかの例において、各フレーム内の各帯域に対して割り当てられる推定ビット数は、量子化されたノルムのみに基づいて決定することができる。
【0100】
幾つかの例において、特定のフレーム内の各帯域に対して割り当てられる推定ビット数は、この特定のフレームに関する量子化されたノルムのみに基づいて決定することができる。
【0101】
幾つかの例において、特定のフレーム内の各帯域に対して割り当てられる推定ビット数は、デジタルオーディオ信号内の少なくとも1つの他のフレームに関する量子化されたノルムに少なくとも部分的に基づいて決定することができる。
【0102】
幾つかの例において、方法1100は更に、任意選択で、少なくとも1つの目標パラメータを決定するステップと、少なくとも部分的にこの少なくとも1つの目標パラメータから、各フレーム内の各帯域に対して割り当て可能な推定ビット数を決定するステップと、少なくとも1つの目標パラメータを表すデータをビットストリームに符号化するステップと、を含むことができる。
【0103】
幾つかの例において、少なくとも1つの目標パラメータは、各帯域に対して割り当て可能な基準ビット数(reference number of bits)を含むことができる。幾つかの例において、方法1100は更に、任意選択で、デジタルオーディオ信号内の複数フレームに対して、各帯域に対して割り当て可能な基準ビット数に等しくなるように、各帯域に対して割り当て可能な推定ビット数を設定するステップと、各帯域に対して割り当て可能な基準ビット数を表すデータをビットストリームに符号化するステップとを含むことができる。
【0104】
幾つかの例において、少なくとも1つの目標パラメータは、勾配を含む。
【0105】
幾つかの例において、変換は、修正離散コサイン変換である。
【0106】
幾つかの例において、各フレームは、正確に1024個のサンプルを含む。
【0107】
幾つかの例において、それぞれの複数の周波数領域係数における周波数領域係数の数は、各フレーム内のオーディオサンプルの指定された数に等しい。
【0108】
幾つかの例において、各フレームに関する複数の周波数領域係数は、正確に1024個の周波数領域係数を含む。
【0109】
幾つかの例において、各フレームに関する複数の帯域は、正確に22個の帯域を含む。
【0110】
幾つかの例において、符号化システムは、コーデックに含まれる。
【0111】
上記の例の各々は、任意選択で、任意の組み合わせで、他の例のうちの1つ又は幾つかの他の例と組み合わせることができる。
【0112】
図12は、幾つかの実施形態による、ビットストリーム(例えば、符号化されたオーディオ信号)を復号するための方法1200の例のフローチャートを示している。方法1200は、
図3又は
図4の復号システム300又は400によって、或いは任意の他の好適な復号システムによって実行することができる。方法1200は、ビットストリーム(例えば、符号化されたオーディオ信号)のためのほんの一方法であり、他の好適な復号方法が、同様に使用できる。
【0113】
動作1202において、復号システムは、複数の帯域に各々が分割された複数のフレームを含むビットストリームを受け取ることができる。
【0114】
動作1204において、復号システムは、このビットストリームから、各フレーム内の各帯域の量子化されたノルムを抽出することができる。
【0115】
動作1206において、復号システムは、この抽出された量子化ノルムに基づいて、各フレーム内の各帯域に対して割り当て可能な推定ビット数を決定することができる。
【0116】
動作1208において、復号システムは、各フレームの各帯域に対して、ビットストリームから差分値を抽出することができ、この差分値は、各フレーム内の各帯域に対して割り当てられるビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す。
【0117】
動作1210において、復号システムは、差分値を、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数と組み合わせて、各フレーム内の各帯域に対して割り当てられるビット数を決定することができる。
【0118】
動作1212において、復号システムは、各フレーム内の各帯域に決定された数のビットを割り当てることができる。
【0119】
動作1214において、復号システムは、各フレーム内の各帯域に関する決定された数のビットを使用してビットストリームを復号して、周波数領域で復号されたデジタルオーディオ信号を生成することができる。復号システムは更に、任意選択で、周波数領域での復号されたデジタルオーディオ信号に逆変換を適用して、時間領域での復号されたデジタルオーディオ信号を得ることができる。
【0120】
幾つかの例において、各フレーム内の各帯域に対して割り当てられる推定ビット数は、量子化されたノルムのみに基づいて決定することができる。
【0121】
幾つかの例において、特定のフレーム内の各帯域に対して割り当てられる推定ビット数は、特定のフレームに関する量子化されたノルムのみに基づいて決定することができる。
【0122】
幾つかの例において、特定のフレーム内の各帯域に対して割り当てられる推定ビット数は、デジタルオーディオ信号内の少なくとも1つの他のフレームに関する量子化されたノルムに少なくとも部分的に基づいて決定される。
【0123】
図13は、幾つかの実施形態による符号化システム1300の1つの実施例のブロック図を示している。
【0124】
受信器回路1302は、デジタルオーディオ信号を受け取ることができる。
【0125】
フレーマ回路(framer circuit)1304は、デジタルオーディオ信号を構文解析して複数のフレームにすることができ、各フレームは、指定された数のオーディオサンプルを含む。
【0126】
変換器回路1306は、各フレームのオーディオサンプルの変換を行って、各フレームに関する複数の周波数領域係数を生成することができる。
【0127】
周波数帯域分割器回路(frequency band partitioner circuit)1308は、各フレームに関する複数の周波数領域係数を各フレームに関する複数の帯域に分割することができる。
【0128】
フレームビット割り当て回路1310は、各フレーム内の各帯域に対して指定された数のビットを割り当てることができる。
【0129】
差分計算回路1312は、各フレーム内の各帯域に関する差分値を計算することができ、この差分値は、各フレーム内の各帯域に対して割り当てられたビット数と、各フレーム内の各帯域に対して割り当て可能な対応する推定ビット数との間の差分を表す。
【0130】
エンコーダ回路(encoder circuit)1314は、デジタルオーディオ信号を表すデータと差分値を表すデータとを含むが、各フレーム内の各帯域に対して割り当てられたビット数を直接表すデータを含まないように、ビットストリームを符号化することができる。
【0131】
出力回路1316は、ビットストリームを出力することができる。
【0132】
本明細書で説明するもの以外の多くの他の変形形態は、本明細書から明らかであろう。例えば、実施形態によっては、本明細書で説明した何らかの方法及びアルゴリズムの特定の動作、事象、又は機能は、異なる順序で実行することができ、追加、統合、又は完全に省略することができる(従って、ここで説明する全ての動作又は事象が、本方法及びアルゴリズムの実施に必要であるとは限らない)。更に、特定の実施形態において、動作又は事象は、連続的にではなく同時に、例えば、マルチスレッド処理、割り込み処理、又はマルチプロセッサ若しくはプロセッサコアによって、或いは他の並列アーキテクチャ上で実行することができる。加えて、様々なタスク又は処理は、一緒に機能することができる異なるマシン及びコンピューティングシステムによって実行することができる。
【0133】
本明細書に開示する実施形態に関連して説明した様々な例示的論理ブロック、モジュール、方法、及びアルゴリズムの処理及び順序は、電子ハードウェア、コンピュータソフトウェア、又はそれら両方の組み合わせとして実装することができる。ハードウェアとソフトウェアとのこの互換性を明確に説明するために、様々な例示的コンポーネント、ブロック、モジュール、及び処理の動作は、上記では一般的にそれらの機能性に関して説明されている。このような機能性がハードウェアとして実装されるか又はソフトウェアとして実装されるかは、特定の用途、及びシステム全体に課された設計上の制約条件に依存する。説明した機能性は、特定の用途の各々に関して異なる方法で実施できるが、このような実施の決定が、本明細書の範囲からの逸脱を生じさせると解釈すべきでない。
【0134】
本明細書に開示する実施形態に関連して説明する様々な例示的論理ブロック及びモジュールは、汎用プロセッサ、処理デバイス、1又は2以上の処理デバイスを有するコンピューティングデバイス、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)又は他のプログラム可能な論理デバイス、離散ゲート若しくはトランジスタ論理回路、離散ハードウェアコンポーネント、又は本明細書に記載の機能を実行するように設計されたそれらの任意の組み合わせなどのマシンによって実装又は実行することができる。汎用プロセッサ及び処理デバイスは、マイクロプロセッサとすることができるが、代替形態では、プロセッサは、コントローラ、マイクロコントローラ、ステートマシン、これらの組み合わせ、又は同様のものとすることができる。プロセッサは、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連動する1又は2以上のマイクロプロセッサ、又は他の任意のこのような構成などの、コンピューティングデバイスの組み合わせとして実装することもできる。
【0135】
本明細書に記載のシステム及び方法の実施形態は、多くのタイプの汎用又は専用コンピューティングシステム環境又は構成内で動作可能である。一般に、コンピューティング環境は、幾つかの例を挙げると、限定されるものではないが、1又は2以上のマイクロプロセッサ、メインフレームコンピュータ、デジタル信号プロセッサ、携帯用コンピューティングデバイス、パーソナルオーガナイザ、デバイスコントローラ、電気製品内部の計算エンジン、携帯電話、デスクトップコンピュータ、モバイルコンピュータ、タブレットコンピュータ、スマートフォン、及び組込型コンピュータを備えた電気製品に基づくコンピュータシステムを含む任意のタイプのコンピュータシステムを含むことができる。
【0136】
このようなコンピューティングデバイスは、通常、限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドコンピューティングデバイス、ラップトップ又はモバイルコンピュータ、携帯電話及びPDAなどの通信デバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、オーディオ又はビデオメディアプレーヤなどを含む、少なくとも何らかの最低限の計算能力を有するデバイスに見つけることができる。幾つかの実施形態において、コンピューティングデバイスは、1又は2以上のプロセッサを含むことになる。各プロセッサは、デジタル信号プロセッサ(DSP)、超長命令語(VLIW)、又は他のマイクロコントローラなどの特殊なマイクロプロセッサとすること、或いは、マルチコアCPU内の特殊なグラフィックス処理ユニット(GPU)ベースのコアを含む、1又は2以上の処理コアを有する従来型中央処理ユニット(CPU)とすることができる。
【0137】
本明細書に開示する実施形態に関連して説明した方法、処理、又はアルゴリズムの処理動作は、ハードウェアで直接、プロセッサによって実行されるソフトウェアモジュールで、又はこれら2つの何れかの組み合わせで具現化することができる。ソフトウェアは、コンピューティングデバイスがアクセスできるコンピュータ可読媒体に含めることができる。コンピュータ可読媒体は、取り外し可能、取り外し不可能の何れかである揮発性媒体及び不揮発性媒体の両方、又はこれらの何れかの組み合わせを含む。コンピュータ可読媒体は、コンピュータ可読命令又はコンピュータ実行可能命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納するのに使用される。コンピュータ可読媒体は、限定されるものではなく例として、コンピュータ記憶媒体及び通信媒体を含むことができる。
【0138】
コンピュータストレージ媒体は、限定されるものではないが、Bluray(登録商標)ディスク(BD)、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、フロッピーディスク、テープドライブ、ハードドライブ、光学ドライブ、ソリッドステートメモリデバイス、RAMメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、フラッシュメモリ、又は他のメモリ技術、磁気カセット、磁気テープ、磁気ディスクストレージ、又は他の磁気ストレージデバイス、或いは所望の情報を格納するのに使用可能で1又は2以上のコンピューティングデバイスによってアクセス可能な何らかの他のデバイスなどの、コンピュータ可読媒体又はマシン可読媒体又はストレージデバイスを含む。
【0139】
ソフトウェアは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能ディスク、CDROM、或いは当該技術で公知の非一時的コンピュータ可読ストレージ媒体、メディア、又は物理コンピュータストレージの何らかの他の形態に存在することができる。例示的なストレージ媒体は、プロセッサがストレージ媒体から情報を読み出してそれに情報を書き込むことができるように、プロセッサに結合することができる。代替例では、ストレージ媒体は、プロセッサと一体化することができる。プロセッサ及びストレージ媒体は、特定用途向け集積回路(ASIC)に存在することができる。ASICは、ユーザ端末内に存在することができる。代替的に、プロセッサ及びストレージ媒体は、ユーザ端末内の個別コンポーネントとして存在することができる。
【0140】
本明細書で使用される「非一時的」という語句は、「永続的又は長寿命」を意味する。「非一時的コンピュータ可読媒体」という語句は、任意の及び全てのコンピュータ可読媒体を含み、唯一の例外は、一時的な伝搬信号である。この語句は、限定されるものではなく例として、レジスタメモリ、プロセッサキャッシュ、及びランダムアクセスメモリ(RAM)などの非一時的コンピュータ可読媒体を含む。
【0141】
「オーディオ信号」という語句は、物理的な音を表す信号である。
【0142】
また、コンピュータ可読命令又はコンピュータ実行可能命令、データ構造、プログラムモジュールなどのような情報の保持は、1又は2以上の変調データ信号、電磁波(搬送波など)、又は他の伝送機構若しくは通信プロトコルを符号化するための様々な通信媒体を使用して実現することもでき、何らかの有線又は無線情報配信機構を含む。一般に、これらの通信媒体は、情報又は命令を信号内に符号化するような方法で設定又は変更される信号特性のうちの1又は2以上を有する信号を参照する。例えば、通信媒体は、1又は2以上の変調データ信号を搬送する有線ネットワーク又は直接有線接続などの有線媒体と、音響、無線周波数(RF)、赤外線、レーザなどの無線媒体と、1又は2以上の変調データ信号又は電磁波を送信、受信、又は送受信するための他の無線媒体とを含む。上記の何れかの組み合わせは、同様に、通信媒体の範囲内に含まれるはずである。
【0143】
更に、本明細書に記載の符号化及び復号システム及び方法の様々な実施形態の一部又は全部を具現化するソフトウェア、プログラム、コンピュータプログラム製品のうちの1つ又は何れかの組み合わせ、或いはこれの一部分は、コンピュータ実行可能命令又は他のデータ構造の形式で、コンピュータ可読媒体又はマシン可読媒体又はストレージデバイス及び通信媒体の任意の所望の組み合わせに格納、受信、送信、又はそれらから読み出すことができる。
【0144】
本明細書に記載のシステム及び方法の実施形態は更に、コンピューティングデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令という一般的状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本明細書に記載の実施形態は、1又は2以上のリモート処理デバイスによって、又は1又は2以上のデバイスからなるクラウド内でタスクが実行される分散コンピューティング環境で実施することもでき、これらのデバイスは、1又は2以上の通信ネットワークを介してリンクされている。分散コンピューティング環境では、プログラムモジュールは、メディアストレージデバイスを含む、ローカル及びリモート両方のコンピュータストレージ媒体内に配置することができる。更に、上述した命令は、プロセッサを含むことがあるか又はプロセッサを含まないこともあるハードウェア論理回路として部分的に又は全体的に実装することができる。
【0145】
本明細書で使用される条件語、とりわけ、「できる(can)」、「してよい(might)」、「できる(may)」、「例えば(e.g.)」、及び同様のものは、別途明確に言及されていない限り、又は使用される文脈内でそれ以外の意味で理解されない限り、一般に、特定の実施形態が、特定の特徴、要素、及び/又は状態を含むが、他の実施形態は、これらを含まないことを伝えることを意図している。従って、このような条件語は、一般に、特徴、要素、及び/又は状態が、1又は2以上の実施形態に必ず必要であることを示唆するものでなく、作成者の入力又は指示があってもなくても、何れかの特定の実施形態において、これらの特徴、要素、及び/又は状態が含まれるか又は実行されるか否かを決定するためのロジックを、1又は2以上の実施形態が必ず含むことを示唆するものでもない。「備える(comprising)」、「含む(including)」、「有する(having)」という用語、及び同様のものは、同義であり、包括的にオープンエンド方式で使用され、追加の要素、特徴、動作、操作などを除外するものではない。また、「又は」という用語は、その包括的な意味で(その排他的意味ではなく)使用され、従って、例えば、要素のリストを結び付けるのに使用される際に、「又は」という用語は、リスト内の要素の1つ、一部、又は全てを意味する。
【0146】
上記の詳細な説明は、様々な実施形態に適用される新規性のある特徴を示し、説明し、指摘しているが、本開示の趣旨から逸脱することなく、様々な省略、置換、及び変更が、例証されたデバイス又はアルゴリズムの形態及び詳細において実施できることが理解されるであろう。認識されるように、一部の特徴は、他の特徴から切り離して使用又は実施することができるので、本明細書で説明する本発明の特定の実施形態は、本明細書に示した特徴及び利点の全てを提供するとは限らない形態の範囲内で具現化することができる。
【0147】
更に、本主題は、構造的特徴及び方法論的動作に特有の用語で説明されているが、添付の請求項で規定される主題は、上述した特定の特徴又は動作に必ずしも限定されるものではないことを理解されたい。そうではなく、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示される。