CN114097028A - 用于编解码音频流中的元数据及用于灵活对象内和对象间比特率适配的方法和*** - Google Patents
用于编解码音频流中的元数据及用于灵活对象内和对象间比特率适配的方法和*** Download PDFInfo
- Publication number
- CN114097028A CN114097028A CN202080049817.1A CN202080049817A CN114097028A CN 114097028 A CN114097028 A CN 114097028A CN 202080049817 A CN202080049817 A CN 202080049817A CN 114097028 A CN114097028 A CN 114097028A
- Authority
- CN
- China
- Prior art keywords
- metadata
- audio
- codec
- coding
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000006978 adaptation Effects 0.000 title description 42
- 230000005236 sound signal Effects 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000013139 quantization Methods 0.000 claims description 26
- 230000011664 signaling Effects 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 11
- 239000000872 buffer Substances 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 5
- 238000012952 Resampling Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 11
- 238000009877 rendering Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/002—Dynamic bit allocation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种响应于具有相关联的元数据的音频流对包括音频对象的基于对象的音频信号进行编解码的***和方法。在该***和方法中,音频流处理器分析音频流。元数据处理器响应于来自音频流处理器的分析的、关于音频流的信息,以对元数据进行编解码。元数据处理器使用用于控制元数据编解码比特预算的逻辑。编码器对音频流进行编解码。
Description
技术领域
本公开涉及声音编解码(code),更具体地,涉及用于对基于对象的音频(例如语音、音乐或一般音频声音)进行数字编解码的技术。具体地,本公开涉及用于响应于具有相关联的元数据的音频流对包括音频对象的基于对象的音频信号进行编解码的***和方法以及进行解码的***和方法。
在本公开和所附权利要求中:
(a)术语“基于对象的音频”旨在将复杂的音频听觉场景表示为单独的元素的集合,也称为音频对象。此外,如上所述,“基于对象的音频”可以包括例如语音、音乐或一般音频声音。
(b)术语“音频对象”旨在表示具有相关联的元数据的音频流。例如,在本公开中,“音频对象”被称为具有元数据的独立音频流(independent audio stream withmetadata,ISm)。
(c)术语“音频流”旨在表示比特流中的音频波形,例如语音、音乐或一般音频声音,并且可以包括一个信道(mono),也可以考虑包括两个信道(stereo)。“mono”是“单信道”的缩写,“stereo”是“立体声”的缩写。
(d)术语“元数据”旨在表示描述音频流和用于将原始或编解码的音频对象转化为再现***的艺术内涵的一组信息。元数据通常描述每个单个音频对象的空间属性,诸如位置、方向、音量、宽度等。在本公开的上下文中,考虑两组元数据:
-输入元数据:用作编解码器输入的未量化的元数据表示;本公开不限于输入元数据的特定格式;和
-编解码元数据:形成从编码器传输到解码器的比特流的一部分的量化的和编解码的元数据。
(e)术语“音频格式”旨在指定实现沉浸式音频体验的方法。
(f)术语“再现***”旨在表示解码器中的元件,该元件能够使用再现侧的传输的元数据和艺术内涵在例如但不限于收听者周围的3D(三维)音频空间中渲染(render)音频对象。在元数据可以例如响应于头部跟踪设备反馈而被动态地修改的情况下,可以对目标扬声器布局(例如5.1环绕声)或耳机执行渲染。可以考虑其他类型的渲染。
背景技术
在过去的几年里,音频的生成、记录、表示、编解码、传输和再现正朝着对收听者而言增强的、交互式和沉浸式体验的方向发展。沉浸式体验可以被描述为,例如,当声音从四面八方传来时,深度参与或介入声音场景的状态。在沉浸式音频(也称为3D音频)中,考虑了广泛的声音特征,如音色、方向性、混响、透明度和(听觉)宽敞度的准确性,声音图像在收听者周围的所有三维空间中再现。沉浸式音频是针对给定的再现***(即扬声器配置、集成再现***(声音条)或耳机)产生的。然后音频再现***的交互性可以包括例如调节声音级别、改变声音位置或选择不同语言进行再现的能力。
有三种基本方法(以下也称为音频格式)来实现沉浸式音频体验。
第一种方法是基于信道的音频,其中在一个麦克风与特定扬声器布局中的一个音频信道相对应时,使用多个间隔开的麦克风来捕捉来自不同方向的声音。每个记录的信道都被提供给特定位置的扬声器。基于信道的音频的示例包括例如立体声、5.1环绕、5.1+4等。
第二种方法是基于场景的音频,其通过维度分量的组合将局部空间上的期望声场表示为时间的函数。在声场必须在渲染再现***处被转换成所选择的扬声器布局时,表示基于场景的音频的信号独立于音频源的位置。基于场景的音频的示例是环境声学。
第三种也是最后一种沉浸式音频方法是基于对象的音频,其将听觉场景表示为一组单独的音频元素(例如歌手、鼓、吉他),伴随有关于例如它们在音频场景中的位置的信息,使得它们可以在再现***处被渲染到它们的预期位置。这为基于对象的音频提供了极大的灵活性和交互性,因为每个对象都是离散的,可以单独操作。
上述音频格式中的每一个音频格式都有利也有弊。因此,常见的是,在音频***中不仅使用一种特定的格式,而是它们可能在复杂的音频***中被组合以创建沉浸式听觉场景。示例可以是将基于场景或基于信道的音频与基于对象的音频相结合的***,例如具有很少离散音频对象的环境声学。
本公开在以下描述中呈现了编码和解码基于对象的音频的框架。这种框架可以是用于基于对象的音频格式编解码的独立***,或者它可以形成包含其他音频格式的编解码和/或其组合的复杂的沉浸式编解码器的一部分。
发明内容
根据第一方面,本公开提供了一种用于响应于具有相关联的元数据的音频流对包括音频对象的基于对象的音频信号进行编解码的***,包括:音频流处理器,用于分析音频流;元数据处理器,响应于来自音频流处理器的分析的关于音频流的信息,以对元数据进行编解码,其中元数据处理器使用用于控制对元数据进行编解码的元数据编解码比特预算的逻辑,以及编码器,用于对音频流进行编解码。
本公开还提供了一种用于响应于具有相关联的元数据的音频流对包括音频对象的基于对象的音频信号进行编解码的方法,包括:分析音频流;使用(a)来自音频流的分析的、关于音频流的信息和(b)用于控制元数据编解码比特预算的逻辑来对元数据进行编解码;以及对音频流进行编码。
根据第三方面,提供了一种用于编解码包括基于场景的音频、多信道和基于对象的音频信号的复杂音频听觉场景的编码器设备,包括上述定义的对基于对象的音频信号进行编解码的***。
本公开还提供了一种用于编解码包括基于场景的音频、多信道和基于对象的音频信号的复杂音频听觉场景进行编码方法,包括上述对基于对象的音频信号进行编解码的方法。
在阅读以下仅参考附图作为示例给出的对其说明性实施例的非限制性描述后,用于对基于对象的音频信号进行编解码的***和方法以及对对象的音频信号进行解码的***和方法的前述和其他目的、优点和特征将变得更加明显。
附图说明
在附图中:
图1是同时示出了对基于对象的音频信号进行编解码的***和对基于对象的音频信号进行编解码的对应的方法的示意性框图;
图2是示出对一个元数据参数的比特流进行编解码的不同场景的图;
图3a是示出了在不使用对象间元数据编解码逻辑的情况下,三(3)个音频对象的元数据参数的绝对编解码标志flagabs的值的曲线图,并且图3b是示出了使用对象间元数据编解码逻辑的情况下,三(3)个音频对象的元数据参数的绝对编解码标志flagabs的值的曲线图,其中箭头指示多个绝对编解码标志的值等于1的帧;
图4是示出三(3)个核心编码器(core-encoder)的比特率适配的示例的曲线图;
图5是示出基于ISm(具有元数据的独立音频流)重要性逻辑的比特率适配的示例的曲线图;
图6是示出从图1的编解码***传输到图7的解码***的比特流的结构的示意图;
图7是同时示出了用于响应于具有相关联的元数据的音频流对音频对象进行解码的***以及对音频对象进行解码的对应的方法的示意性框图;以及
图8是实现对基于对象的音频信号进行编解码的***和方法以及对基于对象的音频信号进行解码的***和方法的硬件组件的示例配置的简化框图。
具体实施方式
本公开提供了用于对元数据进行编解码的机制的示例。本公开还提供了用于灵活的对象内和对象间比特率适配的机制,即,尽可能高效地分配可用比特率的机制。在本公开中,进一步认为比特率是固定的(恒定的)。然而,类似地考虑适配比特率也在本公开的范围内,例如(a)在基于适配比特率的编解码器中,或者(b)作为对以固定总比特率编解码的音频格式的组合进行编解码的结果。
在本公开中没有描述如何在所谓的“核心编码器”中实际编解码音频流。通常,对一个音频流进行编解码的核心编码器可以是使用适配比特率所编解码的任意单信道编解码器。示例是基于参考文献[1]中描述的EVS编解码器的编解码器,其具有例如参考文献[2]中描述的灵活且有效地分布在核心编码器的模块之间的波动比特预算。参考文献[1]和[2]的全部内容通过引用结合于此。
1.音频对象的编解码的框架
作为非限制性示例,本公开考虑了一种在固定恒定ISm总比特率(被称为ism_total_brate)的情况下,对支持多个音频对象(例如多达16个音频对象)同时进行编解码的框架,被考虑用于编解码音频对象,该音频对象包括音频流及其相关联的元数据。应当注意,对于至少一些音频对象,例如在非音频内容的情况下,元数据不必被传输。电影、电视节目(TV show)和其他视频中的非剧情性的声音(non-diegetic sound)是角色听不到的声音。配乐(soundtrack)是非剧情性的声音的示例,因为听众是唯一能听到音乐的人。
在对框架中的音频格式的组合进行编解码的情况下,例如具有两(2)个音频对象的环境音频格式,恒定总编解码器比特率,称为codec_total_brate,然后表示环境音频格式比特率(即对环境音频格式进行编码的比特率)和ISm总比特率ism_total_brate(即对音频对象进行编解码的比特率的总和,即具有相关联的元数据的音频流)的总和。
本公开考虑输入元数据的基本非限制性示例,该输入元数据包括两个参数,即方位角和仰角,这两个参数是为每个对象的每个音频帧存储的。在这个示例中,考虑了方位角范围在[180°,-180°)和仰角范围在[90°,-90°]。然而,考虑仅一个或多于两(2)个元数据参数也在本公开的范围内。
2.基于对象的编解码
图1是同时示出了包括多个处理块的***100,用于对基于对象的音频信号进行编解码,以及对基于对象的音频信号进行编解码的对应的方法150的示意性框图。
2.1输入缓冲
参考图1,用于对基于对象的音频信号进行编解码的方法150包括输入缓冲的操作151。为了执行输入缓冲的操作151,用于对基于对象的音频信号进行编解码的***100包括输入缓冲器101。
输入缓冲器101缓冲N个输入音频对象102,即具有与各自N个元数据相关联的N个音频流。N个输入音频对象102,包括N个音频流和与这N个音频流中每一个相关联的N个元数据,针对一帧而被缓冲,例如在20毫秒(ms)长的帧中。在声音信号处理领域中众所周知,声音信号以给定的采样频率被采样,并按被称为“帧”的这些样本的连续块进行处理,每个帧被分成多个“子帧”。
2.2音频流分析和前置预处理
仍然参考图1,用于对基于对象的音频信号进行编解码的方法150包括N个音频流的分析和前端预处理的操作153。为了执行操作153,用于对基于对象的音频信号进行编解码的***100包括音频流处理器103,用于例如并行地分析和预处理分别通过N个传输信道104从输入缓冲器101传输到音频流处理器103的缓冲的N个音频流。
由音频流处理器103执行的分析和前端预处理操作153可以包括例如以下子操作中的至少一个:时域瞬态检测、频谱分析、长期预测分析、音调跟踪和发声分析、语音/声音活动性检测(VAD/SAD)、带宽检测、噪声估计和信号分类(在非限制性实施例中,其可以包括(a)在例如ACELP核心编码器、TCX核心编码器、HQ核心编码器等之间的核心编码器选择),(b)在例如非活动核心编码器类型、无声核心编码器类型、有声核心编码器类型、通用核心编码器类型、过渡核心编码器类型和音频核心编码器类型等之间的信号类型分类,(c)语音/音乐分类等)。从分析和前端预处理操作153获得的信息通过la线121提供给配置和决策处理器106。参考文献[1]中描述了与EVS编解码器相关的前述子操作的示例,因此在本公开中将不再进一步描述。
2.3元数据分析、量化和编解码
用于对基于对象的音频信号进行编解码的图1的方法150包括元数据分析、量化和编解码的操作155。为了执行操作155,用于对基于对象的音频信号进行编解码的***100包括元数据处理器105。
2.3.1元数据分析
来自音频流处理器103的信号分类信息120(例如,在EVS编解码器(参见参考文献[1])中使用的VAD或localVAD标志)被提供给元数据处理器105。元数据处理器105包括N个音频对象中的每一个的元数据的分析器(未示出),以确定当前帧相对于该特定音频对象是非活动的(例如VAD=0)还是活动的(例如VAC≠0)。在非活动帧中,元数据处理器105没有对与该对象相关的元数据进行编解码。在活动帧中,使用可变比特率对该音频对象的元数据进行量化和编解码。关于元数据量化和编解码的更多细节将在下面的2.3.2和2.3.3节中提供。
2.3.2元数据量化
在所描述的非限制性说明性实施例中,图1的元数据处理器105在音频对象的量化和这些音频对象的元数据参数之间采用一定的相关性时,在循环中顺序地量化和编解码N个音频对象的元数据。
如上所述,在本公开中,考虑了两个元数据参数,方位角和仰角(包括在N个输入元数据中)。作为非限制性示例,元数据处理器105包括以下元数据参数索引的量化器(未示出),该量化器使用以下示例分辨率来减少正在使用的比特的数量:
-方位角参数:来自输入元数据文件的12比特方位角参数索引被量化为Baz比特索引(例如Baz=7)。给定最小和最大方位角极限(-180和+180°),(Baz=7)比特均匀标量量化器的量化步长是2.835°。
-仰角参数:来自输入元数据文件的12比特仰角参数索引被量化为Bel比特索引(例如Bel=6)。给定最小和最大仰角极限(-90°和+90°),(Bel=6)比特均匀标量量化器的量化步长是2.857°。
对N个元数据进行编解码的总元数据比特预算和用于量化元数据参数索引的总数量量化比特总数(即,量化索引粒度和因此的分辨率)可以取决于比特率codec_total_brate、ism_total_brate和/或element_brate(后者由与一个音频对象相关的元数据比特预算和/或核心编码器比特预算的总和产生)。
方位角参数和仰角参数可以表示为一个参数,例如通过球体上的点。在这种情况下,实现包括两个或更多参数的不同元数据在本公开的范围内。
2.3.3元数据编码
方位角索引和仰角索引一旦被量化,就可以由元数据处理器105的元数据编码器(未示出)使用绝对编解码或差分编解码来编解码。如所知道的,绝对编解码意味着对参数的当前值进行编解码。差分编解码意味着对参数的当前值和先前值之间的差值进行编解码。由于方位角参数和仰角参数的索引通常平滑地演变(即方位角或仰角位置的改变可以被认为是连续和平滑的),因此默认使用差分编解码。但是,可以使用绝对编解码,例如在以下情况下:
-参数索引的当前值和先前值之间的差值太大,与使用绝对编解码相比,这将导致使用差分编解码的比特的数量更高或相等(可能在例外情况下发生);
-在先前帧中没有编解码和发送元数据;
-差分编解码的连续帧太多。为了控制噪声信道中的解码(坏帧指示符,BFI=1)。例如,如果使用差分编解码的连续帧的数量高于使用不同编解码所编解码的连续帧的最大数量,则元数据编码器使用绝对编解码来编解码元数据参数索引。后一个连续帧的最大数设置为β。在非限制性说明性示例中,β=10帧。
元数据编码器产生1比特绝对编解码标志flagabs,以区分绝对编解码和差分编解码。
在绝对编解码的情况下,编解码标志flagabs被设置为1,后面是使用绝对编解码所编解码的Baz比特(或Bel比特)索引,其中Baz和Bel分别指上述要编解码的方位角参数和仰角参数的索引。
在差分编解码的情况下,1比特编解码标志flagabs被设置为0,之后是1比特零编解码标志flagzero,信令通知在当前帧和先前帧中Baz比特索引(分别地Bel比特索引)之间的差值Δ等于0。如果差值Δ不等于0,则元数据编码器通过产生1比特符号标志flagsign继续编解码,之后是差值索引,该差值索引的比特的数量是适配的,其形式例如是指示差值Δ值的一元代码。
图2是示出对一个元数据参数的比特流进行编解码的不同场景的图。
参考图2,注意并非所有的元数据参数总是在每个帧中传输。有些可能只在每个第y帧中传输,有些根本不发送,例如,当它们不演变时,它们不重要或者可用的比特预算低。参考图2,例如:
-在绝对编解码的情况下(图2的第一行),传输绝对编解码标志flagabs和Baz比特索引(分别地Bel比特索引);
-在当前帧和先前帧中的Baz比特索引(分别地Bel比特索引)之间的差值Δ等于0的差分编解码的情况下(图2的第二行),传输绝对编解码标志flagabs=0和零编解码标志flagzero=1;
-在当前帧和先前帧中的Baz比特索引(分别地Bel比特索引)之间具有正差值Δ的差分编解码的情况下(图2的第三行),传输绝对编解码标志flagabs=0、零编解码标志flagzero=0、符号标志flagsign=0和差值索引(1到Baz-3)比特索引(分别地1到(Bel-3)比特索引));和
-在当前帧和先前帧中的Baz比特索引(分别是Bel比特索引)之间具有负差值Δ的差分编解码的情况下(图2的最后一行),传输绝对编解码标志flagabs=0、零编解码标志flagzero=0、符号标志flagsign=1和差值索引(1到(Baz-3)比特索引(分别地1到(Bel-3)比特索引))。
2.3.3.1对象内元数据编解码逻辑
用于设置绝对或差分编解码的逻辑可以由对象内元数据编解码逻辑进一步扩展。具体地,为了限制帧之间元数据编解码比特预算波动的范围,从而避免核心编码器109剩余的比特预算过低,元数据编码器将给定帧中的绝对编解码限制为一个,或者通常限制为数量尽可能少的元数据参数。
在对方位角和仰角元数据参数进行编解码的非限制性示例中,如果方位角索引已经在同一帧中使用绝对编解码进行了编解码,则元数据编码器使用避免对在给定帧中仰角索引进行绝对编解码的逻辑。换句话说,一个音频对象的方位角参数和仰角参数(实际上)永远不会在同一帧中使用绝对编解码进行编解码。因此,如果方位角参数的绝对编解码标志flagabs.azi等于1,则仰角参数的绝对编解码标志flagabs.ele不在音频对象比特流中传输。
使对象内元数据编解码逻辑比特率相关也在本公开的范围内。例如,如果比特率足够大,则用于仰角参数的绝对编解码标志flagabs.ele和用于方位角参数的绝对编解码标志flagabs.azi可以在同一帧中传输。
2.3.3.2对象间元数据编解码逻辑
元数据编码器可以将类似的逻辑应用于不同音频对象的元数据编解码。所实现的对象间元数据编解码逻辑最小化在当前帧中使用绝对编解码进行编解码的不同音频对象的元数据参数的数量。这是通过元数据编码器主要通过控制元数据参数的帧计数器来实现的,该元数据参数使用从鲁棒性目的中选择的绝对编解码来编解码并且由参数β表示。作为非限制性示例,考虑音频对象的元数据参数缓慢且平滑地演变的场景。为了控制在噪声信道中的解码,其中使用绝对编解码每隔β帧对索引进行编解码,在帧M中使用绝对编解码对音频对象#1的方位角Baz比特索引进行编解码,在帧M+1中使用绝对编解码对音频对象#1的仰角Bel比特索引进行编解码,在帧M+2中使用绝对编解码对音频对象#2的方位角Baz比特索引进行编码,在帧M+3中使用绝对编解码对对象#2的仰角Bel比特索引进行编解码,等等。
图3a是示出在不使用对象间元数据编解码逻辑的情况下,三(3)个音频对象的元数据参数的绝对编解码标志flagabs的值的曲线图,而图3b是示出使用对象间元数据编解码逻辑的三(3)个音频对象的元数据参数的绝对编解码标志flagabs的值的曲线图。在图3a中,箭头表示多个绝对编解码标志的值等于1的帧。
更具体地,图3a示出了在不使用对象间元数据编解码逻辑的情况下,音频对象的两个元数据参数(在该特定示例中为方位角和仰角)的绝对编解码标志flagabs的值,而图3b示出了在实现了对象间元数据编解码逻辑的情况下的相同的值。图3a和图3b的曲线图对应于(从上到下):
-音频对象#1的音频流;
-音频对象#2的音频流;
-音频对象#3的音频流,
-音频对象#1的方位角参数的绝对编解码标志flagabs,azi;
-音频对象#1的仰角参数的绝对编解码标志flagabs,ele,
-音频对象#2的方位角参数的绝对编解码标志flagabs,azi;
-音频对象#2的仰角参数的绝对编解码标志flagabs,ele;
-音频对象#3的方位角参数的绝对编解码标志flagabs,azi;和
-音频对象#3的仰角参数的绝对编解码标志flagabs,ele。
从图3a可以看出,当不使用对象间元数据编解码逻辑时,在同一帧中,数个flagabs可能具有等于1的值(见箭头)。相比之下,图3b显示了当使用对象间元数据编解码逻辑时,在给定帧中,只有一个绝对标志flagabs的值等于1。
对象间元数据编解码逻辑也可以是比特率相关的。在这种情况下,例如,如果比特率足够大,则在给定的帧中,甚至当使用对象间元数据编解码逻辑时,不止一个绝对标志flagabs可以具有等于1的值。
对象间元数据编解码逻辑和对象内元数据编解码逻辑的技术优势是限制帧之间元数据编解码比特预算的波动范围。另一个技术优势是增加编解码器在噪声信道中的鲁棒性;当帧丢失时,那么只有来自使用绝对编解码所编解码的音频对象的有限数量的元数据参数会丢失。因此,从丢失帧传播的任何错误仅影响音频对象上的少量元数据参数,因此不会影响整个音频场景(或多个不同的信道)。
如上所述,与音频流分离地分析、量化和编解码元数据的总体技术优势在于,能够进行特别适配元数据的处理,并且在元数据编解码比特率、元数据编解码比特预算波动、噪声信道中的鲁棒性以及由于丢失帧引起的错误传播方面更加有效。
来自元数据处理器105的量化的和编解码的元数据112被提供给多路复用器110,用于***传输到远程解码器700(图7)的输出比特流111中。
一旦N个音频对象的元数据被分析、量化和编解码,来自元数据处理器105的关于对每个音频对象的元数据进行编解码的比特预算的信息107就会被提供给配置和决策处理器106(比特预算分配器),这将在下面的2.4节中更详细地描述。当在处理器106(比特预算分配器)中完成音频流之间的配置和比特率分配时,编解码继续进行后面将描述的进一步预处理158。最后,使用编码器对N个音频流进行编解码,该编码器包括例如N个波动比特率核心编码器109,诸如单核心编码器。
2.4每个信道的比特率配置和决策
对基于对象的音频信号进行编解码的图1的方法150包括关于每个传输信道104的比特率的配置和决策的操作156。为了执行操作156,用于对基于对象的音频信号进行编解码的***100包括形成比特预算分配器的配置和决策处理器106。
配置和决策处理器106(以下称为比特预算分配器106)使用比特率适配算法来分配用于对N个传输信道104中的N个音频流进行核心编码的可用比特预算。
配置和决策操作156的比特率适配算法包括由比特预算分配器106执行的以下子操作1-6:
1.每帧的ISm总比特预算bitsism是根据ISm总比特率ism_total_brate(或如果只对音频对象进行编解码,编解码器总比特率codec_total_brate)计算的,例如,使用以下关系:
假设帧长为20毫秒,分母50对应于每秒帧的数量。如果帧的大小不同于20毫秒,则值50将不同。
2.为N个音频对象定义的上述元素比特率element_brate(由与一个音频对象相关的元数据比特预算和核心编码器比特预算的总和产生)在给定编解码器总比特率的会话期间应该是恒定的,并且对于N个音频对象可能是相同的。“会话”被定义为例如电话呼叫或音频文件的离线压缩。使用例如以下关系,对音频流对象n=0,…,N-1计算对应的元素比特预算bitselement:
其中“mod”表示余数模运算。最后,使用N个音频对象的元素比特预算bitselement来设置ausio对象n=0,…,N-1的值element_brate,例如使用以下关系:
element_brate[n]=bitselement[n]*50
其中数字50,如已经提到的,对应于每秒帧的数量,假设20毫秒长的帧。
3.使用以下关系,对N个音频对象的每帧元数据比特预算bitsmeta,进行求和:
并且,所得到的值bitsmetal_all被添加到Ism通用信令比特预算bitsIsm_signalling中,从而产生编解码器侧比特预算:
bitsside=bitsmeta_all+bitsISm_signalling
4.每帧的编解码器侧比特预算bitsside在N个音频对象之间平均划分,并用于计算N个音频流中每一个的核心编码器比特预算bitsCoreCoder,例如使用以下关系:
与此同时,例如最后一个音频流的核心编码器比特预算最终可以被调整为使用例如以下关系来用尽所有可用的核心编码比特预算:
然后,对于n=0,…,N-1,使用例如以下关系,获得对应的总比特率total_brate,即在核心编码器中对一个音频流的比特率进行编解码:
total_brate[n]=bitsCoreCoder[n]*50
其中数字50同样对应于每秒帧的数量,假设20毫秒长的帧。
5.可以降低非活动帧(或具有非常低能量或没有有意义内容的帧)中的总比特率total_brate,并将其设置为相关音频流中的恒定值。然后,如此节省(save)的比特预算在帧中具有活动内容的音频流之间被平均地重新分配。这种比特预算的重新分配将在下面的第2.4.1节中进一步描述。
6.在活动帧中音频流(具有活动内容)的总比特率total_brate基于ISm重要性分类在这些音频流之间进一步调整。比特率的这种调整将在下面的2.4.2节中进一步描述。
当音频流都处于非活动段(或者没有有意义的内容)时,可以跳过上面最后两个子操作5和6。因此,当至少一个音频流具有活动内容时,采用在下面的部分2.4.1和2.4.2中描述的比特率适配算法。
2.4.1基于信号活动的比特率适配
在非活动帧(VAD=0)中,总比特率total_brate降低,并且节省的比特预算被重新分配,例如在活动帧(VAD≠0)中的音频流之间平均地分配。假设不需要在被分类为非活动的帧中对音频流进行波形编解码;音频对象可能被静音。在每个帧中使用的逻辑可以由以下子操作1-3表示:
1.对于特定的帧,为每个具有非活动内容的音频流n设置较低的核心编码器比特预算:
其中BVAD0是较低的、恒定的核心编码器比特预算将被设置在非活动帧中;例如BVAD0=140(对应于20毫秒帧的7kbps)或BVAD0=49(对应于20毫秒帧的2.45kbps)。
2.接下来,使用例如以下关系计算节省的比特预算:
3.最后,节省的比特预算被重新地分配,例如使用以下关系在给定帧中具有活动内容的音频流的核心编码器比特预算之间平均地分配:
其中NVAD1是具有活动内容的音频流的数量。具有活动内容的第一音频流的核心编码器比特预算最终使用例如以下关系增加:
最终为每个音频流n=0,…,N-1获得对应的核心编码器总比特率total_brate,如下所示:
total_brate′[n]=bitsCoreCoder′[n]*50
图4是示出了三(3)个核心编码器的比特率适配示例的曲线图。具体地,在图4中,第一行示出了音频流#1的核心编码器总比特率total_brate,第二行示出了音频流#2的核心编码器总比特率total_brate,第三行示出了音频流#3的核心编码器总比特率total_brate,第四行是音频流#1,第五行是音频流#2,第四行是音频流#3。
在图4的示例中,三(3)个核心编码器的总比特率total_brate的适配是基于VAD活动性(活动/非活动帧)的。从图4可以看出,大多数情况下,核心编码器的总比特率total_brate会有小的波动,这是波动侧比特预算bitsside的结果。然后,由于VAD活动性的结果,核心编码器的总比特率total_brate发生了罕见的实质性改变。
例如,参考图4,实例A)对应于音频流#1VAD活动性从1(活动)变为0(非活动)的帧。根据该逻辑,最小核心编码器总比特率total_brate被分配给音频对象#1,而活动音频对象#2和#3的核心编码器总比特率total_brate被增加。实例B)对应于音频流#3的VAD活动性从1(活动)变为0(非活动)而音频流#1的VAD活动性保持为0的帧。根据该逻辑,最小核心编码器总比特率total_brate被分配给音频流#1和#3,而活动音频流#2的核心编码器总比特率total_brate被进一步增加。
第2.4.1节的上述逻辑可以根据总比特率ism_total_brate来确定。例如,对于较高的总比特率ism_total_brate,上述子操作1中的比特预算BVAD0可以被设置得较高,而对于较低的总比特率ism_total_brate,比特预算BVAD0可以被设置得较低。
2.4.2基于ISm重要性的比特率适配
前面第2.4.1节中描述的逻辑导致在给定帧中具有活动内容(VAD=1)的每个音频流中具有可能相同的核心编码器比特率。然而,基于ISm重要性的分类(或者更一般地,基于指示当前帧中对特定音频对象进行编解码以获得解码合成的给定(满意)质量有多关键的度量),引入对象间核心-编码器比特率适配可能是有益的。
ISm重要性的分类可以基于多个参数和/或参数的组合,例如核心编码器类型(coder_type)、FEC(前向纠错)、声音信号分类(class)、语音/音乐分类决策和/或来自参考文献[1]中描述的开环ACELP/TCX(Algebraic Code-Excited Linear Prediction/Transform-Coded eXcitation,代数码激励线性预测/变换编解码激励)核心决策模块的SNR(信噪比)估计(snr_celp、snr_tcx)。其他参数可能用于确定ISm重要性的分类。
在非限制性示例中,ISm重要性的简单分类基于参考文献[1]中定义的核心编码器类型所实施的。为此目的,图1的比特预算分配器106包括分类器(未示出),用于对特定ISm流的重要性进行评级。因此,定义了四(4)个不同的ISm重要性分类classIsm:
-无元数据分类,ISM_NO_META:无元数据编解码的帧,例如,VAD=0的非活动帧;
-低重要性分类,ISM_LOW_IMP:coder_type=UNVOICED(没语音)或INACTIVE(非活动)的帧;
-中等重要性分类,ISM_MEDIUM_IMP:coder_type=VOICED(语音)的帧;
-高重要性分类,ISM_HIGH_IMP:coder_type=GENERIC(通常)的帧。
然后,比特预算分配器106在比特率适配算法(见上文第2.4节,子操作6)中使用ISm重要性分类,来将较高的比特预算分配给具有较高ISm重要性的音频流,并且将较低的比特预算分配给具有较低ISm重要性的音频流。因此,对于每个音频流n,n=0,…,N–1,比特预算分配器106使用以下比特率适配算法:
1.在分类为classISm=ISM_NO_META的帧中,分配恒定的低比特率BVAD0。
2.在分类为classISm=ISM_LOW_IMP的帧中,总比特率total_brate被降低,例如:
total_bratenew[n]=max(αlow*total_brate[n],Blow)
其中常数αlow被设置为低于1.0的值,例如0.6。那么该常数Blow表示特定配置的编解码器支持的最小比特率阈值,该阈值可以取决于例如编解码器的内部采样率、编解码音频带宽等。(有关这些值的更多详细信息,请见参考文献[1])。
3.在分类为classISm=ISM_MEDIUM_IMP的帧中:核心编码器的总比特率total_brate被降低,例如
total_bratenew[n]=max(αmed*total_brate[n],Blow)
其中常数αmed被设置为低于1.0但高于αlow,例如0.8的值。
4.在分类为classISm=ISM_HIGH_IMP的帧中,不使用比特率适配;
5.最后,节省的比特预算(旧(total_brate)和新(total_bratenew)总比特率之间的差值的总和)在帧中具有活动内容的音频流之间平均地重新分配。可以使用与第2.4.1节的子操作2和3中描述的相同的比特预算再分配逻辑。
图5是说明基于ISm重要性逻辑的比特率适配示例的曲线图。从上到下,图5的曲线图按时间顺序示出:
-音频对象#1的音频流的活动语音段;
-音频对象#2的音频流的活动语音段;
-在不使用比特率适配算法的情况下,音频对象#1的音频流的总比特率total_brate;
-在不使用比特率适配算法的情况下,音频对象#2的音频流的总比特率total_brate;
-当使用比特率适配算法时,音频对象#1的音频流的总比特率total_brate;以及
-当使用比特率适配算法时,音频对象#2的音频流的总比特率total_brate。
在图5的非限制性示例中,在两个音频对象(N=2)和固定恒定的总比特率ism_total_brate等于48kbps的情况下,当不使用比特率适配算法时,音频对象#1的活动帧中的核心编码器总比特率total_brate在23.45kbps和23.65kbps之间波动,而当使用比特率适配算法时,音频对象#1的活动帧中的核心编码器总比特率total_brate在19.15kbps和28.05kbps之间波动。类似地,在不使用比特率适配算法的情况下,音频对象#2的活动帧中的核心编码器总比特率total_brate在23.40kbps和23.65kbps之间波动,而在使用比特率适配算法的情况下,音频对象#2的活动帧中的核心编码器总比特率total_brate在19.10kbps和28.05kbps之间波动。由此获得音频流之间可用比特预算的更好、更有效的分布。
2.5预处理
参考图1,用于对基于对象的音频信号进行编解码的方法150包括对来自配置和决策处理器106(比特预算分配器)的通过N个传输信道104传送的N个音频流进行预处理的操作158。为了执行操作158,用于对基于对象的音频信号进行编解码的***100包括预处理器108。
一旦配置和决策处理器106(比特预算分配器)完成了N个音频流之间的配置和比特率分配,预处理器108就对N个音频流中的每一个执行顺序的进一步预处理158。这种预处理158可以包括,例如,进一步的信号分类、进一步的核心编码器选择(例如,在ACELP核心、TCX核心和HQ核心之间的选择)、以不同的内部采样频率Fs进行的其他重采样,该内部采样频率Fs适配用于核心编码的比特率,等等。这种预处理的示例可以在例如与EVS编解码器相关的参考文献[1]中找到,因此在本公开中将不再进一步描述。
2.6核心编码
参考图1,用于对基于对象的音频信号进行编解码的方法150包括核心编码的操作159。为了执行操作159,用于对基于对象的音频信号进行编解码的***100包括上述N个音频流的编码器,包括例如N个核心编码器109,以分别编解码来自预处理器108的通过N个传输信道104传送的N个音频流。
具体地,使用N个波动比特率核心编码器109,例如单核心编码器,对N个音频流进行编码。N个核心编码器中的每一个使用的比特率是由配置和决策处理器106(比特预算分配器)为对应的音频流选择的比特率。例如,参考文献[1]中描述的核心编码器可以用作核心编码器109。
3.0比特流结构
参考图1,用于对基于对象的音频信号进行编解码的方法150包括多路复用操作160。为了执行操作160,用于对基于对象的音频信号进行编解码的***100包括多路复用器110。
图6是针对帧示出由多路复用器110产生并从图1的编解码***100传输到图7的解码***700的比特流111的结构的示意图。不管元数据是否存在并被传输,比特流111的结构可以如图6所示被结构化。
参考图6,多路复用器110从比特流111的开头写入N个音频流的索引,而来自配置和决策处理器106(比特预算分配器)的ISm通用信令113和来自元数据处理器105的元数据112的索引从比特流111的末端(end)写入。
3.1ISm通用信令
多路复用器从比特流111的末端写入ISm通用信令113。ISm通用信令由配置和决策处理器106(比特预算分配器)产生,并且包括可变数量的比特表示:
(a)N个音频对象:比特流111中存在的N个编解码的音频对象的信令是例如具有停止比特的一元编码的形式(例如,对于N=3个音频对象,ISm通用信令的前3个比特将是“110”)。
(b)元数据存在标志flagmeta:当使用如第2.4.1节所述的基于信号活动性的比特率适配时,标志flagmeta存在,并且包括每个音频对象一个比特,以指示该特定音频对象的元数据存在于比特流111中(flagmeta=1)或者不存在于比特流111中(flagmeta=0),或者(c)ISm重要性分类:当使用第2.4.2节中描述的基于ISm重要性的比特率适配时,该信令存在,并且包括每个音频对象两个比特,以指示ISm重要性分类,classISm(ISM_NO_META,ISM_LOW_IMP,ISM_MEDIUM_IMP,and ISM_HIGH_IMP),如第2.4.2节中所定义。
(d)ISm VAD标志,flagVAD:ISm VAD标志在flagmeta=0时传输,分别为classISm=ISM_NO_META,并区分以下两种情况:
1)输入元数据不存在或者元数据没有被编码,使得音频流需要通过活动编解码模式(flagVAD=1)进行编解码;和
2)输入元数据存在和传输,使得音频流可以通过非活动编解码模式(flagVAD=0)进行编解码。
3.2编解码元数据有效载荷
多路复用器110被提供有来自元数据处理器105的编解码的元数据112,并且在当前帧中为元数据被编解码的音频对象(分别为flagmeta=1,classISm≠ISM_NO_META)从比特流的末端开始顺序地写入元数据有效载荷。每个音频对象的元数据比特预算不是恒定的,而是对象间和帧间适配的。不同的元数据格式场景如图2所示。
对于N个音频对象中的至少一些,在元数据不存在或没有被传输的情况下,对于这些音频对象,元数据标志被设置为0,即分别为flagmeta=0,classISm=ISM_NO_META。然后,不发送与那些音频对象相关的元数据索引,即bitsmeta[n]=0。
3.3音频流有效载荷
多路复用器110通过N个传输信道104接收由N个核心编码器109编解码的N个音频流114,并从比特流111的开始按时间顺序为N个音频流顺序写入音频流有效载荷(见图6)。作为第2.4节中描述的比特率适配算法的结果,N个音频流各自的比特预算是波动的。
4.0音频对象的解码
图7是同时示出了用于响应于具有相关联的元数据的音频流对音频对象进行解码的***700和对音频对象进行解码的对应的方法750的示意性框图。
4.1解复用
参考图7,用于响应于具有相关联的元数据的音频流对音频对象进行解码的方法750包括解复用的操作755。为了执行操作755,用于响应于具有相关联的元数据的音频流对音频对象进行解码的***700包括解多路复用器705。
解多路复用器接收从图1的编解码***100传输到图7的解码***700的比特流701。具体地,图7的比特流701对应于图1的比特流111。
解多路复用器110从比特流701中提取(a)编解码的N个音频流114,(b)N个音频对象的编解码的元数据112,以及(c)从所接收的比特流701的末端读取的ISm通用信令113。
4.2对元数据进行解码和去量化
参考图7,用于响应于具有相关联的元数据的音频流对音频对象进行解码的方法750包括对元数据进行解码和去量化的操作756。为了执行操作756,用于响应于具有相关联的元数据的音频流对音频对象进行解码的***700包括元数据解码和去量化处理器706。
元数据解码和去量化处理器706被提供有所传输的音频对象的编解码的元数据112、ISm通用信令113和输出设置709,以解码和去量化具有活动内容的音频流/对象的元数据。输出设置709是关于解码的音频对象/传输信道和/或音频格式的数量M的命令行参数,其可以等于或不同于编解码的音频对象/传输信道的数量N。元数据解码和去量化处理器706产生M个音频对象/传输信道的解码的元数据704,并在线路708上提供关于M个解码的元数据的相应的比特预算的信息。显然,由处理器706执行的解码和去量化是由图1的元数据处理器105执行的量化和编解码的逆过程。
4.3关于比特率的配置和决策
参考图7,用于响应于具有相关联的元数据的音频流对音频对象进行解码的方法750包括关于每个信道的比特率的配置和决策的操作757。为了执行操作757,用于响应于具有相关联的元数据的音频流对音频对象进行解码的***700包括配置和决策处理器707(比特预算分配器)。
比特预算分配器707从通用信令113接收(a)关于线路708上的M个解码的元数据的相应的比特预算的信息,和(b)ISm重要性分类classISm,并确定每个音频流的核心解码器比特率,total_brate[n]。比特预算分配器707使用与图1的比特预算分配器106中相同的过程来确定核心解码器比特率(参见第2.4节)。
4.4核心解码
参考图7,用于响应于具有相关联的元数据的音频流对音频对象进行解码的方法750包括核心解码的操作760。为了执行操作760,用于响应于具有相关联的元数据的音频流对音频对象进行解码的***700包含包括N个核心解码器710的N个音频流114的解码器,例如N个波动比特率核心解码器。
来自解多路复用器705的N个音频流114被解码,例如在N个波动比特率核心解码器710中以由比特预算分配器707确定的它们各自的核心解码器比特率被顺序地解码。当输出设置709所请求的对音频对象进行解码的数量M低于传输信道的数量,即M<N时,使用较低数量的核心解码器。类似地,在这种情况下,并非所有元数据有效载荷都可以被解码。
响应于来自解多路复用器705的N个音频流114、由比特预算分配器707确定的核心解码器比特率以及输出设置709,核心解码器710在相应的M个传输信道上产生M个解码的音频流703。
5.0音频信道渲染
在音频信道渲染的操作761中,音频对象的渲染器711将M个解码的元数据704和M个解码的音频流703转换到多个输出音频信道702中,同时考虑到指示要产生的输出音频信道的数量和内容的输出设置712。同样,输出音频信道702的数量可以等于或不同于数量M。
渲染器761可以被设计成各种不同的结构,以获得期望的输出音频信道。为此,在本公开中将不再进一步描述渲染器。
6.0源代码
根据非限制性说明性实施例,如前面描述中公开的对基于对象的音频信号进行编解码的***和方法可以通过下面作为附加公开给出的以下源代码(用C代码表示)来实现。
7.0硬件实施
图8是形成上述编解码和解码***和方法的硬件组件的示例配置的简化框图。
编解码和解码***中的每一个可以实现为移动终端的一部分、便携式媒体播放器的一部分或任何类似设备。编解码和解码***中的每一个(在图8中标识为1200)包括输入1202、输出1204、处理器1206和存储器1208。
输入1202被配置成接收(多个)输入信号,例如,在数字或模拟形式中,图1的N个音频对象102(具有与N个元数据相对应的N个音频流)或图7的比特流701。输出1204被配置为提供(多个)输出信号,例如图1的比特流111或者图7的M个解码的音频信道703和M个解码的元数据704。输入1202和输出1204可以在公共模块(例如串行输入/输出设备)中实现。
处理器1206可操作地连接到输入1202、输出1204和存储器1208。处理器1206被实现为一个或多个处理器,用于执行代码指令以支持图1和图7的各种处理器和其他模块的功能。
存储器1208可以包括用于存储可由(多个)处理器1206执行的代码指令的非瞬态存储器,具体地,包括非瞬态指令的处理器可读存储器,当执行这些指令时,使得处理器实现本公开中描述的编解码和解码***和方法的操作和处理器/模块。存储器1208还可以包括随机存取存储器或(多个)缓冲器,以存储来自由处理器1206执行的各种功能的中间处理数据。
本领域普通技术人员将认识到,对编解码和解码***和方法的描述仅是说明性的,并不旨在以任何方式进行限制。受益于本公开的本领域普通技术人员将容易想到其他实施例。此外,所公开的编解码和解码***和方法可以被定制以提供对编码和解码声音的现有需求和问题的有价值的解决方案。
为了清楚起见,没有示出和描述编解码和解码***和方法的实现的所有常规特征。当然,应当理解,在编解码和解码***和方法的任何这种实际实现的开发中,可能需要做出许多特定于实现的决策,以便实现开发者的特定目标,诸如符合应用、***、网络和商业相关的约束,并且这些特定目标将随着实现的不同以及开发者的不同而变化。此外,应当理解,开发工作可能是复杂和耗时的,但是对于受益于本公开的声音处理领域的普通技术人员来说,仍然是常规的工程任务。
根据本公开,在此描述的处理器/模块、处理操作和/或数据结构可以使用各种类型的操作***、计算平台、网络设备、计算机程序和/或通用机器来实现。此外,本领域普通技术人员将认识到,也可以使用非通用性质的设备,例如硬连线设备、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。在由处理器、计算机或机器实现包括一系列操作和子操作的方法的情况下,这些操作和子操作可以被存储为处理器、计算机或机器可读的一系列非瞬时代码指令,它们可以被存储在有形和/或非瞬时介质上。
在此描述的编解码和解码***和方法可以使用软件、固件、硬件或者适合于在此描述的目的的软件、固件或硬件的任何组合。
在在此描述的编解码和解码***和方法中,各种操作和子操作可以以各种顺序执行,并且一些操作和子操作可以是可选的。
尽管上文已经通过非限制性的说明性实施例描述了本公开,但是在不脱离本公开的精神和本质的情况下,可以在所附权利要求的范围内任意修改这些实施例。
8.0参考文献
在本公开中引用了以下参考文献,并且其全部内容通过引用结合于此:
[1]3GPP Spec.TS 26.445:"Codec for Enhanced Voice Services(EVS).Detailed Algorithmic Description,"v.12.0.0,Sep.2014。
[2]V.Eksler,"Method and Device for Allocating a Bit-budget BetweenSub frames in a CELP Codec,"PCT patent application PCT/CA2018/51175。
9.0其他实施例
以下实施例(实施例1至83)是与本发明相关的本公开的一部分。
实施例1.一种用于响应于具有相关联的元数据的音频流对包括音频对象的基于对象的音频信号进行编解码的***,包括:
音频流处理器,用于分析音频流;和
元数据处理器,响应于来自音频流处理器的分析的、关于音频流的信息,以对输入音频流的元数据进行编码。
实施例2.根据实施例1所述的***,其中元数据处理器输出关于音频对象的元数据比特预算的信息,并且其中该***还包括比特预算分配器,其响应于来自元数据处理器的关于音频对象的元数据比特预算的信息,向音频流分配比特率。
实施例3.根据实施例1或2所述的***,包括包含编解码的元数据的音频流的编码器。
实施例4.根据实施例1至3中任一项实施例所述的***,其中编码器包括使用由比特预算分配器分配给音频流的比特率的多个核心编解码器(Core-Coder)。
实施例5.根据实施例1至4中任一项实施例所述的***,其中基于对象的音频信号包括语音、音乐和一般音频声音中的至少一种。
实施例6.根据实施例1至5中任一项实施例所述的***,其中基于对象的音频信号将复杂的音频听觉场景表示或编码为单独的元素的集合,又称音频对象。
实施例7.根据实施例1至6中任一项实施例所述的***,其中每个音频对象包括具有相关联的元数据的音频流。
实施例8.根据实施例1至7中任一项实施例所述的***,其中音频流是具有元数据的独立流。
实施例9.根据实施例1至8中任一项实施例所述的***,其中音频流表示音频波形,并且通常包括一个或两个信道。
实施例10.根据实施例1至9中任一项实施例所述的***,其中元数据是描述音频流和用于将原始或编解码的音频对象转化为最终再现***的艺术内涵的一组信息。
实施例11.根据实施例1至10中任一项实施例所述的***,其中元数据通常描述每个音频对象的空间属性。
实施例12.根据实施例1至11中任一项实施例所述的***,其中空间属性包括音频对象的位置、方向、音量、宽度中的一个或多个。
实施例13.根据实施例1至12中任一项实施例所述的***,其中每个音频对象包括被称为输入元数据的一组元数据,该输入元数据被定义为作为编解码器输入的未量化的元数据表示。
实施例14.根据实施例1至13中任一项实施例所述的***,其中每个音频对象包括被称为编解码的元数据的一组元数据,该编解码的元数据被定义为量化的和编解码的元数据,该量化的和编解码的元数据是从编码器发送到解码器的比特流的一部分。
实施例15.根据实施例1至14中任一项实施例所述的***,其中再现***被构造成在再现侧使用所传输的元数据和艺术内涵在收听者周围的3D音频空间中渲染音频对象。
实施例16.根据实施例1至15中任一项所述的***,其中再现***包括头部跟踪设备,用于在渲染音频对象期间动态地修改元数据。
实施例17.根据实施例1至16中任一项实施例所述的***,包括用于多个音频对象的同时编解码的框架。
实施例18.根据实施例1至17中任一项实施例所述的***,其中多个音频对象的同时编解码使用固定恒定的总比特率来对音频对象进行编码。
实施例19.根据实施例1至18中任一项实施例所述的***,包括对音频对象的部分或全部进行传输的发射机。
实施例20.根据根据实施例1至19中任一项所述的***,其中在对框架中的音频格式的组合进行编解码的情况下,恒定的总比特率表示格式的比特率的总和。
实施例21.根据实施例1至20中任一项实施例所述的***,其中元数据包括两个参数,两个参数包括方位角和仰角。
实施例22.根据实施例1至21中任一项实施例所述的***,其中针对每个音频对象的每个音频帧存储方位角参数和仰角参数。
实施例23.根据实施例1至22中任一项实施例所述的***,包括对至少一个输入音频流和与该音频流相关联的输入元数据进行缓冲的输入缓冲器。
实施例24.根据实施例1至23中任一项实施例所述的***,其中输入缓冲器对一帧的每个音频流进行缓冲。
实施例25.根据实施例1至24中任一项实施例所述的***,其中音频流处理器对音频流进行分析和处理。
实施例26.根据实施例1至25中任一项实施例所述的***,其中音频流处理器包括以下元件中的至少一个:时域瞬态检测器、频谱分析器、长期预测分析器、音调***和发声分析器、语音/声音活动性检测器、带宽检测器、噪声估计器和信号分类器。
实施例27.根据实施例1至26中任一项实施例所述的***,其中信号分类器执行编码器类型选择、信号分类和语音/音乐分类中的至少一个。
实施例28.根据实施例1至27中任一项实施例所述的***,其中元数据处理器对音频流的元数据进行分析、量化和编码。
实施例29.根据实施例1至28中任一项实施例所述的***,其中,在非活动帧中,没有元数据由元数据处理器编码,也没有元数据由***在对应的音频对象的比特流中发送。
实施例30.根据实施例1至29中任一项实施例所述的***,其中,在活动帧中,元数据由元数据处理器使用可变比特率对对应的对象进行编码。
实施例31.根据实施例1至30中任一项实施例所述的***,其中比特预算分配器将音频对象的元数据的比特预算求和,并将比特预算的总和添加到信令比特预算,以便将比特率分配给音频流。
实施例32.根据实施例1至31中任一项实施例所述的***,包括预处理器,用于当已经完成音频流之间的配置和比特率分配时,进一步处理音频流。
实施例33.根据实施例1至32中任一项实施例所述的***,其中预处理器执行音频流的进一步分类、核心编码器选择和重采样中的至少一个。
实施例34.根据实施例1至33中任一项实施例所述的***,其中编码器顺序地编码音频流。
实施例35.根据实施例1至34中任一项实施例所述的***,其中编码器使用数量波动比特率核心编解码器顺序地编码音频流。
实施例36.根据实施例1至35中任一项实施例所述的设备,其中元数据处理器利用音频对象的量化和音频对象的元数据参数之间的相关性,在循环中顺序地编码元数据。
实施例37.根据实施例1至36中任一项实施例所述的***,其中为了编码元数据参数,元数据处理器使用量化步长来量化元数据参数索引。
实施例38.根据实施例1至37中任一项实施例所述的***,其中为了编码方位角参数,元数据处理器使用量化步长来量化方位角索引,并且为了编码仰角参数,元数据处理器使用量化步长来量化仰角索引。
实施例39.根据实施例1至38中任一项实施例所述的设备,其中总元数据比特预算和量化比特的数量取决于编解码器总比特率、元数据总比特率或者与一个音频对象相关的元数据比特预算和核心编解码器比特预算的总和。
实施例40.根据实施例1至39中任一项实施例所述的***,其中方位角和仰角参数被表示为一个参数。
实施例41.根据实施例1至40中任一项实施例所述的***,其中元数据处理器绝对地或差分地编码元数据参数索引。
实施例42.根据实施例1至41中任一项实施例所述的***,其中当当前参数索引和先前参数索引之间存在差值,所述差值导致差分编解码所需的比特的数量高于或等于绝对编解码所需的比特的数量的差值时,元数据处理器使用绝对编解码来编码元数据参数索引。
实施例43.根据实施例1至42中任一项实施例所述的***,其中当在先前帧中不存在元数据时,元数据处理器使用绝对编解码来编码元数据参数索引。
实施例44.根据实施例1至43中任一项实施例所述的***,其中当使用差分编解码的连续帧的数量高于使用差分编解码所编解码的最大连续帧的数量时,元数据处理器使用绝对编解码来编码元数据参数索引。
实施例45.根据实施例1至44中任一项所述的***,其中当使用绝对编解码对元数据参数索引进行编解码时,元数据编码器在元数据参数绝对编解码的索引之后写入区分绝对编解码和差分编解码的绝对编解码标志。
实施例46.根据实施例1至45中任一项实施例所述的***,其中当使用差分编解码对元数据参数索引进行编码时,元数据编码器将绝对编解码标志设置为0,并在绝对编解码标志之后写入零编解码标志,以信令通知当前帧索引和先前帧索引之间的差值是否为0。
实施例47.根据实施例1至46中任一项实施例所述的***,其中,如果当前帧索引和先前帧索引之间的差值不等于0,则元数据处理器通过写入符号标志、之后是适配比特差值索引来继续编解码。
实施例48.根据实施例1至47中任一项实施例所述的***,其中元数据处理器使用对象内元数据编解码逻辑来限制帧之间的元数据比特预算波动的范围,并避免留给核心编解码的比特预算过低。
实施例49.根据实施例1至48中任一项实施例所述的***,其中元数据处理器根据对象内元数据编解码逻辑,将在给定帧中绝对编解码的使用限制为仅一个元数据参数或数量尽可能少的元数据参数。
实施例50.根据实施例1至49中任一项实施例所述的***,其中根据对象内元数据编解码逻辑,元数据处理器在以下情况下避免对一个元数据参数的索引进行绝对编解码:如果另一元数据编解码逻辑的索引已经在同一帧中使用绝对编解码进行了编解码。
实施例51.根据实施例1至50中任一项实施例所述的***,其中对象内元数据编解码逻辑是比特率相关的。
实施例52.根据实施例1至51中任一项实施例所述的***,其中元数据处理器使用用于不同对象的元数据编解码之间的对象间元数据编解码逻,来在当前帧中最小化绝对地编解码的元数据参数的数量。
实施例53.根据实施例1至52中任一项实施例所述的***,其中元数据处理器使用对象间元数据编解码逻辑,控制绝对地编解码的元数据参数的帧计数器。
实施例54.根据实施例1至53中任一项所述的***,其中元数据处理器使用对象间元数据编解码逻辑,当音频对象的元数据参数缓慢且平滑地演变时,(a)在帧M中使用绝对编解码对第一音频对象的第一元数据参数索引进行编解码,(b)在帧M+1中使用绝对编解码对第一音频对象的第二元数据参数索引进行编解码,(c)在帧M+2中使用绝对编解码对第二音频对象的第一元数据参数索引进行编解码,以及(d)在帧M+3中使用绝对编解码对第二音频对象的第二元数据参数索引进行编解码。
实施例55.根据实施例1至54中任一项实施例所述的***,其中对象间元数据编解码逻辑是比特率相关的。
实施例56.根据实施例1至55中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法来分配用于对音频流进行编码的比特预算。
实施例57.根据实施例1至56中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法,从元数据总比特率或编解码器总比特率获得元数据总比特预算。
实施例58.根据实施例1至57中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法,通过将元数据总比特预算除以音频流的数量来计算元素比特预算。
实施例59.根据实施例1至58中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法,调整最后一个音频流的元素比特预算,以用尽所有可用的元数据比特预算。
实施例60.根据实施例1至59中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法,对所有音频对象的元数据比特预算进行求和,并将所述总和添加到元数据通用信令比特预算中,以产生核心编解码器侧比特预算。
实施例61.根据实施例1至60中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法,(a)在音频对象之间平均地划分核心编解码器侧比特预算,以及(b)使用划分的核心编解码器侧比特预算和元素比特预算来计算每个音频流的核心编解码器比特预算。
实施例62.根据实施例1至61中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法,调整最后一个音频流的核心编解码器比特预算,以用尽所有可用的核心编解码器比特预算。
实施例63.根据实施例1至62中任一项实施例所述的***,其中比特预算分配器使用比特率适配算法,使用核心编解码器比特预算计算用于在核心编解码器中对一个音频流进行编码的比特率。
实施例64.根据实施例1至63中任一项实施例所述的***,其中比特预算分配器在非活动帧或低能量帧中使用比特率适配算法,降低在核心编解码器中对一个音频流进行编码的比特率并将其设置为恒定值,并且在活动帧中的音频流之间重新分配节省的比特预算。
实施例65.根据实施例1至64中任一项实施例所述的***,其中比特预算分配器在活动帧中使用比特率适配算法,基于元数据重要性分类来调整在核心编解码器中对一个音频流进行编码的比特率。
实施例66.根据实施例1至65中任一项实施例所述的***,其中在非活动帧(VAD=0)中,比特预算分配器降低在核心编解码器中对一个音频流进行编码的比特率,并且在被分类为活动的帧中的音频流之间重新分配通过所述比特率降低而节省的比特预算。
实施例67.根据实施例1至66中任一项实施例所述的***,其中比特预算分配器在帧中(a)为每个具有非活动内容的音频流设置较低的、恒定的核心编解码器比特预算,(b)计算作为较低的恒定核心编解码器比特预算和核心编解码器比特预算之间的差值的节省的比特预算,以及(c)在活动帧中的音频流的核心编解码器比特预算之间重新分配节省的比特预算。
实施例68.根据实施例1至67中任一项实施例所述的***,其中较低的恒定比特预算取决于元数据总比特率。
实施例69.根据实施例1至68中任一项实施例所述的***,其中比特预算分配器使用较低的恒定核心编解码器比特预算计算在核心编解码器中对一个音频流进行编码的比特率。
实施例70.根据实施例1至69中任一项实施例所述的***,其中比特预算分配器基于元数据重要性的分类使用对象间核心编解码器比特率适配。
实施例71.根据实施例1至70中任一项实施例所述的***,其中元数据重要性基于指示当前帧处对特定音频对象进行编解码对于获得解码的合成的满意质量有多关键的度量。
实施例72.根据实施例1至71中任一项实施例所述的***,其中比特预算分配器基于以下参数中的至少一个来进行元数据重要性的分类:编码器类型(coder_type)、FEC信号分类(class)、语音/音乐分类决策以及来自开环ACELP/TCX核心决策模块的SNR估计(snr_celp、snr_tcx)。
实施例73.根据实施例1至72中任一项实施例所述的***,其中比特预算分配器基于编码器类型(coder_type)对元数据重要性进行分类。
实施例74.根据实施例1至73中任一项实施例所述的***,其中比特预算分配器定义以下四个不同的元数据重要性分类(classISm):
-无元数据类,ISM_NO_META:无元数据编解码的帧,例如在VAD=0的非活动帧中;
-低重要性分类,ISM_LOW_IMP:coder_type=UNVOICED(没语音)或INACTIVE(非活动)的帧;
-中等重要性分类,ISM_MEDIUM_IMP:coder_type=VOICED(语音)的帧;
-高重要性分类,ISM_HIGH_IMP:coder_type=GENERIC(通常)的帧。
实施例75.根据实施例1至74中任一项实施例所述的***,其中比特预算分配器在比特率适配算法中使用元数据重要性分类来将较高的比特预算分配给具有较高重要性的音频流,并将较低的比特预算分配给具有较低重要性的音频流。
实施例76.根据实施例1至75中任一项实施例所述的***,其中比特预算分配器在帧中使用以下逻辑:
1.classISm=ISM_NO_META帧:分配较低的恒定核心编解码器比特率;
2.classISm=ISM_LOW_IMP帧:在核心编解码器中对一个音频流进行编码的比特率(total_brate)降低为
total_bratenew[n]=max(αlow*total_brate[n],Blow)
其中常数αlow被设置为低于1.0的值,并且常数Blow是核心编解码器支持的最小比特率阈值;
3.classISm=ISM_MEDIUM_IMP帧:在核心编解码器中对一个音频流进行编码的比特率(total_brate)降低为
total_bratenew[n]=max(αmed*total_brate[n],Blow)
其中常数αmed被设置为低于1.0但高于αlow的值;
4.classISm=ISM_HIGH_IMP帧:不使用比特率适配。
实施例77.根据实施例1至76中任一项实施例所述的***,其中比特预算分配器在被分类为活动的帧中的音频流之间的重新分配节省的比特预算,节省的比特预算被表示为先前和新比特率total_brate之间差值的总和。
实施例78。一种用于响应具有相关联的元数据的音频流对音频对象进行解码的***,包括:
元数据处理器,对具有活动内容的音频流的元数据进行解码;
比特预算分配器,响应解码的元数据和音频对象的相应的比特预算来确定音频流的核心编解码器比特率;和
使用在比特预算分配器中确定的核心编解码器比特率的音频流的解码器。
实施例79.根据实施例78所述的***,其中元数据处理器响应于从接收的比特流的末端读取的元数据通用信令。
实施例80.根据实施例78或79所述的***,其中解码器包括对音频流进行解码的核心解码器。
实施例81.根据实施例78至80中任一项实施例所述的***,其中核心解码器包括以它们各自的核心编解码器比特率顺序地解码音频流的波动比特率核心解码器。
实施例82.根据实施例78至81中任一项实施例所述的***,其中解码的音频对象的数量低于核心解码器的数量。
实施例83.根据实施例78至83中任一项实施例所述的***,包括响应于解码的音频流和解码的元数据的音频对象的渲染器。
进一步描述实施例78至83的元件的实施例2至77中的任何一项可以在这些实施例78至83中的任何一项中实现。例如,在解码***中每个音频流的核心编解码器比特率使用与编解码***中相同的过程来确定。
本发明还涉及编解码的方法和解码的方法。在这方面,***实施例1至83可以被起草为方法实施例,其中***实施例的元件可以由这样的元件所执行的方法所代替。
Claims (62)
1.一种用于响应于具有相关联的元数据的音频流对包括音频对象的基于对象的音频信号进行编解码的***,包括:
音频流处理器,用于分析音频流;
元数据处理器,响应于来自音频流处理器的分析的、关于音频流的信息,以对元数据进行编解码,其中元数据处理器使用用于控制元数据编解码比特预算的逻辑;和
编码器,用于对音频流进行编解码。
2.根据权利要求1所述的***,其中元数据处理器使用对象内元数据编解码逻辑来限制基于对象的音频信号的帧之间的元数据编解码比特预算波动的范围,并避免对音频流进行编解码留下过低的比特预算。
3.根据权利要求2所述的***,其中元数据处理器使用对象内元数据编解码逻辑,将给定帧中的绝对编解码限制为一个元数据参数或数量尽可能少的元数据参数。
4.根据权利要求2或3所述的***,其中,元数据处理器使用对象内元数据编解码逻辑在以下情况下避免在同一帧中对第一元数据参数进行绝对编解码:如果已经使用绝对编解码对第二元数据参数进行了编解码。
5.根据权利要求2至4中任一项所述的***,其中对象内元数据编解码逻辑是比特率相关的,以便如果比特率足够大,则能够对同一帧中的多个元数据参数进行绝对编解码。
6.根据权利要求1所述的***,其中元数据处理器将对象间元数据编解码逻辑应用于不同音频对象的元数据编解码,以在当前帧中最小化使用绝对编解码所编解码的不同音频对象的元数据参数的数量。
7.根据权利要求6所述的***,其中元数据处理器使用对象间元数据编解码逻辑,控制使用绝对编解码所编解码的元数据参数的帧计数器。
8.根据权利要求6或7所述的***,其中元数据处理器使用对象间元数据编解码逻辑,按帧来对一个音频对象元数据参数进行编解码。
9.根据权利要求6至8中任一项所述的***,其中当音频对象的元数据参数缓慢且平滑地演变时,元数据处理器使用对象间元数据编解码逻辑:(a)在帧M中使用绝对编解码对第一音频对象的第一元数据参数进行编解码,(b)在帧M+1中使用绝对编解码对第一音频对象的第二元数据参数进行编解码,(c)在帧M+2中使用绝对编解码对第二音频对象的第一元数据参数进行编解码,以及(d)在帧M+3中使用绝对编解码对第二音频对象的第二元数据参数进行编解码。
10.根据权利要求6至9中任一项所述的***,其中对象间元数据编解码逻辑是比特率相关的,以便如果比特率足够大,则能够对同一帧中的音频对象的多个元数据参数进行绝对编解码。
11.根据权利要求1至10中任一项所述的***,包括用于缓冲多个音频对象的输入缓冲器,每个音频对象包括具有相关联的元数据的音频流中的一个。
12.根据权利要求1至11中任一项所述的***,其中:
-音频流处理器分析音频流以检测语音活动性;
-元数据处理器包括使用来自音频流处理器的、语音活动性检测的每个音频对象的元数据的分析器,以确定当前帧相对于音频对象是非活动的还是活动的;
-在非活动帧中,元数据处理器不对与音频对象相关的元数据进行编解码;和
-在活动帧中,元数据处理器对音频对象的元数据进行编解码。
13.根据权利要求1至12中任一项所述的设备,其中元数据处理器利用音频对象的量化和音频对象的元数据参数之间的相关性,在循环中顺序地对元数据进行编解码。
14.根据权利要求1至13中任一项所述的***,其中为了量化音频对象的元数据参数,元数据处理器包括使用量化步长的元数据参数索引的量化器。
15.根据权利要求1至14中任一项所述的***,其中:
每个音频对象的元数据包括方位角参数和仰角参数;和
为了量化方位角和仰角参数,元数据处理器包括使用量化步长的方位角索引的和使用量化步长的仰角参数索引的量化器。
16.根据权利要求14或15所述的***,其中用于对元数据进行编解码的总元数据比特预算和用于量化元数据参数索引的量化比特总数取决于编解码器总比特率、元数据总比特率或与一个音频对象相关的元数据比特预算和核心编码器比特预算的总和。
17.根据权利要求1至16中任一项所述的***,其中:
每个音频对象的元数据包括多个元数据参数;
元数据处理器将多个元数据参数表示为一个参数;和
元数据处理器包括所述一个参数的索引的量化器。
18.根据权利要求14至16中任一项所述的***,其中元数据处理器包括元数据编码器,用于使用绝对编解码或差分编解码对元数据参数索引进行编解码。
19.根据权利要求18所述的***,其中如果与使用绝对编解码相比,参数索引的当前值和先前值之间的差值导致使用差分编解码的比特的数量更高或相等,则元数据编码器使用绝对编解码来对元数据参数索引进行编解码。
20.根据权利要求18或19所述的***,其中如果在先前帧中不存在元数据,则元数据编码器处理器使用绝对编解码来对元数据参数索引进行编解码。
21.根据权利要求18至20中任一项所述的***,其中当使用差分编解码的连续帧的数量高于使用差分编解码所编解码的最大连续帧的数量时,元数据编码器使用绝对编解码来对元数据参数索引进行编解码。
22.根据权利要求18至21中任一项所述的***,其中当使用绝对编解码对元数据参数索引进行编解码时,元数据编码器产生区分绝对编解码和差分编解码的绝对编解码标志,并且之后是使用绝对编解码进行编解码的元数据参数索引。
23.根据权利要求22所述的***,其中,当使用差分编解码对元数据参数索引进行编码时,元数据编码器将绝对编解码标志设置为0,并在绝对编解码标志之后产生零编解码标志,以信令通知当前帧中的元数据参数索引和先前帧中的元数据参数索引之间的差值等于0。
24.根据权利要求23所述的***,其中,如果当前帧中的元数据参数索引和先前帧中的元数据参数索引之间的差值不等于0,则元数据编码器产生指示差值的加号或减号的符号标志,之后是指示差值的值的差值索引。
25.根据权利要求1至24中任一项所述的***,其中元数据处理器输出关于用于对音频对象的元数据进行编解码的比特预算的信息,并且其中***还包括比特预算分配器,其响应于来自元数据处理器的关于用于对音频对象的元数据进行编解码的比特预算的信息,以分配用于对音频流进行编解码的比特率。
26.根据权利要求25所述的***,其中比特预算分配器对用于对音频对象的元数据进行编解码的比特预算进行求和,并将比特预算的总和添加到信令比特预算,以在音频流之间执行比特率分配。
27.根据权利要求25或26所述的***,包括预处理器,用于在比特预算分配器在音频流之间完成比特率分配时,进一步处理音频流。
28.根据权利要求27所述的***,其中预处理器执行音频流的进一步分类、核心编码器选择和重采样中的至少一个。
29.根据权利要求1至28中任一项所述的***,其中音频流的编码器包括用于对音频流进行编解码的多个核心编码器。
30.根据权利要求29所述的***,其中核心编码器是对音频流顺序地编解码的波动比特率核心编码器。
31.一种用于编解码包括基于场景的音频、多信道和基于对象的音频信号的复杂音频听觉场景的编码器设备,所述编码器设备包括根据权利要求1至30中任一项所述的对基于对象的音频信号进行编解码的***。
32.一种用于响应于具有相关联的元数据的音频流对包括音频对象的基于对象的音频信号进行编解码的方法,包括:
分析音频流;
使用(a)来自音频流的分析的、关于音频流的信息和(b)用于控制元数据编解码比特预算的逻辑来对元数据进行编解码;和
对音频流进行编码。
33.根据权利要求32所述的方法,其中使用用于控制元数据编解码比特预算的逻辑包括使用对象内元数据编解码逻辑来限制基于对象的音频信号的帧之间的元数据编解码比特预算波动的范围,并避免对音频流进行编解码留下过低的比特预算。
34.根据权利要求33所述的方法,其中使用对象内元数据编解码逻辑包括将给定帧中的绝对编解码限制为一个元数据参数或数量尽可能少的元数据参数。
35.根据权利要求33或34所述的方法,其中使用对象内元数据编解码逻辑包括在以下情况下避免在同一帧中对第一元数据参数进行绝对编解码:如果已经使用绝对编解码对第二元数据参数进行了编解码。
36.根据权利要求33至35中任一项所述的方法,其中对象内元数据编解码逻辑是比特率相关的,以便如果比特率足够大,则能够对同一帧中的多个元数据参数进行绝对编解码。
37.根据权利要求32所述的方法,其中使用用于控制元数据编解码比特预算的逻辑包括使用用于不同音频对象的元数据编解码的对象间元数据编解码逻辑,以在当前帧中最小化使用绝对编解码所编解码的不同音频对象的元数据参数的数量。
38.根据权利要求37所述的方法,其中使用对象间元数据编解码逻辑包括控制使用绝对编解码所编解码的元数据参数的帧计数器。
39.根据权利要求37或38所述的方法,其中使用对象间元数据编解码逻辑包括按帧对一个音频对象元数据参数进行编解码。
40.根据权利要求37至39中任一项所述的方法,其中使用对象间元数据编解码逻辑包括,当音频对象的元数据参数缓慢且平滑地演变时:(a)在帧M中使用绝对编解码对第一音频对象的第一元数据参数进行编解码,(b)在帧M+1中使用绝对编解码对第一音频对象的第二元数据参数进行编解码,(c)在帧M+2中使用绝对编解码对第二音频对象的第一元数据参数进行编解码,以及(d)在帧M+3中使用绝对编解码对第二音频对象的第二元数据参数进行编解码。
41.根据权利要求37至40中任一项所述的方法,其中对象间元数据编解码逻辑是比特率相关的,以便如果比特率足够大,则能够对同一帧中的音频对象的多个元数据参数进行绝对编解码。
42.根据权利要求32至41中任一项所述的方法,包括输入缓冲多个音频对象,每个音频对象包括具有相关联的元数据的音频流中的一个。
43.根据权利要求32至42中任一项所述的方法,包括:
-在分析音频流时检测语音活动性;
-使用语音活动性检测来分析每个音频对象的元数据,以确定当前帧相对于音频对象是非活动的还是活动的;
-在非活动帧中,不对与音频对象相关的元数据进行编码;和
-在活动帧中,对音频对象的元数据进行编码。
44.根据权利要求32至43中任一项所述的方法,其中利用音频对象的量化和音频对象的元数据参数之间的相关性,在循环中顺序地对元数据进行编解码。
45.根据权利要求32至44中任一项所述的方法,包括:为了量化音频对象的元数据参数,使用量化步长来量化元数据参数索引。
46.根据权利要求32至45中任一项所述的方法,其中:
每个音频对象的元数据包括方位角参数和仰角参数;和
量化方位角参数和仰角参数包括使用量化步长量化方位角索引和使用量化步长量化仰角参数索引。
47.根据权利要求45或46所述的方法,其中用于对元数据进行编解码的总元数据比特预算和用于量化元数据参数索引的量化比特总数取决于编解码器总比特率、元数据总比特率或与一个音频对象相关的元数据比特预算和核心编码器比特预算的总和。
48.根据权利要求32至47中任一项所述的方法,其中每个音频对象的元数据包括多个元数据参数,并且其中所述方法包括:
将多个元数据参数表示为一个参数;和
量化所述一个参数的索引。
49.根据权利要求45至47中任一项所述的方法,包括使用绝对编解码或差分编解码对元数据参数索引进行编解码。
50.根据权利要求49所述的方法,其中对元数据参数索引进行编解码包括:如果与使用绝对编解码相比,参数索引的当前值和先前值之间的差值导致使用差分编解码的比特的数量更高或相等,则使用绝对编解码。
51.根据权利要求49或50所述的方法,其中对元数据参数索引进行编解码包括如果在先前帧中不存在元数据,则使用绝对编解码。
52.根据权利要求49至51中任一项所述的方法,其中对元数据参数索引进行编解码包括当使用差分编解码的连续帧的数量高于使用差分编解码所编解码的最大连续帧的数量时,使用绝对编解码。
53.根据权利要求49至52中任一项所述的方法,其中使用绝对编解码对元数据参数索引进行编解码包括产生区分绝对编解码和差分编解码的绝对编解码标志,并且之后是使用绝对编解码进行编解码的元数据参数索引。
54.根据权利要求53所述的方法,其中使用差分编解码对元数据参数索引进行编解码包括将绝对编解码标志设置为0,并在绝对编解码标志之后产生零编解码标志,以信令通知当前帧中的元数据参数索引和先前帧中的元数据参数索引之间的差值等于0。
55.根据权利要求54所述的方法,其中使用差分编解码对元数据参数索引进行编解码包括,如果当前帧中的元数据参数索引和先前帧中的元数据参数索引之间的差值不等于0,则产生指示差值的加号或减号的符号标志,之后是指示差值的值的差值索引。
56.根据权利要求32至55中任一项所述的方法,其中对元数据进行编解码包括输出关于用于对音频对象的元数据进行编解码的比特预算的信息,并且其中该方法包括响应于关于用于对音频对象的元数据进行编解码的比特预算的信息的比特预算分配,以分配用于对音频流进行编解码的比特率。
57.根据权利要求56所述的方法,其中比特预算分配包括对用于对音频对象的元数据进行编解码的比特预算进行求和,并将比特预算的总和添加到信令比特预算,以在音频流之间执行比特率分配。
58.根据权利要求56或57的方法,包括在比特预算分配在音频流之间完成比特率分配时,预处理音频流。
59.根据权利要求58所述的方法,其中预处理音频流包括执行音频流的进一步分类、核心编码器选择和重采样中的至少一个。
60.根据权利要求32至59中任一项所述的方法,其中对音频流进行编码包括对音频流进行相应核心编码。
61.根据权利要求60所述的方法,其中对音频流进行编码包括使用波动比特率来对音频流进行顺序地编解码。
62.一种用于编解码包括基于场景的音频、多信道和基于对象的音频信号的复杂音频听觉场景的编码方法,包括根据权利要求32至61中任一项所述的对基于对象的音频信号进行编解码的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962871253P | 2019-07-08 | 2019-07-08 | |
US62/871,253 | 2019-07-08 | ||
PCT/CA2020/050943 WO2021003569A1 (en) | 2019-07-08 | 2020-07-07 | Method and system for coding metadata in audio streams and for flexible intra-object and inter-object bitrate adaptation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114097028A true CN114097028A (zh) | 2022-02-25 |
Family
ID=74113835
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080049817.1A Pending CN114097028A (zh) | 2019-07-08 | 2020-07-07 | 用于编解码音频流中的元数据及用于灵活对象内和对象间比特率适配的方法和*** |
CN202080050126.3A Pending CN114072874A (zh) | 2019-07-08 | 2020-07-07 | 用于编解码音频流中的元数据和用于对音频流编解码的有效比特率分配的方法和*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080050126.3A Pending CN114072874A (zh) | 2019-07-08 | 2020-07-07 | 用于编解码音频流中的元数据和用于对音频流编解码的有效比特率分配的方法和*** |
Country Status (10)
Country | Link |
---|---|
US (2) | US20220238127A1 (zh) |
EP (2) | EP3997698A4 (zh) |
JP (2) | JP2022539884A (zh) |
KR (2) | KR20220034103A (zh) |
CN (2) | CN114097028A (zh) |
AU (2) | AU2020310084A1 (zh) |
BR (2) | BR112021025420A2 (zh) |
CA (2) | CA3145047A1 (zh) |
MX (2) | MX2021015476A (zh) |
WO (2) | WO2021003569A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023061556A1 (en) * | 2021-10-12 | 2023-04-20 | Nokia Technologies Oy | Delayed orientation signalling for immersive communications |
WO2023065254A1 (zh) * | 2021-10-21 | 2023-04-27 | 北京小米移动软件有限公司 | 一种信号编解码方法、装置、编码设备、解码设备及存储介质 |
WO2023077284A1 (zh) * | 2021-11-02 | 2023-05-11 | 北京小米移动软件有限公司 | 一种信号编解码方法、装置、用户设备、网络侧设备及存储介质 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630011A (en) * | 1990-12-05 | 1997-05-13 | Digital Voice Systems, Inc. | Quantization of harmonic amplitudes representing speech |
US7657427B2 (en) * | 2002-10-11 | 2010-02-02 | Nokia Corporation | Methods and devices for source controlled variable bit-rate wideband speech coding |
US9626973B2 (en) * | 2005-02-23 | 2017-04-18 | Telefonaktiebolaget L M Ericsson (Publ) | Adaptive bit allocation for multi-channel audio encoding |
ATE406651T1 (de) * | 2005-03-30 | 2008-09-15 | Koninkl Philips Electronics Nv | Audiokodierung und audiodekodierung |
EP2375409A1 (en) * | 2010-04-09 | 2011-10-12 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder, audio decoder and related methods for processing multi-channel audio signals using complex prediction |
CN104620315B (zh) * | 2012-07-12 | 2018-04-13 | 诺基亚技术有限公司 | 一种矢量量化的方法及装置 |
PT2936486T (pt) * | 2012-12-21 | 2018-10-19 | Fraunhofer Ges Forschung | Adição de ruído de conforto para modelagem do ruído de fundo em baixas taxas de bits |
CN110085240B (zh) * | 2013-05-24 | 2023-05-23 | 杜比国际公司 | 包括音频对象的音频场景的高效编码 |
EP2830047A1 (en) * | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for low delay object metadata coding |
JP6288100B2 (ja) * | 2013-10-17 | 2018-03-07 | 株式会社ソシオネクスト | オーディオエンコード装置及びオーディオデコード装置 |
US9564136B2 (en) * | 2014-03-06 | 2017-02-07 | Dts, Inc. | Post-encoding bitrate reduction of multiple object audio |
FR3020732A1 (fr) * | 2014-04-30 | 2015-11-06 | Orange | Correction de perte de trame perfectionnee avec information de voisement |
BR112017000629B1 (pt) * | 2014-07-25 | 2021-02-17 | Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschug E.V. | aparelho de codificação de sinal de áudio e método de codificação de sinal de áudio |
WO2016138502A1 (en) * | 2015-02-27 | 2016-09-01 | Arris Enterprises, Inc. | Adaptive joint bitrate allocation |
US9866596B2 (en) * | 2015-05-04 | 2018-01-09 | Qualcomm Incorporated | Methods and systems for virtual conference system using personal communication devices |
CN108496221B (zh) * | 2016-01-26 | 2020-01-21 | 杜比实验室特许公司 | 自适应量化 |
US10573324B2 (en) * | 2016-02-24 | 2020-02-25 | Dolby International Ab | Method and system for bit reservoir control in case of varying metadata |
FR3048808A1 (fr) * | 2016-03-10 | 2017-09-15 | Orange | Codage et decodage optimise d'informations de spatialisation pour le codage et le decodage parametrique d'un signal audio multicanal |
US10354660B2 (en) * | 2017-04-28 | 2019-07-16 | Cisco Technology, Inc. | Audio frame labeling to achieve unequal error protection for audio frames of unequal importance |
EP3659040A4 (en) * | 2017-07-28 | 2020-12-02 | Dolby Laboratories Licensing Corporation | PROCESS AND SYSTEM FOR PROVIDING MULTIMEDIA CONTENT TO A CUSTOMER |
US11276412B2 (en) * | 2017-09-20 | 2022-03-15 | Voiceage Corporation | Method and device for efficiently distributing a bit-budget in a CELP codec |
US10854209B2 (en) * | 2017-10-03 | 2020-12-01 | Qualcomm Incorporated | Multi-stream audio coding |
US10999693B2 (en) * | 2018-06-25 | 2021-05-04 | Qualcomm Incorporated | Rendering different portions of audio data using different renderers |
GB2575305A (en) * | 2018-07-05 | 2020-01-08 | Nokia Technologies Oy | Determination of spatial audio parameter encoding and associated decoding |
US10359827B1 (en) * | 2018-08-15 | 2019-07-23 | Qualcomm Incorporated | Systems and methods for power conservation in an audio bus |
US11683487B2 (en) * | 2019-03-26 | 2023-06-20 | Qualcomm Incorporated | Block-based adaptive loop filter (ALF) with adaptive parameter set (APS) in video coding |
KR20210141655A (ko) * | 2019-03-29 | 2021-11-23 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 멀티 채널 오디오 프레임에서 예측적인 코딩에서 에러 복구를 위한 방법 및 장치 |
-
2020
- 2020-07-07 BR BR112021025420A patent/BR112021025420A2/pt unknown
- 2020-07-07 EP EP20836995.9A patent/EP3997698A4/en active Pending
- 2020-07-07 JP JP2022500960A patent/JP2022539884A/ja active Pending
- 2020-07-07 KR KR1020227000309A patent/KR20220034103A/ko unknown
- 2020-07-07 KR KR1020227000308A patent/KR20220034102A/ko unknown
- 2020-07-07 WO PCT/CA2020/050943 patent/WO2021003569A1/en unknown
- 2020-07-07 WO PCT/CA2020/050944 patent/WO2021003570A1/en unknown
- 2020-07-07 EP EP20836269.9A patent/EP3997697A4/en active Pending
- 2020-07-07 CA CA3145047A patent/CA3145047A1/en active Pending
- 2020-07-07 JP JP2022500962A patent/JP2022539608A/ja active Pending
- 2020-07-07 MX MX2021015476A patent/MX2021015476A/es unknown
- 2020-07-07 US US17/596,566 patent/US20220238127A1/en active Pending
- 2020-07-07 BR BR112021026678A patent/BR112021026678A2/pt unknown
- 2020-07-07 AU AU2020310084A patent/AU2020310084A1/en active Pending
- 2020-07-07 AU AU2020310952A patent/AU2020310952A1/en not_active Abandoned
- 2020-07-07 MX MX2021015660A patent/MX2021015660A/es unknown
- 2020-07-07 CN CN202080049817.1A patent/CN114097028A/zh active Pending
- 2020-07-07 US US17/596,567 patent/US20220319524A1/en active Pending
- 2020-07-07 CN CN202080050126.3A patent/CN114072874A/zh active Pending
- 2020-07-07 CA CA3145045A patent/CA3145045A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
MX2021015476A (es) | 2022-01-24 |
CA3145045A1 (en) | 2021-01-14 |
CA3145047A1 (en) | 2021-01-14 |
US20220319524A1 (en) | 2022-10-06 |
EP3997697A4 (en) | 2023-09-06 |
JP2022539608A (ja) | 2022-09-12 |
EP3997697A1 (en) | 2022-05-18 |
BR112021026678A2 (pt) | 2022-02-15 |
KR20220034102A (ko) | 2022-03-17 |
WO2021003570A1 (en) | 2021-01-14 |
EP3997698A4 (en) | 2023-07-19 |
AU2020310952A1 (en) | 2022-01-20 |
AU2020310084A1 (en) | 2022-01-20 |
KR20220034103A (ko) | 2022-03-17 |
US20220238127A1 (en) | 2022-07-28 |
MX2021015660A (es) | 2022-02-03 |
WO2021003569A1 (en) | 2021-01-14 |
CN114072874A (zh) | 2022-02-18 |
BR112021025420A2 (pt) | 2022-02-01 |
EP3997698A1 (en) | 2022-05-18 |
JP2022539884A (ja) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7124170B2 (ja) | セカンダリチャンネルを符号化するためにプライマリチャンネルのコーディングパラメータを使用するステレオ音声信号を符号化するための方法およびシステム | |
US9741354B2 (en) | Bitstream syntax for multi-process audio decoding | |
US20220238127A1 (en) | Method and system for coding metadata in audio streams and for flexible intra-object and inter-object bitrate adaptation | |
EP3762923B1 (en) | Audio coding | |
JP7285830B2 (ja) | Celpコーデックにおいてサブフレーム間にビット配分を割り振るための方法およびデバイス | |
WO2024103163A1 (en) | Method and device for discontinuous transmission in an object-based audio codec | |
WO2024051955A1 (en) | Decoder and decoding method for discontinuous transmission of parametrically coded independent streams with metadata | |
WO2024052450A1 (en) | Encoder and encoding method for discontinuous transmission of parametrically coded independent streams with metadata | |
WO2018073486A1 (en) | Low-delay audio coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40069813 Country of ref document: HK |