(58)【調査した分野】(Int.Cl.,DB名)
前記シンタックス要素は、第1のシンタックス要素であり、前記インジケータは、前記現在のフレームのための第2のシンタックス要素の値の1つまたは複数のビットを備え、前記現在のフレームのための前記第2のシンタックス要素の前記値は、前記ベクトルを圧縮するときに使用される量子化モードを示す、
請求項1に記載のデバイス。
前記インジケータは、前記現在のフレームのための前記第2のシンタックス要素の前記値の最上位ビットと、前記現在のフレームのための前記第2のシンタックス要素の前記値の第2の最上位ビットとを含む、
請求項3に記載のデバイス。
前記シンタックス要素は、第1のシンタックス要素であり、前記インジケータは、前記現在のフレームのための第2のシンタックス要素の値の1つまたは複数のビットを備え、前記現在のフレームのための前記第2のシンタックス要素の前記値は、前記ベクトルを圧縮するときに使用される量子化モードを示す、
請求項10に記載の方法。
前記インジケータは、前記現在のフレームのための前記第2のシンタックス要素の前記値の最上位ビットと、前記現在のフレームのための前記第2のシンタックス要素の前記値の第2の最上位ビットとを含む、
請求項12に記載の方法。
前記インジケータが前記特定の値を有していないとき、前記ビットストリームから前記現在のフレームのための前記シンタックス要素の前記値を取得することをさらに備える、
請求項10に記載の方法。
前記シンタックス要素は、第1のシンタックス要素であり、前記インジケータは、前記現在のフレームのための第2のシンタックス要素の値の1つまたは複数のビットを備え、前記現在のフレームのための前記第2のシンタックス要素の前記値は、前記ベクトルを圧縮するときに使用される量子化モードを示す、
請求項19に記載のデバイス。
前記シンタックス要素は、第1のシンタックス要素であり、前記インジケータは、前記現在のフレームのための第2のシンタックス要素の値の1つまたは複数のビットを備え、前記現在のフレームのための前記第2のシンタックス要素の前記値は、前記ベクトルを圧縮するときに使用される量子化モードを示す、
請求項24に記載の非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0011】
[0020]サラウンドサウンドの発展は、現今では娯楽のための多くの出力フォーマットを利用可能にしている。そのような消費者向けのサラウンドサウンドフォーマットの例は、ある幾何学的な座標にあるラウドスピーカーへのフィードを暗黙的に指定するという点で、大半が「チャネル」ベースである。消費者向けのサラウンドサウンドフォーマットは、普及している5.1フォーマット(これは、次の6つのチャネル、すなわち、フロントレフト(FL)と、フロントライト(FR)と、センターまたはフロントセンターと、バックレフトまたはサラウンドレフトと、バックライトまたはサラウンドライトと、低周波効果(LFE)とを含む)、発展中の7.1フォーマット、7.1.4フォーマットおよび22.2フォーマット(たとえば、超高精細度テレビジョン規格とともに使用するための)などのハイトスピーカーを含む様々なフォーマットを含む。消費者向けではないフォーマットは、「サラウンドアレイ」と呼ばれることが多い(対称な、および非対称な幾何学的配置の)任意の数のスピーカーに及び得る。そのようなアレイの一例は、切頂二十面体の角の座標に配置される32個のラウドスピーカーを含む。
【0012】
[0021]将来のMPEG符号化器への入力は、オプションで、次の3つの可能なフォーマット、すなわち、(i)あらかじめ指定された位置でラウドスピーカーを通じて再生されることが意図される、(上で論じられたような)従来のチャネルベースオーディオ、(ii)(情報の中でも)位置座標を含む関連付けられたメタデータを有する単一オーディオオブジェクトのための離散的なパルス符号変調(PCM)データを伴うオブジェクトベースオーディオ、および(iii)球面調和基底関数の係数(「球面調和係数」すなわちSHC、「高次アンビソニックス」すなわちHOA、および「HOA係数」とも呼ばれる)を使用して音場を表すことを伴うシーンベースオーディオのうちの1つである。将来のMPEG符号化器は、2013年1月にスイスのジュネーブで発表された、
http://mpeg.chiariglione.org/sites/default/files/files/standards/parts/docs/w13411.zipにおいて入手可能な、International Organization for Standardization/International Electrotechnical Commission (ISO)/(IEC) JTC1/SC29/WG11/N13411による「Call for Proposals for 3D Audio」と題される文書においてより詳細に説明され得る。
【0013】
[0022]市場には様々な「サラウンドサウンド」チャネルベースフォーマットがある。これらのフォーマットは、たとえば、5.1ホームシアターシステム(リビングルームに進出するという点でステレオ以上に最も成功した)からNHK(Nippon Hoso Kyokaiすなわち日本放送協会)によって開発された22.2システムに及ぶ。コンテンツ作成者(たとえば、ハリウッドスタジオ)は、一度に映画のサウンドトラックを作成することを望み、各々のスピーカー構成のためにサウンドトラックをリミックスする努力を行うことを望まない。最近では、規格開発組織が、規格化されたビットストリームへの符号化と、スピーカーの幾何学的配置(と数)および(レンダラを伴う)再生のロケーションにおける音響条件に適応可能でありそれらに依存しない後続の復号とを提供するための方法を考えている。
【0014】
[0023]コンテンツ作成者にそのような柔軟性を提供するために、要素の階層セットが音場を表すために使用され得る。要素の階層セットは、モデル化された音場の完全な表現をより低次の要素の基本セットが提供するように要素が順序付けられる、要素のセットを指し得る。セットがより高次の要素を含むように拡張されると、表現はより詳細なものになり、分解能は向上する。
【0015】
[0024]要素の階層セットの一例は、球面調和係数(SHC)のセットである。次の式は、SHCを使用する音場の記述または表現を示す。
【0017】
[0025]この式は、時間tにおける音場の任意の点{r
r,θ
r,φ
r}における圧力p
iが、SHC、
【0019】
によって一意に表され得ることを示す。ここで、
【0021】
であり、cは音速(約343m/s)であり、{r
r,θ
r,φ
r}は基準点(または観測点)であり、j
n(・)は次数nの球ベッセル関数であり、
【0023】
は次数nおよび副次数mの球面調和基底関数である。角括弧内の項は、離散フーリエ変換(DFT)、離散コサイン変換(DCT)、またはウェーブレット変換などの様々な時間周波数変換によって近似され得る信号の周波数領域表現(すなわち、S(ω,r
r,θ
r,φ
r))であることが認識できよう。階層セットの他の例は、ウェーブレット変換係数のセット、および多分解能基底関数の係数の他のセットを含む。
【0024】
[0026]
図1は、0次(n=0)から4次(n=4)までの球面調和基底関数を示す図である。理解できるように、各次数に対して、説明を簡単にするために図示されているが
図1の例では明示的に示されていない副次数mの拡張が存在する。
【0027】
は、様々なマイクロフォンアレイ構成によって物理的に獲得(たとえば、録音)されてよく、または代替的に、それらは音場のチャネルベースまたはオブジェクトベースの記述から導出されてよい。SHCはシーンベースのオーディオを表し、ここで、SHCは、より効率的な送信または記憶を促し得る符号化されたSHCを取得するために、オーディオ符号化器に入力され得る。たとえば、(1+4)
2個の(25個の、したがって4次の)係数を伴う4次表現が使用され得る。
【0028】
[0028]上述されたように、SHCは、マイクロフォンアレイを使用したマイクロフォン録音から導出され得る。SHCがマイクロフォンアレイからどのように導出され得るかの様々な例は、Poletti,M、「Three−Dimensional Surround Sound Systems Based on Spherical Harmonics」、J.Audio Eng. Soc.、Vol. 53、No. 11、2005年11月、1004〜1025ページにおいて説明されている。
【0029】
[0029]SHCがどのようにオブジェクトベースの記述から導出され得るかを例示するために、次の式を考える。個々のオーディオオブジェクトに対応する音場についての係数
【0037】
は次数nの(第2の種類の)球ハンケル関数であり、{r
s,θ
s、φ
s}はオブジェクトのロケーションである。周波数の関数として(たとえば、PCMストリームに対して高速フーリエ変換を実行するなど、時間周波数分析技法を使用して)オブジェクトソースエネルギーg(ω)を知ることで、各PCMオブジェクトと対応するロケーションとをSHC
【0039】
に変換することが可能となる。さらに、各オブジェクトについての
【0041】
係数は、(上式は線形であり直交方向の分解であるので)加法的であることが示され得る。このようにして、多数のPCMオブジェクトが
【0043】
係数によって(たとえば、個々のオブジェクトについての係数ベクトルの和として)表され得る。本質的に、これらの係数は、音場についての情報(3D座標の関数としての圧力)を含んでおり、上記は、観測点{r
r,θ
r,φ
r}の近傍における、音場全体の表現への個々のオブジェクトからの変換を表す。残りの数字は、以下でオブジェクトベースのオーディオコーディングおよびSHCベースのオーディオコーディングの文脈で説明される。
【0044】
[0030]
図2は、本開示で説明される技法の様々な態様を実行することができるシステム10を示す図である。
図2の例に示されるように、システム10は、コンテンツ作成者デバイス12と、コンテンツ消費者デバイス14とを含む。コンテンツ作成者デバイス12およびコンテンツ消費者デバイス14の文脈で説明されているが、本技法は、オーディオデータを表すビットストリームを形成するために、SHC(HOA係数とも呼ばれ得る)または音場の任意の他の階層的表現が符号化される任意の文脈で実施され得る。その上、コンテンツ作成者デバイス12は、いくつか例を挙げると、ハンドセット(またはセルラーフォン)、タブレットコンピュータ、スマートフォン、またはデスクトップコンピュータを含む、本開示で説明される技法を実施することが可能な任意の形態のコンピューティングデバイスを表し得る。同様に、コンテンツ消費者デバイス14は、いくつか例を挙げると、ハンドセット(またはセルラーフォン)、タブレットコンピュータ、スマートフォン、セットトップボックス、またはデスクトップコンピュータを含む、本開示で説明される技法を実施することが可能な任意の形態のコンピューティングデバイスを表し得る。
【0045】
[0031]コンテンツ作成者デバイス12は、コンテンツ消費者デバイス14などのコンテンツ消費者のオペレータによる消費のためのマルチチャネルオーディオコンテンツを生成することができる、映画スタジオまたは他のエンティティによって操作され得る。いくつかの例では、コンテンツ作成者デバイス12は、HOA係数11を圧縮することを望む個人ユーザによって操作され得る。多くの場合、コンテンツ作成者は、ビデオコンテンツとともに、オーディオコンテンツを生成する。コンテンツ消費者デバイス14は、個人によって操作され得る。コンテンツ消費者デバイス14は、マルチチャネルオーディオコンテンツとしての再生のためにSHCをレンダリングすることが可能な任意の形態のオーディオ再生システムを指し得る、オーディオ再生システム16を含み得る。
【0046】
[0032]コンテンツ作成者デバイス12は、オーディオ編集システム18を含む。コンテンツ作成者デバイス12は、様々なフォーマットのライブ録音7(HOA係数として直接含む)とオーディオオブジェクト9とを取得し、コンテンツ作成者デバイス12は、オーディオ編集システム18を使用してこれらを編集することができる。コンテンツ作成者は、編集プロセスの間に、オーディオオブジェクト9からのHOA係数11をレンダリングし、さらなる編集を必要とする音場の様々な態様を特定しようとして、レンダリングされたスピーカーフィードを聞くことができる。コンテンツ作成者デバイス12は次いで、(潜在的に、上記で説明された方法でソースHOA係数がそれから導出され得るオーディオオブジェクト9のうちの様々なオブジェクトの操作を通じて間接的に)HOA係数11を編集することができる。コンテンツ作成者デバイス12は、HOA係数11を生成するためにオーディオ編集システム18を採用することができる。オーディオ編集システム18は、オーディオデータを編集し、このオーディオデータを1つまたは複数のソース球面調和係数として出力することが可能な任意のシステムを表す。
【0047】
[0033]編集プロセスが完了すると、コンテンツ作成者デバイス12は、HOA係数11に基づいてビットストリーム21を生成することができる。すなわち、コンテンツ作成者デバイス12は、ビットストリーム21を生成するために、本開示で説明される技法の様々な態様に従って、HOA係数11を符号化またはさもなければ圧縮するように構成されたデバイスを表す、オーディオ符号化デバイス20を含む。オーディオ符号化デバイス20は、一例として、有線チャネルまたはワイヤレスチャネル、データ記憶デバイスなどであり得る送信チャネルを介した送信のために、ビットストリーム21を生成することができる。ビットストリーム21は、HOA係数11の符号化されたバージョンを表すことができ、主要ビットストリームと、サイドチャネル情報とも呼ばれ得る別のサイドビットストリームとを含み得る。
【0048】
[0034]以下でより詳細に説明されるが、オーディオ符号化デバイス20は、ベクトルベース合成または指向性ベース合成に基づいてHOA係数11を符号化するように構成され得る。ベクトルベース分解方法を実行するか指向性ベース分解方法を実行するかを決定するために、オーディオ符号化デバイス20は、HOA係数11に少なくとも部分的に基づいて、HOA係数11が音場の自然な録音(たとえば、ライブ録音7)を介して生成されたか、または一例として、PCMオブジェクトなどのオーディオオブジェクト9から人工的に(すなわち、合成的に)作成されたかを決定することができる。HOA係数11がオーディオオブジェクト9から生成されたとき、オーディオ符号化デバイス20は、指向性ベース分解方法を使用してHOA係数11を符号化することができる。HOA係数11が、たとえば、eigenmikeを使用してライブでキャプチャされたとき、オーディオ符号化デバイス20は、ベクトルベース分解方法に基づいてHOA係数11を符号化することができる。上の区別は、ベクトルベース分解方法または指向性ベース分解方法が採用され得る一例を表す。これらの一方または両方が、自然な録音、人工的に生成されたコンテンツ、またはこれら2つの混合物(ハイブリッドコンテンツ)に対して有用であり得る、他の場合があり得る。さらに、HOA係数の単一の時間フレームをコーディングするために両方の方法を同時に使用することも可能である。
【0049】
[0035]説明のために、HOA係数11がライブでキャプチャされたか、またはさもなければライブ録音7などのライブ録音を表すと、オーディオ符号化デバイス20が決定すると仮定すると、オーディオ符号化デバイス20は、線形可逆変換(LIT)の適用を伴うベクトルベース分解方法を使用してHOA係数11を符号化するように構成され得る。線形可逆変換の一例は、「特異値分解」(または「SVD」)と呼ばれる。この例では、オーディオ符号化デバイス20は、HOA係数11の分解されたバージョンを決定するためにSVDをHOA係数11に適用することができる。オーディオ符号化デバイス20は次いで、様々なパラメータを特定するためにHOA係数11の分解されたバージョンを分析することができ、このことは、HOA係数11の分解されたバージョンの並べ替えを容易にし得る。オーディオ符号化デバイス20は次いで、特定されたパラメータに基づいてHOA係数11の分解されたバージョンを並べ替えることができ、そのような並べ替えは、以下でさらに詳細に説明されるように、変換がHOA係数のフレームにわたってHOA係数を並べ替えることができるとすると(フレームが、HOA係数11のM個のサンプルを含み得、Mが、いくつかの例では1024に設定される場合)、コーディング効率を向上させることができる。HOA係数11の分解されたバージョンを並べ替えた後、オーディオ符号化デバイス20は、音場のフォアグラウンド(または言い換えれば、明瞭な、支配的な、もしくは目立つ)成分を表す、HOA係数11の分解されたバージョンを選択することができる。オーディオ符号化デバイス20は、フォアグラウンド成分を表すHOA係数11の分解されたバージョンを、オーディオオブジェクトおよび関連付けられる指向性情報として指定することができる。
【0050】
[0036]オーディオ符号化デバイス20はまた、少なくとも部分的には、音場の1つまたは複数のバックグラウンド(または言い換えれば、環境的な)成分を表すHOA係数11を特定するために、HOA係数11に関して音場分析を実行することができる。オーディオ符号化デバイス20は、いくつかの例では、バックグラウンド成分がHOA係数11の任意の所与のサンプルのサブセット(たとえば、2次以上の球面基底関数に対応するHOA係数11ではなく、0次および1次の球面基底関数に対応するHOA係数11など)のみを含み得るとすると、バックグラウンド成分に関してエネルギー補償を実行することができる。言い換えれば、次数低減が実行されるとき、オーディオ符号化デバイス20は、次数低減を実行したことに起因する全体的なエネルギーの変化を補償するために、HOA係数11の残りのバックグラウンドHOA係数を補強する(たとえば、それにエネルギーを加える/それからエネルギーを差し引く)ことができる。
【0051】
[0037]オーディオ符号化デバイス20は次に、バックグラウンド成分とフォアグラウンドオーディオオブジェクトの各々とを表すHOA係数11の各々に関して、ある形態の聴覚心理符号化(MPEGサラウンド、MPEG−AAC、MPEG−USAC、または他の既知の形態の聴覚心理符号化など)を実行することができる。オーディオ符号化デバイス20は、フォアグラウンド指向性情報に関してある形態の補間を実行し、次いで、次数低減されたフォアグラウンド指向性情報を生成するために、補間されたフォアグラウンド指向性情報に関して次数低減を実行することができる。オーディオ符号化デバイス20はさらに、いくつかの例では、次数低減されたフォアグラウンド指向性情報に関して量子化を実行し、コーディングされたフォアグラウンド指向性情報を出力することができる。いくつかの場合には、量子化はスカラー/エントロピー量子化を備え得る。オーディオ符号化デバイス20は次いで、符号化されたバックグラウンド成分と、符号化されたフォアグラウンドオーディオオブジェクトと、量子化された指向性情報とを含むように、ビットストリーム21を形成することができる。オーディオ符号化デバイス20は次いで、ビットストリーム21をコンテンツ消費者デバイス14に送信またはさもなければ出力することができる。
【0052】
[0038]
図2では、コンテンツ消費者デバイス14に直接的に送信されるものとして示されているが、コンテンツ作成者デバイス12は、コンテンツ作成者デバイス12とコンテンツ消費者デバイス14との間に配置された中間デバイスにビットストリーム21を出力することができる。中間デバイスは、ビットストリームを要求し得るコンテンツ消費者デバイス14に後で配信するために、ビットストリーム21を記憶することができる。中間デバイスは、ファイルサーバ、ウェブサーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルフォン、スマートフォン、または後でのオーディオ復号器による取出しのためにビットストリーム21を記憶することが可能な任意の他のデバイスを備え得る。中間デバイスは、ビットストリーム21を要求するコンテンツ消費者デバイス14などの加入者にビットストリーム21を(場合によっては対応するビデオデータビットストリームを送信するとともに)ストリーミングすることが可能なコンテンツ配信ネットワーク内に存在してもよい。
【0053】
[0039]代替的に、コンテンツ作成者デバイス12は、コンパクトディスク、デジタルビデオディスク、高精細度ビデオディスク、または他の記憶媒体などの記憶媒体にビットストリーム21を記憶することができ、記憶媒体の大部分はコンピュータによって読み取り可能であり、したがって、コンピュータ可読記憶媒体または非一時的コンピュータ可読記憶媒体と呼ばれることがある。この文脈において、送信チャネルは、これらの媒体に記憶されたコンテンツが送信されるチャネルを指すことがある(および、小売店と他の店舗ベースの配信機構とを含み得る)。したがって、いずれにしても、本開示の技法は、この点に関して
図2の例に限定されるべきではない。
【0054】
[0040]
図2の例にさらに示されるように、コンテンツ消費者デバイス14は、オーディオ再生システム16を含む。オーディオ再生システム16は、マルチチャネルオーディオデータを再生することが可能な任意のオーディオ再生システムを表し得る。オーディオ再生システム16は、いくつかの異なるレンダラ22を含み得る。レンダラ22は各々、異なる形態のレンダリングを提供することができ、異なる形態のレンダリングは、ベクトルベース振幅パンニング(VBAP:vector-base amplitude panning)を実行する様々な方法の1つもしくは複数、および/または音場合成を実行する様々な方法の1つもしくは複数を含み得る。本明細書で使用される場合、「Aおよび/またはB」は、「AまたはB」、または「AとB」の両方を意味する。
【0055】
[0041]オーディオ再生システム16は、オーディオ復号デバイス24をさらに含み得る。オーディオ復号デバイス24は、ビットストリーム21からHOA係数11’を復号するように構成されたデバイスを表し得、HOA係数11’は、HOA係数11と類似し得るが、損失のある演算(たとえば、量子化)および/または送信チャネルを介した送信が原因で異なり得る。すなわち、オーディオ復号デバイス24は、ビットストリーム21において指定されるフォアグラウンド指向性情報を逆量子化することができ、一方でまた、ビットストリーム21において指定されるフォアグラウンドオーディオオブジェクトおよびバックグラウンド成分を表す符号化されたHOA係数に関して聴覚心理復号を実行することができる。オーディオ復号デバイス24はさらに、復号されたフォアグラウンド指向性情報に関して補間を実行し、次いで、復号されたフォアグラウンドオーディオオブジェクトおよび補間されたフォアグラウンド指向性情報に基づいて、フォアグラウンド成分を表すHOA係数を決定することができる。オーディオ復号デバイス24は次いで、フォアグラウンド成分を表す決定されたHOA係数およびバックグラウンド成分を表す復号されたHOA係数に基づいて、HOA係数11’を決定することができる。
【0056】
[0042]オーディオ再生システム16は、HOA係数11’を取得するためにビットストリーム21を復号した後、ラウドスピーカーフィード25を出力するためにHOA係数11’をレンダリングすることができる。ラウドスピーカーフィード25は、1つまたは複数のラウドスピーカー(説明を簡単にするために
図2の例には示されていない)を駆動することができる。
【0057】
[0043]適切なレンダラを選択するために、またはいくつかの場合には、適切なレンダラを生成するために、オーディオ再生システム16は、ラウドスピーカーの数および/またはラウドスピーカーの空間的な幾何学的配置を示すラウドスピーカー情報13を取得することができる。いくつかの場合には、オーディオ再生システム16は、基準マイクロフォンを使用してラウドスピーカー情報13を取得し、ラウドスピーカー情報13を動的に決定するような方法でラウドスピーカーを駆動することができる。他の場合には、またはラウドスピーカー情報13の動的な決定とともに、オーディオ再生システム16は、オーディオ再生システム16とインターフェースをとりラウドスピーカー情報13を入力するようにユーザに促すことができる。
【0058】
[0044]オーディオ再生システム16は次いで、ラウドスピーカー情報13に基づいて、オーディオレンダラ22のうちの1つを選択することができる。いくつかの場合には、オーディオ再生システム16は、オーディオレンダラ22のいずれもがラウドスピーカー情報13において指定されたものに対して(ラウドスピーカーの幾何学的配置に関する)何らかの類似性の尺度のしきい値内にないとき、ラウドスピーカー情報13に基づいて、オーディオレンダラ22のうちの1つを生成することができる。オーディオ再生システム16は、いくつかの場合には、オーディオレンダラ22のうちの既存の1つを選択することを最初に試みることなく、ラウドスピーカー情報13に基づいて、オーディオレンダラ22のうちの1つを生成することができる。
【0059】
[0045]
図3は、本開示で説明される技法の様々な態様を実行することができる、
図2の例に示されるオーディオ符号化デバイス20の一例をより詳細に示すブロック図である。オーディオ符号化デバイス20は、コンテンツ分析ユニット26と、ベクトルベース分解ユニット27と、指向性ベース分解ユニット28とを含む。以下で手短に説明されるが、オーディオ符号化デバイス20に関するより多くの情報、およびHOA係数を圧縮またはさもなければ符号化する様々な態様は、2014年5月29に出願された「INTERPOLATION FOR DECOMPOSED REPRESENTATIONS OF A SOUND FIELD」という名称の国際特許出願公開第WO2014/194099号において入手可能である。
【0060】
[0046]コンテンツ分析ユニット26は、HOA係数11がライブ録音から生成されたコンテンツを表すか、オーディオオブジェクトから生成されたコンテンツを表すかを特定するために、HOA係数11のコンテンツを分析するように構成されたユニットを表す。コンテンツ分析ユニット26は、HOA係数11が実際の音場の録音から生成されたか人工的なオーディオオブジェクトから生成されたかを決定することができる。いくつかの場合には、フレーム化されたHOA係数11が録音から生成されたとき、コンテンツ分析ユニット26は、HOA係数11をベクトルベース分解ユニット27に渡す。いくつかの場合には、フレーム化されたHOA係数11が合成オーディオオブジェクトから生成されたとき、コンテンツ分析ユニット26は、HOA係数11を指向性ベース合成ユニット28に渡す。指向性ベース合成ユニット28は、指向性ベースビットストリーム21を生成するためにHOA係数11の指向性ベース合成を実行するように構成されたユニットを表し得る。
【0061】
[0047]
図3の例に示されるように、ベクトルベース分解ユニット27は、線形可逆変換(LIT)ユニット30と、パラメータ計算ユニット32と、並べ替えユニット34と、フォアグラウンド選択ユニット36と、エネルギー補償ユニット38と、聴覚心理オーディオコーダユニット40と、ビットストリーム生成ユニット42と、音場分析ユニット44と、係数低減ユニット46と、バックグラウンド(BG)選択ユニット48と、空間時間的補間ユニット50と、量子化ユニット52とを含み得る。
【0062】
[0048]線形可逆変換(LIT)ユニット30は、HOAチャネルの形態でHOA係数11を受信し、各チャネルは、球面基底関数の所与の次数、副次数に関連付けられた係数のブロックまたはフレーム(HOA[k]と示され得、ただし、kはサンプルの現在のフレームまたはブロックを示し得る)を表す。HOA係数11の行列は、次元D:M×(N+1)
2を有し得る。
【0063】
[0049]すなわち、LITユニット30は、特異値分解と呼ばれるある形態の分析を実行するように構成されたユニットを表し得る。SVDに関して説明されているが、本開示で説明される技法は、線形的に無相関な、エネルギーが圧縮された出力のセットを提供する任意の類似の変換または分解に対して実行されてよい。また、本開示における「セット」への言及は、一般的に、それとは反対に特に明記されていない限り、非0のセットを指すことが意図され、いわゆる「空集合」を含む集合の古典的な数学的定義を指すことは意図されない。
【0064】
[0050]代替的な変換は、「PCA」と呼ばれることが多い、主成分分析を備え得る。PCAは、おそらく相関する変数の観測値のセットを、主成分と呼ばれる線形的に無相関な変数のセットに変換するために、直交変換を採用する数学的手順を指す。線形的に無相関な変数とは、互いに対する統計的線形関係(すなわち依存)を持たない変数を表す。主成分は、互いに対するわずかな統計的相関を有するものとして説明され得る。いずれにしても、いわゆる主成分の数は、元の変数の数以下である。いくつかの例では、変換は、第1の主成分が可能な最大の分散を有し(または、言い換えれば、データの変動性をできる限り多く考慮し)、後続の各成分が、連続した成分が先行する成分と直交する(これと無相関と言い換えられ得る)という制約の下で可能な最高分散を有するような方法で、定義される。PCAは、HOA係数11に関してHOA係数11の圧縮をもたらし得る、ある形態の次数低減を実行することができる。文脈に応じて、PCAは、いくつかの例を挙げれば、離散カルーネン−レーベ変換、ホテリング変換、固有直交分解(POD)、および固有値分解(EVD)などのいくつかの異なる名前によって呼ばれることがある。オーディオデータを圧縮するという背後にある目標につながるそのような演算の特性は、マルチチャネルオーディオデータの「エネルギー圧縮」および「無相関化」である。
【0065】
[0051]いずれにしても、LITユニット30が、例として、特異値分解(やはり「SVD」と呼ばれることがある)を実行すると仮定すると、LITユニット30は、HOA係数11を、変換されたHOA係数の2つ以上のセットに変換することができる。変換されたHOA係数の「セット」は、変換されたHOA係数のベクトルを含み得る。
図3の例では、LITユニット30は、いわゆるV行列と、S行列と、U行列とを生成するために、HOA係数11に関してSVDを実行することができる。SVDは、線形代数学では、y×zの実行列または複素行列X(ここで、Xは、HOA係数11などのマルチチャネルオーディオデータを表し得る)の因数分解を以下の形で表し得る。X=USV*Uはy×yの実ユニタリー行列または複素ユニタリー行列を表し得、ここで、Uのy個の列は、マルチチャネルオーディオデータの左特異ベクトルとして知られる。Sは、対角線上に非負実数をもつy×zの矩形対角行列を表し得、ここで、Sの対角線値は、マルチチャネルオーディオデータの特異値として知られる。V*(Vの共役転置を示し得る)はz×zの実ユニタリー行列または複素ユニタリー行列を表し得、ここで、V*のz個の列は、マルチチャネルオーディオデータの右特異ベクトルとして知られる。
【0066】
[0052]本開示では、HOA係数11を備えるマルチチャネルオーディオデータに適用されるものとして説明されているが、本技法は、任意の形態のマルチチャネルオーディオデータに適用されてよい。このようにして、オーディオ符号化デバイス20は、マルチチャネルオーディオデータの左特異ベクトルを表すU行列と、マルチチャネルオーディオデータの特異値を表すS行列と、マルチチャネルオーディオデータの右特異ベクトルを表すV行列とを生成するために、音場の少なくとも一部分を表すマルチチャネルオーディオデータに対して特異値分解を実行し、マルチチャネルオーディオデータをU行列、S行列、およびV行列のうちの1つまたは複数の少なくとも一部分の関数として表すことができる。
【0067】
[0053]いくつかの例では、上で参照されたSVD数式中のV*行列は、複素数を備える行列にSVDが適用され得ることを反映するために、V行列の共役転置として示される。実数のみを備える行列に適用されるとき、V行列の複素共役(すなわち、言い換えれば、V*行列)は、V行列の転置であると見なされてよい。以下では、説明を簡単にするために、HOA係数11が実数を備え、その結果、V*行列ではなくV行列がSVDによって出力されると仮定される。その上、本開示ではV行列として示されるが、V行列への言及は、適切な場合にはV行列の転置を指すものとして理解されるべきである。V行列であると仮定されているが、本技法は、同様の方式で、複素係数を有するHOA係数11に適用されてよく、ここで、SVDの出力はV*行列である。したがって、本技法は、この点について、V行列を生成するためにSVDの適用を提供することのみに限定されるべきではなく、V*行列を生成するために複素成分を有するHOA係数11へのSVDの適用を含んでよい。
【0068】
[0054]いずれにしても、LITユニット30は、高次アンビソニックス(HOA)オーディオデータの各ブロック(フレームを指し得る)に関して、ブロックごとの形態のSVDを実行することができる(ここで、アンビソニックスオーディオデータは、HOA係数11のブロックもしくはサンプル、または任意の他の形態のマルチチャネルオーディオデータを含む)。上述されたように、変数Mは、サンプル中のオーディオフレームの長さを示すために使用され得る。たとえば、オーディオフレームが1024個のオーディオサンプルを含むとき、Mは1024に等しい。Mの典型的な値に関して説明されるが、本開示の技法は、Mの典型的な値に限定されるべきではない。LITユニット30はしたがって、M×(N+1)
2のHOA係数を有するブロックHOA係数11に関してブロックごとのSVDを実行することができ、ここで、NはやはりHOAオーディオデータの次数を示す。LITユニット30は、SVDの実行を通して、V行列と、S行列と、U行列とを生成することができ、ここで、行列の各々は、上記で説明されたそれぞれのV行列と、S行列と、U行列とを表すことができる。このようにして、線形可逆変換ユニット30は、次元D:M×(N+1)
2を有するUS[k]ベクトル33(SベクトルとUベクトルとの組み合わされたバージョンを表し得る)と、次元D:(N+1)
2×(N+1)
2を有するV[k]ベクトル35とを出力するために、HOA係数11に関してSVDを実行することができる。US[k]行列中の個々のベクトル要素はX
ps(k)とも呼ばれることがあり、一方、V[k]行列の個々のベクトルはv(k)とも呼ばれることがある。
【0069】
[0055]U行列、S行列、およびV行列の分析は、それらの行列がXによって上で表される背後の音場の空間的および時間的な特性を伝え、または表すということを明らかにし得る。(M個のサンプルの長さの)Uの中のN個のベクトルの各々は、(M個のサンプルによって表される時間期間の間は)時間の関数として、互いに直交しておりあらゆる空間特性(指向性情報とも呼ばれ得る)とは切り離されている、正規化された分離されたオーディオ信号を表し得る。空間的な形状と位置(r、θ、φ)の幅とを表す空間特性は代わりに、(各々が(N+1)
2の長さの)V行列の中の個々のi番目のベクトル、v
(i)(k)によって表され得る。v
(i)(k)ベクトルの各々の個々の要素は、関連付けられたオーディオオブジェクトのための音場の形状と方向とを記述するHOA係数を表し得る。U行列中のベクトルとV行列中のベクトルの両方が、それらの2乗平均エネルギーが1に等しくなるように正規化される。したがって、Uの中のオーディオ信号のエネルギーは、Sの中の対角線要素によって表される。したがって、US[k](個々のベクトル要素X
PS(k)を有する)を形成するために、UとSとを乗算することは、真のエネルギーを有するオーディオ信号を表す。(Uにおける)オーディオ時間信号と、(Sにおける)それらのエネルギーと、(Vにおける)それらの空間特性とを切り離すSVD分解の能力は、本開示で説明される技法の様々な態様を支援することができる。さらに、背後のHOA[k]係数XをUS[k]とV[k]とのベクトル乗算によって合成するモデルは、本文書全体で使用される、「ベクトルベース分解」という用語を生じさせる。
【0070】
[0056]HOA係数11に関して直接実行されるものとして説明されるが、LITユニット30は、線形可逆変換をHOA係数11の派生物に適用することができる。たとえば、LITユニット30は、HOA係数11から導出された電力スペクトル密度行列に関してSVDを適用することができる。電力スペクトル密度行列は、PSDとして示され、以下に続く擬似コードにおいて概説されるように、hoaFrameの転置のhoaFrameへの行列乗算を通じて取得され得る。hoaFrameという表記は、HOA係数11のフレームを指す。
【0071】
[0057]LITユニット30は、SVD(svd)をPSDに適用した後、S[k]
2行列(S_squared)とV[k]行列とを取得することができる。S[k]
2行列は、二乗されたS[k]行列を示すことができ、すると、LITユニット30は、S[k]行列を取得するために平方根演算をS[k]
2行列に適用することができる。LITユニット30は、いくつかの場合には、量子化されたV[k]行列(V[k]’行列と示され得る)を取得するために、V[k]行列に関して量子化を実行することができる。LITユニット30は、SV[k]’行列を取得するために、S[k]行列を量子化されたV[k]’行列と最初に乗算することによって、U[k]行列を取得することができる。LITユニット30は次に、SV[k]’行列の擬似逆行列(pinv)を取得することができ、次いで、U[k]行列を取得するために、HOA係数11をSV[k]’行列の擬似逆行列と乗算することができる。上記は、以下の擬似コードによって表され得る。
PSD = hoaFrame’*hoaFrame;
[V, S_squared] = svd(PSD,’econ’);
S = sqrt(S_squared);
U = hoaFrame * pinv(S*V’);
[0058]HOA係数自体ではなくHOA係数の電力スペクトル密度(PSD)に関してSVDを実行することによって、LITユニット30は潜在的に、プロセッササイクルおよび記憶空間のうちの1つまたは複数に関してSVDを実行することの計算的な複雑さを低減しつつ、SVDがHOA係数に直接適用されたかのように同じソースオーディオ符号化効率を達成することができる。すなわち、上記で説明されたPSDタイプのSVDは、Mがフレーム長さ、すなわち、1024以上のサンプルである、M*F行列と比較して、F*F行列(HOA係数の数Fをもつ)において完了するので、潜在的にそれほど計算的に厳しくないことがある。ここで、SVDの複雑さは、HOA係数11ではなくPSDへの適用を通じて、HOA係数11に適用されたときのO(M*L
2)と比較して、O(L
3)前後であり得る(ここで、O(*)は、コンピュータサイエンス技術において一般的な計算の複雑さである大文字Oの表記を示す)。
【0072】
[0059]この点において、LITユニット30は、球面調和関数領域における直交空間軸を表すベクトル(例えば、上のV−ベクトル)を取得するために、高次アンビソニックオーディオデータに関して分解を実行するまたはさもなければ高次アンビソニックオーディオデータを分解し得る。分解は、SVD、EVD、または分解の任意の他の形式を含み得る。
【0073】
[0060]パラメータ計算ユニット32は、相関パラメータ(R)、指向性特性パラメータ(θ、φ、r)、およびエネルギー特性(e)などの様々なパラメータを計算するように構成されたユニットを表す。現在のフレームのためのパラメータの各々は、R[k]、θ[k]、φ[k]、r[k]、およびe[k]として示され得る。パラメータ計算ユニット32は、パラメータを特定するために、US[k]ベクトル33に関してエネルギー分析および/または相関(もしくはいわゆる相互相関)を実行することができる。パラメータ計算ユニット32はまた、以前のフレームのためのパラメータを決定することができ、ここで、以前のフレームパラメータは、US[k−1]ベクトルおよびV[k−1]ベクトルの以前のフレームに基づいて、R[k−1]、θ[k−1]、φ[k−1]、r[k−1]、およびe[k−1]と示され得る。パラメータ計算ユニット32は、現在のパラメータ37と以前のパラメータ39とを並べ替えユニット34に出力することができる。
【0074】
[0061]SVD分解は、US[k−1][p]ベクトル(または代替的に、X
PS(p)(k−1))として示され得る、US[k−1]ベクトル33のp番目のベクトルによって表されるオーディオ信号/オブジェクトが、同じくUS[k][p]ベクトル33(または代替的に、X
PS(p)(k))として示され得る、US[k]ベクトル33のp番目のベクトルによって表される(時間的に進んだ)同じオーディオ信号/オブジェクトとなることを保証しない。パラメータ計算ユニット32によって計算されるパラメータは、オーディオオブジェクトの自然な評価または時間的な継続性を表すようにオーディオオブジェクトを並べ替えるために、並べ替えユニット34によって使用され得る。
【0075】
[0062]すなわち、並べ替えユニット34は、第1のUS[k]ベクトル33からのパラメータ37の各々を、第2のUS[k−1]ベクトル33のためのパラメータ39の各々に対して順番ごとに比較することができる。並べ替えユニット34は、並べ替えられたUS[k]行列33’(数学的には
【0077】
として示され得る)と、並べ替えられたV[k]行列35’(数学的には
【0079】
として示され得る)とをフォアグラウンドサウンド(または支配的サウンド−PS(predominant sound))選択ユニット36(「フォアグラウンド選択ユニット36」)およびエネルギー補償ユニット38に出力するために、現在のパラメータ37および以前のパラメータ39に基づいて、US[k]行列33およびV[k]行列35内の様々なベクトルを(一例として、ハンガリー法を使用して)並べ替えることができる。
【0080】
[0063]音場分析ユニット44は、目標ビットレート41を潜在的に達成するために、HOA係数11に関して音場分析を実行するように構成されたユニットを表し得る。音場分析ユニット44は、その分析および/または受信された目標ビットレート41に基づいて、聴覚心理コーダのインスタンス化の総数(環境またはバックグラウンドチャネルの総数(BG
TOT)とフォアグラウンドチャネル、または言い換えれば支配的なチャネルの数との関数であり得る、を決定することができる。聴覚心理コーダのインスタンス化の総数は、numHOATransportChannelsとして示され得る。
【0081】
[0064]音場分析ユニット44はまた、やはり目標ビットレート41を潜在的に達成するために、フォアグラウンドチャネルの総数(nFG)45と、バックグラウンド(または言い換えれば環境的な)音場の最小次数(N
BG、または代替的にはMinAmbHOAorder)と、バックグラウンド音場の最小次数を表す実際のチャネルの対応する数(nBGa=(MinAmbHOAorder+1)
2)と、送るべき追加のBG HOAチャネルのインデックス(i)(
図3の例ではバックグラウンドチャネル情報43として総称的に示され得る)とを決定することができる。バックグラウンドチャネル情報42は、環境チャネル情報43とも呼ばれ得る。numHOATransportChannels−nBGaで残るチャネルの各々は、「追加のバックグラウンド/環境チャネル」、「アクティブなベクトルベースの支配的なチャネル」、「アクティブな指向性ベースの支配的な信号」、または「完全に非アクティブ」のいずれかであり得る。一態様では、チャネルタイプは、2ビットによって(「ChannelType」として)示されたシンタックス要素であり得る(たとえば、00:指向性ベースの信号、01:ベクトルベースの支配的な信号、10:追加の環境信号、11:非アクティブな信号)。バックグラウンド信号または環境信号の総数、nBGaは、(MinAmbHOAorder+1)
2+(上記の例における)インデックス10がそのフレームのためのビットストリームにおいてチャネルタイプとして現れる回数によって与えられ得る。
【0082】
[0065]いずれにしても、音場分析ユニット44は、目標ビットレート41に基づいて、バックグラウンド(または言い換えれば環境)チャネルの数とフォアグラウンド(または言い換えれば支配的な)チャネルの数とを選択し、目標ビットレート41が比較的高いとき(たとえば、目標ビットレート41が512Kbps以上であるとき)はより多くのバックグラウンドチャネルおよび/またはフォアグラウンドチャネルを選択することができる。一態様では、ビットストリームのヘッダセクションにおいて、numHOATransportChannelsは8に設定され得るが、一方で、MinAmbHOAorderは1に設定され得る。このシナリオでは、各フレームにおいて、音場のバックグラウンド部分または環境部分を表すために4つのチャネルが確保され得るが、一方で、他の4つのチャネルは、フレームごとに、チャネルのタイプに応じて変化してよく、たとえば、追加のバックグラウンド/環境チャネルまたはフォアグラウンド/支配的なチャネルのいずれかとして使用され得る。フォアグラウンド/支配的な信号は、上記で説明されたように、ベクトルベースの信号または指向性ベースの信号のいずれかの1つであり得る。
【0083】
[0066]いくつかの場合には、フレームのためのベクトルベースの支配的な信号の総数は、そのフレームのビットストリームにおいてChannelTypeインデックスが01である回数によって与えられ得る。上記の態様では、各々の追加のバックグラウンド/環境チャネル(たとえば、10というChannelTypeに対応する)に対して、(最初の4つ以外の)あり得るHOA係数のいずれがそのチャネルにおいて表され得るかの対応する情報。その情報は、4次のHOAコンテンツについては、HOA係数5〜25を示すためのインデックスであり得る。最初の4つの環境HOA係数1〜4は、minAmbHOAorderが1に設定されるときは常に送られ得、したがって、オーディオ符号化デバイスは、5〜25のインデックスを有する追加の環境HOA係数のうちの1つを示すことのみが必要であり得る。その情報はしたがって、「CodedAmbCoeffIdx」として示され得る、(4次のコンテンツのための)5ビットのシンタックス要素を使用して送られ得る。
【0084】
[0067]説明のために、minAmbHOAorderが1に設定され、6のインデックスをもつ追加の環境HOA係数が、一例として、ビットストリーム21を介して送られると仮定する。この例では、1のminAmbHOAorderは、環境HOA係数が1、2、3および4のインデックスを有することを示す。環境HOA係数が、(minAmbHOAorder+1)
2、すなわち、この例では4以下であるインデックスを有するので、オーディオ符号化デバイス20は、それらの環境HOA係数を選択することができる。オーディオ符号化デバイス20は、ビットストリーム21において1、2、3および4のインデックスに関連付けられた環境HOA係数を指定することができる。オーディオ符号化デバイス20はまた、ビットストリーム21において6のインデックスをもつ追加の環境HOA係数を、10のChannelTypeをもつadditionalAmbientHOAchannelとして指定することもできる。オーディオ符号化デバイス20は、CodedAmbCoeffIdxシンタックス要素を使用して、インデックスを指定することができる。実際に、CodedAmbCoeffIdx要素は、1から25のインデックスのすべてを指定することができる。しかしながら、minAmbHOAorderが1に設定されるので、オーディオ符号化デバイス20は、(最初の4つのインデックスが、minAmbHOAorderシンタックス要素を介してビットストリーム21において指定されることが知られているので、)最初の4つのインデックスのいずれをも指定しなくてよい。いずれにしても、オーディオ符号化デバイス20は、(最初の4つについて)minAmbHOAorderと(追加の環境HOA係数について)CodedAmbCoeffIdxとを介して、5つの環境HOA係数を指定するので、オーディオ符号化デバイス20は、1、2、3、4および6のインデックスを有する環境HOA係数に関連付けられた対応するVベクトル要素を指定しなくてよい。結果として、オーディオ符号化デバイス20は、要素[5,7:25]をもつVベクトルを指定することができる。
【0085】
[0068]第2の態様では、フォアグラウンド/支配的な信号のすべてがベクトルベースの信号である。この第2の態様では、フォアグラウンド/支配的な信号の総数は、nFG=numHOATransportChannels−[(MinAmbHOAorder+1)
2+additionalAmbientHOAchannelの各々]によって与えられ得る。
【0086】
[0069]音場分析ユニット44は、バックグラウンドチャネル情報43とHOA係数11とをバックグラウンド(BG)選択ユニット36に、バックグラウンドチャネル情報43を係数低減ユニット46およびビットストリーム生成ユニット42に、nFG45をフォアグラウンド選択ユニット36に出力する。
【0087】
[0070]バックグラウンド選択ユニット48は、バックグラウンドチャネル情報(たとえば、バックグラウンド音場(N
BG)と、送るべき追加のBG HOAチャネルの数(nBGa)およびインデックス(i)と)に基づいて、バックグラウンドまたは環境HOA係数47を決定するように構成されたユニットを表し得る。たとえば、N
BGが1に等しいとき、バックグラウンド選択ユニット48は、1以下の次数を有するオーディオフレームの各サンプルのHOA係数11を選択することができる。バックグラウンド選択ユニット48は次いで、この例では、インデックス(i)のうちの1つによって特定されるインデックスを有するHOA係数11を、追加のBG HOA係数として選択することができ、ここで、nBGaは、
図2および
図4の例に示されるオーディオ復号デバイス24などのオーディオ復号デバイスがビットストリーム21からバックグラウンドHOA係数47を解析することを可能にするために、ビットストリーム21において指定されるために、ビットストリーム生成ユニット42に提供される。バックグラウンド選択ユニット48は次いで、環境HOA係数47をエネルギー補償ユニット38に出力することができる。環境HOA係数47は、次元D:M×[(N
BG+1)
2+nBGa]を有し得る。環境HOA係数47はまた、「環境HOA係数47」と呼ばれることもあり、ここで、環境HOA係数47の各々は、聴覚心理オーディオコーダユニット40によって符号化されるべき別個の環境HOAチャネル47に対応する。
【0088】
[0071]フォアグラウンド選択ユニット36は、(フォアグラウンドベクトルを特定する1つまたは複数のインデックスを表し得る)nFG45に基づいて、音場のフォアグラウンド成分または明瞭な成分を表す、並べ替えられたUS[k]行列33’と並べ替えられたV[k]行列35’とを選択するように構成されたユニットを表し得る。フォアグラウンド選択ユニット36は、(並べ替えられたUS[k]
1,...,nFG49、FG
1,...,nfG[k]49、または
【0090】
として示され得る)nFG信号49を、聴覚心理オーディオコーダユニット40に出力することができ、ここで、nFG信号49は次元D:M×nFGを有し、モノラルオーディオオブジェクトを各々表し得る。フォアグラウンド選択ユニット36はまた、音場のフォアグラウンド成分に対応する並べ替えられたV[k]行列35’(またはv
(1..nFG)(k)35’)を空間時間的補間ユニット50に出力することができ、ここで、フォアグラウンド成分に対応する並べ替えられたV[k]行列35’のサブセットは、次元D:(N+1)
2×nFGを有するフォアグラウンドV[k]行列51
kとして示され得る(これは、
【0093】
[0072]エネルギー補償ユニット38は、バックグラウンド選択ユニット48によるHOAチャネルのうちの様々なチャネルの除去によるエネルギー損失を補償するために、環境HOA係数47に関してエネルギー補償を実行するように構成されたユニットを表し得る。エネルギー補償ユニット38は、並べ替えられたUS[k]行列33’、並べ替えられたV[k]行列35’、nFG信号49、フォアグラウンドV[k]ベクトル51
k、および環境HOA係数47のうちの1つまたは複数に関してエネルギー分析を実行し、次いで、エネルギー補償された環境HOA係数47’を生成するために、そのエネルギー分析に基づいてエネルギー補償を実行することができる。エネルギー補償ユニット38は、エネルギー補償された環境HOA係数47’を聴覚心理オーディオコーダユニット40に出力することができる。
【0094】
[0073]空間時間的補間ユニット50は、k番目のフレームのためのフォアグラウンドV[k]ベクトル51
kと以前のフレームのための(したがってk−1という表記である)フォアグラウンドV[k−1]ベクトル51
k-1とを受信し、補間されたフォアグラウンドV[k]ベクトルを生成するために空間時間的補間を実行するように構成されたユニットを表し得る。空間時間的補間ユニット50は、並べ替えられたフォアグラウンドHOA係数を復元するために、nFG信号49をフォアグラウンドV[k]ベクトル51
kと再び組み合わせることができる。空間時間的補間ユニット50は次いで、補間されたnFG信号49’を生成するために、補間されたV[k]ベクトルによって、並べ替えられたフォアグラウンドHOA係数を分割することができる。空間時間的補間ユニット50はまた、オーディオ復号デバイス24などのオーディオ復号デバイスが補間されたフォアグラウンドV[k]ベクトルを生成しそれによってフォアグラウンドV[k]ベクトル51
kを復元できるように、補間されたフォアグラウンドV[k]ベクトルを生成するために使用されたフォアグラウンドV[k]ベクトル51
kを出力することができる。補間されたフォアグラウンドV[k]ベクトルを生成するために使用されたフォアグラウンドV[k]ベクトル51
kは、残りのフォアグラウンドV[k]ベクトル53として示される。同じV[k]およびV[k−1]が符号化器および復号器において(補間されたベクトルV[k]を作成するために)使用されることを保証するために、ベクトルの量子化された/逆量子化されたバージョンが符号化器および復号器において使用され得る。
【0095】
[0074]演算において、空間時間的補間ユニット50は、1つまたは複数のサブフレームのための分解され補間された球面調和係数を生成するために、第1のフレーム中に含まれる第1の複数のHOA係数11の一部分の第1の分解物、たとえばフォアグラウンドV[k]ベクトル51
k、および第2のフレーム中に含まれる第2の複数のHOA係数11の一部分の第2の分解物、たとえばフォアグラウンドV[k]ベクトル51
k-1から、第1のオーディオフレームの1つまたは複数のサブフレームを補間することができる。
【0096】
[0075]いくつかの例では、第1の分解物は、HOA係数11の部分の右特異ベクトルを表す第1のフォアグラウンドV[k]ベクトル51
kを備える。同様に、いくつかの例では、第2の分解物は、HOA係数11の部分の右特異ベクトルを表す第2のフォアグラウンドV[k]ベクトル51
kを備える。
【0097】
[0076]言い換えれば、球面調和関数ベースの3Dオーディオは、球面上の直交基底関数による3D圧力場のパラメトリックな表現であり得る。表現の次数Nが高いほど、空間分解能は高くなる可能性があり、(全体で(N+1)
2個の係数に対して)球面調和関数(SH)係数の数は大きくなることが多い。多くの適用形態において、係数を効率的に送信し記憶することを可能にするために、係数の帯域幅圧縮が必要とされ得る。本開示において対象とされる本技法は、特異値分解(SVD)を使用した、フレームベースの次元低減プロセスを提供することができる。SVD分析は、係数の各フレームを3つの行列U、S、およびVに分解することができる。いくつかの例では、本技法は、US[k]行列中のベクトルのいくつかを、背後にある音場のフォアグラウンド成分として扱うことができる。しかしながら、この方法で扱われると、(US[k]行列中の)ベクトルは、それらが同じ明瞭なオーディオ成分を表すとしても、フレームとフレームとの間で不連続である。不連続性は、成分が変換オーディオコーダを通じて供給されるときに、重大なアーティファクトにつながり得る。
【0098】
[0077]いくつかの点で、空間時間的補間は、球面調和関数領域における直交空間軸としてV行列が解釈され得るという観測に依拠し得る。U[k]行列は、基底関数によって球面調和関数(HOA)データの投影を表すことができ、ここで、不連続性は、フレームごとに変化ししたがってそれら自体が不連続である直交空間軸(V[k])に原因を帰すことができる。これは、基底関数がいくつかの例では複数のフレームにわたって一定であるフーリエ変換など、いくつかの他の分解とは異なる。これらの点で、SVDは、マッチング追跡アルゴリズムと見なされ得る。空間時間的補間ユニット50は、フレームとフレームとの間で基底関数(V[k])の連続性を、フレーム間を補間することによって潜在的に維持するために、補間を実行することができる。
【0099】
[0078]上述されたように、補間はサンプルに関して実行され得る。この場合は、サブフレームがサンプルの単一のセットを備えるときの上記の説明において一般化される。サンプルにわたる補間とサブフレームにわたる補間の両方の場合において、補間演算は次の式の形態をとり得る。
【0101】
上の式において、補間は、単一のVベクトルv(k−1)から単一のVベクトルv(k)に関して実行されてよく、このことは、一態様では、隣接するフレームkおよびk−1からVベクトルを表し得る。上の式において、lは補間が実行されている分解能を表し、ここで、lは整数のサンプルを示すことができ、l=1,...,Tである(ここで、Tはそれらにわたる補間が実行されており出力される補間されたベクトル
【0103】
が必要とされるサンプルの長さであり、そのプロセスの出力がベクトルのlを作成することも示す)。代替的に、lは複数のサンプルからなるサブフレームを示し得る。たとえば、フレームが4つのサブフレームに分割されるとき、lはサブフレームの各々1つに対して、1、2、3、および4という値を備え得る。lの値は、ビットストリームを通じて「CodedSpatialInterpolationTime」という名称のフィールドとしてシグナリングされ得るので、補間演算は復号器において繰り返され得る。w(l)は、補間の重みの値を備え得る。補間が線形であるとき、w(l)は、lの関数として0と1との間で線形に、および単調に変化し得る。他の場合には、w(l)は、lの関数として非線形であるが単調な(二乗余弦の4分の1周期などの)方式で0と1との間で変化し得る。関数w(l)は、同一の補間演算が復号器によって繰り返され得るように、いくつかの異なる関数の可能性の間でインデックスが付けられて、「SpatialInterpolationMethod」という名称のフィールドとしてビットストリームにおいてシグナリングされ得る。w(l)が0に近い値を有するとき、出力
【0105】
は、v(k−1)によって大きく重み付けられ、またはその影響を受け得る。一方、w(l)が1に近い値を有するとき、そのことは、出力
【0107】
がv(k−1)によって大きく重み付けられ、またはその影響を受けることを保証する。
【0108】
[0079]係数低減ユニット46は、低減されたフォアグラウンドV[k]ベクトル55を量子化ユニット52に出力するために、バックグラウンドチャネル情報43に基づいて残りのフォアグラウンドV[k]ベクトル53に関して係数低減を実行するように構成されたユニットを表し得る。低減されたフォアグラウンドV[k]ベクトル55は、次元D:[(N+1)
2−(N
BG+1)
2−BG
TOT]×nFGを有し得る。
【0109】
[0080]係数低減ユニット46は、この点において、残りのフォアグラウンドV[k]ベクトル53における係数の数を低減するように構成されたユニットを表し得る。言い換えれば、係数低減ユニット46は、指向性情報をほとんどまたはまったく有しない(残りのフォアグラウンドV[k]ベクトル53を形成する)フォアグラウンドV[k]ベクトルにおける係数を除去するように構成されたユニットを表し得る。上記で説明されたように、いくつかの例では、(N
BGと示され得る)1次および0次の基底関数に対応する、明瞭な、または言い換えればフォアグラウンドV[k]ベクトルの係数は、指向性情報をほとんど提供せず、したがって、(「係数低減」と呼ばれ得るプロセスを通じて)フォアグラウンドVベクトルから除去され得る。この例では、N
BGに対応する係数を特定するだけではなく、追加のHOAチャネル(変数TotalOfAddAmbHOAChanによって示され得る)を[(N
BG+1)
2+1,(N+1)
2]のセットから特定するために、より大きい柔軟性が与えられ得る。音場分析ユニット44は、BG
TOTを決定するためにHOA係数11を分析することができ、BG
TOTは、(N
BG+1)
2だけではなくTotalOfAddAmbHOAChanを特定することができ、これらは総称してバックグラウンドチャネル情報43と呼ばれ得る。係数低減ユニット46は次いで、低減されたフォアグラウンドV[k]ベクトル55とも呼ばれ得る、サイズが((N+1)
2−(BG
TOT)×nFGであるより低次元のV[k]行列55を生成するために、(N
BG+1)
2およびTotalOfAddAmbHOAChanに対応する係数を残りのフォアグラウンドV[k]ベクトル53から除去することができる。
【0110】
[0081]言い換えれば、公開第WO2014/194099号において示されているように、係数低減ユニット46は、サイドチャネル情報57のためのシンタックス要素を生成することができる。たとえば、係数低減ユニット46は、複数の構成モードのいずれが選択されたかを示す、(1つまたは複数のフレームを含み得る)アクセスユニットのヘッダ中のシンタックス要素を指定することができる。アクセスユニットごとに指定されるものとして説明されるが、係数低減ユニット46は、フレームごとに、または任意の他の周期的な方式で、または非周期的に(ビットストリーム全体で1回など)シンタックス要素を指定することができる。いずれにしても、シンタックス要素は、明瞭な成分の指向性の態様を表すために、3つの構成モードのいずれが低減されたフォアグラウンドV[k]ベクトル55の係数の0ではないセットを指定するために選択されたかを示す2つのビットを備え得る。シンタックス要素は、「CodedVVecLength」として示され得る。このようにして、係数低減ユニット46は、3つの構成モードのいずれが低減されたフォアグラウンドV[k]ベクトル55をビットストリーム21において指定するために使用されたかを、ビットストリームにおいてシグナリングし、またはさもなければ指定することができる。
【0111】
[0082]たとえば、3つの構成モードは、(本文書において後で言及される)VVecDataのためのシンタックステーブルにおいて提示され得る。その例では、構成モードは次のようになる。(モード0)、完全なVベクトル長がVVecDataフィールドにおいて送信される、(モード1)、環境HOA係数のための係数の最小数に関連付けられたVベクトルの要素、および、送信されない追加のHOAチャネルを含んだVベクトルの要素のすべて、ならびに(モード2)、環境HOA係数のための係数の最小数に関連付けられたVベクトルの要素が送信されない。VVecDataのシンタックステーブルは、switchおよびcase文とともにモードを示す。3つの構成モードに関して説明されるが、本技法は3つの構成モードに限定されるべきではなく、単一の構成モードまたは複数のモードを含む、任意の数の構成モードを含み得る。公開第WO2014/194099号は、4つのモードを有する異なる例を提供している。係数低減ユニット46はまた、サイドチャネル情報57における別のシンタックス要素としてフラグ63を指定することができる。
【0112】
[0083]量子化ユニット52は、コーディングされたフォアグラウンドV[k]ベクトル57を生成するために低減されたフォアグラウンドV[k]ベクトル55を圧縮するための任意の形態の量子化を実行し、コーディングされたフォアグラウンドV[k]ベクトル57をビットストリーム生成ユニット42に出力するように構成されたユニットを表し得る。動作において、量子化ユニット52は、音場の空間成分、すなわちこの例では低減されたフォアグラウンドV[k]ベクトル55のうちの1つまたは複数を圧縮するように構成されたユニットを表し得る。例示の目的で、低減されたフォアグラウンドV[k]ベクトル55は、係数低減の結果として各々25個未満の要素を有する(これは音場の4次のHOA表現を示唆する)2つの行ベクトルを含むと仮定される。2つの行ベクトルに関して説明されるが、最大で(n+1)
2個までの任意の数のベクトルが低減されたフォアグラウンドV[k]ベクトル55に含まれてよく、ここで、nは音場のHOA表現の次数を示す。その上、スカラー量子化および/またはエントロピー量子化を実行するものとして以下で説明されるが、量子化ユニット52は、低減されたフォアグラウンドV[k]ベクトル55の圧縮をもたらす任意の形態の量子化を実行することができる。
【0113】
[0084]量子化ユニット52は、低減されたフォアグラウンドV[k]ベクトル55を受信し、コーディングされたフォアグラウンドV[k]ベクトル57を生成するためにある圧縮方式を実行することができる。その圧縮方式は、ベクトルまたはデータの要素を圧縮するための任意の想起可能な圧縮方式を全般に含んでよく、以下でより詳細に説明される例に限定されるべきではない。量子化ユニット52は、一例として、低減されたフォアグラウンドV[k]ベクトル55の各要素の浮動小数点表現を低減されたフォアグラウンドV[k]ベクトル55の各要素の整数表現へと変換すること、低減されたフォアグラウンドV[k]ベクトル55の整数表現の一様量子化、ならびに、残りのフォアグラウンドV[k]ベクトル55の量子化された整数表現の分類およびコーディングのうちの、1つまたは複数を含む、圧縮方式を実行することができる。
【0114】
[0085]いくつかの例では、圧縮方式の1つまたは複数のプロセスのいくつかが、一例として、得られるビットストリーム21のための目標ビットレート41を達成するために、またはほぼ達成するために、パラメータによって動的に制御され得る。低減されたフォアグラウンドV[k]ベクトル55の各々が互いに正規直交であるとすると、低減されたフォアグラウンドV[k]ベクトル55の各々は独立にコーディングされ得る。いくつかの例では、以下でより詳細に説明されるように、各々の低減されたフォアグラウンドV[k]ベクトル55の各要素は、(様々なサブモードによって定義される)同じコーディングモードを使用してコーディングされ得る。
【0115】
[0086]公開第WO2014/194099号において説明されているように、量子化ユニット52は、低減されたフォアグラウンドV[k]ベクトル55を圧縮するためにスカラー量子化および/またはハフマン符号化を実行し、サイドチャネル情報57とも呼ばれ得るコーディングされたフォアグラウンドV[k]ベクトル57を出力することができる。サイドチャネル情報57は、残りのフォアグラウンドV[k]ベクトル55をコーディングするために使用されるシンタックス要素を含み得る。
【0116】
[0087]その上、スカラー量子化の形態に関して説明されるが、量子化ユニット52は、ベクトル量子化または任意の他の形態の量子化を実行することができる。いくつかの場合には、量子化ユニット52は、ベクトル量子化とスカラー量子化との間で切り替えることができる。上記で説明されたスカラー量子化の間に、量子化ユニット52は、(フレームからフレームへのように連続する)2つの連続するVベクトル間の差分を計算し、その差分(または、言い換えれば、残差)をコーディングすることができる。このスカラー量子化は、以前に指定されたベクトルおよび差分信号に基づく、ある形態の予測コーディングを表し得る。ベクトル量子化は、そのような差分コーディングを伴わない。
【0117】
[0088]言い換えれば、量子化ユニット52は、入力Vベクトル(たとえば、低減されたフォアグラウンドV[k]ベクトル55のうちの1つ)を受信し、その入力Vベクトルのために使用されるべき量子化のタイプのうちの1つを選択するために、異なるタイプの量子化を実行することができる。量子化ユニット52は、一例として、ベクトル量子化と、ハフマンコーディングなしのスカラー量子化と、ハフマンコーディングありのスカラー量子化とを実行することができる。
【0118】
[0089]この例では、量子化ユニット52は、ベクトル量子化されたVベクトルを生成するために、ベクトル量子化モードに従って、入力Vベクトルをベクトル量子化することができる。ベクトル量子化されたVベクトルは、入力Vベクトルを表すベクトル量子化された重み値を含み得る。ベクトル量子化された重み値は、いくつかの例では、量子化コードワードの量子化コードブックにおける量子化コードワード(すなわち、量子化ベクトル)を指す、1つまたは複数の量子化インデックスとして表され得る。量子化ユニット52は、ベクトル量子化を実行するように構成されるとき、コードベクトル63(「CV63」)に基づいて、低減されたフォアグラウンドV[k]ベクトル55の各々をコードベクトルの加重和に分解することができる。量子化ユニット52は、コードベクトル63のうちの選択されたものの各々のための重み値を生成することができる。
【0119】
[0090]量子化ユニット52は次に、重み値の選択されたサブセットを生成するために、重み値のサブセットを選択することができる。たとえば、量子化ユニット52は、重み値の選択されたサブセットを生成するために、重み値のセットから、Z個の最大の大きさの重み値を選択することができる。いくつかの例では、量子化ユニット52は、重み値の選択されたサブセットを生成するために、選択された重み値をさらに並べ替えることができる。たとえば、量子化ユニット52は、最高の大きさの重み値から開始して、最低の大きさの重み値で終了するように、大きさに基づいて、選択された重み値を並べ替えることができる。
【0120】
[0091]ベクトル量子化を実行するとき、量子化ユニット52は、Z個の重み値を表すために、量子化コードブックからZ成分ベクトルを選択することができる。言い換えれば、量子化ユニット52は、Z個の重み値を表すZ成分ベクトルを生成するために、Z個の重み値をベクトル量子化することができる。いくつかの例では、Zは、単一のVベクトルを表すために量子化ユニット52によって選択された重み値の数に対応し得る。量子化ユニット52は、Z個の重み値を表すために選択されたZ成分ベクトルを示すデータを生成し、このデータを、コード化された重み57としてビットストリーム生成ユニット42に与えることができる。いくつかの例では、量子化コードブックは、インデックス付けされる複数のZ成分ベクトルを含み得、Z成分ベクトルを示すデータは、選択されたベクトルを指す量子化コードブックへのインデックス値であり得る。そのような例では、復号器は、インデックス値を復号するために、同様にインデックス付けされた量子化コードブックを含み得る。
【0121】
[0092]数学的には、低減されたフォアグラウンドV[k]ベクトル55の各々は、次の式に基づいて表され得る。
【0123】
ただし、Ω
jは、コードベクトルのセット({Ω
j})におけるj番目のコードベクトルを表し、ω
jは、重みのセット({ω
j})におけるj番目の重みを表し、Vは、Vベクトルコーディングユニット52によって表され、分解および/またはコーディングされているVベクトルに対応し、Jは、Vを表すために使用された重みの数とコードベクトルの数とを表す。式(1)の右辺は、重みのセット({ω
j})とコードベクトルのセット({Ω
j})とを含む、コードベクトルの加重和を表し得る。
【0124】
[0093]いくつかの例では、量子化ユニット52は、次の式
【0126】
に基づいて、重み値を決定することができ、ただし、
【0128】
は、コードベクトルのセット({Ω
k})におけるk番目のコードベクトルの転置を表し、Vは、量子化ユニット52によって表され、分解および/またはコーディングされているVベクトルに対応し、ω
kは、重みのセット({ω
k})におけるk番目の重みを表す。
【0129】
[0094]25個の重みおよび25個のコードベクトルが、VベクトルV
FGを表すために使用される一例を検討する。V
FGのそのような分解は、
【0131】
として書かれ得、ただし、Ω
jは、コードベクトルのセット({Ω
j})におけるj番目のコードベクトルを表し、ω
jは、重みのセット({ω
j})におけるj番目の重みを表し、V
FGは、量子化ユニット52によって表され、分解および/またはコーディングされているVベクトルに対応する。
【0132】
[0095]コードベクトルのセット({Ω
j})が正規直交である例では、次の式が適用され得る。
【0134】
そのような例では、式(3)の右辺は次のように簡略化し得る。
【0136】
ただし、ω
kは、コードベクトルの加重和におけるk番目の重みに対応する。
【0137】
[0096]式(3)において使用されたコードベクトルの例示的な加重和では、量子化ユニット52は、(式(2)と同様の)式(5)を使用して、コードベクトルの加重和における重みの各々のための重み値を計算することができ、得られる重みは次のように表され得る。
【0139】
量子化ユニット52が5個の極大重み値(すなわち、最大値または絶対値をもつ重み)を選択する一例を検討する。量子化されるべき重み値のサブセットは、次のように表され得る。
【0141】
重み値のサブセットは、それらの対応するコードベクトルとともに、次の式において示されるように、Vベクトルを推定するコードベクトルの加重和を形成するために使用され得る。
【0143】
ただし、Ω
jは、コードベクトルのサブセット({Ω
j})におけるj番目のコードベクトルを表し、
【0149】
は、量子化ユニット52によって分解および/またはコーディングされているVベクトルに対応する、推定されたVベクトルに対応する。式(1)の右辺は、重みのセット(
【0151】
)とコードベクトルのセット({Ω
j})とを含む、コードベクトルの加重和を表し得る。
【0154】
として表され得る量子化された重み値を生成するために、重み値のサブセットを量子化することができる。量子化された重み値は、それらの対応するコードベクトルとともに、次の式において示されるように、推定されたVベクトルの量子化されたバージョンを表すコードベクトルの加重和を形成するために使用され得る。
【0156】
ただし、Ω
jは、コードベクトルのサブセット({Ω
j})におけるj番目のコードベクトルを表し、
【0162】
は、量子化ユニット52によって分解および/またはコーディングされているVベクトルに対応する、推定されたVベクトルに対応する。式(1)の右辺は、重みのセット(
【0164】
)とコードベクトルのセット({Ω
j})とを含む、コードベクトルのサブセットの加重和を表し得る。
【0165】
[0098]上記の代替的な言い換え(大部分は上記で説明されたものと同等である)は、次のようになり得る。Vベクトルは、コードベクトルのあらかじめ定義されたセットに基づいてコーディングされ得る。Vベクトルをコーディングするために、各Vベクトルは、コードベクトルの加重和に分解される。コードベクトルの加重和は、あらかじめ定義されたコードベクトルと関連付けられた重みとのk個のペアからなる。
【0167】
ただし、Ω
jは、あらかじめ定義されたコードベクトルのセット({Ω
j})におけるj番目のコードベクトルを表し、ω
jは、あらかじめ定義された重みのセット({ω
j})におけるj番目の実数値の重みを表し、kは、最大7であり得る加数のインデックスに対応し、Vは、コーディングされているVベクトルに対応する。kの選定は、符号化器に依存する。符号化器が2つ以上のコードベクトルの加重和を選定する場合、符号化器が選定できるあらかじめ定義されたコードベクトルの総数は、(N+1)
2であり、そのあらかじめ定義されたコードベクトルは、2014年7月25日付けの、文書番号ISO/IEC DIS23008−3によって識別される、ISO/IEC JTC1/SC29/WG11による「Information technology−High effeciency coding and media delivery in heterogeneous environments−Part 3:3D audio」という名称の3D Audio規格のTable F.3〜F.7から、HOA拡張係数として導出される。Nが4であるとき、32個のあらかじめ定義された方向を有する、上記の3D Audio規格のAnnex F.5におけるテーブルが使用される。すべての場合において、重みωの絶対値が、上記の3D Audio規格のテーブルF.12におけるテーブルの最初のk+1列において見つかる、あらかじめ定義された重み付け値
【0169】
に関してベクトル量子化され、関連付けられた行番号インデックスとともにシグナリングされる。
【0173】
[0100]言い換えれば、値kをシグナリングした後、Vベクトルは、k+1個のあらかじめ定義されたコードベクトル{Ω
j}を指すk+1個のインデックスと、あらかじめ定義された重み付けコードブックにおけるk個の量子化された重み
【0175】
を指す1つのインデックスと、k+1個の数の符号値s
jとを用いて符号化される。
【0177】
符号化器が、1つのコードベクトルの加重和を選択する場合、上記の3D Audio規格のテーブルF.8から導出されたコードブックが、上記の3D Audio規格のテーブルF.11のテーブルにおける絶対重み付け値
【0179】
と組み合わせて使用され、ここで、これらのテーブルの両方が以下で示される。また、重み付け値ωの数の符号は、別個にコーディングされ得る。量子化ユニット52は、コードブックインデックスシンタックス要素(以下で「CodebkIdx」と示され得る)を使用して、上述されたテーブルF.3からF.12において記載された上記のコードブックのいずれが入力Vベクトルをコーディングするために使用されるかをシグナリングすることができる。量子化ユニット52はまた、スカラー量子化されたVベクトルをハフマンコーディングすることなく、出力のスカラー量子化されたVベクトルを生成するために、入力Vベクトルをスカラー量子化することもできる。量子化ユニット52は、ハフマンコーディングされスカラー量子化されたVベクトルを生成するために、ハフマンコーディングスカラー量子化モードに従って、入力Vベクトルをさらにスカラー量子化することができる。たとえば、量子化ユニット52は、スカラー量子化されたVベクトルを生成するために、入力Vベクトルをスカラー量子化し、出力のハフマンコーディングされスカラー量子化されたVベクトルを生成するために、スカラー量子化されたVベクトルをハフマンコーディングすることができる。
【0180】
[0101]いくつかの例では、量子化ユニット52は、ある形態の予測ベクトル量子化を実行することができる。量子化ユニット52は、(量子化モードを示す1つまたは複数のビット、たとえば、NbitsQシンタックス要素によって特定されるように)予測がベクトル量子化について実行されるか否かを示すビットストリーム21中の1つまたは複数のビット(たとえば、PFlagシンタックス要素)を特定することによって、ベクトル量子化が予測されるか否かを特定することができる。
【0181】
[0102]予測ベクトル量子化について説明するために、量子化ユニット42は、ベクトル(たとえば、vベクトル)のコードベクトルベース分解物に対応する重み値(たとえば、重み値の大きさ)を受信することと、受信された重み値に基づいて、および再構成された重み値(たとえば、1つまたは複数の以前または後続のオーディオフレームから再構成された重み値)に基づいて、予測重み値を生成することと、予測重み値のセットをベクトル量子化することとを行うように構成され得る。場合によっては、予測重み値のセットにおける各重み値は、単一のベクトルのコードベクトルベース分解物中に含まれる重み値に対応し得る。
【0182】
[0103]量子化ユニット52は、ベクトルの以前または後続のコーディングから、重み値と重み付きの再構成された重み値とを受信することができる。量子化ユニット52は、重み値と重み付きの再構成された重み値とに基づいて、予測重み値を生成することができる。量子化ユニット42は、予測重み値を生成するために、重み値から重み付きの再構成された重み値を減算することができる。予測重み値は、代替的に、たとえば、残差、予測残差、残差重み値、重み値差分、誤差、または予測誤差と呼ばれることがある。
【0183】
[0104]重み値は、対応する重み値w
i,jの大きさ(または絶対値)である|w
i,j|として表され得る。したがって、重み値は代替的に、重み値大きさ、または重み値の大きさと呼ばれることがある。重み値w
i,jは、i番目のオーディオフレームのための重み値の順序付きサブセットからのj番目の重み値に対応する。いくつかの例では、重み値の順序付きサブセットは、重み値の大きさに基づいて順序付けされる(たとえば、最大の大きさから最小の大きさへと順序付けされる)ベクトル(たとえば、vベクトル)のコードベクトルベース分解物中の重み値のサブセットに対応し得る。
【0184】
[0105]重み付きの再構成された重み値は、
【0186】
項を含み得、この項は、対応する再構成された重み値
【0188】
の大きさ(または絶対値)に対応する。再構成された重み値
【0190】
は、(i−1)番目のオーディオフレームのための再構成された重み値の順序付きサブセットからのj番目の再構成された重み値に対応する。いくつかの例では、再構成された重み値の順序付きサブセット(またはセット)は、再構成された重み値に対応する、量子化された予測重み値に基づいて生成され得る。
【0191】
[0106]量子化ユニット42はまた、重み係数α
jを含む。いくつかの例では、α
j=1であり、その場合、重み付きの再構成された重み値は、
【0193】
に低減し得る。他の例では、α
j≠1である。たとえば、α
jは、次の式に基づいて決定され得る。
【0195】
ただし、Iは、α
jを決定するために使用されたオーディオフレームの数に対応する。前の式において示されたように、重み係数は、いくつかの例では、複数の異なるオーディオフレームからの複数の異なる重み値に基づいて決定され得る。
【0196】
[0107]また、予測ベクトル量子化を実行するように構成されるとき、量子化ユニット52は、次の式に基づいて、予測重み値を生成することができる。
【0198】
ただし、e
i,jは、i番目のオーディオフレームのための重み値の順序付きサブセットからのj番目の重み値のための予測重み値に対応する。
【0199】
[0108]量子化ユニット52は、予測重み値と予測ベクトル量子化(PVQ)コードブックとに基づいて、量子化された予測重み値を生成する。たとえば、量子化ユニット52は、量子化された予測重み値を生成するために、コーディングされるべきベクトルのために、またはコーディングされるべきフレームのために生成された、他の予測重み値と組み合わせて、予測重み値をベクトル量子化することができる。
【0200】
[0109]量子化ユニット52は、PVQコードブックに基づいて、予測重み値620をベクトル量子化することができる。PVQコードブックは、複数のM成分候補量子化ベクトルを含み得、量子化ユニット52は、Z個の予測重み値を表すために、候補量子化ベクトルのうちの1つを選択することができる。いくつかの例では、量子化ユニット52は、量子化誤差を最小化する(たとえば、最小2乗誤差を最小化する)、PVQコードブックからの候補量子化ベクトルを選択することができる。
【0201】
[0110]いくつかの例では、PVQコードブックは、エントリの各々が量子化コードブックインデックスと対応するM成分候補量子化ベクトルとを含む、複数のエントリを含み得る。量子化コードブックにおけるインデックスの各々は、複数のM成分候補量子化ベクトルのうちの各々に対応し得る。
【0202】
[0111]量子化ベクトルの各々における成分の数は、単一のvベクトルを表すために選択される重みの数(すなわち、Z)に依存し得る。概して、Z成分候補量子化ベクトルをもつコードブックでは、量子化ユニット52は、単一の量子化ベクトルを生成するために一度にZ個の予測重み値をベクトル量子化することができる。量子化コードブックにおけるエントリの数は、重み値をベクトル量子化するために使用されるビットレートに依存し得る。
【0203】
[0112]量子化ユニット52が予測重み値をベクトル量子化するとき、量子化ユニット52は、Z個の予測重み値を表す予測ベクトルであるように、PVQコードブックからZ成分ベクトルを選択することができる。量子化された予測重み値は、
【0205】
として示され得、これは、i番目のオーディオフレームのためのj番目の予測重み値のベクトル量子化されたバージョンにさらに対応し得る、i番目のオーディオフレームのためのZ成分量子化ベクトルのj番目の成分に対応し得る。
【0206】
[0113]予測ベクトル量子化を実行するように構成されるとき、量子化ユニット52はまた、量子化された予測重み値と重み付きの再構成された重み値とに基づいて、再構成された重み値を生成することもできる。たとえば、量子化ユニット52は、再構成された重み値を生成するために、量子化された予測重み値に、重み付きの再構成された重み値を加算することができる。その重み付きの再構成された重み値は、上記で説明されている重み付きの再構成された重み値に等しくなり得る。いくつかの例では、重み付きの再構成された重み値は、再構成された重み値の重み付きおよび遅延されたバージョンであり得る。
【0209】
として表され得、これは、対応する再構成された重み値
【0211】
の大きさ(または絶対値)に対応する。再構成された重み値
【0213】
は、(i−1)番目のオーディオフレームのための再構成された重み値の順序付きサブセットからのj番目の再構成された重み値に対応する。いくつかの例では、量子化ユニット52は、予測コーディングされる重み値の符号を示すデータを別個にコーディングすることができ、復号器は、再構成された重み値の符号を決定するために、この情報を使用することができる。
【0214】
[0115]量子化ユニット52は、次の式に基づいて、再構成された重み値を生成することができ、
【0218】
は、i番目のオーディオフレームのための重み値の順序付きサブセットからのj番目の重み値(たとえば、M成分量子化ベクトルのj番目の成分)のための量子化された予測重み値に対応し、
【0220】
は、(i−1)番目のオーディオフレームのための重み値の順序付きサブセットからのj番目の重み値のための再構成された重み値の大きさに対応し、α
jは、重み値の順序付きサブセットからのj番目の重み値のための重み係数に対応する。
【0221】
[0116]量子化ユニット52は、再構成された重み値に基づいて、遅延され再構成された重み値を生成することができる。たとえば、量子化ユニット52は、遅延され再構成された重み値を生成するために、1オーディオフレームだけ、再構成された重み値を遅延させることができる。
【0222】
[0117]量子化ユニット52はまた、遅延され再構成された重み値と重み係数とに基づいて、重み付きの再構成された重み値を生成することができる。たとえば、量子化ユニット52は、重み付きの再構成された重み値を生成するために、遅延され再構成された重み値を重み係数と乗算することができる。
【0223】
[0118]同様に、量子化ユニット52は、遅延され再構成された重み値と重み係数とに基づいて、重み付きの再構成された重み値を生成する。たとえば、量子化ユニット52は、重み付きの再構成された重み値を生成するために、遅延され再構成された重み値を重み係数と乗算することができる。
【0224】
[0119]Z個の予測重み値のための量子化ベクトルであるように、PVQコードブックからZ成分ベクトルを選択することに応答して、量子化ユニット52は、いくつかの例では、選択されたZ成分ベクトル自体をコーディングするのではなく、選択されたZ成分ベクトルに対応する(PVQコードブックからの)インデックスをコーディングすることができる。インデックスは、量子化された予測重み値のセットを示し得る。そのような例では、復号器24は、PVQコードブックと同様のコードブックを含み得、復号器コードブック中の対応するZ成分ベクトルにインデックスをマッピングすることによって、量子化された予測重み値を示すインデックスを復号することができる。Z成分ベクトルにおける成分の各々は、量子化された予測重み値に対応し得る。
【0225】
[0120]ベクトル(たとえば、Vベクトル)をスカラー量子化することは、個々に、および/または他の成分とは無関係に、ベクトルの成分の各々を量子化することを伴い得る。たとえば、次の例示的なVベクトル
V=[0.23 0.31 −0.47 ・・・ 0.85] を検討する。この例示的なVベクトルをスカラー量子化するために、成分の各々が個々に量子化(すなわち、スカラー量子化)され得る。たとえば、量子化ステップが0.1である場合、0.23成分が0.2に量子化され得、0.31成分が0.3に量子化され得るなどとなる。スカラー量子化された成分は、スカラー量子化されたVベクトルを集合的に形成し得る。
【0226】
[0121]言い換えれば、量子化ユニット52は、低減されたフォアグラウンドV[k]ベクトル55のうちの所与の1つの要素のすべてに関して一様スカラー量子化を実行することができる。量子化ユニット52は、NbitsQシンタックス要素として示され得る値に基づいて、量子化ステップサイズを特定することができる。量子化ユニット52は、目標ビットレート41に基づいて、このNbitsQシンタックス要素を動的に決定することができる。NbitsQシンタックス要素はまた、以下で再生されるChannelSideInfoDataシンタックステーブルにおいて示されるように、量子化モードを特定し、一方でまた、スカラー量子化のためにステップサイズを特定することもできる。すなわち、量子化ユニット52は、このNbitsQシンタックス要素の関数として量子化ステップサイズを決定することができる。一例として、量子化ユニット52は、2
16-NbitsQに等しいものとして、量子化ステップサイズ(本開示では「デルタ」または「Δ」として示される)を決定することができる。この例では、NbitsQシンタックス要素の値が6に等しいとき、デルタは2
10に等しく、2
6個の量子化レベルがある。この点において、ベクトル要素vに対して、量子化されたベクトル要素v
qは[v/Δ]に等しく、−2
NbitsQ-1<v
q<2
NbitsQ-1である。
【0227】
[0122]量子化ユニット52は次いで、量子化されたベクトル要素の分類と残差コーディングとを実行することができる。一例として、量子化ユニット52は、所与の量子化されたベクトル要素v
qに対して、この要素が対応するカテゴリーを(カテゴリー識別子cidを決定することによって)、次の式
【0229】
を使用して特定することができる。量子化ユニット52は次いで、このカテゴリーインデックスcidをハフマンコーディングし、一方で、v
qが正の値であるか負の値であるかを示す符号ビットを特定することもできる。量子化ユニット52は次に、このカテゴリーにおける残差を特定することができる。一例として、量子化ユニット52は、次の式
【0231】
に従って、この残差を決定することができる。量子化ユニット52は次いで、この残差をcid−1ビットによってブロックコーディングすることができる。
【0232】
[0123]量子化ユニット52は、いくつかの例では、cidをコーディングするとき、NbitsQシンタックス要素の異なる値に対して、異なるハフマンコードブックを選択することができる。いくつかの例では、量子化ユニット52は、NbitsQシンタックス要素値6,...,15に対して異なるハフマンコーディングテーブルを提供することができる。その上、量子化ユニット52は、全体で50個のハフマンコードブックに対して、6,...,15にわたる異なるNbitsQシンタックス要素値の各々に対する5個の異なるハフマンコードブックを含み得る。この点において、量子化ユニット52は、いくつかの異なる統計的な状況においてcidのコーディングに対処するための、複数の異なるハフマンコードブックを含み得る。
【0233】
[0124]説明するために、量子化ユニット52は、NbitsQシンタックス要素値の各々に対して、1から4までのベクトル要素をコーディングするための第1のハフマンコードブックと、5から9までのベクトル要素をコーディングするための第2のハフマンコードブックと、9以上のベクトル要素をコーディングするための第3のハフマンコードブックとを含み得る。これらの最初の3つのハフマンコードブックは、圧縮されるべき低減されたフォアグラウンドV[k]ベクトル55のうちの1つが低減されたフォアグラウンドV[k]ベクトル55の時間的に後続の対応するベクトルから予測されず、合成オーディオオブジェクト(たとえば、パルス符号変調(PCM)されたオーディオオブジェクトによって最初に定義されたもの)の空間情報を表さないとき、使用され得る。量子化ユニット52は追加で、NbitsQシンタックス要素値の各々に対して、低減されたフォアグラウンドV[k]ベクトル55のうちの1つが低減されたフォアグラウンドV[k]ベクトル55の時間的に後続の対応するベクトルから予測されるとき、低減されたフォアグラウンドV[k]ベクトル55のうちのこの1つをコーディングするための第4のハフマンコードブックを含み得る。量子化ユニット52はまた、NbitsQシンタックス要素値の各々に対して、低減されたフォアグラウンドV[k]ベクトル55のうちの1つが合成オーディオオブジェクトを表すとき、低減されたフォアグラウンドV[k]ベクトル55のうちのこの1つをコーディングするための第5のハフマンコードブックを含み得る。様々なハフマンコードブックが、これらの異なる統計的な状況の各々に対して、すなわちこの例では、予測されず合成ではない状況、予測される状況、および合成の状況に対して、開発され得る。
【0234】
[0125]以下の表は、ハフマンテーブルの選択と、解凍ユニットが適切なハフマンテーブルを選択することを可能にするためにビットストリーム中で指定されるべきビットとを示す。
【0236】
上記の表において、予測モード(「Predモード」)は、現在のベクトルに対して予測が実行されたか否かを示し、一方でハフマンテーブル(「HT情報」)は、ハフマンテーブル1から5のうちの1つを選択するために使用される追加のハフマンコードブック(またはテーブル)情報を示す。予測モードはまた、以下で説明されるPFlagシンタックス要素としても表され得、一方でHT情報は、以下で説明されるCbFlagシンタックス要素によって表され得る。
【0237】
[0126]以下の表はさらに、様々な統計的な状況またはシナリオが与えられたときのこのハフマンテーブルの選択プロセスを示す。
【0239】
上記の表において、「録音」列は、ベクトルが録音されたオーディオオブジェクトを表すときのコーディング状況を示し、一方で「合成」列は、ベクトルが合成オーディオオブジェクトを表すときのコーディング状況を示す。「Predなし」行は、予測がベクトル要素に関して実行されないときのコーディング状況を示し、一方で「Predあり」行は、予測がベクトル要素に関して実行されるときのコーディング状況を示す。この表に示されるように、量子化ユニット52は、ベクトルが録音されたオーディオオブジェクトを表し予測がベクトル要素に関して実行されないとき、HT{1,2,3}を選択する。量子化ユニット52は、オーディオオブジェクトが合成オーディオオブジェクトを表し予測がベクトル要素に関して実行されないとき、HT5を選択する。量子化ユニット52は、ベクトルが録音されたオーディオオブジェクトを表し予測がベクトル要素に関して実行されるとき、HT4を選択する。量子化ユニット52は、オーディオオブジェクトが合成オーディオオブジェクトを表し予測がベクトル要素に関して実行されるとき、HT5を選択する。
【0240】
[0127]量子化ユニット52は、本開示で説明される基準の任意の組合せに基づいて、出力切替えされ量子化されたVベクトルとして使用するために、予測されないベクトル量子化されたVベクトル、予測されベクトル量子化されたVベクトル、ハフマンコーディングされないスカラー量子化されたVベクトル、およびハフマンコーディングされスカラー量子化されたVベクトルのうちの1つを選択することができる。いくつかの例では、量子化ユニット52は、ベクトル量子化モードと1つまたは複数のスカラー量子化モードとを含む、量子化モードのセットから量子化モードを選択し、選択されたモードに基づいて(または従って)、入力Vベクトルを量子化することができる。量子化ユニット52は次いで、(たとえば、重み値またはそれを示すビットに関して)予測されないベクトル量子化されたVベクトル、(たとえば、誤差値またはそれを示すビットに関して)予測されベクトル量子化されたVベクトル、ハフマンコーディングされないスカラー量子化されたVベクトル、およびハフマンコーディングされスカラー量子化されたVベクトルのうちの選択されたものを、コーディングされたフォアグラウンドV[k]ベクトル57としてビットストリーム生成ユニット52に与えることができる。量子化ユニット52はまた、量子化モードを示すシンタックス要素(たとえば、NbitsQシンタックス要素)と、
図4および
図7の例に関して以下でより詳細に説明されるように、Vベクトルを逆量子化またはさもなければ再構成するために使用される任意の他のシンタックス要素とを与えることができる。
【0241】
[0128]オーディオ符号化デバイス20内に含まれる聴覚心理オーディオコーダユニット40は、聴覚心理オーディオコーダの複数のインスタンスを表し得、これらの各々は、符号化された環境HOA係数59と符号化されたnFG信号61とを生成するために、エネルギー補償された環境HOA係数47’および補間されたnFG信号49’の各々の異なるオーディオオブジェクトまたはHOAチャネルを符号化するために使用される。聴覚心理オーディオコーダユニット40は、符号化された環境HOA係数59と符号化されたnFG信号61とをビットストリーム生成ユニット42に出力することができる。
【0242】
[0129]オーディオ符号化デバイス20内に含まれるビットストリーム生成ユニット42は、既知のフォーマット(復号デバイスによって知られているフォーマットを指し得る)に適合するようにデータをフォーマットし、それによってベクトルベースのビットストリーム21を生成するユニットを表す。ビットストリーム21は、言い換えれば、上記で説明された方法で符号化されている、符号化されたオーディオデータを表し得る。ビットストリーム生成ユニット42は、いくつかの例ではマルチプレクサを表してよく、マルチプレクサは、コーディングされたフォアグラウンドV[k]ベクトル57と、符号化された環境HOA係数59と、符号化されたnFG信号61と、バックグラウンドチャネル情報43とを受信することができる。ビットストリーム生成ユニット42は次いで、コーディングされたフォアグラウンドV[k]ベクトル57と、符号化された環境HOA係数59と、符号化されたnFG信号61と、バックグラウンドチャネル情報43とに基づいて、ビットストリーム21を生成することができる。このようにして、ビットストリーム生成ユニット42は、
図7の例に関してより詳細に以下で説明されるようにビットストリーム21を取得するために、ビットストリーム21におけるベクトル57をそれによって指定し得る。ビットストリーム21は、主要またはメインビットストリームと、1つまたは複数のサイドチャネルビットストリームとを含み得る。
【0243】
[0130]
図3の例には示されないが、オーディオ符号化デバイス20はまた、現在のフレームが指向性ベース合成を使用して符号化されるべきであるかベクトルベース合成を使用して符号化されるべきであるかに基づいて、オーディオ符号化デバイス20から出力されるビットストリームを(たとえば、指向性ベースのビットストリーム21とベクトルベースのビットストリーム21との間で)切り替える、ビットストリーム出力ユニットを含み得る。ビットストリーム出力ユニットは、(HOA係数11が合成オーディオオブジェクトから生成されたことを検出した結果として)指向性ベース合成が実行されたか、または(HOA係数が録音されたことを検出した結果として)ベクトルベース合成が実行されたかを示す、コンテンツ分析ユニット26によって出力されるシンタックス要素に基づいて、切替えを実行することができる。ビットストリーム出力ユニットは、ビットストリーム21の各々とともに現在のフレームのために使用される切替えまたは現在の符号化を示すために、正しいヘッダシンタックスを指定することができる。
【0244】
[0131]その上、上述されたように、音場分析ユニット44は、フレームごとに変化し得る、BG
TOT環境HOA係数47を特定することができる(が、時々、BG
TOTは、2つ以上の(時間的に)隣接するフレームにわたって一定または同じままであり得る)。BG
TOTにおける変化は、低減されたフォアグラウンドV[k]ベクトル55において表された係数への変化を生じ得る。BG
TOTにおける変化は、フレームごとに変化する(「環境HOA係数」と呼ばれることもある)バックグラウンドHOA係数を生じ得る(が、この場合も時々、BG
TOTは、2つ以上の(時間的に)隣接するフレームにわたって一定または同じままであり得る)。この変化は、追加の環境HOA係数の追加または除去と、対応する、低減されたフォアグラウンドV[k]ベクトル55からの係数の除去またはそれに対する係数の追加とによって表される、音場の態様のためのエネルギーの変化を生じることが多い。
【0245】
[0132]結果として、音場分析ユニット音場分析ユニット44は、いつ環境HOA係数がフレームごとに変化するかをさらに決定し、音場の環境成分を表すために使用されることに関して、環境HOA係数への変化を示すフラグまたは他のシンタックス要素を生成することができる(ここで、この変化はまた、環境HOA係数の「遷移」または環境HOA係数の「遷移」と呼ばれることもある)。具体的には、係数低減ユニット46は、(AmbCoeffTransitionフラグまたはAmbCoeffIdxTransitionフラグとして示され得る)フラグを生成し、そのフラグが(場合によってはサイドチャネル情報の一部として)ビットストリーム21中に含まれ得るように、そのフラグをビットストリーム生成ユニット42に与えることができる。
【0246】
[0133]係数低減ユニット46は、環境係数遷移フラグを指定することに加えて、低減されたフォアグラウンドV[k]ベクトル55が生成される方法を修正することもできる。一例では、環境HOA環境係数のうちの1つが現在のフレームの間に遷移中であると決定すると、係数低減ユニット46は、遷移中の環境HOA係数に対応する低減されたフォアグラウンドV[k]ベクトル55のVベクトルの各々について、(「ベクトル要素」または「要素」とも呼ばれ得る)ベクトル係数を指定することができる。この場合も、遷移中の環境HOA係数は、BG
TOTからバックグラウンド係数の総数を追加または除去し得る。したがって、バックグラウンド係数の総数において生じた変化は、環境HOA係数がビットストリーム中に含まれるか含まれないか、および、Vベクトルの対応する要素が、上記で説明された第2の構成モードおよび第3の構成モードにおいてビットストリーム中で指定されたVベクトルのために含まれるか否かに影響を及ぼす。係数低減ユニット46が、エネルギーにおける変化を克服するために、低減されたフォアグラウンドV[k]ベクトル55を指定することができる方法に関するより多くの情報は、2015年1月12日に出願された「TRANSITIONING OF AMBIENT HIGHER_ORDER AMBISONIC COEFFICIENTS」という名称の米国特許出願第14/594,533号において提供されている。
【0247】
[0134]
図4は、
図2のオーディオ復号デバイス24をより詳細に示すブロック図である。
図4の例に示されているように、オーディオ復号デバイス24は、抽出ユニット72と、指向性ベース再構成ユニット90と、ベクトルベース再構成ユニット92とを含み得る。以下で説明されるが、オーディオ復号デバイス24に関するより多くの情報、およびHOA係数を解凍またはさもなければ復号する様々な態様は、2014年5月29日に出願された「INTERPOLATION FOR DECOMPOSED REPRESENTATIONS OF A SOUND FIELD」という名称の国際特許出願公開第WO2014/194099号において入手可能である。
【0248】
[0135]抽出ユニット72は、ビットストリーム21を受信し、HOA係数11の様々な符号化されたバージョン(たとえば、指向性ベースの符号化されたバージョンまたはベクトルベースの符号化されたバージョン)を抽出するように構成されたユニットを表し得る。抽出ユニット72は、HOA係数11が様々な方向ベースのバージョンを介して符号化されたか、ベクトルベースのバージョンを介して符号化されたかを示す、上述されたシンタックス要素から決定することができる。指向性ベース符号化が実行されたとき、抽出ユニット72は、HOA係数11の指向性ベースのバージョンと、符号化されたバージョンに関連付けられたシンタックス要素(
図4の例では指向性ベース情報91として示される)とを抽出し、指向性ベース情報91を指向性ベース再構成ユニット90に渡すことができる。指向性ベース再構成ユニット90は、指向性ベース情報91に基づいてHOA係数11’の形態でHOA係数を再構成するように構成されたユニットを表し得る。ビットストリームおよびビットストリーム内のシンタックス要素の構成が、以下で
図7A〜
図7Jの例に関してより詳細に説明される。
【0249】
[0136]HOA係数11がベクトルベース合成を使用して符号化されたことをシンタックス要素が示すとき、抽出ユニット72は、コーディングされたフォアグラウンドV[k]ベクトル57(コーディングされた重み57および/もしくはインデックス63またはスカラー量子化されたVベクトルを含み得る)と、符号化された環境HOA係数59と、対応するオーディオオブジェクト61とを抽出することができる。オーディオオブジェクト61各々は、ベクトル57のうちの1つに対応する。抽出ユニット72は、コーディングされたフォアグラウンドV[k]ベクトル57をVベクトル再構成ユニット74に渡し、符号化された環境HOA係数59を符号化されたnFG信号61とともに聴覚心理復号ユニット80に渡すことができる。
【0250】
[0137]コーディングされたフォアグラウンドV[k]ベクトル57を抽出するために、抽出ユニット72は、次のChannelSideInfoData(CSID)シンタックステーブルに従って、シンタックス要素を抽出することができる。
【0253】
[0138]上記のテーブルのためのセマンティクスは、次のようになる。 このペイロードは、i番目のチャネルのためのサイド情報を保持する。ペイロードのサイズおよびデータは、チャネルのタイプに依存する。 ChannelType[i] この要素は、テーブル95において定義されているi番目のチャネルのタイプを記憶する。 ActiveDirsIds[i] この要素は、Annex F.7からの900のあらかじめ定義された一様に分布した点のインデックスを使用して、アクティブな指向性信号の方向を示す。コードワード0は、指向性信号の終了をシグナリングするために使用される。 PFlag[i] i番目のチャネルのベクトルベース信号に関連付けられた《スカラー量子化されたVベクトルのハフマン復号のために使用される》予測フラグ(《》内は、取り消し線付である)。CbFlag[i] i番目のチャネルのベクトルベース信号に関連付けられたスカラー量子化されたVベクトルのハフマン復号のために使用されるコードブックフラグ。
CodebkIdx[i] i番目のチャネルのベクトルベース信号に関連付けられたベクトル量子化されたVベクトルを逆量子化するために使用される特定のコードブックをシグナリングする。 NbitsQ[i] このインデックスは、i番目のチャネルのベクトルベース信号に関連付けられたデータのハフマン復号のために使用されるハフマンテーブルを決定する。コードワード5は、一様8ビット逆量子化器の使用を決定する。2つのMSB00は、以前のフレーム(k−1)のNbitsQ[i]データと、PFlag[i]データと、CbFlag[i]データとを再使用することを決定する。 bA、bB NbitsQ[i]フィールドのmsb(bA)および第2のmsb(bB)。 uintC NbitsQ[i]フィールドの残りの2ビットのコードワード。
NumVecIndices ベクトル量子化されたVベクトルを逆量子化するために使用されるベクトルの数。 AddAmbHoaInfoChannel(i) このペイロードは、追加の環境HOA係数のための情報を保持する。
【0254】
[0139]CSIDシンタックステーブルに従って、抽出ユニット72は、最初に、チャネルのタイプを示すChannelTypeシンタックス要素を取得することができる(たとえば、ここで、0の値は指向性ベース信号をシグナリングし、1の値はベクトルベース信号をシグナリングし、2の値は追加の環境HOA信号をシグナリングする)。ChannelTypeシンタックス要素に基づいて、抽出ユニット72は、この3つのcase間で切り替えることができる。
【0255】
[0140]本開示で説明される技法の一例について説明するために、case 1に焦点を合わせると、抽出ユニット72は、NbitsQシンタックス要素の最上位ビット(すなわち、上記の例示的なCSIDシンタックステーブルにおけるbAシンタックス要素)と、NbitsQシンタックス要素の第2の最上位ビット(すなわち上記の例示的なCSIDシンタックステーブルにおけるbBシンタックス要素)とを取得することができる。NbitsQ(k)[i]の(k)[i]は、NbitsQシンタックス要素がi番目のトランスポートチャネルのk番目のフレームについて取得されることを示す。NbitsQシンタックス要素は、HOA係数11によって表される音場の空間成分を量子化するために使用された量子化モードを示す1つまたは複数のビットを表し得る。空間成分はまた、本開示でVベクトルと呼ばれることもあり、またはコーディングされたフォアグラウンドV[k]ベクトル57と呼ばれることもある。
【0256】
[0141]上記の例示的なCSIDシンタックステーブルでは、NbitsQシンタックス要素は、対応するVVecDataフィールドにおいて指定されるベクトルを圧縮するために使用される(NbitsQシンタックス要素のための0から3の値が予約済みまたは未使用であるので)12個の量子化モードのうちの1つを示すために4ビットを含み得る。12個の量子化モードは、以下で示された次のものを含む。
0〜3: 予約済み
4: ベクトル量子化
5: ハフマンコーディングなしのスカラー量子化
6: ハフマンコーディングありの6ビットスカラー量子化
7: ハフマンコーディングありの7ビットスカラー量子化
8: ハフマンコーディングありの8ビットスカラー量子化
... ...
16: ハフマンコーディングありの16ビットスカラー量子化 上記では、6〜16のNbitsQシンタックス要素の値は、スカラー量子化がハフマンコーディングとともに実行されるべきであることのみではなく、スカラー量子化の量子化ステップサイズをも示す。この点において、量子化モードは、ベクトル量子化モードと、ハフマンコーディングなしのスカラー量子化モードと、ハフマンコーディングありのスカラー量子化モードとを備えることができる。
【0257】
[0142]上記の例示的なCSIDシンタックステーブルに戻ると、抽出ユニット72は、bAシンタックス要素をbBシンタックス要素と組み合わせることができ、ここで、この組合せは、上記の例示的なCSIDシンタックステーブルにおいて示されるような加算であり得る。組み合されたbA/bBシンタックス要素は、以前のフレームから、ベクトルを圧縮するときに使用される情報を示す少なくとも1つのシンタックス要素を再利用するかどうかのためのインジケータを表すことができる。抽出ユニット72は次に、組み合わされたbA/bBシンタックス要素を0の値と比較する。組み合わされたbA/bBシンタックス要素が0の値を有するとき、抽出ユニット72は、i番目のトランスポートチャネルの現在のk番目のフレームのための量子化モード情報(すなわち、上記の例示的なCSIDシンタックステーブルにおける量子化モードを示すNbitsQシンタックス要素)が、i番目のトランスポートチャネルのk−1番目のフレームの量子化モード情報と同じであると決定することができる。言い換えれば、ゼロ値に設定されるとき、インジケータは、以前のフレームから少なくとも1つのシンタックス要素を再利用するように示す。
【0258】
[0143]抽出ユニット72は、同様に、i番目のトランスポートチャネルの現在のk番目のフレームのための予測情報(すなわち、この例では、予測がベクトル量子化またはスカラー量子化のいずれかの間に実行されるか否かを示すPFlagシンタックス要素)が、i番目のトランスポートチャネルのk−1番目のフレームの予測情報と同じであると決定する。抽出ユニット72はまた、i番目のトランスポートチャネルの現在のk番目のフレームのためのハフマンコードブック情報(すなわち、Vベクトルを再構成するために使用されるハフマンコードブックを示すCbFlagシンタックス要素)が、i番目のトランスポートチャネルのk−1番目のフレームのハフマンコードブック情報と同じであると決定することができる。抽出ユニット72はまた、i番目のトランスポートチャネルの現在のk番目のフレームのためのベクトル量子化情報(すなわち、Vベクトルを再構成するために使用されるベクトル量子化コードブックを示すCodebkIdxシンタックス要素およびVベクトルを再構成するために使用されるコード化ベクトルの数を示すNumVecIndicesシンタックス要素)が、i番目のトランスポートチャネルのk−1番目のフレームのベクトル量子化情報と同じであると決定することができる。
【0259】
[0144]組み合わされたbA/bBシンタックス要素が0の値を有していないとき、抽出ユニット72は、i番目のトランスポートチャネルのk番目のフレームのための量子化モード情報と、予測情報と、ハフマンコードブック情報と、ベクトル量子化情報とが、i番目のトランスポートチャネルのk−1番目のフレームの情報と同じではないと決定することができる。結果として、抽出ユニット72は、NbitsQシンタックス要素の最下位ビット(すなわち、上記の例示的なCSIDシンタックステーブルにおけるuintCシンタックス要素)を取得し、NbitsQシンタックス要素を取得するために、bAシンタックス要素とbBシンタックス要素とuintCシンタックス要素とを組み合わせることができる。このNbitsQシンタックス要素に基づいて、抽出ユニット72は、NbitsQシンタックス要素がベクトル量子化をシグナリングするとき、PFlagシンタックス要素、CodebkIdxシンタックス要素、およびNumVecIndicesシンタックス要素と、または、NbitsQシンタックス要素がハフマンコーディングありのスカラー量子化をシグナリングするとき、PFlagシンタックス要素とCbFlagシンタックス要素とのいずれかを取得することができる。このようにして、抽出ユニット72は、Vベクトルを再構成するために使用される上記のシンタックス要素を抽出し、これらのシンタックス要素をベクトルベース再構成ユニット72に渡すことができる。
【0260】
[0145]抽出ユニット72は次に、i番目のトランスポートチャネルのk番目のフレームからVベクトルを抽出することができる。抽出ユニット72は、CodedVVecLengthと示されたシンタックス要素を含む、HOADecoderConfigコンテナを取得することができる。抽出ユニット72は、HOADecoderConfigコンテナからCodedVVecLengthを解析することができる。抽出ユニット72は、次のVVecDataシンタックステーブルに従って、Vベクトルを取得することができる。
【0263】
VVec(k)[i] これは、i番目のチャネルのためのk番目のHOAframe()のためのVベクトルである。VVecLength この変数は、読み出すべきベクトル要素の数を示す。 VVecCoeffId このベクトルは、送信されたVベクトル係数のインデックスを含む。VecVal 0と255との間の整数値。 aVal VVectorDataの復号中に使用される一時的な変数。 huffVal ハフマン復号されるべきハフマンコードワード。 SgnVal これは、復号中に使用されるコード化された符号値である。 intAddVal これは、復号中に使用される追加の整数値である。 NumVecIndices ベクトル量子化されたVベクトルを逆量子化するために使用されるベクトルの数。 WeightIdx ベクトル量子化されたVベクトルを逆量子化するために使用されるWeightValCdbkにおけるインデックス。 nBitsW ベクトル量子化されたVベクトルを復号するために、WeightIdxを読み取るためのフィールドサイズ。 WeightValCbk 正の実数値の重み付け係数のベクトルを含むコードブック。NumVecIndicesが1よりも大きい場合のみ必要。256個のエントリをもつWeightValCdbkが与えられる。 WeightValPredCdbk 予測重み付け係数のベクトルを含むコードブック。NumVecIndicesが1よりも大きい場合のみ必要。256個のエントリをもつWeightValPredCdbkが与えられる。 WeightValAlpha Vベクトル量子化の予測コーディングモードのために使用される予測コーディング係数。 VvecIdx ベクトル量子化されたVベクトルを逆量子化するために使用される、VecDictのためのインデックス。 nbitsIdx ベクトル量子化されたVベクトルを復号するために、VvecIdxを読み取るためのフィールドサイズ。 WeightVal ベクトル量子化されたVベクトルを復号するための実数値の重み付け係数。
【0264】
[0146]上記のシンタックステーブルでは、抽出ユニット72は、NbitsQシンタックス要素の値が4に等しい(または、言い換えれば、ベクトル逆量子化がVベクトルを再構成するために使用されることをシグナリングする)か否かを決定することができる。NbitsQシンタックス要素の値が4に等しいとき、抽出ユニット72は、NumVecIndicesシンタックス要素の値を1の値と比較することができる。NumVecIndicesの値が1に等しいとき、抽出ユニット72は、VecIdxシンタックス要素を取得することができる。VecIdxシンタックス要素は、ベクトル量子化されたVベクトルを逆量子化するために使用されるVecDictのためのインデックスを示す1つまたは複数のビットを表し得る。抽出ユニット72は、0番目の要素がVecIdxシンタックス要素の値+1に設定された、VecIdxアレイをインスタンス化することができる。抽出ユニット72はまた、SgnValシンタックス要素を取得することができる。SgnValシンタックス要素は、Vベクトルの復号中に使用されるコーディングされた符号値を示す1つまたは複数のビットを表し得る。抽出ユニット72は、WeightValアレイをインスタンス化し、SgnValシンタックス要素の値の関数として0番目の要素を設定することができる。
【0265】
[0147]NumVecIndicesシンタックス要素の値が1の値に等しくないとき、抽出ユニット72は、WeightIdxシンタックス要素を取得することができる。WeightIdxシンタックス要素は、ベクトル量子化されたVベクトルを逆量子化するために使用されるWeightValCdbkアレイにおけるインデックスを示す1つまたは複数のビットを表し得る。WeightValCdbkアレイは、正の実数値の重み付け係数のベクトルを含むコードブックを表し得る。抽出ユニット72は次に、HOAConfigコンテナにおいて指定された(一例として、ビットストリーム21の開始において指定された)NumOfHoaCoeffsシンタックス要素の関数として、nbitsIdxを決定することができる。抽出ユニット72は次いで、NumVecIndices中を反復し、ビットストリーム21からVecIdxシンタックス要素を取得し、各取得されたVecIdxシンタックス要素を用いてVecIdxアレイ要素を設定することができる。
【0266】
[0148]抽出ユニット72は、ビットストリーム21からのシンタックス要素の抽出に無関係であるtmpWeightVal変数値を決定することを伴う、次のPFlagシンタックス比較を実行しない。したがって、抽出ユニット72は次に、WeightValシンタックス要素を決定する際に使用するためのSgnValシンタックス要素を取得することができる。
【0267】
[0149]NbitsQシンタックス要素の値が5に等しい(ハフマン復号なしのスカラー逆量子化がVベクトルを再構成するために使用されることをシグナリングする)とき、抽出ユニット72は、0からVVecLengthまで反復し、aVal変数を、ビットストリーム21から取得されたVecValシンタックス要素に設定する。VecValシンタックス要素は、0と255との間の整数を示す1つまたは複数のビットを表し得る。
【0268】
[0150]NbitsQシンタックス要素の値が6以上である(ハフマン復号ありのNbitsQビットスカラー逆量子化がVベクトルを再構成するために使用されることをシグナリングする)とき、抽出ユニット72は、0からVVecLengthまで反復し、huffValシンタックス要素、SgnValシンタックス要素、およびintAddValシンタックス要素のうちの1つまたは複数を取得する。huffValシンタックス要素は、ハフマンコードワードを示す1つまたは複数のビットを表し得る。intAddValシンタックス要素は、復号中に使用される追加の整数値を示す1つまたは複数のビットを表し得る。抽出ユニット72は、これらのシンタックス要素をベクトルベース再構成ユニット92に与えることができる。
【0269】
[0151]ベクトルベース再構成ユニット92は、HOA係数11’を再構成するために、ベクトルベース合成ユニット27に関して上記で説明されたものとは逆の演算を実行するように構成されたユニットを表し得る。ベクトルベース再構成ユニット92は、Vベクトル再構成ユニット74と、空間時間的補間ユニット76と、フォアグラウンド編成ユニット78と、聴覚心理復号ユニット80と、HOA係数編成ユニット82と、フェードユニット770と、並べ替えユニット84とを含み得る。フェードユニット770の破線は、ベクトルベース再構成ユニット92中に含まれているという観点から見て、フェードユニット770がオプションユニットであり得ることを示す。
【0270】
[0152]Vベクトル再構成ユニット74は、符号化されたフォアグラウンドV[k]ベクトル57からVベクトルを再構成するように構成されたユニットを表し得る。Vベクトル再構成ユニット74は、量子化ユニット52の動作とは逆の方法で動作することができる。
【0271】
[0153]Vベクトル再構成ユニット74は、言い換えれば、Vベクトルを再構成するために次の擬似コードに従って動作することができる。
【0273】
[0154]上記の擬似コードに従って、Vベクトル再構成ユニット74は、i番目のトランスポートチャネルのk番目のフレームのためのNbitsQシンタックス要素を取得することができる。NbitsQシンタックス要素が4に等しい(この場合も、ベクトル量子化が実行されたことをシグナリングする)とき、Vベクトル再構成ユニット74は、NumVecIndiciesシンタックス要素を1と比較することができる。NumVecIndiciesシンタックス要素は、上記で説明されたように、ベクトル量子化されたVベクトルを逆量子化するために使用されるベクトルの数を示す1つまたは複数のビットを表し得る。NumVecIndiciesシンタックス要素の値が1に等しいとき、Vベクトル再構成ユニット74は次いで、0からVVecLengthシンタックス要素の値まで反復し、idx変数をVVecCoeffIdに設定し、VVecCoeffId番目のVベクトル要素(v
(i)VVecCoeffId[m](k))を、[900][VecIdx[0]][idx]によって特定されたVecDictエントリをWeightValに乗算したものに設定することができる。言い換えれば、NumVvecIndiciesの値が1に等しいとき、テーブルF.11において示された8×1重み付け値のコードブックとともに、テーブルF.8から導出されたベクトルコードブックHOA拡張係数。
【0274】
[0155]NumVecIndiciesシンタックス要素の値が1に等しくないとき、Vベクトル再構成ユニット74は、cdbLen変数を、ベクトルの数を示す変数であるOに設定することができる。cdbLenシンタックス要素は、コードベクトルの辞書またはコードブックにおけるエントリの数を示す(ここで、この辞書は、上記の擬似コードにおいて「VecDict」と示され、ベクトル量子化されたVベクトルを復号するために使用される、HOA拡張係数のベクトルを含むcdbLen個のコードブックエントリをもつコードブックを表す)。HOA係数11の(「N」によって示される)次数が4に等しいとき、Vベクトル再構成ユニット74は、cdbLen変数を32に設定することができる。Vベクトル再構成ユニット74は次に、0からOまで反復し、TmpVVecアレイを0に設定することができる。この反復中に、Vベクトル再構成ユニット74はまた、0からNumVecIndeciesシンタックス要素の値まで反復し、TempVVecアレイのm番目のエントリを、VecDictの[cdbLen][VecIdx[j]][m]エントリをj番目のWeightValに乗算したものに等しくなるように設定することができる。
【0275】
[0156]Vベクトル再構成ユニット74は、次の擬似コードに従って、WeightValを導出することができる。
【0277】
上記の擬似コードでは、Vベクトル再構成ユニット74は、0からNumVecIndicesシンタックス要素の値まで反復し、最初に、PFlagシンタックス要素の値が0に等しいか否かを決定することができる。PFlagシンタックス要素が0に等しいとき、Vベクトル再構成ユニット74は、tmpWeightVal変数を決定し、tmpWeightVal変数を、WeightValCdbkコードブックの[CodebkIdx][WeightIdx]エントリに等しく設定することができる。PFlagシンタックス要素の値が0に等しくないとき、Vベクトル再構成ユニット74は、tmpWeightVal変数を、WeightValPredCdbkコードブックの[CodebkIdx][WeightIdx]エントリ+i番目のトランスポートチャネルのk−1番目のフレームのtempWeightValをWeightValAlpha変数に乗算したものに等しく設定することができる。WeightValAlpha変数は、オーディオ符号化デバイス20およびオーディオ復号デバイス24において静的に定義され得る、上述されたα値を指し得る。Vベクトル再構成ユニット74は次いで、抽出ユニット72によって取得されたSgnValシンタックス要素とtmpWeightVal変数との関数として、WeightValを取得することができる。
【0278】
[0157]Vベクトル再構成ユニット74は、言い換えれば、重み値コードブック(予測されないベクトル量子化では「WeightValCdbk」と示され、予測ベクトル量子化では「WeightValPredCdbk」と示され、それらの両方は、コードブックインデックス(上記のVVectorData(i)シンタックステーブルにおいて「CodebkIdx」シンタックス要素と示される)および重みインデックス(上記のVVectorData(i)シンタックステーブルにおいて「WeightIdx」シンタックス要素と示される)のうちの1つまたは複数に基づいてインデックス付けされた多次元テーブルを表し得る)に基づいて、Vベクトルを再構成するために使用される各対応するコードベクトルのための重み値を導出することができる。このCodebkIdxシンタックス要素は、以下のChannelSideInfoData(i)シンタックステーブルにおいて示されるような、サイドチャネル情報の一部分において定義され得る。
【0279】
[0158]上記の擬似コードの残りのベクトル量子化部分は、Vベクトルの要素を正規化するためのFNormの計算と、後に続く、TmpVVec[idx]×FNormに等しいものとしてのVベクトル要素(v
(i)VVecCoeffId[m](k))の計算とに関係する。Vベクトル再構成ユニット74は、VVecCoeffIDの関数として、idx変数を取得することができる。
【0280】
[0159]NbitsQが5に等しいとき、一様8ビットスカラー逆量子化が実行される。対照的に、6以上のNbitsQの値は、ハフマン復号の適用をもたらし得る。上で言及されるcid値は、NbitsQ値の下位2ビットに等しくてよい。予測モードは、上記のシンタックステーブルではPFlagとして示されるが、一方で、ハフマンテーブル情報ビットは、上記のシンタックステーブルではCbFlagとして示される。残りのシンタックスは、復号が上記で説明されたものと実質的に同様の方法でどのように行われるかを指定する。
【0281】
[0160]聴覚心理復号ユニット80は、符号化された環境HOA係数59と符号化されたnFG信号61とを復号し、それによってエネルギー補償された環境HOA係数47’と補間されたnFG信号49’(補間されたnFGオーディオオブジェクト49’とも呼ばれ得る)とを生成するために、
図3の例に示される聴覚心理オーディオコーダユニット40とは逆の方法で動作することができる。聴覚心理復号ユニット80は、エネルギー補償された環境HOA係数47’をフェードユニット770に渡し、nFG信号49’をフォアグラウンド編成ユニット78に渡すことができる。
【0282】
[0161]空間時間的補間ユニット76は、空間時間的補間ユニット50に関して上記で説明されたものと同様の方法で動作することができる。空間時間的補間ユニット76は、低減されたフォアグラウンドV[k]ベクトル55
kを受信し、また、補間されたフォアグラウンドV[k]ベクトル55
k’’を生成するために、フォアグラウンドV[k]ベクトル55
kおよび低減されたフォアグラウンドV[k−1]ベクトル55
k-1に関して空間時間的補間を実行することができる。空間時間的補間ユニット76は、補間されたフォアグラウンドV[k]ベクトル55
k’’をフェードユニット770に転送することができる。
【0283】
[0162]抽出ユニット72はまた、いつ環境HOA係数のうちの1つが遷移中であるかを示す信号757を、フェードユニット770に出力することもでき、フェードユニット770は次いで、SCH
BG47’(ここで、SCH
BG47’は、「環境HOAチャネル47’」または「環境HOA係数47’」とも呼ばれ得る)および補間されたフォアグラウンドV[k]ベクトル55
k’’の要素のうちのいずれがフェードインまたはフェードアウトのいずれかを行われるべきであるかを決定することができる。いくつかの例では、フェードユニット770は、環境HOA係数47’および補間されたフォアグラウンドV[k]ベクトル55
k’’の要素の各々に関して、反対に動作することができる。すなわち、フェードユニット770は、環境HOA係数47’のうちの対応する1つに関して、フェードインもしくはフェードアウト、またはフェードインもしくはフェードアウトの両方を実行することができ、一方で、補間されたフォアグラウンドV[k]ベクトル55
k’’の要素のうちの対応する1つに関して、フェードインもしくはフェードアウト、またはフェードインとフェードアウトの両方を実行することができる。フェードユニット770は、調整された環境HOA係数47’’をHOA係数編成ユニット82に出力し、調整されたフォアグラウンドV[k]ベクトル55
k’’’をフォアグラウンド編成ユニット78に出力することができる。この点において、フェードユニット770は、HOA係数またはその派生物の様々な態様に関して、たとえば、環境HOA係数47’および補間されたフォアグラウンドV[k]ベクトル55
k’’の要素の形態で、フェード動作を実行するように構成されたユニットを表す。
【0284】
[0163]フォアグラウンド編成ユニット78は、フォアグラウンドHOA係数65を生成するために、調整されたフォアグラウンドV[k]ベクトル55
k’’’および補間されたnFG信号49’に関して行列乗算を実行するように構成されたユニットを表し得る。この点において、フォアグラウンド編成ユニット78は、フォアグランド、または言い換えればHOA係数11’の支配的な態様を再構成するために、ベクトル55
k’’’とオーディオオブジェクト49’(それは、補間されたnFG信号49’を示す別の方法である)を組み合わせることができる。フォアグラウンド編成ユニット78は、調整されたフォアグラウンドV[k]ベクトル55
k’’’による補間されたnFG信号49’の行列乗算を実行することができる。
【0285】
[0164]HOA係数編成ユニット82は、HOA係数11’を取得するために、フォアグラウンドHOA係数65を調整された環境HOA係数47’’に組み合わせるように構成されたユニットを表し得る。プライム表記法は、HOA係数11’がHOA係数11と同様であるが同じではないことがあることを反映している。HOA係数11とHOA係数11’との間の差分は、損失のある送信媒体を介した送信、量子化、または他の損失のある演算が原因の損失に起因し得る。
【0286】
[0165]
図5Aは、本開示で説明されるベクトルベース合成技法の様々な態様を実行する際の、
図3の例に示されるオーディオ符号化デバイス20などのオーディオ符号化デバイスの例示的な動作を示すフローチャートである。最初に、オーディオ符号化デバイス20は、HOA係数11を受信する(106)。オーディオ符号化デバイス20はLITユニット30を呼び出すことができ、LITユニット30は、変換されたHOA係数(たとえば、SVDの場合、変換されたHOA係数はUS[k]ベクトル33とV[k]ベクトル35とを備え得る)を出力するためにHOA係数に関してLITを適用することができる(107)。
【0287】
[0166]オーディオ符号化デバイス20は次に、上記で説明された方法で様々なパラメータを特定するために、US[k]ベクトル33、US[k−1]ベクトル33、V[k]ベクトルおよび/またはV[k−1]ベクトル35の任意の組合せに関して上記で説明された分析を実行するために、パラメータ計算ユニット32を呼び出すことができる。すなわち、パラメータ計算ユニット32は、変換されたHOA係数33/35の分析に基づいて少なくとも1つのパラメータを決定することができる(108)。
【0288】
[0167]オーディオ符号化デバイス20は次いで、並べ替えユニット34を呼び出すことができ、並べ替えユニット34は、上記で説明されたように、並べ替えられた変換されたHOA係数33’/35’(または言い換えれば、US[k]ベクトル33’およびV[k]ベクトル35’)を生成するために、パラメータに基づいて、変換されたHOA係数(この場合も、SVDの文脈では、US[k]ベクトル33とV[k]ベクトル35とを指し得る)を並べ替えることができる(109)。オーディオ符号化デバイス20は、前述の演算または後続の演算のいずれかの間に、音場分析ユニット44を呼び出すこともできる。音場分析ユニット44は、上記で説明されたように、フォアグラウンドチャネルの総数(nFG)45と、バックグラウンド音場の次数(N
BG)と、送るべき追加のBG HOAチャネルの数(nBGa)およびインデックス(i)(
図3の例ではバックグラウンドチャネル情報43としてまとめて示され得る)とを決定するために、HOA係数11および/または変換されたHOA係数33/35に関して音場分析を実行することができる(109)。
【0289】
[0168]オーディオ符号化デバイス20はまた、バックグラウンド選択ユニット48を呼び出すことができる。バックグラウンド選択ユニット48は、バックグラウンドチャネル情報43に基づいて、バックグラウンドまたは環境HOA係数47を決定することができる(110)。オーディオ符号化デバイス20はさらに、フォアグラウンド選択ユニット36を呼び出すことができ、フォアグラウンド選択ユニット36は、nFG45(フォアグラウンドベクトルを特定する1つまたは複数のインデックスを表し得る)に基づいて、音場のフォアグラウンド成分または明瞭な成分を表す、並べ替えられたUS[k]ベクトル33’と並べ替えられたV[k]ベクトル35’とを選択することができる(112)。
【0290】
[0169]オーディオ符号化デバイス20は、エネルギー補償ユニット38を呼び出すことができる。エネルギー補償ユニット38は、バックグラウンド選択ユニット48によるHOA係数のうちの様々なものの除去によるエネルギー損失を補償するために、環境HOA係数47に関してエネルギー補償を実行し(114)、それによって、エネルギー補償された環境HOA係数47’を生成することができる。
【0291】
[0170]オーディオ符号化デバイス20はまた、空間時間的補間ユニット50を呼び出すことができる。空間時間的補間ユニット50は、補間されたフォアグラウンド信号49’(「補間されたnFG信号49’」とも呼ばれ得る)と残りのフォアグラウンド指向性情報53(「V[k]ベクトル53」とも呼ばれ得る)とを取得するために、並べ替えられた変換されたHOA係数33’/35’に関して空間時間的補間を実行することができる(116)。オーディオ符号化デバイス20は次いで、係数低減ユニット46を呼び出すことができる。係数低減ユニット46は、低減されたフォアグラウンド指向性情報55(低減されたフォアグラウンドV[k]ベクトル55とも呼ばれ得る)を取得するために、バックグラウンドチャネル情報43に基づいて残りのフォアグラウンドV[k]ベクトル53に関して係数低減を実行することができる(118)。
【0292】
[0171]オーディオ符号化デバイス20は次いで、上記で説明された方法で、低減されたフォアグラウンドV[k]ベクトル55を圧縮し、コーディングされたフォアグラウンドV[k]ベクトル57を生成するために、量子化ユニット52を呼び出すことができる(120)。
【0293】
[0172]オーディオ符号化デバイス20はまた、聴覚心理オーディオコーダユニット40を呼び出すことができる。聴覚心理オーディオコーダユニット40は、符号化された環境HOA係数59と符号化されたnFG信号61とを生成するために、エネルギー補償された環境HOA係数47’および補間されたnFG信号49’の各ベクトルを聴覚心理コーディングすることができる。オーディオ符号化デバイスは次いで、ビットストリーム生成ユニット42を呼び出すことができる。ビットストリーム生成ユニット42は、コーディングされたフォアグラウンド指向性情報57と、コーディングされた環境HOA係数59と、コーディングされたnFG信号61と、バックグラウンドチャネル情報43とに基づいて、ビットストリーム21を生成することができる。
【0294】
[0173]
図5Bは、本開示で説明されるコーディング技法を実行する際のオーディオ符号化デバイスの例示的な動作を示すフローチャートである。
図3の例において示されたオーディオ符号化デバイス20のビットストリーム生成ユニット42は、本開示で説明される技法を実行するように構成された1つの例示的なユニットを表し得る。ビットストリーム生成ユニット42は、フレームの量子化モードが、(「第2のフレーム」として示され得る)時間的に以前のフレームの量子化モードと同じであるか否かを決定することができる(314)。以前のフレームに関して説明されているが、本技法は、時間的に後続のフレームに関して実行され得る。フレームは、1つまたは複数のトランスポートチャネルの一部分を含み得る。トランスポートチャネルの一部分は、あるペイロード(たとえば、
図7の例ではVVectorDataフィールド156)とともに(ChannelSideInfoDataシンタックステーブルに従って形成された)ChannelSideInfoDataを含み得る。ペイロードの他の例は、AddAmbientHOACoeffsフィールドを含み得る。
【0295】
[0174]量子化モードが同じであるとき(「YES」316)、ビットストリーム生成ユニット42は、ビットストリーム21中で量子化モードの一部分を指定することができる(318)。量子化モードの一部分は、bAシンタックス要素とbBシンタックス要素とを含み得るが、uintCシンタックス要素を含まないことがある。bAシンタックス要素は、NbitsQシンタックス要素のビットストリームの最上位ビットを示す、ビットを表し得る。bBシンタックス要素は、NbitsQシンタックス要素の第2の最上位ビットを示す、ビットを表し得る。ビットストリーム生成ユニット42は、bAシンタックス要素およびbBシンタックス要素の各々の値を0に設定し、それによって、ビットストリーム21中の量子化モードフィールド(すなわち、一例としてNbitsQフィールド)がuintCシンタックス要素を含まないことをシグナリングすることができる。0値のbAシンタックス要素およびbBシンタックス要素のこのシグナリングはまた、以前のフレームからのNbitsQ値、PFlag値、CbFlag値、およびCodebkIdx値が、現在のフレームの同じシンタックス要素のための対応する値として使用されるべきであることを示す。
【0296】
[0175]量子化モードが同じではないとき(「NO」316)、ビットストリーム生成ユニット42は、ビットストリーム21中で全体量子化モードを示す1つまたは複数のビットを指定することができる(320)。すなわち、ビットストリーム生成ユニット42は、ビットストリーム21中でbAシンタックス要素と、bBシンタックス要素と、uintCシンタックス要素とを指定する。ビットストリーム生成ユニット42はまた、量子化モードに基づいて量子化情報を指定することができる(322)。この量子化情報は、ベクトル量子化情報、予測情報、およびハフマンコードブック情報など、量子化に関する任意の情報を含み得る。ベクトル量子化情報は、一例として、CodebkIdxシンタックス要素およびNumVecIndicesシンタックス要素のうちの一方または両方を含み得る。予測情報は、一例として、PFlagシンタックス要素を含み得る。ハフマンコードブック情報は、一例として、CbFlagシンタックス要素を含み得る。
【0297】
[0176]この点に関して、技法は、オーディオ符号化デバイス20がサウンドフィールドの空間成分の圧縮されたバージョンを備えるビットストリーム21を取得するように構成されることができ得る。空間成分は、複数の球面調和関数係数に関してベクトルベース合成を実行することによって生成され得る。ビットストリームは、空間成分を圧縮するときに使用される情報を指定する、以前のフレームからの、ヘッダフィールドの1つまたは複数のビットを再使用するかどうかのためのインジケータをさらに備える。
【0298】
[0177]言い換えれば、技法は、オーディオ符号化デバイス20が球面調和関数領域における直交空間軸を表すベクトル57を備えるビットストリーム21を取得するように構成されることができ得る。ビットストリーム21は、ベクトルを圧縮(たとえば、量子化)するときに使用される情報を示す少なくとも1つのシンタックス要素を、以前のフレームから、再使用するかどうかのためのインジケータ(たとえば、NbitsQシンタックス要素のbA/bBシンタックス要素)をさらに備え得る。
【0299】
[0178]
図6Aは、本開示で説明される技法の様々な態様を実行する際の、
図4に示されるオーディオ復号デバイス24などのオーディオ復号デバイスの例示的な動作を示すフローチャートである。最初に、オーディオ復号デバイス24は、ビットストリーム21を受信することができる(130)。ビットストリームを受信すると、オーディオ復号デバイス24は抽出ユニット72を呼び出すことができる。説明の目的で、ベクトルベース再構成が実行されるべきであることをビットストリーム21が示すと仮定すると、抽出デバイス72は、上述された情報を取り出すためにビットストリームを解析し、その情報をベクトルベース再構成ユニット92に渡すことができる。
【0300】
[0179]言い換えれば、抽出ユニット72は、コーディングされたフォアグラウンド指向性情報57(この場合も、コーディングされたフォアグラウンドV[k]ベクトル57とも呼ばれ得る)と、コーディングされた環境HOA係数59と、コーディングされたフォアグラウンド信号(コーディングされたフォアグラウンドnFG信号59またはコーディングされたフォアグラウンドオーディオオブジェクト59とも呼ばれ得る)とを、上記で説明された方法でビットストリーム21から抽出することができる(132)。
【0301】
[0180]オーディオ復号デバイス24はさらに、逆量子化ユニット74を呼び出すことができる。逆量子化ユニット74は、低減されたフォアグラウンド指向性情報55
kを取得するために、コーディングされたフォアグラウンド指向性情報57をエントロピー復号および逆量子化することができる(136)。オーディオ復号デバイス24はまた、聴覚心理復号ユニット80を呼び出すことができる。聴覚心理オーディオ復号ユニット80は、エネルギー補償された環境HOA係数47’と補間されたフォアグラウンド信号49’とを取得するために、符号化された環境HOA係数59と符号化されたフォアグラウンド信号61とを復号することができる(138)。聴覚心理復号ユニット80は、エネルギー補償された環境HOA係数47’をフェードユニット770に渡し、nFG信号49’をフォアグラウンド編成ユニット78に渡すことができる。
【0302】
[0181]オーディオ復号デバイス24は次に、空間時間的補間ユニット76を呼び出すことができる。空間時間的補間ユニット76は、並べ替えられたフォアグラウンド指向性情報55
k’を受信し、また、補間されたフォアグラウンド指向性情報55
k’’を生成するために、低減されたフォアグラウンド指向性情報55
k/55
k-1に関して空間時間的補間を実行することができる(140)。空間時間的補間ユニット76は、補間されたフォアグラウンドV[k]ベクトル55
k’’をフェードユニット770に転送することができる。
【0303】
[0182]オーディオ復号デバイス24は、フェードユニット770を呼び出すことができる。フェードユニット770は、エネルギー補償された環境HOA係数47’がいつ遷移中であるかを示すシンタックス要素(たとえば、AmbCoeffTransitionシンタックス要素)を(たとえば、抽出ユニット72から)受信またはさもなければ取得することができる。フェードユニット770は、遷移シンタックス要素と維持された遷移状態情報とに基づいて、エネルギー補償された環境HOA係数47’をフェードインまたはフェードアウトし、調整された環境HOA係数47’’をHOA係数編成ユニット82に出力することができる。フェードユニット770はまた、シンタックス要素と維持された遷移状態情報とに基づいて、および、補間されたフォアグラウンドV[k]ベクトル55
k’’の対応する1つまたは複数の要素をフェードアウトまたはフェードインし、フォアグラウンド編成ユニット78に調整されたフォアグラウンドV[k]ベクトル55
k’’’を出力することができる(142)。
【0304】
[0183]オーディオ復号デバイス24は、フォアグラウンド編成ユニット78を呼び出すことができる。フォアグラウンド編成ユニット78は、フォアグラウンドHOA係数65を取得するために、調整されたフォアグラウンド指向性情報55
k’’’による行列乗算nFG信号49’を実行することができる(144)。オーディオ復号デバイス24はまた、HOA係数編成ユニット82を呼び出すことができる。HOA係数編成ユニット82は、HOA係数11’を取得するために、フォアグラウンドHOA係数65を調整された環境HOA係数47’’に加算することができる(146)。
【0305】
[0184]
図6Bは、本開示で説明されるコーディング技法を実行する際のオーディオ復号デバイスの例示的な動作を示すフローチャートである。
図4の例において示されたオーディオ符号化デバイス24の抽出ユニット72は、本開示で説明される技法を実行するように構成された1つの例示的なユニットを表し得る。ビットストリーム抽出ユニット72は、フレームの量子化モードが、(「第2のフレーム」として示され得る)時間的に以前のフレームの量子化モードと同じであるか否かを示すビットを取得することができる(362)。この場合も、以前のフレームに関して説明されているが、本技法は、時間的に後続のフレームに関して実行され得る。
【0306】
[0185]量子化モードが同じであるとき(「YES」364)、抽出ユニット72は、ビットストリーム21から量子化モードの一部分を取得することができる(366)。量子化モードの一部分は、bAシンタックス要素とbBシンタックス要素とを含み得るが、uintCシンタックス要素を含まないことがある。抽出ユニット42はまた、現在のフレームのためのNbitsQ値、PFlag値、CbFlag値、CodebkIdx値、およびNumVecIndices値の値を、以前のフレームのために設定されたNbitsQ値、PFlag値、CbFlag値、CodebkIdx値、およびNumVecIndicesの値と同じように設定することができる(368)。
【0307】
[0186]量子化モードが同じではないとき(「NO」364)、抽出ユニット72は、ビットストリーム21から全体量子化モードを示す1つまたは複数のビットを取得することができる。すなわち、抽出ユニット72は、ビットストリーム21からbAシンタックス要素と、bBシンタックス要素と、uintCシンタックス要素とを取得する(370)。抽出ユニット72はまた、量子化モードに基づいて、量子化情報を示す1つまたは複数のビットを取得することができる(372)。
図5Bに関して上述されたように、量子化情報は、ベクトル量子化情報、予測情報、およびハフマンコードブック情報など、量子化に関する任意の情報を含み得る。ベクトル量子化情報は、一例として、CodebkIdxシンタックス要素およびNumVecIndicesシンタックス要素のうちの一方または両方を含み得る。予測情報は、一例として、PFlagシンタックス要素を含み得る。ハフマンコードブック情報は、一例として、CbFlagシンタックス要素を含み得る。
【0308】
[0187]この点に関して、技法は、オーディオ復号デバイス24がサウンドフィールドの空間成分の圧縮されたバージョンを備えるビットストリーム21を取得するように構成されることができ得る。空間成分は、複数の球面調和関数係数に関してベクトルベース合成を実行することによって生成され得る。ビットストリームは、空間成分を圧縮するときに使用される情報を指定する、以前のフレームからの、ヘッダフィールドの1つまたは複数のビットを再使用するかどうかのためのインジケータをさらに備える。
【0309】
[0188]言い換えれば、技法は、オーディオ復号デバイス24が球面調和関数領域における直交空間軸を表すベクトル57を備えるビットストリーム21を取得するように構成されることができ得る。ビットストリーム21は、ベクトルを圧縮(たとえば、量子化)するときに使用される情報を示す少なくとも1つのシンタックス要素を、以前のフレームから、再使用するかどうかのためのインジケータ(たとえば、NbitsQシンタックス要素のbA/bBシンタックス要素)をさらに備え得る。
【0310】
[0189]
図7は、本開示で説明される技法の様々な態様に従って指定された例示的なフレーム249Sおよび249Tを示す図である。
図7の例に示されるように、フレーム249Sは、ChannelSideInfoData(CSID)フィールド154A〜154Dと、HOAGainCorrectionData(HOAGCD)フィールドと、VVectorDataフィールド156Aおよび156Bと、HOAPredictionInfoフィールドとを含む。CSIDフィールド154Aは、01の値に設定されたChannelTypeシンタックス要素(「ChannelType」)269とともに、10の値に設定されたuintCシンタックス要素(「uintC」)267と、1の値に設定されたbbシンタックス要素(「bB」)266と、0の値に設定されたbAシンタックス要素(「bA」)265とを含む。
【0311】
[0190]uintCシンタックス要素267、bBシンタックス要素266、およびbAシンタックス要素265は一緒に、NbitsQシンタックス要素261を形成し、bAシンタックス要素265がNbitsQシンタックス要素261の最上位ビットを形成し、bBシンタックス要素266が第2の最上位ビットを形成し、uintCシンタックス要素267が最下位ビットを形成する。NbitsQシンタックス要素261は、上述されたように、高次アンビソニックオーディオデータを符号化するために使用された量子化モード(たとえば、ベクトル量子化モード、ハフマンコーディングなしのスカラー量子化モード、およびハフマンコーディングありのスカラー量子化モード)を示す1つまたは複数のビットを表し得る。
【0312】
[0191]CSIDシンタックス要素154Aはまた、様々なシンタックステーブルにおいて上記で言及されたPFlagシンタックス要素300とCbFlagシンタックス要素302とを含む。PFlagシンタックス要素300は、第1のフレーム249SのHOA係数によって表されるサウンドフィールドの空間成分のコード化要素(ここで、さらに空間成分は、Vベクトルを指し得る)が第2のフレーム(たとえば、この例では以前のフレーム)から予測されるか否かを示す、1つまたは複数のビットを表し得る。CbFlagシンタックス要素302は、空間成分(または言い換えれば、Vベクトル要素)を符号化するために使用されたハフマンコードブック(または、言い換えれば、テーブル)のいずれかを特定することができる、ハフマンコードブック情報を示す、1つまたは複数のビットを表し得る。
【0313】
[0192]CSIDフィールド154Bは、bBシンタックス要素266とbBシンタックス要素265とを、ChannelTypeシンタックス要素269とともに含み、その各々が、
図7の例において対応する値0および0および01に設定される。CSIDフィールド154Cおよび154Dの各々は、3(11
2)の値を有するChannelTypeフィールド269を含む。CSIDフィールド154A〜154Dの各々は、トランスポートチャネル1、2、3および4の各々に対応する。事実上、各CSIDフィールド154A〜154Dは、対応するペイロードが指向性ベースの信号か(対応するChannelTypeが0に等しいとき)、ベクトルベースの信号か(対応するChannelTypeが1に等しいとき)、追加の環境HOA係数か(対応するChannelTypeが2に等しいとき)、空か(ChannelTypeが3に等しいとき)を示す。
【0314】
[0193]
図7の例では、フレーム249Sは、(CSIDフィールド154Aおよび154Bにおいて1に等しいChannelTypeシンタックス要素269が与えられる)2つのベクトルベース信号と、(CSIDフィールド154Cおよび154Dにおいて3に等しいChannelType269が与えられる)2つの空とを含む。その上、オーディオ符号化デバイス20は、PFlagシンタックス要素300が1に設定されることによって示されるような予測を採用した。この場合も、PFlagシンタックス要素300によって示されるような予測は、圧縮された空間成分v1〜vnのうちの対応する1つに関して予測が実行されたか否かを示す予測モード指示を指す。PFlagシンタックス要素300が1に設定されるとき、オーディオ符号化デバイス20は、スカラー量子化では、現在のフレームの対応するベクトル要素との以前のフレームからのベクトル要素の間の差分、または、ベクトル量子化では、現在のフレームの対応する重みとの以前のフレームからの重みの間の差分を取ることによる予測を採用することができる。
【0315】
[0194]オーディオ符号化デバイス20はまた、フレーム249Sにおける第2のトランスポートチャネルのCSIDフィールド154BのためのNbitsQシンタックス要素261のための値が、以前のフレーム、たとえば
図7の例におけるフレーム249T、の第2のトランスポートチャネルのCSIDフィールド154BのためのNbitsQシンタックス要素261の値と同じであると決定した。結果として、オーディオ符号化デバイス20は、以前のフレーム249Tにおける第2のトランスポートチャネルのNbitsQシンタックス要素261の値が、フレーム249Sにおける第2のトランスポートチャネルのNbitsQシンタックス要素261のために再使用されることをシグナリングするために、bAシンタックス要素265およびbBシンタックス要素266の各々に対して0の値を指定した。結果として、オーディオ符号化デバイス20は、上で識別された他のシンタックス要素と共にフレーム249Sにおける第2のトランスポートチャネルのためにuintCシンタックス要素267を指定することを回避することができる。
【0316】
[0195]
図8は、本明細書で説明される技法による、少なくとも1つのビットストリームの1つまたは複数のチャネルのための例示的なフレームを示す図である。ビットストリーム450は、1つまたは複数のチャネルをそれぞれ含み得るフレーム810A〜810Hを含む。ビットストリーム450は、
図7の例において示されたビットストリーム21の1つの例であり得る。
図8の例では、オーディオ復号デバイス24は、状態情報を維持し、どのように現在のフレームkを復号するかを決定するために、状態情報を更新する。オーディオ復号デバイス24は、config814からの状態情報と、フレーム810B〜810Dとを利用することができる。
【0317】
[0196]言い換えれば、オーディオ符号化デバイス20は、ビットストリーム生成ユニット42が状態機械402に基づいてフレーム810A〜810Eの各々のためのシンタックス要素を指定することができる点において、たとえば、ビットストリーム生成ユニット42内で、フレーム810A〜810Eの各々を符号化するための状態情報を維持する状態機械402を含み得る。
【0318】
[0197]オーディオ復号デバイス24は、たとえば、ビットストリーム抽出ユニット72内で、状態機械402に基づいてシンタックス要素(その一部がビットストリーム21において明示的に指定されない)を出力する同様の状態機械402を同様に含み得る。オーディオ復号デバイス24の状態機械402は、オーディオ符号化デバイス20の状態機械402の動作と同様の方法で動作することができる。したがって、オーディオ復号デバイス24の状態機械402は、状態情報を維持し、config814と、
図8の例では、フレーム810B〜810Dの復号とに基づいて、状態情報を更新することができる。状態情報に基づいて、ビットストリーム抽出ユニット72は、状態機械402によって維持された状態情報に基づいて、フレーム810Eを抽出することができる。状態情報は、オーディオ符号化デバイス20がフレーム810Eの様々なトランスポートチャネルを復号するときに利用することができる、いくつかの暗黙的なシンタックス要素を与えることができる。
【0319】
[0198]上記の技法は、任意の数の異なる状況およびオーディオエコシステムに関して実行され得る。いくつかの例示的な状況が以下で説明されるが、本技法はそれらの例示的な状況に限定されるべきではない。1つの例示的なオーディオエコシステムは、オーディオコンテンツと、映画スタジオと、音楽スタジオと、ゲーミングオーディオスタジオと、チャネルベースオーディオコンテンツと、コーディングエンジンと、ゲームオーディオステムと、ゲームオーディオコーディング/レンダリングエンジンと、配信システムとを含み得る。
【0320】
[0199]映画スタジオ、音楽スタジオ、およびゲーミングオーディオスタジオは、オーディオコンテンツを受信することができる。いくつかの例では、オーディオコンテンツは、獲得物の出力を表し得る。映画スタジオは、デジタルオーディオワークステーション(DAW)を使用することなどによって、(たとえば、2.0、5.1、および7.1の)チャネルベースオーディオコンテンツを出力することができる。音楽スタジオは、DAWを使用することなどによって、(たとえば、2.0、および5.1の)チャネルベースオーディオコンテンツを出力することができる。いずれの場合も、コーディングエンジンは、配信システムによる出力のために、チャネルベースオーディオコンテンツベースの1つまたは複数のコーデック(たとえば、AAC、AC3、Dolby True HD、Dolby Digital Plus、およびDTS Master Audio)を受信し符号化することができる。ゲーミングオーディオスタジオは、DAWを使用することなどによって、1つまたは複数のゲームオーディオステムを出力することができる。ゲームオーディオコーディング/レンダリングエンジンは、配信システムによる出力のために、オーディオステムをチャネルベースオーディオコンテンツへとコーディングおよびまたはレンダリングすることができる。本技法が実行され得る別の例示的な状況は、放送録音オーディオオブジェクトと、プロフェッショナルオーディオシステムと、消費者向けオンデバイスキャプチャと、HOAオーディオフォーマットと、オンデバイスレンダリングと、消費者向けオーディオと、TV、およびアクセサリと、カーオーディオシステムとを含み得る、オーディオエコシステムを備える。
【0321】
[0200]放送録音オーディオオブジェクト、プロフェッショナルオーディオシステム、および消費者向けオンデバイスキャプチャはすべて、HOAオーディオフォーマットを使用して、それらの出力をコーディングすることができる。このようにして、オーディオコンテンツは、オンデバイスレンダリング、消費者向けオーディオ、TV、およびアクセサリ、ならびにカーオーディオシステムを使用して再生され得る単一の表現へと、HOAオーディオフォーマットを使用してコーディングされ得る。言い換えれば、オーディオコンテンツの単一の表現は、オーディオ再生システム16など、汎用的なオーディオ再生システムにおいて(すなわち、5.1、7.1などの特定の構成を必要とすることとは対照的に)再生され得る。
【0322】
[0201]本技法が実行され得る状況の他の例には、獲得要素と再生要素とを含み得るオーディオエコシステムがある。獲得要素は、有線および/またはワイヤレス獲得デバイス(たとえば、Eigenマイクロフォン)、オンデバイスサラウンドサウンドキャプチャ、ならびにモバイルデバイス(たとえば、スマートフォンおよびタブレット)を含み得る。いくつかの例では、有線および/またはワイヤレス獲得デバイスは、有線および/またはワイヤレス通信チャネルを介してモバイルデバイスに結合され得る。
【0323】
[0202]本開示の1つまたは複数の技法によれば、モバイルデバイスが音場を獲得するために使用され得る。たとえば、モバイルデバイスは、有線および/もしくはワイヤレス獲得デバイス、ならびに/またはオンデバイスサラウンドサウンドキャプチャ(たとえば、モバイルデバイスに統合された複数のマイクロフォン)を介して、音場を獲得することができる。モバイルデバイスは次いで、再生要素のうちの1つまたは複数による再生のために、獲得された音場をHOA係数へとコーディングすることができる。たとえば、モバイルデバイスのユーザは、ライブイベント(たとえば、会合、会議、劇、コンサートなど)を録音し(その音場を獲得し)、録音をHOA係数へとコーディングすることができる。
【0324】
[0203]モバイルデバイスはまた、HOAコーディングされた音場を再生するために、再生要素のうちの1つまたは複数を利用することができる。たとえば、モバイルデバイスは、HOAコーディングされた音場を復号し、再生要素のうちの1つまたは複数に信号を出力することができ、このことは再生要素のうちの1つまたは複数に音場を再作成させる。一例として、モバイルデバイスは、1つまたは複数のスピーカー(たとえば、スピーカーアレイ、サウンドバーなど)に信号を出力するために、ワイヤレスおよび/またはワイヤレス通信チャネルを利用することができる。別の例として、モバイルデバイスは、1つもしくは複数のドッキングステーションおよび/または1つもしくは複数のドッキングされたスピーカー(たとえば、スマート自動車および/またはスマート住宅の中のサウンドシステム)に信号を出力するために、ドッキング解決手段を利用することができる。別の例として、モバイルデバイスは、ヘッドフォンのセットに信号を出力するために、たとえばリアルなバイノーラルサウンドを作成するために、ヘッドフォンレンダリングを利用することができる。
【0325】
[0204]いくつかの例では、特定のモバイルデバイスは、3D音場を獲得することと、より後の時間に同じ3D音場を再生することの両方を行うことができる。いくつかの例では、モバイルデバイスは、3D音場を獲得し、3D音場をHOAへと符号化し、符号化された3D音場を再生のために1つまたは複数の他のデバイス(たとえば、他のモバイルデバイスおよび/または他の非モバイルデバイス)に送信することができる。
【0326】
[0205]本技法が実行され得るYまた別の状況は、オーディオコンテンツと、ゲームスタジオと、コーディングされたオーディオコンテンツと、レンダリングエンジンと、配信システムとを含み得る、オーディオエコシステムを含む。いくつかの例では、ゲームスタジオは、HOA信号の編集をサポートし得る1つまたは複数のDAWを含み得る。たとえば、1つまたは複数のDAWは、1つまたは複数のゲームオーディオシステムとともに動作する(たとえば、機能する)ように構成され得る、HOAプラグインおよび/またはツールを含み得る。いくつかの例では、ゲームスタジオは、HOAをサポートする新しいステムフォーマットを出力することができる。いずれの場合も、ゲームスタジオは、配信システムによる再生のために音場をレンダリングすることができるレンダリングエンジンに、コーディングされたオーディオコンテンツを出力することができる。
【0327】
[0206]本技法はまた、例示的なオーディオ獲得デバイスに関して実行され得る。たとえば、本技法は、3D音場を録音するようにまとめて構成される複数のマイクロフォンを含み得る、Eigenマイクロフォンに関して実行され得る。いくつかの例では、Eigenマイクロフォンの複数のマイクロフォンは、約4cmの半径を伴う実質的に球状の球体の表面に配置され得る。いくつかの例では、オーディオ符号化デバイス20は、マイクロフォンから直接ビットストリーム21を出力するために、Eigenマイクロフォンに統合され得る。
【0328】
[0207]別の例示的なオーディオ獲得状況は、1つまたは複数のEigenマイクロフォンなど、1つまたは複数のマイクロフォンから信号を受信するように構成され得る、製作トラックを含み得る。製作トラックはまた、
図3のオーディオ符号化器20などのオーディオ符号化器を含み得る。
【0329】
[0208]モバイルデバイスはまた、いくつかの場合には、3D音場を録音するようにまとめて構成される複数のマイクロフォンを含み得る。言い換えれば、複数のマイクロフォンは、X、Y、Zのダイバーシティを有し得る。いくつかの例では、モバイルデバイスは、モバイルデバイスの1つまたは複数の他のマイクロフォンに関してX、Y、Zのダイバーシティを提供するように回転され得るマイクロフォンを含み得る。モバイルデバイスはまた、
図3のオーディオ符号化器20などのオーディオ符号化器を含み得る。
【0330】
[0209]耐衝撃性のビデオキャプチャデバイスは、3D音場を録音するようにさらに構成され得る。いくつかの例では、耐衝撃性のビデオキャプチャデバイスは、ある活動に関与するユーザのヘルメットに取り付けられ得る。たとえば、耐衝撃性のビデオキャプチャデバイスは、急流下りをしているユーザのヘルメットに取り付けられ得る。このようにして、耐衝撃性のビデオキャプチャデバイスは、ユーザの周りのすべての活動(たとえば、ユーザの後ろでくだける水、ユーザの前で話している別の乗員など)を表す3D音場をキャプチャすることができる。
【0331】
[0210]本技法はまた、3D音場を録音するように構成され得る、アクセサリで増強されたモバイルデバイスに関して実行され得る。いくつかの例では、モバイルデバイスは、上記で説明されたモバイルデバイスと同様であり得るが、1つまたは複数のアクセサリが追加されている。たとえば、Eigenマイクロフォンが、アクセサリで増強されたモバイルデバイスを形成するために、上述されたモバイルデバイスに取り付けられ得る。このようにして、アクセサリで増強されたモバイルデバイスは、アクセサリで増強されたモバイルデバイスと一体のサウンドキャプチャ構成要素をただ使用するよりも高品質なバージョンの3D音場をキャプチャすることができる。
【0332】
[0211]本開示で説明される本技法の様々な態様を実行することができる例示的なオーディオ再生デバイスが、以下でさらに説明される。本開示の1つまたは複数の技法によれば、スピーカーおよび/またはサウンドバーは、あらゆる任意の構成で配置され得るが、一方で、依然として3D音場を再生する。その上、いくつかの例では、ヘッドフォン再生デバイスが、有線接続またはワイヤレス接続のいずれかを介して復号器24に結合され得る。本開示の1つまたは複数の技法によれば、音場の単一の汎用的な表現が、スピーカー、サウンドバー、およびヘッドフォン再生デバイスの任意の組合せで音場をレンダリングするために利用され得る。
【0333】
[0212]いくつかの異なる例示的なオーディオ再生環境はまた、本開示で説明される技法の様々な態様を実行するために好適であり得る。たとえば、5.1スピーカー再生環境、2.0(たとえば、ステレオ)スピーカー再生環境、フルハイトフロントラウドスピーカーを伴う9.1スピーカー再生環境、22.2スピーカー再生環境、16.0スピーカー再生環境、自動車スピーカー再生環境、およびイヤバッド再生環境を伴うモバイルデバイスは、本開示で説明される技法の様々な態様を実行するために好適な環境であり得る。
【0334】
[0213]本開示の1つまたは複数の技法によれば、音場の単一の汎用的な表現が、上記の再生環境のいずれかにおいて音場をレンダリングするために利用され得る。加えて、本開示の技法は、レンダードが、上記で説明されたもの以外の再生環境での再生のために、汎用的な表現から音場をレンダリングすることを可能にする。たとえば、設計上の考慮事項が、7.1スピーカー再生環境に従ったスピーカーの適切な配置を妨げる場合(たとえば、右側のサラウンドスピーカーを配置することが可能ではない場合)、本開示の技法は、再生が6.1スピーカー再生環境で達成され得るように、レンダーが他の6つのスピーカーとともに補償することを可能にする。
【0335】
[0214]その上、ユーザは、ヘッドフォンを装着しながらスポーツの試合を見ることができる。本開示の1つまたは複数の技法によれば、スポーツの試合の3D音場が獲得され得(たとえば、1つまたは複数のEigenマイクロフォンが野球場の中および/または周りに配置され得)、3D音場に対応するHOA係数が取得され復号器に送信され得、復号器がHOA係数に基づいて3D音場を再構成して、再構成された3D音場をレンダラに出力することができ、レンダラが再生環境のタイプ(たとえば、ヘッドフォン)についての指示を取得し、再構成された3D音場を、ヘッドフォンにスポーツの試合の3D音場の表現を出力させる信号へとレンダリングすることができる。
【0336】
[0215]上記で説明された様々な場合の各々において、オーディオ符号化デバイス20は、ある方法を実行し、またはさもなければ、オーディオ符号化デバイス20が実行するように構成される方法の各ステップを実行するための手段を備え得ることを理解されたい。いくつかの場合には、これらの手段は1つまたは複数のプロセッサを備え得る。いくつかの場合には、1つまたは複数のプロセッサは、非一時的コンピュータ可読記憶媒体に記憶される命令によって構成される、専用のプロセッサを表し得る。言い換えれば、符号化の例のセットの各々における本技法の様々な態様は、実行されると、1つまたは複数のプロセッサに、オーディオ符号化デバイス20が実行するように構成されている方法を実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体を提供し得る。
【0337】
[0216]1つまたは複数の例において、前述の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコード上に記憶され、またはこれを介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。データ記憶媒体は、本開示で説明される技法の実装のために命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0338】
[0217]同様に、上記で説明された様々な場合の各々において、オーディオ復号デバイス24は、ある方法を実行し、またはさもなければ、オーディオ復号デバイス24が実行するように構成される方法の各ステップを実行するための手段を備え得ることを理解されたい。いくつかの場合には、これらの手段は1つまたは複数のプロセッサを備え得る。いくつかの場合には、1つまたは複数のプロセッサは、非一時的コンピュータ可読記憶媒体に記憶される命令によって構成される、専用のプロセッサを表し得る。言い換えれば、符号化の例のセットの各々における本技法の様々な態様は、実行されると、1つまたは複数のプロセッサに、オーディオ復号デバイス24が実行するように構成されている方法を実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体を提供し得る。
【0339】
[0218]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【0340】
[0219]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の同等の集積回路またはディスクリート論理回路などの1つもしくは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つもしくは複数の回路または論理要素で十分に実装され得る。
【0341】
[0220]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットが説明されるが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記の1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【0342】
[0221]本開示の様々な態様が説明された。本技法のこれらおよび他の態様は、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
効率的なビット使用の方法であって、
球面調和関数領域における直交空間軸を表すベクトルを備えるビットストリームを取得することを備え、前記ビットストリームは、前記ベクトルを圧縮するときに使用される情報を示す少なくとも1つのシンタックス要素を、以前のフレームから、再使用するかどうかのためのインジケータをさらに備える、
方法。
[C2]
前記インジケータは、前記ベクトルを圧縮するときに使用される量子化モードを示すシンタックス要素の1つまたは複数のビットを備える、
C1に記載の方法。
[C3]
前記シンタックス要素の前記1つまたは複数のビットは、ゼロ値に設定されるとき、前記以前のフレームからの前記少なくとも1つのシンタックス要素を再使用することを示す、
C2に記載の方法。
[C4]
前記量子化モードは、ベクトル量子化モードを備える、
C2に記載の方法。
[C5]
前記量子化モードは、ハフマンコーディングなしのスカラー量子化モードを備える、
C2に記載の方法。
[C6]
前記量子化モードは、ハフマンコーディングありのスカラー量子化モードを備える、
C2に記載の方法。
[C7]
前記シンタックス要素の一部分は、前記シンタックス要素の最上位ビットと前記シンタックス要素の第2の最上位ビットとを備える、
C2に記載の方法。
[C8]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用される以前のモードを示すシンタックス要素を備える、
C1に記載の方法。
[C9]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるハフマンテーブルを示すシンタックス要素を備える、
C1に記載の方法。
[C10]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルが対応する圧縮カテゴリーを識別するカテゴリー識別子を示すシンタックス要素を備える、
C1に記載の方法。
[C11]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルの要素が正の値であるか負の値であるかを示すシンタックス要素を備える、
C1に記載の方法。
[C12]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるコード化ベクトルの数を示すシンタックス要素を備える、
C1に記載の方法。
[C13]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるベクトル量子化コードブックを示す前記以前のフレームからのシンタックス要素を備える、
C1に記載の方法。
[C14]
前記ベクトルの前記圧縮されたバージョンは、前記ベクトルの要素の残差値を表すために、少なくとも部分的に、ハフマンコードを使用して前記ビットストリームにおいて表される、
C1に記載の方法。
[C15]
前記ベクトルを取得するために高次アンビソニックオーディオデータを分解することと、
前記ビットストリームを取得するために前記ビットストリームにおける前記ベクトルを指定することと
をさらに備える、C1に記載の方法。
[C16]
前記ベクトルに対応するオーディオオブジェクトを、前記ビットストリームから、取得することと、
高次アンビソニックオーディオデータを再構成するために、前記ベクトルと前記オーディオオブジェクトを組み合わせることと
をさらに備える、C1に記載の方法。
[C17]
前記ベクトルの前記圧縮は、前記ベクトルの量子化を含む、
C1に記載の方法。
[C18]
効率的なビット使用を実行するように構成されたデバイスであって、
球面調和関数領域における直交空間軸を表すベクトルを備えるビットストリームを取得すること、ここにおいて、前記ビットストリームは、前記ベクトルを圧縮するときに使用される情報を示す少なくとも1つのシンタックス要素を、以前のフレームから、再使用するかどうかのためのインジケータをさらに備える、と、
前記ビットストリームを記憶するように構成されるメモリと
を備える、デバイス。
[C19]
前記インジケータは、前記ベクトルを圧縮するときに使用される量子化モードを示すシンタックス要素の1つまたは複数のビットを備える、
C18に記載のデバイス。
[C20]
前記シンタックス要素の前記1つまたは複数のビットは、ゼロ値に設定されるとき、前記以前のフレームからの前記少なくとも1つのシンタックス要素を再使用することを示す、
C19に記載のデバイス。
[C21]
前記量子化モードは、ベクトル量子化モードを備える、
C19に記載のデバイス。
[C22]
前記量子化モードは、ハフマンコーディングなしのスカラー量子化モードを備える、
C19に記載のデバイス。
[C23]
前記量子化モードは、ハフマンコーディングありのスカラー量子化モードを備える、
C19に記載のデバイス。
[C24]
前記シンタックス要素の一部分は、前記シンタックス要素の最上位ビットと前記シンタックス要素の第2の最上位ビットとを備える、
C19に記載のデバイス。
[C25]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用される以前のモードを示すシンタックス要素を備える、
C18に記載のデバイス。
[C26]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるハフマンテーブルを示すシンタックス要素を備える、
C18に記載のデバイス。
[C27]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるハフマンテーブルを示すシンタックス要素を備える、
C18に記載のデバイス。
[C28]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルの要素が正の値であるか負の値であるかを示すシンタックス要素を備える、
C18に記載のデバイス。
[C29]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるコード化ベクトルの数を示すシンタックス要素を備える、
C18に記載のデバイス。
[C30]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるベクトル量子化コードブックを示す前記以前のフレームからのシンタックス要素を備える、
C18に記載のデバイス。
[C31]
前記ベクトルの前記圧縮されたバージョンは、前記ベクトルの要素の残差値を表すために、少なくとも部分的に、ハフマンコードを使用して前記ビットストリームにおいて表される、
C18に記載のデバイス。
[C32]
前記1つまたは複数のプロセッサは、前記ベクトルを取得するために高次アンビソニックオーディオデータを分解することと、前記ビットストリームを取得するために前記ビットストリームにおける前記ベクトルを指定することとを行うようにさらに構成される、
C18に記載のデバイス。
[C33]
前記1つまたは複数のプロセッサは、前記ベクトルに対応するオーディオオブジェクトを、前記ビットストリームから、取得することと、高次アンビソニックオーディオデータを再構成するために、前記ベクトルと前記オーディオオブジェクトを組み合わせることとを行うようにさらに構成される、
C1に記載の方法。
[C34]
前記ベクトルの前記圧縮は、前記ベクトルの量子化を含む、
C18に記載のデバイス。
[C35]
効率的なビット使用のデバイスであって、
球面調和関数領域における直交空間軸を表すベクトルを備えるビットストリームを取得するための手段、ここにおいて、前記ビットストリームは、前記ベクトルを圧縮するときに使用される情報を示す少なくとも1つのシンタックス要素を、以前のフレームから、再使用するかどうかのためのインジケータをさらに備える、と、
前記インジケータを記憶するための手段と
を備える、デバイス。
[C36]
前記インジケータは、前記ベクトルを圧縮するときに使用される量子化モードを示すシンタックス要素の1つまたは複数のビットを備える、
C35に記載のデバイス。
[C37]
前記シンタックス要素の前記1つまたは複数のビットは、ゼロ値に設定されるとき、前記以前のフレームからの前記少なくとも1つのシンタックス要素を再使用することを示す、
C36に記載のデバイス。
[C38]
前記量子化モードは、ベクトル量子化モードを備える、
C36に記載のデバイス。
[C39]
前記量子化モードは、ハフマンコーディングなしのスカラー量子化モードを備える、
C36に記載のデバイス。
[C40]
前記量子化モードは、ハフマンコーディングありのスカラー量子化モードを備える、
C36に記載のデバイス。
[C41]
前記シンタックス要素の一部分は、前記シンタックス要素の最上位ビットと前記シンタックス要素の第2の最上位ビットとを備える、
C36に記載のデバイス。
[C42]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用される以前のモードを示すシンタックス要素を備える、
C35に記載のデバイス。
[C43]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるハフマンテーブルを示すシンタックス要素を備える、
C35に記載のデバイス。
[C44]
前記以前のフレームからの前記シンタックス要素は、ベクトルが対応する圧縮カテゴリーを識別するカテゴリー識別子を示すシンタックス要素を備える、
C35に記載のデバイス。
[C45]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルの要素が正の値であるか負の値であるかを示すシンタックス要素を備える、
C35に記載のデバイス。
[C46]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるコード化ベクトルの数を示すシンタックス要素を備える、
C35に記載のデバイス。
[C47]
前記以前のフレームからの前記シンタックス要素は、前記ベクトルを圧縮するときに使用されるベクトル量子化コードブックを示す前記以前のフレームからのシンタックス要素を備える、
C35に記載のデバイス。
[C48]
前記ベクトルの前記圧縮されたバージョンは、前記ベクトルの要素の残差値を表すために、少なくとも部分的に、ハフマンコードを使用して前記ビットストリームにおいて表される、
C35に記載のデバイス。
[C49]
前記ベクトルを取得するために高次アンビソニックオーディオデータを分解するための手段と、
前記ビットストリームを取得するために前記ビットストリームにおける前記ベクトルを指定するための手段と
をさらに備える、C35に記載のデバイス。
[C50]
前記ベクトルに対応するオーディオオブジェクトを、前記ビットストリームから、取得するための手段と、
高次アンビソニックオーディオデータを再構成するために、前記ベクトルと前記オーディオオブジェクトを組み合わせるための手段と
をさらに備える、C35に記載のデバイス。
[C51]
前記ベクトルの前記圧縮は、前記ベクトルの量子化を含む、
C35に記載のデバイス。
[C52]
実行されると、1つまたは複数のプロセッサに、
球面調和関数領域における直交空間軸を表すベクトルを備えるビットストリームを取得することを行わせる命令を記憶し、前記ビットストリームは、前記ベクトルを圧縮するときに使用される情報を示す少なくとも1つのシンタックス要素を、以前のフレームから、再使用するかどうかのためのインジケータをさらに備える、
非一時的コンピュータ可読記憶媒体。