CN116566962A - 音频数据的传输方法、装置、电子设备及存储介质 - Google Patents
音频数据的传输方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116566962A CN116566962A CN202310565370.9A CN202310565370A CN116566962A CN 116566962 A CN116566962 A CN 116566962A CN 202310565370 A CN202310565370 A CN 202310565370A CN 116566962 A CN116566962 A CN 116566962A
- Authority
- CN
- China
- Prior art keywords
- value
- data packet
- difference
- packet format
- data
- 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 77
- 230000005540 biological transmission Effects 0.000 title claims abstract description 49
- 238000005070 sampling Methods 0.000 claims abstract description 128
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000013507 mapping Methods 0.000 claims description 38
- 238000013139 quantization Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 16
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000010365 information processing Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 20
- 230000006835 compression Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Acoustics & Sound (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computer Security & Cryptography (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开涉及信息处理领域,具体公开了一种音频数据的传输方法、装置、电子设备及存储介质。该音频数据的传输方法包括:对原始音频数据执行降采样处理得到当前采样值,计算当前采样值与相邻采样值之间的差值;从至少两种候选数据包格式中选择与差值的数值大小相对应的目标数据包格式,将差值编码为与目标数据包格式的编码位数相匹配的差编码数据;将差编码数据封装在与目标数据包格式相匹配的数据包中,以传输至音频接收端。该方式通过降采样、差值编码以及动态选择数据包格式等多种处理方式的结合,能够大幅降低音频数据的数据量,缩小传输时延,尤其适用于对实时性要求较高的业务场景。
Description
技术领域
本公开实施例涉及信息处理领域,具体涉及一种音频数据的传输方法、装置、电子设备及存储介质。
背景技术
在音频数据的传输过程中,为了降低带宽消耗,缩小传输时延,通常需要通过压缩算法对音频数据进行压缩处理。
但是,对于部分低频分量较多的音频数据而言,由于多数压缩算法在处理低频分量时需要依赖快速傅里叶变换实现,而快速傅里叶变换本身则需要耗费较大的时间窗口,因而难以实现低延迟的压缩效果。并且,傅里叶变换还会引入较大的计算量,从而进一步增加传输时延。
由此可见,如何针对低频分量较多的音频数据提供一种高效的压缩方式,成为目前亟待解决的技术难题。
发明内容
鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的一种音频数据的传输方法、装置、电子设备及存储介质。
根据本公开实施例的一个方面,提供了一种音频数据的传输方法,适用于音频发送端,所述方法包括:
对原始音频数据执行降采样处理得到当前采样值,计算所述当前采样值与相邻采样值之间的差值;
从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;
将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中,以传输至音频接收端。
在一种可选的实现方式中,所述从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式具体包括:
将所述差值与预设区间阈值进行比较,根据比较结果从至少两种候选数据包格式中选择所述目标数据包格式;
其中,在所述差值大于所述区间阈值的情况下,将至少两种候选数据包格式中的第一数据包格式确定为所述目标数据包格式;在所述差值不大于所述区间阈值的情况下,将至少两种候选数据包格式中的第二数据包格式确定为所述目标数据包格式;其中,所述第二数据包格式的编码位数小于所述第一数据包格式的编码位数;
其中,所述目标数据包格式中设置有位数标识位,所述位数标识位用于指示目标数据包格式的编码位数。
在又一种可选的实现方式中,所述音频数据包括:对应于第一声道的第一音频数据,以及对应于第二声道的第二音频数据;则所述计算所述当前采样值与相邻采样值之间的差值具体包括:计算对应于所述第一音频数据的第一差值,以及对应于所述第二音频数据的第二差值;
则所述从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式具体包括:
根据所述第一差值与所述第二差值之间的比较结果,从至少两种候选数据包格式中选择所述目标数据包格式;
其中,所述目标数据包格式中设置有声道标识位,所述声道标识位用于指示所述第一差值与所述第二差值是否相等。
在又一种可选的实现方式中,所述将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据具体包括:
获取所述差值的量化值,根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述量化值相对应的编码值,将所述量化值编码为与所述编码值相匹配的差编码数据;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
在又一种可选的实现方式中,所述差值的量化值的数量大于所述编码位数对应的编码值的数量,且每个编码值对应的量化值的数量根据量化值在历史音频中的出现频次确定;
其中,若量化值在历史音频中的出现频次大于预设频次阈值,则量化值与编码值一一对应;
若量化值在历史音频中的出现频次不大于预设频次阈值,则多个量化值对应于同一个编码值。
在又一种可选的实现方式中,所述相邻采样值为所述当前采样值的上一个采样值;所述查询与所述差值的量化值相对应的编码值,将所述差值的量化值编码为与所述编码值相匹配的差编码数据具体包括:
在查询到的编码值与所述差值的量化值之间存在误差的情况下,存储所述查询到的编码值与所述差值的量化值之间的误差值;其中,所述误差值用于针对所述当前采样值的下一个采样值进行误差补偿处理。
在又一种可选的实现方式中,所述原始音频数据用于驱动云游戏中的目标振动设备;
所述对原始音频数据执行降采样处理具体包括:根据降采样频率,对原始音频数据执行降采样处理;其中,所述降采样频率为所述目标振动设备的最高振动频率的至少两倍。
根据本公开实施例的又一个方面,提供了一种音频数据的传输方法,适用于音频接收端,所述方法包括:
获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;
按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;
计算所述差值与相邻解码值之间的求和结果,得到当前解码值;
对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
在一种可选的实现方式中,所述从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数具体包括:
获取所述数据包中包含的位数标识位的数值,根据所述位数标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;和/或,
获取所述数据包中包含的声道标识位的数值,根据所述声道标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数。
在又一种可选的实现方式中,所述按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值具体包括:
根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述差编码数据相匹配的编码值对应的量化值,根据所述量化值确定与所述差编码数据相对应的差值;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
在又一种可选的实现方式中,所述根据升采样的采样结果重建原始音频数据之后,还包括:根据重建的原始音频数据驱动云游戏中的目标振动设备进行振动;其中,所述云游戏基于串流方式实现。
根据本公开实施例的再一个方面,提供了一种音频数据的传输方法,所述方法包括:
音频发送端对原始音频数据执行降采样处理得到当前采样值,计算所述当前采样值与相邻采样值之间的差值;从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;并将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中;
音频接收端获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;计算所述差值与相邻解码值之间的求和结果,得到当前解码值;对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
根据本公开实施例的再一个方面,提供了一种音频数据的传输装置,适用于音频发送端,所述装置包括:
降采样模块,适于对原始音频数据执行降采样处理,针对降采样处理后得到的当前采样值,计算所述当前采样值与相邻采样值之间的差值;
差分模块,适于从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;
编码模块,适于将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中,以传输至音频接收端。
在一种可选的实现方式中,所述差分模块具体适于:
将所述差值与预设区间阈值进行比较,根据比较结果从至少两种候选数据包格式中选择所述目标数据包格式;
其中,在所述差值大于所述区间阈值的情况下,将至少两种候选数据包格式中的第一数据包格式确定为所述目标数据包格式;在所述差值不大于所述区间阈值的情况下,将至少两种候选数据包格式中的第二数据包格式确定为所述目标数据包格式;其中,所述第二数据包格式的编码位数小于所述第一数据包格式的编码位数;
其中,所述目标数据包格式中设置有位数标识位,所述位数标识位用于指示目标数据包格式的编码位数。
在又一种可选的实现方式中,所述音频数据包括:对应于第一声道的第一音频数据,以及对应于第二声道的第二音频数据;则所述降采样模块具体适于:计算对应于所述第一音频数据的第一差值,以及对应于所述第二音频数据的第二差值;
则所述差分模块具体适于:
根据所述第一差值与所述第二差值之间的比较结果,从至少两种候选数据包格式中选择所述目标数据包格式;
其中,所述目标数据包格式中设置有声道标识位,所述声道标识位用于指示所述第一差值与所述第二差值是否相等。
在又一种可选的实现方式中,所述差分模块具体适于:
获取所述差值的量化值,根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述量化值相对应的编码值,将所述量化值编码为与所述编码值相匹配的差编码数据;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
在又一种可选的实现方式中,所述差值的量化值的数量大于所述编码位数对应的编码值的数量,且每个编码值对应的量化值的数量根据量化值在历史音频中的出现频次确定;
其中,若量化值在历史音频中的出现频次大于预设频次阈值,则量化值与编码值一一对应;
若量化值在历史音频中的出现频次不大于预设频次阈值,则多个量化值对应于同一个编码值。
在又一种可选的实现方式中,所述相邻采样值为所述当前采样值的上一个采样值;所述差分模块具体适于:
在查询到的编码值与所述差值的量化值之间存在误差的情况下,存储所述查询到的编码值与所述差值的量化值之间的误差值;其中,所述误差值用于针对所述当前采样值的下一个采样值进行误差补偿处理。
在又一种可选的实现方式中,所述原始音频数据用于驱动云游戏中的目标振动设备;
所述降采样模块具体适于:根据降采样频率,对原始音频数据执行降采样处理;其中,所述降采样频率为所述目标振动设备的最高振动频率的至少两倍。
根据本公开实施例的再一个方面,提供了一种音频数据的传输装置,适用于音频接收端,所述装置包括:
获取模块,适于获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;
解码模块,适于按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;
计算模块,适于计算所述差值与相邻解码值之间的求和结果,得到当前解码值;
升采样模块,适于对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
在一种可选的实现方式中,所述获取模块具体适于:
获取所述数据包中包含的位数标识位的数值,根据所述位数标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;和/或,
获取所述数据包中包含的声道标识位的数值,根据所述声道标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数。
在又一种可选的实现方式中,所述解码模块具体适于:
根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述差编码数据相匹配的编码值对应的量化值,根据所述量化值确定与所述差编码数据相对应的差值;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
在又一种可选的实现方式中,所述升采样模块还适于:根据重建的原始音频数据驱动云游戏中的目标振动设备进行振动;其中,所述云游戏基于串流方式实现。
根据本公开实施例的再一个方面,提供了一种音频数据的传输系统,包括:适用于音频发送端的音频数据的传输装置,以及适用于音频接收端的音频数据的传输装置。
依据本公开的再一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上述的音频数据的传输方法。
依据本公开的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述的音频数据的传输方法。
在本公开提供的音频数据的传输方法中,首先,对原始音频数据执行降采样处理;然后,计算降采样处理后得到的当前采样值与相邻采样值之间的差值;最后,从至少两种候选数据包格式中选择与差值的数值大小相对应的目标数据包格式,将差值编码为与目标数据包格式的编码位数相匹配的差编码数据,并将差编码数据封装在与目标数据包格式相匹配的数据包中进行传输。由此可见,在该方式中,通过降采样能够显著降低数据量,并且,降采样方式尤其适用于处理低频分量较多的信号。而且,在低频分量较多的信号中,相邻时间点的信号之间的差值往往较小(通常差值远小于信号的幅值),因此,相较于直接对信号原值进行编码的方式而言,对差值进行编码的方式能够进一步降低数据量以及编码位数。并且,该方式预先设置了多种数据包格式,以便根据当前采样值与相邻采样值之间的差值大小,动态选择与差值大小相适配的数据包格式,由于不同格式的数据包所对应的编码位数不同,因此,能够根据当前差值大小动态调整数据包的编码位数,从而进一步实现缩减数据包字节数、降低传输时延的目的。总之,该方式通过降采样、差值编码以及动态选择数据包格式等多种处理方式的结合,能够大幅降低音频数据的数据量,缩小传输时延,尤其适用于对实时性要求较高的业务场景。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本公开一个实施例提供的一种音频数据的传输方法的流程图;
图2示出了本公开又一实施例提供的一种音频数据的传输方法的流程图;
图3示出了本公开又一实施例提供的一种音频数据的传输装置的流程图;
图4示出了本公开再一实施例提供的一种音频数据的传输装置的示意图;
图5示出了本公开实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本公开一个实施例提供的一种音频数据的传输方法的流程图。该实施例主要适用于音频发送端。如图1所示,该方法包括:
步骤S110:对原始音频数据执行降采样处理得到当前采样值,计算当前采样值与相邻采样值之间的差值。
其中,原始音频数据是需要由音频发送端发送至音频接收端的数据。在本实施例中,音频发送端可以是云服务器等各类网络设备,音频接收端可以是移动终端、平板电脑等各类网络终端,本发明对具体应用场景不做限定。
降采样用于降低信号采样率,通过降采样处理,能够以较低的采样频率对原始音频数据进行采样,从而大幅降低数据量。在一种可选的实现方式中,根据降采样频率,对原始音频数据执行降采样处理;其中,降采样频率可以根据原始音频数据的信号特点和/或实际应用场景灵活确定。根据奈奎斯特–香农采样定理可知,数字信号的采样率大于模拟信号的2倍。换言之,如果信号带宽小于奈奎斯特频率(即采样频率的二分之一),则可以通过离散的采样点重新还原得到原始信号。基于采样定理可知,本实施例中的降采样频率可以根据原始音频信号的最高频率设定。
另外,在音频驱动振动的应用场景中,原始音频数据用于驱动目标振动设备。例如,可用于驱动云游戏中的目标振动设备,相应的,可以将降采样频率设置为目标振动设备的最高振动频率的至少两倍。由于振动信号为低频信号,因此,目标振动设备的最高振动频率通常较低,借助这一特性,能够大幅降低降采样频率,而不会影响目标振动设备的驱动精度。
通过对原始音频数据执行降采样处理,能够得到多个与采样次序相对应的采样值。发明人在实现本发明的过程中发现,对于低频信号而言,其相邻采样值之间的差值通常远小于信号幅值,借助这一特性,在本步骤中,可以进一步计算相邻采样值之间的差值,通过传输差值的方式达到缩减数据量的目的。
相应的,针对降采样处理后得到的当前采样值,计算当前采样值与相邻采样值之间的差值。其中,相邻采样值通常为当前采样值的上一个采样值。例如,假设当前采样值为第i个采样值,则相邻采样值可以为第i-1个采样值,其中,i为大于等于1的自然数。另外,在当前采样值为第1个采样值的情况下,可以假设第0个采样值(即采样初始值)的数值为预设值(如0或其他数值)。
步骤S120:从至少两种候选数据包格式中选择与差值的数值大小相对应的目标数据包格式,将差值编码为与目标数据包格式的编码位数相匹配的差编码数据。
在本实施例中,预先设置两种或更多种候选数据包格式。候选数据包格式用于定义以下内容中的至少一项:数据包中包含的字节数量、每个字节中的各个比特位的用途及含义、以及数据包所对应的编码位数。例如,一部分数据包格式可能包含2个字节,而另一部分数据包格式则可能包含4个字节,字节数量不同,数据包的数据量以及传输时延也可能不同。又如,在一部分数据包格式中,定义了第一个比特位为用于表征数据包格式的元数据标识位;在另一部分数据包格式中,则定义了第一个比特位以及第二个比特位共同作为用于表征数据包格式的元数据标识位。总之,数据包格式中包含的元数据标识位用于表征数据包的编码位数、编码方式等格式类信息,且元数据标识位的具体数量和种类可由本领域技术人员灵活设置。再如,在一部分数据包格式中,定义了数据包的编码位数为第一位数(如7位);在另一部分数据包格式中,定义了数据包的编码位数为第二位数(如15位),通过不同的编码位数,能够对不同取值范围的差值数据进行编码。
由此可见,通过预先设置多种数据包格式,能够灵活设置多种不同长度的数据包,以适配不同大小的差值。相应的,在本步骤中,从至少两种候选数据包格式中选择与差值的数值大小相对应的目标数据包格式,将差值编码为与目标数据包格式的编码位数相匹配的差编码数据。其中,与目标数据包格式的编码位数相匹配是指:针对差值进行编码后得到的差编码数据的位数与目标数据包格式中定义的编码位数匹配。其中,匹配的含义是相同或等同。例如,针对差值进行编码后得到的差编码数据的位数与目标数据包格式中定义的编码位数相同。举例而言,若目标数据包格式中定义的编码位数为4位,则将差值量化编码为4个比特位的差编码数据。
本领域技术人员可以灵活设置目标数据包格式的选择方式:
在第一种可选的实现方式中,根据差值大小与预先设置的区间阈值之间的匹配关系选择目标数据包格式。具体的,将差值与预设区间阈值进行比较,根据比较结果从至少两种候选数据包格式中选择目标数据包格式:在差值大于区间阈值的情况下,将至少两种候选数据包格式中的第一数据包格式确定为目标数据包格式;在差值不大于区间阈值的情况下,将至少两种候选数据包格式中的第二数据包格式确定为目标数据包格式;其中,第二数据包格式的编码位数小于第一数据包格式的编码位数。例如,区间阈值可以设置为2的7次方,第二数据包格式的编码位数可以为7个比特位,第一数据包格式的编码位数可以为15个比特位。
可选的,区间阈值的数量还可以为多个,相应的,候选数据包格式的数量也为多个。例如,在区间阈值的数量为三个的情况下,通过三个区间阈值可以划分出四个数值区间,相应的,候选数据包格式的数量也可以为四个,每个候选数据包格式分别对应于一个数值区间。
另外,为了便于解码,目标数据包格式中还可以进一步设置位数标识位,该位数标识位用于指示目标数据包格式的编码位数。例如,在候选数据包格式的数量为两个的情况下,只需设置一个比特的位数标识位即可;在候选数据包格式的数量为四个的情况下,需要设置两个比特的位数标识位。其中,位数标识位即为元数据标识位,用于对数据包的编码位数进行描述,以便于快速解码。
在第二种可选的实现方式中,音频数据为双声道音频数据。发明人在实现本发明的过程中发现,在游戏应用等诸多应用中,两个声道通常会传输完全相同的数据,因此,可以通过识别两个声道当前传输的数据是否相同,实现合并相同数据,缩减数据量的目的。相应的,在判断出两个声道当前传输的数据相同的情况下,可以将音频数据视为单声道音频数据,仅针对一个声道的差值进行编码即可;只有在判断出两个声道当前传输的数据不同的情况下,才针对两个声道的差值同时进行编码,通过该方式能够大幅缩减传输数据量。由此可见,在该实现方式中,音频数据包括:对应于第一声道的第一音频数据,以及对应于第二声道的第二音频数据。相应的,在计算当前采样值与相邻采样值之间的差值时,需要分别计算对应于第一音频数据的第一差值,以及对应于第二音频数据的第二差值。在该方式中,每次采样时,需要同时对两个声道分别进行采样,因此,第一差值用于表征第一音频数据中的当前采样值与相邻采样值之间的差值,第二差值用于表征第二音频数据中的当前采样值与相邻采样值之间的差值。在从至少两种候选数据包格式中选择与差值的数值大小相对应的目标数据包格式时,根据第一差值与第二差值之间的比较结果,从至少两种候选数据包格式中选择目标数据包格式。例如,可以计算第一差值与第二差值之间的差,若差为0或小于预设差阈值,则认为第一差值与第二差值相同或近似相同,此时,可以将双声道音频数据视为单声道音频数据,并且在后续的编码过程中仅针对其中一个声道的差值进行编码。即:通过合并两个声道的相同数据的方式实现缩减数据量的效果。另外,若第一差值与第二差值之间的差大于预设差阈值,则认为第一差值与第二差值不同,此时,需要分别针对两个声道的差值进行编码,以确保在接收端能够还原出双声道的音效。由此可见,在该方式中,可以根据两个声道的当前采样值的差值是否相等的方式灵活选择不同格式的数据包。例如,若两个声道的差值相等,仅需针对一个声道的差值进行编码即可,此时可以选择数据包长度较短的数据包格式,以降低数据传输量;若两个声道的差值不等,需要同时针对两个声道的差值进行编码,此时可以选择数据包长度较长的数据包格式,以精准表征每个声道的差值情况。
另外,为了便于解码,在第二种实现方式中,目标数据包格式中可以进一步设置声道标识位,该声道标识位用于指示第一差值与第二差值是否相等。即:根据声道标识位的不同取值,能够确定数据包中封装的是一个差值的编码数据,还是两个差值的编码数据,从而便于对数据包进行解码。其中,声道标识位也属于元数据标识位,用于对数据包对应的声道数进行描述,以便于快速解码。
上述两种实现方式可以择一使用,或者,上述两种实现方式也可以同时使用,本申请对具体实现细节不做限定。
在上述两种实现方式同时使用的情况中,可以针对声道标识位和位数标识位设置不同的优先级。例如,在一种实现方式中,声道标识位的优先级高于位数标识位,根据声道标识位的取值决定是否设置位数标识位。
例如,在声道标识位的取值表征当前仅传输单一声道的差值的情况下,无需设置位数标识位(即只需设置一个元数据标识位,从而能够节约存储空间),此时,无论差值的具体数值大小如何,都通过编码位数为第一位数的数据包格式进行传输。例如,第一位数为15个比特位,因此,数据包占用两个字节即可。
又如,在声道标识位的取值表征当前需要同时传输两个声道的差值的情况下,需要进一步设置位数标识位(此时需设置两个元数据标识位)。相应的,通过位数标识位的取值表征数据包的编码位数。其中,位数标识位的取值根据差值的数值大小确定。比如,在差值小于2的7次方的情况下,选择编码位数为7个比特位的数据包格式,此时,两个声道的差编码数据共占用14个比特位,再加上两个元数据标识位,整个数据包占用2个字节。在差值不小于2的7次方的情况下,选择编码位数为15个比特位的数据包格式,此时,两个声道的差编码数据共占用30个比特位,再加上两个元数据标识位,整个数据包占用4个字节。由此可见,在该方式中,可灵活根据当前的声道情况判断是否对数据包长度进行调整。
步骤S130:将差编码数据封装在与目标数据包格式相匹配的数据包中,以传输至音频接收端。
由于差编码数据的具体编码位数是根据目标数据包格式设置的,因此,能够将差编码数据封装在与目标数据包格式相匹配的数据包中,并将该数据包传输至音频接收端,以实现原始音频数据的压缩传输。
其中,与目标数据包格式相匹配是指:封装得到的数据包的格式与目标数据包的格式相同。其中,目标数据包格式用于定义数据包中包含的各个字节以及字节中的各个比特位的物理含义。例如,假设在目标数据包格式A中,定义了数据包共包含两个字节(即16个比特),且第一个比特为元数据标识位,用于表征该数据包的格式类型;后面15个比特为数据位,用于写入差编码数据。由于差编码数据的数据位数与目标数据包格式中定义的编码位数相同,因此,在本步骤中,可以直接根据格式A,将差编码数据写入格式A的数据包中的数据位部分;并根据格式A对应的元数据值,设置格式A的数据包中的元数据标识位的具体数值,从而得到封装后的完整数据包。其中,不同格式所对应的元数据值不同,以便根据元数据值快速确定数据包格式。由此可见,在该方式中,通过降采样能够显著降低数据量,并且,降采样方式尤其适用于处理低频分量较多的信号。而且,在低频分量较多的信号中,相邻时间点的信号之间的差值往往较小(通常差值远小于信号的幅值),因此,相较于直接对信号原值进行编码的方式而言,对差值进行编码的方式能够进一步降低数据量以及编码位数。并且,该方式预先设置了多种数据包格式,以便根据当前采样值与相邻采样值之间的差值大小,动态选择与差值大小相适配的数据包格式,由于不同格式的数据包所对应的编码位数不同,因此,能够根据当前差值大小动态调整数据包的编码位数,从而进一步实现缩减数据包字节数、降低传输时延的目的。总之,该方式通过降采样、差值编码以及动态选择数据包格式等多种处理方式的结合,能够大幅降低音频数据的数据量,缩小传输时延,尤其适用于对实时性要求较高的业务场景。
另外,本领域技术人员还可以针对上述实施例进行各种改动和变形:
在一种可选的实现方式中,在将差值编码为与目标数据包格式的编码位数相匹配的差编码数据时,通过量化编码方式实现。具体的,获取差值的量化值,将量化值转换为对应的编码值,从而将量化值编码为与编码值相匹配的差编码数据。另外,在量化级数较多,且编码位数较少的情况下,可能会出现编码值与量化值不一致的情况,即:量化值与编码值之间存在一定的误差值,此时,可以存储与当前采样值对应的误差值,并在处理当前采样值的下一个采样值时,根据存储的误差值对下一个采样值进行误差补偿处理。通过误差补偿方式,能够避免误差累积,提升数据准确性。
在一种可选的实现方式中,为了使有限的编码位数能够表征更大的差值量化范围,通过自适应差分编码方式实现差值的编码过程。在该方式中,通过预先建立编码映射表,实现量化值与编码值之间的映射,借助映射过程,实现一个编码值能够对应于多个量化值的效果。相应的,在将差值编码为与目标数据包格式的编码位数相匹配的差编码数据时,获取差值的量化值,根据与目标数据包格式的编码位数相对应的编码映射表,查询与量化值相对应的编码值,将量化值编码为与编码值相匹配的差编码数据。其中,该编码映射表用于存储对应于编码位数的各个编码值与差值的量化值之间的映射关系。
通常情况下,差值的量化值的数量大于编码位数对应的编码值的数量,由此可见,编码映射表的作用在于:借助映射关系,通过有限数量的编码位数表征更大的量化范围。为了实现这一作用,编码映射表中的各个编码值与量化值之间并非全是一一对应的关系,必然存在同一编码值对应于多个量化值的情况。为了最大程度的降低误差,提升数据准确性,在一种可选的实现方式中,每个编码值对应的量化值的数量根据量化值在历史音频中的出现频次确定。例如,若量化值在历史音频中的出现频次大于预设频次阈值,则量化值与编码值一一对应;若量化值在历史音频中的出现频次不大于预设频次阈值,则多个量化值对应于同一个编码值。
例如,对于音频驱动振动的应用场景而言,由于振动信号为低频信号,因此,需要最大限度的保证低频音频的准确性,因此,在量化值小于预设频率值的情况下,使量化值与编码值一一对应,以实现低频差值的精准还原;而在量化值不小于预设频率值的情况下,使多个量化值共同对应于同一个编码值,从而实现缩减编码位数的效果。
其中,在游戏应用中,音频的种类和数量通常是有限的,因此,可以通过对应用中的历史音频的各个频率分量的出现频次进行统计,从而根据统计结果,合理设置各个量化值与编码值之间的对应关系。例如,在游戏应用中,低频分量出现较多,因此,各个低频分量对应的量化值与编码值一一对应。由于高频分量出现较少,因此,一段高频分量对应的量化值区间共同对应于同一个编码值,量化值区间的区间端点可以根据统计得到的高频出现的频率分量所对应的数值设置。
在又一种可选的实现方式中,考虑到自适应差分编码方式更容易产生编码误差,尤其是在高频分量的量化值与编码值并非一一对应的情况下,因此,为了避免误差累积,在查询与差值的量化值相对应的编码值,将差值的量化值编码为与编码值相匹配的差编码数据时,进一步判断编码值与差值的量化值之间是否存在误差,并在判断结果为是的情况下执行误差补偿处理。具体的,相邻采样值通常为当前采样值的上一个采样值,在查询到的编码值与差值的量化值之间存在误差的情况下,存储查询到的编码值与差值的量化值之间的误差值,该误差值用于针对当前采样值的下一个采样值进行误差补偿处理。例如,假设当前采样值与其上一个采样值之间的实际差值为999,但编码值的最大数值为500,因此,将在当前采样值的差值编码过程中产生499的误差。为此,在接收到下一个采样值之后,根据误差对下一个采样值进行补偿。例如,假设下一个采样值与当前采样值之间的实际差值为0,则计算下一个采样值与当前采样值之间的实际差值(0)与误差值(499)之间的求和结果,并将该求和结果作为下一个采样值对应的编码差值,从而实现误差补偿的效果。
图2示出了本公开又一实施例提供的一种音频数据的传输方法的流程图。该实施例主要适用于音频接收端。如图2所示,该方法包括:
步骤S210:获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与数据包相对应的目标数据包格式,以及目标数据包格式的编码位数。
其中,来自音频发送端的数据包即为上一实施例中的步骤S130传输的数据包。相应的,至少两种候选数据包格式的具体内涵可参照上一实施例中相应部分的描述,此处不再赘述。
在一种可选的实现方式中,可以根据数据包中设置的元数据标识位确定与数据包相对应的目标数据包格式。其中,元数据标识位包括上文提到的位数标识位和/或声道标识位。相应的,可以获取数据包中包含的位数标识位的数值,根据位数标识位的数值确定与数据包相对应的目标数据包格式,以及目标数据包格式的编码位数。或者,也可以获取数据包中包含的声道标识位的数值,根据声道标识位的数值确定与数据包相对应的目标数据包格式,以及目标数据包格式的编码位数。
步骤S220:按照编码位数对数据包中包含的差编码数据进行解码,得到与差编码数据相对应的差值。
具体的,解码过程为上一实施例中提到的编码过程的逆过程,此处不再赘述。
在一种可选的实现方式中,在按照编码位数对数据包中包含的差编码数据进行解码,得到与差编码数据相对应的差值时,根据与目标数据包格式的编码位数相对应的编码映射表,查询与差编码数据相匹配的编码值对应的量化值,根据量化值确定与差编码数据相对应的差值;其中,编码映射表用于存储对应于编码位数的各个编码值与差值的量化值之间的映射关系。关于编码映射表的具体设置方式可参照上一实施例中的描述,此处不再赘述。
步骤S230:计算差值与相邻解码值之间的求和结果,得到当前解码值。
其中,相邻解码值是指上一个时间单元对应的解码值,当前解码值是指当前时间单元对应的解码值。由此可见,与编码过程类似,当前时间单元对应的解码值是由当前时间单元获取到的差值与上一个时间单元对应的解码值的加和结果确定的。
其中,也可以在解码过程中采用与编码过程类似的误差补偿方式进行相邻解码值之间的误差补偿,从而提升解码的准确性。
步骤S240:对当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
其中,升采样即为上一实施例中提到的降采样的逆过程,升采样的倍数与降采样的倍数保持一致即可。通过升采样处理,能够重建原始音频数据。
具体实施时,可以使用不同的方法进行升采样,由于振动电机的灵敏度有限,因此,可以灵活选取临近插值、线性插值、拉格朗日插值或其他各类插值算法,通过插值操作引入的泛音对实际振动体验的影响极小。
由此可见,在该方式中,通过灵活设置数据包格式、差值解码、升采样等多种处理方式的结合,能够在降低音频数据的数据量、缩小传输时延的情况下,在接收端恢复原始音频信号。
可选的,该音频传输方式可应用于游戏应用中的音频驱动振动场景。相应的,在根据升采样的采样结果重建原始音频数据之后,进一步根据重建的原始音频数据驱动云游戏中的目标振动设备进行振动。其中,目标振动设备可以为游戏手柄等各类设备。另外,云游戏可以基于串流方式实现。在串流技术中,用户无需实现完整音频的下载操作,能够实时接收音频流,且游戏运行过程直接在云端实现,显著降低了本地客户端的设备要求及资源消耗。因此,在串流的云游戏场景中,对于传输延迟更加敏感,对于实时性有着更高的要求,采用本实施例中的压缩传输方式能够大幅降低数据量,提升传输效率。并且,在音频驱动振动的场景中,由于振动信号为低频信号,因此,可以通过降采样方式大幅滤除高频分量,而不会对振动信号造成影响。
本申请的又一实施例还提供了一种音频数据的传输方法,具体包括以下步骤:
步骤一:音频发送端对原始音频数据执行降采样处理得到当前采样值,计算所述当前采样值与相邻采样值之间的差值;从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;并将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中;
步骤二:音频接收端获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;计算所述差值与相邻解码值之间的求和结果,得到当前解码值;对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
为了便于理解,下面以一个具体示例为例详细描述本申请中的音频数据的传输方法。在该示例中,音频数据用于驱动云游戏中的游戏手柄。相较于传统的手柄振动驱动方式而言,音频驱动振动的方式至少具有以下优势:不需要针对手柄内部的偏心马达或线性马达的固有频率进行专门调制,调制部分被移动至手柄的固件内部。并且,可以调制出更为细腻复杂的振动手感,从而可以和游戏音频进行很好的结合。
但是,在音频驱动振动的过程中,通常会引入一个双声道的音频数据,该音频数据的频率通常为48kHz,且需要占用16个比特位(bit),导致带宽消耗非常大,因此,该音频数据的传输过程将对基于串流技术实现的云游戏应用造成较大的影响。传统的压缩算法(例如mp3或opus算法)在低频处理时需要依赖快速傅里叶变换(FFT)实现,从而需要更大的时间窗口,因此难以实现低延迟的压缩效果。同时,傅里叶变换会引入较大的计算量,因此在现代计算机的CPU体系架构下,难以满足低延迟串流场景的实际需求。
为了解决上述问题,在本示例中,发明人通过分析手柄振动场景下的音频数据的特点,提出了一种低延迟、低损失、快速的有损音频振动压缩算法。经试验,该算法在不考虑静音数据不发送的情况下,可以达到约1%-3%的压缩率,使数据量降低30到100倍,能够较好的满足串流云游戏场景中的高实时性需求。
在该示例中,音频发送端主要包括:降采样模块、差分模块、以及编码模块。根据奈奎斯特–香农采样定理,数字信号的采样率大于模拟信号的2倍。由于振动信号是低频信号,因此,在本示例中能够大幅降低采样频率以节省空间。
其中,降采样模块用于实现降采样处理。具体的,根据经验,可选择目标振动设备(例如游戏手柄)的最高振动频率的m倍(m>=2,~5)作为降采样模块的目标频率,从而对源音频(即原始音频数据)执行降采样操作。通常情况下,m的取值大于等于2,且小于等于5,其中,5也可以替换为其他的上限阈值,本发明对此不做限定。
差分模块用于对降采样得到的当前采样值进行差分处理。由于振动频率低,因此响度的变化没有音乐强烈。利用这一特性,通过差分模块计算降采样后的每个时间点的采样值与其前一个时间点的采样值的差值,存储并传输该差值。由于差值较原值的波动范围更小,因此能够用较少的比特数进行传输。通常情况下,可以无损地使用7-15个比特(bit)对差值进行编码,与音频本身的高量化位数(通常为16-24个bit)相比,能够大幅降低数据量。另外,差值的量化值超出15个bit所能表征的数值范围时,可以对误差进行累积,从而在下个时间片进行误差补偿,以降低音质量化损失。
在本示例中,差分模块还可以替换为自适应差分模块。在自适应差分模块中,使用一个预先设置的序列来优化响度大幅变化时的效果。该预先设置的序列类似于上文提到的编码映射表,可以根据具体传输的音频的情况,基于各个频率分量的统计结果预先约定序列中的编码值与量化值的映射关系。
编码模块用于对差分模块得到的差值进行编码。在编码过程中,根据当前时间点的差值的数值大小等因素动态选择合适格式的数据包。相应的,在本示例中,预先定义如下的传输协议:在数据包的起始部分使用2个bit的元数据标识位标识数据包的格式类型。
其中,第一个标识位为声道标识位,当第一个声道标识位未被设置时(即未被置为1时),说明两个声道的差值结果是相同的,只需对一个声道的差值进行编码即可。在该方式中,使用数据包中剩余的15个bit传输编码后的差值数据。在该方式中,由于只需对一个声道的差值进行编码,因此,数据包长度可以设置为两个字节的长度。由于两个字节的数据包长度能够满足各种范围的差值编码,因此,在单声道方式中,可以不设置位数标识位,统一采用两个字节长度的数据包即可。
当第一个声道标识位被设置时(即被置为1时),说明两个声道的差值结果是不同的,需要同时对两个声道的差值进行编码。考虑到两个声道的差值数据的数据量比一个声道的差值数据的数据量高出一倍,因此,为了最大限度的节约存储空间,在双声道方式中,进一步设置有第二个标识位,即位数标识位。该位数标识位的取值根据差值的数值大小确定。例如,在差值的数值大小小于2的7次方的情况下(位数标识位可被置为0),定义每个声道的差值都可以通过7个bit进行编码,从而使用2个7bit数据对左右声道的差值进行编码,进而将两个声道的差值数据打包在2个字节内(数据包中除包含14个编码位之外,还包含两个元数据标识位)。又如,在差值的数值大小不小于2的7次方的情况下(位数标识位可被置为1),定义每个声道的差值都可以通过15个bit进行编码,从而将两个声道数据打包在4个字节内(没有超过原始量化数据的大小)。因此被压缩的数据能够总是小于原始数据,而利用对振动音频的经验,在没有引入自适应流压缩的前提下获得了更高的压缩率。
由此可见,该示例在不额外使用自适应编码算法(例如霍夫曼编码)以提高编解码速度和降低算力要求的前提下,能够大幅提升压缩率,降低数据量及传输延迟。该示例至少具备如下优势:
首先,根据音频驱动振动的特性,利用一个bit的元数据标识位(即声道标识位),能够在压缩时合并两个声道的相同数据。其次,根据音频驱动振动的特性,引入了降采样和差分编码流程以降低位数。并且,设计了多种不同长度以及编码位数的数据包格式,能够灵活适配不同数值大小的差值。通过该方式,可使数据包的传输延迟控制在一个audiobuffer以内(优于霍夫曼编码),并且,可以对低频震动信息做到非常高保真的保留(相对于opus或mp3算法而言),并实现约1%-3%的高压缩率。
图3示出了本公开又一实施例提供的一种音频数据的传输装置的示意图,该装置适用于音频发送端,该装置包括:
降采样模块31,适于对原始音频数据执行降采样处理得到当前采样值,计算所述当前采样值与相邻采样值之间的差值;
差分模块32,适于从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;
编码模块33,适于将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中,以传输至音频接收端。
在一种可选的实现方式中,所述差分模块32具体适于:
将所述差值与预设区间阈值进行比较,根据比较结果从至少两种候选数据包格式中选择所述目标数据包格式;
其中,在所述差值大于所述区间阈值的情况下,将至少两种候选数据包格式中的第一数据包格式确定为所述目标数据包格式;在所述差值不大于所述区间阈值的情况下,将至少两种候选数据包格式中的第二数据包格式确定为所述目标数据包格式;其中,所述第二数据包格式的编码位数小于所述第一数据包格式的编码位数;
其中,所述目标数据包格式中设置有位数标识位,所述位数标识位用于指示目标数据包格式的编码位数。
在一种可选的实现方式中,所述音频数据包括:对应于第一声道的第一音频数据,以及对应于第二声道的第二音频数据;则所述降采样模块具体适于:计算对应于所述第一音频数据的第一差值,以及对应于所述第二音频数据的第二差值;
则所述差分模块32具体适于:
根据所述第一差值与所述第二差值之间的比较结果,从至少两种候选数据包格式中选择所述目标数据包格式;
其中,所述目标数据包格式中设置有声道标识位,所述声道标识位用于指示所述第一差值与所述第二差值是否相等。
在一种可选的实现方式中,所述差分模块32具体适于:
获取所述差值的量化值,根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述量化值相对应的编码值,将所述量化值编码为与所述编码值相匹配的差编码数据;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
在一种可选的实现方式中,所述差值的量化值的数量大于所述编码位数对应的编码值的数量,且每个编码值对应的量化值的数量根据量化值在历史音频中的出现频次确定;
其中,若量化值在历史音频中的出现频次大于预设频次阈值,则量化值与编码值一一对应;
若量化值在历史音频中的出现频次不大于预设频次阈值,则多个量化值对应于同一个编码值。
在一种可选的实现方式中,所述相邻采样值为所述当前采样值的上一个采样值;所述差分模块具体适于:
在查询到的编码值与所述差值的量化值之间存在误差的情况下,存储所述查询到的编码值与所述差值的量化值之间的误差值;其中,所述误差值用于针对所述当前采样值的下一个采样值进行误差补偿处理。
在一种可选的实现方式中,所述原始音频数据用于驱动云游戏中的目标振动设备;
所述降采样模块具体适于:根据降采样频率,对原始音频数据执行降采样处理;其中,所述降采样频率为所述目标振动设备的最高振动频率的至少两倍。
图4示出了本公开又一实施例提供的一种音频数据的传输装置的示意图,该装置适用于音频接收端,该装置包括:
获取模块41,适于获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;
解码模块42,适于按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;
计算模块43,适于计算所述差值与相邻解码值之间的求和结果,得到当前解码值;
升采样模块44,适于对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
在一种可选的实现方式中,所述获取模块41具体适于:
获取所述数据包中包含的位数标识位的数值,根据所述位数标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;和/或,
获取所述数据包中包含的声道标识位的数值,根据所述声道标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数。
在一种可选的实现方式中,所述解码模块42具体适于:
根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述差编码数据相匹配的编码值对应的量化值,根据所述量化值确定与所述差编码数据相对应的差值;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
在一种可选的实现方式中,所述升采样模块44还适于:根据重建的原始音频数据驱动云游戏中的目标振动设备进行振动;其中,所述云游戏基于串流方式实现。
上述各个模块的具体结构和工作原理可参照方法实施例相应部分的描述,此处不再赘述。
另外,本申请又一实施例还提供了一种音频数据的传输系统,包括:适用于音频发送端的音频数据的传输装置,以及适用于音频接收端的音频数据的传输装置。其中,音频发送端的具体结构如图3所示,音频接收端的具体结构如图4所示。并且,音频发送端和音频接收端可以属于同一个业务系统,或者,也可以分别属于不同的业务系统,本申请对此不做限定。
本申请又一实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的虚拟场景中的对象加载方法。可执行指令具体可以用于使得处理器执行上述方法实施例中对应的各个操作。
图5示出了根据本公开又一实施例的一种电子设备的结构示意图,本公开具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)506、存储器(memory)504、以及通信总线508。
其中:
处理器502、通信接口506、以及存储器504通过通信总线508完成相互间的通信。
通信接口506,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述视频图像的检测方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本公开实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU。也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器504,用于存放程序510。存储器504可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行上述视频图像的检测方法实施例中对应的各个操作。
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的装置中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (17)
1.一种音频数据的传输方法,适用于音频发送端,所述方法包括:
对原始音频数据执行降采样处理得到当前采样值,计算所述当前采样值与相邻采样值之间的差值;
从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;
将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中,以传输至音频接收端。
2.根据权利要求1所述的方法,其中,所述从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式具体包括:
将所述差值与预设区间阈值进行比较,根据比较结果从至少两种候选数据包格式中选择所述目标数据包格式;
其中,在所述差值大于所述区间阈值的情况下,将至少两种候选数据包格式中的第一数据包格式确定为所述目标数据包格式;在所述差值不大于所述区间阈值的情况下,将至少两种候选数据包格式中的第二数据包格式确定为所述目标数据包格式;其中,所述第二数据包格式的编码位数小于所述第一数据包格式的编码位数;
其中,所述目标数据包格式中设置有位数标识位,所述位数标识位用于指示目标数据包格式的编码位数。
3.根据权利要求1或2所述的方法,其中,所述音频数据包括:对应于第一声道的第一音频数据,以及对应于第二声道的第二音频数据;则所述计算所述当前采样值与相邻采样值之间的差值具体包括:计算对应于所述第一音频数据的第一差值,以及对应于所述第二音频数据的第二差值;
则所述从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式具体包括:
根据所述第一差值与所述第二差值之间的比较结果,从至少两种候选数据包格式中选择所述目标数据包格式;
其中,所述目标数据包格式中设置有声道标识位,所述声道标识位用于指示所述第一差值与所述第二差值是否相等。
4.根据权利要求1-3任一所述的方法,其中,所述将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据具体包括:
获取所述差值的量化值,根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述量化值相对应的编码值,将所述量化值编码为与所述编码值相匹配的差编码数据;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
5.根据权利要求4所述的方法,其中,所述差值的量化值的数量大于所述编码位数对应的编码值的数量,且每个编码值对应的量化值的数量根据量化值在历史音频中的出现频次确定;
其中,若量化值在历史音频中的出现频次大于预设频次阈值,则量化值与编码值一一对应;
若量化值在历史音频中的出现频次不大于预设频次阈值,则多个量化值对应于同一个编码值。
6.根据权利要求5所述的方法,其中,所述相邻采样值为所述当前采样值的上一个采样值;所述查询与所述差值的量化值相对应的编码值,将所述差值的量化值编码为与所述编码值相匹配的差编码数据具体包括:
在查询到的编码值与所述差值的量化值之间存在误差的情况下,存储所述查询到的编码值与所述差值的量化值之间的误差值;其中,所述误差值用于针对所述当前采样值的下一个采样值进行误差补偿处理。
7.根据权利要求1-6任一所述的方法,其中,所述原始音频数据用于驱动云游戏中的目标振动设备;
所述对原始音频数据执行降采样处理具体包括:根据降采样频率,对原始音频数据执行降采样处理;其中,所述降采样频率为所述目标振动设备的最高振动频率的至少两倍。
8.一种音频数据的传输方法,适用于音频接收端,所述方法包括:
获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;
按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;
计算所述差值与相邻解码值之间的求和结果,得到当前解码值;
对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
9.根据权利要求8所述的方法,其中,所述从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数具体包括:
获取所述数据包中包含的位数标识位的数值,根据所述位数标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;和/或,
获取所述数据包中包含的声道标识位的数值,根据所述声道标识位的数值确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数。
10.根据权利要求8-9任一所述的方法,其中,所述按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值具体包括:
根据与所述目标数据包格式的编码位数相对应的编码映射表,查询与所述差编码数据相匹配的编码值对应的量化值,根据所述量化值确定与所述差编码数据相对应的差值;
其中,所述编码映射表用于存储对应于所述编码位数的各个编码值与差值的量化值之间的映射关系。
11.根据权利要求8-10任一所述的方法,其中,所述根据升采样的采样结果重建原始音频数据之后,还包括:根据重建的原始音频数据驱动云游戏中的目标振动设备进行振动;其中,所述云游戏基于串流方式实现。
12.一种音频数据的传输方法,所述方法包括:
音频发送端对原始音频数据执行降采样处理得到当前采样值,计算所述当前采样值与相邻采样值之间的差值;从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;并将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中;
音频接收端获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;计算所述差值与相邻解码值之间的求和结果,得到当前解码值;对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
13.一种音频数据的传输装置,适用于音频发送端,所述装置包括:
降采样模块,适于对原始音频数据执行降采样处理得到当前采样值,计算所述当前采样值与相邻采样值之间的差值;
差分模块,适于从至少两种候选数据包格式中选择与所述差值的数值大小相对应的目标数据包格式,将所述差值编码为与所述目标数据包格式的编码位数相匹配的差编码数据;
编码模块,适于将所述差编码数据封装在与所述目标数据包格式相匹配的数据包中,以传输至音频接收端。
14.一种音频数据的传输装置,适用于音频接收端,所述装置包括:
获取模块,适于获取来自音频发送端的数据包,从至少两种候选数据包格式中确定与所述数据包相对应的目标数据包格式,以及所述目标数据包格式的编码位数;
解码模块,适于按照所述编码位数对所述数据包中包含的差编码数据进行解码,得到与所述差编码数据相对应的差值;
计算模块,适于计算所述差值与相邻解码值之间的求和结果,得到当前解码值;
升采样模块,适于对所述当前解码值执行升采样处理,根据升采样的采样结果重建原始音频数据。
15.一种音频数据的传输系统,包括:权利要求13所述的音频数据的传输装置以及权利要求14所述的音频数据的传输装置。
16.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-12中任一项所述的音频数据的传输方法。
17.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-12中任一项所述的音频数据的传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310565370.9A CN116566962A (zh) | 2023-05-18 | 2023-05-18 | 音频数据的传输方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310565370.9A CN116566962A (zh) | 2023-05-18 | 2023-05-18 | 音频数据的传输方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116566962A true CN116566962A (zh) | 2023-08-08 |
Family
ID=87499858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310565370.9A Pending CN116566962A (zh) | 2023-05-18 | 2023-05-18 | 音频数据的传输方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116566962A (zh) |
-
2023
- 2023-05-18 CN CN202310565370.9A patent/CN116566962A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10382876B2 (en) | Method and apparatus for generating from a coefficient domain representation of HOA signals a mixed spatial/coefficient domain representation of said HOA signals | |
JP5688861B2 (ja) | レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化 | |
RU2630750C1 (ru) | Устройство и способ для кодирования и декодирования исходных данных | |
CN110249384B (zh) | 具有索引编码和位安排的量化器 | |
KR102613282B1 (ko) | 디지털 오디오 신호들에서의 가변 알파벳 크기 | |
CN109243471B (zh) | 一种快速编码广播用数字音频的方法 | |
KR20190066438A (ko) | 오류 벡터 크기 계산을 기반으로 한 데이터 압축 및 복원 장치와 그 방법 | |
CN106776663B (zh) | 音频文件的压缩方法和装置 | |
JP2020518030A (ja) | デジタルオーディオ信号における差分データ | |
CN113808596A (zh) | 一种音频编码方法和音频编码装置 | |
CN116566962A (zh) | 音频数据的传输方法、装置、电子设备及存储介质 | |
CN113539281A (zh) | 音频信号编码方法和装置 | |
JPH0969781A (ja) | オーディオデータ符号化装置 | |
TW201931353A (zh) | 音訊處理方法、裝置及非暫時性電腦可讀媒體 | |
CN110033781B (zh) | 音频处理方法、装置及非暂时性电脑可读媒体 | |
WO2019243670A1 (en) | Determination of spatial audio parameter encoding and associated decoding | |
WO2022258036A1 (zh) | 编解码方法、装置、设备、存储介质及计算机程序 | |
CN110970048B (zh) | 音频数据的处理方法及装置 | |
Mohamed | Wireless Communication Systems: Compression and Decompression Algorithms | |
CN117856797A (zh) | 数据压缩方法及相关装置 | |
CN116015310A (zh) | 一种数据无损压缩方法和装置 | |
CN116032901A (zh) | 多路音频数据信号采编方法、装置、系统、介质和设备 | |
CN112351317A (zh) | 一种自适应播放终端播放方法及装置 |
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 |