Apparatus And Method For Encoding Or Decoding A Multi Channel Signal
Abstract:
Embodiments provide an apparatus for encoding a multi-channei signal having at least three channels. The apparatus comprises an iteration processor, a channel encoder and an output interface. The iteration processor is configured to calculate, in a first iteration step, inter-channel correlation values between each pair of the at least three channels, for selecting, in the first iteration step, a pair having a highest value or having a value above a threshold, and for processing the selected pair using a multi-channel processing operation to derive first multi-channel parameters for the selected pair and to derive first processed channels. Further, the iteration processor is configured to perform the calculating, the selecting and the processing in a second iteration step using at least one of the processed channels to derive second multi-channel parameters and second processed channels. The channel encoder is configured to encode channels resulting from an iteration processing performed by the iteration processor to obtain encoded channels. The output interface is configured to generate an encoded multi-channel signal having the encoded channels and the first and the second multi-channel parameters.
Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence
Apparatus and Method for Encoding or Decoding a Multi-Channel Signal
Description
The present invention relates to audio coding/decoding and, in particular, to audio coding exploiting inter-channel signal dependencies.
Audio coding is the domain of compression that deals with exploiting redundancy and irrelevancy in audio signals. In MPEG USAC [ISO/IEC 23003-3:2012 - Information technology - MPEG audio technologies Part 3: Unified speech and audio coding], joint stereo coding of two channels is performed using complex prediction, MPS 2-1 -2 or unified stereo with band-limited or full-band residual signals. MPEG surround [ISO/IEC 23003-1 :2007 - Information technology - MPEG audio technologies Part 1 : MPEG Surround] hierarchically combines OTT and TTT boxes for joint coding of multi-channel audio with or without transmission of residual signals. MPEG-H Quad Channel Elements hierarchically apply MPS 2-1-2 stereo boxes followed by complex prediction/MS stereo boxes building a fixed 4x4 remixing tree. AC4 [ETSI TS 103 190 V1.1.1 (2014-04) -Digital Audio Compression (AC-4) Standard] introduces new 3-, 4- and 5- channel elements that allow for remixing transmitted channels via a transmitted mix matrix and subsequent joint stereo coding information. Further, prior publications suggest to use orthogonal transforms like Karhunen-Loeve Transform (KLT) for enhanced multi-channel audio coding [Yang, Dai and Ai, Hongmei and Kyriakakis, Chris and Kuo, C.-C. Jay, 2001 : Adaptive Karhunen-Loeve Transform for Enhanced Multichannel Audio Coding, http://ict.usc.edu/pubs/Adaptive%20Karhunen-Loeve%20Transform%20for%20Enhanced %20Multichannel%20Audio%20Coding.pdf].
In the 3D audio context, loudspeaker channels are distributed in several height layers, resulting in horizontal and vertical channel pairs. Joint coding of only two channels as defined in USAC is not sufficient to consider the spatial and perceptual relations between channels. MPEG Surround is applied in an additional pre-/postprocessing step, residual signals are transmitted individually without the possibility of joint stereo coding, e.g. to exploit dependencies between left and right vertical residual signals. In AC-4 dedicated N-channel elements are introduced that allow for efficient encoding of joint coding parameters, but fail for generic speaker setups with more channels as proposed for new immersive playback scenarios (7.1 +4, 22.2). MPEG-H Quad Channel element is also restricted to only 4 channels and cannot be dynamically applied to arbitrary channels but only a pre-configured and fixed number of channels.
it is an object of the present invention to provide an improved encoding/decoding concept.
This object is achieved by an apparatus for encoding a multi-channel signal having at least three channels according to claim 1 , an apparatus for decoding an encoded multichannel signal having encoded channels and at least first and second multi-channel parameters according to claim 12, a method for encoding a multi-channel signal having at least three channels according to claim 21 , a method for decoding an encoded multichannel signal having encoded channels and at least first and second channel multichannel parameters according to claim 22, or a computer program according to claim 23.
Embodiments provide an apparatus for encoding a multi-channel signal having at least three channels. The apparatus comprises an iteration processor, a channel encoder and an output interface. The iteration processor is configured to calculate, in a first iteration step, inter-channel correlation values between each pair of the at least three channels, for selecting, in the first iteration step, a pair having a highest value or having a value above a threshold, and for processing the selected pair using a multi-channel processing operation to derive first multi-channel parameters for the selected pair and to derive first processed channels. Further, the iteration processor is configured to perform the calculating, the selecting and the processing in a second iteration step using at least one of the processed channels to derive second multi-channel parameters and second processed channels. The channel encoder is configured to encode channels resulting from an iteration processing performed by the iteration processor to obtain encoded channels. The output interface is configured to generate an encoded multi-channel signal having the encoded channels and the first and the second multi-channel parameters.
Further embodiments provide an apparatus for decoding an encoded multi-channel signal, the encoded multi-channel signal having encoded channels and at least first and second multi-channel parameters. The apparatus comprises a channel decoder and a multichannel processor. The channel decoder is configured to decode the encoded channels to obtain decoded channels. The multi-channel processor is configured to perform a multi-channel processing using a second pair of the decoded channels identified by the second multi-channel parameters and using the second multi-channel parameters to obtain
processed channels and to perform a further multi-channel processing using a first pair of channels identified by the first multi-channel parameters and using the first multi-channel parameters, wherein the first pair of channels comprises at least one processed channel.
In contrast to common multi-channel encoding concepts which use a fixed signal path (e.g., stereo coding tree), embodiments of the present invention use a dynamic signal path which is adapted to characteristics of the at least three input channels of the multichannel input signal. In detail, the iteration processor 102 can be adapted to build the signal path (e.g, stereo tree), in the first iteration step, based on an inter-channel correlation value between each pair of the at least three channels CH1 to CH3, for selecting, in the first iteration step, a pair having the highest value or a value above a threshold, and, in the second iteration step, based on inter-channel correlation values between each pair of the at least three channels and corresponding previously processed channels, for selecting, in the second iteration step, a pair having the highest value or a value above a threshold.
Further embodiments provide a method for encoding a multi-channel signal having at least three channels. The method comprises."
- calculating, in a first iteration step, inter-channel correlation values between each pair of the at least three channels, selecting, in the first iteration step, a pair having a highest value or having a value above a threshold, and processing the selected pair using a multichannel processing operation to derive first multichannel parameters for the selected pair and to derive first processed channels;
- performing the calculating, the selecting and the processing in a second iteration step using at least one of the processed channels to derive second multichannel parameters and second processed channels;
- encoding channels resulting from an iteration processing performed by the iteration processor to obtain encoded channels; and
- generating an encoded multi-channel signal having the encoded channels and the first and the second multichannel parameters.
Further embodiments provide a method for decoding an encoded multi-channel signal having encoded channels and at least first and second multichannel parameters. The method comprises:
- decoding the encoded channels to obtain decoded channels; and
- performing a multichannel processing using a second pair of the decoded channels identified by the second multichannel parameters and using the second multichannel parameters to obtain processed channels, and performing a further multichannel processing using a first pair of channels identified by the first multichannel parameters and using the first multichannel parameters, wherein the first pair of channels comprises at least one processed channel.
Embodiments of the present invention are described herein making reference to the appended drawings.
Fig. 1 shows a schematic block diagram of an apparatus for encoding a multi-channel signal having at least three channels, according to an embodiment;
Fig. 2 shows a schematic block diagram of an apparatus for encoding a multi-channel signal having at least three channels, according to an embodiment;
Fig. 3 shows a schematic block diagram of a stereo box, according to an embodiment;
Fig. 4 shows a schematic block diagram of an apparatus for decoding an encoded multi-channel signal having encoded channels and at least first and second multichannel parameters, according to an embodiment;
Fig. 5 shows a flowchart of a method for encoding a multi-channel signal having at least three channels, according to an embodiment; and
Fig. 6 shows a flowchart of a method for decoding an encoded multi-channel signal having encoded channels and at least first and second multi-channel parameters, according to an ebmodiment.
Equal or equivalent elements or elements with equal or equivalent functionality are denoted in the following description by equal or equivalent reference numerals.
In the following description, a plurality of details are set forth to provide a more thorough explanation of embodiments of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form rather than in detail in order to avoid obscuring embodiments of the present invention. In addition, features of the different embodiments described hereinafter may be combined with each other, unless specifically noted otherwise.
Fig. 1 shows a schematic block diagram of an apparatus (encoder) 100 for encoding a multi-channel signal 101 having at least three channels CH1 to CH3. The apparatus 100 comprises an iteration processor 102, a channel encoder 104 and an output interface 106.
The iteration processor 102 is configured to calculate, in a first iteration step, inter-channei correlation values between each pair of the at least three channels CH1 to CH3 for selecting, in the first iteration step, a pair having a highest value or having a value above a threshold, and for processing the selected pair using a multi-channel processing operation to derive first multi-channel parameters MCH_PAR1 for the selected pair and to derive first processed channels P1 and P2. Further, the iteration processor 102 is configured to perform the calculating, the selecting and the processing in a second iteration step using at least one of the processed channels P1 or P2 to derive second multi-channel parameters MCH_PAR2 and second processed channels P3 and P4.
For example, as indicated in Fig. 1 , the iteration processor 102 may calculate in the first iteration step an inter-channel correlation value between a first pair of the at least three channels CH1 to CH3, the first pair consisting of a first channel CH1 and a second channel CH2, an inter-channel correlation value between a second pair of the at least three channels CH1 to CH3, the second pair consisting of the second channel CH2 and a third channel CH3, and an inter-channel correlation value between a third pair of the at least three channels CH1 to CH3, the third pair consisting of the first channel CH1 and the third channel CH3.
In Fig. 1 it is assumed that in the first iteration step the third pair consisting of the first channel CH1 and the third channel CH3 comprises the highest inter-channel correlation value, such that the iteration processor 102 selects in the first iteration step the third pair having the highest inter-channel correlation value and processes the selected pair, i.e., the third pair, using a multi-channel processing operation to derive first multi-channel parameters MCH_PAR1 for the selected pair and to derive first processed channels P1 and P2.
Further, the iteration processor 102 can be configured to calculate, in the second iteration step, inter-channel correlation values between each pair of the at least three channels CH1 to CH3 and the processed channels P1 and P2, for selecting, in the second iteration step, a pair having a highest inter-channel correlation value or having a value above a threshold. Thereby, the iteration processor 102 can be configured to not select the selected pair of the first iteration step in the second iteration step (or in any further iteration step).
Referring to the example shown in Fig. 1 , the iteration processor 102 may further calculate an inter-channel correlation value between a fourth pair of channels consisting of the first channel CH1 and the first processed channel P1 , an inter-channel correlation value between a fifth pair consisting of the first channel CH1 and the second processed channel P2, an inter-channel correlation value between a sixth pair consisting of the second channel CH2 and the first processed channel P1 , an inter-channel correlation value between a seventh pair consisting of the second channel CH2 and the second processed channel P2, an inter-channel correlation value between an eighth pair consisting of the third channel CH3 and the first processed channel P1 , an inter-correlation value between a ninth pair consisting of the third channel CH3 and the second processed channel P2, and an inter-channel correlation value between a tenth pair consisting of the first processed channel P1 and the second processed channel P2.
In Fig. 1 , it is assumed that in the second iteration step the sixth pair consisting of the second channel CH2 and the first processed channel P1 comprises the highest inter-channel correlation value, such that the iteration processor 102 selects in the second iteration step the sixth pair and processes the selected pair, i.e., the sixth pair, using a multi-channel processing operation to derive second multi-channel parameters MCH_PAR2 for the selected pair and to derive second processed channels P3 and P4.
The iteration processor 102 can be configured to only select a pair when the level difference of the pair is smaller than a threshold, the threshold being smaller than 40 dB, 25 dB, 12 dB or smaller than 6 dB. Thereby, the thresholds of 25 or 40 dB correspond to rotation angles of 3 or 0.5 degree.
The iteration processor 102 can be configured to calculate normalized integer correlation values, wherein the iteration processor 102 can be configured to select a pair, when the integer correlation value is greater than e.g. 0.2 or preferably 0.3.
Further, the iteration processor 102 may provide the channels resulting from the multichannel processing to the channel encoder 104. For example, referring to Fig. 1 , the iteration processor 102 may provide the third processed channel P3 and the fourth processed channel P4 resulting from the multichannel processing performed in the second iteration step and the second processed channel P2 resulting from the multichannel processing performed in the first iteration step to the channel encoder 104. Thereby, the iteration processor 02 may only provide those processed channels to the channel encoder 104 which are not (further) processed in a subsequent iteration step. As shown in Fig. 1 , the first processed channel P1 is not provided to the channel encoder 104 since it is further processed in the second iteration step.
The channel encoder 104 can be configured to encode the channels P2 to P4 resulting from the iteration processing (or multichannel processing) performed by the iteration processor 102 to obtain encoded channels E1 to E3.
For example, the channel encoder 104 can be configured to use mono encoders (or mono boxes, or mono tools) 120_1 to 120_3 for encoding the channels P2 to P4 resulting from the iteration processing (or multichannel processing). The mono boxes may be configured to encode the channels such that less bits are required for encoding a channel having less energy (or a smaller amplitude) than for encoding a channel having more energy (or a higher amplitude). The mono boxes 120_1 to 120_3 can be, for example, transformation based audio encoders. Further, the channel encoder 104 can be configured to use stereo encoders (e.g., parametric stereo encoders, or lossy stereo encoders) for encoding the channels P2 to P4 resulting from the iteration processing (or multichannel processing).
The output interface 106 can be configured to generate and encoded multi-channel signal 107 having the encoded channels E1 to E3 and the first and the second multi-channel parameters MCH_PAR1 and CH_PAR2.
For example, the output interface 106 can be configured to generate the encoded multichannel signal 107 as a serial signal or serial bit stream, and so that the second multichannel parameters MCH_PAR2 are in the encoded signal 107 before the first multichannel parameters MCH_PAR1 . Thus, a decoder, an embodiment of which will be described later with respect to Fig. 4, will receive the second multi-channel parameters MCH_ PAR2 before the first multi-channel parameters MCH-PAR1 .
In Fig. 1 the iteration processor 102 exemplarily performs two multi-channel processing operations, a multi-channel processing operation in the first iteration step and a multichannel processing operation in the second iteration step. Naturally, the iteration processor 102 also can perform further multi-channel processing operations in subsequent iteration steps. Thereby, the iteration processor 102 can be configured to perform iteration steps until an iteration termination criterion is reached. The iteration termination criterion can be that a maximum number of iteration steps is equal to or higher than a total number of channels of the multi-channel signal 101 by two, or wherein the iteration termination criterion is, when the inter-channel correlation values do not have a value greater than the threshold, the threshold preferably being greater than 0.2 or the threshold preferably being 0.3. In further embodiments, the iteration termination criterion can be that a maximum number of iteration steps is equal to or higher than a total number of channels of the multi-channel signal 101 , or wherein the iteration termination criterion is, when the inter-channel correlation values do not have a value greater than the threshold, the threshold preferably being greater than 0.2 or the threshold preferably being 0.3.
For illustration purposes the multi-channel processing operations performed by the iteration processor 102 in the first iteration step and the second iteration step are exemplarily illustrated in Fig. 1 by processing boxes 1 10 and 1 12. The processing boxes 1 10 and 1 12 can be implemented in hardware or software. The processing boxes 1 10 and 1 12 can be stereo boxes, for example.
Thereby, inter-channel signal dependency can be exploited by hierarchically applying known joint stereo coding tools. In contrast to previous MPEG approaches, the signal pairs to be processed are not predetermined by a fixed signal path (e.g. , stereo coding tree) but can be changed dynamically to adapt to input signal characteristics. The inputs of the actual stereo box can be (1 ) unprocessed channels, such as the channels CH1 to CH3, (2) outputs of a preceding stereo box, such as the processed signals P1 to P4, or (3) a combination of an unprocessed channel and an output of a preceding stereo box.
The processing inside the stereo box 1 10 and 1 12 can either be prediction based (like complex prediction box in USAC) or KLT/PCA based (the input channels are rotated (e.g., via a 2x2 rotation matrix) in the encoder to maximize energy compaction, i.e., concentrate signal energy into one channel, in the decoder the rotated signals will be retransformed to the original input signal directions).
In a possible implementation of the encoder 100, (1 ) the encoder calculates an inter channel correlation between every channel pair and selects one suitable signal pair out of the input signals and applies the stereo tool to the selected channels; (2) the encoder recalculates the inter channel correlation between all channels (the unprocessed channels as well as the processed intermediate output channels) and selects one suitable signal pair out of the input signals and applies the stereo tool to the selected channels; and (3) the encoder repeats step (2) until all inter channel correlation is below a threshold or if a maximum number of transformations is applied.
As already mentioned, the signal pairs to be processed by the encoder 100, or more precisely the iteration processor 102, are not predetermined by a fixed signal path (e.g., stereo coding tree) but can be changed dynamically to adapt to input signal characteristics. Thereby, the encoder 100 (or the iteration processor 102) can be configured to construct the stereo tree in dependence on the at least three channels CH1 to CH3 of the multi-channel (input) signal 101 . In other words, the encoder 100 (or the iteration processor 102) can be configured to build the stereo tree based on an inter-channel correlation (e.g., by calculating, in the first iteration step, inter-channel correlation values between each pair of the at least three channels CH1 to CH3, for selecting, in the first iteration step, a pair having the highest value or a value above a threshold, and by calculating, in a second iteration step, inter-channel correlation values between each pair of the at least three channels and previously processed channels, for selecting, in the second iteration step, a pair having the highest value or a value above a threshold). According to a one step approach, a correlation matrix may be calculated for possibly each iteration containing the correlations of all, in previous iterations possibly processed, channels.
As indicated above, the iteration processor 102 can be configured to derive first multichannel parameters MCH_PAR1 for the selected pair in the first iteration step and to derive second multi-channel parameters MCH_PAR2 for the selected pair in the second iteration step. The first multi-channel parameters MCH_PAR1 may comprise a first channel pair identification (or index) identifying (or signaling) the pair of channels selected in the first iteration step, wherein the second multi-channel parameters MCH_PAR2 may
comprise a second channel pair identification (or index) identifying (or signaling) the pair of channels selected in the second iteration step.
In the following, an efficient indexing of input signals is described. For example, channel pairs can be efficiently signaled using a unique index for each pair, dependent on the total number of channels. For example, the indexing of pairs for six channels can be as shown in the following table:
For example, in the above table the index 5 may signal the pair consisting of the first channel and the second channel. Similarly, the index 6 may signal the pair consisting of the first channel and the third channel.
The total number of possible channel pair indices for n channels can be calculated to:
numPairs = numChannels*(numChannels-1 )/2
Hence, the number of bits needed for signaling one channel pair amount to:
numBits = f!oor(log2(numPairs-1 ))+1
Further, the encoder 100 may use a channel mask. The multichannel tool's configuration may contain a channel mask indicating for which channels the tool is active. Thus, LFEs (LFE = low frequency effects/enhancement channels) can be removed from the channel pair indexing, allowing for a more efficient encoding. E.g. for a 1 1.1 setup, this reduces the number of channel pair indices from 12*1 1/2=66 to 1 1 *10/2 = 55, allowing signaling with 6 instead of 7 bit. This mechanism can also be used to exclude channels intended to be mono objects (e.g. multiple language tracks). On decoding of the channel mask
(channelMask), a channel map (channelMap) can be generated to allow re-mapping of channel pair indices to decoder channels.
Moreover, the iteration processor 102 can be configured to derive, for a first frame, a plurality of selected pair indications, wherein the output interface 106 can be configured to include, into the multi-channel signal 107, for a second frame, following the first frame, a keep indicator, indicating that the second frame has the same plurality of selected pair indications as the first frame.
The keep indicator or the keep tree flag can be used to signal that no new tree is transmitted, but the last stereo tree shall be used. This can be used to avoid multiple transmission of the same stereo tree configuration if the channel correlation properties stay stationary for a longer time.
Fig. 2 shows a schematic block diagram of a stereo box 1 10, 1 12. The stereo box 1 10, 1 12 comprises inputs for a first input signal 11 and a second input signal I2, and outputs for a first output signal 01 and a second output signal 02. As indicated in Fig. 2, dependencies of the output signals 01 and 02 from the input signals 11 and 12 can be described by the s-parameters S1 to S4.
The iteration processor 102 can use (or comprise) stereo boxes 1 10,1 12 in order to perform the multi-channel processing operations on the input channels and/or processed channels in order to derive (further) processed channels. For example, the iteration processor 102 can be configured to use generic, prediction based or KLT (Karhunen- Loeve-Transformation) based rotation stereo boxes 1 10, 1 12.
A generic encoder (or encoder-side stereo box) can be configured to encode the input signals 11 and 12 to obtain the output signals 01 and 02 based on the equation:
A generic decoder (or decoder-side stereo box) can be configured to decode the input signals 11 and 12 to obtain the output signals 01 and 02 based on the equation:
Si s2 - 1
Ley s s4„ L/2.
A prediction based encoder (or encoder-side stereo box) can be configured to encode the input signals 11 and I2 to obtain the output signals 01 and 02 based on the equation
Or 1
= 0.5
0-z i - p U + p)
wherein p is the prediction coefficient.
A prediction based decoder (or decoder-side stereo box) can be configured to decode the input signals 11 and I2 to obtain the output signals 01 and 02 based on the equation:
A KLT based rotation encoder (or encoder-side stereo box) can be configured to encode the input signals 11 to I2 to obtain the output signals 01 and 02 based on the equation:
02 I— sin a cos al
A KLT based rotation decoder (or decoder-side stereo box) can be configured to decode the input signals 11 and I2 to obtain the output signals 01 and 02 based on the equation (inverse rotation):
In the following, a calculation of the rotation angle a for the KLT based rotation is described.
The rotation angle a for the KLT based rotation can be defined as:
with cxy being the entries of a non-normalized correlation matrix, wherein cn , 22 are the channel energies.
This can be implemented using the atan2 function to allow for differentiation between negative correlations in the numerator and negative energy difference in the denominator:
alpha = 0.5*atan2(2*correlation[ch1 ][ch2],
(correlation[ch1 ][ch1 ] - correlation[ch2][ch2]));
Further, the iteration processor 102 can be configured to calculate an inter-channel correlation using a frame of each channel comprising a plurality of bands so that a single inter-channel correlation value for the plurality of bands is obtained, wherein the iteration processor 102 can be configured to perform the multi-channel processing for each of the plurality of bands so that the first or the second multi-channel parameters are obtained from each of the plurality of bands.
Thereby, the iteration processor 102 can be configured to calculate stereo parameters in the multi-channel processing, wherein the iteration processor 102 can be configured to only perform a stereo processing in bands, in which a stereo parameter is higher than a quantized-to-zero threshold defined by a stereo quantizer (e.g., KLT based rotation encoder). The stereo parameters can be, for example, MS On/Off or rotation angles or prediction coefficients).
For example, the iteration processor 102 can be configured to calculate rotation angles in the multi-channel processing, wherein the iteration processor 102 can be configured to only perform a rotation processing in bands, in which a rotation angle is higher than a quantized-to-zero threshold defined by a rotation angle quantizer (e.g., KLT based rotation encoder).
Thus, the encoder 100 (or output interface 106) can be configured to transmit the transformation/rotation information either as one parameter for the complete spectrum (full band box) or as multiple frequency dependent parameters for parts of the spectrum.
The encoder 100 can be configured to generate the bit stream 107 based on the following tables:
Table 1— Syntax of mpegh3daExtElementConfig()
legacy decoders can cope with future extensions.
Table 21— Syntax of MCCConfigQ,
Syntax No. of bits Mnemonic
MCCConfig(grp)
{
nChannels = 0
for(chan=0;chan < bsNumberOfSignals[grp]; chan++)
chan ask[chan] 1
if(chan ask[chan] > 0) {
mctChannelMap[nChannels]=chan;
nChannels++;
}
NOTE: The corresponding ID_USAC_EXT element shall be prior to any audio element of the certain signal group grp.
Table 32— Syntax of MultichannelCodingBoxBandWise()
Syntax No. of bits Mnemonic
MultichannelCodingBoxBandWisei)
{
for(pair=0; pair 0) {
delta_code_time = 0;
} else {
delta_code_time; 1
}
if (hasBandwiseAngies == 0) {
hcod_angle[dpcm_alpha[pair][0]]; 1..10 vlclbf
}
else {
for(j=0;j< numMaskBands;j++) {
if (msMask[pair][j] ==1) {
hcod_angle[dpcm_aipha[pair][j]]; 1..10 vlclbf
}
}
}
}
}
NOTE 1) nBits = floor(log2(nChannels*(nChannels-l)/2 - 1))+1
Table 4— Syntax of MultichannelCodingBoxFullbandQ
NOTE: 1) nBits = floor(log2(nChannels*(nChannels-l)/2 - 1))+1
Table 5— Syntax of MultichannelCodingFrameQ
Syntax No. Mnemonic
Multic annelCodingFramef)
MCCSignalingType 2
keepTree 1
if(keepTree==0) {
numPairs 5
else {
numPairs=lastNumPairs;
}
if(MCCSignalingType == 0) { /* tree of standard stereo boxes */
for(i=0;i 0) {
lastVal = alpha prev^ fullband [pair ] ;
} else {
lastVal = DEFAULT_ALPHA;
}
newAlpha = lastVal + dpcm alpha [pair] [0] ;
if (newAlpha >= 64) {
newAlpha -= 64;
}
for (band=0; band < numMas kBands ; band++) {
/* set all angles to fullband angle */
pairAlpha [pair] [band] = newAlpha;
/* set previous angles according to mctMask */
if (mctMask [pair] [band] > 0) {
alpha_prev_frame [pair] [bandlmctBandsPerWindow] = newAlpha;
}
else {
alpha_prev_frame [pair] [band%mctBandsPerWindow] = DEFAULT ALPHA;
}
}
alpha_prev__fullband [pair ] = newAlpha;
for (band=bandsPer indow ; bar.a 0) {
lastVal = alpha_prev_frame [pair] [band%mctBandsPerWindow] ;
}
else {
if {(band % mctBandsPer indow) == 0) {
lastVal = DEFAULT ALPHA;
}
}
if (msMask [pair] [band] > 0 ) {
newAlpha = lastVal + dpcm_alpha [pair] [band] ;
if (newAlpha >= 64) {
newAlpha -= 64;
}
pairAlpha [pair] [band] = newAlpha;
alpha_prev___frame [pair] [band%mctBands PerWindow] = newAlpha;
lastVal = newAlpha ;
}
else {
alpha _prev_frame [pair] [band%mctBands PerWindow] = DEFAULT ALPHA; /* -45° */
}
/* reset fullband angle */
alpha_prev_fullband [pair] = DEFAULT_ALPHA;
}
for (band=bandsPerWindow ; bandnumPairs ; pair++ ) {
mctBandOffset = 0;
/* inverse MCT rotation */
for {win = 0, group = 0; group MCCSignalingIype == 0} {
}
else if ( self->MCCSignalingType == 1) {
/* apply fullband box */
if { ! self->bHasBandwiseAngles [pair] && ! self->bHas ctMask[pair] ) { apply met rotation {dmx, res, alphaSfb[0J , nSamples) ;
)
else {
/* apply bandwise processing */
for ( i = 0; i< mctBandsPerWindow; i++ ) {
if (mctMask [i ] == 1) {
startLine = swb offset [sffa];
stopL ne « (sfb+2= totalSfb) {
break;
}
)
)
}
el.se if (self->MCCSignalingType == 2) {
}
else if (self->MCCSignalingType == 3) {
apply_mct rotation (dmx, res, alpha , nSamples);
}
}
For an application of KLT rotation the following c-code can be used.
apply_mct_rotation ( *dmx, *res, alpha, nSamples)
{
for (n=0;n
Documents
Application Documents
#
Name
Date
1
201737030658-STATEMENT OF UNDERTAKING (FORM 3) [30-08-2017(online)].pdf
2017-08-30
2
201737030658-FORM 1 [30-08-2017(online)].pdf
2017-08-30
3
201737030658-FIGURE OF ABSTRACT [30-08-2017(online)].pdf
2017-08-30
4
201737030658-DRAWINGS [30-08-2017(online)].pdf
2017-08-30
5
201737030658-DECLARATION OF INVENTORSHIP (FORM 5) [30-08-2017(online)].pdf