(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-18
(54)【発明の名称】最下位ビットの符号化および復号に適合するオーディオ符号化器、オーディオ復号器、方法、およびコンピュータプログラム
(51)【国際特許分類】
G10L 19/035 20130101AFI20230511BHJP
G10L 19/02 20130101ALI20230511BHJP
G10L 19/00 20130101ALI20230511BHJP
【FI】
G10L19/035 Z
G10L19/02 160Z
G10L19/00 330B
【外国語出願】
(21)【出願番号】P 2020118837
(22)【出願日】2020-07-10
(62)【分割の表示】P 2020526094の分割
【原出願日】2018-11-08
【審査請求日】2020-07-10
(31)【優先権主張番号】PCT/EP2017/078959
(32)【優先日】2017-11-10
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500341779
【氏名又は名称】フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン
(74)【代理人】
【識別番号】100134119
【氏名又は名称】奥町 哲行
(72)【発明者】
【氏名】ラヴェッリ・エマニュエル
(72)【発明者】
【氏名】フックス・ギヨーム
(72)【発明者】
【氏名】シュネル・マーカス
(72)【発明者】
【氏名】トマシェク・アドリアン
(72)【発明者】
【氏名】ガイアスバーガー・ステファン
【審査官】大野 弘
(56)【参考文献】
【文献】特表2006-527864(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/035
G10L 19/02
G10L 19/00
(57)【特許請求の範囲】
【請求項1】
符号化されたオーディオ情報(110;210;710)に基づいて復号されたオーディオ情報(112;212;712)を提供するオーディオ復号器(100;200;700)であって、
前記オーディオ復号器が、スペクトル値を表す符号化情報(130;230)に基づいて、復号されたスペクトル値(132;232;732;Xq[n]、Xq[n+1])を取得するように構成されており、
前記オーディオ復号器が、複数のスペクトル値(X
q[0]…X
q[lastnz-1])のそれぞれのシンボルコード(sym)に基づいて、1つ以上の最上位ビットを復号(950;1110a-1110g)し、1つ以上の前記スペクトル値の1つ以上の最下位ビットを復号するように構成されており、
前記オーディオ復号器が、
-符号化器からのシグナリングに応答してより高い周波数範囲のスペクトル値の復号が省略され且つ1つ以上の最上位ビットが復号され且つ前記最上位ビットよりも多くのビットを含む全てのスペクトル値の最下位ビットが復号(934)される第1のモード(930、934、938、942、944、948)と、
-1つ以上の前記スペクトル値に関連付けられた1つ以上の最下位ビットが復号されるが、1つ以上の最上位ビットが復号され且つ前記最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値の最下位ビットは復号されない第2のモード(950、954、958、962、968、972)との間で切り替え可能に構成されており、
前記オーディオ復号器が、前記スペクトル値を使用して前記復号されたオーディオ情報を提供するように構成されている、オーディオ復号器。
【請求項2】
前記オーディオ復号器が、前記1つ以上の最上位ビットのビット位置(numbits、numbits-1)を決定(950;1110a-1110e)し、算術符号化された表現のシンボルによって決定された前記1つ以上の最上位ビットを前記決定されたビット位置に割り当てる(1110f、1110g)ように構成されている、請求項1に記載のオーディオ復号器。
【請求項3】
前記オーディオ復号器が、1つ以上の最上位ビットが復号され且つ前記1つ以上の最上位ビットおよび最下位ビットよりも多くのビットを含む全てのスペクトル値について、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある1つ以上の中間ビットを復号(954;1120a-1120e)するように構成されている、請求項1から2のいずれかに記載のオーディオ復号器。
【請求項4】
前記オーディオ復号器が、前記第2のモードで動作するとき、第1の復号フェーズにおいて、
-スペクトル値ごとに1つ以上の最上位ビット、および
-1つ以上の最上位ビットが復号され且つ前記1つ以上の最上位ビットおよび最下位ビットよりも多くのビットを含む全てのスペクトル値について、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある1つ以上の中間ビット、および
-1つ以上の最上位ビットが復号され且つ前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットが非ゼロ値を示す全てのスペクトル値についての符号、を復号するように構成されており、
前記オーディオ復号器が、前記第2のモードで動作するとき、前記第1の復号フェーズにおいて、前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示すスペクトル値の符号の復号を選択的に省略するように構成されており、
前記オーディオ復号器が、前記第2のモードで動作するとき、前記第1の復号フェーズに続く第2の復号フェーズにおいて、前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示し且つ最下位ビット情報が非ゼロ値を示すスペクトル値の符号情報を選択的に取得するように構成されている、請求項1から3のいずれかに記載のオーディオ復号器。
【請求項5】
前記オーディオ復号器が、第2のモードで動作するとき、前記スペクトル値に関連する最下位ビット値を取得するために、最下位ビット情報ビットシーケンスの後続のビットを順次使用するように構成されている、請求項1から4のいずれかに記載のオーディオ復号器。
【請求項6】
前記オーディオ復号器が、前記第2のモードで動作するとき、前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとが非ゼロ値を示すそれぞれのスペクトル値の前記最下位ビット情報ビットシーケンスの単一ビットを使用するように構成されており、前記最下位ビット情報ビットシーケンスの前記使用された単一ビットが最下位ビット値を取得するために使用され、
前記オーディオ復号器が、前記第2のモードで動作するとき、前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示し且つ前記最下位ビット情報ビットシーケンスの使用された単一ビットが前記ゼロ値を確認するそれぞれのスペクトル値について、前記最下位ビット情報ビットシーケンスの前記単一ビットを使用するように構成されており、
前記オーディオ復号器が、前記第2のモードで動作するとき、前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示し且つ前記最下位ビット情報ビットシーケンスの第1の前記使用されたビットが前記ゼロ値から最下位ビット値までの偏差を示すそれぞれのスペクトル値の前記最下位ビット情報ビットシーケンスの2つの後続ビットを使用するように構成されており、前記最下位ビット情報ビットシーケンスの第2の前記使用されたビットが、前記それぞれのスペクトル値の符号を決定する、請求項5に記載のオーディオ復号器。
【請求項7】
前記オーディオ復号器が、前記第2のモードで動作するとき、最低周波数スペクトル値に関連する最下位ビットから始まり、次第により高い周波数に関連するスペクトル値に向かって進む最下位ビットを復号するように構成されており、
そのため、スペクトル値が、最低周波数のスペクトル値から最後の最下位ビット情報が利用可能なスペクトル値までの範囲の最下位ビット情報によって精緻化され、前記最後の最下位ビット情報が利用可能な前記スペクトル値に関連する周波数よりも高い関連周波数を有するスペクトル値が未精緻化のままである、請求項1から6のいずれかに記載のオーディオ復号器。
【請求項8】
前記オーディオ復号器が、前記オーディオ復号器が前記第1のモードで動作するか前記第2のモードで動作するかを決定するために、前記符号化されたオーディオ情報に含まれるビットストリームフラグを評価するように構成されている、請求項1から7のいずれかに記載のオーディオ復号器。
【請求項9】
前記オーディオ復号器が、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある中間ビットを取得(934)するように構成されており、前記最下位ビットが、前記第1のモードにおける連続したビットシーケンスからの所与のスペクトル値に関連付けられており、
前記オーディオ復号器が、前記第2のモードにおける別個のビットシーケンスからまたはビットシーケンスの別個の非連続のビット位置から、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットの間にある中間ビットと、所与のスペクトル値(972)に関連付けられた前記最下位ビットと、を取得(954)するように構成されている、請求項1から8のいずれかに記載のオーディオ復号器。
【請求項10】
前記オーディオ復号器が、前記第1のモードにおいて、前記1つ以上の最上位ビット、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットの間にある任意の中間ビット、および所与のスペクトル値に関連する前記最下位ビットがゼロ値を示すかどうかに応じて、前記1つ以上の最上位ビット、前記中間ビット、および前記最下位ビットの復号後にのみ、スペクトル値に関連する符号情報を選択的に取得(938)するように構成されており、
前記オーディオ復号器が、前記1つ以上の最上位ビットと、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある任意の中間ビットとの復号後であり、所与のスペクトル値に関連する最下位ビットが前記第2のモードにおいて復号される前に、前記1つ以上の最上位ビットおよび前記中間ビットがゼロ値を示すかどうかに応じて、スペクトル値に関連付けられた符号情報を選択的に取得(958;1130a-1131d)するように構成されている、請求項1から9のいずれかに記載のオーディオ復号器。
【請求項11】
入力オーディオ情報(310;410;510;610)に基づいて符号化されたオーディオ情報(312;412;512;612)を提供するオーディオ符号化器(300;400;500;600)であって、
前記オーディオ符号化器が、前記入力オーディオ情報のオーディオコンテンツを表すスペクトル値を取得(620、630、640、650、660)するように構成されており、
前記オーディオ符号化器が、前記スペクトル値を表す符号化情報(350、450、550、672;sym、lsbs[])を取得するために、少なくとも複数の前記スペクトル値を符号化(670;800)するように構成されており、
前記オーディオ符号化器が、1つ以上の最上位ビットを符号化(882;898;1010a-1010e、1011a-1011e)して、複数の前記スペクトル値のそれぞれのシンボルコードを取得し、1つ以上の前記スペクトル値についての1つ以上の最下位ビットを符号化するように構成されており、
それぞれのシンボルコード(sym)が、1つ以上のスペクトル値の1つ以上の最上位ビット値を表し、
前記オーディオ符号化器が、
-低周波数範囲のスペクトル値の符号化によって利用可能なビットバジェットが使い果たされ且つ最下位ビットが1つ以上の最上位ビットが符号化され(848、852、856)且つ前記最上位ビットよりも多くのビットを含む全てのスペクトル値について符号化(860)される場合、高周波数範囲の非ゼロスペクトル値の符号化が省略される第1のモード(840、844、848、852、856、860、864、868、869)と、
-1つ以上の前記スペクトル値に関連付けられた1つ以上の最下位ビットが符号化(898)されるが、1つ以上の最上位ビットが符号化され且つ前記最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値についての最下位ビットは符号化されない第2のモード(870、874、878、882、886、890、892、894、896、898)との間で切り替え可能に構成されており、
前記オーディオ符号化器が、前記スペクトル値を表す前記符号化情報を使用して前記符号化されたオーディオ情報を提供するように構成されている、オーディオ符号化器。
【請求項12】
前記オーディオ符号化器が、前記第2のモードにおいて、全ての非ゼロスペクトル値または全てのスペクトル値の非ゼログループの少なくとも1つ以上の最上位ビットを符号化(878、886、890)するように構成されている、請求項11に記載のオーディオ符号化器。
【請求項13】
前記オーディオ符号化器が、前記第1のモードで動作するとき、1つ以上のスペクトル値がスペクトル値の符号化において考慮されないままであるように、ビットバジェットが不十分である場合に、スペクトル値が符号化される周波数範囲を制限するように構成されている、請求項11から12のいずれかに記載のオーディオ符号化器。
【請求項14】
前記オーディオ符号化器が、前記第1のモードで動作するとき、最大周波数値を決定し、前記第1のモードで動作するとき、最大周波数までのスペクトル値を符号化(848、852、856、860)し、前記第1のモードで動作するとき、前記スペクトル値が非ゼロであっても、前記最大周波数を超えるスペクトル値は符号化されないままにするように構成されており、
前記オーディオ符号化器が、前記第1のモードで動作するとき、計算または推定されたビット需要がビットバジェットを超える場合に符号化されるスペクトル値の数が削減されるように、全てのスペクトル値を符号化するためのビット需要の計算または推定に応じて前記最大周波数値を選択するように構成されており、
前記オーディオ符号化器が、前記第2のモードで動作するとき、前記最大周波数値を決定し、前記第2のモードで動作するとき、前記最大周波数までスペクトル値を符号化(878、882、886、890、898)し、前記第2のモードで動作するとき、前記最大周波数を超えるスペクトル値は符号化されないままにするように構成されており、
前記オーディオ符号化器が、前記第2のモードで動作するとき、全ての非ゼロスペクトル値またはスペクトル値の全ての非ゼログループの少なくとも1つ以上の最上位ビットが符号化されるように且つ最大でゼロ値のスペクトル値が符号化されないままになるように、前記最大周波数値を選択するように構成されている、請求項13に記載のオーディオ符号化器。
【請求項15】
前記オーディオ符号化器が、最大周波数を記述する情報(lastnz)を前記符号化されたオーディオ情報に含めるように構成されている、請求項13または請求項14に記載のオーディオ符号化器。
【請求項16】
前記オーディオ符号化器が、利用可能なビットレートに応じて前記第1のモードまたは前記第2のモードのどちらを使用するかをモード決定(830)するように構成されている、請求項11から15のいずれかに記載のオーディオ符号化器。
【請求項17】
前記オーディオ符号化器が、最上位ビット符号化ステップにおいて符号化された1つ以上の最上位ビットに加えて、1つ以上の最下位ビットを含み、その符号化がビット需要とビットバジェットとに応じて選択的に省略されることができるいくつかのスペクトル値またはスペクトル値のグループに応じて、前記第1のモードまたは前記第2のモードのどちらを使用するかをモード決定(830)するように構成されている、請求項11から16のいずれかに記載のオーディオ符号化器。
【請求項18】
前記オーディオ符号化器が、前記オーディオ符号化器が前記第1のモードで動作するか前記第2のモードで動作するかを示す前記符号化されたオーディオ情報にビットストリームフラグを含めるように構成されている、請求項11から17のいずれかに記載のオーディオ符号化器。
【請求項19】
前記オーディオ符号化器が、前記第1のモードにおいて、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある中間ビットと、所与のスペクトル値に関連付けられた前記最下位ビットとを、連続したビットシーケンスに符号化(860)するように構成されており、
前記オーディオ符号化器が、前記第2のモードにおいて、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットの間にある中間ビットと、所与のスペクトル値(882、898)に関連付けられた前記最下位ビットとを、別個のビットシーケンス、またはビットシーケンスの別個の非連続ビット位置に符号化(892)するように構成されている、請求項11から18のいずれかに記載のオーディオ符号化器。
【請求項20】
前記オーディオ符号化器が、前記第1のモードで動作するとき、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある中間ビットおよび最下位ビットに関連するビットシーケンスのスペクトル値に関連する符号情報を符号化(864)するように構成されており、
前記オーディオ符号化器が、第2のモードで動作するとき、最下位ビット値だけゼロから逸脱するスペクトル値の符号情報が、前記最下位ビットおよび符号情報に関連付けられたビットシーケンスにおいて符号化されるように、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある中間ビットおよび符号情報(894)に関連するビットシーケンス、または最下位ビットおよび符号情報(882、898)と関連付けられたビットシーケンス(lsbs[])のスペクトル値に関連する符号情報を選択的に符号化するように構成されている、請求項11から19のいずれかに記載のオーディオ符号化器。
【請求項21】
前記オーディオ符号化器が、前記1つ以上の最上位ビットのビット位置を決定し、算術符号化表現に前記ビット位置を記述する情報を含めるように構成されている、請求項11から20のいずれかに記載のオーディオ符号化器。
【請求項22】
前記オーディオ符号化器が、前記少なくとも1つのスペクトル値の少なくとも2つの最上位ビットを、前記少なくとも1つのスペクトル値の前記少なくとも2つの最上位ビットを表す算術符号化表現の1つのシンボルにマッピングするように構成されている、請求項11から21のいずれかに記載のオーディオ符号化器。
【請求項23】
前記オーディオ符号化器が、1つ以上の最上位ビットが符号化され且つ前記1つ以上の最上位ビットよりも多くのビットを含む全てのスペクトル値について、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある中間ビットを符号化するように構成されている、請求項11から22のいずれかに記載のオーディオ符号化器。
【請求項24】
前記オーディオ符号化器が、第1の符号化フェーズにおいて、
-スペクトル値ごとに1つ以上の最上位ビット、および
-1つ以上の最上位ビットが符号化され且つ前記1つ以上の最上位ビットおよび最下位ビットよりも多くのビットを含む全てのスペクトル値について、そのビット位置が前記最下位ビットと前記1つ以上の最上位ビットとの間にある1つ以上の中間ビット、および
-1つ以上の最上位ビットが符号化され且つ前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとが非ゼロ値を示す全てのスペクトル値について、符号を符号化するように構成されており、
前記オーディオ符号化器が、前記第1の符号化フェーズにおいて、前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示すスペクトル値の符号の符号化を選択的に省略するように構成されており、
前記オーディオ符号化器が、前記第1の符号化フェーズに続く第2の符号化フェーズにおいて、前記1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示し且つ最下位ビット情報が非ゼロ値を示すスペクトル値の符号情報を選択的に符号化するように構成されている、請求項11から23のいずれかに記載の音声符号化器。
【請求項25】
前記オーディオ符号化器が、最下位ビットだけゼロとは異なるスペクトル値の最下位ビットが実際に符号化される場合に前記最下位ビットだけゼロとは異なるスペクトル値について、前記符号化されたオーディオ表現に符号情報のみを含むように構成されている、請求項11から24のいずれかに記載のオーディオ符号化器。
【請求項26】
前記オーディオ符号化器が、前記スペクトル値に関連する最下位ビット値を符号化するために、最下位ビット情報ビットシーケンスの後続のビットを順次提供するように構成されている、請求項11から25のいずれかに記載のオーディオ符号化器。
【請求項27】
前記オーディオ符号化器が、前記1つ以上の最上位ビットと任意の中間ビットが存在する限りは任意の中間ビットとが非ゼロ値を示すそれぞれのスペクトル値の最下位ビット情報ビットシーケンスの単一ビットを提供するように構成されており、前記最下位ビット情報ビットシーケンスの前記使用された単一ビットが、最下位ビット値を符号化するために使用され、
前記オーディオ符号化器が、1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示し且つ前記提供された最下位ビット情報ビットシーケンスの単一のビットがゼロ値を確認するそれぞれのスペクトル値について、最下位ビット情報ビットシーケンスの単一ビットを提供するように構成されており、
前記オーディオ符号化器が、1つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットがゼロ値を示し且つ前記最下位ビット情報ビットシーケンスの前記提供されたビットの第1のビットが、ゼロ値から最下位ビット値までの偏差を示すそれぞれのスペクトル値について、前記最下位ビット情報ビットシーケンスの後続の2ビットを提供するように構成されており、前記最下位ビット情報ビットシーケンスの前記提供された第2のビットが、前記それぞれのスペクトル値の符号を符号化する、請求項26に記載のオーディオ符号化器。
【請求項28】
前記オーディオ符号化器が、最低周波数のスペクトル値に関連する最下位ビットから始まり、次第により高い周波数に関連するスペクトル値に向かって進む最下位ビットを符号化するように構成されており、
そのため、最下位ビット情報によってスペクトル値を精緻化するための符号化情報が、最低周波数スペクトル値から最後の最下位ビット情報が提供されるスペクトル値までの範囲で提供され、
最後の最下位ビット情報が提供される前記スペクトル値に関連する周波数よりも高い関連周波数を有するスペクトル値について、最下位ビット情報によってスペクトル値を精緻化するための符号化情報が提供されない、請求項11から27のいずれかに記載のオーディオ符号化器。
【請求項29】
前記オーディオ符号化器が、
-低周波数範囲のスペクトル値の符号化によって利用可能なビットバジェットが使い果たされ且つ最下位ビットが1つ以上の最上位ビットが符号化され且つ前記最上位ビットよりも多くのビットを含む全てのスペクトル値について符号化される場合、高周波数範囲の非ゼロスペクトル値の符号化が省略される第1のモードと、
-1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが符号化されるが、1つ以上の最上位ビットが符号化され且つ前記最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値についての最下位ビットは符号化されない第2のモードとの間で切り替え可能に構成されている、請求項11から28のいずれかに記載のオーディオ符号化器。
【請求項30】
前記オーディオ符号化器が、前記オーディオ符号化器が前記第1のモードで動作するか前記第2のモードで動作するかを示すために、前記符号化されたオーディオ情報に含まれるビットストリームフラグを提供するように構成されている、請求項29に記載のオーディオ符号化器。
【請求項31】
前記オーディオ符号化器が、それぞれのシンボルコードを使用して、少なくとも2つのスペクトル値のスペクトル値ごとに1つ以上の最上位ビットを一緒に符号化するように構成されており、
それぞれのシンボルコードが、少なくとも2つのスペクトル値のスペクトル値ごとに1つ以上の最上位ビットを表す、請求項11から30のいずれかに記載のオーディオ符号化器。
【請求項32】
前記オーディオ符号化器が、前記第2のモードで動作するとき、実際の最高周波数の非ゼロスペクトル値を決定し、全ての非ゼロスペクトル値、またはスペクトル値の全ての非ゼログループの少なくとも1つ以上の最上位ビットを符号化するように構成されている、請求項11から31のいずれかに記載のオーディオ符号化器。
【請求項33】
前記オーディオ符号化器が、前記第2のモードで動作するとき、全ての非ゼロスペクトル値の最下位ビットを除く全てのビットを符号化するように構成されており、
前記オーディオ符号化器が、ビットバジェットが使い果たされるまで、スペクトル値の最下位ビットを符号化するように構成されている、請求項11から32のいずれかに記載のオーディオ符号化器。
【請求項34】
前記オーディオ符号化器が、スペクトル値の量子化の量子化ステップを決定し、前記量子化されたスペクトル値を符号化するためのビット需要を決定するゲイン情報を取得するように構成されている、請求項11から33のいずれかに記載のオーディオ符号化器。
【請求項35】
符号化されたオーディオ情報(110;210;710)に基づいて復号されたオーディオ情報(112;212;712)を提供する方法であって、
前記方法が、スペクトル値を表す符号化情報(130;230)に基づいて、復号されたスペクトル値(132;232;732;Xq[n]、Xq[n+1])を取得することを備え、
前記方法が、複数のスペクトル値(X
q[0]…X
q[lastnz-1])のそれぞれのシンボルコード(sym)に基づいて1つ以上の最上位ビットを復号(950;1110a-1110g)することと、
1つ以上の前記スペクトル値の1つ以上の最下位ビットを復号することと、を備え、
前記方法が、
-符号化器からのシグナリングに応答してより高い周波数範囲のスペクトル値の復号が省略され、且つ1つ以上の最上位ビットが復号され且つ前記最上位ビットよりも多くのビットを含む全てのスペクトル値の最下位ビットが復号(934)される第1のモード(930、934、938、942、944、948)と、
-1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが復号されるが、1つ以上の最上位ビットが復号され且つ前記最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値についての最下位ビットが復号されない第2のモード(950、954、958、962、968、972)との間で選択することを備え、
前記方法が、前記スペクトル値を使用して前記復号されたオーディオ情報を提供することを備える、方法。
【請求項36】
入力オーディオ情報(310;410;510;610)に基づいて符号化されたオーディオ情報(312;412;512;612)を提供する方法であって、
前記方法が、前記入力オーディオ情報のオーディオコンテンツを表すスペクトル値を取得(620、630、640、650、660)することを備え、
前記方法が、前記スペクトル値を表す符号化情報(350、450、550、672;sym、lsbs[])を取得するために、少なくとも複数の前記スペクトル値を符号化(670;800)することを備え、
前記方法が、前記複数のスペクトル値のそれぞれのシンボルコードを取得するために、1つ以上の最上位ビットを符号化(882;898;1010a-1010e、1011a-1011e)することと、1つ以上の前記スペクトル値についての1つ以上の最下位ビットを符号化することとを備え、
それぞれのシンボルコード(sym)が、1つ以上のスペクトル値のスペクトル値ごとに1つ以上の最上位ビットを表し、
前記方法が、
-低周波数範囲のスペクトル値の符号化によって利用可能なビットバジェットが使い果たされ且つ最下位ビットが1つ以上の最上位ビットが符号化(848、852、856)され且つ前記最上位ビットよりも多くのビットを含む全てのスペクトル値について符号化(860)される場合、高周波数範囲の非ゼロスペクトル値の符号化が省略される第1のモード(840、844、848、852、856、860、864、868、869)と、
-1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが符号化(898)されるが、1つ以上の最上位ビットが符号化され且つ前記最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値についての最下位ビットは符号化されない第2のモード(870、874、878、882、886、890、892、894、896、898)との間で選択することを備え、
前記方法が、前記スペクトル値を表す前記符号化情報を使用して前記符号化されたオーディオ情報を提供することを備える、方法。
【請求項37】
コンピュータ上で実行されるときに請求項35から36のいずれか一項に記載の方法を実行するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明にかかる実施形態は、符号化されたオーディオ情報に基づいて復号されたオーディオ情報を提供するオーディオ復号器に関する。
【0002】
本発明にかかるさらなる実施形態は、入力オーディオ情報に基づいて符号化されたオーディオ情報を提供するオーディオ符号化器に関する。
【0003】
本発明にかかるさらなる実施形態は、符号化されたオーディオ情報に基づいて復号されたオーディオ情報を提供する方法に関する。
【0004】
本発明にかかるさらなる実施形態は、入力オーディオ情報に基づいて符号化されたオーディオ情報を提供する方法に関する。
【0005】
本発明にかかるさらなる実施形態は、それぞれのコンピュータプログラムに関する。
【0006】
本発明にかかる実施形態は、算術符号化されたオーディオデータの改良されたトランケーションに関する。
【背景技術】
【0007】
過去には、オーディオコンテンツの符号化および復号に関する多くの異なるコンセプトが開発されてきた。
【0008】
例えば、新たなBluetoothコーデック(NBC)は、3GPP EVS標準[1]において使用されるMDCTベースのTCXオーディオコーデックに非常に類似したオーディオコーデックである。双方とも、MDCTデータのコーディングにスカラー量子化とコンテキストベースの算術符号化(例えば、参考文献[2]から[4]を参照)とを採用している。
【0009】
スカラー量子化器は、ステップサイズが固有のグローバルゲイン(例えば、サイド情報として復号器に送信される)によって制御される単純な均一量子化器(追加のデッドゾーン付き)である。このグローバルゲインは、スカラー量子化器によって導入される歪みと、算術符号化器によって消費されるビット数との双方を制御する。グローバルゲインが高いほど、歪みが大きくなり、算術符号化器によって消費されるビット数が少なくなる。
【0010】
EVSでは、他のほとんどの通信コーデックと同様に、コーデックのビットレートは一定である。すなわち、MDCTデータの符号化に利用可能なビット数(ビットバジェット)には制限がある。
【0011】
その結果、符号化器は、低すぎないグローバルゲインを見つけるべきであり(または見つける必要がある)、そうでなければ、算術符号化器によって消費されるビット数は、ビットバジェットを超えるであろう。また、高すぎないグローバルゲインを見つけるべきであり(または見つける必要がある)、そうでなければ、量子化によって導入される歪みが大きくなり、復号された出力信号の知覚品質の低下をもたらす。
【0012】
理想的には、符号化器は、フレームごとに最適なグローバルゲインを見つけるべきである:その1つは、ビットバジェットを下回るビット数を生成しながら最小の歪みを与える。
【0013】
この目標は、例えば、レートループとしても知られる、すなわち、ループの反復ごとに反復アプローチを使用して達成されることができ、MDCTデータが再量子化され、算術符号化器によって消費されるビット数が推定され、グローバルゲインがビット数および/または歪みの関数として調整される。
【0014】
しかしながら、レートループは、計算が複雑であり、複雑さを軽減するために、通常は少数の反復が使用される。これは、非常に低い計算の複雑さを必要とする非常に低消費電力の通信コーデック(例えば、新たなBluetoothコーデック)に特に関連している。したがって、実際には、次善のグローバルゲインが通常見つかる。
【0015】
場合によっては、見つかったグローバルゲインが高すぎて、ビットバジェットよりも大幅に低い消費されるビット数をもたらすことがわかっている。この場合、未使用のいくつかのビットがある。これらのビットは、実際には「残差量子化/コーディング」と呼ばれる追加のツール(例えば、EVSおよびNBCにおいて使用される)によって使用されることができる。このツールは、1ビットのプロ係数を使用して量子化された非ゼロ係数を調整し、グローバルゲインが高すぎても高すぎない歪みを得るのに役立つ。
【0016】
さらに、他のいくつかの場合には、見つかったグローバルゲインが低すぎて、ビットバジェットを超える消費されたビット数をもたらすことがわかっている。この場合、量子化されたデータは、完全に符号化されることはできない。換言すれば、ビットバジェット内にとどまるためには、データの一部が除外される必要がある。EVS標準(および現在はNBCにおいても)において採用されている解決策は、高周波非ゼロ係数をゼロに設定することによってそれらを切り捨てることである。算術符号化器は、(最後の非ゼロ係数インデックスを使用して)高周波ゼロ係数の部分を符号化しないため、このアプローチは、ビットを節約することを可能にし、十分な高周波非ゼロ係数が切り捨てられる場合、これは、ビットバジェット内にとどまることを可能にする。
【0017】
高周波係数は、知覚的にそれほど重要ではなく、知覚品質の大幅な低下を有さずに、ランダムノイズ(ノイズフィリングツールを使用して、例えば、EVS[1]を参照)によって置き換えられることができるため、このアプローチは、低ビットレートにおいて良い結果をもたらすことがわかっている。
【0018】
しかしながら、高ビットレートでは、このアプローチは、コーデックのパフォーマンスを大幅に低下させる可能性があることもわかっている。
この状況を考慮すると、オーディオ品質、複雑さ、およびビットレートの間の改善されたトレードオフを可能にする概念を有することが望まれている。
【発明の概要】
【0019】
本発明にかかる実施形態は、符号化されたオーディオ情報に基づいて復号されたオーディオ情報を提供するオーディオ復号器を形成する。オーディオ復号器は、これらのスペクトル値を表す符号化情報に基づいて復号されたスペクトル値を取得するように構成されている。オーディオ復号器は、算術復号を使用してスペクトル値のセットのそれぞれのシンボルコードに基づいて、スペクトル値ごと(例えば、量子化されたスペクトル値ごと)に2つ以上の最上位ビットを一緒に復号するように構成されている。それぞれのシンボルコードは、1つ以上のスペクトル値のスペクトル値ごとに2つ以上の最上位ビットを表す。オーディオ復号器は、(例えば、量子化されたスペクトル値とすることができる)1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが復号され、最下位ビットが、2つ以上の最上位ビットが復号され且つ2つ以上の最上位ビットよりも多いビットを含むために1つ以上の他のスペクトル値について復号されないように、利用可能な最下位ビット情報の量に応じて、スペクトル値のうちの1つ以上に関連付けられた1つ以上の最下位ビットを復号するように構成されている。さらに、オーディオ復号器は、(復号された)スペクトル値を使用して復号されたオーディオ情報を提供するように構成されている。
【0020】
このオーディオ復号器は、オーディオ品質、複雑さおよびビットレートの間の適切なトレードオフを提供する効率的な符号化/復号コンセプトを可能にする。例えば、オーディオ復号器は、特定のビットバジェット制約の下でオーディオ符号化器側において全ての(量子化された)スペクトル値を符号化するためにビットバジェットが不十分であるケースを適切に処理することができる。
【0021】
オーディオ復号器は、一部の(量子化された)スペクトル値の最下位ビットの符号化(および復号)を省略しながら、特定のビットバジェットについて、1つ以上の最上位ビットが多くのスペクトル値(さらには全ての非ゼロスペクトル)についても符号化(および復号)されると、比較的良好なオーディオ品質が達成されることができるという知見に基づいている。換言すれば、ビットバジェットが不十分である場合(例えば、量子化されたスペクトル値の完全な符号化のため)のオーディオ品質の劣化が、全スペクトル値の符号化が省略される解決策と比較すると、最下位ビットの符号化および復号が省略される場合により小さくなることが多いということが、本発明の重要なアイデアである。他の言い方をすれば、多くのスペクトル値の最下位ビットの符号化を省略することは、通常、比較的少ない数のスペクトル値の符号化を完全に省略することと比較した場合(高周波数領域のスペクトル値のみが省略される場合であっても)、ビット需要を削減する(ビットバジェット内に保つ)ためのさらにより良好な解決策であることがわかっている。他の言い方をすれば、本発明は、1つ以上の最上位ビットが復号されているスペクトル値の最下位ビットの復号を(選択的に)省略することが、通常は高周波数範囲におけるスペクトル値の符号化および復号の省略と比較して歪みが少なくなるビット需要を削減するための良い方法であるという知見に基づいている。
【0022】
したがって、ここで説明するオーディオ復号器は、通常、ビットバジェットが量子化されたスペクトル値の完全な損失のない符号化には不十分なフレームにおいて、信号対雑音比の深刻な劣化をもたらさない。
【0023】
さらに、この概念は、スペクトル値ごとに2つ以上の最上位ビットが一緒に符号化および復号される場合に特に効率的であることがわかっており、これは、この場合、最下位ビットが符号化および復号されていない場合であっても、最上位ビットが優れたオーディオ表現を可能にするために十分に意味のある情報を担持するためである。換言すれば、スペクトル値ごとに2つ以上の最上位ビットを一緒に復号することにより、例えば、高周波領域において2ビット未満で符号化されたオーディオコンテンツを導入することによって引き起こされるであろう過度のアーティファクトが発生しないようにすることができる。換言すれば、本明細書で述べた概念は、ビットレート、複雑さおよびオーディオ品質の間の優れた構成を提供することが見出された。
【0024】
好ましい実施形態では、オーディオ復号器は、少なくとも1つのスペクトル値の少なくとも2つの最上位ビットを表す算術符号化表現の1つのシンボルを、少なくとも1つのスペクトル値の少なくとも2つの最上位ビットにマッピングするように構成されている。したがって、2つ以上の最上位ビットが、算術的に符号化された表現(符号化されたオーディオ情報の一部である)の単一シンボルによって表されることが達成されることができ、これにより、符号化/復号コンテキストおよび隣接する(量子化された)スペクトル値間の統計的依存関係の良好な考慮を可能にする。
【0025】
好ましい実施形態では、算術復号は、少なくとも2つの最上位ビット(例えば、本明細書で「numbits」および「numbits-1」として指定される)のビット位置(例えば、ビット重み)を決定し、決定されたビット位置に対する算術符号化表現のシンボルによって決定された少なくとも2つの最上位ビットを割り当てるように構成されている。ビット位置は、例えば、「VAL_ESC」として指定されることもできるいくつかのいわゆる「エスケープシンボル」に基づいて決定されることができる。例えば、ビット位置は、算術的に符号化された表現の異なるシンボルに対して個別に決定されてもよい。したがって、適切な数値の重みを最上位ビットに割り当てることができ、1つ以上の最下位ビットおよび1つ以上の中間ビット(1つ以上の最下位ビットと2つ以上の最上位ビットとの間にあるビット位置)がスペクトル値に関連付けられているかどうかを見出すこともできる。したがって、それぞれのスペクトル値の1つ以上の最下位ビット(および必要に応じて、それぞれのスペクトル値の1つ以上の中間ビット)の復号がなおも存在すべきかどうかを決定することができる。また、この概念を使用することにより、2つ以上の最上位ビットがスペクトル値を完全に表すのに十分であるようなスペクトル値の最下位ビットの符号化および復号を回避することができる。これは、例えば、(2つの最上位ビットがある場合)0から3の範囲内にあるスペクトル値に当てはまる。
【0026】
好ましい実施形態において、オーディオ復号器は、2つ以上の最上位ビットが復号され、且つ2つ以上の最上位ビットおよび最下位ビットよりも多くのビットを含む全てのスペクトル値について、そのビット位置が最下位ビットと2つ以上の最上位ビットとの間にある1つ以上の中間ビットを復号するように構成されている。したがって、最下位ビットを除いて、量子化されたスペクトル値の2進数表現の全てのビットを復号することが可能である。例えば、全ての非ゼロスペクトル値について、最下位ビットを除いて、全てのスペクトル値のバイナリ(および場合によっては符号付き)数表現の全てのビットを復号することができる。したがって、スペクトルの良好な表現を得ることができ、各スペクトル値の最大誤差が、それぞれのスペクトル値の最下位ビットの符号化表現がビットレートの制約の有無に応じて符号化されたオーディオ表現に含まれることができるかどうかの問題とは無関係に、最下位ビットに制限されることが保証される。
【0027】
好ましい実施形態では、オーディオ復号器は、第1の復号フェーズ(例えば、復号のステップ3)において、スペクトル値ごとに2つ以上の最上位ビット、および2つ以上の最上位ビットが復号され且つ2つ以上の最上位ビット(一緒に復号される)よりも多くのビットと最下位ビット、そのビット位置が最下位ビットと2つ以上の最上位ビットとの間にある1つ以上の中間ビットを含む全てのスペクトル値を復号するように構成されている。さらに、第1の復号フェーズでは、2つ以上の最上位ビットが復号され且つ2つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとが非ゼロ値を示す全てのスペクトル値について、符号が復号される。さらに、オーディオ復号器は、第1の復号フェーズでは、2つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットとがゼロ値を示すスペクトル値の符号復号を選択的に省略するように構成されている。さらに、オーディオ復号器は、第1の復号フェーズに続く第2の復号フェーズ(例えば、復号のステップ6)では、2つ以上の最上位ビットと-中間ビットが存在する限りは-任意の中間ビットとがゼロ値を示し且つ最下位ビット情報が非ゼロ値を示すスペクトル値の符号情報を選択的に取得するように構成されている。
【0028】
したがって、第1のフェーズにおいて復号されたそれらのビット(すなわち、存在する可能性がある2つ以上の最上位ビットと任意の中間ビット)が、スペクトル値の絶対値が最下位ビットの寄与よりも大きくないことを示す場合、符号なし復号が第1のフェーズにおいて行われる。したがって、符号復号は、最下位ビットの実際の復号まで延期される。そのような手順は、無駄に「早すぎる」符号復号が回避されるため有利であり、これは、ビットバジェットの枯渇により、それぞれのスペクトル値に対応する最下位ビットがビットストリームに含まれていない場合に当てはまることができる。
【0029】
好ましい実施形態では、オーディオ復号器は、スペクトル値に関連する最下位ビット値を得るために、最下位ビット情報ビットシーケンス(例えば、lsbs[])の後続ビットを順次使用するように構成されている。したがって、最下位ビット(必要に応じて任意の符号)を表す連続したビットシーケンスがあることが達成されることができる。このビットシーケンス(例えば、lsbs[])を短くすることにより、符号化されたオーディオ表現の送信に必要なビットレートがオーディオ符号化器側で容易に調整されることができ、オーディオ復号器は、非常に容易に、複雑なビットマッピングなしに、そのようなビットレートの調整(または可変長もしくはlsbs[])に適応することができる。
【0030】
好ましい実施形態では、オーディオ復号器は、2つ以上の最上位ビット値と中間ビットが存在する限りは任意の中間ビットとが非ゼロ値を示すそれぞれのスペクトル値について、最下位ビット情報ビットシーケンス(例えば、lsbs[])の単一ビット(例えば、ステップ6、bit0)を使用するように構成されており、最下位ビット情報ビットシーケンスの単一ビットは、この場合、最下位ビット値を取得するために使用される。さらに、オーディオ復号器は、2つ以上の最上位ビットと中間ビットが存在する限りは任意の中間ビットがゼロ値を示し、且つ最下位ビット情報ビットシーケンスの使用される単一ビットがゼロ値を確認する(例えば、ステップ6におけるビット0の値「0」)それぞれのスペクトル値について最下位ビット情報ビットシーケンスの単一ビット(例えば、ステップ6、ビット0)を使用するように構成されている。さらに、オーディオ復号器は、2つ以上の最上位値と中間ビットが存在する限りは任意の中間ビット値とがゼロ値を示し、且つ最下位ビット情報ビットシーケンスの第1の使用ビットが、最下位ビット値(ステップ6におけるビット0の値「1」)によってゼロ値からの偏差を示すそれぞれのスペクトル値について、最下位ビット情報ビットシーケンスの後続の2つのビット(例えば、ステップ6におけるビット0およびビット1)を使用するように構成されており、最下位ビット情報ビットシーケンスの第2の使用ビット(例えば、ステップ6におけるビット1)は、それぞれのスペクトル値の符号を決定する。
【0031】
そのようなメカニズムを使用することにより、高いビットレート効率を実現することができる。最下位ビットの符号化および復号には1つの連続したビットシーケンス(例えば、lsbs[])のみがあり、この1つの連続したビットシーケンスはまた、ゼロ値から最下位ビット値だけ逸脱するにすぎない(すなわち、2つ以上の最上位ビットと(中間ビットが存在する限りは)任意の中間ビットとがゼロ値を示す)スペクトル値の符号情報も選択的に含む。
【0032】
好ましい実施形態では、オーディオ復号器は、スペクトル値(例えば、2つ以上の最上位ビットよりも多くのビットを含む全てのスペクトル値)が、最低周波数のスペクトル値から最後の最下位ビット情報が利用可能なスペクトル値までの範囲の最下位ビット情報によって精緻化されるように、且つ最後の最下位ビット情報が利用可能なスペクトル値に関連付けられた周波数よりも高い関連周波数を有する(例えば、全ての)スペクトル値(例えば、2つ以上の最上位ビットよりも多くのビットを含む復号されたスペクトル値さえも)が未精緻化のままであるように、最低周波数のスペクトル値に関連する最下位ビットから始まり、次第により高い周波数に関連するスペクトル値に向かって進んで最下位ビットを復号するように構成されている。換言すれば、より低い周波数範囲のスペクトル値(最低周波数のスペクトル値から最後の最下位ビット情報に関連付けられたスペクトル値まで)は、最下位ビット情報を使用して精緻化されるが、より高い周波数に関連付けられたスペクトル値は、全て未精緻化のままである。その結果、知覚的により重要な低周波数範囲における分解能は、最下位ビット精緻化を使用することによって増加するが、2つ以上の最上位ビット(および利用可能な場合は中間ビット)のみが、それほど知覚的に重要ではないより高い周波数範囲において使用される。その結果、利用可能なビットレートに基づいて可能な限り最良の聴覚印象を得ることができ、スペクトル値の最下位ビット情報が提供される単純なメカニズムも存在する。さらにまた、スペクトル値は、最低周波数のスペクトル値から、最後の最下位ビット情報が関連付けられたスペクトル値まで、精緻化されることができる。
【0033】
好ましい実施形態では、オーディオ復号器は、符号化器からのシグナリングに応答して、より高い周波数範囲のスペクトル値の復号が省略され(例えば、完全に省略される)且つ最下位ビットが、1つ以上の最上位ビットが復号され且つ最上位ビットよりも多くのビットを含む全てのスペクトル値について復号される第1のモードと、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが復号されるが、1つ以上の最上位ビットが復号され且つ最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値についての最下位ビットが復号されない第2のモードとの間で切り替え可能に構成されている。
【0034】
換言すれば、オーディオ復号器は、ビットバジェットの枯渇を処理するために大幅に異なるメカニズムを使用する2つのモード間で切り替え可能である。
【0035】
第1のモードでは、低い周波数範囲の全てのスペクトル値が最下位ビットを完全に含めて符号化(および復号)される一方で、高い周波数範囲の全てのスペクトル値は、それらが非ゼロであるために結果として復号器側では復号されない場合であっても符号化器によって完全に破棄される。第2のモードでは、少なくとも最上位ビットは、全ての非ゼロスペクトル値について符号化される(したがって復号もされる)が、最下位ビットは、なおも利用可能なビットバジェットが存在する場合に(またはその限りは)のみ符号化(および復号)される。
【0036】
しかしながら、2つの異なるモード間で切り替える可能性は、オーディオ復号器が変化する送信条件に適応することを可能にすることが見出された。例えば、例えば非常に小さなビットレートしか利用できない場合、第1のモードが第2のモードよりも時には有利であることが見出された。十分に高いビットレートが存在する場合、第1のモードは、良好な結果を提供せず、この場合、多くのスペクトル値のバイナリ表現は、2つ以上の最上位ビットに加えて最下位ビットを含むことも見出された。したがって、オーディオ復号器は、最下位ビットが数個しか存在しない状況や、比較的多数の最下位ビットが存在する状況下で良好な結果で動作することができる(第2のモードにおける動作は、通常、第1の場合において問題がある一方で、第2のモードにおける動作は、通常、第2の場合において非常に有利である)。
【0037】
好ましい実施形態では、オーディオ復号器は、オーディオ符号化器が第1のモードで動作するか第2のモードで動作するかを決定するために、符号化されたオーディオ表現に含まれるビットストリームフラグを評価するように構成されている。したがって、第1のモードと第2のモードとの間の切り替えは、通常、どのモードが最も有利であるかについての十分な知識を含むオーディオ符号化器によって制御されることができる。また、オーディオ復号器は、第2のモードの第1のモードを使用するかどうかを自ら決定する必要がないため、オーディオ復号器の複雑さを低減することができる。
【0038】
他の実施形態では、オーディオ復号器は、それぞれのシンボルコードに基づいて、少なくとも2つのスペクトル値について、スペクトル値ごとに2つ以上の最上位ビットを一緒に復号するように構成されており、それぞれのシンボルコードは、少なくとも2つのスペクトル値について、スペクトル値ごとに2つ以上の最上位ビットを表す。そのようなスペクトル値のグループ化では、2つ以上のスペクトル値が算術符号化された表現の単一のシンボルによって表され、また、隣接するスペクトル値間に相関があることが多く、2つの最上位ビットのそれぞれのビット位置を個別に符号化する必要がないため、特に効率的である。しかしながら、ビット位置は、通常、絶対値がよりも大きいスペクトル値によって決定されるため、スペクトル値の1つの「最上位ビット」が双方とも「ゼロ」になることは当然のことである。
【0039】
本発明にかかる実施形態は、符号化されたオーディオ情報に基づいて復号されたオーディオ情報を提供するオーディオ復号器を形成する。オーディオ復号器は、スペクトル値を表す符号化情報に基づいて復号されたスペクトル値を取得するように構成されている。オーディオ復号器は、複数のスペクトル値のそれぞれのシンボルコードに基づいて1つ以上の最上位ビットを復号し、1つ以上のスペクトル値の1つ以上の最下位ビットを復号するように構成されている。特に、オーディオ復号器は、符号化器からのシグナリングに応答して、より高い周波数範囲のスペクトル値の復号が省略され(例えば、完全に省略される)且つ1つ以上の最上位ビットが復号され(または復号された)且つ最上位ビットよりも多くのビットを含む全てのスペクトル値について最下位ビットが復号される第1のモードと、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが復号されるが、1つ以上の最上位ビットが復号され(または復号された)且つ1つ以上の最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値について最下位ビットが復号されない第2のモードとの間で切り替え可能に構成されている。さらに、オーディオ復号器は、スペクトル値を使用して復号されたオーディオ情報を提供するように構成されている。
【0040】
この実施形態は、状況に応じて、第1のモードまたは第2のモードが、複雑さ、ビットレートおよびオーディオ品質の間のトレードオフの点でより有利であり得るというアイデアに基づいている。オーディオ復号器は、ビットバジェットの枯渇に対処するための2つの異なるアプローチを処理することができる。第1のモードで動作する場合、オーディオ復号器は、オーディオ符号化器が高周波数範囲のスペクトル値の符号化を省略する一方で、低周波数範囲のスペクトル値が全て完全に符号化される(最下位ビットを含む)状況を処理することができる。第2のモードでは、オーディオ復号器は、1つ以上の最上位ビットが全てのスペクトル値について符号化される場合であっても、一部のスペクトル値について最下位ビットが選択的に省略される符号化されたオーディオ情報を処理する。既に上述したように、双方のアプローチは、他のいくつかのシステムパラメータ(例えば、利用可能なビットレートなど)に応じて利点を有するため、ここで説明するオーディオ復号器は、様々な条件下で良好な結果を提供することができる。
【0041】
このオーディオ復号器はまた、上述したオーディオ復号器の特徴と機能のいずれかによって補足されることもできる。
【0042】
好ましい実施形態では、オーディオ復号器は、中間ビットを取得するように構成され、そのビット位置は、最下位ビットと1つ以上の最上位ビットとの間にあり、最下位ビットは、第1のモードにおける連続したビットシーケンスからの所与のスペクトル値に関連付けられている。さらに、オーディオ復号器は、中間ビットを取得するように構成され、そのビット位置は、最下位ビットと1つ以上の最上位ビットとの間にあり、最下位ビットは、第2のモードにおける別個のビットシーケンスからまたはビットシーケンスの別個の非連続のビット位置からの所与のスペクトル値に関連付けられている。
【0043】
換言すれば、第1のモードでは、中間ビット(中間ビットが存在する限り)と最下位ビットとの双方を符号化する単一の連続したビットシーケンスが存在することができる。中間ビットに関する情報と最下位ビットに関する情報との双方を含む(ただし、通常は1つ以上の最上位ビットに関する情報を含まない)この連続したビットシーケンスは、ビットレートバジェットが削減される場合に容易に短縮することができる。一方、第2のモードでは、最下位ビットを表す情報および中間ビットを表す情報は、別個のビットシーケンスまたはビットシーケンスの別個のサブシーケンスに含まれる。したがって、中間ビットに関する情報(および必要に応じて符号情報)を取得する1つのビットシーケンスがあり、最下位ビット(および必要に応じて非常にゼロに近い値の符号に関する情報)に関する情報を含む1つのシーケンスがある。その結果、第2のモードで動作するとき、最下位ビットに関する情報は、別個のシーケンスにあるため、最下位ビットを含むシーケンスを削除または短縮することは容易であり、それにより必要なビットレートを削減する。オーディオ復号器は、最下位ビットを表すシーケンスに含まれるビット数に応じて、スペクトル値の最下位ビット精緻化が多かれ少なかれスペクトル値に適用される点で、最下位ビットを含むシーケンスの様々な長さに容易に適応することができる。
【0044】
本発明にかかる実施形態は、入力オーディオ情報に基づいて符号化されたオーディオ情報を提供するオーディオ符号化器を形成する。オーディオ符号化器は、入力オーディオ情報のオーディオコンテンツを表すスペクトル値を取得するように構成されている。オーディオ符号化器はまた、(符号化されたオーディオ情報の一部とすることができる)スペクトル値を表す符号化情報を得るために、少なくとも複数のスペクトル値を符号化するように構成されている。さらに、オーディオ符号化器は、算術符号化を使用してスペクトル値のセットのそれぞれのシンボルコードを取得するために、スペクトル値ごとに2つ以上の最上位ビットを一緒に符号化するように構成されている。それぞれのシンボルコードは、1つ以上のスペクトル値のスペクトル値ごとに2つ以上の最上位ビットを表すことができる。
【0045】
オーディオ復号器はまた、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが符号化される一方で、2つ以上の最上位ビットが符号化され且つ2つ以上の最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値については最下位ビットが符号化されないように、利用可能なビットバジェットに応じて1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットを符号化するように構成されている。さらに、オーディオ符号化器は、スペクトル値を表す符号化情報を使用して、符号化されたオーディオ情報を提供するように構成されている。
【0046】
このオーディオ符号化器は、2つ以上の最上位ビットが算術符号化を使用して符号化されるスペクトル値の1つ以上の最下位ビットの符号化を選択的に省略することにより、複雑さ、ビットレート、およびオーディオ品質の間の適切なトレードオフを達成できるというアイデアに基づいている。符号化される少なくとも2つの最上位ビットがある場合、1つ以上の最下位ビットの符号化を省略することは特に有害ではないことがわかっている。
【0047】
特に、最上位ビットが符号化される1つ以上の(量子化された)スペクトル値の最下位ビットの符号化の省略は、ビットバジェット内に維持するようにいくつかのスペクトル値の符号化を完全に省略した場合と比較して、はるかに小さいオーディオ品質の低下を引き起こすことがわかっている。
【0048】
好ましい実施形態では、算術符号化は、例えば、算術符号化された表現の異なるシンボルに対して個別に、少なくとも2つの最上位ビット(例えば、numbitsおよびnumbits-1)のビット位置(例えば、ビット重み)を決定し、算術的に符号化された表現に情報、例えば、ビット位置を説明する1つ以上の「VAL_ESC」シンボルを含むエスケープシーケンスを含めるように構成されている。したがって、2つ以上の最上位ビットのビット位置またはビット重みは、実際のスペクトル値に適合させることができ、最上位ビットは、比較的大きなスペクトル値に対して大きなビット重みを有することができ、最上位ビットは、スペクトル値が比較的小さい場合は、比較的小さいビット重みを有することができる。したがって、いくつかの量子化されたスペクトル値は、2つ以上の最上位ビットを使用して完全に符号化されてもよく、最下位ビット(または中間ビット)は残らない。対照的に、他の比較的大きなスペクトル値は、2つ以上の最上位ビットを使用し、且つ少なくとも1つの最下位ビットを使用して符号化されることができる。2つ以上の最上位ビットに加えて少なくとも1つの最下位ビットがあるような比較的大きなスペクトル値の場合、符号化器は、利用可能なビットバジェットが使い果たされているかどうかに応じて、最下位ビットを符号化するかどうかを柔軟に決定することができる。しかしながら、量子化分解能が高いほど、2つ以上の最上位ビットに加えて、1つ以上の最下位ビットを含むスペクトル値の数も多くなる。したがって、最下位ビットを符号化しないことによってビットを節約する可能性は、細かい量子化に対して特に高い。
【0049】
好ましい実施形態では、オーディオ符号化器は、少なくとも1つのスペクトル値の少なくとも2つの最上位ビットを、少なくとも1つのスペクトル値の少なくとも2つの最上位ビットを表す算術符号化表現の1つのシンボルにマッピングするように構成されている。例えば、算術符号化のコンテキストを決定するときなどに、隣接するスペクトル値の最上位ビット間の相関を利用することができるため、算術符号化表現の1つのシンボルを使用して2つ以上の最上位ビットを一緒に符号化すると特に効率的であることがわかっている。
【0050】
好ましい実施形態では、オーディオ符号化器は、2つ以上の最上位ビットが符号化され且つ2つ以上の最上位ビットおよび最下位ビットよりも多くのビットを含む全てのスペクトル値について、1つ以上の中間ビットを符号化するように構成されており、そのビット位置は、最下位ビットと2つ以上の最上位ビットの間にある。したがって、2つ以上の最上位ビットが符号化される全てのスペクトル値は、実際には良好な分解能で符号化される。そのようなスペクトル値の場合、最下位ビットを除く全てのビットが常に符号化され、これにより、良好な分解能をもたらし、ビットバジェットが使い果たされた場合に最下位ビットのみが影響を受けるという効果を有する。したがって、非常に良好な聴覚印象を維持することができる。
【0051】
好ましい実施形態では、オーディオ符号化器は、第1の符号化フェーズにおいて、スペクトル値ごとに2つ以上の最上位ビットを符号化し、また、第1の符号化フェーズにおいて、2つ以上の最上位ビットが符号化され且つ2つ以上の最上位ビット(一緒に符号化される)よりも多くのビットと最下位ビット、1つ以上の中間ビットを含むスペクトル値を符号化するように構成されており、中間ビットのビット位置は、最下位ビットと2つ以上の最上位ビットとの間にある。さらに、符号化器は、第1の符号化フェーズにおいて、2つ以上の最上位ビットが符号化され且つ2つ以上の最上位ビットと中間ビットが存在する限りは中間ビットとが非ゼロ値を示す全てのスペクトル値の符号を符号化するように構成されている。しかしながら、オーディオ符号化器は、第1の符号化フェーズにおいて、2つ以上の最上位値と中間ビットが存在する限りは中間ビットとがゼロ値を示すスペクトル値の符号の符号化を選択的に省略するように構成されている。したがって、第1の符号化フェーズでは、最上位ビットと中間ビットが最上位ビットと最下位ビットとの間に存在する限りは中間ビットとが符号化される。しかしながら、第1の符号化フェーズでは、2つ以上の最上位ビットと中間ビットとが非ゼロ値を示す場合にのみ、符号が符号化される。換言すれば、第1の符号化フェーズでは、最下位ビット値のみがゼロとは異なってスペクトル値が非常に小さい場合(2つ以上の最上位ビットのビット重みが、最上位ビットが全てゼロであるように選択される場合、これは、例えば、所与のスペクトル値のビットの重みが、所与のスペクトル値よりも大きい1つ以上の隣接するスペクトル値の影響を受ける場合に発生する)には、符号は符号化されない。
【0052】
さらに、オーディオ符号化器は、符号化フェーズに続く第2の符号化フェーズにおいて、2つ以上の最上位ビットと中間ビットが存在する限りは中間ビットとがゼロ値を示し且つ最下位ビット情報が非ゼロ値を示すスペクトル値の符号情報を選択的に符号化するように構成されている。換言すれば、最下位ビット値のみがゼロとは異なる非常に小さいスペクトル値の場合、符号は、第2の符号化フェーズにおいてのみ符号化され、所与のスペクトル値についての第2の符号化フェーズが実際に実行(または完了)されるかどうか(すなわち、最下位ビット情報が符号化されたオーディオ情報に含まれているかどうか)の決定は、ビットバジェットに依存する。したがって、いずれの場合にも符号情報が必要である最上位ビットと(中間ビットが存在する限りは)任意の中間ビットとの符号化から既に明らかでない限り、第1の符号化フェーズは効率化され、符号情報は、第2の符号化フェーズにおいてのみ符号化される(例えば、符号化オーディオ情報に含まれる)。どのスペクトル値から始めて第2の符号化フェーズが実行されるかが明確でないため、不要な情報の符号化が回避され、効率が最大化される。第2の符号化フェーズが実行されるかどうかの最終決定は、最上位ビットと中間ビットとの復号に必要なビット数、および他の最下位ビットの符号化によって既に使用されているビット数がわかっている場合にのみ行うことができる。
【0053】
好ましい実施形態では、オーディオ符号化器は、そのようなスペクトル値の最下位ビットが実際に符号化される(符号化されたオーディオ表現に含まれる)場合、最下位ビットのみがゼロとは異なるスペクトル値の符号化されたオーディオ表現に符号情報のみを含めるように構成されている。したがって、符号化されたオーディオ情報(または符号化されたオーディオ表現)に不要な情報が含まれることを回避することができる。換言すれば、最下位ビットを考慮しない場合であっても、非ゼロである全てのスペクトル値の符号情報が含まれる。最下位ビットを考慮するときにのみ非ゼロであるスペクトル値の場合、最下位ビット情報が実際に符号化されたオーディオ表現に含まれる場合、符号情報は、符号化されたオーディオ表現にのみ含まれる。
【0054】
好ましい実施形態では、オーディオ符号化器は、スペクトル値に関連する最下位ビット値を符号化するために、最下位ビット情報ビットシーケンスの後続のビットを順次提供するように構成されている。したがって、最下位ビットを考慮する場合にのみ非ゼロであるそのようなスペクトル値について、最下位ビット情報およびおそらくいくつかの符号情報のみを含む連続したビットシーケンスまたはビットストリームが提供される。その結果、最下位ビット情報(関連する符号情報を含む)の別個のシーケンスが存在し、これは、最上位ビットおよび中間ビット(および最下位ビットを考慮せずに残す場合であっても関連する任意の符号情報)の符号化に影響を与えることなく短縮または省略することができる。
【0055】
好ましい実施形態では、オーディオ符号化器は、2つ以上の最上位ビット値と中間ビットが存在する限りは任意の中間ビットとが非ゼロ値を示すそれぞれのスペクトル値について最下位ビット情報ビットシーケンスの単一ビットを提供するように構成されており、最下位ビット情報ビットシーケンスの使用された単一ビットは、最下位ビット値を符号化するために使用される。さらに、オーディオ符号化器は、2つ以上の最上位値と中間ビットが存在する限りは中間ビットとがゼロ値を示し且つ最下位ビット情報ビットシーケンスの提供された単一ビットがゼロ値を確認するそれぞれのスペクトル値について最下位ビット情報ビットシーケンスの単一ビットを提供するように構成されている。さらに、オーディオ符号化器は、2つ以上の最上位ビットと中間ビットが存在する限りは中間ビットとがゼロ値を示し且つ最下位ビット情報ビットシーケンスの第1の提供されたビットが最下位ビット値によるゼロ値からの偏差を示すそれぞれのスペクトル値について最下位ビット情報ビットシーケンスの後続の2ビットを提供するように構成されており、最下位ビット情報ビットシーケンスの第2の提供されたビットは、それぞれのスペクトル値の符号を符号化する。換言すれば、最下位ビット情報ビットシーケンスは、通常、スペクトル値ごとに1ビットを含むが、スペクトル値がゼロ値から最下位ビット値だけ逸脱する場合、スペクトル値ごとに2ビットを含む。後者の場合、最下位ビット情報のそれぞれの部分が実際に符号化されているか、または実際にオーディオ復号器に送信されるか、または実際にオーディオ復号器によって評価される場合にのみ必要とされることから、符号情報は、最下位ビット情報ビットシーケンスに含まれる。
【0056】
換言すれば、符号は、最上位ビットと中間ビット(存在する場合)とがゼロ値を示し且つ最下位ビットが非ゼロ値を示す(ゼロ値から最下位ビット値のみ逸脱する)スペクトル値の最下位ビット情報ビットシーケンスに選択的に含まれる。
【0057】
好ましい実施形態では、オーディオ符号化器は、最低周波数のスペクトル値に関連する最下位ビットから始まり、次第に高い周波数に関連するスペクトル値に向かって進む最下位ビットを符号化するように構成されている。したがって、最下位ビット情報によってスペクトル値を精緻化するための(例えば、1つ以上の最上位ビットよりも多くのビットを含む全てのスペクトル値を精緻化するための)符号化情報は、最低周波数のスペクトル値から「最後の」最下位ビット情報が提供されるスペクトル値までの範囲で提供される。さらに、最後の最下位ビット情報が提供されるスペクトル値に関連する周波数よりも高い関連周波数を有する(全ての)スペクトル値(2つ以上の最上位ビットよりも多くのビットを含む符号化されたスペクトル値であっても)の最下位ビット情報によってスペクトル値を精緻化するための符号化情報は提供されない。他の言い方をすれば、ビットバジェットの未使用ビットは、ビットバジェットが使い果たされるまで、最下位ビット情報によって低周波数領域のスペクトル値を精緻化するために使用される。より高い周波数領域のスペクトル値は、ビットバジェットが使い果たされた場合、最下位ビット情報によって精緻化されない。そのような手順は、最下位ビット情報を提供するときに、より低い周波数部分のスペクトル値がより高い周波数部分のスペクトル値よりも好ましいことをもたらす。これは、低周波数領域の不正確さと比較した場合に高周波数領域の不正確さによって聴覚印象が歪むことが少ないため、音響心理学的要件と一致する。したがって、オーディオ符号化器は、ビットバジェットに基づいて、どの周波数(最後の最下位ビット情報が提供されるスペクトル値)まで、ビットバジェットに応じて最下位ビット情報を使用したスペクトル値の精緻化が存在するかを柔軟に決定することができる。
【0058】
好ましい実施形態では、オーディオ符号化器は、利用可能なビットバジェットがより低い周波数範囲のスペクトル値の符号化によって使用される(使い果たされる)場合により高い周波数範囲の非ゼロスペクトル値の符号化が(例えば、完全に)省略され且つ1つ以上の最上位ビットが符号化され且つ最上位ビットよりも多くのビットを含む全てのスペクトル値について最下位ビットが符号化される第1のモードと、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが符号化されるが、1つ以上の最上位ビットが符号化され且つ最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値について最下位ビットが符号化されない第2のモードとの間で切り替え可能であるように構成されている。
【0059】
既に上述したように、そのようなモード間を切り替えることができることは、異なる環境において且つ異なるビットレート制約の下で効率的なコーディングを可能にする。第1のモードでは、符号化されるスペクトル値の数を変えることができ、ビットバジェットの枯渇に応じて、より高い周波数範囲の非ゼロスペクトル値の符号化を省略することができる。したがって、高周波数範囲での聴覚印象は低下するが、これは、例えば低ビットレート環境など、状況によっては許容できる場合がある。一方、第2のモードでは、オーディオ符号化器は、ビットバジェットに応じて最下位ビットが符号化されるスペクトル値の数を変えることができるが、少なくとも最上位ビットは、全てのスペクトル値について符号化される(高周波数領域であっても)。したがって、第2のモードでは、高周波領域において非ゼロの(量子化された)スペクトル値が完全に省略されることはないが、場合によっては、低い周波数でも符号化精度が低下することがある。第2の動作モードは、例えば、高ビットレート条件下での改善された聴覚印象をもたらすことができ、これは、高周波領域の非ゼロのスペクトル値が完全に省略される場合、大幅な劣化を被るであろう。したがって、オーディオ符号化器は、第1のモードと第2のモードとの間で切り替え可能であることにより、様々な状況およびビットレート要件に柔軟に適応することができる。
【0060】
好ましい実施形態では、オーディオ符号化器は、オーディオ符号化器が第1のモードで動作するか第2のモードで動作するかを示すために、符号化されたオーディオ情報(または符号化されたオーディオ表現)に含まれるビットストリームフラグを提供するように構成されている。したがって、オーディオ復号器は、第1の復号モードまたは第2の復号モードのどちらを使用すべきかを認識するのが容易である。オーディオ符号化器は、通常、オーディオ復号器よりも特定の状況についてより多くの知識を有するため、そのような信号にビットストリームフラグを使用することは合理的である。
【0061】
好ましい実施形態では、オーディオ符号化器は、それぞれのシンボルコードを使用して少なくとも2つのスペクトル値のスペクトル値ごとに2つ以上の最上位ビットを一緒に符号化するように構成されることができる。したがって、それぞれのシンボルコードは、少なくとも2つのスペクトル値のスペクトル値ごとに2つ以上の最上位ビットを表すことができる。スペクトル的に隣接するスペクトル値間の依存性および相関関係を利用することができるため、そのような符号化は、特に効率的であることがわかっている。また、最上位ビットのビット重みは、双方のスペクトル値に基づいて決定することができ、絶対値がより大きいスペクトル値は、双方のスペクトル値の最上位ビットの共通ビット重みを決定することができる。したがって、最上位ビットのビット重みをシグナリングするためのシグナリングオーバーヘッドは、それが2つ以上のスペクトル値について一緒にシグナリングされることができることから低減されることができる。
【0062】
好ましい実施形態では、オーディオ符号化器は、(例えば、スペクトル値を切り捨てることなく)実際の最高周波数非ゼロスペクトル値を決定し、全ての非ゼログループの(量子化された)スペクトル値の全ての非ゼロの(量子化された)スペクトル値の少なくとも2つ以上の最上位ビットを符号化するように構成されている。したがって、全ての非ゼロの(量子化された)スペクトル値の少なくとも最上位ビットが符号化されることが保証されることができ、これは、通常、良好な聴覚印象をもたらす。
【0063】
好ましい実施形態では、オーディオ符号化器は、全ての非ゼロの(量子化された)スペクトル値の最下位ビットを除く全てのビットを符号化するように構成されている。さらに、オーディオ符号化器は、ビットバジェットが使い果たされるまでスペクトル値の最下位ビットを符号化するように構成されている(例えば、最低周波数のスペクトル値から始めて、より高い周波数のスペクトル値に向かって進む)。したがって、良好な聴覚印象を達成することができ、ビットバジェットに応じて、可変数の最下位ビットのみが符号化においてスキップされる。
【0064】
好ましい実施形態では、オーディオ符号化器は、スペクトル値の量子化の量子化ステップを決定し、量子化されたスペクトル値の符号化に対するビット需要を決定するグローバルゲイン情報を取得するように構成されている。そのような(グローバルな)ゲイン情報の使用は、量子化ステップを調整するのに役立ち得ることがわかっている。しかしながら、グローバルゲイン情報を使用する場合、ビット需要を微調整することは容易ではないことも認識されている。したがって、いくつかのスペクトル値の最下位ビットの符号化を選択的に省略する概念を使用して、グローバルゲイン情報の使用によって引き起こされるビット需要の調整の不正確さを補償することができる。しかしながら、グローバルゲイン情報の使用と本明細書に記載された符号化概念との組み合わせは、比較的低い計算複雑性を有し、さらに音声品質とビットレートとの間の良好なトレードオフを可能にするシステムを形成することがわかっている。特に、所与の固定ビットレートは、符号化されるべき最下位ビットの数を柔軟に決定することにより、グローバルゲイン情報の複雑さの調整が低くても十分に利用することができる。
【0065】
本発明にかかる実施形態は、入力オーディオ情報に基づいて符号化されたオーディオ情報を提供するオーディオ符号化器を形成する。オーディオ符号化器は、入力オーディオ情報のオーディオコンテンツを表すスペクトル値を取得するように構成されている。オーディオ符号化器は、スペクトル値を表す符号化情報を取得するために、少なくとも複数のスペクトル値を符号化するように構成されている。オーディオ符号化器は、複数のスペクトル値のそれぞれのシンボルコードを使用して1つ以上の最上位ビットを符号化し、1つ以上のスペクトル値の1つ以上の最下位ビットを符号化するように構成されており、それぞれのシンボルコードは、1つ以上のスペクトル値の1つ以上の最上位ビット値を表す。オーディオ符号化器は、低周波数範囲の符号化されたスペクトル値によって利用可能なビットバジェットが使用され(例えば、使い果たされた場合)且つ1つ以上の最上位ビットが符号化され且つ最上位ビットよりも多くのビットを含む全てのスペクトル値について最下位ビットが符号化される場合に、より高い周波数範囲の非ゼロスペクトル値の符号化が(例えば、完全に)省略される第1のモードと、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが符号化されるが、1つ以上の最上位ビットが符号化され且つ最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値の最下位ビットは符号化されない第2のモードとの間で切り替え可能に構成されている。オーディオ符号化器は、スペクトル値を表す符号化情報を使用して符号化されたオーディオ情報を提供するように構成されている。
【0066】
このオーディオ符号化器は、同様のオーディオ符号化器および同様のオーディオ復号器について上述した考慮事項に基づいている。特に、オーディオ符号化器は、第1のモードと第2のモードとの間で切り替え可能である一方で、様々な符号化状況とビットレート要件に適応することができる。
【0067】
好ましい実施形態では、オーディオ符号化器は、第2のモードにおいて、全ての非ゼロのスペクトル値または全ての非ゼロのスペクトル値のグループの1つ以上の最上位ビットを符号化するように構成されている。したがって、良好な聴覚印象を得ることができる。
【0068】
好ましい実施形態では、オーディオ符号化器は、第1のモードで動作するとき、(例えば、高い周波数範囲における)1つ以上のスペクトル値が、スペクトル値の符号化において考慮されないように、ビットバジェットが不十分である場合にスペクトル値が符号化される周波数範囲を制限するように構成されている。したがって、ビットバジェットに応じて、周波数範囲の選択的制限が第1のモードにおいて使用され、周波数範囲の制限は、ビットの節約に役立つ。
【0069】
好ましい実施形態では、オーディオ符号化器は、第1のモードで動作するとき、最大周波数値を決定し、第1のモードで動作するとき、最大周波数までのスペクトル値を符号化し、第1のモードで動作するとき、スペクトル値が非ゼロである(または非ゼロの最上位ビットを有する)場合であっても、最大周波数を超えるスペクトル値を符号化されないままにするように構成されている。さらに、オーディオ符号化器は、第1のモードで動作するとき、計算または推定されたビット需要がビットバジェットを超える場合に符号化されるスペクトル値の数が削減されるように、全てのスペクトル値を符号化するためのビット需要の計算または推定に応じて最大周波数値を選択するように構成されている。さらに、オーディオ符号化器は、第2のモードで動作するとき、(例えば、実際の最大周波数値と等しくなるように)最大周波数値を決定し、第2のモードで動作するとき、最大周波数までのスペクトル値を符号化し、第2のモードで動作するとき、最大周波数を超えるスペクトル値を符号化されないままにするように構成されている。第2のモードで動作する場合、最大周波数値は、全ての非ゼロスペクトル値または全ての非ゼログループのスペクトル値の少なくとも1つ以上の最上位ビットが符号化され且つ最大でゼロ値のスペクトル値が符号化されないままであるように選択される。換言すれば、オーディオ符号化器は、様々なモードで最大周波数値を選択するための様々な基準を使用する。第1のモードでは、ビット要求に応じて最大周波数値が選択され、ビットバジェットが小さすぎる場合、非ゼロの(量子化された)スペクトル値は、符号化されないままになる。一方、第2のモードでは、最大周波数値は、非ゼロ値に量子化された全てのスペクトル値について、少なくとも1つ以上の最上位ビットが符号化されるように選択される。したがって、ビットバジェットの枯渇に対処するために、様々な概念が使用される。第1のモードでは、ビットバジェットの枯渇は、最大周波数値を低減することによって処理される。第2のモードでは、ビットバジェットの枯渇は、最上位ビットが符号化される1つ以上のスペクトル値の最下位値の符号化を省略することによって処理される。
【0070】
好ましい実施形態では、オーディオ符号化器は、最大周波数を記述する情報を符号化されたオーディオ情報に含めるように構成されている。したがって、オーディオ復号器は、いくつのスペクトル値を復号すべきかを知っている。最大周波数を記述する情報は、ビットバジェットの枯渇に起因する、また、最大周波数を超える全てのスペクトル値がゼロ(例えば、実際には切り捨てなしでもゼロ)であるという信号に起因する、符号化された(および復号された)スペクトル値の数の制限の双方のために使用されることができる。
【0071】
好ましい実施形態では、オーディオ符号化器は、利用可能なビットレートに応じて第1のモードまたは第2のモードのどちらを使用するかをモード決定するように構成されている(例えば、第1のモードが、比較的小さいビットレートに使用され、第2のモードが比較的高いビットレートに使用されるように)。
【0072】
第2のモードは、ビットレートが高い場合のビットバジェットの枯渇への対処に良好に適しているため、そのようなメカニズムは有用である。対照的に、ビットレートが比較的低い場合、第1のモードは、第2のモードよりも良好な結果をもたらすことがある。
【0073】
他の好ましい実施形態では、オーディオ符号化器は、最上位ビット符号化ステップにおいて符号化された1つ以上の最上位ビットに加えて、その符号化は、ビット需要とビットバジェットとに応じて選択的に省略されることができる1つ以上の最下位ビットを含む、スペクトル値またはスペクトル値のグループの数に関する情報に応じて、第1のモードまたは第2のモードのどちらを使用するかのモード決定を行うように構成されている。第2のモードは、(量子化後に)最下位ビットが多数ある場合に最適であるため、そのような概念は役立つ。そのような多数の最下位ビットは、例えば、高ビットレートの場合に存在し、この場合、符号化は、高分解能で行うことができる(そして、細かい量子化を使用することができる)。
【0074】
好ましい実施形態では、オーディオ符号化器は、オーディオ符号化器が第1のモードで動作するか第2のモードで動作するかを示すビットストリームフラグを符号化されたオーディオ情報に含めるように構成されている。したがって、オーディオ復号器には、どの復号モードを使用するべきかが通知されることができる。
【0075】
好ましい実施形態では、オーディオ符号化器は、第1のモードにおいて、そのビット位置が最下位ビットと1つ以上の最上位ビットとの間にある中間ビットと、所与のスペクトル値に関連付けられた最下位ビットとを、連続したビットシーケンスに符号化するように構成されている。さらに、オーディオ符号化器は、第2のモードにおいて、そのビット位置が最下位ビットと1つ以上の最上位ビットとの間にある中間ビットと、所与のスペクトル値に関連付けられた最下位ビットとを、別個のビットシーケンスまたはビットシーケンスの別個の非連続ビット位置(またはビットストリーム部分)に符号化するように構成されている。したがって、第1のモードで動作するとき、中間ビットと最下位ビットの双方を表す連続したビットシーケンスがある。対照的に、第2のモードで動作する場合、中間ビットと最下位ビットは、別個のシーケンスに(または共通シーケンスの別個の部分に)提供され、これは、最下位ビットを表すシーケンスの単純な短縮を可能にする。したがって、符号化が完了した後であっても、ビットバジェットへの適応が容易に可能である。これは、ビットバジェットへの適応を容易にする。
【0076】
好ましい実施形態では、オーディオ符号化器は、第1のモードで動作するとき、そのビット位置が最下位ビットと1つ以上の最上位ビットとの間にある中間ビットと、最下位ビットとに関連するビットシーケンスのスペクトル値に関連する符号情報を符号化するように構成されている。さらに、オーディオ符号化器は、第2のモードで動作するとき、最下位ビット値のみがゼロから逸脱するスペクトル値の符号情報が最下位ビット(および符号情報)に関連するビットシーケンスに符号化されるように、そのビット位置が最下位ビットと1つ以上の最上位ビットとの間にある中間ビットに関連するビットシーケンス、または最下位ビット(および符号情報)に関連するビットシーケンスのスペクトル値に関連する符号情報を選択的に符号化するように構成されている。したがって、最下位ビット情報が評価されるときにのみ符号情報が必要とされる場合、符号情報は、最下位ビット(および符号情報)に関連するビットシーケンス内に配置される。したがって、符号化されたオーディオ表現に常に含まれる情報、すなわち、中間ビットおよび符号情報に関連するビットシーケンスは、最下位ビット情報が省略される場合に不要ないかなる情報も含まない。これは、ビットレートのスケーラビリティを簡素化する。
【0077】
本発明にかかる実施形態は、入力オーディオ情報に基づいて符号化されたオーディオ情報を提供するオーディオ復号器を形成する。オーディオ符号化器は、(例えば、MDCT変換を使用して)入力オーディオ情報のオーディオコンテンツを表すスペクトル値を取得するように構成されている。オーディオ符号化器は、スペクトル値を表す符号化情報を取得するために、少なくとも複数のスペクトル値を符号化するように構成されている。オーディオ符号化器は、スペクトル値の量子化の量子化ステップを決定し、量子化されたスペクトル値を符号化するためのビット需要を決定する(グローバル)ゲイン情報を取得するように構成されている。オーディオ符号化器は、算術符号化を使用して複数のスペクトル値のそれぞれのシンボルコードを使用して1つ以上の最上位ビットを符号化し、1つ以上のスペクトル値の1つ以上の最下位ビットを符号化するように構成されており、それぞれのシンボルコードは、1つ以上のスペクトル値のスペクトル値ごとに1つ以上の最上位ビットを表す。オーディオ符号化器は、利用可能なビットバジェットに応じて、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが符号化される一方で、1つ以上の最上位ビットが符号化され且つ1つ以上の最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値について最下位ビットが符号化されないように、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットを符号化するように構成されている。さらに、オーディオ符号化器は、スペクトル値を表す符号化情報を使用して、符号化されたオーディオ情報を提供するように構成されている。
【0078】
このオーディオ符号化器は、ゲイン情報(またはグローバルゲイン情報)の使用が量子化の定義に役立つという知見に基づいている。また、最下位ビットを選択的に符号化するという概念は、この概念と組み合わせると非常に効率的である。詳細については、上記の説明も参照されたい。
【0079】
好ましい実施形態では、オーディオ符号化器は、スペクトル値のグループのエネルギー(例えば、MDCT係数)に基づいてゲイン情報の第1の推定値を取得するように構成されている。さらに、オーディオ符号化器は、ゲイン情報の第1の推定値を使用してスペクトル値のセット(例えば、MDCTスペクトル)を量子化するように構成されている。さらに、オーディオ符号化器は、ゲイン情報の第1の推定値を使用して、または精緻化されたゲイン情報を使用して、量子化されたスペクトル値のセットを符号化するために必要なビット数を計算または推定するように構成されている。さらに、オーディオ符号化器は、必要なビット数に応じて、第1のモードを使用するか第2のモードを使用するかを決定するように構成されている。したがって、量子化に関する決定、およびどのモードを使用するかの決定も、効率的な方法で行うことができる。反復手順を選択するかどうかに応じて、スペクトル値のセットを符号化するために必要なビット数は、ゲイン情報の第1の推定値に応じた量子化を使用して、または反復的に精緻化されたゲイン情報に応じた量子化を使用して推定されることができる。したがって、量子化精度の決定の複雑さを合理的に小さく保つことができる。
【0080】
好ましい実施形態では、オーディオ符号化器は、上述した第1のモードと第2のモードとの間で切り替え可能であるように構成されている。特に、オーディオ符号化器は、必要なビット数と、1つ以上の最上位ビットよりも多くのビットを含むスペクトル値の数を示す基準とに応じて、第1のモードまたは第2のモードのどちらを使用するかを決定するように構成されている。特に、使用されるゲイン情報(第1の推定値または精緻化されたゲイン情報)を決定した後に決定することができる必要なビット数がビットバジェットと比較されることができ、どのモードを使用するかを決定することは、この比較と、1つ以上の最上位ビットよりも多くのビットを含むスペクトル値の数を示す基準との双方に依存することができる。したがって、1つ以上の最上位ビットに加えて1つ以上の最下位ビットを含む多くのスペクトル値がある場合、第2のモードを使用することができる。
【0081】
好ましい実施形態では、オーディオ符号化器は、上述した第1のモードと第2のモードとの間で切り替え可能であるように構成されている。この場合、オーディオ符号化器は、ビットレートが閾値ビットレート以上である場合およびスペクトル値のセットを符号化するために必要な計算または推定ビット数がビットバジェットよりも多い場合に第2のモードが選択されるように、必要なビット数とビットレートに応じて第1のモードまたは第2のモードのどちらを使用するかを決定するように構成されることができる。第2のモードの使用は、前記の場合に特に役立つことが示されている。
【0082】
さらに、オーディオ符号化器はまた、前述した他の特徴のいずれかによって補足されることもできる。前述した同じ利点がまた適用される。
【0083】
本発明にかかるさらなる実施形態は、符号化されたオーディオ情報に基づいて復号されたオーディオ情報を提供する方法と、入力オーディオ情報に基づいて符号化されたオーディオ情報を提供する方法とを形成する。これらの方法は、それぞれのオーディオ復号器およびそれぞれのオーディオ符号化器に対応し、対応するオーディオ復号器またはオーディオ符号化器に関して本明細書で説明する特徴および機能のいずれかによって補足されることができる。
【0084】
本発明にかかるさらなる実施形態は、本明細書に記載される方法のいずれかを実行するコンピュータプログラムを備える。
【0085】
さらなる実施形態は、上述したものと同じ検討に基づいており且つ本明細書で述べたように符号化および復号される情報項目のいずれかによって補足されることができるビットストリームを含む。
【0086】
次に、本発明にかかる実施形態を、添付の図面を参照して説明する。
【図面の簡単な説明】
【0087】
【
図1】本発明の実施形態にかかる、オーディオ復号器のブロック概略図を示している。
【
図2】本発明の他の実施形態にかかる、オーディオ復号器のブロック概略図を示している。
【
図3】本発明の実施形態にかかる、オーディオ符号化器のブロック概略図を示している。
【
図4】本発明の実施形態にかかる、オーディオ符号化器のブロック概略図を示している。
【
図5】本発明の実施形態にかかる、オーディオ符号化器のブロック概略図を示している。
【
図6】本発明の実施形態にかかる、他のオーディオ符号化器のブロック概略図を示している。
【
図7】本発明の他の実施形態にかかる、オーディオ復号器のブロック概略図を示している。
【
図8】本発明の実施形態にかかる、オーディオ符号化器の機能のフローチャートを示している。
【
図9】本発明の実施形態にかかる、オーディオ復号器の機能のフローチャートを示している。
【
図10a】本発明の実施形態にかかる、オーディオ符号化器の機能の擬似プログラムコード表現を示している。
【
図10b】本発明の実施形態にかかる、オーディオ符号化器の機能の擬似プログラムコード表現を示している。
【
図10c】本発明の実施形態にかかる、オーディオ符号化器の機能の擬似プログラムコード表現を示している。
【
図10d】本発明の実施形態にかかる、オーディオ符号化器の機能の擬似プログラムコード表現を示している。
【
図10e】本発明の実施形態にかかる、オーディオ符号化器の機能の擬似プログラムコード表現を示している。
【
図10f】本発明の実施形態にかかる、オーディオ符号化器の機能の擬似プログラムコード表現を示している。
【
図11a】本発明の実施形態にかかる、オーディオ復号器の機能の擬似プログラムコード表現を示している。
【
図11b】本発明の実施形態にかかる、オーディオ復号器の機能の擬似プログラムコード表現を示している。
【
図11c】本発明の実施形態にかかる、オーディオ復号器の機能の擬似プログラムコード表現を示している。
【
図11d】本発明の実施形態にかかる、オーディオ復号器の機能の擬似プログラムコード表現を示している。
【
図12】従来のオーディオ符号化器/復号器によって生成された信号対雑音比のグラフィック表現を示している。
【
図13】本発明にかかるオーディオ符号化器/復号器によって提供される信号対雑音比のグラフィック表現を示している。
【
図14】本発明の実施形態にかかる、オーディオ符号化およびオーディオ復号の方法のフローチャートを示している。
【
図15】本発明の実施形態にかかる、オーディオ符号化およびオーディオ復号の方法のフローチャートを示している。
【
図16】本発明の実施形態にかかる、オーディオ符号化およびオーディオ復号の方法のフローチャートを示している。
【
図17】本発明の実施形態にかかる、オーディオ符号化およびオーディオ復号の方法のフローチャートを示している。
【
図18】本発明の実施形態にかかる、オーディオ符号化およびオーディオ復号の方法のフローチャートを示している。
【発明を実施するための形態】
【0088】
1).図1にかかるオーディオ復号器
図1は、本発明の実施形態にかかるオーディオ復号器100のブロック概略図を示している。
【0089】
オーディオ復号器100は、符号化されたオーディオ情報110を受信し、それに基づいて復号されたオーディオ情報112を提供するように構成されている。オーディオ復号器100は、スペクトル値を表す符号化情報130に基づいて復号されたスペクトル値132を取得するように構成されており、符号化情報130は、符号化されたオーディオ情報110の一部とすることができる。さらに、符号化されたオーディオ情報110は、必要に応じて、ノイズシェーピング情報、制御情報などのようなさらなる情報を含むことができる。
【0090】
オーディオ復号器は、算術復号を使用したスペクトル値のセットについて、それぞれのシンボルコード(例えば、最上位ビットの算術符号化された表現のシンボルコード)に基づいて、スペクトル値ごと(例えば、量子化されたスペクトル値ごと)に2つ以上の最上位ビットを一緒に復号するように構成されている。それぞれのシンボルコードは、1つ以上のスペクトル値のスペクトル値ごとに2つ以上の最上位ビットを表すことができる。算術的に符号化されたシンボルコードは、例えば、スペクトル値を表す符号化情報130の一部とすることができる。
【0091】
さらに、オーディオ復号器は、どれだけの最下位ビット情報が利用可能であるかに応じて、1つ以上のスペクトル値に関連する1つ以上の最下位ビットを復号するように構成されている。最下位ビットの表現と見なすことができる最下位ビット情報はまた、スペクトル値を表す符号化情報130の一部とすることができる。
【0092】
特に、オーディオ復号器は、(量子化された)スペクトル値の1つ以上に関連付けられた1つ以上の最下位ビットが復号されるが、1つ以上の最上位ビットが復号され(または復号された)且つ1つ以上の最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値の最下位ビットは復号されないように、どれだけの最下位ビット情報が利用可能であるかに応じて、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットを復号するように構成されることができる。
【0093】
換言すれば、オーディオ復号器は、2つ以上の最上位ビットが復号された一部のスペクトル値の最下位ビットを復号するように構成されることができ、オーディオ復号器は、1つ以上の最上位ビットが復号された一部の他のスペクトル値の1つ以上の最下位ビットの復号を省略することができる。
【0094】
さらに他の言い方をすれば、オーディオ復号器は、例えば、最上位ビットが復号されたスペクトル値の真のサブセットのみを精緻化することができ、最下位ビットによって精緻化されるスペクトル値の数は、どれだけの最下位ビット情報が利用可能であるか(例えば、ビットバジェット制約を考慮して、オーディオ復号器によって符号化されたオーディオ情報110にどれだけの最下位ビット情報が含まれるか)に依存する。
【0095】
オーディオ復号器100は、必要に応じて、本明細書で説明される特徴、機能および詳細のいずれかによって、個別にまたは組み合わせて補足されることができる。
【0096】
2).図2にかかるオーディオ復号器
図2は、本発明の実施形態にかかる、オーディオ復号器200のブロック概略図を示している。
【0097】
オーディオ復号器200は、オーディオ情報210を受信および符号化し、それに基づいて、復号されたオーディオ情報212を提供するように構成されている。
【0098】
符号化オーディオ情報210は、例えば、スペクトル値を表す符号化情報230を含むことができ、スペクトル値を表す符号化情報230は、例えば、1つ以上の最上位ビットおよび符号の最下位ビットの表現を表す算術的に符号化されたシンボルコードを含むことができる。符号化されたオーディオ情報210は、例えば、ノイズシェーピング情報の制御情報のようなさらなる情報を必要に応じて含むことができる。任意のさらなる情報もまた、復号プロセスにおいて使用されてもよいが、本発明にとって必須ではない。
【0099】
オーディオ復号器は、スペクトル値を表す符号化情報230に基づいて、復号されたスペクトル値232を取得するように構成されている。
【0100】
オーディオ復号器は、複数のスペクトル値のそれぞれのシンボルコードに基づいて(例えば、算術符号化されたシンボルコードに基づいて)1つ以上の最上位ビットを復号し、1つ以上のスペクトル値の1つ以上の最下位ビットを復号するように構成されている。例えば、オーディオ復号器は、算術的に符号化されたシンボルコードと、符号化情報130に含まれることができる最下位ビットの表現とを使用することができる。
【0101】
オーディオ復号器200は、符号化器からのシグナリングに応答してより高い周波数範囲のスペクトル値の復号が省略され(例えば、完全に省略される)且つ1つ以上の最上位ビットが復号され且つ最上位ビットよりも多くのビットを含む全てのスペクトル値の最下位ビットが復号される第1のモードと、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが復号されるが、1つ以上の最上位ビットが復号され且つ最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値についての最下位ビットは復号されない第2のモードとの間で切り替え可能に構成されている。換言すれば、第1のモードでは、オーディオ復号器200は、例えば、より高い周波数範囲(例えば、符号化器によって指定された周波数よりも上)のスペクトル値の復号を省略しながら、より低い周波数範囲(例えば、オーディオ符号化器によって決定されてシグナリングされた周波数まで)のスペクトル値のみを復号することができる。しかしながら、第1のモードでは、最上位ビット、任意の中間ビットおよび任意の最下位ビットが、より低い周波数範囲の全てのスペクトル値について復号されるように、スペクトル値の全数表現が低周波数範囲の全てのスペクトル値について復号されることができる。対照的に、第2のモードでは、オーディオ復号器は、1つ以上の最上位ビットが復号される一部のスペクトル値の最下位ビットのみを復号することができるが、1つ以上の最上位ビットが復号される全てのスペクトル値については復号することができない。したがって、第2のモードでは、最下位ビットは、1つの周波数領域では復号されることができるが、他の周波数領域(例えば、より高い周波数領域)では復号されない。
【0102】
さらに、オーディオ復号器200は、スペクトル値232を使用して復号されたオーディオ情報212を提供するように構成されている。例えば、オーディオ復号器200は、復号されたスペクトル値232のさらなる処理を含むことができるが、その詳細は、本発明の主題には特に関連しない。
【0103】
さらに、オーディオ復号器200は、個別にまたは組み合わせて、本明細書で説明される特徴、機能および詳細のいずれかによって補足されることができることに留意されたい。
【0104】
3).図3にかかるオーディオ符号化器
図3は、本発明の実施形態にかかる、オーディオ符号化器300のブロック概略図を示している。オーディオ符号化器300は、入力オーディオ情報310を受信し、(符号化されたオーディオ情報110、210に対応することができる)符号化されたオーディオ情報312を提供するように構成されている。オーディオ符号化器300は、入力オーディオ情報310のオーディオコンテンツを表すスペクトル値330を取得するように構成されている。例えば、オーディオ復号器300は、必要に応じて、例えば、スペクトル値330を取得するために、時間領域からスペクトル領域への変換(例えば、MDCT)および/またはスペクトルシェーピング(時間領域および/またはスペクトル領域における)のような任意の形態の前処理を含むことができる。
【0105】
スペクトル値330は、例えば、符号付きバイナリ表現における量子化された(好ましくは整数)値とすることができる。さらに、オーディオ符号化器は、スペクトル値330を表す符号化情報350を取得するために、少なくとも複数のスペクトル値330を符号化するように構成されている。オーディオ符号化器300は、例えば、スペクトル値を表す符号化情報350を使用して符号化されたオーディオ情報312を提供するように構成されることができる。しかしながら、オーディオ符号化器300は、必要に応じて、符号化されたオーディオ情報312にも含まれる(しかし、その詳細は本発明に特に関連しない)制御情報またはノイズシェーピング情報のようなさらなる情報を提供することもできる。
【0106】
オーディオ符号化器300は、算術符号化を使用してスペクトル値のセットのそれぞれのシンボルコードを取得するために、スペクトル値ごとに2つ以上の最上位ビットを一緒に符号化するように構成されている。それぞれのシンボルコードは、例えば、1つ以上のスペクトル値のスペクトル値ごとに2つ以上の最上位ビットを表すことができる。
【0107】
オーディオ符号化器は、さらに、1つ以上のスペクトル値に関連する1つ以上の最下位ビットが符号化されるが、2つ以上の最上位ビットが符号化され且つ2つ以上の最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値については最下位ビットが符号化されないように、ビットバジェットに応じて1つ以上のスペクトル値330に関連する1つ以上の最下位ビットを符号化するように構成されている。
【0108】
例えば、オーディオ符号化器300は、より低い周波数部分のスペクトル値についての符号化された最下位ビットのみを提供することができるが、より高い周波数部分のスペクトル値については提供することができない。どのスペクトル値に最下位ビットが提供されるかを選択することにより、いくつかのビットをビットバジェットに適合させることができる。
【0109】
さらに、
図3にかかるオーディオ符号化器は、個別にまたは組み合わせて、本明細書で説明される特徴、機能および詳細のいずれかを使用して補足されることができることに留意されたい。
【0110】
4).図4にかかるオーディオ符号化器
図4は、本発明の実施形態にかかる、オーディオ符号化器400のブロック概略図を示している。
【0111】
オーディオ符号化器400は、入力オーディオ情報410を受信し、それに基づいて、符号化されたオーディオ情報412を提供するように構成されている。オーディオ符号化器は、入力オーディオ情報410のオーディオコンテンツを表すスペクトル値330(例えば、符号付きバイナリ表現で量子化された(好ましくは整数)スペクトル値とすることができる)を取得するように構成されている。例えば、任意の前処理を使用することができ、これは、例えば、時間領域から周波数領域への変換および/またはノイズシェーピングを含むことができる。さらに、量子化は、必要に応じて、スペクトル値430を取得するために使用されてもよい。
【0112】
オーディオ符号化器は、スペクトル値を表す符号化情報450を取得するために、少なくとも複数のスペクトル値430を符号化するようにさらに構成されている。オーディオ符号化器は、複数のスペクトル値のそれぞれのシンボルコードを使用して(スペクトル値の)1つ以上の最上位ビットを符号化し、1つ以上のスペクトル値の1つ以上の最下位ビットを符号化するように構成されている。それぞれのシンボルコードは、例えば、1つ以上のスペクトル値の1つ以上の最上位ビット値を表すことができる。オーディオ符号化器は、利用可能なビットバジェットがより低い周波数範囲のスペクトル値の符号化によって使用された場合(使い果たされた場合)に、より高い周波数範囲の非ゼロスペクトル値の符号化が省略され(例えば、完全に省略される)且つ1つ以上の最上位ビットが符号化され且つ最上位ビットよりも多くのビットを含む全てのスペクトル値について最下位ビットが符号化される第1のモードと、1つ以上のスペクトル値に関連付けられている1つ以上の最下位ビットが符号化されるが、1つ以上の最上位ビットが符号化され且つ1つ以上の最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値について最下位ビットが符号化されない第2のモードとの間で切り替え可能に構成されることができる。
【0113】
換言すれば、オーディオ符号化器は、例えば、第1のモードでは比較的少ない数(例えば、全ての非ゼロスペクトル値ではない)を符号化することができるが、符号化されるそれらのスペクトル値は、完全な精度で符号化される(最下位ビットを含む)。対照的に、第2のモードでは、オーディオ符号化器は、例えば、全ての非ゼロスペクトル値の少なくとも最上位ビットを符号化することができるが、分解能を下げて一部のスペクトル値を符号化することができる(例えば、対応する最下位ビットを符号化することなく)。したがって、符号化器は、例えば、複数のビットをビットバジェットに適合させるための異なるメカニズムを提供する2つのモード間で切り替え可能であり、第1のモードは、ビット数の削減のためにより高い周波数範囲のスペクトル値の符号化の省略に依存し、第2のモードは、一部のスペクトル値(最上位ビットとおそらくは一部の中間ビットのみが符号化され、「部分的に符号化」される)の最下位ビットの省略に依存する。
【0114】
図4にかかるオーディオ符号化器400は、個別にまたは組み合わせて、本明細書で説明される任意の特徴、機能および詳細によって補足されることができる。
【0115】
5).図5にかかるオーディオ符号化器
図5は、本発明の実施形態にかかる、オーディオ符号化器500のブロック概略図を示している。オーディオ符号化器500は、入力オーディオ情報510を受信し、それに基づいて、符号化されたオーディオ情報512を提供するように構成されている。オーディオ符号化器は、入力オーディオ情報510のオーディオコンテンツを表すスペクトル値530を取得するように構成されている。例えば、オーディオ符号化器は、修正離散コサイン変換(MDCT)を使用して、スペクトル値530を取得することができる。一般的に言えば、オーディオ符号化器500は、必要に応じて、時間領域から周波数領域への変換およびノイズシェーピングなどの任意の種類の前処理を使用することができ、オーディオ符号化器500は、必要に応じて、量子化も使用することができる。例えば、スペクトル値530は、量子化されたスペクトル値であってもよく、またはノイズシェーピングおよび量子化されたMDCT係数であってもよい。
【0116】
オーディオ符号化器は、スペクトル値を表す符号化情報550を取得するために、少なくとも複数のスペクトル値530を符号化するように構成されている。符号化情報550は、符号化されたオーディオ情報512の一部とすることができる。しかしながら、符号化されたオーディオ情報512はまた、必要に応じて、制御情報またはスペクトルシェーピング情報のようなさらなる情報を含んでもよい。
【0117】
オーディオ符号化器500はまた、スペクトル情報の量子化の量子化ステップを決定し、量子化されたスペクトル値を符号化するためのビット需要を決定するゲイン情報(例えば、グローバルゲイン情報)560を取得するように構成されている。
【0118】
オーディオ符号化器500は、算術符号化を使用して複数の(量子化された)スペクトル値のそれぞれのシンボルコードを使用して(量子化されたスペクトル値の)1つ以上の最上位ビットを符号化し、1つ以上の(量子化された)スペクトル値の1つ以上の最下位ビットを符号化するように構成されている。それぞれのシンボルコードは、例えば、1つ以上のスペクトル値のスペクトル値ごとに1つ以上の最上位ビットを表すことができる。
【0119】
オーディオ符号化器は、1つ以上のスペクトル値に関連付けられた1つ以上の最下位ビットが符号化されるが、1つ以上の最上位ビットが符号化され且つ1つ以上の最上位ビットよりも多くのビットを含む1つ以上の他のスペクトル値について最下位ビットが符号化されないように、利用可能なビットバジェットに応じて、1つ以上の(量子化された)スペクトル値に関連付けられた1つ以上の最下位ビットを符号化するように構成されている。例えば、オーディオ符号化器は、一部のスペクトル値について符号化された最下位ビットのみを提供することができるが、最下位ビット精緻化からの恩恵も受けるであろう他のスペクトル値については最下位ビット情報が提供されない。
【0120】
さらに、オーディオ符号化器500は、スペクトル値を表す符号化情報550を使用して符号化されたオーディオ情報512を提供するように構成されている。
【0121】
オーディオ符号化器500は、個別にまたは組み合わせて、本明細書で説明される特徴、機能および詳細のいずれかによって補足されることができることに留意されたい。
【0122】
6).図6にかかるオーディオ符号化器
図6は、本発明の実施形態にかかる、オーディオ符号化器のブロック概略図を示している。
【0123】
図6にかかるオーディオ符号化器は、全体が600で示されている。
【0124】
オーディオ符号化器600は、入力オーディオ情報610を受信し、それに基づいて、符号化されたオーディオ表現612を提供するように構成されている。
【0125】
オーディオ符号化器600は、入力オーディオ信号に何らかの種類の前処理(例えば、フィルタリング、帯域幅制限、時間領域ノイズシェーピングなど)を適用することができる任意の前処理620を含むことができる。
【0126】
オーディオ符号化器600は、必要に応じて、例えば、低遅延修正離散コサイン変換のような修正離散コサイン変換または同様の変換を実行することができる時間領域からスペクトル領域への変換630を含むことができる。時間領域からスペクトル領域への変換630は、例えば、入力オーディオ情報610、またはその前処理されたバージョン622を受信し、スペクトル値632を提供することができる。
【0127】
オーディオ符号化器600は、必要に応じて、スペクトル値632を受信し、例えば、ノイズシェーピングを実行することができる(さらなる)前処理を含むことができる。例えば、(さらなる)前処理640は、スペクトルノイズシェーピングおよび/または時間的ノイズシェーピングを実行することができる。必要に応じて、前処理640は、例えば、(例えば、心理音響モデルによって決定されることができる)周波数帯域の心理音響関連性にしたがって、異なる周波数帯域(「スケールファクタ帯域」)をスケーリングするためにスケールファクタを適用することができる。したがって、前処理されたスペクトル値642を取得することができる。
【0128】
オーディオ符号化器600は、必要に応じて、例えば、スペクトル値632または前処理されたスペクトル値642をスケーリングすることができるスケーリング650を含むことができる。例えば、スケーリング650は、グローバルゲインを使用してスペクトル値632または前処理されたスペクトル値642をスケーリングし、それによってスケーリングされたスペクトル値652を提供することができる。
【0129】
オーディオ符号化器600はまた、スペクトル値632、前処理されたスペクトル値642、またはスケーリングされたスペクトル値652を受信することができる量子化(または量子化器)660も含む。量子化660は、例えば、スペクトル値632または前処理されたスペクトル値642またはスケーリングされたスペクトル値652を量子化し、それにより、例えば符号付き整数値とすることができ且つ例えばバイナリ表現で表現されることができる(例えば、2の補数表現で)、量子化されたスペクトル値662を取得することができる。量子化されたスペクトル値662は、例えば、Xqによって指定されることができる。例えば、所定の数の256、512、1024、または2048の量子化されたスペクトル値をフレームごとに提供することができ、異なる周波数が量子化されたスペクトル値に関連付けられる。
【0130】
符号化器600はまた、量子化されたスペクトル値662(Xq)を受信し、それに基づいて、(量子化された)スペクトル値672を表す符号化情報を提供することができる符号化670を含むこともできる。
【0131】
量子化されたスペクトル値662は、スペクトル値330、430、530に対応することができ、スペクトル値を表す符号化情報672は、スペクトル値を表す符号化情報350、450、550に対応することができることに留意されたい。さらに、符号化670は、例えば、符号化器300、400、500に関して説明された機能を実行することができることに留意されたい。しかしながら、符号化670はまた、(例えば
図8を参照して)以下に説明される機能、または前記機能の少なくとも一部を含むこともできる。
【0132】
オーディオ符号化器600はまた、必要に応じて、符号化情報672に後処理を適用することができる後処理680を含む。
【0133】
したがって、符号化された表現612が提供され、これは、通常、符号化情報672を含む。しかしながら、符号化されたオーディオ表現612は、必要に応じて、制御情報およびノイズシェーピングに関する情報(スケールファクタ情報、線形予測係数など)のような追加情報も含むことができる。符号化されたオーディオ表現は、必要に応じて、グローバルゲイン情報および/または符号化モード情報/復号モード情報および/または「lastnz」情報を含むこともできる。
【0134】
結論として、本明細書に開示されるスペクトル値の符号化の概念は、例えば、オーディオ符号化器600において実装されることができ、本明細書で説明されるスケールファクタ符号化の一部または全ての特徴のみがオーディオ符号化器600で引き継がれることができる。
【0135】
7).図7にかかるオーディオ復号器
図7は、本発明の実施形態にかかる、オーディオ復号器700のブロック概略図を示している。オーディオ復号器700は、(例えば、符号化されたオーディオ表現612に対応することができる)符号化されたオーディオ情報710を受信するように構成されており、それに基づいて、復号されたオーディオ情報712を提供することができる。オーディオ符号化器700は、例えば、符号化されたオーディオ情報またはその一部を受信し、それに基づいて量子化されたスペクトル値722(これもX
qによって指定される)を提供する復号720を含むことができる。例えば、復号720は、バイナリ表現(例えば、2の補数表現)で符号付き整数値を提供することができる。
【0136】
オーディオ復号器700は、必要に応じて、量子化されたスペクトル値を受信し且つ逆量子化を実行することができる逆量子化器730を含む。例えば、逆量子化器730は、グローバルゲイン情報を使用して、逆量子化によって実行されるマッピングを調整することができる。
【0137】
オーディオ復号器700は、必要に応じて、逆量子化器によって提供される逆量子化されたスペクトル値732を受信することができ且つスケーリングを実行することによって逆量子化およびスケーリングされたスペクトル値742を取得することができるスケーリング740を含む。スケーリングは、必要に応じて、グローバルゲインに依存することができる。
【0138】
オーディオ復号器700はまた、必要に応じて、逆量子化されたスペクトル値730または逆量子化およびスケーリングされたスペクトル値742を受信することができ且つスペクトルシェーピングを実行することができる後処理750を含むことができる。例えば、スペクトルシェーピングは、スペクトルノイズシェーピングであってもよく、および/またはスケールファクタを使用する異なる周波数帯域のスケーリングに基づいてもよく、および/または線形予測係数を使用するスペクトルシェーピングに基づいてもよい(スペクトルシェーピングを制御する情報は、符号化されたオーディオ情報に含めることができる)。
【0139】
オーディオ復号器700はまた、必要に応じて、逆量子化されたスペクトル値732、逆量子化およびスケーリングされたスペクトル値742または後処理750によって提供される後処理された(例えば、スペクトル的にシェーピングされた)スペクトル値752を受信することができる、スペクトル領域から時間領域への変換760を含むことができる。スペクトル領域から時間領域への変換は、例えば、逆修正離散コサイン変換、または低遅延逆修正離散コサイン変換、または任意の他のスペクトル領域から時間領域への変換を実行することができ、それにより、スペクトル領域から時間領域への変換によって受信された入力情報に基づいて、時間領域のオーディオ表現762を取得することができる。
【0140】
時間領域オーディオ表現762は、例えば、(任意の)後処理770に入力されることができ、これは、1つ以上の後処理ステップを実行することができ、例えば、時間領域スペクトルシェーピング(例えば、LPCフィルタリングを使用してスペクトル領域においてスペクトルシェーピングが実行されない場合)も実行することができる。
【0141】
したがって、復号されたオーディオ情報712は、スペクトル領域から時間領域への変換762の出力に基づいて提供されてもよく、おそらく何らかの形態の後処理および/またはフレームリンク(重畳加算演算のような)を使用して取得されてもよい。
【0142】
結論として、オーディオ復号器700は、いくつかのオーディオ復号機能を実行することができ、例えば、ノイズシェーピングまたはスペクトルシェーピングに関する詳細は、実装ごとに大幅に変化することができる。スペクトルシェーピングまたはノイズシェーピングは、スペクトル領域で(すなわち、スペクトル領域から時間領域への変換前に)および/または時間領域で(例えば、スペクトル領域から時間領域への変換後に)実行されることができる。
【0143】
しかしながら、符号化されたオーディオ情報710は、符号化されたオーディオ情報110、210に対応することができ、符号化されたオーディオ情報710は、追加の制御情報およびスペクトルシェーピングを調整するための情報を含むことができることに留意されたい。さらに、量子化されたスペクトル値722は、例えば、復号されたスペクトル値132、232に対応することができる。
【0144】
また、復号720は、オーディオ復号器100、200に関して説明された機能の一部または全てを実行することができる。
【0145】
また、復号720は、個別にまたは組み合わせて、本明細書で開示されるスペクトル値(またはスペクトル係数)の復号に関して本明細書で説明される特徴、機能および詳細のいずれかによって補足されることができる。
【0146】
8).図8にかかるオーディオ符号化(スペクトル値符号化)
図8は、本明細書で説明されるオーディオ符号化器のいずれかによって実行されることができる機能のフローチャートを示している。
【0147】
図8を参照して(また、以下の図に関しても)説明される機能の一部または全てを、
図3、
図4、
図5、および
図6のオーディオ符号化器に引き継ぐことができることに留意されたい。
【0148】
図8は、典型的には量子化されたスペクトル値とすることができるスペクトル値の符号化に焦点を合わせていることにも留意されたい。必須ではないが、スペクトル値は、バイナリの2の補数表現で表される符号付き整数値であることが好ましい。
【0149】
フローチャート800に示される機能は、グローバルゲインの第1の推定810を含む。この推定は、例えば、オーディオコンテンツのフレームに関連付けられることができるスペクトル値のセットに基づいて行われることができ、またビットバジェット(または、同等に、ビットレートバジェット)を考慮することができる。
【0150】
図8に示すように、オーディオ符号化器またはオーディオ符号化の機能はまた、グローバルゲインの第1の推定値を使用するか、または(反復的に取得することができる)グローバルゲインの精緻化された推定値を使用して、スペクトル係数(または同等に、スペクトル値)の量子化814も含む。ステップ814では、量子化されたスペクトル(量子化されたスペクトル係数または量子化されたスペクトル値によって表すことができる)を符号化するのに必要なビット数の計算または推定がある。
【0151】
ステップ818において実行される、必要なビット数のこの計算または推定に基づいて、ステップ822において、グローバルゲインを必要に応じて調整または精緻化して、それによってグローバルゲインの改善された推定値を得ることができる。
【0152】
したがって、ステップ810、814、および818、ならびに必要に応じてステップ822を実行することにより、「グローバルゲイン情報」(または、一般に、スペクトル値の量子化を記述する情報)が得られ、これにより、期待されるビット数が少なくともビットバジェットにほぼ一致するような量子化をもたらすことができる。しかしながら、複雑さの制約を考慮して、グローバルゲイン情報は、グローバルゲイン情報に応じて量子化されたスペクトル値の符号化がビットバジェットと比較して多かれ少なかれなおも消費することがあるように、非常に適切ではない場合があることに留意されたい。
【0153】
グローバルゲインの計算または量子化に関するいかなる詳細も、本発明にとって必須ではないことに留意されたい。むしろ、本発明にかかる実施形態は、ビットバジェットに過度に違反することなくスペクトル値が符号化されることができるように、量子化されたスペクトル値を提供する任意のメカニズムによって機能する。
【0154】
機能800は、モード決定830を実行することをさらに含む。しかしながら、1つのモード(本明細書では「第2のモード」として指定される)のみを使用するオーディオ符号化器も可能であるため、モード決定の実行は、任意と見なすことができる。モード決定830は、必要に応じて、最後に符号化された係数のモード依存識別を含む。モード決定に応じて、最後に符号化された係数の決定は、異なる方法で実行されてもよい。
【0155】
「第1のモード」が使用される場合、ビットを節約するために(およびビットバジェット内にとどまるために)いくつかの非ゼロスペクトル値を符号化しないようにする決定が存在することができる。この場合、最後に符号化されたスペクトル係数に関連する周波数は、非ゼロのスペクトル値が存在する最大周波数よりも小さくなるように選択されることができる。その結果、高周波領域の一部の非ゼロスペクトル値は、第1のモードで符号化されない場合がある。
【0156】
対照的に、第2のモードでは、全ての非ゼロスペクトル係数について少なくとも最上位ビットが符号化される。したがって、最後に符号化された係数は、例えば、最高周波数の非ゼロスペクトル値になるように選択されることができる。
【0157】
符号化される最高周波数スペクトル値を記述するインデックスは、第1のモードと第2のモードの双方において制御情報「lastnz」として提供される。
【0158】
以下、機能840から869を参照しながら、「第1のモード」における動作を説明する。
【0159】
第1のモードにおける動作は、算術符号化器初期化840を含む。このステップでは、算術符号化器の状態とコンテキストが初期化される。
【0160】
ステップ844では、第1のモードの使用を示すモード情報、グローバルゲイン、および最後に符号化された係数(lastnz)を識別する情報のように、いくつかのサイド情報が符号化される。
【0161】
機能848から864は、スペクトル値ごと、またはスペクトル値のグループごとに反復される。好ましい実施形態では、2つのスペクトル値を含むグループが符号化されることに留意されたい。しかしながら、個々のスペクトル値の符号化も可能である。
【0162】
スペクトル値の実際の符号化は、スペクトル係数またはスペクトル係数のグループについての最上位ビット重みの決定を含む。例えば、1つまたは2つのスペクトル係数の数表現が調べられ、「1」を含む最高値のビット位置がどれであるかが識別される。例えば、バイナリ値「00010000」は、ビット位置5にその最上位ビットを含み、ビット重み16を有する。一緒に符号化されるスペクトル値のペアが考慮される場合、2つのスペクトル値の最上位ビット位置の最大値が決定される。任意の詳細については、以下に提供される「ステップ7a」の説明を参照されたい(
図10aの説明を参照)。
【0163】
ステップ852では、例えば、特定の符号化されたシンボルのシーケンスを提供することによって行うことができる最上位ビット重みが符号化され、特定の符号化されたシンボルの数は、ビット位置(または、同等に、ビット重み)を示す。例えば、算術符号化で知られている、いわゆる「エスケープシンボル」を使用することができる。機能852に関する任意の詳細については、例えば、以下に提供される「ステップ7b」の説明を参照されたい(
図10cを参照)。
【0164】
その後、最上位ビット符号化856が実行される。このステップでは、識別された最上位ビットのビット位置(または識別された最上位ビットのビット位置に隣接)の1つ以上のビット(例えば、2ビット)が符号化される。例えば、ステップ848においてビット重み16を有するビット位置5が識別される場合、第1のスペクトル値のビット位置5および4(ビット重み16および8)を有するビットは、第2のスペクトル値のビット位置5および4(ビット重み16および8を有する)のビットとともに符号化されることができる。したがって、この例では、合計で4ビットを一緒に符号化することができ、通常、2つのスペクトル値の少なくとも1つは、ビット位置5(ビット重み16)で「1」を有する。例えば、言及された4つのビットは、コンテキストベースの算術コーディングを使用してシンボル「sym」にマッピングされることができる。任意の詳細については、例えば、以下に提供される「ステップ7c」の説明を参照されたい(
図10dを参照)。
【0165】
ステップ860では、ビット符号化が残っている。ステップ860では、例えば、ステップ856において符号化され且つ1つ以上の最上位ビットよりも多くのビットを含む(例えば、numbits>2)全てのスペクトル値についての(全て)下位ビット(1つ以上の最下位ビットを含む)の符号化が存在することができる。換言すれば、ステップ856において部分的(ただし完全ではない)に符号化された各スペクトル値について(1つ以上の最上位ビットの符号化は、ビット重み1を有するビットに至るまで、完全な精度でスペクトル値を表現するのに十分ではなかったため)、全ての下位ビットが符号化される。
【0166】
上記の例を参照すると、ビット5および4がステップ856において第1のスペクトル値および第2のスペクトル値について符号化されている場合、ビット1、2および3は、ステップ860において、第1のスペクトル値および第2のスペクトル値について符号化される。
【0167】
任意の詳細については、従来のアプローチのステップ7dの説明を参照されたい。
【0168】
ステップ864では、1つ以上の最上位ビットが符号化されている全ての非ゼロのスペクトル値についての符号の符号化が存在する。任意の詳細については、ステップ7eの説明を参照されたい(
図10fを参照)。
【0169】
前述のように、ステップ848から864は、各スペクトル値、または最上位ビットが一緒に符号化されるスペクトル値の各グループについて反復される。
【0170】
ステップ868では、使用されたビットの数の決定があり、ステップ869では、利用可能な未使用のビットがまだある場合、必要に応じて、精緻化情報の符号化がある。
【0171】
結論として、第1のモードにおいて動作するとき、一部の非ゼロスペクトル値は、符号化においてスキップされるが、実際に符号化される全てのスペクトル値は、全分解能(最下位ビットまで)で符号化される。したがって、必要なビットレートの変化は、いくつのスペクトル値が符号化されないままであるか(符号化においてスキップされる)を決定することによって行うことができる。
【0172】
以下では、いくつかの実施形態では唯一のモードであり得る第2のモードにおける動作を、機能870から898を参照して説明する。
【0173】
第2のモードにおける符号化は、算術符号化のコンテキストにおける状態が初期化される算術符号化器初期化870を含む。
【0174】
ステップ874では、グローバルゲイン情報、「lastnz」および第2のモードが使用されることを示すモード情報(符号化器が第1のモードと第2のモードとの間で切り替え可能である場合)のようないくつかのサイド情報が符号化される。
【0175】
機能878から894は、符号化される各スペクトル値、または一緒に符号化されるスペクトル値の各グループについて実行される。
【0176】
ステップ878では、スペクトル係数(またはスペクトル値)またはスペクトル係数(またはスペクトル値)のグループの最上位ビット重みの決定が存在する。任意の詳細については、機能848に関する説明と、以下の「ステップ7a」の説明を参照されたい(
図10aを参照)。
【0177】
ステップ882では、最下位ビットの取り消しと最下位ビットの情報処理がある。例えば、最下位ビット情報は、1つ以上の最上位ビットと最下位ビットとの双方を含むそのようなスペクトル値の数表現において取り消される(numbits>2)。例えば、全ての奇数スペクトル値は、次の(隣接する)偶数値に設定されることができ、その絶対値は、奇数値の絶対値よりも小さい。例えば、値1は0に設定されることができ、値3は2に設定されることができ、値-1は0に設定されることができ、値-3は-2に設定されることができる。任意の詳細については、以下のステップ1010f、1011fを参照されたい。
【0178】
しかしながら、最下位ビットに関する情報、およびスペクトル値の符号に関する情報(スペクトル値が+1から0または-1から0に設定される場合)は、最下位ビット情報ビットストリーム(例えば、lsbs[])に格納されることができる。詳細については、例えば、以下に説明する「ステップ7a bis」を参照されたい(
図10bを参照)。
【0179】
さらに、最上位ビット重み符号化886があり、これは、最上位ビット重み符号化852と等しくすることができる。任意の詳細については、ステップ7b(
図10c)の説明を参照されたい。
【0180】
また、ステップ882において変更されたスペクトル値が使用される(最下位ビット値が除去された)という事実を除き、最上位ビット符号化856と同一とすることができる最上位ビット符号化890がある。任意の詳細については、ステップ7cおよび
図10dの説明を参照されたい。
【0181】
さらに、下位ビット符号化892がある。下位ビット符号化892では、1つ以上の最下位ビットを除き、下位ビットの符号化がある。換言すれば、最下位ビットとステップ890において符号化された1つ以上の最上位ビットとの間にあるビットは、例えばそれらをビットストリームに順次書き込むことによって符号化されることができる。任意の詳細については、以下の「ステップ7d-新たなバージョン」の説明を参照されたい(
図10eを参照)。
【0182】
さらに、ステップ882において修正されたスペクトル値に基づいて符号が決定されるという事実を除き、符号の符号化864と実質的に同一である符号の符号化894がある。
【0183】
例えば、元の(量子化された)スペクトル値が+1の場合、スペクトル値は、ステップ882において0に変更されており、この符号は、非ゼロ値についてのみ符号化されるため、ステップ894において符号の符号化はない。同様に、スペクトル値が最初に-1であった場合(量子化後)、スペクトル値は、ステップ882において0に修正され、ステップ894において符号は符号化されない(符号はゼロ値について符号化されないため)。
【0184】
符号の符号化に関する任意の詳細については、ステップ7e(
図10f)の説明を参照されたい。
【0185】
ステップ878から894は、全てのスペクトル値またはスペクトル値のグループについて反復され、その最上位ビットは一緒に符号化される。
【0186】
ステップ896では、最下位ビットの符号化に利用可能なビット数の決定がある。この数は、例えば、nlsbsによって指定され、例えば、未使用のビット数を指定することができる。
【0187】
ステップ898では、未使用ビット(その数はステップ896において決定された)が最下位ビットの「実際の」符号化に使用される(符号化されたオーディオ表現への、ステップ882において得られた最下位ビット情報またはその一部を含む)。例えば、ステップ882において決定されたビットシーケンスまたはその一部は、符号化されたオーディオ表現に追加される。このビットシーケンスは、最下位ビットの取り消しによってゼロに変更されたそれらのスペクトル値の最下位ビットおよび符号を含む。
【0188】
したがって、第2のモードでは、1つ以上の最上位ビットを表すシンボル、1つ以上の最下位ビット(およびいくつかの符号情報)を除く下位ビットを表すビットシーケンス、および最下位ビット(およびいくつかの符号情報)を表すビットシーケンスが提供される。下位ビットを表すシーケンスでは、下位ビット(および符号)は、スペクトル値ごとに、または一緒に符号化されたスペクトル値のペアについて連続して含めることができる。また、最下位ビットを表すビットシーケンスにおいて、最下位ビットがスペクトル値ごとに含まれる。
【0189】
符号化800に関するさらなる任意の詳細が以下に説明されることに留意されたい。ステップの擬似プログラムコード表現への参照が
図8に含まれていることにも留意されたい。擬似プログラムコード表現で説明されている詳細は必須ではないが、必要に応じて、
図8に示す各ステップに個別に含めることができる。
【0190】
9.図9にかかるオーディオ復号(スペクトル値復号)コーディング
図9は、本明細書で説明されるようなオーディオ復号器によって実行されることができる機能の概略表現を示している。
【0191】
図9に記載された機能の一部または全ては、オーディオ復号器によって実行されることができることに留意されたい。
図9に記載された機能の1つまたはいくつかを個別に実装することで十分であるが、完全な機能を実装することが好ましいことに留意されたい。特に、
図9に開示されている機能は、スペクトル値を表す符号化情報に基づく、復号されたスペクトル値の提供に関連している。
図9に示されるような機能は、例えば、オーディオ復号器700の復号720において実装されることができる。
【0192】
機能900は、ステップ910において、算術復号器状態の初期化、および算術復号器によって使用されるコンテキストcの初期化を含む。任意の詳細については、例えば、以下に説明するように、復号の「ステップ1」を参照されたい。
【0193】
機能900はまた、グローバルゲインまたはグローバルゲイン情報の復号914、モード選択(モード1またはモード2の選択)のためのシグナリングビットの復号916、および最後の非ゼロ符号化された係数(「lastnz」)に関する情報の復号918を含む。ステップ916および918は、任意であると見なされるべきであり、ステップ914は、量子化を定義する他の任意の情報の復号によって置き換えることができることに留意されたい。
【0194】
機能900は、ステップ930から948に示される第1のモードにおける復号と、ステップ950から972に示される第2のモードにおける復号とを含む。ステップ930から948で説明されているように、第1のモードにおける動作は、任意であると見なされるべきであることに留意されたい。換言すれば、2つのモード間を切り替える可能性が機能を拡張し且ついくつかの利点をもたらすとしても、オーディオ復号がステップ950から972によって説明される第2のモードにおいて動作することができれば十分でもある。
【0195】
さらに、機能900はまた、例えば、復号器700のブロック730によって実行されることができる、復号されたスペクトル値の逆量子化980を実行することを含む。
【0196】
以下、第1のモードの動作について説明する。
【0197】
第1のモードにおける復号は、例えば、Xq(n)およびXq(n+1)によって指定されることができる2つの係数の1つ、2つまたはそれ以上の最上位ビットの同時復号を含むことができる最上位ビットの復号930を含む。最上位ビット復号930は、例えば、係数の(符号化された)合計ビット数(例えば、numbits)の決定、または一緒に符号化された最上位ビットに続く係数の下位ビットの数の決定を含むことができる。
【0198】
例えば、一緒に復号された2つのスペクトル係数の1つが5番目のビット位置(ビット重み16を有する)に非ゼロ値(最上位ビット)を含むことが、(例えば、符号化されたオーディオ表現のシグナリング情報に基づいて)復号器によって認識されることができる。したがって、位置4および5のビット(ビット重み8および16を有する)は、一緒に(グループとして)復号される2つのスペクトル値について一緒に復号される。最上位ビットのビット位置は、例えば、算術符号化および復号の分野で知られている「エスケープシンボルメカニズム」を使用して符号化されることができる。任意の詳細については、例えば、以下の「ステップ3a」の説明を参照されたい(
図11a)。
【0199】
第1のモードにおける復号は、下位ビット復号934をさらに含む。例えば、1つ以上の最上位ビットが復号された全てのスペクトル値の1つ以上の最下位ビットを含む(全ての)下位ビットの復号が存在することができる。例えば、下位ビットは、ビットシーケンスから読み取ることができる。詳細については、例えば、下記の「ステップ3b、従来のアプローチ」を参照されたい。
【0200】
第1のモードにおける復号は、符号復号938を含み、符号は、ステップ930、934において非ゼロ値が復号された全てのスペクトル値について復号されることができる。詳細については、例えば、以下の「ステップ3c」の説明を参照されたい(
図11cを参照)。
【0201】
第1のモードにおける復号は、符号化されていないスペクトル係数のゼロ化942を含む。例えば、その周波数が符号化器から復号器にシグナリングされた特定の周波数を上回っている全てのスペクトル係数は、ゼロに設定されることができる。詳細については、例えば、以下の「ステップ4」の説明を参照されたい。
【0202】
第1のモードにおける復号はまた、いくつかの未使用ビットの決定944を含む。例えば、総ビットバジェットの何ビットが前の復号ステップにおいて使用されていないかを決定することができる。
【0203】
第1のモードにおける復号は、さらに、必要に応じて、例えば、復号されたスペクトル値がさらに精緻化されることができる精緻化948を含むことができる。詳細については、例えば、以下の「ステップ6」の説明を参照されたい。
【0204】
したがって、第1のモードでは、最後の非ゼロの符号化された係数情報に関する情報によって定義された最大周波数までのスペクトル値が、符号復号を含めて完全に復号される(最上位ビットから最下位ビットまで)。
【0205】
しかしながら、「ステップ3a」から「ステップ6」を参照して以下に説明する詳細は、必要に応じてこれらのステップに導入できることに留意されたい。しかしながら、以下に説明される全ての詳細を導入することは必須ではなく、いくつかの実施形態では、ステップの1つまたはいくつかにおいてのみ以下の詳細を維持することで十分であることに留意されたい。
【0206】
以下では、ステップ950から972を参照して、第2のモードにおける復号について説明する。
【0207】
第2のモードにおける復号は、例えば、1つ以上の最上位ビットの算術復号を含むことができる最上位ビット復号950を含む。例えば、最上位ビット復号950は、係数の総ビット数、または係数の下位ビットの数、または1つ以上の最上位ビットのビット位置(またはビット重み)の決定を含むことができる。さらに、最上位ビット復号950は、2つのスペクトル係数またはスペクトル値Xq(n)、Xq(n+1)の1つ、2つ、またはそれ以上の最上位ビットの同時復号を含むことができる。
【0208】
任意の詳細については、例えば、以下の「ステップ3a」の説明を参照されたい(
図11a)。
【0209】
第2のモードにおける復号はまた、任意であると見なすことができる下位ビット復号954も含む。下位ビット復号954では、1つ以上の最下位ビットを除いて、下位ビットの復号が行われる。下位ビット復号954は、最下位ビットまたは複数の最下位ビットが下位ビット復号954において省略されるという事実を除いて、下位ビット復号934と同様とすることができる。任意の詳細については、例えば、以下の「ステップ3b」(新バージョン)の説明を参照されたい(
図11b)。
【0210】
第2のモードにおける復号は、ステップ950、954において復号されたスペクトル値の復号された部分(1つ以上の最下位ビットを含まない)が非ゼロ値を示す限り、ステップ950、954において復号されたスペクトル値の符号が復号される符号復号958も含む。任意の詳細については、例えば、以下の「ステップ3c」の説明を参照されたい(
図11c)。
【0211】
ステップ950、954、958は、復号される全てのスペクトル値、または復号される全てのスペクトル値のグループについて反復されることに留意されたい。ここで、復号されるいくつかのスペクトル値は、例えば、符号化器から提供された、最後の非ゼロ符号化係数情報によって示されることができる。
【0212】
第2のモードにおける復号はまた、符号化器によって提供されておらず且つ最後の非ゼロ符号化係数情報を考慮して復号されていない、符号化されていないスペクトル係数のゼロ化962も含む。任意の詳細については、以下のステップ4の説明を参照されたい。
【0213】
さらに、最下位ビット復号に利用可能なビット数の決定968がある。換言すれば、未使用のビットの数(復号ステップ950、954、958において使用されなかったビットバジェットのビット)が決定される。詳細については、例えば、以下の「ステップ5」の説明を参照されたい。
【0214】
第2のモードにおける復号はまた、1つ以上の最上位ビットよりも多くのビットを有する係数のための1つ以上の最下位ビットの選択的復号972を含む。換言すれば、前述のスペクトル値の一部(全てではない)のみが最下位ビット情報によって精緻化されるように、ステップ950、954、958において復号された一部のスペクトル値のみについて1つ以上の最下位ビットが復号されることができる。ステップ972は、例えば、ステップ950および954でゼロ値が復号され(ステップ958において符号が復号されなかったなど)且つ最下位ビット情報が非ゼロ値を示すようなスペクトル値の符号の検討を含むことができる。したがって、スペクトル値(またはスペクトル係数)は、最下位ビットおよび符号情報を含むビットシーケンスからの最下位ビット情報によって精緻化される。精緻化されるスペクトル値の数は、最下位ビットに利用可能なビット数の決定968の結果に依存する。
【0215】
したがって、第2のモードにおける復号は、(最下位ビットを含む)完全な精度を有するいくつかのスペクトル値と、(最下位ビットを有しない)精度を低下させたいくつかのスペクトル値とを提供する。
【0216】
以下に説明する「ステップ3a」から「ステップ6」の詳細は、任意に使用することができることに留意されたい。しかしながら、以下に説明する「ステップ3a」から「ステップ6」の詳細は、必須であると見なすべきではない。また、「ステップ3a」から「ステップ6」を参照して以下に説明する全ての詳細を使用する必要を生じさせることなく、個々のステップの詳細を導入できることに留意されたい。
【0217】
さらに、機能900はまた、逆量子化980を実行することも含み、第1のモードにおいて復号されたスペクトル値および/または第2のモードにおいて復号されたスペクトル値は、逆量子化される。逆量子化では、ステップ914において復号されたグローバルゲイン情報を適用することができる。しかしながら、逆量子化を設定するための様々な可能性も使用することができる。
【0218】
10).図10a~図10fにかかる符号化方法
以下では、MDCTスペクトルX(n)、0≦n<Nを量子化および符号化するステップの例示的な実装について説明する。この方法は、例えば、オーディオ符号化器300、400、500において、またはオーディオ符号化器600において使用されることができる(またはそれらによって実行されることができる)。本明細書で説明する特徴は、個別にまたは組み合わせて、機能800に引き継ぐこともできる。特に、いくつかの実施形態では唯一のモードとすることができるモード2における動作に焦点が当てられる。
【0219】
以下、第1のステップについて説明する。第1のステップは、グローバルゲインの第1の推定を含む。例えば、この第1の推定では、スペクトルを量子化することも、算術符号化器によって消費されるビット数を計算することもない。これは、MDCT係数のグループのエネルギーと、グローバルゲインの第1の大まかな推定値を取得するための複雑さの低い反復アプローチのみに基づいている。例えば、NBC仕様のセクション1.3.8.2を参照されたい。
【0220】
以下、第2のステップについて説明する。第2のステップは、ステップ1において見つかったグローバルゲインを使用したMDCTスペクトルの量子化を含む。これは、量子化されたMDCTスペクトルXq(n)0≦n<Nを生成する。詳細については、例えば、NBC仕様のセクション1.8.3を参照されたい。
【0221】
以下、第3のステップについて説明する。第3のステップは、量子化されたスペクトルXq(n)を符号化するために必要なビット数の計算を含む。さらに、このステップはまた、従来のアプローチ(「第1のモード」とも呼ばれる)を使用するか、新たなアプローチ(「第2のモード」とも呼ばれる)を使用するかを決定することもできる。例えば、ステップは、本明細書で言及されるシグナリングビット(例えば、第1のモードまたは第2のモードのどちらを使用すべきかをシグナリングするシグナリングビット)を設定することができる。例えば、消費されたビット数がビットバジェットを上回り且ついくつかの基準が満たされた場合(例えば、高いビットレートが使用された場合)、新たなアプローチ(第2のモード)を使用することができる。消費されたビットの数がビットバジェットを下回っている場合、または基準(例えば、第2のモードの使用に関する基準)が満たされていない場合は、従来のアプローチ(第1のモード)を使用することができる。
【0222】
最後に、第3のステップは、最後の非ゼロの符号化係数lastnzを見つける。これは、従来のアプローチの説明において説明したように(すなわち、スペクトルを切り捨てるため)、従来のアプローチが選択された場合にのみ見つかる(「このステップは、切り捨てられたスペクトルの消費されたビット数がビットバジェット内に収まることができるように、最後の非ゼロの符号化係数lastnzのインデックスを見つける、NBC仕様のセクション1.3.8.4を参照されたい」)。新たなアプローチ(第2のモード)が選択された場合、スペクトルは、切り捨てられず、lastnzは、単純に最後の非ゼロ係数(例えば、最高周波数の非ゼロスペクトル係数)に対応する。
【0223】
以下、ステップ4について説明する。第4のステップは、ステップ3において計算されたビット数の関数としてグローバルゲインを調整することを含む。ビット数が多すぎると、グローバルゲインが増加する。ビット数が少なすぎると、グローバルゲインが減少する。次に、ステップ2および3が必要に応じてやり直される。ステップ4は、最適なグローバルゲインが見つかるまで数回反復されることができる。しかしながら、複雑度を低くする必要がある場合は、ステップ4を実行しなくてもよく、または1回だけ実行してもよい(例えば、NBCのように、NBC仕様のセクション1.3.8.6を参照)。
【0224】
以下、ステップ5について説明する。ステップ5は、算術符号化器状態の初期化、および算術符号化器によって使用されるコンテキストcの初期化を含む。
【0225】
以下、ステップ6について説明する。ステップ6は、サイド情報としてグローバルゲインおよび最後の非ゼロ符号化係数lastnzを符号化することを含む。さらに、このステップはまた、シグナリングビット(例えば、第1のモードと第2のモードのどちらを使用するかを示すシグナリングビット)もサイド情報として符号化する。
【0226】
以下、ステップ7について説明する。しかしながら、ステップ7は、サブステップ7aから7eを全て反復することを含む(n=0;n<lastnz;n+=2)。換言すれば、nがlastnzよりも小さい限り、ステップ7aから7eは、n=0から開始して反復され、nは各反復において2ずつ増加する。各反復において2つのスペクトル値が処理され、通常は全ての非ゼロスペクトル値が処理される(モード2では、少なくとも最上位ビットが全ての非ゼロスペクトル値について符号化されるようにlastnzが選択されるため)。
【0227】
以下、ステップ7aについて説明する。ステップ7aは、2つの係数X
q(n)およびX
q(n+1)(好ましくは整数値である)の振幅(または大きさ、または絶対値)を表すのに必要な最小ビット数を計算することを含む。例示的な実装に関する詳細については、
図10aの擬似プログラムコード(参照符号1000aを参照)を参照されたい。より大きな絶対値を有する係数は、2つの係数の振幅(大きさ、絶対値)を表すために必要な最小ビット数を決定する。
【0228】
以下、ステップ7a-bisについて説明するが、これは、例えば、ステップ7aと7bとの間に実行することができる。換言すれば、ステップ7a-bisは、ステップ7aの直後の追加ステップであり、numbitsが2よりも大きい場合(numbits>2)に実行される。換言すれば、Xq(n)および/またはXq(n+1)を表すために2つの最上位ビットよりも多くのビットが必要な場合、ステップ7a-bisが実行される。ステップ7a-bisでは、各係数の最下位ビットが「保存」され、次にその最下位ビットがゼロになるように係数が変更される。係数の符号はまた、係数が元々非ゼロであり且つ最下位ビットをゼロに設定した後にゼロになる場合にも保存される。
【0229】
この機能に関する詳細については、例えば、
図10bに示される擬似プログラムコード表現を参照されたい。
【0230】
参照符号1010aでわかるように、Xq[n]の絶対値の最下位ビットが抽出され、変数nlsbsを実行することによって示される位置のビットシーケンスlsbsに保存される(参照:参照符号1010b)。次に、実行中の変数nlsbsを増加させて、ビットシーケンスlsbs内の次の未使用ビットを参照する。Xqが+1または-1であることが判明した場合(参照符号1010cの条件)、参照符号1010dでわかるように、Xq[n]が0よりも大きい場合は符号ビットが0に設定され、Xqが0よりも小さい場合は符号ビットが1に設定される。また、Xqが+1または-1の場合、符号ビットは、次のビットとして、参照符号1010eで示されるビットシーケンスlsbsに保存される。さらに、符号付きスペクトル値Xqは、次に、小さい振幅を有する隣接する偶数値に不均一な値が設定されるように変更される。この機能は、参照符号1010fで示されている。
【0231】
しかしながら、全体的な機能が変更されないままである限り、処理ステップ1010aから1010fの順序を変更できることに留意されたい。当然ながら、中間量を保存することもできる。
【0232】
さらに、同じ機能がまた、参照符号1011aから1011fで示されるスペクトル値Xq[n+1]についても実行されることに留意されたい。
【0233】
したがって、ステップ7a-bisは、numbitsが2よりも大きい全てのスペクトル値の最下位ビットを表すビットシーケンスlsbsを提供する。ここで、numbitsが2よりも大きく且つ+1または-1の値をとる(例えば、それらは、スペクトル値が大きいグループに属しているため)スペクトル値のビットシーケンスlsbsには符号ビットが含まれている。シーケンスlsbsのビットは、スペクトル値のシーケンスにおいて順序付けされているが、numbitsが2以下である(すなわち、2つの最上位ビットによって完全に表される)ようなスペクトル値のシーケンスlsbsにはビットが存在しない。
【0234】
以下、ステップ7bについて説明する。このステップ7bでは、値「numbits」に関する情報が符号化される(numbitsがステップ7aにおいて決定され、スペクトル値またはスペクトル値のグループについて符号化される最上位ビットのビット重みを記述している場合)。例えば、ステップ7bは、numbitsが2よりも大きい場合、numbits-2エスケープ値(例えば、VAL_ESC=16によって表される)を符号化することを含む。詳細については、
図10c(参照符号1020a)を参照されたい。例えば、エスケープ値は、算術符号化を使用して符号化され、算術符号化の確率を取得するためにコンテキストが評価される。エスケープシンボルは、確率pを使用した算術符号化によって符号化される。さらに、コンテキストが更新される。
【0235】
しかしながら、このステップのいかなる詳細も、本発明にとって必須ではない。
【0236】
以下、ステップ7cについて説明する。ステップ7cは、各係数Xq(n)およびXq(+1)の2つの最上位ビットを単一のシンボルsym(その値は0と15との間にある)として符号化することを含む。ステップ1040aでは、値numbitsに基づいて、Xq[n]およびXq[n+1]の(バイナリ)数表現が何ビット右にシフトされるかによって決定される(numbits>2の場合にステップ7a-bisにおいて変更されたとき)。これは、参照符号1040aで示され、任意として見なされることができる。ステップ1040bでは、numbitsによって決定されたビット位置のビットが変数aに格納されるように、Xq[n]が処理される。ステップ1040cでは、numbitによって決定されたビット位置のビットが変数bに引き継がれるようにXq[n+1]が処理される。換言すれば、2つの最上位ビットと見なされるビット位置のビットは、変数aおよびbに引き継がれる。
【0237】
その結果、参照符号1040dで示されるように、Xq[n]およびXq[n+1]の2つの最上位ビットを組み合わせる4ビット値が決定される。次に、変数symは、一緒に符号化される2つのスペクトル値のそれぞれの2つの最上位ビットを含む4ビットシンボルを表す。次に、算術符号化の確率が算術符号化のコンテキストcから決定され、シンボルsymが算術符号化を使用し且つコンテキストから決定された確率pを考慮して符号化される。その後、コンテキストが更新される。
【0238】
したがって、一緒に符号化される2つのスペクトル値の2つの最上位ビットを表すシンボルsymの算術符号化表現が得られる。
【0239】
以下、ステップ7dについて説明する。ステップ7dは、最下位ビットを除いた残りのビット(「中間ビット」または「下位ビット」とも呼ばれる)の符号化を含む。詳細については、擬似プログラムコード表現を示す
図10eを参照されたい。見てわかるように、実行中の変数bは、b=1からnumbits-3まで実行される。したがって、ステップ7cにおいて一緒に符号化された2つの最上位ビットが少なくともビット位置3および4(ビット値4および8を有する)またはより高いビット位置であれば、ビットは、ビット位置2(ビット値2を有する)から開始して符号化される。したがって、スペクトル値X
q[n]およびX
q[n+1]の絶対値のビット位置(b+1)のビットは、サイド情報として符号化される。したがって、最下位ビットと2つの最上位ビットとの間にある任意のビットは、(numbitsによって定義される最上位ビットのビット位置に依存する)そのようなビットが存在するという条件で、ステップ7dにおいてサイド情報として符号化される。
【0240】
例えば、参照符号1050aで示されるループは、b=1からb=numbits-3まで実行される(numbitsが4以上の場合)。参照符号1050bでわかるように、Xq[n]の絶対値のビット位置b+1のビットは、サイド情報として符号化される。参照符号1050cでわかるように、Xq[n+1]の絶対値のビット位置b+1のビットは、サイド情報に符号化される。実行中の変数bがnumbits-2に到達するまで、ステップ1050bおよび1050cが反復される。
【0241】
以下、ステップ7eについて説明する。ステップ7eは、係数が0の場合を除いて、各係数(またはスペクトル値)の符号を符号化することを含む。ステップ7eでは、ステップ7a-bisにおいて変更された係数が考慮されることに留意されたい。換言すれば、Xqの元の値(ステップ7a-bisにおける変更前)が2以上または-2以下の場合、スペクトル値Xqの符号が符号化される。対照的に、Xq[n]が元々0に等しいか、ステップ7a-bisにおいて0に設定された場合、ステップ7eにおける符号の符号化はない。(変更された)スペクトル値Xq[n]が0に等しいかどうかに関するチェックは、参照符号1060aで見られ、Xq[n]の正の値についての符号ビット「0」およびXq[n]の負の値についての符号ビット「1」の提供は、参照符号1060bにおいて見ることができる。サイド情報としての符号値の符号化は、参照符号1060cで示されている。
【0242】
同様の機能がまた、参照符号1061a、1061b、および1061cで示されるXq[n+1]についても実行される。
【0243】
以下、ステップ8について説明する。ステップ8は、算術符号化器を終了し、いくつかの未使用ビットを計算することを含む。例えば、ステップ7b、7c、7dおよび7eにおいて、総ビットバジェットの何ビットが未使用のままであるかが計算されることができる。
【0244】
以下、ステップ9について説明する。ステップ9では(新たなアプローチが選択された場合、または第2のモードが選択された場合、または符号化器が第2のモードのみを使用する場合)、残余量子化/符号化は、(従来の概念のように)使用されない。未使用のビットがある場合、これらは、lsbs[]に保存されるnlsbsビットの符号化に使用される(ステップ7a-bisを参照)。換言すれば、例えばステップ7aから7eの完了後に、ビットバジェットの全てのビットが使用されていないことが判明した場合、ステップ7a-bisにおいて提供されたビットシーケンスlsbsのビット数がビットストリームに(または、一般には、符号化されたオーディオ表現に)含まれる。符号化されたオーディオ表現に含まれるビットシーケンスlsbsのビット数は、例えば、ビットバジェットが完全に使用される(例えば、最大で1または2ビットまで、さらには完全に)ように、未使用のビット数によって決定されることができる。
【0245】
結論として、本明細書で説明されているステップまたはその詳細は、
図8の機能を実行するときに使用されることができることに留意されたい。例えば、ここで説明されているステップ1から4、またはその詳細を使用して、機能810、814、818、830を実装することができる。
【0246】
さらに、ここで説明するステップ5から9は、機能870、874、878、882、886、890、892、894、896、および898を実装するために使用されることができる。しかしながら、本明細書で説明される詳細は、機能800のステップに個別に引き継がれることができることに留意されたい。
【0247】
11).図11aから図11dにかかるオーディオ復号
以下では、
図11aから
図11dを参照して、オーディオ復号機能について説明する。ここで説明する復号機能を使用して、スペクトル値を表す符号化情報に基づいて復号されたスペクトル値を提供することができる。ここで説明する機能は、例えば、
図1および
図2にかかるオーディオ復号器および
図7にかかるオーディオ復号器700(例えば、復号720を実装するため)において使用することができる。ここで説明するステップは、機能900において使用して、例えば、機能910、950、954、958、962、968、972を実装することもできる。
【0248】
以下、スペクトル値を復号するための機能を段階的に説明する(「第2のモード」または第2のモードのみが使用される場合の復号に焦点を当てている)。
【0249】
以下、第1のステップについて説明する。第1のステップは、算術復号器状態の初期化と、算術復号器によって使用されるコンテキストcの初期化とを含む。
【0250】
以下、第2のステップについて説明する。第2のステップは、グローバルゲイン(またはグローバルゲイン情報、または逆量子化を説明する他の情報)および最後の非ゼロ符号化された係数情報「lastnz」を復号することを含む。換言すれば、第2のステップは、いくつかのサイド情報または制御情報を復号することを含む。さらに、第2のステップはまた、シグナリングビット(例えば、第1のモードと第2のモードのどちらを使用するかを定義するシグナリングビット)も復号する。
【0251】
以下、ステップ3について説明する。例えば、ステップ3は、全てについてステップ3aから3cを反復することを含む(n=0;n<lastnz;n+=2)。換言すれば、ステップ3aから3cは、復号される全てのスペクトル値(lastnzによって定義)について反復され、2つのスペクトル値のグループが一緒に処理される。
【0252】
以下、ステップ3aについて説明する。ステップ3aは、双方の係数(またはスペクトル値)X
q(n)およびX
q(n+1)の2つの最上位ビットを復号することを含む。ステップ3aの詳細を
図11aに示す。
【0253】
ステップ3aは、復号されるべき2つの最上位ビットのビット位置を表す変数numbitsの決定を含む。変数numbitsは、参照符号1110aにおいて1に初期化される。続いて、ステップ1110bにおいて(以前に初期化された)コンテキストから確率pが取得され、ステップ1110cにおいて算術復号を使用して且つ確率pを使用してシンボルsymが復号される。続いて、ステップ1110dにおいてコンテキストが更新され、ステップ1110eにおいて変数numbitsが1だけ増加される。しかしながら、復号されたシンボルsymがエスケープシンボルである場合、ステップ1110b、1110c、1110d、1110eが反復される。したがって、第1の復号されたシンボルがエスケープシンボルでない場合、numbitsは2に設定され、復号される最上位ビット位置は、ビット位置1および2(ビット値1および2を有する)のビットを定義する。しかしながら、算術復号によって1つ以上のエスケープシンボルが識別されると、変数numbitsがさらに増加され、復号される最上位ビットのより高いビット重みを示し、これは、1つ以上の最下位ビットの「場所」があることも示す。しかしながら、最後に復号されたシンボルがエスケープシンボルではないことが判明するとすぐに、可変のnumbitsによって定義されたビット重みを有する最上位値が、復号されたシンボルに基づいて決定される。例えば、シンボルが4ビット値で表される場合、4ビット値の2ビットを使用してスペクトル値Xq[n]の2つの最上位ビットを定義し、4ビット値の2ビットを使用してスペクトル値Xq[n+1]の2つの最上位ビットを定義する。詳細は、参照符号1110fおよび1110gで見ることができる。したがって、算術復号によって復号される0、1またはそれ以上のエスケープシンボルは、最上位ビットのビット重みを決定し、エスケープシンボルではないシンボルは、2つのスペクトル値の最上位ビットのビット値を定義する。
【0254】
以下、ステップ3a-bisについて説明する。ステップ3a-bisは、ステップ3aの直後の追加ステップである。このステップは、後でステップ6において再利用されることができるように、numbitsを配列numbits[n]に保存する。換言すれば、変数numbitsの値は、後で使用するために復号されたスペクトル値の全てのペアについて維持される。しかしながら、これは補助的なステップにすぎない。
【0255】
以下、ステップ3bについて説明する。ステップ3bは、最下位ビットを除く残りのビットを復号することを含む。詳細については、
図11bを参照されたい。ここで、ステップ3bは、numbitsが4以上の場合、すなわち、スペクトル値(または一緒に処理されたスペクトル値のペアからの少なくとも1つのスペクトル値)のバイナリ数表現が2つの最上位ビットと1つの最下位ビットよりも多くのビット(すなわち、少なくとも4ビット)を含む場合にのみ、残りのビットを復号することに留意されたい。そのビット位置が最下位ビットと2つの最上位ビットの間にあるこれらのビットは、ビット位置2を有するビットから始まり、より高いビット位置(存在する場合)のビットに向かって進んでその後に復号される。この目的のために、実行中の変数bは1に初期化され、bがnumbits-2よりも小さい限り、ビットの復号が実行される。ループ機能は、参照符号1120aで示され、第1のスペクトル値X
qのビットの復号は、参照符号1120bで示され、そのビット重みによって重み付けされたビットの第1のスペクトル値への追加は、参照符号1120cで示され、第2のスペクトル値X
q[n+1]のビットの復号は、参照符号1120dで示され、そのビット重みによって重み付けされたビットの追加は、参照符号1120eで示されている。
【0256】
以下、ステップ3cについて説明する。ステップ3cは、係数(またはスペクトル値)が0である場合を除いて、各係数の符号を復号することを含む。
【0257】
例えば、これまでに(最下位ビットを考慮せずにステップ3aおよび3bにおいて)復号されたスペクトル係数が0に等しいかどうかがチェックされる(参照符号1130aを参照)。スペクトル値Xq[n]が0と異なる場合、符号ビットが復号され(ステップ1130b)、符号ビットが1に等しい場合(参照符号1130cでチェックされる)、Xq[n]の符号は、反転される(参照符号1130dを参照)。参照符号1131aから1131dで示されるように、同様の機能が第2のスペクトル値について実行される。
【0258】
以下、ステップ4について説明する。ステップ4では、インデックスnがlastnz以上の全ての係数(またはスペクトル値)が0に設定される。したがって、(サイド情報「lastnz」によって通知される)符号化器によって符号化されていないそれらのスペクトル係数は、明確な値(0)に設定される。
【0259】
以下、ステップ5について説明する。
【0260】
ステップ5は、算術復号器の終了と未使用ビットの数の計算とを含む。例えば、ステップ3a、3b、および3cにおいて復号されたビット数が計算されることができ、これまでに合計ビットバジェットのビット数が使用されていないことがわかる。
【0261】
以下、ステップ6について説明する。第6のステップでは、未使用のビットがある場合、nlsbsビットが復号され、lsbs[]に格納される。換言すれば、nlsbsビットのシーケンスは、最下位ビットの精緻化に使用され、それらは、直接使用されることができるか、または配列lsbs[]のような中間データ構造に格納されることができる。次に、numbits[n]が2よりも大きい場合、復号されたlsbビット(または最下位ビット)を使用して、(インデックスnおよびn+1を有するそれぞれのスペクトル値について)係数(n,n+1)(またはスペクトル値Xq[n]およびXq[n+1])が精緻化される。
【0262】
【0263】
参照符号1140aでわかるように、実行変数kは、0に初期化される。次に、ループ処理がスペクトル値の全てのペアについて実行され、ループ定義は、参照符号1140bに見ることができる。しかしながら、ループ処理では、2つの最上位ビットよりも多くのビットを含まないスペクトル値の任意のペアはスキップされることに留意されたい。現在処理されているスペクトル値のペアが最上位ビットよりも多くのビットを含むかどうかのチェックは、参照符号1140cに見ることができる。また、処理(例えば、最下位ビット情報を使用したスペクトル値の精緻化)は、処理されたビットの数が最下位ビットの精緻化に利用可能なビットの総数nlsbsに到達すると、いずれの場合にも(2つの最上位ビットよりも多くのビットを有する全てのスペクトル値が考慮されていない場合であっても)停止されることに留意されたい。ループ処理の中断は、例えば、コマンド「break」によって行われ、通常、ビットシーケンスまたは配列lsbsからの新たなビットが評価される前に最下位ビットの精緻化に利用可能な最大ビット数に到達したかどうかに関する評価があることがわかる。例えば、参照符号1140eに見ることができるビットシーケンスまたは配列lsbsからの新たなビットの読み取りに先行する全ての利用可能なビットが参照符号1140dにおいて評価されたかどうかのチェックがある。(参照符号1140eでの)ビットシーケンスまたは配列lsbからのビットの読み取りに続いて、ビット値に応じて、また以前に復号されたスペクトル値Xq[n]の値にも応じて、異なるアクションがとられる。ステップ1140eで読み取られた精緻化ビットの値がゼロである場合、(ビットが以前に復号された値の修正の必要がないことを示すため)それ以上のアクションはとられない。対照的に、ステップ1140eで読み取られた精緻化ビットの値が「1」である場合、とられるアクションは、スペクトル値Xq[n]の実際の値に依存する。スペクトル値Xqがゼロよりも大きく且つステップ1140eで読み取られたビットが「1」である場合、スペクトル値Xq[n]は、1だけ(すなわち、最下位ビット値だけ)増加され、これは、参照符号1140fに見ることができる。スペクトル値Xq[n]が負であり且つステップ1140eで読み取られたビット値が「1」である場合、スペクトル値Xq[n]は、1だけ(すなわち、最下位ビット値だけ)減らされる。
【0264】
しかしながら、値Xqが0であり且つステップ1140eで読み取られたビットのビット値が「1」である場合、参照符号1140iに示されるように、他のビットがビットシーケンスまたは配列lsbから読み取られ、ステップ1140iにおける他のビットの読み取りは、利用可能なビットの総数に既に到達しているかどうかのチェックによって先行される(これは、「break」コマンドによるループの中断につながる)。続いて、Xq[n]の値は、参照符号1140jで示される、ステップ1140iにおいて読み取られた「符号ビット」の値に応じて、+1または-1に選択的に設定される。続いて、ステップ1140dから1140jは、第2のスペクトル値Xq[n+1]について反復される。
【0265】
結論として、最下位ビットの精緻化に利用可能なビットシーケンスまたは配列lsbsの全てのビットが使い果たされていない限り、前記ビットシーケンスまたは配列lsbsからの「精緻化ビット」の処理が存在する。以前に復号されたスペクトル値Xq[n]、Xq[n+1]が0と異なる場合、前記スペクトル値の大きさは、ビットシーケンスまたは配列lsbsから読み取られた「精緻化ビット」に応じて、最下位ビット値だけ選択的に増加される。以前に復号されたスペクトル値Xq[n]、Xq[n+1]が0の場合、ビットシーケンスまたは配列lsbsから「符号ビット」がさらに抽出され、符号ビットは、スペクトル値が最下位ビット値によって変更される必要があることを以前の(第1の)精緻化ビットが示す場合、スペクトル値Xq[n]、Xq[n+1]が+1または-1に設定される必要があるかどうかを決定する。対照的に、スペクトル値Xq[n]、Xq[n+1]の値が変更されないままでおく必要があることを精緻化ビットが示す場合、符号ビットは使用されない。
【0266】
換言すれば、スペクトル値に関連付けられた第1の精緻化ビットは、スペクトル値の大きさが1つの最下位ビット値だけ増加される必要があるかどうかを示すビットと見なすことができ、第2の精緻化ビット(符号ビット)は、以前に復号されたスペクトル値が0であった場合にのみ使用される。
【0267】
したがって、精緻化には非常に効率的な概念があり、通常、スペクトル値の最下位ビットの精細化には1ビットのみが必要であり、2ビット(精緻化が必要かどうかを決定するビットおよび符号を決定するビット)は、以前に復号されたスペクトル値が0である場合にのみ必要である。
【0268】
ここで説明される機能は、例えば、復号機能900で使用されてもよいことに留意されたい。
【0269】
擬似プログラムコードを参照してここで詳細に説明する特徴は、
図9に示すように、個別にまたは組み合わせて機能に導入されることができる。しかしながら、ありとあらゆる詳細を含める必要はなく、ここで説明する詳細は、個別に解釈すると有利な場合があることに留意されたい。
【0270】
11).結論
11.1)一般
以下に、本発明のいくつかの基本的なアイデアを要約する。特に、本明細書で言及された態様は、本発明の実施形態に、個別にまたは他の態様と組み合わせて実装されることができる。
【0271】
本発明にかかる実施形態は、より低いビットレートでは、従来のアプローチは符号化性能を大幅に低下させる可能性があるという知見に基づいている。高いビットレートでは、高いビットバジェットが、高周波数係数であっても、スペクトル全体を高精度に量子化することを可能にすることがわかっている。高周波係数の一部を0に設定すると、高周波にかなりの量の歪みを追加し、復号された出力信号の透過的な品質を妨げることもわかっている。
図12では、オーディオ信号の全てのフレームと、32kbpsの低ビットレートおよび128kbpsの高ビットレートの2つのビットレートについて、MDCTスペクトルのSNRがプロットされている。32kbpsでのSNRは、一貫しているように見えるが、128kbpsでのSNRは、大きな下落を含む。これらの下落は、消費されたビット数がビットバジェットを超えたために、高周波係数が切り捨てられたフレームに対応している。
【0272】
11.2).従来のアプローチの段階的な説明
以下では、従来のアプローチで実行される、MDCTスペクトルX(n)、0≦n<Nを量子化および符号化するために必要なステップについて説明する。
【0273】
符号化器
・ステップ1:グローバルゲインの第1の推定を行う。この第1の推定は、スペクトルを量子化することも、算術符号化器によって消費されるビット数を計算することもない。それは、MDCT係数のグループのエネルギーとグローバルゲインの第1の粗い推定を取得するための複雑さの低い反復アプローチのみに基づいている。(NBC仕様のセクション1.3.8.2を参照)
・ステップ2:ステップ1で見つかったグローバルゲインを使用したMDCTスペクトルを量子化する。これは、量子化されたMDCTスペクトル
、
を生成する。(NBC仕様のセクション1.3.8.3を参照)
・ステップ3:量子化スペクトル
の符号化に必要なビット数を計算する。ビット数がビットバジェットを超える場合、このステップはまた、切り捨てられたスペクトルの消費ビット数がビットバジェット内に収まることができるように最後の非ゼロの符号化された係数lastnzのインデックスも見つける。(NBC仕様のセクション1.3.8.4を参照)
・ステップ4:ステップ3で計算されたビット数の関数としてグローバルゲインを調整する:ビット数が多すぎる場合は、グローバルゲインを増やす;ビット数が少なすぎる場合は、グローバルゲインを減らす。次に、ステップ2および3をやり直す。ステップ4は、最適なグローバルゲインが見つかるまで数回反復されることができる。複雑さを低くする必要がある場合、ステップ4は実行されないか、または1回だけ実行される(NBCと同様、NBC仕様のセクション1.3.8.6を参照)。
【0274】
・ステップ5:算術符号化器状態を初期化する;コンテキストcを初期化する。
【0275】
・ステップ6:グローバルゲインと最後の非ゼロの符号化係数lastnzをサイド情報として符号化する。
【0276】
・ステップ7:次のサブステップを全て繰り返す(n=0;n<lastnz;n+=2):
○ステップ7a:2つの係数
および
の振幅を表すために必要な最小ビット数を計算する
numbits = ceil( log2( max( abs(
[n]), abs(
[n+1]) ) + 1 ) );
【0277】
○ステップ7b:numbits>2の場合、numbits-2エスケープ値(VAL_ESC=16)を符号化する
for (b = 0; b < numbits-2; b++) {
Get probabilities p from context c
Encode escape symbol VAL_ESC with ari. enc. and probabilities p
Update context c
}
【0278】
○ステップ7c:双方の係数
および
の2つの最上位ビットを単一のシンボルsymとして符号化する(その値は0から15である)
s = max(0, numbits-2);
a = abs(
[n]) >> s;
b = abs(
[n+1]) >> s;
sym = a + 4*b;
Get probabilities p from context c
Encode symbol sym with ari. enc. and probabilities p
Update context c
【0279】
○ステップ7d:numbits>2の場合、残りのビットを符号化する
for (b = 0; b < numbits-2; b++) {
bit0 = (abs(
[n]) >> b) & 1;
Encode bit0 as side-information
bit1 = (abs(
[n+1]) >> b) & 1;
Encode bit1 as side-information
}
【0280】
○ステップ7e:係数がゼロの場合を除いて、各係数の符号を符号化する
if (
[n] != 0 ) {
bit0 = 0;
if (
[n] < 0) {
bit0 = 1;
}
Encode bit0 as side-information
}
if (
[n+1] != 0) {
bit1 = 0;
if (
[n+1] < 0) {
bit1 = 1;
}
Encode bit1 as side-information
}
【0281】
・ステップ8:算術符号化器を終了し、未使用のビット数を計算する。
【0282】
・ステップ9:未使用のビットがある場合、残差量子化器によって与えられた残差ビットを符号化する(NBC仕様のセクション1.3.9を参照)。
【0283】
復号器
・ステップ1:算術復号器状態を初期化する;コンテキストcを初期化する。
【0284】
・ステップ2:グローバルゲインと最後の非ゼロの符号化係数lastnzを復号する。
【0285】
・ステップ3:次のサブステップを全て繰り返す(n=0;n<lastnz;n+=2):
○ステップ3a:双方の係数
および
の2つの最上位ビットを復号する
numbits = 1;
do {
Get probabilities p from context c
Decode symbol sym with ari. dec. and probabilities p
Update context c
numbits++;
} while (sym==VAL_ESC)
[n] = (sym & 3) << (numbits-2);
[n+1] = (sym >> 2) << (numbits-2);
【0286】
○ステップ3b:numbits>2の場合、残りのビットを復号する
for (b = 0; b < numbits-2; b++) {
Decode bit0
[n] += bit0 << b
Decode bit1
[n+1] += bit1 << b
}
【0287】
○ステップ3c:係数がゼロの場合を除いて、各係数の符号を復号する
if (
[n] != 0 ) {
Decode bit0
if (bit0 == 1) {
[n] = -
[n];
}
}
if (
[n+1] != 0) {
Decode bit1
if (bit1 == 1) {
[n+1] = -
[n+1];
}
}
【0288】
・ステップ4:全ての係数n>=lastnzをゼロに設定する
・ステップ5:算術復号器を終了および未使用のビット数を計算する
・ステップ6:未使用のビットがある場合、残りのビットを復号する。残差ビットを使用して非ゼロ係数を精緻化する逆残差量子化器を適用する(NBC仕様のセクション1.4.3を参照)。
【0289】
・ステップ7:逆量子化:復号されたMDCT係数にグローバルゲインを乗算する
このセクション「従来のアプローチの段階的な説明」で説明されているステップ1から9は、従来のオーディオ符号化器および復号器において使用されることができ、本発明にかかるオーディオ符号化器または復号器は、第1の符号化モードで動作するときにも使用されることができる。
【0290】
例えば、従来のアプローチの段階的な説明で説明されている符号化器のステップ1から9を使用して、機能810、814、818、840、844、848、852、856、860、864、868、および869を実装することができる。従来のアプローチの段階的な説明で上述した符号化器のステップ1、2、4、5、6、7a、7c、7eおよび8は、例えば、機能810、814、818、822、870、874、878、886、890、894および896を実装するために、本発明の実施形態にかかるオーディオ符号化器においても使用されることができる(例えば、新たな第2のモードで動作するとき)。
【0291】
復号器のステップ1、2、3、3a、3b、3c、4、5、6、7はまた、例えば、ステップ910、914、918、930、934、938、942、944、948、980を実装するために、「第1のモード」で動作するときに、本発明にかかるオーディオ復号において使用されることもできる。
【0292】
さらに、復号器のステップ1、2、3、3a、3c、4、5および7はまた、本発明の復号器に機能910、914、918、950、958、962、968および980を実装するために使用されることもできる(例えば、「第2のモード」で動作するとき)。
【0293】
11.3).提案された発明の態様
以下では、従来のアプローチで使用される符号化器のステップおよび復号器のステップに対する改善および拡張について説明する。
【0294】
高ビットレートでは、符号化器のステップ1から4において計算された量子化MDCTスペクトルXq[n]が高振幅の係数を含むことがわかっている。したがって、これらの係数の振幅(符号化器ステップ7a)を表すために必要な最小ビット数は高く、ほとんどの場合は2を超えることがわかっている。その結果、符号化器ステップ7dにおいて説明したように、ほとんどの場合、係数ごとに少なくとも1つの最下位ビット(LSB)がサイド情報として符号化される。これらの最下位ビット(LSB)は、下位情報であり、SNRへの比較的小さな影響によって削除できることがわかっている。実際の影響は、従来のアプローチのように、係数全体を0に設定する(すなわち、最上位ビットMSBおよび最下位ビットLSBの双方を0に設定する)よりもはるかに小さいことがわかっている。
【0295】
したがって、提案された発明にかかる実施形態は、量子化されたMDCTデータを符号化するために消費されるビット数がビットバジェットを超える場合、高周波係数を切り捨てるよりも最下位ビットLSBを切り捨てる方が効率的であるというアイデアに基づいている。しかしながら、これは、量子化されたMDCTスペクトル係数が高い振幅を有する場合、したがってビットレートが高い場合にのみ有利である(または可能であるのみ)。その結果、提案された発明は、サイド情報として1つのシグナリングビットをビットストリームに追加する(前記シグナリングビットは、例えば、「第1のモード」または「第2のモード」のどちらが使用されるかを記述することができる)。このビットは、従来のアプローチ(例えば、従来のアプローチの段階的な説明のセクションで説明されている)または新たなアプローチ(例えば、提案された発明の実施形態の段階的な説明のセクションで説明されている)のどちらかが使用されるかを示す。消費されたビット数がビットバジェットを下回る場合、新たなアプローチは不要であり、シグナリングビットが設定されて従来のアプローチをトリガーすることができることに留意されたい。例えば、新たなアプローチは、消費されたビット数がビットバジェットを超えており且ついくつかの基準が満たされている(例えば、高ビットレート)場合にのみ使用される。
【0296】
図13では、提案された発明にかかる実施形態が128kbpsの高ビットレートの場合に使用されたことを除き、前の図(
図12)と同じ実験が行われた。128kbpsでのSNRは、はるかに一貫性があるように見え、全ての下落がなくなった。
【0297】
11.4).提案された発明の実施形態の段階的説明
以下、本発明にかかる実施形態について段階的に説明する。この説明では、従来のアプローチのステップのいくつかを引き継ぐことができるため、セクション11.2において提供される従来のアプローチの段階的な説明も参照する。
【0298】
換言すれば、セクション11.2(従来のアプローチ)で説明されているこれらのステップのほとんどは、ここでも同じである。したがって、ここでは異なるステップのみを説明する。
【0299】
符号化器
・ステップ3:このステップは、量子化されたスペクトル
を符号化するために必要なビット数をさらに計算する。さらに、このステップはまた、従来のアプローチを使用するかまたは新たなアプローチを使用するかを決定する必要がある(すなわち、前のセクションで説明したシグナリングビットを設定する)。
【0300】
・新たなアプローチの場合:ビットバジェットを超える消費ビットといくつかの基準が満たされている(例えば、高ビットレート)
・先行技術の場合:ビットバジェットを下回る消費ビット、または基準が満たされていない
最後に、ステップは、最後の非ゼロの符号化係数lastnzを見つける。それは、セクション11.2において説明したように(すなわち、スペクトルを切り捨てるために)、従来のアプローチが選択された場合にのみ見つかる。新たなアプローチが選択された場合、スペクトルは切り捨てられず、lastnzは、単純に最後の非ゼロ係数に対応する。
【0301】
・ステップ6:さらに、このステップは、シグナリングビットもサイド情報としてここで符号化する
他の符号化器のステップは、先行技術のアプローチが選択された場合と同じである。新たなアプローチが選択された場合、次のステップが追加/変更される。
【0302】
○ステップ7a-bis:これは、ステップ7aの直後の追加ステップであり、numbits>2の場合に実行される。各係数の最下位ビットが保存され、そのLSBが現在ゼロになるように係数が変更される。係数が元々非ゼロであり且つLSBをゼロに設定した後にゼロになる場合、係数の符号も保存される。
if (numbits > 2)
{
bit = abs(
[n]) & 1;
lsbs[nlsbs++] = bit;
if (bit != 0 && (abs(
[n]) & FFFE) == 0)
{
bit = 0;
if (
[n] < 0) {
bit = 1;
}
lsbs[nlsbs++] = bit;
}
[n] =
;
bit = abs(
[n+1]) & 1;
lsbs[nlsbs++] = bit;
if (bit != 0 && (abs(
[n+1]) & FFFE) == 0)
{
bit = 0;
if (
[n+1] < 0) {
bit = 1;
}
lsbs[nlsbs++] = bit;
}
[n+1] =
;
}
【0303】
○ステップ7d:最下位ビットを除く残りのビットを符号化する
for (b = 1; b < numbits-2; b++) {
bit0 = (abs(
[n]) >> b) & 1;
Encode bit0 as side-information
bit1 = (abs(
[n+1]) >> b) & 1;
Encode bit1 as side-information
}
・ステップ9:新たなアプローチが選択された場合、残差量子化/符号化は使用されない。未使用のビットがある場合、これらは、lsbs[]に保存されたnlsbsビットの符号化に使用される(ステップ7a-bisを参照)。
【0304】
復号器
・ステップ2:さらに、このステップは、シグナリングビットもここで復号する
他の復号器ステップは、先行技術のアプローチが選択された場合と同じである。新たなアプローチが選択された場合、次のステップが追加/変更される。
【0305】
○ステップ3a-bis:これは、ステップ3aの直後の追加ステップである。それは、numbitsを配列numbits[n]に保存するため、後でステップ6において再利用されることができる。
【0306】
○ステップ3b:最下位ビットを除く残りのビットを復号する
for (b = 1; b < numbits-2; b++) {
Decode bit0
[n] += bit0 << b
Decode bit1
[n+1] += bit1 << b
}
【0307】
・ステップ6:未使用のビットがある場合、nlsbsビットを復号してlsbs[]に格納する。次に、numbits[n]>2の場合、復号されたLSBビットを使用して係数(n,n+1)を精緻化する。
k = 0;
for (n = 0; n < lastnz; n+=2) {
if (numbits[n] > 2) {
if (k == nlsbs) {
break;
}
bit0 = lsbs[k++];
if (bit0 == 1) {
if (
[n] > 0) {
[n] += 1;
} else if (
[n] < 0) {
[n] -= 1;
} else {
if (k == nlsbs) {
break;
}
bit1 = lsbs[k++];
[n] = 1 - 2*bit1;
}
}
if (k == nlsbs) {
break;
}
bit0 = lsbs[k++];
if (bit0 == 1) {
if (
[n+1] > 0) {
[n+1] += 1;
} else if (
[n+1] < 0) {
[n+1] -= 1;
} else {
if (k == nlsbs) {
break;
}
bit1 = lsbs[k++];
[n+1] = 1 - 2*bit1;
}
}
}
}
【0308】
12.図14から図18にかかる方法
図14から
図15は、本発明の実施形態にかかるオーディオ復号の方法のフローチャートを示している。
【0309】
図16から
図18は、本発明の実施形態にかかるオーディオ復号の方法のフローチャートを示している。
【0310】
本方法は、個別にまたは組み合わせて、対応する装置に関して本明細書で説明される特徴および機能のいずれかによって、および言及された機能のいずれかによって補足されることができることに留意されたい。
【0311】
13.実装の代替
いくつかの態様が装置の文脈で説明されたが、これらの態様はまた、対応する方法の説明も表すことは明らかであり、ブロックまたは装置は、方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップの文脈で説明される態様は、対応する装置の対応するブロックまたは項目または特徴の説明も表す。本方法ステップの一部または全ては、例えば、マイクロプロセッサ、プログラム可能なコンピュータまたは電子回路などのハードウェア装置によって(または使用して)実行されることができる。いくつかの実施形態では、最も重要な方法ステップの1つ以上は、そのような装置によって実行されることができる。
【0312】
本発明の符号化されたオーディオ信号は、デジタル記憶媒体に格納されることができ、または無線送信媒体もしくはインターネットなどの有線送信媒体などの送信媒体で送信されることができる。
【0313】
特定の実装要件に応じて、本発明の実施形態は、ハードウェアまたはソフトウェアで実装されることができる。実装は、例えば、それぞれの方法が実行されるように、プログラム可能なコンピュータシステムと協働する(または協働することができる)、電子的に読み取り可能な制御信号が格納されたフロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリなどのデジタル記憶媒体を使用して実行されることができる。したがって、デジタル記憶媒体は、コンピュータ可読とすることができる。
【0314】
本発明にかかるいくつかの実施形態は、本明細書に記載の方法の1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読み取り可能な制御信号を有するデータキャリアを含む。
【0315】
一般に、本発明の実施形態は、プログラムコードを有するコンピュータプログラム製品として実装されることができ、プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときに方法の1つを実行するように動作する。プログラムコードは、例えば、機械可読キャリアに格納されてもよい。
【0316】
他の実施形態は、機械可読キャリアに記憶された、本明細書に記載された方法の1つを実行するためのコンピュータプログラムを含む。
【0317】
換言すれば、本発明の方法の実施形態は、したがって、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書で説明される方法の1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0318】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載の方法のうちの1つを実行するためのコンピュータプログラムが記録されたデータキャリア(またはデジタル記憶媒体、またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体、または記録媒体は、通常、有形および/または非一時的である。
【0319】
したがって、本発明の方法のさらなる実施形態は、本明細書で説明される方法の1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、例えば、インターネットなどのデータ通信接続を介して転送されるように構成されてもよい。
【0320】
さらなる実施形態は、本明細書に記載されている方法の1つを実行するように構成または適合された処理手段、例えばコンピュータ、またはプログラム可能な論理装置を備える。
【0321】
さらなる実施形態は、本明細書に記載される方法の1つを実行するためのコンピュータプログラムがインストールされているコンピュータを備える。
【0322】
本発明にかかるさらなる実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを(例えば、電子的または光学的に)受信機に転送するように構成された装置またはシステムを備える。受信機は、例えば、コンピュータ、モバイル装置、メモリ装置などとすることができる。装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを備えることができる。
【0323】
いくつかの実施形態では、プログラマブル論理装置(例えば、フィールドプログラマブルゲートアレイ)を使用して、本明細書に記載されている方法の機能の一部または全てを実行することができる。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書で説明される方法の1つを実行するために、マイクロプロセッサと協働することができる。一般に、本方法は、好ましくは、任意のハードウェア装置によって実行される。
【0324】
本明細書で説明する装置は、ハードウェア装置を使用して、またはコンピュータを使用して、またはハードウェア装置とコンピュータとの組み合わせを使用して実装されることができる。
【0325】
本明細書で説明される装置、または本明細書で説明される装置の任意の構成要素は、少なくとも部分的にハードウェアおよび/またはソフトウェアで実装されることができる。
【0326】
本明細書で説明する方法は、ハードウェア装置を使用して、またはコンピュータを使用して、またはハードウェア装置とコンピュータとの組み合わせを使用して実行されることができる。
【0327】
本明細書で説明される方法、または本明細書で説明される装置の任意の構成要素は、ハードウェアおよび/またはソフトウェアによって少なくとも部分的に実行されることができる。
【0328】
上述した実施形態は、本発明の原理を単に例示するものである。本明細書に記載された構成および詳細の変更および変形は、当業者にとって明らかであろうことが理解される。したがって、差し迫った特許請求の範囲によってのみ限定され、本明細書の実施形態の説明および説明として提示された特定の詳細によって限定されないことが意図されている。