This application was originally filed as PCT Application No. PCT/FI2020/050506, filed on Jul. 27, 2020, which claims priority from GB Application No. 1911805.8, filed on Aug. 16, 2019, each of which is incorporated herein by reference in its entirety.
The present application relates to apparatus and methods for sound-field related parameter encoding, but not exclusively for direction related parameter encoding for an audio encoder and decoder.
Parametric spatial audio processing is a field of audio signal processing where the spatial aspect of the sound is described using a set of parameters. For example, in parametric spatial audio capture from microphone arrays, it is a typical and an effective choice to estimate from the microphone array signals a set of parameters such as directions of the sound in frequency bands, and the ratios between the directional and non-directional parts of the captured sound in frequency bands. These parameters are known to well describe the perceptual spatial properties of the captured sound at the position of the microphone array. These parameters can be utilized in synthesis of the spatial sound accordingly, for headphones binaurally, for loudspeakers, or to other formats, such as Ambisonics.
The directions and direct-to-total energy ratios in frequency bands are thus a parameterization that is particularly effective for spatial audio capture.
A parameter set consisting of a direction parameter in frequency bands and an energy ratio parameter in frequency bands (indicating the directionality of the sound) can be also utilized as the spatial metadata for an audio codec. For example, these parameters can be estimated from microphone-array captured audio signals, and for example a stereo signal can be generated from the microphone array signals to be conveyed with the spatial metadata. The stereo signal could be encoded, for example, with an AAC encoder. A decoder can decode the audio signals into PCM signals, and process the sound in frequency bands (using the spatial metadata) to obtain the spatial output, for example a binaural output.
The aforementioned solution is particularly suitable for encoding captured spatial sound from microphone arrays (e.g., in mobile phones, VR cameras, stand-alone microphone arrays). However, it may be desirable for such an encoder to have also other input types than microphone-array captured signals, for example, loudspeaker signals, audio object signals, or Ambisonic signals.
Analysing first-order Ambisonics (FOA) inputs for spatial metadata extraction has been thoroughly documented in scientific literature related to Directional Audio Coding (DirAC) and Harmonic planewave expansion (Harpex). This is since there exist microphone arrays directly providing a FOA signal (more accurately: its variant, the B-format signal), and analysing such an input has thus been a point of study in the field.
A further input for the encoder is also multi-channel loudspeaker input, such as 5.1 or 7.1 channel surround inputs.
However, with respect to input audio objects types to an encoder there may be accompanying metadata which comprises directional components of each audio object within a physical space. These directional components may comprise an elevation and azimuth of an audio object's position within the space.
In a first aspect there is provided a method for spatial audio signal encoding comprising: obtaining a plurality of audio direction parameters, wherein each parameter comprises an elevation value and an azimuth value and wherein each parameter has an ordered position; deriving for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters; rotating each derived audio direction parameter by the azimuth value of an audio direction parameter in the first position of the plurality of audio direction parameters and quantizing the rotation to determine for each a corresponding quantized rotated derived audio direction parameter; changing the ordered position of an audio direction parameter to a further position coinciding with a position of a rotated derived audio direction parameter when the azimuth value of the audio direction parameter is closest to the azimuth value of the further rotated derived audio direction parameter compared to the azimuth values of other rotated derived audio direction parameters, followed by determining for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter; and quantizing a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters.
Deriving for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters may comprise deriving the azimuth value of each derived audio direction parameter corresponding with a position of a plurality of positions around the circumference of a circle.
The plurality of positions around the circumference of the circle may be evenly distributed along one of: 360 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy more than a hemisphere; 180 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a hemisphere; 90 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a quadrant of a sphere; and a defined number of degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a threshold range of angles of a sphere.
The number of positions around a circumference of the circle may be determined by a determined number of audio direction parameters.
Rotating each derived audio direction parameter by the azimuth value of a first audio direction parameter of the plurality of audio direction parameters may comprise adding the azimuth value of the first audio direction parameter to the azimuth value of each derived audio direction parameter, wherein the elevation value of each derived audio direction parameter is set to zero.
Quantizing the rotation to determine for each a corresponding quantized rotated derived audio direction parameter may further comprises scalar quantizing the azimuth value of the first audio direction parameter; and the method may further comprise indexing the positions of the audio direction parameters after the changing the ordered position by assigning an index to a permutation of indices representing the order of the positions of the audio direction parameters.
Determining for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter may further comprise: determining for each of the plurality of audio direction parameters a difference audio direction parameter based on at least: determining a difference between the first positioned audio direction parameter and the first positioned rotated derived audio direction parameter; and/or determining a difference between a further audio direction parameter and a rotated derived audio direction parameter, wherein the position of the further audio direction parameter is unchanged; and/or determining a difference between a yet further audio direction parameter and a rotated derived audio direction parameter wherein the position of the yet further audio direction parameter has been changed to the position of the rotated derived audio direction parameter.
Changing the position of an audio direction parameter to a further position may apply to any audio direction parameter but the first positioned audio direction parameter.
Quantizing a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters may comprise quantizing the difference audio direction parameter for each of the at least three audio direction parameters as a vector being indexed to a codebook comprising a plurality of indexed elevation values and indexed azimuth values.
The plurality of indexed elevation values and indexed azimuth values may be points on a grid arranged in a form of a sphere, wherein the spherical grid may be formed by covering the sphere with smaller spheres, wherein the smaller spheres define the points of the spherical grid.
Obtaining a plurality of audio direction parameters may comprise receiving the plurality of audio direction parameters.
According to a second aspect there is provided a method for spatial audio signal decoding comprising: obtaining an encoded spatial audio signal; determining a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal; determining a rotation angle based on an encoded rotation parameter within the encoded spatial audio signal; applying the rotation angle to the configuration of directional values to generate a rotated configuration of directional values, the rotated configuration of directional values comprising a first directional value and second and further directional values; determining one or more difference values based on encoded difference values and encoded spatial extent values; applying the one or more difference values to respective second and further respective directional values to generate modified second and further directional values; and reordering the modified second and further directional values based on an encoded permutation index within the encoded spatial audio signal, such that the a first directional value and the reordered modified second and further directional values define audio direction parameters for audio objects.
Determining a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal may comprise deriving an azimuth value of each derived audio direction parameter corresponding with a position of a plurality of positions around the circumference of a circle.
The plurality of positions around the circumference of the circle may be evenly distributed along one of: 360 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy more than a hemisphere; 180 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a hemisphere; 90 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a quadrant of a sphere; and a defined number of degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a threshold range of angles of a sphere.
The number of positions around a circumference of the circle may be determined by a determined number of audio direction parameters.
According to a third aspect there is provided an apparatus for spatial audio signal encoding comprising means configured to: obtain a plurality of audio direction parameters, wherein each parameter comprises an elevation value and an azimuth value and wherein each parameter has an ordered position; derive for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters; rotate each derived audio direction parameter by the azimuth value of an audio direction parameter in the first position of the plurality of audio direction parameters and quantizing the rotation to determine for each a corresponding quantized rotated derived audio direction parameter; change the ordered position of an audio direction parameter to a further position coinciding with a position of a rotated derived audio direction parameter when the azimuth value of the audio direction parameter is closest to the azimuth value of the further rotated derived audio direction parameter compared to the azimuth values of other rotated derived audio direction parameters, followed by determining for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter; and quantize a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters.
The means configured to derive for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters may be configured to derive the azimuth value of each derived audio direction parameter corresponding with a position of a plurality of positions around the circumference of a circle.
The plurality of positions around the circumference of the circle may be evenly distributed along one of: 360 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy more than a hemisphere; 180 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a hemisphere; 90 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a quadrant of a sphere; and a defined number of degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a threshold range of angles of a sphere.
The number of positions around a circumference of the circle may be determined by a determined number of audio direction parameters.
The means configured to rotate each derived audio direction parameter by the azimuth value of a first audio direction parameter of the plurality of audio direction parameters may be configured to add the azimuth value of the first audio direction parameter to the azimuth value of each derived audio direction parameter, wherein the elevation value of each derived audio direction parameter may be set to zero.
The means configured to quantize the rotation to determine for each a corresponding quantized rotated derived audio direction parameter may be further configured to scalar quantize the azimuth value of the first audio direction parameter; and the means may be further configured to index the positions of the audio direction parameters after the changing the ordered position by assigning an index to a permutation of indices representing the order of the positions of the audio direction parameters.
The means configured to determine for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter may be further configured to: determine for each of the plurality of audio direction parameters a difference audio direction parameter based on at least: determine a difference between the first positioned audio direction parameter and the first positioned rotated derived audio direction parameter; and/or determine a difference between a further audio direction parameter and a rotated derived audio direction parameter, wherein the position of the further audio direction parameter is unchanged; and/or determine a difference between a yet further audio direction parameter and a rotated derived audio direction parameter wherein the position of the yet further audio direction parameter has been changed to the position of the rotated derived audio direction parameter.
The means configured to change the position of an audio direction parameter to a further position may apply to any audio direction parameter but the first positioned audio direction parameter.
The means configured to quantize a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters may be configured to quantize the difference audio direction parameter for each of the at least three audio direction parameters as a vector being indexed to a codebook comprising a plurality of indexed elevation values and indexed azimuth values.
The plurality of indexed elevation values and indexed azimuth values may be points on a grid arranged in a form of a sphere, wherein the spherical grid may be formed by covering the sphere with smaller spheres, wherein the smaller spheres may define the points of the spherical grid.
The means configured to obtain a plurality of audio direction parameters may be configured to receive the plurality of audio direction parameters.
According to a fourth aspect there is provided an apparatus for spatial audio signal decoding comprising means configured to: obtain an encoded spatial audio signal; determine a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal; determine a rotation angle based on an encoded rotation parameter within the encoded spatial audio signal; apply the rotation angle to the configuration of directional values to generate a rotated configuration of directional values, the rotated configuration of directional values comprising a first directional value and second and further directional values; determine one or more difference values based on encoded difference values and encoded spatial extent values; apply the one or more difference values to respective second and further respective directional values to generate modified second and further directional values; and reorder the modified second and further directional values based on an encoded permutation index within the encoded spatial audio signal, such that the a first directional value and the reordered modified second and further directional values define audio direction parameters for audio objects.
The means configured to determine a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal may be configured to derive an azimuth value of each derived audio direction parameter corresponding with a position of a plurality of positions around the circumference of a circle.
The plurality of positions around the circumference of the circle may be evenly distributed along one of: 360 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy more than a hemisphere; 180 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a hemisphere; 90 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a quadrant of a sphere; and a defined number of degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a threshold range of angles of a sphere.
The number of positions around a circumference of the circle may be determined by a determined number of audio direction parameters.
According to a fifth aspect there is provided an apparatus, the apparatus comprising at least one processor and at least one memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to: obtain a plurality of audio direction parameters, wherein each parameter comprises an elevation value and an azimuth value and wherein each parameter has an ordered position; derive for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters; rotate each derived audio direction parameter by the azimuth value of an audio direction parameter in the first position of the plurality of audio direction parameters and quantize the rotation to determine for each a corresponding quantized rotated derived audio direction parameter; change the ordered position of an audio direction parameter to a further position coinciding with a position of a rotated derived audio direction parameter when the azimuth value of the audio direction parameter is closest to the azimuth value of the further rotated derived audio direction parameter compared to the azimuth values of other rotated derived audio direction parameters, and determine for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter; and quantize a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters.
The apparatus configured to derive for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters may be caused to derive the azimuth value of each derived audio direction parameter corresponding with a position of a plurality of positions around the circumference of a circle.
The plurality of positions around the circumference of the circle may be evenly distributed along one of: 360 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy more than a hemisphere; 180 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a hemisphere; 90 degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a quadrant of a sphere; and a defined number of degrees of the circle when the spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters occupy less than a threshold range of angles of a sphere.
The number of positions around a circumference of the circle may be determined by a determined number of audio direction parameters.
The apparatus caused to rotate each derived audio direction parameter by the azimuth value of a first audio direction parameter of the plurality of audio direction parameters may be caused to add the azimuth value of the first audio direction parameter to the azimuth value of each derived audio direction parameter, wherein the elevation value of each derived audio direction parameter is set to zero.
The apparatus caused to quantize the rotation to determine for each a corresponding quantized rotated derived audio direction parameter may further be caused to scalar quantize the azimuth value of the first audio direction parameter; and the apparatus may be further caused to index the positions of the audio direction parameters after the changing the ordered position by assigning an index to a permutation of indices representing the order of the positions of the audio direction parameters.
The apparatus caused to determine for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter may further be caused to: determine for each of the plurality of audio direction parameters a difference audio direction parameter based on at least: a difference between the first positioned audio direction parameter and the first positioned rotated derived audio direction parameter; and/or a difference between a further audio direction parameter and a rotated derived audio direction parameter, wherein the position of the further audio direction parameter is unchanged; and/or a difference between a yet further audio direction parameter and a rotated derived audio direction parameter wherein the position of the yet further audio direction parameter has been changed to the position of the rotated derived audio direction parameter.
The apparatus caused to change the position of an audio direction parameter to a further position may apply to any audio direction parameter but the first positioned audio direction parameter.
The apparatus caused to quantize a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters may be caused to quantize the difference audio direction parameter for each of the at least three audio direction parameters as a vector being indexed to a codebook comprising a plurality of indexed elevation values and indexed azimuth values.
The plurality of indexed elevation values and indexed azimuth values may be points on a grid arranged in a form of a sphere, wherein the spherical grid may be formed by covering the sphere with smaller spheres, wherein the smaller spheres define the points of the spherical grid.
The apparatus caused to obtain a plurality of audio direction parameters may be caused to receive the plurality of audio direction parameters.
According to a sixth aspect there is provided an apparatus, the apparatus comprising at least one processor and at least one memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to: obtain an encoded spatial audio signal; determine a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal; determine a rotation angle based on an encoded rotation parameter within the encoded spatial audio signal; apply the rotation angle to the configuration of directional values to generate a rotated configuration of directional values, the rotated configuration of directional values comprising a first directional value and second and further directional values; determine one or more difference values based on encoded difference values and encoded spatial extent values; apply the one or more difference values to respective second and further respective directional values to generate modified second and further directional values; reorder the modified second and further directional values based on an encoded permutation index within the encoded spatial audio signal, such that the a first directional value and the reordered modified second and further directional values define audio direction parameters for audio objects.
The apparatus caused to determine a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal may be caused to derive an azimuth value of each derived audio direction parameter corresponding with a position of a plurality of positions around the circumference of a circle.
The plurality of positions around the circumference of the circle may be evenly distributed along one of: 360 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy more than a hemisphere; 180 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a hemisphere; 90 degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a quadrant of a sphere; and a defined number of degrees of the circle when the encoded spatial utilization parameter within the encoded spatial audio signal indicates elevation values and azimuth values of audio direction parameters occupy less than a threshold range of angles of a sphere.
The number of positions around a circumference of the circle may be determined by a determined number of audio direction parameters.
According to a seventh aspect there is provided a computer program for spatial audio signal encoding comprising instructions [or a computer readable medium comprising program instructions] for causing an apparatus to perform at least the following: obtaining a plurality of audio direction parameters, wherein each parameter comprises an elevation value and an azimuth value and wherein each parameter has an ordered position; deriving for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters; rotating each derived audio direction parameter by the azimuth value of an audio direction parameter in the first position of the plurality of audio direction parameters and quantizing the rotation to determine for each a corresponding quantized rotated derived audio direction parameter; changing the ordered position of an audio direction parameter to a further position coinciding with a position of a rotated derived audio direction parameter when the azimuth value of the audio direction parameter is closest to the azimuth value of the further rotated derived audio direction parameter compared to the azimuth values of other rotated derived audio direction parameters, followed by determining for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter; and quantizing a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters.
According to an eighth aspect there is provided a computer program for spatial audio signal decoding comprising instructions [or a computer readable medium comprising program instructions] for causing an apparatus to perform at least the following: obtaining an encoded spatial audio signal; determining a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal; determining a rotation angle based on an encoded rotation parameter within the encoded spatial audio signal; applying the rotation angle to the configuration of directional values to generate a rotated configuration of directional values, the rotated configuration of directional values comprising a first directional value and second and further directional values; determining one or more difference values based on encoded difference values and encoded spatial extent values; applying the one or more difference values to respective second and further respective directional values to generate modified second and further directional values; and reordering the modified second and further directional values based on an encoded permutation index within the encoded spatial audio signal, such that the a first directional value and the reordered modified second and further directional values define audio direction parameters for audio objects.
According to a ninth aspect there is provided a non-transitory computer readable medium comprising program instructions for causing an apparatus to perform at least the following: obtaining a plurality of audio direction parameters, wherein each parameter comprises an elevation value and an azimuth value and wherein each parameter has an ordered position; deriving for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters; rotating each derived audio direction parameter by the azimuth value of an audio direction parameter in the first position of the plurality of audio direction parameters and quantizing the rotation to determine for each a corresponding quantized rotated derived audio direction parameter; changing the ordered position of an audio direction parameter to a further position coinciding with a position of a rotated derived audio direction parameter when the azimuth value of the audio direction parameter is closest to the azimuth value of the further rotated derived audio direction parameter compared to the azimuth values of other rotated derived audio direction parameters, followed by determining for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter; and quantizing a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters.
According to a tenth aspect there is provided a non-transitory computer readable medium comprising program instructions for causing an apparatus to perform at least the following: obtaining an encoded spatial audio signal; determining a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal; determining a rotation angle based on an encoded rotation parameter within the encoded spatial audio signal; applying the rotation angle to the configuration of directional values to generate a rotated configuration of directional values, the rotated configuration of directional values comprising a first directional value and second and further directional values; determining one or more difference values based on encoded difference values and encoded spatial extent values; applying the one or more difference values to respective second and further respective directional values to generate modified second and further directional values; and reordering the modified second and further directional values based on an encoded permutation index within the encoded spatial audio signal, such that the a first directional value and the reordered modified second and further directional values define audio direction parameters for audio objects.
According to an eleventh aspect there is provided an apparatus comprising: obtaining circuitry configured to obtain a plurality of audio direction parameters, wherein each parameter comprises an elevation value and an azimuth value and wherein each parameter has an ordered position; deriving circuitry configured to derive for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters; rotating and quantizing circuitry configured to rotate each derived audio direction parameter by the azimuth value of an audio direction parameter in the first position of the plurality of audio direction parameters and quantizing the rotation to determine for each a corresponding quantized rotated derived audio direction parameter; reordering circuitry configured to change the ordered position of an audio direction parameter to a further position coinciding with a position of a rotated derived audio direction parameter when the azimuth value of the audio direction parameter is closest to the azimuth value of the further rotated derived audio direction parameter compared to the azimuth values of other rotated derived audio direction parameters; determining circuitry configured to determine for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter; and quantizing circuitry configured to quantize a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters.
According to a twelfth aspect there is provided an apparatus comprising obtaining circuitry configured to obtain an encoded spatial audio signal; determining circuitry configured to determine a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal; determining circuitry configured to determine a rotation angle based on an encoded rotation parameter within the encoded spatial audio signal; processing circuitry configured to apply the rotation angle to the configuration of directional values to generate a rotated configuration of directional values, the rotated configuration of directional values comprising a first directional value and second and further directional values; determining circuitry configured to determine one or more difference values based on encoded difference values and encoded spatial extent values; processing circuitry configured to apply the one or more difference values to respective second and further respective directional values to generate modified second and further directional values; and reordering circuitry configured to reorder the modified second and further directional values based on an encoded permutation index within the encoded spatial audio signal, such that the a first directional value and the reordered modified second and further directional values define audio direction parameters for audio objects.
According to a thirteenth aspect there is provided a computer readable medium comprising program instructions for causing an apparatus to perform at least the following: obtaining a plurality of audio direction parameters, wherein each parameter comprises an elevation value and an azimuth value and wherein each parameter has an ordered position; deriving for each of the plurality of audio direction parameters a corresponding derived audio direction parameter comprising an elevation and an azimuth value, corresponding derived audio direction parameters being arranged in a manner determined by a spatial utilization defined by the elevation values and the azimuth values of the plurality of audio direction parameters; rotating each derived audio direction parameter by the azimuth value of an audio direction parameter in the first position of the plurality of audio direction parameters and quantizing the rotation to determine for each a corresponding quantized rotated derived audio direction parameter; changing the ordered position of an audio direction parameter to a further position coinciding with a position of a rotated derived audio direction parameter when the azimuth value of the audio direction parameter is closest to the azimuth value of the further rotated derived audio direction parameter compared to the azimuth values of other rotated derived audio direction parameters, followed by determining for each of the plurality audio direction parameters a difference between each audio direction parameter and their corresponding quantized rotated derived audio direction parameter; and quantizing a difference for each of the plurality of audio direction parameters, wherein a difference quantization resolution for each of the plurality of audio direction parameters is defined based on a spatial extent of the audio direction parameters.
According to a fourteenth aspect there is provided a computer readable medium comprising program instructions for causing an apparatus to perform at least the following: obtaining an encoded spatial audio signal; determining a configuration of directional values based on an encoded space utilization parameter within the encoded spatial audio signal; determining a rotation angle based on an encoded rotation parameter within the encoded spatial audio signal; applying the rotation angle to the configuration of directional values to generate a rotated configuration of directional values, the rotated configuration of directional values comprising a first directional value and second and further directional values; determining one or more difference values based on encoded difference values and encoded spatial extent values; applying the one or more difference values to respective second and further respective directional values to generate modified second and further directional values; and reordering the modified second and further directional values based on an encoded permutation index within the encoded spatial audio signal, such that the a first directional value and the reordered modified second and further directional values define audio direction parameters for audio objects.
An apparatus comprising means for performing the actions of the method as described above.
An apparatus configured to perform the actions of the method as described above.
A computer program comprising program instructions for causing a computer to perform the method as described above.
A computer program product stored on a medium may cause an apparatus to perform the method as described herein.
An electronic device may comprise apparatus as described herein.
A chipset may comprise apparatus as described herein.
Embodiments of the present application aim to address problems associated with the state of the art.
For a better understanding of the present application, reference will now be made by way of example to the accompanying drawings in which:
The following describes in further detail suitable apparatus and possible mechanisms for the provision of effective spatial analysis derived metadata parameters for multi-channel input format audio signals and input audio objects. In the following discussions multi-channel system is discussed with respect to a multi-channel microphone implementation. However as discussed above the input format may be any suitable input format, such as multi-channel loudspeaker, ambisonic (FOA/HOA) etc. It is understood that in some embodiments the channel location is based on a location of the microphone or is a virtual location or direction. Furthermore the output of the example system is a multi-channel loudspeaker arrangement. However it is understood that the output may be rendered to the user via means other than loudspeakers. Furthermore, the multi-channel loudspeaker signals may be generalised to be two or more playback audio signals.
As discussed previously spatial metadata parameters such as direction and direct-to-total energy ratio (or diffuseness-ratio, absolute energies, or any suitable expression indicating the directionality/non-directionality of the sound at the given time-frequency interval) parameters in frequency bands are particularly suitable for expressing the perceptual properties of natural sound fields. Synthetic sound scenes such as 5.1 loudspeaker mixes commonly utilize audio effects and amplitude panning methods that provide spatial sound that differs from sounds occurring in natural sound fields. In particular, a 5.1 or 7.1 mix may be configured such that it contains coherent sounds played back from multiple directions. For example, it is common that some sounds of a 5.1 mix perceived directly at the front are not produced by a centre (channel) loudspeaker, but for example coherently from left and right front (channels) loudspeakers, and potentially also from the centre (channel) loudspeaker. The spatial metadata parameters such as direction(s) and energy ratio(s) do not express such spatially coherent features accurately. As such other metadata parameters such as coherence parameters may be determined from analysis of the audio signals to express the audio signal relationships between the channels.
In addition to multi-channel input format audio signals an encoding system may also be required to encode audio objects representing various sound sources within a physical space. Each audio object can be accompanied, whether it is in the form of metadata or some other mechanism, by directional data in the form of azimuth and elevation values which indicate the position of an audio object within a physical space.
As expressed above an example of the incorporation of direction information for audio objects as metadata is to use determined azimuth and elevation values. However conventional uniform azimuth and elevation sampling produces a non-uniform direction distribution.
The concept I in the embodiments herein is the use of components of the object metadata, such as gain and spatial extent to determine the quantization resolution of the directional information for each object. In addition in some embodiments in order to ensure that there are no jumps in the object position the quantization is implemented such that the time evolution of the quantized angle value follows the time evolution of the non-quantized angle values.
The proposed directional index for audio objects may then be used alongside a downmix signal (‘channels’), to define a parametric immersive format that can be utilized, e.g., for the Immersive Voice and Audio Service (IVAS) codec.
In the following the decoding of such indexed direction parameters to produce quantised directional parameters which can be used in synthesis of spatial audio based on audio object sound-field related parameterization is also discussed.
With respect to
The input to the system 100 and the ‘analysis’ part 122 is the multi-channel signals 102. In the following examples a microphone channel signal input is described, however any suitable input (or synthetic multi-channel) format may be implemented in other embodiments.
The multi-channel signals are passed to a downmixer 103 and to an analysis processor 105.
In some embodiments the downmixer 103 is configured to receive the multi-channel signals and downmix the signals to a determined number of channels and output the downmix signals 104. For example the downmixer 103 may be configured to generate a 2 audio channel downmix of the multi-channel signals. The determined number of channels may be any suitable number of channels. In some embodiments the downmixer 103 is optional and the multi-channel signals are passed unprocessed to an encoder 107 in the same manner as the downmix signal are in this example.
In some embodiments the analysis processor 105 is also configured to receive the multi-channel signals and analyse the signals to produce metadata 106 associated with the multi-channel signals and thus associated with the downmix signals 104. The analysis processor 105 may be configured to generate the metadata which may comprise, for each time-frequency analysis interval, a direction parameter 108, an energy ratio parameter 110, a coherence parameter 112, and a diffuseness parameter 114. The direction, energy ratio and diffuseness parameters may in some embodiments be considered to be spatial audio parameters. In other words the spatial audio parameters comprise parameters which aim to characterize the sound-field created by the multi-channel signals (or two or more playback audio signals in general). The coherence parameters may be considered to be signal relationship audio parameters which aim to characterize the relationship between the multi-channel signals.
In some embodiments the parameters generated may differ from frequency band to frequency band. Thus for example in band X all of the parameters are generated and transmitted, whereas in band Y only one of the parameters is generated and transmitted, and furthermore in band Z no parameters are generated or transmitted. A practical example of this may be that for some frequency bands such as the highest band some of the parameters are not required for perceptual reasons. The downmix signals 104 and the metadata 106 may be passed to an encoder 107.
The encoder 107 may comprise an IVAS stereo core 109 which is configured to receive the downmix (or otherwise) signals 104 and generate a suitable encoding of these audio signals. The encoder 107 can in some embodiments be a computer (running suitable software stored on memory and on at least one processor), or alternatively a specific device utilizing, for example, FPGAs or ASICs. The encoding may be implemented using any suitable scheme. The encoder 107 may furthermore comprise a metadata encoder or quantizer 109 which is configured to receive the metadata and output an encoded or compressed form of the information. Additionally, there may also be an audio object encoder 121 within the encoder 107 which in embodiments may be arranged to encode data (or metadata) associated with the multiple audio objects along the input 120. The data associated with the multiple audio objects may comprise at least in part directional data.
In some embodiments the encoder 107 may further interleave, multiplex to a single data stream or embed the metadata within encoded downmix signals before transmission or storage shown in
In the decoder side, the received or retrieved data (stream) may be received by a decoder/demultiplexer 133. The decoder/demultiplexer 133 may demultiplex the encoded streams and pass the audio encoded stream to a downmix extractor 135 which is configured to decode the audio signals to obtain the downmix signals. Similarly, the decoder/demultiplexer 133 may comprise a metadata extractor 137 which is configured to receive the encoded metadata and generate metadata. Additionally, the decoder/demultiplexer 133 may also comprise an audio object decoder 141 which can be configured to receive encoded data associated with multiple audio objects and accordingly decode such data to produce the corresponding decoded data 140. The decoder/demultiplexer 133 can in some embodiments be a computer (running suitable software stored on memory and on at least one processor), or alternatively a specific device utilizing, for example, FPGAs or ASICs.
The decoded metadata and downmix audio signals may be passed to a synthesis processor 139.
The system 100 ‘synthesis’ part 131 further shows a synthesis processor 139 configured to receive the downmix and the metadata and re-creates in any suitable format a synthesized spatial audio in the form of multi-channel signals 150 (these may be multichannel loudspeaker format or in some embodiments any suitable output format such as binaural or Ambisonics signals, depending on the use case) based on the downmix signals and the metadata.
In some embodiments there may be an additional input 120 which may specifically comprise directional data associated with multiple audio objects. One particular example of such a use case is a teleconference scenario where participants are positioned around a table. Each audio object may represent audio data associated with each participant. In particular the audio object may have positional data associated with each participant. The data associated with the audio objects is depicted in
The system 100 can thus in some embodiments be configured to accept multiple audio objects with associated metadata such as direction (or position), spatial extent, gain, energy/power values, energy ratios, coherence etc along the input 120 or from the analysis processor 105. The audio objects with the associated directional data may be passed to a metadata encoder/quantizer 111 and in some embodiments a specific audio object encoder 121 for encoding and quantizing the metadata.
To that extent the directional data associated with each audio object can be expressed in terms of azimuth φ and elevation θ, where the azimuth value and elevation value of each audio object indicates the position of the object in space at any point in time. The azimuth and elevation values can be updated on a time frame by time frame basis which does not necessarily have to coincide with the time frame resolution of the directional metadata parameters associated with the multi-channel audio signals.
In general, the directional information for N active input audio objects to the audio object encoder 121 may be expressed in the form of Pq=(θq,ϕq), q=0:N−1, where Pq is the directional information of an audio object with index q having a two dimensional vector comprising elevation θ value and the azimuth φ value.
The concept herein is to generate an encoding of audio objects based on the arrangement of the audio objects and their associated parameters. For example in some embodiments a vector of “template” directions is generated based on the arrangement of audio objects and their associated parameters. In some embodiments the quantization of any difference between the directional information of an audio object and a “template” direction vector derived for that arrangement of audio objects and their associated parameters (for example using a spherical quantization scheme) can be based on the arrangement of audio objects and their associated parameters.
In this regard
The audio object encoder 121 can comprise in some embodiments an audio object parameter demultiplexer (Demux)/encoder 200. The audio object parameter demultiplexer (Demux)/encoder 200 can be configured to receive the audio object parameter input 120 and determine or obtain or demultimplex parameters associated with the audio objects from the input. For example as shown in
The audio object encoder 121 can comprise a space utilization determiner 201. The space utilization determiner 201 can be configured to receive all of the directions of all of the audio objects and determine the range of the azimuth and elevation which contain all of the audio objects. In some embodiments the space utilization determiner 201 is configured to determine the utilization of the space based on the audio objects. The utilization of the space based on the audio objects can be whether all of the audio objects are within a hemisphere (and identify which hemisphere or the centre or mean of the hemisphere), whether all of the audio objects are within a quadrant of the sphere (and identify which quadrant or the centre or mean of the quadrant) or identify whether the range is more than (or less than) a defined range threshold). In some embodiments the results of this determination can be encoded (for example using 1 bit to identify which hemisphere, 2 bits to identify which quadrant etc). Thus in some embodiments this information can be encoded using B1 bits. The identified space utilization may furthermore be passed to the audio object vector generator 202.
The audio object encoder 121 can comprise an audio object vector generator 202. The audio object vector generator 202 is arranged to derive a suitable initial “template” direction for each audio object. The initial “template” direction for each object (which may be in a vector format) can in some embodiments be generated based on the identified space utilization. For example, in some embodiments, the audio object vector generator 202 is configured to generate a vector having N derived directions corresponding to the N audio objects. Where the space utilization is over the complete sphere (in other words not determined to be within a hemisphere, quadrant or other determined range) then the initial “template” directions may be distributed around the circumference of a circle. In particular embodiments the derived directions can be considered from the viewpoint of the audio objects directions being evenly distributed as N equidistant points around a unit circle.
In some embodiments the N derived directions are disclosed as being formed into a vector structure (termed a vector, SP) with each element corresponding to the derived direction for one of the N audio objects. However, it is to be understood that the vector structure is not a necessary requirement, and that the following disclosure can be equally applied by considering the audio objects as a collection of indexed audio objects which do not have to be necessarily structured in the form of vectors.
The audio object vector generator 202 can thus be configured to derive a “template” derived vector SP having N two dimensional elements, whereby each element represents the azimuth and elevation associated with an audio object. The vector SP (for the whole sphere space utilization determination) may then be initialised by setting the azimuth and elevation value of each element such that the N audio objects are evenly distributed around a unit circle. This can be realised by initializing each audio object direction element within the vector to have an elevation value of zero and an azimuth value of
where q is the index of the associated audio object. Therefore, the vector SP can be written for the N audio objects as:
In other words, the SP vector can be initialised so that the directional information of each audio object is presumed to be distributed evenly along a unit circle starting at an azimuth value of 0°.
In some embodiments where the space utilization is determined to be within a hemisphere then the audio object vector generator 202 can be configured to derive a “template” derived vector SP (for the hemisphere space utilization determination) initialised by setting the azimuth and elevation value of each element such that the N audio objects are evenly distributed around a half circle. This can be realised by initializing each audio object direction element within the vector to have an elevation value of zero and an azimuth value of
where q is the index of the associated audio object. Therefore, the vector SP can be written for the N audio objects as:
In other words, the SP vector can be initialised so that the directional information of each audio object is presumed to be distributed evenly along a half circle with a unit radius starting at an azimuth value of 90° and extending to −90°.
Similarly where the space utilization is determined to be within a quadrant then the audio object vector generator 202 can be configured to derive a “template” derived vector SP (for the quadrant space utilization determination) initialised by setting the azimuth and elevation value of each element such that the N audio objects are evenly distributed around a quarter circle. This can be realised by initializing each audio object direction element within the vector to have an elevation value of zero and an azimuth value of
where q is the index of the associated audio object. Therefore, the vector SP can be written for the N audio objects as:
In other words, the SP vector can be initialised so that the directional information of each audio object is presumed to be distributed evenly along a half circle with a unit radius starting at an azimuth value of 45° and extending to −45°. This can be extended to any suitable extent range. In some embodiments where the extent in azimuth or elevation differs one or the other of the extents may be used to define the template range. Thus for example there may be templates associated with the elevation.
The derived SP vector having elements comprising the derived directions corresponding to each audio object may then be passed to the 1st audio object direction rotator 203 in the audio object encoder 121.
The audio object encoder 121 can comprise a 1st audio object direction rotator 203. The 1st audio object direction rotator 203 is configured to receive the derived vector SP and furthermore at least one of the audio object directions. The 1st audio object direction rotator 203 is then configured to determine from the direction parameter of the first audio object a rotation angle which orientates the 1st audio object with one of the vector elements. This can be seen as rotating all directions such that the direction of the first object is closest to the “front” direction and the sum distances for all directions with respect to each component of the supervector is minimized.
The functional block may then rotate each derived direction within the SP vector by the azimuth value of the first component ϕ0 from the first received audio object P0. That is each azimuth component of each derived direction within the derived vector SP may be rotated by adding the value of the first azimuth component ϕ0 of the first received audio object. In terms of the SP vector this operation results in each element having the following form,
In terms of just solely the azimuth angles,
=({circumflex over (ϕ)}0;{circumflex over (ϕ)}1;{circumflex over (ϕ)}2; . . . ;{circumflex over (ϕ)}N−1)
As a result of this step the rotated derived vector is now aligned to the direction of the first audio object on the unit circle.
A similar rotation of each derived direction within the SP vector by the azimuth value of the first component ϕ0 from the first received audio object P0. In some embodiments the first component ϕ0 from the first received audio object P0 is the component which is closest to the mean of all of the components. For example ϕ0 closest to
As a result of this step the rotated derived vector has one element which is aligned to the direction of the first audio object. The rotated derived vector can in some embodiments then be passed to a difference determiner 207 and furthermore to an audio object repositioner and indexer 205. Additionally the rotation angle can be passed to a quantizer 211.
The audio object encoder 121 can comprise a quantizer 211 configured to receive the rotation angle. The quantizer 211 furthermore is configured to quantize the rotation angle. For example, a linear quantizer with a resolution of 2.5 degrees (that is 5 degrees between consecutive points on the linear scale) results in 72 linear quantization levels. It is to be noted that the derived vector SP would be known at both the encoder and decoder because the number of active objects would be fixed at N. if all the sphere space is used for the vector then in some embodiments B2=7 bits can be used to quantize the rotation in the horizontal space (in some embodiments B2=6 bits are used where only one hemisphere is used, and B2=5 bits are used when only a quadrant is used. The quantized rotation angle is also passed to the difference determiner 207.
The audio object encoder 121 can also comprise an audio direction repositioner & indexer 205 configured to reorder the position of the received audio objects to align more closely to the derived directions of the elements of the rotated derived vector .
This may be achieved by reordering the position of the audio objects such that the azimuth value of each reordered audio object is aligned with the element position having the closest azimuth value in the rotated derived vector . The reordered positions of each audio object may then be encoded as a permutation index. This process may comprise the following algorithmic steps:
For an example comprising four active audio objects. The SP codevector may be initialised evenly along the unit circle as SP=(0, 0; 0, 90; 0, 180; 0, 270). The directional data associated with the four audio objects:
((θ0,ϕ0);(θ1,ϕ1); . . . (θN−1,ϕN−1)),
may be received as:
((0,130);(0,210);(0,39);(0,310),
in which the first ϕ0 is given as 130 degrees. In this particular example the rotated azimuth angles in the vector are given by (0+130, 90+130, 180+130, 270+130)=(130; 220; 310; 400)=(130, 220, 310, 40). In this example the second audio object with azimuth angle 210 closest to the second azimuth angle in the vector , the third audio object with azimuth angle 30 is closest to the fourth azimuth angle in the vector and the fourth audio object with azimuth angle 310 is closest to the third azimuth angle in the vector . Therefore, in this case the reordered audio object index vector is Í=(i0, i1, i3, i2).
Returning to the above example of a system having 4 active audio objects it is only the indices of i3, i1, i2 that need to be indexed. The indexing for the possible permutations of indices of the reordered audio object index vector for the above demonstrative example may take the following form
Therefore, to summarize the rotated derived vector can be encoded for transmission by quantizing the azimuth of the first object ϕ0. Additionally the positions of the ordered active audio object positions are required to be transmitted as well. The permutation index can for example be encoded using B3 bits, where the Index, Iro representing the order of indices of the audio direction parameters of the audio objects 1 to N−1 can form part of an encoded bitstream such as that from the encoder 100.
In some embodiments the audio object encoder 121 can also comprise a difference determiner 207. The difference determiner 207 is configured to receive the rotated derived vector , the quantized rotation angle and the indexed audio object positions and determine a difference vector between the rotated derived vector and the directional data of each audio object. In some embodiments the directional difference vector can be a 2-dimensional vector having an elevation difference value and an azimuth difference value. In some embodiments the azimuth difference value is furthermore evaluated with respect to the difference between the rotated derived vector and the quantized rotation angle. In other words the difference takes into account the quantization of the rotation angle to reflect the difference between the indexed audio position and the quantized rotation rather than the indexed audio position and the rotation.
For instance, the directional difference vector for an audio object Pi with directional components (θi,ϕi) can be found as
(Δθ1,Δϕi)=(θi−{circumflex over (θ)}i,ϕi−{circumflex over (ϕ)}ιq)
In practice however, Δθi may be θi because the elevation components of the above SP codevector are zero. However, it is to be understood that other embodiments may derive a vector SP in which the elevation component is not zero, in these embodiments an equivalent rotation change may be applied to the elevation component of each element of the derived vector SP. That is the elevation component of each element of the derived vector SP may be rotated by (or aligned to) the first audio object's elevation.
It is to be understood that the directional difference for an audio object Pi is formed based on the difference between each element of the rotated derived vector and the corresponding reordered (or repositioned) audio object direction.
It is to be further understood that the above description has been laid out in terms of repositioning (or rearranging) the order of the audio objects however the above description is equally valid for the repositioning of just the audio direction parameters rather than the repositioning of the whole audio objects. The difference vector may then be passed to a (spherical) quantizer & indexer 209.
In some embodiments the audio object encoder 121 can also comprise a quantizer resolution determiner 208. The quantizer resolution determiner 208 is configured to receive the bits used to encode the spatial extent (B0), the encoded space utilization (B1) the encoded permutation index (B3) and encoded difference values (B4). Additionally in some embodiment the quantizer resolution determiner 208 is configured to receive the indication of the audio object spatial extents (the dispersion of the audio objects). In some embodiments the quantizer resolution determiner 208 is then configured to determine a suitable quantization resolution which is provided to the (spherical) quantizer & indexer 209.
With respect to
In some embodiments the determination may be based on a look-up table or other formulation such as:
The number of bits shown above may be based on a cumulated number of bits for both azimuth and elevation quantization. The values in the table are given as example and may be adjusted (dynamically) depending on the total bitrate of the codec.
Furthermore in some embodiments the spatial extent/energy parameter bit allocator 301 can be configured to modify the quantization level based on audio signal (energy/power/amplitude) levels associated with the audio object. Thus for example the quantization resolution can be lowered where the signal level is lower than a determined threshold or increased where the signal level is higher than a determined threshold. These determined thresholds may be static or dynamic and may be relative to the signal levels for each audio object. In some embodiments the signal level is estimated using the energy of the signal as given by the mono codec for the object multiplied by the gain of the considered audio object.
In some embodiments the spatial extent/energy parameter bit allocator 301 can output the number of bits to be used to a quantizer bit manager 303.
The quantizer resolution determiner 208 as shown in
When the number of bits used is more than the available number of bits for the object metadata then the quantization resolution number of bits used can be reduced. In some embodiments the reduction of the quantization resolution can be performed such that the resolution is reduced gradually by 1 bit (for instance) starting with an object having a lower signal level (which can for example be determined by a signal energy multiplied by the gain), until the available number of bits for metadata is reached.
The managed bits value for the quantization resolution can then be output to the quantizer and indexer 209.
In some embodiments the audio object encoder 121 can also comprise a (spherical) quantizer & indexer 209. The (spherical) quantizer & indexer 209 may in some embodiments furthermore receive the directional difference vector (Δθi,Δϕi) associated with each audio object and quantize these values using a suitable quantization operation based on the quantization resolution provided by the quantization resolution determiner 208. Thus for each object directional differences with respect to the components of the rotated super-codevector are calculated. The differences can be quantized in the spherical grid corresponding to 11 bits (for 2.5 degrees resolution) by assigning the azimuth difference to the elevation components and the elevation difference to the elevation component. Alternatively in some embodiments the quantization of the differences can be implemented with a scalar quantizer for each component.
An example (spherical) quantizer & indexer 209 is shown in more detail in
The following section describes a suitable spherical quantization scheme for indexing the directional difference vector (Δθi,Δϕi) for each audio object.
In the following text the input to the quantizer is generally referred to as (θ,ϕ) in order to simplify the nomenclature and because the method can be used for any elevation azimuth pair.
The quantizer & indexer 209 in some embodiments comprises a sphere positioner 403. The sphere positioner is configured to configure the arrangement of spheres based on the quantization resolution value from the quantization determiner. The proposed spherical grid uses the idea of covering a sphere with smaller spheres and considering the centres of the smaller spheres as points defining a grid of almost equidistant directions.
The sphere may be defined relative to the reference location and a reference direction. The sphere can be visualised as a series of circles (or intersections) and for each circle intersection there are located at the circumference of the circle a defined number of (smaller) spheres. This is shown for example with respect to
The smaller spheres 591, 593, 595, 597 and 599 are located such that they each touch the main sphere 570, the smaller sphere 581 and additionally a pair of adjacent smaller spheres. For example the smaller sphere 591 additionally touches adjacent smaller spheres 599 and 593, the smaller sphere 593 additionally touches adjacent smaller spheres 591 and 595, the smaller sphere 595 additionally touches adjacent smaller spheres 593 and 597, the smaller sphere 597 additionally touches adjacent smaller spheres 599 and 591, and the smaller sphere 599 additionally touches adjacent smaller spheres 597 and 591.
The smaller sphere 581 therefore defines a cone 580 or solid angle about the +90 degree elevation line and the smaller spheres 591, 593, 595, 597 and 599 define a further cone 590 or solid angle about the +90 degree elevation line, wherein the further cone is a larger solid angle than the cone.
In other words the smaller sphere 581 (which defines a first circle of spheres) may be considered to be located at a first elevation (with the smaller sphere centre +90 degrees), and the smaller spheres 591, 593, 595, 597 and 599 (which define a second circle of spheres) may be considered to be located a second elevation (with the smaller sphere centres<90 degrees) relative to the main sphere and with an elevation lower than the preceding circle.
This arrangement may then be further repeated with further circles of touching spheres located at further elevations relative to the main sphere and with an elevation lower than the preceding circles.
The sphere positioner 403 thus in some embodiments be configured to perform the following operations to define the directions corresponding to the covering spheres:
Input: angle resolution for elevation, ∂θ (ideally such that
is integer)
Output: number of circles, Nc, and number of points on each circle, n(i), i=0, Nc−1
Thus, according to the above the elevation for each point on the circle i is given by the values in θ(i). For each circle above the Equator there is a corresponding circle under the Equator (the plane defined by the X-Y axes).
Furthermore, as discussed above each direction point on one circle can be indexed in increasing order with respect to the azimuth value. The index of the first point in each circle is given by an offset that can be deduced from the number of points on each circle, n(i). In order to obtain the offsets, for a considered order of the circles, the offsets are calculated as the cumulated number of points on the circles for the given order, starting with the value 0 as first offset.
In other words, the circles are ordered starting from the “North Pole” downwards.
In another embodiment the number of points along the circles parallel to the Equator
can also be obtained by
where λi≥1, λi≤λi+1. In other words, the spheres along the circles parallel to the Equator have larger radii as they are further away from the North pole, i.e. they are further away from North pole of the main direction.
The sphere positioner having determined the number of circles and the number of circles, Nc, number of points on each circle, n(i), i=0, Nc−1 and the indexing order can be configured to pass this information to an ΔEA to DI converter 405.
The transformation procedures from (elevation/azimuth) (ΔEA) to direction index (DI) and back are presented in the following paragraphs.
The direction metadata encoder 209 in some embodiments comprises a delta elevation-azimuth to direction index (ΔEA-DI) converter 405. The delta elevation-azimuth to direction index converter 305 in some embodiments is configured to receive the difference direction parameter input direction parameter input (Δθi,Δϕi) and the sphere positioner information and convert the difference direction (elevation-azimuth) value to a difference direction index by quantizing the difference direction value.
The quantized difference direction parameter index Id=(Δθiq,Δϕiq) may be output to an entropy/fixed rate encoder 213.
In some embodiments the audio object encoder 121 can also comprise an entropy/fixed rate encoder 213. The entropy/fixed rate encoder 213 is configured to receive the quantized difference direction parameter index Id=(Δθiq,Δϕiq) and encode these values in a suitable manner. In some embodiments the quantized difference direction parameter index Id=(Δθiq,Δϕiq) for each object is entropy encoded (for example using a Golomb Rice mean removed encoding) and furthermore using a fixed rate encoding. The encoder 213 may then be configured to determine which of the methods uses the fewer number of bits and chooses this method and furthermore signals this selection as well as the encoded quantized difference direction parameter index Id=(Δθiq,Δϕiq) values.
With respect to
The first operation may be the receiving/obtaining of the audio object parameters (such as directions, spatial extent and energy) as shown in
The spatial extents of the audio objects can then be encoded (B0 bits) as shown in
The spatial utilization can then be determined as shown in
The spatial utilization can then be encoded (B1 bits) as shown in
Then the audio object vector can be determined based on the spatial utilization as shown in
The audio object vector can then be rotated based on the 1st audio object direction as shown in
The rotation angle can then be quantized as shown in
The quantized rotation angle can then be encoded (B2 bits) as shown in
Following the rotation of the audio object vector the positions of the audio objects can be arranged to have an order such that the arranged azimuth values of the audio objects correspond to the closest to the azimuth values of the derived directions as shown in
The re-positioned audio objects can be indexed and the permutation of the indices can be encoded (B3 bits) as shown in
The directional difference between each repositioned audio direction parameter and the corresponding rotated derived direction parameter (taking account of the quantization of the rotation angle) can then be formed as shown in
A quantization resolution based on audio object parameters (spatial extent, energy) and comparison of bits used/bit available can then be determined as shown in
Then the directional difference between each repositioned audio direction parameter and the corresponding rotated derived direction parameter can be quantized as shown in
The quantized directional difference can then be encoded using a suitable encoding, for example using an entropy encoding or fixed rate encoding where a selection is based on bits used/whether the number of bits used are more than bit budget (B4 bits) as shown in
The method may then output the encoded spatial extent (B0), encoded extent of all audio objects (B1), quantized rotation angle (B2), encoded permutation index (B3) and encoded difference values (B4).
An example encoding algorithm may thus be summarized as:
In principle the spatial extent relates mostly to the horizontal direction and is less perceived on the vertical one. Should both a vertical and horizontal spatial extent be defined and sent, the angle resolution of the differences can be adjusted separately for the azimuth and the elevation.
With respect to
The audio object decoder 141 in some embodiments comprises a dequantizer 705. The dequantizer 705 is configured to receive the quantized/encoded rotation angle and generate a rotation angle which is passed to an audio direction rotator 703.
The audio object decoder 141 in some embodiments comprises an audio direction deriver 701. The audio object decoder 141 can comprise an audio direction deriver 701 which has the same function as the audio direction deriver 201 at the encoder 121. In other words, audio direction deriver 701 can be arranged to form and initialise an SP vector in the same manner as that performed at the encoder. That is each derived audio direction component of the SP vector is formed under the premise that the directional information of the audio objects can be initialised as a series of points evenly distributed along the circumference of a unit circle starting at an azimuth value of 0°. The SP vector containing the derived audio directions may then be passed to the audio direction rotator 703.
The audio direction deriver 701 is configured to receive the Encoded extent of all audio objects (B1) and from this determine a “template” or derived direction vector in the same manner as described in the encoder. The vector SP can then be passed to the audio direction rotator 703.
The audio object decoder 141 in some embodiments comprises an audio direction rotator 703. The audio direction rotator 703 is configured to receive the (SP) audio direction vector and the quantized rotation angle and rotate the audio directions to generate a rotated audio direction vector which can be passed to the summer 707.
The audio object decoder 141 in some embodiments comprises a (spherical) de-indexer 711. The (spherical) de-indexer 711 is configured to receive the encoded difference values and generate decoded difference values by applying a suitable decoding and deindexing. The decoded difference values can then be passed to the summer 707.
The audio object decoder 141 in some embodiments comprises a summer 707. The summer 707 is configured to receive the decoded difference values and the rotated vector to generate a series of object directions which are passed to an audio direction repositioner and deindexer 709. The quantised directional vector for each audio object can for example be formed by summing for each audio object Pq q=0:N−1 the quantised directional vector (Δθq′,Δϕq′) with the corresponding rotated derived audio direction
(from the dequantized rotated derived audio direction “template” vector ′.) This can be expressed as.
(θq′,ϕq′)=(Δθq′+{circumflex over (θ)}q′,Δϕq′+′)q=0:N−1
For those embodiments in which a rotation is produced for just the azimuth value, that is the elevation component is 0 for each element of the “template” codevector SP the above equation reduces to
(θq′,ϕq′)=(Δθq′+Δϕq′+′)q=0:N−1
The audio object decoder 141 in some embodiments comprises an audio direction repositioner and deindexer 709. The audio direction repositioner and deindexer 709 is configured to receive the object directions from the summer 707 and the encoded permutation indices and from this output a reordered audio object direction vector which can then be output. In other words in some embodiments the audio direction de-indexer and re-positioner 709 can be configured to decode the index Iro in order to find the particular permutation of indices of the re-ordered audio directions. This permutation of indices may then be used by the audio direction de-indexer and re-positioner 709 to reorder the audio direction parameters back to their original order, as first presented to the audio object encoder 121. The output from audio direction de-indexer and re-positioner 709 may therefore be the ordered quantised audio directions associated with the N audio objects. These ordered quantised audio parameters may then form part of the decoded multiple audio object stream 140.
Associated with
The step of dequantizing the directional difference between each repositioned audio direction parameter and the corresponding rotated derived direction parameter (based on the quantization resolution determined in the manner similar to the encoder) is depicted in
The step of dequantizing the azimuth value of the first audio object is shown as processing step 803 in
With reference to
With reference to
The processing step of summing for each audio object Pq q=0:N−1 the quantised directional vector (Δθq′,Δϕq′) with the corresponding rotated derived audio direction is shown in
The step of deindexing the positions of all but the first audio object direction parameters is shown as processing step 811 in
The step of arranging the positions of the audio objects direction parameters to have the original order as received at the encoder is shown as processing step 813 in
With respect to
In some embodiments the device 1400 comprises at least one processor or central processing unit 1407. The processor 1407 can be configured to execute various program codes such as the methods such as described herein.
In some embodiments the device 1400 comprises a memory 1411. In some embodiments the at least one processor 1407 is coupled to the memory 1411. The memory 1411 can be any suitable storage means. In some embodiments the memory 1411 comprises a program code section for storing program codes implementable upon the processor 1407. Furthermore, in some embodiments the memory 1411 can further comprise a stored data section for storing data, for example data that has been processed or to be processed in accordance with the embodiments as described herein. The implemented program code stored within the program code section and the data stored within the stored data section can be retrieved by the processor 1407 whenever needed via the memory-processor coupling.
In some embodiments the device 1400 comprises a user interface 1405. The user interface 1405 can be coupled in some embodiments to the processor 1407. In some embodiments the processor 1407 can control the operation of the user interface 1405 and receive inputs from the user interface 1405. In some embodiments the user interface 1405 can enable a user to input commands to the device 1400, for example via a keypad. In some embodiments the user interface 1405 can enable the user to obtain information from the device 1400. For example the user interface 1405 may comprise a display configured to display information from the device 1400 to the user. The user interface 1405 can in some embodiments comprise a touch screen or touch interface capable of both enabling information to be entered to the device 1400 and further displaying information to the user of the device 1400. In some embodiments the user interface 1405 may be the user interface for communicating with the position determiner as described herein.
In some embodiments the device 1400 comprises an input/output port 1409. The input/output port 1409 in some embodiments comprises a transceiver. The transceiver in such embodiments can be coupled to the processor 1407 and configured to enable a communication with other apparatus or electronic devices, for example via a wireless communications network. The transceiver or any suitable transceiver or transmitter and/or receiver means can in some embodiments be configured to communicate with other electronic devices or apparatus via a wire or wired coupling.
The transceiver can communicate with further apparatus by any suitable known communications protocol. For example in some embodiments the transceiver or transceiver means can use a suitable universal mobile telecommunications system (UMTS) protocol, a wireless local area network (WLAN) protocol such as for example IEEE 802.X, a suitable short-range radio frequency communication protocol such as Bluetooth, or infrared data communication pathway (IRDA).
The transceiver input/output port 1409 may be configured to receive the signals and in some embodiments determine the parameters as described herein by using the processor 1407 executing suitable code. Furthermore the device may generate a suitable downmix signal and parameter output to be transmitted to the synthesis device.
In some embodiments the device 1400 may be employed as at least part of the synthesis device. As such the input/output port 1409 may be configured to receive the signals and in some embodiments the parameters determined at the capture device or processing device as described herein, and generate a suitable audio signal format output by using the processor 1407 executing suitable code. The input/output port 1409 may be coupled to any suitable audio output for example to a multichannel speaker system and/or headphones or similar.
In general, the various embodiments of the invention may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto. While various aspects of the invention may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
The embodiments of this invention may be implemented by computer software executable by a data processor of the mobile device, such as in the processor entity, or by hardware, or by a combination of software and hardware. Further in this regard it should be noted that any blocks of the logic flow as in the Figures may represent program steps, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions. The software may be stored on such physical media as memory chips, or memory blocks implemented within the processor, magnetic media such as hard disk or floppy disks, and optical media such as for example DVD and the data variants thereof, CD.
The memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The data processors may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASIC), gate level circuits and processors based on multi-core processor architecture, as non-limiting examples.
Embodiments of the inventions may be practiced in various components such as integrated circuit modules. The design of integrated circuits is by and large a highly automated process. Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
Programs can automatically route conductors and locate components on a semiconductor chip using well established rules of design as well as libraries of pre-stored design modules. Once the design for a semiconductor circuit has been completed, the resultant design, in a standardized electronic format (e.g., Opus, GDSII, or the like) may be transmitted to a semiconductor fabrication facility or “fab” for fabrication.
The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the exemplary embodiment of this invention. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention as defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
1911805 | Aug 2019 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FI2020/050506 | 7/27/2020 | WO |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2021/032908 | 2/25/2021 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
20140355766 | Morrell et al. | Dec 2014 | A1 |
20150248889 | Dickins | Sep 2015 | A1 |
20180184224 | McGrath | Jun 2018 | A1 |
20190098425 | Habets | Mar 2019 | A1 |
20200265851 | Fuchs | Aug 2020 | A1 |
Number | Date | Country |
---|---|---|
105898669 | Aug 2016 | CN |
2346028 | Jul 2011 | EP |
2863657 | Apr 2015 | EP |
3588989 | Jan 2020 | EP |
2575632 | Jan 2020 | GB |
2586214 | Feb 2021 | GB |
2014151813 | Sep 2014 | WO |
2019097018 | May 2019 | WO |
2019129350 | Jul 2019 | WO |
Entry |
---|
Extended European Search Report received for corresponding European Patent Application No. 20854826.3, dated Mar. 3, 2023, 8 pages. |
Search Report received for corresponding United Kingdom Patent Application No. 1911805.8, dated Feb. 14, 2020, 4 pages. |
International Search Report and Written Opinion received for corresponding Patent Cooperation Treaty Application No. PCT/FI2020/050506, dated Nov. 4, 2020, 18 pages. |
Office action received for corresponding Indian Patent Application No. 202247013082, dated Jul. 18, 2022, 6 pages. |
Office Action for Korean Application No. 2022-7008536 dated Jul. 12, 2024, 8 pages. |
“Information Technology—High efficiency coding and media delivery in heterogeneous environments—Part 3: 3D audio”, ISO/IEC DIS 23008-3, (Aug. 5, 2014), 433 pages. |
Number | Date | Country | |
---|---|---|---|
20220386056 A1 | Dec 2022 | US |