CN101819776B - 嵌入和获取声源定向信息的方法及音频编解码方法和系统 - Google Patents

嵌入和获取声源定向信息的方法及音频编解码方法和系统 Download PDF

Info

Publication number
CN101819776B
CN101819776B CN2009100789327A CN200910078932A CN101819776B CN 101819776 B CN101819776 B CN 101819776B CN 2009100789327 A CN2009100789327 A CN 2009100789327A CN 200910078932 A CN200910078932 A CN 200910078932A CN 101819776 B CN101819776 B CN 101819776B
Authority
CN
China
Prior art keywords
sound source
coding
code stream
syntactic structure
delta
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.)
Active
Application number
CN2009100789327A
Other languages
English (en)
Other versions
CN101819776A (zh
Inventor
冯宇红
张晨
邱嵩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanxi Vimicro Technology Co Ltd
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CN2009100789327A priority Critical patent/CN101819776B/zh
Publication of CN101819776A publication Critical patent/CN101819776A/zh
Application granted granted Critical
Publication of CN101819776B publication Critical patent/CN101819776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种在码流中嵌入声源定向信息的方法、一种音频数据的压缩编码方法、一种音频数据的解码方法、一种音频数据的压缩编解码方法,以及一种音频数据的压缩编解码系统。本发明可以将声源定向信息进行编码后添加至音频单声道数据码流的头语法结构中,从而能够实现将声源定向信息嵌入至码流中,以使得声源定向信息随码流传输。如此一来,将本发明的技术方案应用于监控场景中,就无需在监控前端和监控后端之间传输或存储多声道音频数据的码流,从而避免了监控前端输出多声道音频数据的码流而使得监控后端难以获得准确声源定向信息的问题,而且还避免了多声道音频数据的码流传输或存储占用较大传输带宽或存储空间。

Description

嵌入和获取声源定向信息的方法及音频编解码方法和系统
技术领域
本发明涉及音频数据的编解码技术,特别涉及一种在码流中嵌入声源定向信息的方法、一种从码流中获取声源定向信息的方法,还涉及一种音频压缩编解码方法和一种音频压缩编解码系统。
背景技术
在现有的某些监控场景中,通常会在监控前端利用麦克风阵列来采集音频多声道数据,然后利用麦克风阵列算法对音频多声道数据进行去噪、定位等处理,得到音频单声道数据和声源定向信息。
此后,即可基于现有的音频压缩编码标准,将音频单声道数据压缩编码、并生成码流后传输至监控后端,并由监控后端解码后播放。此外,声源定向信息也可供监控后端控制监控场景中的摄像头转动和/或移动,以实现对监控目标的跟踪。
然而,现有的音频压缩编码标准并不支持在码流中传输声源定向信息,从而使得声源定向信息无法由监控前端传输至监控后端。
为了解决上述问题,现有技术则直接将麦克风阵列采集的音频多声道数据压缩编码、并生成码流后传输至监控后端,并由监控解码后利用麦克风阵列算法对音频多声道数据进行去噪、定位等处理,以得到声源定向信息。
但由于多声道音频数据中各声道的相位关系会在监控前端的压缩编码过程中被破坏,从而使得监控后端无法获得准确的声源定位信息,而且,压缩编码后的多声道音频数据在监控前端和监控后端之间的传输或存储,也会占用大量的传输带宽或存储空间。
可见,现有技术无法实现声源定向信息随码流传输,从而不得不传输或存储多声道音频数据的码流,且基于多声道音频数据的码流难以获得准确的声源定向信息,并占用大量的传输带宽或存储空间。
发明内容
有鉴于此,本发明提供了一种在码流中嵌入声源定向信息的方法、一种从码流中获取声源定向信息的方法、一种音频压缩编解码方法,以及一种音频压缩编解码系统,能够使得声源定向信息随码流传输。
本发明提供的一种在码流中嵌入声源定向信息的方法,包括:接收音频单声道数据、及对应的声源定向信息;将所述音频单声道数据压缩编码形成码流、并在所述码流中各帧的头语法结构内添加码流信息的同时,还将所述声源定向信息编码后添加至任意一帧或多帧的所述头语法结构内、以及在各帧的头语法结构中添加用于表示头语法结构中是否有编码后的声源定向信息的声源定向标志。
本发明提供的一种从码流中获取声源定向信息的方法,包括:接收由音频单声道数据压缩编码后生成的码流,且所述码流中任意一帧或多帧的头语法结构中还包括编码后的声源定向信息、以及表示头语法结构中是否有编码后的声源定向信息的声源定向标志;在判断出所述声源定向标志表示头语法结构中有声源定向信息后,从所述码流中任意一帧或多帧的头语法结构中解码得到所述声源定向信息。
本发明提供的一种音频压缩编解码方法,该编解码方法先后包括上述音频压缩编码方法中的各步骤、以及上述音频解码方法中的各步骤。
本发明提供的一种音频压缩编解码系统,包括:相连的编码端和解码端,
所述编码端,用于上述音频压缩编码方法中各步骤对应的操作;
所述解码端,用于上述音频解码方法中各步骤对应的操作。
由上述技术方案可见,本发明可以将声源定向信息进行编码后添加至音频单声道数据码流中任意帧的头语法结构内,从而能够实现将声源定向信息嵌入至码流中,以使得声源定向信息能够随码流传输。
如此一来,如果将本发明的技术方案应用于监控场景中,就无需在监控前端和监控后端之间传输或存储多声道音频数据的码流,从而避免监控前端输出多声道音频数据的码流而使得监控后端难以获得准确声源定向信息,还避免多声道音频数据的码流传输、以及存储占用较大传输带宽或存储空间。
附图说明
图1为本发明实施例中声源定向信息包括的水平和垂直角度的示意图;
图2为本发明实施例中压缩编解码方法的示例性流程图;
图3为本发明实施例中压缩编解码系统的示例性结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
基于现有的音频压缩编码标准,音频单声道数据在压缩编码后形成的码流中通常会划分为若干个帧,且现有的音频压缩编码标准中又为每一帧都定义了用于携带例如编码模式、采样频率、通道数、码率等码流信息的头语法结构,因此,在本发明实施例中仍然对音频单声道数据压缩编码以形成码流,同时还将声源定向信息进行编码后,添加至码流中任意一帧或多帧的头语法结构内,以实现在码流中嵌入声源定向信息,并使得声源定向信息能够随码流传输。
如此一来,只要在解码时从头语法结构中解析得到声源定向信息的相关语法,即可获得每帧音频单声道数据对应的声源定向信息。
考虑到在实际应用中,并不是任何监控场景都需要传递声源定位信息的,即便需要传递也不一定必须在每一帧的头语法结构内均添加编码后的声源定向信息,因此,本发明实施例中可进一步在头语法结构中添加声源定向标志,以表示该头语法结构中是否有声源定向信息。在解码时,可以首先判断该声源定向标志是否表示头语法结构中有声源定向信息,如果是,再执行对声源定向信息的解码,否则,即可跳过对声源定位信息解码的操作。
进一步地,考虑到实际应用中,还存在连续多帧中的音频单声道数据对应相同或相近似的声源定向信息,因此,本发明实施例为了减少在码流中嵌入的声源定向信息数据量、以进一步节省码流传输带宽,可以在上述连续多帧的第一帧的头语法结构中,将声源定向标志设置为表示头语法结构中有声源定向信息的有效值,并在第一帧的头语法结构中添加压缩编码后的声源定向信息,而在除第一帧之外的后续所有帧的头语法结构中,将声源定向标志设置为表示头语法结构中无声源定向信息的无效值,且不将上述的声源定向信息压缩编码后添加至后续所有帧的头语法结构中。
在本发明实施例中,声源定向信息可以包括水平方向角度信息和/或垂直方向角度信息。水平方向角度也可称为水平方位角,在本文中表示为如图1所示的α;垂直方向角度也可称为垂直仰俯角,在本文中表示为如图1所示的β。在图1中,三位坐标轴的原点位于麦克风阵列的中心位置、X轴沿麦克风阵列的正前方向延伸、Y轴沿麦克风阵列的左侧方向延伸、Z轴沿麦克风阵列的正上方向延伸,α在逆时针方向为正、β向上为正,α和β的取值范围均为0~359度。
这样,声源定向信息在压缩编码后添加至头语法结构中的语法格式可如下所示:
Figure GSB00000675349800041
当然,声源定向信息内还可以包含其它任意方向的角度信息。由于无论是何种方向的角度信息,对其编码的原理均相同,因此,下文中就均以声源定向信息包含如图1所示的水平方向角度信息α和垂直方向角度信息β为例进行说明。
实际应用中,对于如上所列举的声源定向信息的编码方式及对应的解码方式可以为多种,以下举三种编解码方式予以说明:
1)声源定向信息的编码方式一:
a1、将水平方向角度信息α和垂直方向角度信息β除以预设的编码角度分辨率δ,得到两个N比特(N为正整数)的二进制数、即编码后的水平方向角度信息
Figure GSB00000675349800051
和编码后的垂直方向角度信息
Figure GSB00000675349800052
以实现对声源定向信息的编码。该编码过程可以表示为:
α ^ = Round ( α / δ ) , β ^ = round ( β / δ ) .
其中,N的取值满足
Figure GSB00000675349800054
或更进一步地具体满足
Figure GSB00000675349800055
a2、可选地,进一步对N比特二进制数、即压缩编码后得到的
Figure GSB00000675349800056
Figure GSB00000675349800057
补零,以使得嵌入有补零后的N比特二进制数、即补零后的
Figure GSB00000675349800058
Figure GSB00000675349800059
的头语法结构为整数字节。
以下分别以10度、5度和1度的编码角度分辨率δ为例进一步说明:
当编码角度分辨率δ为10度时,水平方向角度信息α和垂直方向角度信息β分别以6比特进行压缩编码、即N取6,其有效范围为0~36度。假设,55度或60度的α和β经压缩编码后得到的
Figure GSB000006753498000510
Figure GSB000006753498000511
表示为“000110”。
当编码角度分辨率δ为5度时,水平方向角度信息α和垂直方向角度信息β分别以7比特进行压缩编码、即N取7,其有效范围为0~72度。假设,55度的α和β经编码后得到的
Figure GSB000006753498000513
表示为“0001011”,而60度的α和β经编码后得到的
Figure GSB000006753498000514
Figure GSB000006753498000515
表示为“0001100”。
当编码角度分辨率δ为1度时,水平方向角度信息α和垂直方向角度信息β分别以9比特进行压缩编码、即N取9,其有效范围为0~359度。假设,55度的α和β经编码后得到的
Figure GSB00000675349800061
Figure GSB00000675349800062
表示为“000110111”,而60度的α和β经编码后得到的
Figure GSB00000675349800063
Figure GSB00000675349800064
表示为“000111100”。
将水平方向角度信息α和垂直方向角度信息β按照编码方式一编码后,添加至头语法结构中的语法格式可如下所示:
相应地,编码方式一对应的解码方式一即可表示为:
α ′ = Round ( α ^ × δ ) , β ′ = Round ( β ^ × δ )
其中,α′为解码后的水平方向角度信息、β′解码后的垂直方向角度信息。
如上所述,水平方向角度信息α和垂直方向角度信息β可以6、7、9等非整数字节的比特进行压缩编码,那么在这种情况下,将压缩编码后得到的
Figure GSB00000675349800067
Figure GSB00000675349800068
添加至头语法结构中,就有可能导致头语法结构为非整数字节。而非整数字节的头语法结构则易增加解码处理的负担。
对于编码得到的6、7、9比特的
Figure GSB000006753498000610
对应的补零方式可分别参见表1~表3。
表1
Figure GSB00000675349800071
表2
Figure GSB00000675349800072
表3
2)声源定向信息的编码方式二、本文称其为差分跟踪编码方式。差分跟踪编码方式主要是利用码流中连续的前后帧所分别对应的声源定向信息之间的相关性,而不是如编码方式一那样保留声源定向信息本身的全部信息,这样可以进一步节省码流传输所占用的带宽;且差分跟踪编码方式在码字的最大取值不足以表示所述相关性的信息时,直接用码字的最大取值表示该相关性的信息,并在连续多帧中利用码字的最大取值实现对该相关性的信息的收敛。
差分跟踪编码方式的基本原理包括:
b1、将当前帧所对应的每个方向的角度信息分别与前一帧中对应的同一方向的角度信息进行差分运算,得到每个方向的9比特的第一差分运算结果,且第一差分运算结果的最高位为符号位。其中,这里所述的9比特是为了保证0~359度之间的取值范围,当然,实际应用中也可采用10、11等大于9的比特数。本文后续所出现的9比特也是如此,即本文中出现的9比特实际均可替换为至少9比特。
对于包含水平方向角度信息α和垂直方向角度信息β的这种情况,将当前第i帧所对应的水平方向角度信息α(i)和垂直方向角度信息β(i)分别与前一帧第i-1帧所对应的水平方向角度信息α(i-1)和垂直方向角度信息β(i-1)进行差分运算,得到对应的9比特第一差分运算结果delta_α(i)和delta_β(i),i为大于1的正整数,第一差分运算结果delta_α(i)和delta_β(i)的取值范围在0~359度之间。
其中,差分跟踪编码方式中的差分运算过程可以表示为:
delta_α(i)=(α(i)-α(i-1))rem360,delta_β(i)=(β(i)-β(i-1))rem360;
其中,本文中所出现的“rem”均表示取余数运算。
此后,再将第一差分运算结果delta_α(i)和delta_β(i)的取值范围转换至±180度之间,并设定第一差分运算结果delta_α(i)和delta_β(i)的最高位为符号位。以水平方向角度信息的第一差分运算结果delta_α(i)为例,转换过程可表示为:如果delta_α(i)>180,则delta_α(i)=delta_α(i)-360。
b2、为了减少第一差分运算结果的比特数、以节省码流所占用的带宽,利用预设的编码角度分辨率δ量化每个方向的第一差分运算结果,得到每个方向的M比特的第二差分运算结果,并可将每个方向的第二差分运算结果分别确定为该方向角度信息编码后的结果。第二差分运算结果的最高位为符号位,M为正整数、0<M<9,
Figure GSB00000675349800081
δ为大于等于1的正整数。
实际应用中,可先判断每个方向的第一差分运算结果的取值是否足以用M比特表示,例如判断每个方向的第一差分运算结果的取值是否在±(2M-1-1)δ之间;如果任一方向的第一差分运算结果的取值足以用M比特表示、例如该方向的第一差分运算结果的取值在±(2M-1-1)δ之间,则计算该方向的第一差分运算结果除以编码角度分辨率δ的商,并将该商确定为该方向的第二差分运算结果;如果任一方向的第一差分运算结果的取值不足以用M比特表示、例如该方向的第一差分运算结果的取值大于(2M-1-1)δ或小于-(2M-1-1)δ,则将M比特所能够表示的极值确定为该方向的第二差分运算结果。
对于包含水平方向角度信息α和垂直方向角度信息β的这种情况,利用预设的编码角度分辨率δ量化第一差分运算结果delta_α(i)和delta_β(i),得到取值范围在±(2M-1-1)之间的量化后的水平方向的第二差分运算结果
Figure GSB00000675349800091
和垂直方向的第二差分运算结果
Figure GSB00000675349800092
Figure GSB00000675349800093
Figure GSB00000675349800094
即可分别作为水平方向角度信息编码后的结果和垂直方向角度信息编码后的结果添加至头语法结构中。
以水平方向角度信息的差分运算结果delta_α(i)为例,其对应的差分跟踪编码方式中的量化过程可以表示为:
delt a ^ _ &alpha; ( i ) = round ( delta _ &alpha; ( i ) / &delta; ) , 0 &le; delta _ &alpha; ( i ) &le; ( 2 M - 1 - 1 ) &delta; delt a ^ _ &alpha; ( i ) = - round ( - delta _ &alpha; ( i ) / &delta; ) , - ( 2 M - 1 - 1 ) &delta; &le; delta _ &alpha; ( i ) < 0 delt a ^ _ &alpha; ( i ) = ( 2 M - 1 - 1 ) , ( 2 M - 1 - 1 ) &delta; < delta _ &alpha; ( i ) &le; 180 delt a ^ _ &alpha; ( i ) = - ( 2 M - 1 - 1 ) , - 180 < delta _ &alpha; ( i ) < - ( 2 M - 1 - 1 ) &delta;
或者,该量化过程可以进一步简化地表示为:
delt a ^ _ &alpha; ( i ) = round ( delta _ &alpha; ( i ) / &delta; ) , - ( 2 M - 1 - 1 ) &delta; &le; delta _ &alpha; ( i ) &le; ( 2 M - 1 - 1 ) &delta; delt a ^ _ &alpha; ( i ) = ( 2 M - 1 - 1 ) , ( 2 M - 1 - 1 ) &delta; < delta _ &alpha; ( i ) &le; 180 delt a ^ _ &alpha; ( i ) = - ( 2 M - 1 - 1 ) , 180 < delta _ &alpha; ( i ) < - ( 2 M - 1 - 1 ) &delta;
同理,垂直方向角度信息的差分运算结果delta_β(i)所对应的量化过程也是如此。
b3、基于上述量化方式,在编码角度分辨率δ大于1时,利用编码角度分辨率δ量化得到的每个方向的第二差分运算结果均会存在误差;在编码角度分辨率等于1时,取值位于±(2M-1-1)δ之外的第一差分运算结果经量化后会被直接赋值为±(2M-1-1)、因而也会存在误差。因此,对于存在误差的这两种情况,利用对应方向的第二差分运算结果、编码角度分辨率δ、以及前一帧中对应的该方向的角度信息,更新当前帧对应方向的角度信息,用以补偿量化该方向的第一差分运算结果时产生的误差、并供编码下一帧对应的该方向的角度信息时使用。
对于包含水平方向角度信息α和垂直方向角度信息β的这种情况,可利用量化后得到的第二差分运算结果
Figure GSB00000675349800101
和/或编码角度分辨率δ、以及前一帧对应的水平方向角度信息α(i-1)和垂直方向角度信息β(i-1),更新当前帧对应的水平方向角度信息α(i)和/或垂直方向角度信息β(i),以补偿量化delta_α(i)和/或delta_β(i)时产生的误差、并供编码下一帧对应的水平方向角度信息α(i+1)和垂直方向角度信息β(i+1)时使用。
以更新水平方向角度信息α(i)为例,差分跟踪编码方式中的更新过程可表示为:
如果
Figure GSB00000675349800103
的最高位为正,即如果
Figure GSB00000675349800104
则更新 &alpha; ( i ) = ( &alpha; ( i - 1 ) + &delta; &times; delt a ^ _ &alpha; ( i ) [ M - 1 : 1 ] ) rem 360 ;
如果的最高位为负,即如果
Figure GSB00000675349800107
则更新 &alpha; ( i ) = ( &alpha; ( i - 1 ) + &delta; &times; delt a ^ _ &alpha; ( i ) [ M - 1 : 1 ] ) rem 360 .
或者,该更新过程可以进一步简化地表示为:
&alpha; ( i ) = ( &alpha; ( i - 1 ) + &delta; &times; delt a ^ _ &alpha; ( i ) ) rem 360 .
由于每一帧对应的水平方向角度信息α(i)和垂直方向角度信息β(i)均按照上述方式更新、以供编码下一帧对应的水平方向角度信息α(i+1)和垂直方向角度信息β(i+1)时使用,因而如前所述的误差不会累积。
将水平方向角度信息α和垂直方向角度信息β按照编码方式二、即差分跟踪方式编码后,添加至头语法结构中的语法格式均可如下所示:
Figure GSB000006753498001010
Figure GSB00000675349800111
相应地,差分跟踪编码方式、即编码方式二对应的解码方式二即可利用编码角度分辨率δ、以及在前一帧中解码得到的每一方向的角度信息,分别对当前帧中同一方向的M比特的第二差分运算结果进行解码,得到当前帧中每个方向的角度信息。
以水平方向角度信息编码后的结果
Figure GSB00000675349800112
为例,差分跟踪编码方式、即编码方式二对应的解码方式二则利用编码角度分辨率δ、以及在前一帧中解码得到的水平方向角度信息α(i-1)′,对该
Figure GSB00000675349800113
解码得到当前帧中的水平方向角度信息α(i)′,具体表示为:
如果
Figure GSB00000675349800114
的最高位为正,即如果
Figure GSB00000675349800115
则解码后的水平方向角度信息 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; + &delta; &times; delt a ^ _ &alpha; ( i ) [ M - 1 : 1 ] ) rem 360 ;
如果
Figure GSB00000675349800117
的最高位为负,即如果
Figure GSB00000675349800118
则解码后的水平方向角度信息 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; - &delta; &times; delt a ^ _ &alpha; ( i ) [ M - 1 : 1 ] ) rem 360 .
或者,该解码方式二可以进一步简化地表示为:
解码后的水平方向角度信息 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; + &delta; &times; delt a ^ _ &alpha; ( i ) ) rem 360 .
当然,为了便于解码端的定位,上述解码方式二也可设定解码得到的每一方向的角度信息的取值范围在±180度之间。
如前所述,由于编码时可利用前述更新过程来消除误差的累积,且解码时也会基于该更新过程的原理、同时利用量化后的差分运算结果
Figure GSB000006753498001111
Figure GSB000006753498001112
及前一帧解码得到的水平方向角度信息α(i-1)′进行解码,因而最多只需要
Figure GSB000006753498001113
帧即可实现解码得到准确角度信息的收敛。其中,编码角度分辨率δ越大,如前所述的误差就会越大,但收敛速度会越快、即T越小。
而且,解码方式二的基本原理与编码方式二中更新过程的基本原理相同,因而编码方式二中的更新过程可看作是与解码端的同步。
以下,对于上述差分跟踪方式的编解码过程,以水平方向角度信息编码后的结果
Figure GSB00000675349800121
为例,假设编码角度分辨率δ取5、M取4(可以使得水平方向和垂直方向编码后的结果总共只占1个字节),并举一实例进行说明。
先将当前帧所对应的水平方向角度信息α(i)与前一帧所对应的水平方向角度信息α(i-1)进行差分运算,且α(i-1)的最高位为符号位。
然后量化差分运算结果delta_α(i),得到取值范围在±7之间的量化后的水平方向差分运算结果
Figure GSB00000675349800122
delt a ^ _ &alpha; ( i ) = round ( delta _ &alpha; ( i ) / 5 ) , 0 &le; delta _ &alpha; ( i ) &le; 35 delt a ^ _ &alpha; ( i ) = 1000 + round ( - delta _ &alpha; ( i ) / 5 ) , - 35 &le; delta _ &alpha; ( i ) < 0 delt a ^ _ &alpha; ( i ) = 0111 , 35 < delta _ &alpha; ( i ) &le; 180 delt a ^ _ &alpha; ( i ) = 1111 - 180 < delta _ &alpha; ( i ) < - 35
再利用量化后的差分运算结果
Figure GSB00000675349800124
以及前一帧对应的水平方向角度信息α(i-1),更新当前帧对应的水平方向角度信息α(i):
&alpha; ( i ) = ( &alpha; ( i - 1 ) + 5 &times; delt a ^ _ &alpha; ( i ) ) rem 360 .
此后,即可按照 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; + 5 &times; delt a ^ _ &alpha; ( i ) ) rem 360 进行解码,并经
Figure GSB00000675349800127
帧即可实现解码得到准确角度的收敛。
需要说明的是,在进行差分运算时将第一差分运算结果的取值范围转换至±180度之间,并设定第一差分运算结果的最高位为符号位、以及第二差分运算结果的最高位为符号位,主要为了解码端在解码后能够更快捷地实现准确定位。假设编码角度分辨率δ取5、M取4,任一方向的第一差分运算结果为350度,那么对应的第二差分运算结果就只有7度,解码端解码后就只能在正方向上旋转35度,如此一来就需要10帧才能够实现收敛;而如果将第一差分运算结果量化在±180度之间,仍假设编码角度分辨率δ取5、M取4,任一方向350度的第一差分运算结果就会变为-10度,那么对应的第二差分运算结果就也是-2度,解码端解码后就直接在负方向上旋转10度即可实现准确定位,从而无需后续帧的收敛。
此外,更优地,考虑到差分跟踪编码方式如b2所述的前述量化过程的具体实现方式中,00...00、10...00分别表示正负0度,显然浪费了可用于编码的码字,因此,在本发明实施例中,差分跟踪编码方式可采用另一种量化过程的具体实现方式予以替换。
另一种量化过程的具体实现方式利用10...00、即2M-1表示180度,如果任一方向的第一差分运算结果的取值不足以用M比特表示,且该方向的第一差分运算结果未接近±180度,则将M比特所能够表示的极值确定为该方向的M比特的第二差分运算结果;如果任一方向的第一差分运算结果的取值不足以用M比特表示,且该方向的第一差分运算结果接近±180度,则将表示180度的特殊码字2M-1确定为该方向的M比特的第二差分运算结果。
对于包含水平方向角度信息α和垂直方向角度信息β的这种情况,在量化过程中将接近±180度的delta_α(i)和delta_β(i)量化为表示180度的10...00。这样,相比于将接近±180度的delta_α(i)和delta_β(i)量化为±(2M-1-1)度的前述量化过程,将接近±180度的delta_α(i)和delta_β(i)量化为表示180度的10...00所产生的误差更小,从而使得收敛速度更快。
具体来说,以水平方向角度信息的差分运算结果delta_α(i)为例,将绝对值大于预设的极限角度γ确定为接近±180度、γ≥90,那么将接近±180度的delta_α(i)和delta_β(i)量化为表示180度的10...00的另一种量化过程的具体实现方式可表示为:
delt a ^ _ &alpha; ( i ) = round ( delta _ &alpha; ( i ) / &delta; ) , 0 &le; delta _ &alpha; ( i ) &le; ( 2 M - 1 - 1 ) &delta; delt a ^ _ &alpha; ( i ) = - round ( - delta _ &alpha; ( i ) / &delta; ) , - ( 2 M - 1 - 1 ) &delta; &le; delta _ &alpha; ( i ) < 0 delt a ^ _ &alpha; ( i ) = ( 2 M - 1 - 1 ) , ( 2 M - 1 - 1 ) &delta; < delta _ &alpha; ( i ) &le; &gamma; delt a ^ _ &alpha; ( i ) = - ( 2 M - 1 - 1 ) , - &gamma; < delta _ &alpha; ( i ) < - ( 2 M - 1 - 1 ) &delta; delt a ^ _ &alpha; ( i ) = 2 M - 1 , | delta _ &alpha; ( i ) | > &gamma;
或者,该量化过程可以进一步简化地表示为:
delt a ^ _ &alpha; ( i ) = round ( delta _ &alpha; ( i ) / &delta; ) , - ( 2 M - 1 - 1 ) &delta; &le; delta _ &alpha; ( i ) &le; ( 2 M - 1 - 1 ) &delta; delt a ^ _ &alpha; ( i ) = ( 2 M - 1 - 1 ) , ( 2 M - 1 - 1 ) &delta; < delta _ &alpha; ( i ) &le; &gamma; delta _ &alpha; ( i ) = - ( 2 M - 1 - 1 ) , - &gamma; < delta _ &alpha; ( i ) < - ( 2 M - 1 - 1 ) &delta; delt a ^ _ &alpha; ( i ) = 2 M - 1 , | delta _ &alpha; ( i ) | > &gamma;
同理,垂直方向角度信息的差分运算结果delta_β(i)所对应的另一种量化过程的具体实现方式也是如此。
仍假设编码角度分辨率δ取5、M取4,并假设γ取90度,且以水平方向角度信息的差分运算结果delta_α(i)为例,则另一种量化过程的具体实现方式可表示为:
delt a ^ _ &alpha; ( i ) = round ( delta _ &alpha; ( i ) / 5 ) , 0 &le; delta _ &alpha; ( i ) &le; 35 delt a ^ _ &alpha; ( i ) = 1000 + round ( - delta _ &alpha; ( i ) / 5 ) , - 35 &le; delta _ &alpha; ( i ) < 0 delt a ^ _ &alpha; ( i ) = 0111,35 < delta _ &alpha; ( i ) &le; 90 delt a ^ _ &alpha; ( i ) = 1111 , - 90 &le; delta _ &alpha; ( i ) < - 35 delt a ^ _ &alpha; ( i ) = 1000 , | delta _ &alpha; ( i ) | > 90
本发明实施例中的差分跟踪编码方式相比于编码方式一,均具有如下优势:
当某个声源发声并移动时,短时间间隔内的移动角度通常都较小,只有当另一个位置的声源发声、并取代这个声源时,才会发生大角度的跳转。因此,无论采用哪一种量化过程,即便将delta_α(i)和delta_β(i)的取值范围量化在±(2M-1-1)之间,在绝大多数情况下仍能够在解码端立即获得准确的角度信息,只有发生上述大角度的跳转时,才处于跟踪收敛状态,且这个收敛速度很快。如此一来,在不影响声源定位信息准确度的情况下,差分跟踪编码方式相比于编码方式一能够减少码流所占的带宽。
且编码方式一所需要的比特数取决于角度的大小,角度越大则需要的码字比特数越多,例如对于±(2M-1-1)δ角度范围之外的角度,编码方式一需要的码字比特数一定大于M,那么为了统一所有角度所需码字的码字比特数、以保证恒定的码率,编码方式一只能够按照角度的最大取值来设定码字的比特数,从而需要的码字比特数会比较多。因此,差分跟踪编码方式相比于编码方式一能够减少码字的比特数,从而减少码流所需带宽。进一步地,当M取4、且不设置声源定向标志时,水平方向和垂直方向编码后的结果总共只占1个字节。
可选地,考虑到跟踪收敛时解码得到的角度信息并不准确,解码端可以将其认为是一个过渡结果并丢弃,表示跟踪收敛状态时的过渡结果的码字包括±(2M-1-1)、2M-1。解码端可等到出现其他码字时,再获取准确的角度信息。
3)编码方式三,本文称其为差分分级编码方式。差分分级编码方式也利用码流中连续的前后帧所分别对应的声源定向信息之间的相关性,而不是如编码方式一那样保留声源定向信息本身的全部信息,这一点与差分跟踪编码方式基本相同。但与差分跟踪编码方式的不同之处在于,差分分级编码方式在在预定比特的码字不足以表示所述相关性的信息时,降低码字所表示的角度精度以通过第一编码级别实现粗定位,并在后续帧中恢复码字所表示的角度精度、以通过第二编码级别实现精定位。
较佳地,可设置Q与q相等,以使得第一编码级别和第二编码级别的码率相同;如果Q与q不相等,但却仍需要保证第一编码级别和第二编码级别的码率相同,则可在Q大于q时,进一步对第一编码级别的q比特码字补相应数量个0、或表示其他信息的相应数量比特;在Q小于q时,进一步对第二编码级别的Q比特码字补相应数量个0、或表示其他信息的相应数量比特。
具体来说,对于差分分级编码方式,可将360度等分为P个单位角度区间,每个单位角度区间包括
Figure GSB00000675349800151
度,且对于预定的Q比特,2q-1<P<2q,P为可被360整除的正整数,
Figure GSB00000675349800152
较佳地,P的取值应尽可能接近2q,和/或
Figure GSB00000675349800154
尽可能接近(2Q-1×θ),以更充分地利用第一编码级别的q比特码字、以及第二编码级别的Q比特码字。
其中,P个单位角度区间的取值、即
Figure GSB00000675349800161
度,可看作是第一编码级别对应的第一级角度精度,那么在第一编码级别的编码过程中,即可利用
Figure GSB00000675349800162
度的第一级角度精度,对位于±(2Q-1×θ)角度范围之外的差分运算结果量化处理至0~P的取值范围内,以使得量化得到的q比特足以表示差分运算结果中的所述相关性的信息,用以实现粗定位。
相应地,每个单位角度区间内任意大小的角度θ则可看作第二编码级别对应的第二级角度精度,在第二编码级别的编码过程中,只需将位于±(2Q-1×θ)角度范围之内的差分运算结果,按照取值大于等于1度且小于
Figure GSB00000675349800163
度的第二级角度精度θ量化处理至±2Q-1的取值范围内,以使得量化得到的Q比特足以表示差分运算结果中的所述相关性的信息,用以实现精定位。只要
Figure GSB00000675349800164
那么第一编码级别有可能产生的量化误差最大绝对值
Figure GSB00000675349800165
就不会导致无法进入第二编码级别的状态。
实际应用中,第二级角度精度θ的具体取值还可以参考P、q、Q的取值、以及实际需要来选定。假设P取30、q取5,如果需要Q与q相同也取5,则需要选定第二级角度精度θ取1;又假设P取30、q取5,如果需要Q小于q并取4,则需要选定第二级角度精度θ取2;再假设P取12、q取4,如果需要Q与q相同也取4,则需要选定第二级角度精度θ取5。也就是说,在进一步满足的
Figure GSB00000675349800166
情况下,可使得Q与q相等。较佳地,第二级角度精度θ取1,这样可以最为充分地利用Q比特码字,以使得精定位的精确度最高。
上述差分分级编码方式的基本原理包括:
c1、将当前帧所对应的每个方向的角度信息分别与前一帧中对应的同一方向的角度信息进行差分运算,得到每个方向的9比特(或至少9比特)的第三差分运算结果,且第三差分运算结果无符号位。
对于包含水平方向角度信息α和垂直方向角度信息β的这种情况,将当前第i帧所对应的水平方向角度信息α(i)和垂直方向角度信息β(i)分别与前一帧第i-1帧所对应的水平方向角度信息α(i-1)和垂直方向角度信息β(i-1)进行差分运算,得到对应的第三差分运算结果delta_α(i)和delta_β(i),i为大于1的正整数、且第三差分运算结果delta_α(i)和delta_β(i)的取值范围在0~359度之间。
其中,差分跟踪编码方式中的差分运算过程可以表示为:
delta_α(i)=(α(i)-α(i-1))rem360;delta_β(i)=(β(i)-β(i-1))rem360。
c2、判断每个方向的第三差分运算结果的取值是否位于预定的角度范围±(2Q-1×θ)之外,即是否足以用Q比特表示。
实际应用中,可判断每个方向的第三差分运算结果的取值、以及360度与每个方向的第三差分运算结果之差是否均大于等于(2Q-1×θ),如果任一方向的第三差分运算结果的取值、以及360度与该个方向的第三差分运算结果之差均大于等于(2Q-1×θ),则表示该方向第三差分运算结果的取值位于预定的角度范围之外、不足以用Q比特表示;如果任一方向的第三差分运算结果的取值、或360度与该方向的第三差分运算结果之差小于(2Q-1×θ),则表示该方向第三差分运算结果的取值位于预定的角度范围之内、足以用Q比特表示。
如果任一方向的第三差分运算结果的取值位于预定的角度范围之外,则设定该方向对应的编码级别为表示粗定位的第一编码级别,并利用
Figure GSB00000675349800171
度的第一级角度精度量化该方向的第三差分运算结果,例如量化为
Figure GSB00000675349800172
度的倍数,得到该方向的q比特第四差分运算结果,并将该方向的第四差分运算结果确定为该方向角度信息编码后的结果,且第四差分运算结果无符号位。
如果任一方向的第三差分运算结果的取值位于预定的角度范围之内,则设定该方向对应的编码级别为表示粗定位的第二编码级别,并利用大于等于1且小于
Figure GSB00000675349800181
度的第二级角度精度θ量化该方向的第三差分运算结果,得到该方向的Q比特第五差分运算结果,并将该方向的第五差分运算结果确定为该方向角度信息编码后的结果,第五差分运算结果的最高位为符号位。
对于包含水平方向角度信息α和垂直方向角度信息β、且Q比特最高位为符号位的这种情况,判断delta_α(i)、以及360度与delta_α(i)之差是否均大于等于(2Q-1×θ),并判断delta_β(i)、以及360度与delta_β(i)之差是否均大于等于(2Q-1×θ)。
如果delta_α(i)及360度与delta_α(i)之差、和/或delta_β(i)及360度与delta_β(i)之差均大于等于(2Q-1×θ),则表示该delta_α(i)和/或delta_β(i)位于±(2Q-1×θ)角度范围之外、且不足以用Q比特表示,因而设定该delta_α(i)和/或delta_β(i)对应的编码级别为表示粗定位的第一编码级别,并将该delta_α(i)和/或delta_β(i)量化为
Figure GSB00000675349800182
度的倍数,以水平方向角度信息的第三差分运算结果delta_α(i)为例,该过程可表示为:
Level_α(i)=1,
delta _ &alpha; ( i ) ^ = round ( delta _ &alpha; ( i ) / ( 360 P ) ) , delta _ &alpha; ( i ) &GreaterEqual; 2 Q - 1 &theta; , 360 - delta _ &alpha; ( i ) &GreaterEqual; 2 Q - 1 &times; &theta; .
如果delta_α(i)和/或delta_β(i)小于2Q-1、或者360度与delta_α(i)和/或delta_β(i)之差小于(2Q-1×θ),则表示该delta_α(i)和/或delta_β(i)位于±(2Q-1×α)角度范围内、且足以用Q比特表示,因而设定该delta_α(i)和/或delta_β(i)对应的编码级别为表示精定位的第二编码级别,并先利用第二级角度精度θ量化该delta_α(i)和/或delta_β(i),然后将该delta_α(i)和/或delta_β(i)量化结果的取值范围转换至±2Q-1角度范围之内、以使其最高位为符号位,从而得到作为编码后结果的第五差分运算结果
Figure GSB00000675349800184
和/或
Figure GSB00000675349800185
当delta_α(i)和/或delta_β(i)小于(2Q-1×θ)时,可以计算该
Figure GSB00000675349800186
和/或
Figure GSB00000675349800187
与第二级角度精度θ的商。以水平方向角度信息的差分运算结果delta_α(i)为例,该量化过程可表示为:
Level_α(i)=0,
Figure GSB00000675349800191
delta_α(i)<2Q-1×θ。
对于第二级角度精度θ取1的一种特殊情况,该量化过程可以等效于直接将该delta_α(i)和/或delta_β(i)确定为作为编码后结果的第五差分运算结果
Figure GSB00000675349800192
和/或
Figure GSB00000675349800193
当360度与delta_α(i)之差小于(2Q-1×θ)时,可以计算该
Figure GSB00000675349800194
和/或与360度之差除以第二级角度精度θ的商。以水平方向角度信息的差分运算结果delta_α(i)为例,该量化过程可表示为:
Level_α(i)=0, delta _ &alpha; ( i ) ^ = ( delta _ &alpha; ( i ) - 360 ) / &theta; , 360-delta_α(i)<2Q-1×θ。
对于第二级角度精度θ取1的一种特殊情况,该量化过程可以等效于直接将该和/或
Figure GSB00000675349800198
与360度之差,确定为作为编码后结果的第五差分运算结果
Figure GSB00000675349800199
和/或
Figure GSB000006753498001910
以水平方向角度信息的差分运算结果delta_α(i)为例,等效的上述量化过程可表示为:
delta _ &alpha; ( i ) ^ = ( delta _ &alpha; ( i ) - 360 ) , 360 - delta _ &alpha; ( i ) < 2 Q - 1 &times; &theta; .
同理,垂直方向角度信息的差分运算结果delta_β(i)所对应的量化过程也是如此。
c3、基于上述量化方式,第一编码级别利用
Figure GSB000006753498001912
度进行量化,因而会产生误差,而当第二级角度精度θ大于1时,第二编码级别利用第二级角度精度θ进行量化也会产生误差。因此,为了补偿第一编码级别存在的误差,可利用对应方向的第四差分运算结果、第一级角度精度度、以及前一帧中对应方向的角度信息,更新当前帧对应方向的角度信息,以供编码下一帧对应方向的角度信息时使用;为了补偿第二编码级别存在的误差,可利用对应方向的第五差分运算结果、第二级角度精度θ、以及前一帧中对应方向的角度信息,更新当前帧对应方向的角度信息,以供编码下一帧对应方向的角度信息时使用。
以更新水平方向角度信息α(i)为例,在使用第一编码级别时,差分分级编码方式中的更新过程可表示为:
&alpha; ( i ) = ( &alpha; ( i - 1 ) + 360 P &times; delta _ &alpha; ^ ( i ) ) rem 360 ;
在使用第二编码级别时,差分分级编码方式中的更新过程可表示为:
&alpha; ( i ) = ( &alpha; ( i - 1 ) + &theta; &times; delta _ &alpha; ( i ) ^ ) rem 360 .
由于在使用第一编码级别时,每个方向的角度信息均可按照上述方式更新、以供编码下一帧对应方向的角度信息时使用,因而如前所述的误差不会累积。
假设P取30、Q取5、第二级角度精度θ取1、Q比特最高位为符号位,即将360度等分为30个单位角度区间,每个单位角度区间包括12度,并以水平方向角度信息α(i)为例,举一实例对编码方式三进行说明。
先将当前帧所对应的水平方向角度信息α(i)与前一帧所对应的水平方向角度信息α(i-1)进行差分运算。
然后判断delta_α(i)、以及360度与delta_α(i)之差是否均大于16。
如果delta_α(i)、以及360度与delta_α(i)之差均大于等于16,则表示该delta_α(i)位于±16角度范围之外,因而设定该delta_α(i)对应的编码级别为表示粗定位的第一编码级别并将delta_α(i)量化为12度的倍数,即:
Level_α(i)=1,
delta _ &alpha; ( i ) ^ = round ( delta _ &alpha; ( i ) / 12 ) , delta _ &alpha; ( i ) &GreaterEqual; 16,360 - delta _ &alpha; ( i ) &GreaterEqual; 16 ;
且更新水平方向角度信息 &alpha; ( i ) = ( &alpha; ( i - 1 ) + 12 &times; delta _ &alpha; ( i ) ^ ) rem 360 .
如果delta_α(i)小于16,则表示该delta_α(i)位于±16角度范围内,因而设定该delta_α(i)对应的编码级别为表示精定位的第二编码级别,并直接将该delta_α(i)确定为编码后的结果
Figure GSB00000675349800205
即:
Level_α(i)=0,
delta _ &alpha; ( i ) ^ = delta _ &alpha; ( i ) , delta _ &alpha; ( i ) < 2 Q - 1 .
如果360度与delta_α(i)之差小于16,则表示该delta_α(i)位于±16角度范围内,因而设定该delta_α(i)对应的编码级别为表示精定位的第二编码级别,并将delta_α(i)量化至±16的范围内,即:
Level_α(i)=0,
delta _ &alpha; ( i ) ^ = delta _ &alpha; ( i ) - 360,360 - delta _ &alpha; ( i ) < 16 .
需要说明的是,第一编码级别的q比特码字的最高位也可以为符号位。那么此时,如果delta_α(i)及360度与delta_α(i)之差、和/或delta_β(i)及360度与delta_β(i)之差均大于等于2Q-1,则也需要将该delta_α(i)和/或delta_β(i)的取值范围转换至±2Q-1角度范围之内、以将该delta_α(i)和/或delta_β(i)的最高位设置为符号位;或者,由于第二编码级别也需要上述角度范围的转换,因而可在差分运算之后、判断第一编码级别和第二编码级别之前,统一对将delta_α(i)和delta_β(i)的取值范围转换至±2Q-1角度范围之内、以将delta_α(i)和delta_β(i)的最高位设置为符号位。
将水平方向角度信息α和垂直方向角度信息β按照编码方式三、即差分分级方式压缩后,其在编码后添加至头语法结构中的语法格式可如下所示:
Figure GSB00000675349800213
Figure GSB00000675349800221
相应地,差分分级编码方式、即编码方式三对应的解码方式三需要先判断每一方向角度信息编码后的结果分别对应的编码级别;
如果当前帧中的任一方向对应第一编码级别,则利用第一级角度精度、以及在前一帧中解码得到的该方向角度信息,对当前帧中该方向角度信息编码后的结果进行解码,得到当前帧中该方向的角度信息;
如果当前帧中的任一方向对应第二编码级别,则利用第二级角度精度、以及在前一帧中解码得到的该方向角度信息,对当前帧中该方向角度信息编码后的结果进行解码,得到当前帧中该方向的角度信息。
以水平方向角度信息编码后的结果
Figure GSB00000675349800222
为例,差分分级编码方式、即编码方式三对应的解码方式三即可表示为:
判断
Figure GSB00000675349800223
所对应的编码级别。
如果
Figure GSB00000675349800224
所对应的编码级别为表示粗定位的第一编码级别,则利用第一级角度精度
Figure GSB00000675349800225
以及在前一帧中解码得到的水平方向角度信息α(i-1)′,对该解码得到当前帧中的水平方向角度信息α(i)′,具体表示为:
&alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; + 360 P &times; delta _ &alpha; ^ ( i ) ) rem 360
如果
Figure GSB00000675349800228
所对应的编码级别为表示精定位的第二编码级别,则利用大于等于1且小于
Figure GSB00000675349800229
度的第二级角度精度θ、以及在前一帧中解码得到的水平方向角度信息α(i-1)′,对该
Figure GSB000006753498002210
解码得到当前帧中的水平方向角度信息α(i)′,具体表示为:
Figure GSB000006753498002211
的最高位为正、即时,
解码后的水平方向角度信息 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; + &theta; &times; delta _ &alpha; ( i ) ^ [ M - 1 : 1 ] ) rem 360 ;
Figure GSB00000675349800231
的最高位为负、即
Figure GSB00000675349800232
时,
解码后的水平方向角度信息 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; - &theta; &times; delta _ &alpha; ( i ) ^ [ M - 1 : 1 ) rem 360 .
或者,如果
Figure GSB00000675349800234
所对应的编码级别为表示精定位的第二编码级别,该解码方式三可以进一步简化地表示为:
解码后的水平方向角度信息 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; + &theta; &times; delta _ &alpha; ( i ) ^ ) rem 360 .
对于第二级角度精度θ取1的一种特殊情况,如果所对应的编码级别为表示精定位的第二编码级别,则解码方式三可等效地表示为:
解码后的水平方向角度信息 &alpha; ( i ) &prime; = ( &alpha; ( i - 1 ) &prime; + delta _ &alpha; ( i ) ^ ) rem 360
同理,垂直方向角度信息编码后的结果
Figure GSB00000675349800238
所对应的解码过程也是如此。
而且,解码方式三的基本原理与编码方式三中更新过程的基本原理相同,因而编码方式三中的更新过程可看作是与解码端的同步。
本发明实施例中的差分分级编码方式相比于编码方式一和编码方式二,具有如下优势:
当某个声源发声并移动时,短时间间隔内的移动角度通常都较小,即通常会采用基于第二级角度精度θ的第二编码级别实现精定位,而只有当另一个位置的声源发声、并取代这个声源时,才会发生大角度的跳转,并采用基于度的第一级角度精度的第一编码级别。因此,在绝大多数情况下仍能够在解码端立即获得准确的角度信息,即便发生上述大角度的跳转、并采用第一编码级别实现粗定位,但后续只需要1帧的精定位即可实现收敛,收敛速度明显快于编码方式二。
假设P取30、Q取5、第二级角度精度θ取1,并假设:
在0时刻,声源的水平方向角度α(0)=110、垂直方向角度β(0)=10;
在1时刻,声源位置移动,水平方向角度α(1)=115、垂直方向角度β(1)=5。
对应编解码方式三的编解码过程可以表示为:
第一帧:
在编码端,其前一帧的水平方向角度和垂直方向角度均为初始状态0,则delta_α(0)=(α(0)-0)rem360=110,delta_β(0)=(β(0)-0)rem360=10;
由于|delta_α(0)|>16、且360-|delta_α(0)|>16,
因此 Level _ &alpha; ( 0 ) = 1 , delta _ &alpha; ( 0 ) ^ = round ( delta _ &alpha; ( 0 ) / 12 ) = 9 ;
并更新 &alpha; ( 0 ) = ( 0 + 12 delta _ &alpha; ( 0 ) ^ ) rem ( 360 ) = 180 ;
由于|delta_β(0)|<16,因此 Level _ &beta; ( 0 ) = 0 , delta _ &beta; ( 0 ) ^ = delta _ &beta; ( 0 ) = 10 ;
所以对于第一帧中头语法结构中添加的编码结果为:
Figure GSB00000675349800244
在解码端,从第0帧的头语法结构中可以提取出:
Level_α(0)=1,
Figure GSB00000675349800245
Level_β(0)=1,
Figure GSB00000675349800246
因而解码得到:α(0)′=(0+12×9)rem(360)=108;β(0)′=(0+10)rem(360)=10。
可见,由于对水平方向的delta_α(0)采用了表示粗定位的第一编码级别,因而解码端得到的水平方向角度α(0)′存在-2度的误差。
第二帧:
在编码端,其前一帧的水平方向角度α(0)=108、而不是更新前的原始值110,而垂直方向角度β(0)=10,则
delta_α(1)=(115-108)rem360=7,delta_β(1)=(5-10)rem360=-5;
由于|delta_α(1)|<16,因此Level_α(1)=0,
Figure GSB00000675349800251
由于|delta_β(1)|<16,因此Level_β(1)=0,
Figure GSB00000675349800252
所以对于第二帧中头语法结构中添加的编码结果为:
在解码端,从第二帧的头语法结构中可以提取出:
Level _ &alpha; ( 1 ) = 0 , delta _ &alpha; ( 1 ) ^ = delta _ &alpha; ( 1 ) = 7 ;
Level _ &beta; ( 1 ) = 0 , delta _ &beta; ( 1 ) ^ = delta _ &beta; ( 1 ) = - 5 ;
因而解码得到:α(1)′=(108+7)rem(360)=115;β(1)′=(10-5)rem(360)=5。
可见,由于在第一帧编码时,更新水平方向角度α(0)=108、而不是保持其原始值110,因而在粗定位之后再利用第二帧这一帧的精定位调整,即获得了准确的水平方向角度α(1)′,并将α(0)′存在-2度的误差消除。
而且,对于±2Q-1角度范围之外的角度,编码方式一需要的比特数大于Q,因而差分分级编码方式相比于编码方式一能够减少码流所需带宽。
可选地,考虑到第一编码级别后的角度信息并不准确,解码端可以将其认为是一个过渡结果并丢弃,并可等到出现其他码字时,再获取准确的角度信息。
以上是对本实施例中在码流中嵌入声源定向信息的方法、以及声源定向信息的各种具体编解码方法的详细说明,下面,再对本发明实施例的压缩编解码方法和系统进行详细说明。
图2为本发明实施例中压缩编解码方法的示例性流程图。如图2所示,本实施例中的压缩编解码方法包括:
作为压缩编码方法的步骤201,对音频单声道数据进行压缩编码以形成码流,并在码流中各帧的头语法结构内添加码流信息的同时,还将声源定向信息编码后添加至所述码流任意一帧或多帧的头语法结构中。
本步骤中可采用如前所述的编码方式一、二、三中的任一方式对声源定向信息进行编码。本步骤中,还可以进一步在头语法结构中添加声源定向标志,以表示该头语法结构中是否有声源定向信息。
作为解码方法的步骤202,从码流中上述任意一帧或多帧的头语法结构内解码得到声源定向信息,并利用从该码流中各帧的头语法结构内解码得到的码流信息,解码得到各帧的音频单声道数据。
与步骤201相对应,本步骤中可采用如前所述的解码方式一、二、三中的任一方式对声源定向信息进行解码。且如果步骤201中在头语法结构中进一步添加了声源定向标志,则本步骤中在判断出声源定向标志表示头语法结构中有声源定向信息后,再执行对码流的头语法结构中解码的操作。
至此,本流程结束。
此后,由于声源定向信息进行编码后被添加至了音频单声道数据码流的头语法结构中,因而实现了将声源定向信息嵌入至码流中,以使得声源定向信息随码流传输。如此一来,如果将上述流程应用于监控场景中,由监控前端执行步骤201、监控后端执行步骤202,就无需在监控前端和监控后端之间传输或存储多声道音频数据的码流,从而避免了监控前端输出多声道音频数据的码流而使得监控后端难以获得准确声源定向信息的问题,而且还避免了多声道音频数据的码流传输或存储占用较大传输带宽或存储空间。
需要说明的是,对于头语法结构中还包括声源定向标志的情况,进一步地,在连续多帧中的音频单声道数据对应相同的声源定向信息时,为了减少在码流中嵌入的声源定向信息数据量、以进一步节省码流传输带宽,上述流程中的步骤201可以在上述连续多帧的第一帧的头语法结构中,将声源定向标志设置为表示头语法结构中有声源定向信息的有效值,并在第一帧的头语法结构中添加压缩编码后的声源定向信息,而在除第一帧之外的后续所有帧的头语法结构中,将声源定向标志设置为表示头语法结构中无声源定向信息的无效值,且不将上述的声源定向信息压缩编码后添加至后续所有帧的头语法结构中。
实际应用中,对于编解码方式一、二,还可以预先配置多种取值的编码角度分辨率δ,步骤201可任选其中一种对α和β进行压缩编码。此时,为了在步骤202进行解码时,能够获知步骤201所依据的编码角度分辨率δ取值,在步骤201可以进一步在头语法结构中添加对应的编码角度分辨率标记,如此一来,步骤202先依据编码角度分辨率标记识别出步骤201所依据的编码角度分辨率δ取值,然后再执行后续处理。
图3为本发明实施例中压缩编解码系统的示例性结构图。如图3所示,以本实施例中的压缩编解码系统应用于监控系统为例,该压缩编解码系统包括:编码器301和解码器302。
其中,编码器301设置于视频监控系统的监控前端310中,且监控前端310中的麦克风阵列311、麦克风阵列算法单元312与编码器301顺序串联;解码器302则设置于视频监控系统的监控后端320中,并与监控后端320中的音频播放单元321和控制分析模块322分别相连。
编码器301作为编码端,用于接收麦克风阵列算法单元312输出的音频单声道数据和声源定向信息,并对音频单声道数据进行压缩编码以形成码流,在将码流信息编码后添加至码流各帧的头语法结构内的同时,还将声源定向信息压缩编码后添加至码流中任意一帧或多帧的头语法结构内并输出。
编码器301输出的码流可直接传输至解码器302、或存储后供解码器302获取。
解码器302作为解码端,用于从来自编码器301的码流中的上述任意一帧或多帧的头语法结构内,解码得到声源定向信息;并利用从该码流中各帧的头语法结构内解码得到的码流信息,从码流中解码得到各帧的音频单声道数据;得到的声源定向信息可输出至控制分析模块322、供控制分析模块322处理后分析声源运动轨迹、声源跟踪、或控制监控系统中摄像头云台的转动移动,得到的音频单声道数据则可输出至音频播放单元321播放。
可选地,编码器301可进一步用于在头语法结构中添加声源定向标志,以表示该头语法结构中是否有声源定向信息;相应地,解码器302则进一步用于在判断出声源定向标志表示头语法结构中有声源定向信息后,再执行从码流的头语法结构中解码得到声源定向信息的处理。
进一步地,对于头语法结构中还包括声源定向标志的情况,且在连续多帧中的音频单声道数据对应相同的声源定向信息时,为了减少在码流中嵌入的声源定向信息数据量、以进一步节省码流传输带宽,编码器301可以在上述连续多帧的第一帧的头语法结构中,将声源定向标志设置为表示头语法结构中有声源定向信息的有效值,并在第一帧的头语法结构中添加压缩编码后的声源定向信息,而在除第一帧之外的后续所有帧的头语法结构中,将声源定向标志设置为表示头语法结构中无声源定向信息的无效值,且不将上述的声源定向信息压缩编码后添加至后续所有帧的头语法结构中。
在上述系统中,编码器301可基于如前所述的编码方式一、二、三中的任一方式对声源定向信息进行编码。相应地,编码器301可基于如前所述的解码方式一、二、三中的任一方式对声源定向信息进行解码。
需要说明的是,实际应用中,对于编解码方式一、二,编码器301内可以预先配置多种取值的编码角度分辨率δ,且编码器301可任选其中一种对α和β进行压缩编码。此时,就需要编码器301进一步在头语法结构中添加对应的编码角度分辨率标记,这样,解码器302先依据头语法结构中的编码角度分辨率标记识别出编码器301所依据的编码角度分辨率δ取值,然后再执行后续处理。
可见,本实施例中的音频编解码系统将声源定向信息进行编码后添加至了音频单声道数据码流的头语法结构中,因而实现了将声源定向信息嵌入至码流中,以使得声源定向信息随码流传输。
如此一来,就无需在监控前端和监控后端之间传输或存储多声道音频数据的码流,从而避免了监控前端输出多声道音频数据的码流而使得监控后端难以获得准确声源定向信息的问题,而且还避免了多声道音频数据的码流传输或存储占用较大传输带宽或存储空间。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种在码流中嵌入声源定向信息的方法,其特征在于,该方法包括:
接收音频单声道数据、及对应的声源定向信息;
将所述音频单声道数据压缩编码形成码流、并在所述码流中各帧的头语法结构内添加码流信息的同时,还将所述声源定向信息编码后添加至任意一帧或多帧的所述头语法结构内、以及在各帧的头语法结构中添加用于表示头语法结构中是否有编码后的声源定向信息的声源定向标志。
2.如权利要求1所述的方法,其特征在于,所述声源定向信息包括水平方向和/或垂直方向上的角度信息;
且该方法将所述角度信息除以预设的编码角度分辨率,以实现对所述声源定向信息的编码。
3.如权利要求2所述的方法,其特征在于,所述角度信息除以预设的编码角度分辨率后,得到对应的N比特二进制数,N为大于等于1的正整数;
且该方法进一步对所述N比特二进制数补零,以使得添加有编码后的声源定向信息的所述头语法结构为整数字节。
4.如权利要求1所述的方法,其特征在于,所述码流中连续多帧的音频单声道数据对应相同的声源定向信息,
该方法在所述连续多帧中第一帧的头语法结构中将声源定向标志设置为有效值,在其他帧的头语法结构中将声源定向标志设置为无效值。
5.一种从码流中获取声源定向信息的方法,其特征在于,该方法包括:
接收由音频单声道数据压缩编码后生成的码流,且所述码流中任意一帧或多帧的头语法结构中还包括编码后的声源定向信息、以及表示头语法结构中是否有编码后的声源定向信息的声源定向标志;
在判断出所述声源定向标志表示头语法结构中有声源定向信息后,从所述码流中任意一帧或多帧的头语法结构中解码得到所述声源定向信息。
6.如权利要求5所述的方法,其特征在于,所述编码后的声源定向信息包括:水平方向和/或垂直方向上的角度信息除以预设的编码角度分辨率后得到的对应的N比特二进制数,N为大于等于1的正整数;
且该方法将所述N比特二进制数乘以所述编码角度分辨率,以实现从所述头语法结构中解码得到所述声源定向信息。
7.一种音频编解码方法,其特征在于,该编解码方法包括:
接收音频单声道数据、及对应的声源定向信息,然后将所述音频单声道数据压缩编码形成码流、并在所述码流中各帧的头语法结构内添加码流信息的同时,还将所述声源定向信息编码后添加至任意一帧或多帧的头语法结构内、以及在各帧的头语法结构中添加用于表示头语法结构中是否有编码后的声源定向信息的声源定向标志;
利用从码流中各帧的头语法结构中解码得到的码流信息,解码得到码流中各帧的音频单声道数据,并在判断出所述声源定向标志表示头语法结构中有声源定向信息后,从所述任意一帧或多帧的头语法结构中解码得到所述声源定向信息。
8.一种音频编解码系统,包括相连的编码端和解码端,其特征在于,
所述编码端,用于接收音频单声道数据、及对应的声源定向信息,然后将所述音频单声道数据压缩编码形成码流、并在所述码流中各帧的头语法结构内添加码流信息的同时,还将所述声源定向信息编码后添加至任意一帧或多帧的头语法结构内、以及在各帧的头语法结构中添加用于表示头语法结构中是否有编码后的声源定向信息的声源定向标志;
所述解码端,用于利用从码流中各帧的头语法结构中解码得到的码流信息,解码得到码流中各帧的音频单声道数据,并在判断出所述声源定向标志表示头语法结构中有声源定向信息后,从所述任意一帧或多帧的头语法结构中解码得到所述声源定向信息。
CN2009100789327A 2009-02-27 2009-02-27 嵌入和获取声源定向信息的方法及音频编解码方法和系统 Active CN101819776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100789327A CN101819776B (zh) 2009-02-27 2009-02-27 嵌入和获取声源定向信息的方法及音频编解码方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100789327A CN101819776B (zh) 2009-02-27 2009-02-27 嵌入和获取声源定向信息的方法及音频编解码方法和系统

Publications (2)

Publication Number Publication Date
CN101819776A CN101819776A (zh) 2010-09-01
CN101819776B true CN101819776B (zh) 2012-04-18

Family

ID=42654850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100789327A Active CN101819776B (zh) 2009-02-27 2009-02-27 嵌入和获取声源定向信息的方法及音频编解码方法和系统

Country Status (1)

Country Link
CN (1) CN101819776B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106448687B (zh) * 2016-09-19 2019-10-18 中科超影(北京)传媒科技有限公司 音频制作及解码的方法和装置
CN113674751A (zh) * 2021-07-09 2021-11-19 北京字跳网络技术有限公司 音频处理方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1717955A (zh) * 2002-12-02 2006-01-04 汤姆森许可贸易公司 用于描述音频信号的合成的方法
CN1973318A (zh) * 2002-10-14 2007-05-30 汤姆森许可贸易公司 用于对音频场景中声源的广度进行编码和解码的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1973318A (zh) * 2002-10-14 2007-05-30 汤姆森许可贸易公司 用于对音频场景中声源的广度进行编码和解码的方法
CN1717955A (zh) * 2002-12-02 2006-01-04 汤姆森许可贸易公司 用于描述音频信号的合成的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Eric D. Scheirer et al.AudioBIFS: Describing Audio Scenes with the MPEG-4 Multimedia Standard.《IEEE TRANSACTIONS ON MULTIMEDIA》.1999,第1卷(第3期), *
JP特开平10-63967A 1998.03.06

Also Published As

Publication number Publication date
CN101819776A (zh) 2010-09-01

Similar Documents

Publication Publication Date Title
RU2666282C2 (ru) Устройство и способ для эффективного кодирования метаданных объектов
US11823691B2 (en) System and method for processing audio data into a plurality of frequency components
CA2440154A1 (en) Picture encoding method and apparatus and picture decoding method and apparatus
EP2022045B1 (en) Decoding of predictively coded data using buffer adaptation
KR101548846B1 (ko) 워터마킹된 신호의 적응적 인코딩 및 디코딩을 위한 디바이스
MY123651A (en) Matrix improvements to lossless encoding and decoding
ES2182972T3 (es) Codificador y descodificador de video utilizando procedimientos de segmentacion y fusion de movimiento.
BR112020016948A2 (pt) Métodos e dispositivos para gerar ou decodificar um fluxo de bits compreendendo sinais de áudio imersivos
MY137090A (en) Picture decoding method
CN105229729A (zh) 音频编码器和解码器
AU7486200A (en) Multimode speech encoder
CN101366082B (zh) 可变帧偏移编解码方法、编解码器及无线电通信设备
CN101819776B (zh) 嵌入和获取声源定向信息的方法及音频编解码方法和系统
CN101819774B (zh) 声源定向信息的编解码方法和系统
US6704701B1 (en) Bi-directional pitch enhancement in speech coding systems
CN101819775B (zh) 声源定向信息的编解码方法和系统
TW200603636A (en) A video encoder and method of video encoding
AU2003298645A1 (en) Match msb digital image compression
KR20060004198A (ko) 이동통신 시스템에서 블록 디인터리버 버퍼의 운용 방법및 장치
ID22836A (id) Peletakan data tambahan di dalam suatu sinyal yang diberi kode
TW201517633A (zh) 可標度位元流內視訊資料之編碼方法和裝置及其內所寫碼視訊資料之解碼方法和裝置,以及電腦程式製品和處理器可讀式媒體
US5940129A (en) Methods and systems for super compression of prior known objects in video and film
US20050169387A1 (en) Method and system for the error resilient transmission of predictively encoded signals
RU2802677C2 (ru) Способы и устройства для формирования или декодирования битового потока, содержащего иммерсивные аудиосигналы
WO2024103076A3 (en) Method and apparatus for semantic based learned image compression

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SHANXI ZHONGTIANXIN TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING VIMICRO CORPORATION

Effective date: 20121224

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 HAIDIAN, BEIJING TO: 030032 TAIYUAN, SHAANXI PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20121224

Address after: 105, room 3, building 6, Kaiyuan street, Taiyuan economic and Technological Development Zone, Shanxi 030032, China

Patentee after: SHANXI VIMICRO TECHNOLOGY CO., LTD.

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor

Patentee before: Beijing Vimicro Corporation