BR122023012858B1 - POSITIONING OF THE STRUCTURE ELEMENT IN STRUCTURES OF A CONTINUOUS DATA STREAM REPRESENTING AUDIO CONTENT - Google Patents
POSITIONING OF THE STRUCTURE ELEMENT IN STRUCTURES OF A CONTINUOUS DATA STREAM REPRESENTING AUDIO CONTENT Download PDFInfo
- Publication number
- BR122023012858B1 BR122023012858B1 BR122023012858-3A BR122023012858A BR122023012858B1 BR 122023012858 B1 BR122023012858 B1 BR 122023012858B1 BR 122023012858 A BR122023012858 A BR 122023012858A BR 122023012858 B1 BR122023012858 B1 BR 122023012858B1
- Authority
- BR
- Brazil
- Prior art keywords
- type
- extension
- decoder
- configuration
- elements
- Prior art date
Links
- 230000005236 sound signal Effects 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 36
- 108091006146 Channels Proteins 0.000 description 135
- 238000001228 spectrum Methods 0.000 description 28
- 238000005070 sampling Methods 0.000 description 22
- 230000007246 mechanism Effects 0.000 description 20
- 230000003595 spectral effect Effects 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 230000001419 dependent effect Effects 0.000 description 12
- 230000011664 signaling Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013467 fragmentation Methods 0.000 description 7
- 238000006062 fragmentation reaction Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005284 excitation Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000005267 amalgamation Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000000707 stereoselective effect Effects 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
Abstract
Um melhor ajuste entre um fluxo contínuo de dados muito alto e uma elevada codificação, por um lado, e a flexibilidade de posicionamento do elemento de estrutura, por outro, é obtido através do arranjo de cada uma das sequências de estruturas do fluxo contínuo de dados que compreende uma sequência de N elementos de estrutura e, por outro lado, o fluxo contínuo de dados compreende um bloco de configuração compreendendo um campo indicando o número de elementos N e uma porção da sintaxe de indicação de tipo indicando, para cada posição do elemento da sequência de N posições do elemento, um tipo de elemento de uma pluralidade de tipos de elemento com, nas sequências de N elementos de estrutura das estruturas, cada elemento de estrutura sendo do tipo de elemento indicado, pela parte de indicação do tipo, para a respectiva posição do elemento na qual o respectivo elemento de estrutura é posicionado dentro da sequência de N elementos de estrutura da respectiva estrutura no fluxo contínuo de dados. Assim, as estruturas são igualmente estruturadas em que cada estrutura compreende a mesma sequência de N elementos de estrutura da tipo de elemento de estrutura indicado pela porção da sintaxe de indicação (...).A better fit between a very high data stream and high coding, on the one hand, and flexibility of structure element positioning, on the other hand, is achieved by arranging each of the sequences of structures of the data stream comprising a sequence of N structure elements and, on the other hand, the data stream comprising a configuration block comprising a field indicating the number of elements N and a type indication syntax portion indicating, for each element position of the sequence of N element positions, an element type from a plurality of element types with, in the sequences of N structure elements of the structures, each structure element being of the element type indicated, by the type indication portion, for the respective element position at which the respective structure element is positioned within the sequence of N structure elements of the respective structure in the data stream. Thus, the structures are equally structured wherein each structure comprises the same sequence of N structure elements of the structure element type indicated by the indication syntax portion (...).
Description
[0001] A presente invenção se relaciona à codificação de áudio, tal como o assim chamado codec USAC [USAC = Unified Speech and Audio Coding | Codificação de Áudio e Fala Unificada] e, em particular, ao posicionamento do elemento de estrutura com estruturas de fluxo contínuo de dados respectivos.[0001] The present invention relates to audio coding, such as the so-called USAC codec [USAC = Unified Speech and Audio Coding] and in particular to the positioning of the structure element with respective data stream structures.
[0002] Nos últimos anos, vários codecs de áudio se tornaram disponíveis, cada codec de áudio sendo especificamente projetado para se adequar a uma aplicação dedicada. Principalmente, estes codecs de áudio são capazes de codificar mais de um canal de áudio ou sinal de áudio em paralelo. Alguns codecs de áudio também são adequados para codificação diferente de conteúdo de áudio por agrupar diferentemente canais de áudio ou objetos de áudio do conteúdo de áudio e sujeitar esses grupos a diferentes princípios de codificação de áudio. Além disso, alguns desses codecs de áudio permitem a inserção de dados de extensão no fluxo contínuo de dados, para acomodar futuras extensões/desenvolvimentos do codec de áudio.[0002] In recent years, several audio codecs have become available, each audio codec being specifically designed to suit a dedicated application. Primarily, these audio codecs are capable of encoding more than one audio channel or audio signal in parallel. Some audio codecs are also suitable for different encoding of audio content by differently grouping audio channels or audio objects of the audio content and subjecting these groups to different audio coding principles. Furthermore, some of these audio codecs allow the insertion of extension data into the data stream, to accommodate future extensions/developments of the audio codec.
[0003] Um exemplo de tais codecs de áudio é o codec USAC, como definido em ISO/IEC CD 23003-3. Este padrão, nomeado “Tecnologias de Informação - Tecnologias de Áudio MPEG - Parte 3: Codificação de Áudio e Fala Unificada”, descreve em detalhes os blocos funcionais de um modelo de referência de uma chamada para propostas sobre codificação de áudio e fala unificada.[0003] An example of such audio codecs is the USAC codec, as defined in ISO/IEC CD 23003-3. This standard, named “Information Technologies — MPEG Audio Technologies — Part 3: Unified Audio and Speech Coding”, describes in detail the functional blocks of a reference model of a call for proposals on unified audio and speech coding.
[0004] As figuras 5a e 5b ilustram diagramas de bloco do decodificador e codificador. A seguir, a funcionalidade geral dos blocos individuais é explicada brevemente. Assim, os problemas em colocar todas as partes da sintaxe resultante juntas em um fluxo de dados contínuo são explicados em relação à figura 6.[0004] Figures 5a and 5b illustrate block diagrams of the decoder and encoder. In the following, the overall functionality of the individual blocks is briefly explained. Then, the problems of putting all the parts of the resulting syntax together into a continuous data stream are explained with reference to Figure 6.
[0005] As figuras 5a e 5b ilustram diagramas de bloco do codificador e decodificador. Os diagramas de bloco do codificador e decodificador USAC refletem a estrutura da codificação MPEG-D USAC. A estrutura geral pode ser descrita assim: primeiro, há um pré/pós- processamento comum consistindo de uma unidade funcional surround MPEG (MPEGS) para trabalhar com processamento estéreo ou multicanais e uma unidade SBR melhorada (eSBR) que trabalha com a representação paramétrica das frequências de áudio mais altas no sinal de entrada. Então, há dois ramos, um que consiste de um caminho de ferramenta de Codificação de Áudio Avançada (AAC | Advanced Audio Coding) e o outro que consiste de um caminho com base em codificação de predição linear (LP ou domínio LPC | linear prediction coding), que por sua vez apresenta uma representação de domínio de frequência ou uma representação de domínio de tempo do LPC residual. Todos os espectros transmitidos para ambos, AAC e LPC, são representados no domínio MDCT seguindo a quantização e codificação aritmética. A representação de domínio de tempo usa um esquema de codificação por excitação ACELP.[0005] Figures 5a and 5b illustrate block diagrams of the encoder and decoder. The block diagrams of the USAC encoder and decoder reflect the structure of MPEG-D USAC encoding. The general structure can be described as follows: first, there is a common pre/post-processing consisting of an MPEG surround (MPEGS) functional unit to handle stereo or multichannel processing and an enhanced SBR (eSBR) unit that handles the parametric representation of the higher audio frequencies in the input signal. Then, there are two branches, one consisting of an Advanced Audio Coding (AAC) tool path and the other consisting of a linear prediction coding (LP)-based path, which in turn presents either a frequency domain representation or a time domain representation of the residual LPC. All transmitted spectra for both AAC and LPC are represented in the MDCT domain following arithmetic quantization and coding. The time domain representation uses an ACELP excitation coding scheme.
[0006] A estrutura básica do MPEG-D USAC é mostrada na figura 5a e figura 5b.O fluxo de dados neste diagrama é da esquerda para a direita, de cima para baixo. As funções do decodificador são encontrar a descrição do espectro de áudio quantizado ou representação de domínio de tempo na carga útil de fluxo contínuo de dados e decodificar os valores quantizados e outras informações de reconstrução.[0006] The basic structure of MPEG-D USAC is shown in Figure 5a and Figure 5b. The data flow in this diagram is from left to right, top to bottom. The functions of the decoder are to find the quantized audio spectrum description or time domain representation in the data stream payload and decode the quantized values and other reconstruction information.
[0007] No caso de informações espectrais transmitidas, o decodificador deverá reconstruir o espectro quantizado, processar o espectro reconstruído através de quaisquer ferramentas que estejam disponíveis na carga útil do fluxo de dados contínuo para chegar ao espectro do sinal real como descrito pela carga útil do fluxo contínuo de dados de entrada e, finalmente, converter o espectro de domínio de frequência para o domínio de tempo. Seguindo a reconstrução inicial e escalabilidade da reconstrução do espectro, há ferramentas opcionais que modificam um ou mais dos espectros para fornecer uma codificação mais eficiente.[0007] In the case of transmitted spectral information, the decoder shall reconstruct the quantized spectrum, process the reconstructed spectrum through whatever tools are available in the payload of the continuous data stream to arrive at the spectrum of the actual signal as described by the payload of the continuous data stream of input, and finally convert the spectrum from the frequency domain to the time domain. Following the initial reconstruction and scaling of the spectrum reconstruction, there are optional tools that modify one or more of the spectra to provide more efficient encoding.
[0008] No caso de representação de sinal de domínio de tempo transmitido, o decodificador deverá reconstruir o sinal de tempo quantizado, processar o sinal de tempo reconstruído através de quaisquer ferramentas que estejam ativas na carga útil do fluxo contínuo de dados para chegar ao sinal do domínio de tempo real como descrito pela carga útil do fluxo contínuo de dados de entrada.[0008] In the case of transmitted time domain signal representation, the decoder shall reconstruct the quantized time signal, process the reconstructed time signal through whatever tools are active in the data stream payload to arrive at the real time domain signal as described by the input data stream payload.
[0009] Para cada uma das ferramentas opcionais que operam nos dados de sinal, a opção para “passar” é retida e, em todos os casos onde o processamento é omitido, o espectro ou amostras de tempo em sua entrada são passados diretamente através da ferramenta sem modificação.[0009] For each of the optional tools that operate on the signal data, the option to “pass” is retained, and in all cases where processing is omitted, the spectrum or time samples in its input are passed directly through the tool without modification.
[0010] Nos locais, onde o fluxo contínuo de dados altera sua representação de sinal de domínio de tempo para representação de domínio de frequência ou de domínio LP para domínio não LP ou vice-versa, o decodificador deve facilitar a transição de um domínio para outro por meio de um janelamento com adição-sobreposição de transição adequada.[0010] At locations, where the continuous data stream changes its signal representation from time domain to frequency domain representation or from LP domain to non-LP domain or vice versa, the decoder shall facilitate the transition from one domain to another by means of a windowing with appropriate transition addition-overlap.
[0011] O processamento eSBR e MPEGS é aplicado da mesma maneira a ambos os caminhos de codificação após o trabalho de transição.[0011] eSBR and MPEGS processing is applied in the same manner to both encoding paths after transition work.
[0012] A entrada para a ferramenta desmultiplexadora de carga útil do fluxo contínuo de dados é a carga útil do fluxo contínuo de dados MPEG-D USAC. O desmultiplexador separa a carga útil do fluxo contínuo de dados nas partes para cada ferramenta e fornece a cada uma das ferramentas com as informações de carga útil do fluxo contínuo de dados relacionado àquela ferramenta.[0012] The input to the data stream payload demultiplexer tool is the MPEG-D USAC data stream payload. The demultiplexer separates the data stream payload into parts for each tool and provides each tool with the data stream payload information related to that tool.
[0013] As saídas da ferramenta do desmultiplexador de carga útil do fluxo contínuo de dados são:[0013] The outputs of the data stream payload demultiplexer tool are:
[0014] Dependendo do tipo de codificação do núcleo na estrutura atual:[0014] Depending on the type of core coding in the current structure:
[0015] o espectro codificado sem ruído quantizado representado por:[0015] the quantized noise-free encoded spectrum represented by:
[0016] informações do fator de escala;[0016] scale factor information;
[0017] linhas espectrais codificadas aritmeticamente.[0017] arithmetically coded spectral lines.
[0018] ou: parâmetros de predição linear (LP | linear prediction) juntos a um sinal de excitação representado por:[0018] or: linear prediction parameters (LP) together with an excitation signal represented by:
[0019] linhas espectrais codificadas aritmeticamente e quantizadas (transformação de excitação codificada, TCX | transform coded excitation); ou excitação de domínio de tempo codificado ACELP.[0019] arithmetically coded and quantized spectral lines (transform coded excitation, TCX); or coded time domain excitation ACELP.
[0020] As informações de preenchimento de ruído espectral (opcional);[0020] Spectral noise padding information (optional);
[0021] As informações de decisão M/S (opcional);[0021] The M/S decision information (optional);
[0022] As informações de modelagem de ruído temporal (TNS | temporal noise shaping) (opcional);[0022] Temporal noise shaping (TNS) information (optional);
[0023] As informações de controle de banco de filtros;[0023] The filter bank control information;
[0024] As informações de controle de tempo não distorcido (TW | time unwarping) (opcional);[0024] Time unwarping (TW) control information (optional);
[0025] As informações de controle de replicação de largura de banda espectral melhorada (eSBR) (opcional);[0025] Enhanced Spectral Bandwidth Replication (eSBR) control information (optional);
[0026] As informações de controle surround MPEG (MPEGS).[0026] The MPEG surround control information (MPEGS).
[0027] A ferramenta de decodificação sem ruído com fator de escala obtém informações a partir do desmultiplexador de carga útil do fluxo contínuo de dados, analisa esta informação e decodifica os fatores de escala codificada Huffman e DPCM.[0027] The noiseless decoding tool with scale factor obtains information from the payload demultiplexer of the data stream, analyzes this information, and decodes the Huffman and DPCM encoded scale factors.
[0028] A entrada para a ferramenta decodificadora sem ruído do fator de escala é:[0028] The input to the scale factor noiseless decoder tool is:
[0029] As informações do fator de escala para o espectro codificado sem ruído.[0029] The scale factor information for the noise-free encoded spectrum.
[0030] A saída da ferramenta decodificadora sem ruído do fator de escala é:[0030] The output of the scale factor noise-free decoder tool is:
[0031] A representação inteira decodificada dos fatores de escala.[0031] The decoded integer representation of the scale factors.
[0032] A ferramenta decodificadora sem ruído espectral obtém informações a partir do desmultiplexador de carga útil do fluxo contínuo de dados, analisa esta informação, decodifica os dados codificados aritmeticamente e reconstrói o espectro quantizado. A entrada para esta ferramenta decodificador sem ruído é:[0032] The spectral noiseless decoder tool obtains information from the payload demultiplexer of the continuous data stream, analyzes this information, decodes the arithmetically encoded data, and reconstructs the quantized spectrum. The input to this noiseless decoder tool is:
[0033] O espectro codificado sem ruído.[0033] The noise-free encoded spectrum.
[0034] A saída desta ferramenta decodificador sem ruído é:[0034] The output of this noise-free decoder tool is:
[0035] Os valores quantizados do espectro.[0035] The quantized values of the spectrum.
[0036] A ferramenta quantizadora inversa obtém os valores quantizados para o espectro e converte os valores inteiros para o espectro reconstruído, não escalonado. Este quantizador é um quantizador expandido, cujo fator expandido depende do modo de codificação do núcleo selecionado.[0036] The inverse quantizer tool obtains the quantized values for the spectrum and converts the integer values to the reconstructed, unscaled spectrum. This quantizer is an expanded quantizer, whose expanded factor depends on the selected core coding mode.
[0037] A entrada para a ferramenta Quantizadora Inversa é:[0037] The input to the Inverse Quantizer tool is:
[0038] Os valores quantizados para o espectro.[0038] The quantized values for the spectrum.
[0039] A saída da ferramenta quantizadora inversa é:[0039] The output of the inverse quantizer tool is:
[0040] O espectro quantizado inversamente, não escalonado.[0040] The inversely quantized, unscaled spectrum.
[0041] A ferramenta de preenchimento de ruído é utilizada para preencher intervalos espectrais no espectro decodificado que ocorrem quando o valor espectral é quantizado para zero, por exemplo, devido a uma forte restrição de demanda de dados no codificador. O uso da ferramenta de preenchimento de ruído é opcional.[0041] The noise fill tool is used to fill spectral gaps in the decoded spectrum that occur when the spectral value is quantized to zero, for example due to a strong data demand constraint at the encoder. The use of the noise fill tool is optional.
[0042] As entradas para a ferramenta de preenchimento de ruído são:[0042] The inputs to the noise fill tool are:
[0043] O espectro quantizado inversamente, não escalonado;[0043] The inversely quantized, unscaled spectrum;
[0044] Parâmetros de preenchimento de ruído;[0044] Noise filling parameters;
[0045] A representação inteira decodificada dos fatores de escala.[0045] The decoded integer representation of the scale factors.
[0046] As saídas para a ferramenta de preenchimento de ruído são:[0046] The outputs for the noise fill tool are:
[0047] Os valores espectrais quantizados inversamente, não escalonados, para linhas espectrais que foram previamente quantizadas para zero;[0047] The unscaled, inversely quantized spectral values for spectral lines that were previously quantized to zero;
[0048] Representação inteira modificada dos fatores de escala.[0048] Modified integer representation of scale factors.
[0049] A ferramenta de reescalonamento converte a representação inteira dos fatores de escala para os valores reais, e multiplica o espectro quantizado inversamente não escalonado pelos fatores de escala relevantes.[0049] The rescaling tool converts the integer representation of the scale factors to the real values, and multiplies the unscaled inversely quantized spectrum by the relevant scale factors.
[0050] As entradas para a ferramenta dos fatores de escala são:[0050] The inputs to the scale factors tool are:
[0051] A representação inteira decodificada dos fatores de escala;[0051] The decoded integer representation of the scale factors;
[0052] O espectro quantizado inversamente, não escalonado.[0052] The inversely quantized, unscaled spectrum.
[0053] A saída da ferramenta dos fatores de escala é:[0053] The output of the scale factors tool is:
[0054] O espectro quantizado inversamente, não escalonado.[0054] The inversely quantized, unscaled spectrum.
[0055] Para uma visão geral da ferramenta M/S, por favor, consulte ISO/IEC 14496-3:2009, 4.1.1.2.[0055] For an overview of the M/S tool, please refer to ISO/IEC 14496-3:2009, 4.1.1.2.
[0056] Para uma visão geral da ferramenta de modelagem de ruído temporal (TNS), por favor, consulte a ISO/IEC 14496-3:2009, 4.1.1.2.[0056] For an overview of the temporal noise modeling (TNS) tool, please refer to ISO/IEC 14496-3:2009, 4.1.1.2.
[0057] A ferramenta de alternância de bloco / banco de filtros aplica o inverso do mapeamento de frequência que foi executado no codificador. Uma transformação inversa modificada discreta de cosseno (IMDCT) é utilizada para a ferramenta de banco de filtros. A IMDCT pode ser configurada para suportar a coeficientes espectrais de 120, 128, 240, 256, 480, 512, 960 ou 1024.[0057] The block/filter bank switching tool applies the inverse of the frequency mapping that was performed on the encoder. An inverse modified discrete cosine transform (IMDCT) is used for the filter bank tool. The IMDCT can be configured to support spectral coefficients of 120, 128, 240, 256, 480, 512, 960, or 1024.
[0058] As entradas para a ferramenta de banco de filtros são:[0058] The inputs to the filter bank tool are:
[0059] O espectro (quantizado inversamente);[0059] The spectrum (inversely quantized);
[0060] As informações de controle de banco de filtros.[0060] The filter bank control information.
[0061] A(s) saída(s) da ferramenta do banco de filtros é(são):[0061] The output(s) of the filter bank tool is(are):
[0062] O(s) sinal(s) de áudio reconstruídos de domínio de tempo.[0062] The reconstructed time-domain audio signal(s).
[0063] A ferramenta de alternância de bloco / banco de filtros de tempo distorcido substitui a ferramenta de alternância de bloco / banco de filtros normal quando o modo de distorção de tempo é habilitada. O banco de filtros é o mesmo (IMDCT) que para o banco de filtros normal, adicionalmente, as amostras de domínio de tempo de janela são mapeadas do domínio de tempo distorcido para o domínio de tempo linear por reamostragem com variação de tempo.[0063] The time-warped filter bank/block switching tool replaces the normal filter bank/block switching tool when time-warping mode is enabled. The filter bank is the same (IMDCT) as for the normal filter bank, additionally the windowed time domain samples are mapped from the warped time domain to the linear time domain by time-varying resampling.
[0064] As entradas para as ferramentas de banco de filtros de tempo distorcido são: O espectro quantizado inversamente; As informações de controle de banco de filtro; As informações de controle de tempo distorcido.[0064] The inputs to the time-warped filter bank tools are: The inversely quantized spectrum; The filter bank control information; The time-warped control information.
[0065] A(s) saída(s) da ferramenta do banco de filtros é (são): O(s) sinal(s) de áudio reconstruído de domínio de tempo linear.[0065] The output(s) of the filter bank tool is (are): The reconstructed linear time domain audio signal(s).
[0066] A ferramenta SBR (eSBR) melhorada regenera a banda alta do sinal de áudio. Ela é com base na replicação de sequências de harmônicas, truncadas durante a codificação. Ela ajusta o invólucro espectral da banda alta gerada e aplica a filtragem inversa, e adiciona ruído e componentes sinusoidais para recriar as características espectrais do sinal original.[0066] The improved SBR (eSBR) tool regenerates the high band of the audio signal. It is based on the replication of harmonic sequences, truncated during encoding. It adjusts the spectral envelope of the generated high band and applies inverse filtering, and adds noise and sinusoidal components to recreate the spectral characteristics of the original signal.
[0067] A entrada para a ferramenta eSBR é:[0067] The input to the eSBR tool is:
[0068] Os dados do invólucro quantizados;[0068] The quantized wrapper data;
[0069] Dados gerais de controle;[0069] General control data;
[0070] um sinal de domínio de tempo do decodificador do núcleo do domínio da frequência ou decodificador do núcleo ACELP/TCX.[0070] a time domain signal from the frequency domain core decoder or ACELP/TCX core decoder.
[0071] A saída da ferramenta eSBR é ou:[0071] The output of the eSBR tool is either:
[0072] um sinal de domínio de tempo; ou[0072] a time domain signal; or
[0073] uma representação de domínio-QMF de um sinal, por exemplo, é usada na ferramenta MPEG Surround.[0073] A QMF-domain representation of a signal, for example, is used in the MPEG Surround tool.
[0074] A ferramenta MPEG Surround (MPEGS) produz sinais múltiplos de um ou mais sinais de entrada aplicando um procedimento upmix sofisticado ao(s) sinal(s) de entrada controlados por parâmetros especiais adequados. No contexto USAC, MPEGS é utilizado para codificar um sinal multicanal, transmitindo informações do lado paramétrico junto a um sinal downmix transmitido.[0074] The MPEG Surround (MPEGS) tool produces multiple signals from one or more input signals by applying a sophisticated upmix procedure to the input signal(s) controlled by suitable special parameters. In the USAC context, MPEGS is used to encode a multichannel signal, transmitting parametric side information along with a transmitted downmix signal.
[0075] A entrada para a ferramenta MPEGS é:[0075] The input to the MPEGS tool is:
[0076] um sinal de domínio de tempo reduzido; ou[0076] a reduced time domain signal; or
[0077] uma representação de domínio-QMF de um sinal reduzido desde a ferramenta eSBR.[0077] a QMF-domain representation of a reduced signal from the eSBR tool.
[0078] A saída da ferramenta MPEGS é:[0078] The output of the MPEGS tool is:
[0079] um sinal de domínio de tempo multicanal.[0079] a multichannel time domain signal.
[0080] A ferramenta Classificadora de Sinal analisa o sinal de entrada original e gera a partir dele informações de controle que ativam a seleção de diferentes modos de codificação. A análise do sinal de entrada é dependente de implementação e tentará selecionar o modo ótimo de codificação de núcleo para uma dada estrutura de sinal de entrada. A saída do classificador de sinal pode (opcionalmente) também ser utilizada para influenciar o comportamento de outras ferramentas, por exemplo, MPEG Surround, SBR melhorado, banco de filtros com distorção de tempo e outros.[0080] The Signal Classifier tool analyzes the original input signal and generates from it control information that triggers the selection of different encoding modes. The input signal analysis is implementation dependent and will attempt to select the optimal core encoding mode for a given input signal structure. The output of the signal classifier can (optionally) also be used to influence the behavior of other tools, e.g. MPEG Surround, Enhanced SBR, Time-Warped Filter Bank, and others.
[0081] A entrada para a ferramenta Classificadora de sinal é:[0081] The input to the Signal Classifier tool is:
[0082] o sinal de entrada não modificado original;[0082] the original unmodified input signal;
[0083] parâmetros adicionais dependentes de implementação.[0083] additional implementation-dependent parameters.
[0084] A saída da ferramenta Classificadora de Sinal é:[0084] The output of the Signal Classifier tool is:
[0085] um sinal de controle para controlar a seleção do codec de núcleo (codificação de domínio de frequência filtrada não LP, domínio de frequência filtrada LP ou codificação de domínio de tempo filtrada LP).[0085] a control signal for controlling the selection of the core codec (non-LP filtered frequency domain coding, LP filtered frequency domain, or LP filtered time domain coding).
[0086] A ferramenta ACELP fornece uma maneira para representar de maneira eficiente um sinal de excitação de domínio de tempo combinando um previsor de termos longos (palavra de código adaptativa) com uma sequência similar a pulsos (palavra de código de inovação). A excitação reconstruída é enviada através de um filtro de síntese LP para formar um sinal de domínio de tempo.[0086] The ACELP tool provides a way to efficiently represent a time domain excitation signal by combining a long term predictor (adaptive codeword) with a pulse-like sequence (innovation codeword). The reconstructed excitation is sent through an LP synthesis filter to form a time domain signal.
[0087] A entrada para a ferramenta ACELP é:[0087] The input to the ACELP tool is:
[0088] índices codebook adaptativos e de inovação;[0088] adaptive and innovation codebook indexes;
[0089] valores de ganho de códigos adaptativos e de inovação;[0089] gain values of adaptive and innovation codes;
[0090] outros dados de controle;[0090] other control data;
[0091] coeficientes de filtro LPC interpolados e quantizados inversamente.[0091] inversely interpolated and quantized LPC filter coefficients.
[0092] A saída da ferramenta ACELP é:[0092] The output of the ACELP tool is:
[0093] O sinal de áudio reconstruído de domínio de tempo.[0093] The reconstructed time-domain audio signal.
[0094] A ferramenta decodificadora TCX com base em MDCT é utilizada para transformar a representação residual LP ponderada de um domínio MDCT de volta para um sinal de domínio de tempo e libera um sinal de domínio de tempo incluindo filtragem de síntese LP ponderada. OIMDCT pode ser configurado para suportar coeficientes espectrais 256, 512 ou 1024.[0094] The MDCT-based TCX decoder tool is used to transform the weighted LP residual representation of an MDCT domain back to a time domain signal and outputs a time domain signal including weighted LP synthesis filtering. The IMDCT can be configured to support 256, 512 or 1024 spectral coefficients.
[0095] A entrada para a ferramenta TCX é:[0095] The input to the TCX tool is:
[0096] O espectro MDCT (quantizado inversamente);[0096] The MDCT spectrum (inversely quantized);
[0097] Coeficientes de filtro LPC interpolados e quantizados inversamente.[0097] Inversely interpolated and quantized LPC filter coefficients.
[0098] A saída da ferramenta TCX é:[0098] The output of the TCX tool is:
[0099] O sinal de áudio reconstruído de domínio de tempo[0099] The reconstructed time-domain audio signal
[0100] A tecnologia revelada em ISO/IEC CD 23003-3, que está aqui incorporada por referência, permite a definição de elementos de canal que são, por exemplo, elementos de canal único contendo apenas a carga útil para elementos de um único canal ou pares de canal contendo carga útil para dois canais ou elementos de canal LFE (Melhoria de Baixa Frequência) contendo carga útil para um canal LFE.[0100] The technology disclosed in ISO/IEC CD 23003-3, which is incorporated herein by reference, allows the definition of channel elements that are, for example, single channel elements containing only the payload for single channel elements, or channel pairs containing payload for two channels, or LFE (Low Frequency Enhancement) channel elements containing payload for one LFE channel.
[0101] Naturalmente, o codec USAC não é o único codec capaz de codificar e transferir informações em um codec de áudio mais complicado de mais de um ou dois canais de áudio ou objetos de áudio através de um fluxo contínuo de dados. Portanto, o codec USAC serviu simplesmente como um exemplo concreto.[0101] Of course, the USAC codec is not the only codec capable of encoding and transferring information in a more complicated audio codec of more than one or two audio channels or audio objects through a continuous data stream. Therefore, the USAC codec served simply as a concrete example.
[0102] A Fig. 6 mostra um exemplo mais geral de um codificador e decodificador, respectivamente, ambos representados em um cenário comum onde o codificador codifica conteúdo de áudio 10 em um fluxo contínuo de dados 12, com o decodificador decodificando o conteúdo de áudio ou ao menos uma parte deste, desde o fluxo contínuo de dados 12. O resultado da decodificação, isto é, a reconstrução, é indicado em 14. Como ilustrado na Fig. 6, o conteúdo de áudio 10 pode ser composto de um número de sinais de áudio 16. Por exemplo, o conteúdo de áudio 10 pode ser um cenário de áudio espacial composto de um número de canais de áudio 16. Alternativamente, o conteúdo de áudio 10 pode representar uma conglomeração de sinais de áudio 16 com os sinais de áudio 16 representando, individualmente e/ou em grupos, objetos de áudio individuais que podem ser colocados juntos em um cenário de áudio, a critério do usuário do decodificador, para obter a reconstrução 14 do conteúdo de áudio 10 na forma de, por exemplo, uma cena de áudio espacial para uma configuração de alto-falante específica. O codificador codifica o conteúdo de áudio 10 em unidades de períodos de tempo consecutivo. Tal período de tempo é mostrado exemplarmente em 18 na Fig. 6. O codificador codifica os períodos consecutivos 18 do conteúdo de áudio 10 utilizando a mesma maneira: isto é, o codificador insere no fluxo contínuo de dados 12 uma estrutura 20 por período de tempo 18. Ao fazê-lo, o codificador decompõe o conteúdo de áudio dentro do período de tempo respectivo 18 em elementos de estrutura, o número e o significado/tipo que são os mesmos para cada período de tempo 18 e estrutura 20, respectivamente. Em relação ao codec USAC descrito acima, por exemplo, o codificador codifica os mesmo par de sinais de áudio 16 em todo período de tempo 18 em um elemento de par de canais dos elementos 22 das estruturas 20, enquanto usa outro princípio de codificação, tal como codificação de canal único para outro sinal de áudio 16 para obter um elemento de canal único 22 e assim por diante. As informações do lado paramétrico para obter um upmix de sinais de saída de áudio de um sinal de áudio downmix como definido por um ou mais elementos de estrutura 22 são coletadas para formar outro elemento de estrutura dentro da estrutura 20. Neste caso, o elemento da estrutura transmitindo estas informações laterais relaciona-se a, ou forma um tipo de dados de extensão para, outros elementos de estrutura. Naturalmente, tais extensões não estão restritas a informações laterais multicanal ou multi-objeto.[0102] Fig. 6 shows a more general example of an encoder and decoder, respectively, both depicted in a common scenario where the encoder encodes audio content 10 into a continuous data stream 12, with the decoder decoding the audio content, or at least a portion thereof, from the continuous data stream 12. The result of the decoding, i.e., the reconstruction, is indicated at 14. As illustrated in Fig. 6, the audio content 10 may be composed of a number of audio signals 16. For example, the audio content 10 may be a spatial audio scene composed of a number of audio channels 16. Alternatively, the audio content 10 may represent a conglomeration of audio signals 16 with the audio signals 16 representing, individually and/or in groups, individual audio objects that may be placed together in an audio scene, at the discretion of the user of the decoder, to obtain the reconstruction 14 of the audio content 10 in the form of, for example, For example, a spatial audio scene for a specific speaker configuration. The encoder encodes the audio content 10 into units of consecutive time periods. Such a time period is exemplarily shown at 18 in Fig. 6. The encoder encodes the consecutive periods 18 of the audio content 10 using the same manner: that is, the encoder inserts into the data stream 12 a structure 20 per time period 18. In doing so, the encoder decomposes the audio content within the respective time period 18 into structure elements, the number and meaning/type of which are the same for each time period 18 and structure 20, respectively. With respect to the USAC codec described above, for example, the encoder encodes the same pair of audio signals 16 in every time period 18 into a channel pair element of the elements 22 of the structures 20, while using another coding principle, such as single channel coding for another audio signal 16 to obtain a single channel element 22, and so on. Parametric side information for obtaining an upmix of audio output signals from a downmix audio signal as defined by one or more structure elements 22 is collected to form another structure element within the structure 20. In this case, the structure element conveying this side information relates to, or forms a type of extension data for, other structure elements. Naturally, such extensions are not restricted to multi-channel or multi-object side information.
[0103] Uma possibilidade é indicar dentro de cada elemento de estrutura 22 de que tipo é o elemento de estrutura respectivo. Vantajosamente, tal procedimento permite lidar com futuras extensões da sintaxe do fluxo contínuo de dados. Decodificadores que não são capazes de lidar com certos tipos de elemento de estrutura, simplesmente pulariam os elementos de estrutura respectivos dentro do fluxo contínuo de dados pela exploração das informações de comprimento respectivas dentro desses elementos de estrutura. Ademais, é possível permitir decodificadores de conformidade padrão de tipos diferentes: alguns são capazes de compreender um primeiro conjunto de tipos, enquanto outros compreendem e podem ligar com outro conjunto de tipos; tipos de elementos alternativos seriam simplesmente descartados pelos respectivos decodificadores. Adicionalmente, o codificador seria capaz de classificar os elementos de estrutura a seu critério, tal que os decodificadores que são capazes de processar tais elementos de estrutura adicionais poderiam ser alimentados com os elementos de estrutura dentro de estruturas 20 em uma ordem que, por exemplo, minimiza as necessidades de buffer dentro do decodificador. Desvantajosamente, entretanto, o fluxo contínuo de dados teria de transmitir as informações do tipo de elemento de estrutura por elemento de estrutura, a necessidade de qual, por sua vez, afeta negativamente a taxa de compressão do fluxo contínuo de dados 12 por um lado e a complexidade de decodificação por outro lado, já que a análise adicional para inspeção das informações do tipo de elemento de estrutura respectivo ocorre dentro de cada elemento de estrutura.[0103] One possibility is to indicate within each structure element 22 what type the respective structure element is. Advantageously, such a procedure allows to handle future extensions of the data stream syntax. Decoders that are not able to handle certain structure element types would simply skip the respective structure elements within the data stream by exploiting the respective length information within these structure elements. Furthermore, it is possible to allow standard-compliant decoders of different types: some are able to understand a first set of types, while others understand and can deal with another set of types; alternative element types would simply be discarded by the respective decoders. Additionally, the encoder would be able to classify the structure elements at its discretion, such that decoders that are able to process such additional structure elements could be fed the structure elements within structures 20 in an order that, for example, minimizes buffer requirements within the decoder. Disadvantageously, however, the data stream would have to transmit the structure element type information per structure element, the necessity for which in turn negatively affects the compression ratio of the data stream 12 on the one hand and the decoding complexity on the other hand, since the additional analysis for inspection of the respective structure element type information takes place within each structure element.
[0104] Naturalmente, seria possível ajustar de outra maneira a ordem dos elementos de estrutura 22, tal como por convenção, mas tal procedimento previne os decodificadores de terem liberdade para reorganizar os elementos de estrutura devido a, por exemplo, propriedades específicas de elementos de estrutura de extensão futura, necessitando ou sugerindo, por exemplo, uma ordem diferente dentre os elementos de estrutura.[0104] Of course, it would be possible to adjust the order of the structure elements 22 in another way, such as by convention, but such a procedure prevents decoders from having the freedom to rearrange the structure elements due to, for example, specific properties of future extension structure elements, requiring or suggesting, for example, a different order among the structure elements.
[0105] Portanto, há uma necessidade para outro conceito de um fluxo contínuo de dados, codificador e decodificador, respectivamente.[0105] Therefore, there is a need for another concept of a continuous data stream, encoder and decoder respectively.
[0106] Portanto, é objeto da presente invenção fornecer um fluxo contínuo de dados, um codificador e um decodificador que solucionem o problema acima mencionado e permitam a obtenção de uma maneira mais eficiente de posicionamento do elemento de estrutura.[0106] Therefore, it is the object of the present invention to provide a continuous data stream, an encoder and a decoder that solve the aforementioned problem and allow obtaining a more efficient way of positioning the structure element.
[0107] Este objeto é atingido pelo objeto das reivindicações independentes pendentes.[0107] This subject matter is met by the subject matter of the pending independent claims.
[0108] A presente invenção se baseia na constatação que um melhor compromisso entre um Fluxo contínuo de dados muito alto e decodificação no alto por um lado e flexibilidade de posicionamento do elemento de estrutura por outro lado podem ser obtidos se cada uma da sequência de estruturas do fluxo contínuo de dados compreende uma sequência de N elementos de estrutura e, por outro lado, o Fluxo contínuo de dados compreende um bloco de configuração compreendendo um campo indicando o número de elementos N e uma porção da sintaxe de indicação de tipo indicando, para cada posição do elemento da sequência de N posições do elemento, um tipo de elemento de uma pluralidade de tipos de elemento com, nas sequências de N elementos de estrutura das estruturas, cada elemento de estrutura sendo do tipo de elemento indicado, pela parte de indicação do tipo, para uma respectiva posição do elemento na qual o respectivo elemento de estrutura é posicionado dentro da sequência de N elementos de estrutura da respectiva estrutura no Fluxo contínuo de dados. Então, as estruturas são igualmente estruturadas em que cada estrutura compreende a mesma sequência de N elementos de estrutura do tipo de elemento de estrutura indicado pela porção da sintaxe de indicação de tipo, posicionados dentro do fluxo contínuo de dados na mesma ordem sequencial. Esta ordem sequencial é geralmente ajustável para a sequência de estruturas pelo uso da porção da sintaxe de indicação de tipo que indica, para cada posição do elemento da sequência de N posições do elemento, um tipo de elemento de uma pluralidade de tipos de elemento.[0108] The present invention is based on the finding that a better compromise between a very high data stream and high decoding on the one hand and flexibility of structure element positioning on the other hand can be achieved if each of the sequence of structures of the data stream comprises a sequence of N structure elements and, on the other hand, the data stream comprises a configuration block comprising a field indicating the number of elements N and a type indication syntax portion indicating, for each element position of the sequence of N element positions, an element type from a plurality of element types with, in the sequences of N structure elements of the structures, each structure element being of the element type indicated, by the type indication portion, for a respective element position at which the respective structure element is positioned within the sequence of N structure elements of the respective structure in the data stream. Then, the structures are equally structured in that each structure comprises the same sequence of N structure elements of the structure element type indicated by the type indication syntax portion, positioned within the data stream in the same sequential order. This sequential order is generally adjustable for the sequence of structures by use of the type indication syntax portion that indicates, for each element position of the sequence of N element positions, one element type from a plurality of element types.
[0109] Por esta medição, os tipos de elemento da estrutura podem estar dispostos em qualquer ordem, como na discrição do codificador, para escolher a ordem que é a mais apropriada para os tipos de elemento da estrutura usados, por exemplo[0109] By this measurement, the structure element types may be arranged in any order, as at the encoder's discretion, to choose the order that is most appropriate for the structure element types used, e.g.
[0110] A pluralidade dos tipos de elemento de estrutura pode, por exemplo, incluir um tipo de elemento de extensão com simplesmente elementos de estrutura do tipo de elemento de extensão contendo as informações de comprimento no comprimento do respectivo elemento de estrutura tal que decodificadores que não suportem o tipo de elemento de extensão específico, possam omitir estes elementos de estrutura do tipo de elemento de extensão utilizando as informações de comprimento como um comprimento de intervalo de omissão. Por outro lado, os decodificadores capazes de lidar com estes elementos de estrutura do tipo de elemento de extensão processam adequadamente o conteúdo ou parte da carga útil deste. Elementos de estrutura de outros tipos de elemento podem não conter tais informações de comprimento. Se, de acordo com a aplicação específica recém-mencionada, o codificador for capaz de posicionar livremente estes elementos de estrutura do tipo de elemento de extensão dentro da sequência de elementos de estrutura das estruturas, o buffer superior nos decodificadores pode ser minimizado escolhendo a ordem do tipo do elemento de estrutura apropriadamente e sinalizando o mesmo dentro da porção de sintaxe de indicação do tipo.[0110] The plurality of structure element types may, for example, include a span element type with simply structure elements of the span element type containing the length information in the length of the respective structure element such that decoders that do not support the specific span element type may omit these structure elements of the span element type using the length information as an omission interval length. On the other hand, decoders capable of handling these structure elements of the span element type properly process the content or part of the payload thereof. Structure elements of other element types may not contain such length information. If, according to the specific application just mentioned, the encoder is capable of freely positioning these structure elements of the span element type within the sequence of structure elements of the structures, the overhead buffer in the decoders may be minimized by choosing the order of the structure element type appropriately and signaling the same within the type indication syntax portion.
[0111] Implementações vantajosas das aplicações da presente invenção são o objeto das reivindicações dependentes.[0111] Advantageous implementations of the applications of the present invention are the subject of the dependent claims.
[0112] Além disso, aplicações preferidas da presente invenção estão descritas abaixo em relação às figuras, dentre as quais:[0112] In addition, preferred applications of the present invention are described below in relation to the figures, among which:
[0113] A Fig. 1 mostra um diagrama de bloco esquemático de um codificador e sua entrada e saída de acordo com uma aplicação;[0113] Fig. 1 shows a schematic block diagram of an encoder and its input and output according to an application;
[0114] A Fig. 2 mostra um diagrama de bloco esquemático de um decodificador e sua entrada e saída de acordo com uma aplicação;[0114] Fig. 2 shows a schematic block diagram of a decoder and its input and output according to an application;
[0115] A Fig. 3 mostra esquematicamente um fluxo contínuo de dados de acordo com uma aplicação;[0115] Fig. 3 schematically shows a continuous data flow according to an application;
[0116] As Figs. 4a a z e za a zc mostram tabelas de pseudocódigo, ilustrando uma sintaxe concreta do fluxo contínuo de dados de acordo com uma aplicação; e[0116] Figs. 4a to z and za to zc show pseudocode tables illustrating a concrete syntax of the continuous data flow according to an application; and
[0117] As Figs. 5 a e b mostram um diagrama de bloco de um codificador USAC e decodificador; e[0117] Figs. 5a and b show a block diagram of a USAC encoder and decoder; and
[0118] A Fig. 6 mostra um típico par de codificador e decodificador.[0118] Fig. 6 shows a typical encoder and decoder pair.
[0119] A Fig. 1 mostra um codificador 24 de acordo com uma aplicação. O codificador 24 é utilizado para codificar um conteúdo de áudio 10 em um fluxo contínuo de dados 12.[0119] Fig. 1 shows an encoder 24 according to an application. The encoder 24 is used to encode an audio content 10 into a continuous data stream 12.
[0120] Como descrito na parte introdutória da especificação do presente pedido, o conteúdo de áudio 10 pode ser um conglomerado de vários sinais de áudio 16. Os sinais de áudio 16 representam, por exemplo, canais de áudio individuais de um cenário de áudio espacial. Alternativamente, os sinais de áudio 16 formam objetos de áudio de um conjunto de objetos de áudio juntos definindo um cenário de áudio para mixagem livre no lado do decodificador. Os sinais de áudio 16 são definidos em uma base de tempo comum t como ilustrado em 26. Isto é, os sinais de áudio 16 podem se relacionar ao mesmo intervalor de tempo e podem, portanto, estar alinhados em tempo em relação aos outros.[0120] As described in the introductory part of the specification of the present application, the audio content 10 may be a conglomeration of several audio signals 16. The audio signals 16 represent, for example, individual audio channels of a spatial audio scenario. Alternatively, the audio signals 16 form audio objects of a set of audio objects together defining an audio scenario for free mixing on the decoder side. The audio signals 16 are defined on a common time base t as illustrated at 26. That is, the audio signals 16 may relate to the same time interval and may therefore be time aligned with respect to each other.
[0121] O codificador 24 é configurado para codificar os períodos de tempo consecutivos 18 do conteúdo de áudio 10 em uma sequência de estruturas 20 de modo que cada estrutura 20 representa um respectivo de um dos períodos de tempo 18 do conteúdo de áudio 10. O codificador 24 é configurado para, de alguma forma, codificar cada período de tempo da mesma forma de modo que cada estrutura 20 compreende uma sequência de um número de elemento N de elementos de estrutura. Dentro de cada estrutura 20, é verdade que cada elemento de estrutura 22 é de um respectivo tipo de uma pluralidade de tipos de elemento e que os elementos de estrutura 22 posicionados em uma determinada posição do elemento são do mesmo tipo de elemento. Ou seja, os primeiros elementos de estrutura 22 nas estruturas 20 são do mesmo tipo de elemento e forma uma primeira sequência (ou subfluxo) de elementos de estrutura, os segundos elementos de estrutura 22 de todas as estruturas 20 são de um tipo de elemento igual entre si e formam uma segunda sequência de elementos de estrutura, e assim por diante.[0121] The encoder 24 is configured to encode the consecutive time periods 18 of the audio content 10 into a sequence of frames 20 such that each frame 20 represents a respective of one of the time periods 18 of the audio content 10. The encoder 24 is configured to somehow encode each time period in the same way such that each frame 20 comprises a sequence of an element number N of frame elements. Within each frame 20, it is true that each frame element 22 is of a respective type of a plurality of element types and that the frame elements 22 positioned at a given element position are of the same element type. That is, the first structure elements 22 in the structures 20 are of the same element type and form a first sequence (or sub-stream) of structure elements, the second structure elements 22 of all the structures 20 are of an equal element type to each other and form a second sequence of structure elements, and so on.
[0122] De acordo com uma configuração, por exemplo, o codificador 24 é configurado de modo que a pluralidade de tipos de elemento compreende o seguinte:[0122] According to one embodiment, for example, the encoder 24 is configured such that the plurality of element types comprises the following:
[0123] a)elementos de estrutura de um tipo de elemento de canal único, por exemplo, podem ser gerados pelo codificador 24 para representar um único sinal de áudio. Portanto, a sequência de elementos de estrutura 22 em uma certa posição de elemento dentro das estruturas 20, por exemplo, as estruturas de elemento ith com 0 > i > N+1, o que, por sua vez, formam o subfluxo ith de elementos de estrutura, juntos representariam o período de tempo consecutivo 18 de tal sinal de áudio único. O sinal de áudio representado portanto poderia corresponder diretamente a quaisquer dos sinais de áudio 16 do conteúdo de áudio 10. Alternativamente, entretanto, e como será descrito em mais detalhes abaixo, tal sinal de áudio representado pode ser de um canal de um sinal downmix, o que, junto aos dados de carga útil de elementos de estrutura de outro tipo de elementos de estrutura, posicionados em outra posição de elemento dentro das estruturas 20, produz um número de sinais de áudio 16 do conteúdo de áudio 10 que é maior do que o número de canais do sinal downmix mencionado recentemente. No caso da aplicação descrita em mais detalhes abaixo, os elementos de estrutura de tal tipo de elemento de canal único são denotados UsacSingleChannelElement. No caso de MPEG Surround e SAOC, por exemplo, há apenas um único sinal downmix que pode ser mono, estéreo, ou mesmo multicanal no caso de MPEG Surround. No último caso, por exemplo, o downmix 5.1, consiste de elementos de par de dois canais e um único elemento de canal. Neste caso, o elemento de canal único, assim como os elementos de par de dois canais, são apenas uma parte do sinal downmix. No caso de caixa downmix estéreo, um elemento de par de canais será usado[0123] (a) Frame elements of a single channel element type, for example, may be generated by encoder 24 to represent a single audio signal. Therefore, the sequence of frame elements 22 at a certain element position within frames 20, for example, the ith element frames with 0 > i > N+1, which in turn form the ith substream of frame elements, would together represent the consecutive time period 18 of such a single audio signal. The represented audio signal could therefore correspond directly to any of the audio signals 16 of the audio content 10. Alternatively, however, and as will be described in more detail below, such a represented audio signal may be of a channel of a downmix signal, which, together with the payload data of structure elements of another type of structure elements, positioned in another element position within the structures 20, produces a number of audio signals 16 of the audio content 10 that is greater than the number of channels of the just-mentioned downmix signal. In the case of the application described in more detail below, the structure elements of such a single-channel element are denoted UsacSingleChannelElement. In the case of MPEG Surround and SAOC, for example, there is only a single downmix signal which may be mono, stereo, or even multichannel in the case of MPEG Surround. In the latter case, for example, the 5.1 downmix consists of two-channel pair elements and a single channel element. In this case, the single channel element, as well as the two-channel pair elements, are only a part of the downmix signal. In the case of a stereo downmix box, a two-channel pair element will be used.
[0124] b)Elementos de estrutura de um tipo de elemento de par de canal pode ser gerado pelo codificador 24 para representar um par estéreo de sinais de áudio. Isto é, elementos de estrutura 22 desse tipo, que são posicionados em uma posição de elemento comum dentro das estruturas 20, formaria juntas um respectivo subfluxo de elementos de estrutura que representar um período de tempo consecutivo 18 de tal par de áudio estéreo. O par estéreo de sinais de áudio assim representado poderia ser diretamente qualquer par de sinais de áudio 16 do conteúdo de áudio 10, ou poderia representar, por exemplo, um sinal downmix, que junto aos dados de carga útil dos elementos de estrutura de outro tipo de elemento que sejam posicionados em outra posição de elemento resultam em um número de sinais de áudio 16 do conteúdo de áudio 10 que é maior do que 2. Na aplicação descrita em mais detalhes abaixo, elementos de estrutura de tal tipo de elemento de par de canal são denotados como UsacChannelPairElement.[0124] b) Structure elements of a channel pair element type may be generated by encoder 24 to represent a stereo pair of audio signals. That is, structure elements 22 of this type, which are positioned at a common element position within structures 20, would together form a respective substream of structure elements representing a consecutive time period 18 of such a stereo audio pair. The stereo pair of audio signals thus represented could directly be any pair of audio signals 16 of the audio content 10, or could represent, for example, a downmix signal, which together with the payload data of structure elements of another element type that are positioned at another element position results in a number of audio signals 16 of the audio content 10 that is greater than 2. In the application described in more detail below, structure elements of such a channel pair element type are denoted as UsacChannelPairElement.
[0125] c)Para transmitir informações sobre sinais de áudio 16 do conteúdo de áudio 10 que precisem de menos largura de banda, tal como canais subwoofer ou similar, o codificador 24 pode suportar elementos de estrutura de um tipo específico com elementos de estrutura de tal tipo, que são posicionados em uma posição de elemento comum, representando, por exemplo, um período de tempo consecutivo 18 de um único sinal de áudio. Este sinal de áudio pode ser qualquer um dos sinais de áudio 16 do conteúdo de áudio 10 diretamente, ou pode ser parte de um sinal downmix como descrito anteriormente com relação ao tipo de elemento do canal único e tipo de elemento de par de canal. Na aplicação descrita em mais detalhes abaixo, elementos de estrutura de tal tipo de elemento de estrutura específico são denotados UsacLfeElement.[0125] c) To transmit information about audio signals 16 of the audio content 10 that require less bandwidth, such as subwoofer channels or the like, the encoder 24 may support structure elements of a specific type with structure elements of such a type that are positioned at a common element position, representing, for example, a consecutive time period 18 of a single audio signal. This audio signal may be any of the audio signals 16 of the audio content 10 directly, or it may be part of a downmix signal as described above with respect to the single channel element type and channel pair element type. In the application described in more detail below, structure elements of such a specific structure element type are denoted UsacLfeElement.
[0126] d)Elementos de estrutura de um tipo de elemento de extensão podem ser gerados pelo codificador 24 para transmitir informações laterais junto ao fluxo contínuo de dados para permitir ao decodificador fazer um upmix de quaisquer dos sinais de áudio representados por elementos de estrutura de quaisquer dos tipos a, b e/ou c para obter um número maior de sinais de áudio. Elementos de estrutura de tal tipo de elemento de extensão, que sejam posicionados em uma certa posição de elemento comum dentro das estruturas 20, transmitiriam adequadamente informações laterais relativas ao período de tempo consecutivo 18 que permite o upmix do respectivo período de tempo de um ou mais sinais de áudio representados por quaisquer dos outros elementos de estrutura para obter o respectivo período de tempo de um número mais alto de sinais de áudio, onde os últimos podem corresponder a sinais de áudio originais 16 do conteúdo de áudio 10. Exemplos para tais informações laterais podem, por exemplo, ser informações laterais paramétricas tais como, por exemplo, informações laterais MPS ou SAOC.[0126] d) Structure elements of a type of extension element may be generated by the encoder 24 to transmit side information along with the continuous data stream to enable the decoder to upmix any of the audio signals represented by structure elements of any of the types a, b and/or c to obtain a higher number of audio signals. Structure elements of such a type of extension element, which are positioned at a certain common element position within the structures 20, would suitably transmit side information relating to the consecutive time period 18 that enables upmixing of the respective time period of one or more audio signals represented by any of the other structure elements to obtain the respective time period of a higher number of audio signals, where the latter may correspond to original audio signals 16 of the audio content 10. Examples for such side information may, for example, be parametric side information such as, for example, MPS or SAOC side information.
[0127] De acordo com a aplicação descrita em detalhes abaixo, o tipo de elementos disponível consiste meramente dos quatro tipos de elemento descritos acima, mas outros tipos de elemento podem estar disponíveis também. Por outro lado, apenas um ou dois dos tipos de elemento de a para c podem estar disponíveis.[0127] According to the application described in detail below, the available element types consist merely of the four element types described above, but other element types may be available as well. On the other hand, only one or two of the element types a to c may be available.
[0128] Como ficou claro na discussão acima, a omissão dos elementos de estrutura 22 do tipo de elemento de extensão a partir do fluxo contínuo de dados 12 ou a negligência destes elementos de estrutura na decodificação, não torna a reconstrução do conteúdo de áudio 10 completamente impossível: ao menos, os elementos de estrutura restantes de outros tipos de elemento transmitiriam informações suficientes para resultar sinais de áudio. Estes sinais de áudio não correspondem necessariamente aos sinais de áudio originais do conteúdo de áudio 10 ou um subconjunto próprio deste, mas pode representar um tipo de “amalgama” do conteúdo de áudio 10. Isto é, elementos de estrutura do tipo de elemento de extensão podem transmitir informações (dados de carga útil) que representam informações laterais em relação a um ou mais elementos de estrutura posicionados em diferentes posições de elementos diferentes dentro das estruturas 20.[0128] As has become clear from the above discussion, the omission of the structure elements 22 of the extension element type from the data stream 12 or the neglect of these structure elements in decoding does not render the reconstruction of the audio content 10 completely impossible: at least, the remaining structure elements of other element types would convey sufficient information to result in audio signals. These audio signals do not necessarily correspond to the original audio signals of the audio content 10 or a proper subset thereof, but may represent a kind of “amalgamation” of the audio content 10. That is, structure elements of the extension element type may convey information (payload data) that represents side information with respect to one or more structure elements positioned at different element positions within the structures 20.
[0129] Em uma aplicação descrita abaixo, entretanto, elementos de estrutura do tipo de elemento de extensão não são restritos a tal tipo de transmissão de informações laterais. Ao invés disso, elementos de estrutura do tipo de elemento de extensão são, no seguinte, denotados UsacExtElement e são definidos para transmitir dados de carga útil junto a informações de comprimento onde as últimas informações de comprimento permitem decodificadores recebendo o fluxo contínuo de dados 12, para omitir estes elementos de estrutura do tipo de elemento de extensão no caso de, por exemplo, o decodificador ser incapaz de processar os respectivos dados de carga útil dentro destes elementos de estrutura. Isto é descrito em mais detalhes abaixo.[0129] In an application described below, however, structure elements of the extension element type are not restricted to such a type of side information transmission. Instead, structure elements of the extension element type are hereinafter denoted UsacExtElement and are defined to transmit payload data together with length information where the latter length information allows decoders receiving the continuous data stream 12 to omit these structure elements of the extension element type in the event that, for example, the decoder is unable to process the respective payload data within these structure elements. This is described in more detail below.
[0130] Antes de proceder com a descrição do codificador da Fig. 1, entretanto, deve-se notar que há várias possibilidades para alternativas para os tipos de elemento descritos acima. Isto é especialmente verdade para o tipo de elemento de extensão descrito acima. Em particular, no caso do tipo de elemento de extensão ser configurado tal que os dados de carga útil deste sejam omissíveis pelos decodificadores que são, por exemplo, não capazes de processar os respectivos dados de carga útil, os dados de carga útil destes elementos de estrutura do tipo de elemento de extensão poderiam ser quaisquer tipos de dados de carga útil. Estes dados de carga útil poderiam formar informações laterais em relação aos dados de carga útil de outros elementos de estrutura de outros tipos de elemento de estrutura, ou poderiam formar dados de carga útil independentes representando outro sinal de áudio, por exemplo. Ademais, mesmo no caso de os dados de carga útil dos elementos de estrutura do tipo de elemento de extensão representando informações laterais de dados de carga útil de elementos de estrutura de outros tipos de elemento de estrutura, os dados de carga útil destes elementos de estrutura do tipo de elemento de extensão não são restritos ao tipo acima descritos, nomeadamente informações laterais multicanal ou multi- objeto. Informações laterais multicanal de carga útil acompanham, por exemplo, um sinal downmix representado por quaisquer dos elementos de estrutura de outro tipo de elemento, com indicadores espaciais tais como parâmetros de codificação indicadora binaural (BCC | binaural cue coding) tal como valores de coerência intercanal (ICC | inter channel coherence), diferenças de nível intercanal (ICLD | inter channel level differences), e/ou diferenças de tempo inter-canal (ICTD | inter channel time differences) e, opcionalmente, coeficientes de perdição de canal, cujos parâmetros são conhecidos na arte de, por exemplo, o padrão MPEG Surround. Os parâmetros indicadores espaciais mencionados acima podem, por exemplo, ser transmitidos dentro d os dados de carga útil dos elementos de estrutura do tipo de elemento de extensão em uma resolução tempo/frequência, isto é, um parâmetro por janela de tempo/ frequência da grade de tempo/ frequência. No caso de informações laterais multi-objeto, os dados de carga útil do tipo de elemento de extensão elemento de estrutura podem conter informações similares tais como parâmetros de correlação cruzada inter-objeto (IOC | inter-object cross-correlation), diferenças de nível de objeto (OLD | object level differences) assim como parâmetros downmix revelando como sinais de áudio originais fizeram downmix em um canal(s) de um sinal downmix representado por quaisquer dos elementos de estrutura de outro tipo de elemento. Parâmetros recentes são, por exemplo, conhecidos na arte do padrão SAOC. Entretanto, um exemplo de informações laterais diferentes que os dados de carga útil dos elementos de estrutura do tipo de elemento de extensão poderiam representar é, por exemplo, dados SBR para codificar parametricamente um invólucro de uma parte de alta frequência de um sinal de áudio representado por quaisquer dos elementos de estrutura dos outros tipos de elemento de estrutura, posicionados em diferentes posições de elemento dentro das estruturas 20 e possibilitando, por exemplo, replicação de banda espectral por uso da parte de baixa frequência como obtido desde o último sinal de áudio como base para a parte de alta frequência com eles formando o invólucro da parte de alta frequência assim obtido pelo invólucro de dados SBR. De maneira mais geral, os dados de carga útil dos elementos de estrutura do tipo de elemento de extensão poderiam transmitir informações laterais para modificar sinais de áudio representados por elementos de estrutura de quaisquer dos outros tipos de elemento, posicionados em diferentes posições de elemento dentro da estrutura 20, seja no domínio de tempo ou no domínio de frequência onde o domínio de frequência pode, por exemplo, ser um domínio QMF ou algum outro domínio de banco de filtros ou domínio de transformação.[0130] Before proceeding with the description of the encoder of Fig. 1, however, it should be noted that there are several possibilities for alternatives to the element types described above. This is especially true for the extension element type described above. In particular, in case the extension element type is configured such that the payload data thereof is omitted by decoders that are, for example, not capable of processing the respective payload data, the payload data of these structure elements of the extension element type could be any payload data types. These payload data could form side information with respect to the payload data of other structure elements of other structure element types, or could form independent payload data representing another audio signal, for example. Furthermore, even in the case where the payload data of the frame elements of the extension element type represents side information of payload data of frame elements of other frame element types, the payload data of these frame elements of the extension element type is not restricted to the type described above, namely multi-channel or multi-object side information. Multi-channel payload side information accompanies, for example, a downmix signal represented by any of the frame elements of another element type, with spatial cues such as binaural cue coding (BCC) parameters such as inter channel coherence (ICC) values, inter channel level differences (ICLD), and/or inter channel time differences (ICTD) and, optionally, channel loss coefficients, which parameters are known in the art from, for example, the MPEG Surround standard. The above mentioned spatial indicator parameters may, for example, be transmitted within the payload data of the structure elements of the extension element type in a time/frequency resolution, i.e. one parameter per time/frequency window of the time/frequency grid. In the case of multi-object side information, the payload data of the extension element type structure element may contain similar information such as inter-object cross-correlation (IOC) parameters, object level differences (OLD) as well as downmix parameters revealing how original audio signals have been downmixed into a channel(s) of a downmixed signal represented by any of the structure elements of another element type. Recent parameters are, for example, known in the art from the SAOC standard. However, an example of different side information that the payload data of the structure elements of the extension element type could represent is, for example, SBR data for parametrically encoding an envelope of a high frequency portion of an audio signal represented by any of the structure elements of the other structure element types positioned at different element positions within the structures 20 and enabling, for example, spectral band replication by using the low frequency portion as obtained from the last audio signal as the basis for the high frequency portion with them forming the envelope of the high frequency portion thus obtained by the envelope SBR data. More generally, the payload data of the structure elements of the extension element type could convey side information for modifying audio signals represented by structure elements of any of the other element types positioned at different element positions within the structure 20, whether in the time domain or in the frequency domain where the frequency domain may, for example, be a QMF domain or some other filter bank domain or transform domain.
[0131] Procedendo com a descrição da funcionalidade do codificador 24 da Fig. 1, o mesmo é configurado para codificar no fluxo contínuo de dados 12 a bloco de configuração 28 que contenha um campo indicando o número de elementos N e uma porção de sintaxe de indicação de tipo indicando, para cada posição de elemento da sequência de posições de elementos N, o respectivo tipo de elemento. Portanto, o codificador 24 é configurado para codificar, para cada estrutura 20, a sequência de elementos de estrutura N 22 no fluxo contínuo de dados 12 tal que cada elemento de estrutura 22 da sequência de elementos de estrutura N 22, que é posicionada em uma posição de elemento respectiva dentro da sequência de elementos de estrutura N 22 no fluxo contínuo de dados 12, é do tipo de elemento indicado pela parte de indicação de tipo para a posição de elemento respectiva. Em outras palavras, o codificador 24 forma subfluxos N, cada um dos quais é uma sequência de elementos de estrutura 22 de um respectivo tipo de elemento. Isto é, para todos estes subfluxos N, os elementos de estrutura 22 são de tipos iguais de elemento, enquanto elementos de estrutura de diferentes subfluxos podem ser de um diferente tipo de elemento. O codificador 24 é configurado para multiplexar todos estes elementos de estrutura no fluxo contínuo de dados 12 concatenando todos os elementos de estrutura N destes subfluxos em relação a um período de tempo comum 18 para formar uma estrutura 20. Portanto, no fluxo contínuo de dados 12 estes elementos de estrutura 22 são dispostos em estruturas 20. Dentro de cada estrutura 20, os representativos dos subfluxos N, isto é, os elementos de estrutura N em relação ao mesmo período de tempo 18, são dispostos na ordem sequencial estática definida pela sequência de posições de elementos e a porção da sintaxe de indicação de tipo no bloco de configuração 28, respectivamente.[0131] Proceeding with the description of the functionality of the encoder 24 of Fig. 1, the same is configured to encode in the data stream 12 a configuration block 28 containing a field indicating the number of elements N and a type indication syntax portion indicating, for each element position of the sequence of element positions N, the respective element type. Therefore, the encoder 24 is configured to encode, for each frame 20, the sequence of N structure elements 22 in the data stream 12 such that each frame element 22 of the sequence of N structure elements 22, which is positioned at a respective element position within the sequence of N structure elements 22 in the data stream 12, is of the element type indicated by the type indication portion for the respective element position. In other words, the encoder 24 forms N substreams, each of which is a sequence of structure elements 22 of a respective element type. That is, for all these N substreams, the structure elements 22 are of the same element types, while structure elements of different substreams may be of a different element type. The encoder 24 is configured to multiplex all these structure elements into the data stream 12 by concatenating all the N structure elements of these substreams with respect to a common time period 18 to form a structure 20. Therefore, in the data stream 12 these structure elements 22 are arranged in structures 20. Within each structure 20, those representative of the N substreams, that is, the N structure elements with respect to the same time period 18, are arranged in the static sequential order defined by the sequence of element positions and the type indication syntax portion in the configuration block 28, respectively.
[0132] Pelo uso da porção de sintaxe de indicação de tipo, o codificador 24 é capaz de selecionar livremente a ordem, utilizando quais elementos de estrutura 22 dos subfluxos N sejam dispostos dentro das estruturas 20. Por esta medida, o codificador 24 é capaz de manter, por exemplo, o buffer superior do lado do decodificador tão baixo quanto possível. Por exemplo, um subfluxo de elementos de estrutura do tipo de elemento de extensão que transmite informações laterais para elementos de estrutura de outro subfluxo (subfluxo base), que são de um não -tipo de elemento de extensão, pode ser posicionado em uma posição de elemento dentro das estruturas 20 sucedendo imediatamente a posição de elemento na qual estes elementos de estrutura de subfluxo base estão localizados nas estruturas 20. Por esta medida, o tempo de buffer durante o qual o lado da decodificação tem que armazenar resultados, ou resultados intermediários, da decodificação do subfluxo base para uma aplicação das informações laterais deste, é mantido baixo, e o buffer superior pode ser reduzido. No caso de informações laterais dos dados de carga útil dos elementos de estrutura de um subfluxo, que são do tipo de elemento de extensão, sendo aplicados a um resultado intermediário, tal como um domínio de frequência do sinal de áudio representado por outro subfluxo de elementos de estrutura 22 (subfluxo base), o posicionamento do subfluxo de elementos de estrutura do tipo de elemento de extensão 22 tal que o mesmo siga imediatamente o subfluxo base, não apenas minimiza o buffer superior, mas também a duração de tempo durante a qual o decodificador pode ter de interromper um processamento maior da reconstrução do sinal de áudio representado porque, por exemplo, os dados de carga útil dos elementos de estrutura do tipo de elemento de extensão é para modificar a reconstrução do sinal de áudio relativo à representação do subfluxo base. Entretanto, pode ser favorável também posicionar um subfluxo de extensão dependente antes do subfluxo base representando um sinal de áudio, ao qual o subfluxo de extensão se refere. Por exemplo, o codificador 24 está livre para posicionar o subfluxo de carga útil de extensão dentro do fluxo contínuo de dados a montante relativo a um subfluxo de tipo de elemento de canal. Por exemplo, a carga útil de extensão do subfluxo i poderia transmitir dados do controle de faixa dinâmica (DRC | dynamic range control) e é transmitido antes de, ou em uma posição de elemento anterior a i, relativo à codificação do sinal de áudio correspondente, tal como através de codificação de domínio de frequência (FD | frequency domain), dentro do subfluxo de canal na posição de elemento i+1, por exemplo. Então, o decodificador é capaz de usar o DRC imediatamente ao decodificar e reconstruir o sinal de áudio representado por um subfluxo de tipo não extensão i+1.[0132] By use of the type indication syntax portion, the encoder 24 is able to freely select the order in which structure elements 22 of the N substreams are arranged within the structures 20. By this measure, the encoder 24 is able to keep, for example, the upper buffer of the decoder side as low as possible. For example, a substream of structure elements of the extension element type that transmits side information to structure elements of another substream (base substream), which are of a non-extension element type, can be positioned in an element position within the structures 20 immediately succeeding the element position in which these base substream structure elements are located in the structures 20. By this measure, the buffer time during which the decoding side has to store results, or intermediate results, of the decoding of the base substream for an application of the side information thereof, is kept low, and the upper buffer can be reduced. In the case of side information of the payload data of the structure elements of a substream, which are of the extension element type, being applied to an intermediate result, such as a frequency domain of the audio signal represented by another structure element substream 22 (base substream), positioning the structure element substream of the extension element type 22 such that it immediately follows the base substream not only minimizes the overhead buffer, but also the duration of time during which the decoder may have to interrupt further processing of the reconstruction of the represented audio signal because, for example, the payload data of the structure elements of the extension element type is to modify the reconstruction of the audio signal relative to the representation of the base substream. However, it may be advantageous to also position a dependent extension substream before the base substream representing an audio signal to which the extension substream refers. For example, the encoder 24 is free to position the extension payload substream within the upstream data stream relative to a channel element type substream. For example, the extension payload of substream i could carry dynamic range control (DRC) data and is transmitted prior to, or at an element position prior to i, relative to the encoding of the corresponding audio signal, such as via frequency domain (FD) coding, within the channel substream at element position i+1, for example. Then, the decoder is able to use DRC immediately when decoding and reconstructing the audio signal represented by a non-extension type substream i+1.
[0133] O codificador 24 como descrito até agora representa uma possível aplicação da presente aplicação. Entretanto, a Fig. 1 também mostra uma possível estrutura interna do codificador que deve ser compreendida meramente como ilustração. Como mostrado na Fig. 1, o codificador 24 pode conter um distribuidor 30 e um sequencializador 32 entre os quais vários módulos de codificação 34a-e são conectados da maneira descrita em mais detalhes no seguinte. Em particular, o distribuidor 30 é configurado para receber os sinais de áudio 16 do conteúdo de áudio 10 e para distribuir o mesmo nos módulos de codificação individuais 34a-e. A maneira que o distribuidor 30 distribui o período de tempo consecutivo 18 do sinal de áudio 16 nos módulos de codificação 34a a 34e é estática. Em particular, a distribuição pode ser tal que cada sinal de áudio 16 seja encaminhado para um dos módulos de codificação 34a a 34e exclusivamente. Um sinal de áudio alimentado para o codificador LFE 34a é codificado pelo codificador LFE 34a em um subfluxo de elementos de estrutura 22 do tipo c (vide acima), por exemplo. Sinais de áudio alimentados para uma entrada do codificador de canal único 34b são codificador pelo último em um subfluxo de elementos de estrutura 22 do tipo a (vide acima), por exemplo. Similarmente, um par de sinais de áudio alimentado para uma entrada do codificador do par de canal 34c é codificador pelo último em um subfluxo de elementos de estrutura 22 do tipo d (vide acima), por exemplo. Os módulos de codificação mencionados acima 34a a 34c são conectados com uma entrada e saída deste entre o distribuidor 30 por um lado e o sequencializador 32, por outro lado.[0133] The encoder 24 as described thus far represents a possible application of the present application. However, Fig. 1 also shows a possible internal structure of the encoder which is to be understood merely as an illustration. As shown in Fig. 1, the encoder 24 may contain a distributor 30 and a sequencer 32 between which a plurality of encoding modules 34a-e are connected in the manner described in more detail in the following. In particular, the distributor 30 is configured to receive the audio signals 16 of the audio content 10 and to distribute the same into the individual encoding modules 34a-e. The manner in which the distributor 30 distributes the consecutive time period 18 of the audio signal 16 into the encoding modules 34a-34e is static. In particular, the distribution may be such that each audio signal 16 is routed to one of the encoding modules 34a-34e exclusively. An audio signal fed to the LFE encoder 34a is encoded by the LFE encoder 34a into a substream of structure elements 22 of type c (see above), for example. Audio signals fed to an input of the single-channel encoder 34b are encoded by the latter into a substream of structure elements 22 of type a (see above), for example. Similarly, a pair of audio signals fed to an input of the channel pair encoder 34c are encoded by the latter into a substream of structure elements 22 of type d (see above), for example. The above-mentioned encoding modules 34a to 34c are connected with an input and output thereof between the distributor 30 on the one hand and the sequencer 32 on the other hand.
[0134] Entretanto, como mostrado na Fig. 1 as entradas dos módulos do codificador 34b e 34c não são apenas conectadas à interface de saída do distribuidor 30. Ao invés disso, o mesmo pode ser alimentado por um sinal de saída de quaisquer dos módulos de codificação 34d e 34e. Os módulos de codificação recentes 34d e 34e são exemplos de módulos de codificação que são configurados para codificar um número de sinais de áudio de entrada em um sinal downmix de um número menor de canais downmix por um lado, e um subfluxo de elementos de estrutura 22 do tipo d (vide acima), por outro lado. Como ficou claro a partir da discussão acima, o módulo de codificação 34d pode ser um codificador SAOC, e módulo de codificação 34e pode ser um codificador MPS. Os sinais de downmix são encaminhados para quaisquer dos módulos de codificação 34b e 34c. Os subfluxos gerados pelos módulos de codificação 34a a 34e são encaminhados para o sequencializador 32 que sequencializa os subfluxos no fluxo contínuo de dados 12 como descrito acima. Portanto, os módulos de codificação 34d e 34e tem sua entrada para o número de sinais de áudio conectada à interface de saída do distribuidor 30, enquanto sua saída de subfluxo é conectada a uma interface de entrada do sequencializador 32, e sua saída downmix é conectada às entradas dos módulos de codificação 34b e/ou 34c, respectivamente.[0134] However, as shown in Fig. 1 the inputs of encoder modules 34b and 34c are not simply connected to the output interface of distributor 30. Instead, it may be fed by an output signal from any of encoding modules 34d and 34e. The latter encoding modules 34d and 34e are examples of encoding modules that are configured to encode a number of input audio signals into a downmix signal of a smaller number of downmix channels on the one hand, and a substream of structure elements 22 of type d (see above) on the other hand. As is clear from the above discussion, encoding module 34d may be an SAOC encoder, and encoding module 34e may be an MPS encoder. The downmix signals are routed to any of encoding modules 34b and 34c. The substreams generated by the encoding modules 34a to 34e are forwarded to the sequencer 32 which sequences the substreams into the continuous data stream 12 as described above. Therefore, the encoding modules 34d and 34e have their input for the number of audio signals connected to the output interface of the distributor 30, while their substream output is connected to an input interface of the sequencer 32, and their downmix output is connected to the inputs of the encoding modules 34b and/or 34c, respectively.
[0135] Deve-se notar que de acordo com a descrição acima, a existência de codificadores multi-objeto 34d e codificadores multicanal 34e foi meramente selecionada para propósitos ilustrativos, e quaisquer destes módulos de codificação 34d e 34e podem ser abandonados ou substituídos por outro módulo de codificação, por exemplo.[0135] It should be noted that according to the above description, the existence of multi-object encoders 34d and multi-channel encoders 34e was merely selected for illustrative purposes, and any of these coding modules 34d and 34e may be abandoned or replaced by another coding module, for example.
[0136] Após ter descrito o codificador 24 e a possível estrutura interna deste, um decodificador correspondente é descrito com relação a Fig. 2. O decodificador da Fig. 2 é geralmente indicado com um sinal de referência 36 e tem uma entrada para receber o fluxo contínuo de dados 12 e uma saída para liberar uma versão reconstruída 38 do conteúdo de áudio 10 ou um amalgama deste. Portanto, o decodificador 36 é configurado para decodificar o fluxo contínuo de dados 12 contendo o bloco de configuração 28 e a sequência de estruturas 20 mostrada na Fig. 1, e para decodificar cada estrutura 20 decodificando os elementos de estrutura 22 de acordo com o tipo de elemento indicado, pela parte de indicação do tipo, para a respectiva posição de elemento na qual o respectivo elemento de estrutura 22 é posicionado dentro da sequência de elementos de estrutura N 22 da estrutura respectiva 20 no fluxo contínuo de dados 12. Isto é, o decodificador 36 é configurado para atribuir cada elemento de estrutura 22 a um dos possíveis tipos de elemento dependendo de sua posição de elemento dentro da estrutura atual 20 ao invés de qualquer informação dentro do próprio elemento de estrutura. Por esta medida, o decodificador 36 obtém subfluxos N, o primeiro subfluxo constituído dos primeiros elementos de estrutura 22 das estruturas 20, o segundo subfluxo constituído dos segundos elementos de estrutura 22 dentro das estruturas 20, o terceiro subfluxo constituído dos terceiros elementos de estrutura 22 dentro das estruturas 20 e assim por diante.[0136] Having described the encoder 24 and the possible internal structure thereof, a corresponding decoder is described with reference to Fig. 2. The decoder of Fig. 2 is generally indicated with a reference signal 36 and has an input for receiving the continuous data stream 12 and an output for releasing a reconstructed version 38 of the audio content 10 or an amalgamation thereof. Therefore, the decoder 36 is configured to decode the data stream 12 containing the configuration block 28 and the sequence of frames 20 shown in Fig. 1, and to decode each frame 20 by decoding the frame elements 22 according to the element type indicated, by the type indicating part, to the respective element position at which the respective frame element 22 is positioned within the sequence of frame elements N 22 of the respective frame 20 in the data stream 12. That is, the decoder 36 is configured to assign each frame element 22 to one of the possible element types depending on its element position within the current frame 20 rather than on any information within the frame element itself. By this measure, the decoder 36 obtains N substreams, the first substream consisting of the first structure elements 22 of the structures 20, the second substream consisting of the second structure elements 22 within the structures 20, the third substream consisting of the third structure elements 22 within the structures 20, and so on.
[0137] Antes de descrever a funcionalidade do decodificador 36 com relação aos elementos de estrutura do tipo de elemento de extensão em mais detalhes, uma estrutura interna possível do decodificador 36 da Fig. 2 é explicada em mais detalhes para corresponder à estrutura interna do codificador 24 da Fig. 1. Como descrito com relação ao codificador 24, a estrutura interna deve ser compreendida como sendo meramente ilustrativa.[0137] Before describing the functionality of the decoder 36 with respect to the extension element type structure elements in more detail, a possible internal structure of the decoder 36 of Fig. 2 is explained in more detail to correspond to the internal structure of the encoder 24 of Fig. 1. As described with respect to the encoder 24, the internal structure should be understood to be merely illustrative.
[0138] Em particular, como mostrado na Fig. 2, o decodificador 36 pode conter internamente um distribuidor 40 e um arranjador 42 entre os quais os módulos de decodificação 44a a 44e estão conectados. Cada módulo de decodificação 44a a 44e é responsável por decodificar um subfluxo de elementos de estrutura 22 de um certo tipo de elemento de estrutura. Portanto, o distribuidor 40 é configurado para distribuir os subfluxos N do fluxo contínuo de dados 12 nos módulos de decodificação 44a a 44e correspondentemente. O módulo de decodificação 44a, por exemplo, é um decodificador LFE que decodifica um subfluxo de elementos de estrutura 22 do tipo c (vide acima) para obter uma faixa estreita (por exemplo) sinal de áudio em sua saída. Similarmente, o decodificador de canal único 44b decodifica um subfluxo de entrada de elementos de estrutura 22 do tipo a (vide acima) para obter um único sinal de áudio em sua saída, e decodificador de par de canal 44c decodifica um subfluxo de entrada dos elementos de estrutura 22 do tipo b (vide acima) para obter um par de sinais de áudio em sua saída. Os módulos de decodificação 44a a 44c têm sua entrada e saída conectados entre a interface de saída do distribuidor 40 por um lado e input interface do arranjador 42 por outro lado.[0138] In particular, as shown in Fig. 2, the decoder 36 may internally contain a distributor 40 and an arranger 42 between which the decoding modules 44a to 44e are connected. Each decoding module 44a to 44e is responsible for decoding a substream of structure elements 22 of a certain structure element type. Therefore, the distributor 40 is configured to distribute the N substreams of the continuous data stream 12 into the decoding modules 44a to 44e correspondingly. The decoding module 44a, for example, is an LFE decoder that decodes a substream of structure elements 22 of type c (see above) to obtain a narrow band (for example) audio signal at its output. Similarly, single channel decoder 44b decodes an input substream of structure elements 22 of type a (see above) to obtain a single audio signal at its output, and channel pair decoder 44c decodes an input substream of structure elements 22 of type b (see above) to obtain a pair of audio signals at its output. Decoding modules 44a to 44c have their input and output connected between the output interface of distributor 40 on the one hand and the input interface of arranger 42 on the other hand.
[0139] O decodificador 36 pode meramente ter módulos de decodificação 44a a 44c. Os outros módulos de decodificação 44e e 44d são responsáveis por elementos de estrutura do tipo de elemento de extensão e são, portanto, opcionais em relação à preocupação com a conformidade com o codec de áudio. Se ambos ou quaisquer destes módulos de extensão 44e e 44d estiverem faltando, o distribuidor 40 é configurado para omitir os respectivos subfluxos do elemento de estrutura no fluxo contínuo de dados 12 como descrido em mais detalhes abaixo, e a versão reconstruída 38 do conteúdo de áudio 10 é meramente um amalgama da versão original tendo os sinais de áudio 16.[0139] The decoder 36 may merely have decoding modules 44a through 44c. The other decoding modules 44e and 44d are responsible for extension element type structure elements and are therefore optional with respect to the concern for audio codec compliance. If both or either of these extension modules 44e and 44d are missing, the distributor 40 is configured to omit the respective structure element substreams in the data stream 12 as described in more detail below, and the reconstructed version 38 of the audio content 10 is merely an amalgamation of the original version having the audio signals 16.
[0140] Se presente, entretanto, isto é, se o decodificador 36 suporta ao SAOC e/ou elementos de estrutura de extensão MPS, o decodificador multicanal 44e pode ser configurado para decodificar os subfluxos gerados pelo codificador 34e, enquanto o decodificador multi-objeto 44d é responsável por decodificar subfluxos gerados pelo codificador multi-objeto 34d. Portanto, no caso do módulo decodificador 44e e/ou 44d estar presente, uma chave 46 pode conectar a saída de quaisquer dos módulos de decodificação 44c e 44b com um sinal downmix de entrada do módulo de decodificação 44e e/ou 44d. O decodificador multicanal 44e pode ser configurado para fazer um upmix no sinal de entrada downmix utilizando informações laterais dentro do subfluxo de entrada a partir do distribuidor 40 para obter um número aumentado de sinais de áudio em sua saída. O decodificador multi-objeto 44d pode agir de acordo com a diferença de que o decodificador multi-objeto 44d trata os sinais de áudio individuais como objetos de áudio enquanto o decodificador multicanal 44e trata os sinais de áudio em sua saída como canais de áudio.[0140] If present, however, that is, if decoder 36 supports SAOC and/or MPS extension structure elements, multichannel decoder 44e may be configured to decode substreams generated by encoder 34e, while multi-object decoder 44d is responsible for decoding substreams generated by multi-object encoder 34d. Therefore, in the case of decoder module 44e and/or 44d being present, a switch 46 may connect the output of any of decoding modules 44c and 44b to an input downmix signal from decoding module 44e and/or 44d. Multichannel decoder 44e may be configured to upmix the downmix input signal using side information within the input substream from distributor 40 to obtain an increased number of audio signals at its output. The multi-object decoder 44d can act upon the difference that the multi-object decoder 44d treats the individual audio signals as audio objects while the multi-channel decoder 44e treats the audio signals at its output as audio channels.
[0141] Os sinais de áudio assim reconstruídos são encaminhados para o arranjador 42 que os dispõe para formar a reconstrução 38. O arranjador 42 pode ser controlado adicionalmente pela entrada do usuário 48, que a entrada do usuário indica, por exemplo, uma configuração de alto-falante disponível ou número maior de canais de reconstrução 38 permitidos. Dependendo da entrada do usuário 48, o arranjador 42 pode desabilitar quaisquer dos módulos de decodificação 44a a 44e tal como, por exemplo, quaisquer dos módulos de extensão 44d e 44e, ainda que presentes e ainda que os elementos de estrutura de extensão estejam presentes no fluxo contínuo de dados 12.[0141] The audio signals thus reconstructed are forwarded to arranger 42 which arranges them to form reconstruction 38. Arranger 42 may be further controlled by user input 48, which user input indicates, for example, an available speaker configuration or increased number of reconstruction channels 38 allowed. Depending on user input 48, arranger 42 may disable any of the decoding modules 44a to 44e such as, for example, any of the extension modules 44d and 44e, even if present and even if extension structure elements are present in data stream 12.
[0142] Antes de descrever outros detalhes possíveis do decodificador, codificador e fluxo contínuo de dados, respectivamente, deve-se notar que devido à habilidade do codificador de intercalar elementos de estrutura dos subfluxos que sejam do tipo de elemento de extensão, entre elementos de estrutura de subfluxos, que não sejam do tipo de elemento de extensão, o buffer superior do decodificador 36 pode ser reduzido pelo codificador 24 escolhendo adequadamente a ordem entre os subfluxos e a ordem entre os elementos de estrutura dos subfluxos dentro de cada estrutura 20, respectivamente. Imagine, por exemplo, que o decodificador do par de canal entrando no subfluxo 44c seria colocado na primeira posição de elemento dentro da estrutura 20, enquanto o multi- subfluxo de canal para o decodificador 44e seria colocado ao fim de cada estrutura. Nesse caso, o decodificador 36 teria de armazenar o sinal de áudio intermediário representando o sinal downmix para o decodificador multicanal 44e para um período de tempo envolvendo o tempo entre a chegada do primeiro elemento de estrutura e o último elemento de estrutura de cada estrutura 20, respectivamente. Apenas então o decodificador multicanal 44e é capaz de começar seu processamento. Este adiamento pode ser evitado pelo codificador 24 dispondo o subfluxo dedicado para o decodificador multicanal 44e na segunda posição de elemento de estruturas 20, por exemplo. Por outro lado, o distribuidor 40 não precisa inspecionar cada elemento de estrutura com relação a sua associação a quaisquer dos subfluxos. Ao invés disso, o distribuidor 40 é capaz de deduzir a associação de um elemento de estrutura atual 22 de uma estrutura atual 20 a quaisquer dos subfluxos N meramente desde o bloco de configuração e a porção de sintaxe de indicação de tipo aqui contida.[0142] Before describing other possible details of the decoder, encoder and data stream, respectively, it should be noted that due to the ability of the encoder to interleave substream structure elements that are of the extension element type between substream structure elements that are not of the extension element type, the decoder upper buffer 36 can be reduced by the encoder 24 by appropriately choosing the order between the substreams and the order between the substream structure elements within each structure 20, respectively. Imagine, for example, that the decoder for the channel pair entering substream 44c would be placed in the first element position within structure 20, while the multi-channel substream for decoder 44e would be placed at the end of each structure. In this case, the decoder 36 would have to buffer the intermediate audio signal representing the downmix signal for the multichannel decoder 44e for a period of time involving the time between the arrival of the first frame element and the last frame element of each frame 20, respectively. Only then is the multichannel decoder 44e able to begin its processing. This delay can be avoided by the encoder 24 by arranging the dedicated substream for the multichannel decoder 44e in the second element position of frames 20, for example. On the other hand, the distributor 40 need not inspect each frame element with respect to its membership in any of the substreams. Instead, the distributor 40 is able to infer the membership of a current frame element 22 of a current frame 20 to any of the N substreams merely from the configuration block and the type indication syntax portion contained therein.
[0143] Uma referência é agora feita à Fig. 3 mostrando o fluxo contínuo de dados 12 que contém, como já descrito acima, um bloco de configuração 28 e uma sequência de estruturas 20. As partes de fluxo contínuo de dados à direita seguem outras posições da parte de fluxo contínuo de dados à esquerda quando observado na Fig. 3. No caso da Fig. 3, por exemplo, o bloco de configuração 28 precede as estruturas 20 mostradas na Fig, 3 onde, para propósitos ilustrativos apenas, apenas três estruturas 20 são completamente mostradas na Fig. 3.[0143] Reference is now made to Fig. 3 showing the data stream 12 which contains, as already described above, a configuration block 28 and a sequence of structures 20. The data stream portions on the right follow other positions of the data stream portion on the left when viewed in Fig. 3. In the case of Fig. 3, for example, the configuration block 28 precedes the structures 20 shown in Fig. 3 where, for illustrative purposes only, only three structures 20 are fully shown in Fig. 3.
[0144] Além disso, deve-se notar que o bloco de configuração 28 pode ser inserido no fluxo contínuo de dados 12 entre as estruturas 20 em uma base periódica ou intermitente para permitir pontos de acesso aleatório nas aplicações de transmissão de fluxo contínuo de dados. Falando geralmente, o bloco de configuração 28 pode ser uma parte simplesmente conectada do fluxo contínuo de dados 12.[0144] Furthermore, it should be noted that configuration block 28 may be inserted into data stream 12 between frames 20 on a periodic or intermittent basis to allow for random access points in data stream transmission applications. Generally speaking, configuration block 28 may be a simply connected portion of data stream 12.
[0145] O bloco de configuração 28 contém, como descrito acima, um campo 50 indicando o número de elementos N, isto é, o número de elementos de estrutura N dentro de cada estrutura 20 e o número de subfluxos multiplexados no fluxo contínuo de dados 12 como descrito acima. Na seguinte aplicação descrevendo uma aplicação para uma sintaxe concreta do fluxo contínuo de dados 12, o campo 50 é denotado numElements e o bloco de configuração 28 chamado UsacConfig no seguinte exemplo de sintaxe específica da Fig. 4a-z e za-zc. Além disso, o bloco de configuração 28 contém a porção de sintaxe de indicação de tipo 52. Como já foi descrito acima, esta parte 52 indica para cada posição de elemento um tipo de elemento de uma pluralidade de tipos de elemento. Como mostrado na Fig. 3 e como é o caso com relação ao seguinte exemplo de sintaxe específica, a porção de sintaxe de indicação de tipo 52 pode conter a sequência de elementos de sintaxe N 54 com cada elemento de sintaxe 54 indicando o tipo de elemento para a posição de elemento respectiva na qual o elemento de sintaxe respectiva 54 é posicionado dentro da porção de sintaxe de indicação de tipo 52. Em outras palavras, o elemento de sintaxe in 54 dentro da parte 52 pode indicar o tipo de elemento do subfluxo in e elemento de estrutura in de cada estrutura 20, respectivamente. No exemplo de sintaxe concreto subsequente, o elemento de estrutura de sintaxe é denotado UsacElementType. Ainda que a porção de sintaxe de indicação de tipo 52 possa estar contida dentro do fluxo contínuo de dados 12 como uma parte contígua ou simplesmente conectada do fluxo contínuo de dados 12, é mostrado exemplarmente na Fig. 3 que os elementos 54 deste são integrados com outras partes de elemento de sintaxe do bloco de configuração 28 que estão presentes para cada uma das posições de elemento N individualmente. Nas aplicações descritas abaixo, estas partes de sintaxe integradas pertencem aos dados de configuração subfluxo- específico 55 significado o qual é descrito a seguir em mais detalhes.[0145] Configuration block 28 contains, as described above, a field 50 indicating the number of elements N, i.e., the number of structure elements N within each structure 20 and the number of multiplexed substreams in the data stream 12 as described above. In the following application describing an application for a concrete syntax of the data stream 12, field 50 is denoted numElements and configuration block 28 called UsacConfig in the following specific syntax example of Fig. 4a-z and za-zc. Furthermore, configuration block 28 contains type indication syntax portion 52. As already described above, this portion 52 indicates for each element position an element type from a plurality of element types. As shown in Fig. 3 and as is the case with respect to the following specific syntax example, the type indicating syntax portion 52 may contain the sequence of N syntax elements 54 with each syntax element 54 indicating the element type for the respective element position at which the respective syntax element 54 is positioned within the type indicating syntax portion 52. In other words, the in syntax element 54 within the portion 52 may indicate the element type of the in substream and in structure element of each structure 20, respectively. In the subsequent concrete syntax example, the syntax structure element is denoted UsacElementType. Although the type indicating syntax portion 52 may be contained within the data stream 12 as a contiguous or simply connected portion of the data stream 12, it is exemplarily shown in Fig. 3 that the elements 54 thereof are integrated with other syntax element portions of the configuration block 28 that are present for each of the N element positions individually. In the applications described below, these embedded syntax parts belong to the subflow-specific configuration data 55 meaning which is described below in more detail.
[0146] Como já foi descrito acima, cada estrutura 20 é composta de uma sequência de elementos de estrutura N 22. Os tipos de elemento destes elementos de estrutura 22 não são sinalizados pelos indicadores de tipo respectivo dentro dos próprios elementos de estrutura 22. Ao invés disso, os tipos de elemento dos elementos de estrutura 22 são definidos por sua posição de elemento dentro de cada estrutura 20. O elemento de estrutura 22 ocorrendo primeiro na estrutura 20, denotado elemento de estrutura 22a na Fig. 3, tem a primeira posição de elemento e está adequada ao tipo de elemento que é indicado para a primeira posição de elemento pela porção da sintaxe 52 dentro do bloco de configuração 28. O mesmo se aplica em relação aos seguintes elementos de estrutura 22. Por exemplo, o elemento de estrutura 22b ocorrendo imediatamente após o primeiro elemento de estrutura 22a dentro do fluxo contínuo de dados 12, isto é, aquele tendo a posição de elemento 2, é do tipo de elemento indicado pela porção da sintaxe 52.[0146] As already described above, each structure 20 is composed of a sequence of N structure elements 22. The element types of these structure elements 22 are not signaled by respective type indicators within the structure elements 22 themselves. Instead, the element types of the structure elements 22 are defined by their element position within each structure 20. The structure element 22 occurring first in the structure 20, denoted structure element 22a in Fig. 3, has the first element position and conforms to the element type that is indicated for the first element position by the syntax portion 52 within the configuration block 28. The same applies with respect to the following structure elements 22. For example, the structure element 22b occurring immediately after the first structure element 22a within the data stream 12, i.e., the one having element position 2, is of the element type indicated by the syntax portion 52.
[0147] De acordo com uma aplicação específica, os elementos de sintaxe 54 são dispostos dentro do fluxo contínuo de dados 12 na mesma ordem que os elementos de estrutura 22 aos quais se referem. Isto é, o primeiro elemento de sintaxe 54, isto é, aquele ocorrendo primeiro no fluxo contínuo de dados 12 e sendo posicionado do lado esquerdo mais externo na Fig. 3, indica o tipo de elemento do primeiro elemento de estrutura ocorrendo 22a de cada estrutura 20, o segundo elemento de sintaxe 54 indica o tipo de elemento do segundo elemento de estrutura 22b e assim por diante. Naturalmente, a ordem sequencial ou disposição dos elementos de sintaxe 54 dentro do fluxo contínuo de dados 12 e partes da sintaxe 52 podem ser alteradas em relação à ordem sequencial dos elementos de estrutura 22 dentro das estruturas 20. Outras permutações também seriam possíveis ainda que menos preferidas.[0147] According to a specific application, the syntax elements 54 are arranged within the data stream 12 in the same order as the structure elements 22 to which they refer. That is, the first syntax element 54, i.e., the one occurring first in the data stream 12 and being positioned on the outermost left side in Fig. 3, indicates the element type of the first occurring structure element 22a of each structure 20, the second syntax element 54 indicates the element type of the second structure element 22b, and so on. Naturally, the sequential order or arrangement of the syntax elements 54 within the data stream 12 and syntax parts 52 may be altered relative to the sequential order of the structure elements 22 within the structures 20. Other permutations would also be possible although less preferred.
[0148] Para o decodificador 36, isto significa que o mesmo pode ser configurado para ler esta sequência e elementos de sintaxe N 54 desde a porção de sintaxe de indicação de tipo 52. Para ser mais preciso, o decodificador 36 lê o campo 50 tal que o decodificador 36 conheça o número de elementos de sintaxe N 54 a ser lido a partir do fluxo contínuo de dados 12. Como mencionado, o decodificador 36 pode ser configurado para associar os elementos de sintaxe e o tipo de elemento indicado, portanto, com os elementos de estrutura 22 dentro das estruturas 20 tal que o elemento de sintaxe ith 54 seja associado com o elemento de estrutura ith 22.[0148] For decoder 36, this means that it may be configured to read this sequence and N syntax elements 54 from type indicating syntax portion 52. To be more precise, decoder 36 reads field 50 such that decoder 36 knows the number of N syntax elements 54 to be read from data stream 12. As mentioned, decoder 36 may be configured to associate the syntax elements and the indicated element type, therefore, with structure elements 22 within structures 20 such that ith syntax element 54 is associated with ith structure element 22.
[0149] Além da descrição acima, o bloco de configuração 28 pode conter a sequência 55 de elementos de configuração N 56 com cada elemento de configuração 56 contendo informações de configuração para o tipo de elemento para a posição de elemento respectiva na qual o elemento de configuração respectivo 56 é posicionado na sequência 55 de elementos de configuração N 56. Em particular, a ordem na qual a sequência de elementos de configuração 56 está escrita no fluxo contínuo de dados 12 (e lida a partir do fluxo contínuo de dados 12 pelo decodificador 36) pode ser a mesma ordem que a utilizada para os elementos de estrutura 22 e/ou elementos de sintaxe 54, respectivamente. Isto é, o elemento de configuração 56 ocorrendo primeiro no fluxo contínuo de dados 12 pode conter as informações de configuração para o primeiro elemento de estrutura 22a, o segundo elemento de configuração 56, as informações de configuração para o elemento de estrutura 22b e assim por diante. Como já mencionado acima, a porção de sintaxe de indicação de tipo 52 e os dados de configuração específicos de elemento-posição 55 é mostrada na aplicação da Fig. 3 como sendo intercalado uns com os outros tal que o elemento de configuração 56 pertencendo à posição de elemento i é posicionado no fluxo contínuo de dados 12 entre o indicador de tipo 54 para a posição de elemento i e posição de elemento i+1. Mesmo em outras palavras, os elementos de configuração 56 e os elementos de sintaxe 54 são dispostos no fluxo contínuo de dados alternadamente e lidos a partir deste alternadamente pelo decodificador 36, mas outro posicionamento se estes dados no fluxo contínuo de dados 12 dentro do bloco 28 também seria possível, como mencionado anteriormente.[0149] In addition to the above description, the configuration block 28 may contain the sequence 55 of N configuration elements 56 with each configuration element 56 containing configuration information for the element type for the respective element position at which the respective configuration element 56 is positioned in the sequence 55 of N configuration elements 56. In particular, the order in which the sequence of configuration elements 56 is written into the data stream 12 (and read from the data stream 12 by the decoder 36) may be the same order as that used for the structure elements 22 and/or syntax elements 54, respectively. That is, the configuration element 56 occurring first in the data stream 12 may contain the configuration information for the first structure element 22a, the second configuration element 56, the configuration information for the structure element 22b, and so on. As already mentioned above, the type indication syntax portion 52 and the element-position specific configuration data 55 are shown in the application of Fig. 3 as being interleaved with each other such that the configuration element 56 belonging to element position i is positioned in the data stream 12 between the type indicator 54 for element position i and element position i+1. Even in other words, the configuration elements 56 and the syntax elements 54 are arranged in the data stream alternately and read from it alternately by the decoder 36, but another positioning of these data in the data stream 12 within the block 28 would also be possible, as mentioned before.
[0150] Transmitindo um elemento de configuração 56 para cada posição de elemento 1...N no bloco de configuração 28, respectivamente, o fluxo contínuo de dados permite configurar diferentemente elementos de estrutura pertencendo aos diferentes subfluxos e posições de elementos, respectivamente, mas sendo do mesmo tipo de elemento. Por exemplo, um fluxo contínuo de dados 12 pode conter dois subfluxos únicos de canais e, portanto, dois elementos de estrutura de tipo canal único de elemento dentro de cada estrutura 20. As informações de configuração para ambos subfluxos pode, entretanto, ser ajustada diferentemente no fluxo contínuo de dados 12. Isto, por sua vez, significa que o codificador 24 da Fig. 1 está habilitado para definir diferentemente parâmetros de codificação dentro das informações de configuração para estes subfluxos diferentes e o decodificador de canal único 44b do decodificador 36 é controlado utilizando estes parâmetros de codificação diferentes ao decodificar estes dois subfluxos. isto também é verdade para os outros módulos de decodificação. Falando mais geralmente, o decodificador 36 é configurado para ler a sequência de elementos de configuração N 56 desde o bloco de configuração 28 e decodificar o elemento de estrutura in 22 de acordo com o tipo de elemento indicado pelo elemento de sintaxe ith 54, e utilizando as informações de configuração contidas pelo elemento de configuração ith 56.[0150] By transmitting a configuration element 56 for each element position 1...N in the configuration block 28, respectively, the data stream allows to differently configure structure elements belonging to the different substreams and element positions, respectively, but being of the same element type. For example, a data stream 12 may contain two single channel substreams and therefore two single channel element type structure elements within each structure 20. The configuration information for both substreams may, however, be set differently in the data stream 12. This, in turn, means that the encoder 24 of Fig. 1 is enabled to differently set coding parameters within the configuration information for these different substreams and the single channel decoder 44b of the decoder 36 is controlled using these different coding parameters when decoding these two substreams. This is also true for the other decoding modules. More generally speaking, the decoder 36 is configured to read the sequence of N configuration elements 56 from the configuration block 28 and decode the structure element 22 according to the element type indicated by the ith syntax element 54, and using the configuration information contained by the ith configuration element 56.
[0151] Para propósitos ilustrativos, assume-se na Fig. 3 que o segundo subfluxo, isto é, o subfluxo composto dos elementos de estrutura 22b ocorrendo na segunda posição de elemento dentro de cada estrutura 20, tem um tipo de elemento de subfluxo de extensão composto dos elementos de estrutura 22b do tipo de elemento de extensão. Naturalmente, isto é meramente ilustrativo.[0151] For illustrative purposes, it is assumed in Fig. 3 that the second subflow, i.e., the subflow composed of the structure elements 22b occurring at the second element position within each structure 20, has an extension subflow element type composed of the structure elements 22b of the extension element type. Naturally, this is merely illustrative.
[0152] Além disso, é apenas para propósitos ilustrativos que o fluxo contínuo de dados ou bloco de configuração 28 contém um elemento de configuração 56 por posição de elemento não respectivo ao tipo de elemento indicado por aquela posição de elemento por porção de sintaxe 52. De acordo com uma aplicação alternativa, por exemplo, pode haver um ou mais tipos de elemento para o qual nenhum elemento de configuração está contido pelo bloco de configuração 28 tal que, no último caso, o número de elementos de configuração 56 dentro do bloco de configuração 28 poder ser menor do que N dependendo do número de elementos de estrutura de tais tipos de elemento ocorrendo na porção da sintaxe 52 e estruturas 20, respectivamente.[0152] Furthermore, it is for illustrative purposes only that the data stream or configuration block 28 contains one configuration element 56 per element position not respective to the element type indicated by that element position per syntax portion 52. According to an alternative implementation, for example, there may be one or more element types for which no configuration element is contained by configuration block 28 such that, in the latter case, the number of configuration elements 56 within configuration block 28 may be less than N depending on the number of structure elements of such element types occurring in syntax portion 52 and structures 20, respectively.
[0153] Em qualquer caso, a Figura 3 mostra um exemplo adicional para a construção de elementos de configuração 56 concernente ao tipo de elemento de extensão. Na aplicação de sintaxe específica subsequentemente explicada, estes elementos de configuração 56 são denotados como UsacExtElementConfig. Somente para a conclusão, nota-se que na aplicação de sintaxe específica subsequentemente explicada, os elementos de configuração para outros tipos de elementos são denotados como UsacSingleChannelElementConfig, UsacChannelPairElementConfig e UsacLfeElementConfig.[0153] In any case, Figure 3 shows an additional example for the construction of configuration elements 56 concerning the extension element type. In the specific syntax application subsequently explained, these configuration elements 56 are denoted as UsacExtElementConfig. For completeness only, it is noted that in the specific syntax application subsequently explained, the configuration elements for other element types are denoted as UsacSingleChannelElementConfig, UsacChannelPairElementConfig and UsacLfeElementConfig.
[0154] Entretanto, antes da descrição de uma possível estrutura para o elemento de configuração 56 para o tipo de elemento de extensão, uma referência é feita para a parte da Figura 3 mostrando uma possível estrutura de um elemento de estrutura do tipo de elemento de extensão, aqui ilustrativamente o segundo elemento de estrutura 22b. Conforme mostrados aqui, os elementos estruturais do tipo de elemento de extensão podem compreender uma informação de comprimento 58 em um comprimento do respectivo elemento de estrutura 22b. O decodificador 36 é configurado para a leitura de cada elemento de estrutura 22b, do tipo de elemento de extensão de cada estrutura 20, desta informação de comprimento 58. Se o decodificador 36 não for capaz de, ou for instruído pelo usuário para não processar o fluxo contínuo de dados para o qual o elemento de estrutura do tipo de elemento de extensão pertence, o decodificador 36 ignora o elemento de estrutura 22b utilizando a informação de comprimento 58 como o comprimento do intervalo ignorado, ou seja, o comprimento da parte do fluxo contínuo de dados que será ignorado. Em outras palavras, o decodificador 36 pode usar a informação do comprimento 58 para computar o número de bytes ou qualquer outra medida adequada para a definição do comprimento do intervalo do fluxo contínuo de dados, que terá que ser ignorado até acessar ou visitar o próximo elemento de estrutura dentro da estrutura atual 20 ou do início da próxima estrutura 20 seguinte, de modo a prosseguir com a próxima leitura do fluxo contínuo de dados 12.[0154] However, before describing a possible structure for the configuration element 56 for the extension element type, reference is made to the part of Figure 3 showing a possible structure of a structure element of the extension element type, here illustratively the second structure element 22b. As shown here, the structural elements of the extension element type may comprise a length information 58 in a length of the respective structure element 22b. The decoder 36 is configured to read from each structure element 22b of the extension element type of each structure 20 this length information 58. If the decoder 36 is not able to, or is instructed by the user not to, process the data stream to which the structure element of the extension element type belongs, the decoder 36 skips the structure element 22b using the length information 58 as the length of the skipped interval, i.e. the length of the part of the data stream that will be skipped. In other words, the decoder 36 may use the length information 58 to compute the number of bytes or any other suitable measure for defining the length of the interval of the data stream that will have to be skipped until accessing or visiting the next frame element within the current frame 20 or the beginning of the next following frame 20 in order to proceed with the next reading of the data stream 12.
[0155] Como será descrito em maiores detalhes abaixo, os elementos estruturais do tipo de elemento da extensão podem ser configurados para a acomodação de extensões futuras e alternativas, ou o desenvolvimento do codec de áudio e, consequentemente, os elementos estruturais do tipo de elemento da extensão podem ter distribuições de comprimentos estatísticos diferentes. A fim de tirar vantagem da possibilidade de que, em conformidade com algumas aplicações, os elementos estruturais do tipo de elemento de extensão de certo subfluxos são de comprimento constante ou têm uma distribuição de comprimento estatístico bastante estreita, de acordo com algumas aplicações da presente aplicação, os elementos de configuração 56 para o tipo de elemento de extensão podem compreender a informação de comprimento de carga útil padrão 60 conforme mostrado na Figura 3. Naquele caso, é possível para os elementos estruturais 22b do tipo de elemento de extensão do respectivo fluxo contínuo de dados, referirem-se a esta informação de comprimento de carga útil 60 contida dentro do respectivo elemento de configuração 56 para a respectiva taxa de bits, ao invés de explicitamente transmitir o comprimento da carga útil. Especificamente, conforme mostrado na Figura 3, naquele caso, a informação de comprimento 58 pode compreender a porção de sintaxe condicional 62 na forma de sinalização de comprimento de carga útil de extensão padrão 64 seguida, se a sinalização do comprimento de carga útil padrão 64 não estiver definida, por um valor de comprimento de carga útil de extensão 66. Qualquer elemento de estrutura 22b do tipo de elemento de extensão tem um comprimento de carga útil de extensão padrão conforme indicado pela informação 60 no correspondente elemento de configuração 56 no caso de a sinalização de comprimento de carga útil de extensão padrão 64 da informação do comprimento 62 do respectivo elemento de estrutura 22b do tipo de elemento de extensão ser definida, e tem um comprimento de carga útil de extensão correspondente ao valor do comprimento da carga útil de extensão 66 da informação do comprimento 58 do respectivo elemento de estrutura 22b do tipo de elemento de extensão no caso de a sinalização de comprimento da carga útil de extensão padrão 64 da informação de comprimento 58 da respectiva estrutura 22b, do tipo de elemento de extensão não está definida. Ou seja, a codificação explícita do valor de comprimento da carga útil de extensão 66 pode ser evitada pelo codificador 24 sempre que possível, para meramente referir-se ao comprimento de carga útil de extensão padrão conforme indicado pela informação de comprimento de carga útil padrão 60 dentro do elemento de configuração 56 do fluxo contínuo de dados correspondente e uma posição do elemento, respectivamente. O decodificador 36 age como se segue. O mesmo lê a informação de comprimento da carga útil padrão 60 durante a leitura dos elementos de configuração 56. Ao ler os elementos estruturais 22b do fluxo contínuo de dados correspondente, o decodificador 36, na leitura da informação de comprimento destes elementos estruturais, lê a sinalização do comprimento da carga útil de extensão padrão 64 e verifica se o mesmo está definido ou não. Se a sinalização do comprimento da carga útil padrão 64 não estiver definida, o decodificador continua com a leitura do valor do comprimento de carga útil de extensão 66 da porção de sintaxe condicional 62 do fluxo contínuo de dados de modo a obter o comprimento da carga útil de extensão do respectivo elemento de estrutura. Entretanto, se a sinalização da carga útil padrão 64 estiver definida, o decodificador 36 define o comprimento da carga útil de extensão da respectiva estrutura que será igual ao comprimento da carga útil de extensão padrão como derivada da informação 60. Ignorar o decodificador 36 pode então envolver ignorar uma seção de carga útil 68 do elemento de estrutura atual utilizando o comprimento da carga útil de extensão recém-determinada como o comprimento de intervalo ignorado, ou seja, o comprimento de uma parte do fluxo contínuo de dados 12 que será ignorado de modo a acessar o próximo elemento de estrutura 22 da estrutura atual 20 ou do início da próxima estrutura 20.[0155] As will be described in greater detail below, the structural elements of the extension element type may be configured to accommodate future and alternative extensions or developments of the audio codec, and accordingly the structural elements of the extension element type may have different statistical length distributions. In order to take advantage of the possibility that, in accordance with some applications, the structural elements of the extension element type of certain substreams are of constant length or have a rather narrow statistical length distribution, in accordance with some applications of the present application, the configuration elements 56 for the extension element type may comprise standard payload length information 60 as shown in Figure 3. In that case, it is possible for the structural elements 22b of the extension element type of the respective data stream to refer to this payload length information 60 contained within the respective configuration element 56 for the respective bit rate, rather than explicitly transmitting the payload length. Specifically, as shown in Figure 3 , in that case, the length information 58 may comprise the conditional syntax portion 62 in the form of the default extension payload length flag 64 followed, if the default payload length flag 64 is not set, by an extension payload length value 66. Any structure element 22b of the extension element type has a default extension payload length as indicated by the information 60 in the corresponding configuration element 56 in the case that the default extension payload length flag 64 of the length information 62 of the respective structure element 22b of the extension element type is set, and has an extension payload length corresponding to the extension payload length value 66 of the length information 58 of the respective structure element 22b of the extension element type in the case that the default extension payload length flag 64 of the length information 58 of the respective structure 22b of the extension element type is not set. That is, explicit encoding of the length value of the extension payload 66 may be avoided by the encoder 24 whenever possible, to merely refer to the length of the standard extension payload as indicated by the length information of the standard payload 60 within the configuration element 56 of the corresponding data stream and an element position, respectively. The decoder 36 acts as follows. It reads the length information of the standard payload 60 while reading the configuration elements 56. When reading the structural elements 22b of the corresponding data stream, the decoder 36, in reading the length information of these structural elements, reads the length flag of the standard extension payload 64 and checks whether it is set or not. If the length flag of the standard payload 64 is not set, the decoder proceeds with reading the length value of the length of the extension payload 66 from the conditional syntax portion 62 of the data stream so as to obtain the length of the length of the extension payload of the respective structure element. However, if the default payload flag 64 is set, the decoder 36 sets the length of the extension payload of the respective frame to be equal to the length of the default extension payload as derived from information 60. Skipping the decoder 36 may then involve skipping a section of payload 68 of the current frame element using the newly determined length of the extension payload as the skipped interval length, i.e., the length of a portion of the continuous data stream 12 that will be skipped in order to access the next frame element 22 of the current frame 20 or the beginning of the next frame 20.
[0156] Por conseguinte, conforme descrito anteriormente, a transmissão repetida do tipo de estrutura do comprimento de carga útil dos elementos da estrutura de um tipo de elemento de extensão de certo subfluxo pode ser evitada utilizando um mecanismo de sinalização 64 sempre que a variedade do comprimento de carga útil destes elementos de estrutura for bastante baixo.[0156] Accordingly, as described above, repeated transmission of the payload length structure type of structure elements of a certain subflow extension element type may be avoided using a signaling mechanism 64 whenever the payload length variety of these structure elements is quite low.
[0157] Entretanto, uma vez que a priori não está claro se a carga útil transportada pelos elementos da estrutura de um tipo de elemento de extensão de certo subfluxo tem tal estatística concernente ao comprimento da carga útil dos elementos da estrutura, e consequentemente, se vale a pena transmitir o comprimento de carga útil padrão explicitamente no elemento de configuração de tal subfluxo dos elementos da estrutura do tipo de elemento de extensão, em conformidade com a aplicação adicional, a informação do comprimento da carga útil padrão 60 é também implementada por uma porção de sintaxe condicional compreendendo uma sinalização 60a chamada UsacExtElementDefaultLengthPresent no seguinte exemplo de sintaxe específica, e indicando se uma transmissão explicita do comprimento da carga útil padrão acontece ou não. Meramente se definida, a porção de sintaxe condicional compreende a transmissão explicita 60b do comprimento de carga útil padrão chamado UsacExtElementDefaultLength no seguinte exemplo de sintaxe específica. Em contrapartida, o comprimento de carga útil padrão é definido por padrão como 0. No último caso, o consumo de bit no fluxo contínuo de dados que é salvo como uma transmissão explicita do comprimento de carga útil padrão é evitado. Ou seja, o decodificador 36 (e o distribuidor 40, que é responsável por todos os procedimentos de leitura descritos anteriormente e doravante), pode ser configurado para, na leitura da informação do comprimento de carga útil padrão 60, ler uma sinalização presente no comprimento de carga útil padrão 60a do fluxo contínuo de dados 12, verificar se a sinalização presente no comprimento de carga útil padrão 60a está ou não definida, e se a sinalização presente no comprimento de carga útil padrão 60a está definida, definir o comprimento de carga útil de extensão padrão como zero, e se a sinalização presente no comprimento de carga útil padrão 60a não está definida, ler explicitamente o comprimento de carga útil de extensão padrão 60b do fluxo contínuo de dados 12 (a saber, o campo 60b seguindo a sinalização 60a).[0157] However, since it is not a priori clear whether the payload carried by the structure elements of an extension element type of a certain subflow has such statistics concerning the payload length of the structure elements, and consequently, whether it is worthwhile to transmit the default payload length explicitly in the configuration element of such a subflow of the structure elements of the extension element type, in accordance with the further implementation, the default payload length information 60 is also implemented by a conditional syntax portion comprising a flag 60a called UsacExtElementDefaultLengthPresent in the following specific syntax example, and indicating whether an explicit transmission of the default payload length takes place or not. Merely if defined, the conditional syntax portion comprises the explicit transmission 60b of the default payload length called UsacExtElementDefaultLength in the following specific syntax example. In contrast, the default payload length is set by default to 0. In the latter case, bit consumption in the data stream that is saved as an explicit transmission of the default payload length is avoided. That is, the decoder 36 (and the distributor 40, which is responsible for all the reading procedures described above and hereinafter), can be configured to, upon reading the information of the default payload length 60, read a flag present in the default payload length 60a of the data stream 12, check whether or not the flag present in the default payload length 60a is set, and if the flag present in the default payload length 60a is set, set the default extension payload length to zero, and if the flag present in the default payload length 60a is not set, explicitly read the default extension payload length 60b of the data stream 12 (namely, the field 60b following the flag 60a).
[0158] Além disso, ou alternativamente ao mecanismo de carga útil padrão, a informação de comprimento 58 pode compreender a uma sinalização presente na carga útil de extensão 60 da informação do comprimento 58 do qual não é definido, consiste meramente na sinalização presente na carga útil de extensão e é só. Ou seja, não há a seção da carga útil 68. Por outro lado, a informação de comprimento 58 de qualquer elemento de estrutura 22b do tipo de elemento de extensão, a sinalização presente nos dados de carga útil 70 da informação de comprimento 58 do qual é configurado, ademais compreende a uma porção de sintaxe 62 ou 66 indicando o comprimento de carga útil de extensão da respectiva estrutura 22b, ou seja, o comprimento de sua seção de carga útil 68. Além do mecanismo de comprimento de carga útil padrão, ou seja, em combinação com a sinalização do comprimento de carga útil de extensão padrão 64, a sinalização presente na carga útil de extensão 70 permite que cada elemento de estrutura do tipo de elemento de extensão com dois comprimentos de carga útil codificáveis efetivamente, a saber, 0 por um lado e comprimento de carga útil padrão, ou seja, o comprimento de carga útil mais provável, por outro lado.[0158] Additionally, or alternatively to the standard payload mechanism, the length information 58 may comprise a flag present in the extension payload 60 of which the length information 58 is not defined, merely consists of the flag present in the extension payload and that is it. That is, there is no payload section 68. On the other hand, the length information 58 of any structure element 22b of the extension element type, the flag present in the payload data 70 of the length information 58 of which is configured, further comprises a syntax portion 62 or 66 indicating the extension payload length of the respective structure 22b, i.e. the length of its payload section 68. In addition to the default payload length mechanism, i.e. in combination with the default extension payload length flag 64, the flag present in the extension payload 70 allows each structure element of the extension element type to have two effectively encodeable payload lengths, namely 0 on the one hand and default payload length, i.e. the most probable payload length, on the other hand.
[0159] Em análise ou leitura da informação do comprimento 58 do elemento de estrutura atual 22b do tipo de elemento de extensão, o decodificador 36 lê a sinalização presente na carga útil de extensão 70 do fluxo contínuo de dados 12, verifica se a sinalização presente na carga útil de extensão 70 está definida, e se a sinalização presente na carga útil de extensão 70 não está definida, para a leitura do respectivo elemento de estrutura 22b, e continua com outra leitura, o próximo elemento de estrutura 22 da estrutura atual 20 ou começa com a leitura ou análise da próxima estrutura 20. Considerando se a sinalização presente na carga útil 70 está definida, o decodificador 36 lê a porção da sintaxe 62 ou pelo menos a parte 66 (se a sinalização 64 for inexistente, uma vez que este mecanismo não está disponível) e ignora, se a carga útil do elemento de estrutura atual 22 tem que ser ignorado, a seção 68 utilizando o comprimento de carga útil de extensão do respectivo elemento de estrutura 22b do tipo de elemento de extensão como o comprimento de intervalo ignorado.[0159] In parsing or reading the information of the length 58 of the current structure element 22b of the extension element type, the decoder 36 reads the flag present in the extension payload 70 of the data stream 12, checks whether the flag present in the extension payload 70 is set, and if the flag present in the extension payload 70 is not set, stops reading the respective structure element 22b, and continues with another reading, the next structure element 22 of the current structure 20 or starts with the reading or parsing of the next structure 20. Considering whether the flag present in the payload 70 is set, the decoder 36 reads the syntax portion 62 or at least the part 66 (if the flag 64 is non-existent, since this mechanism is not available) and ignores, if the payload of the current structure element 22 has to be ignored, the section 68 using the extension payload length of the respective structure element 22b of the span element type as the ignored range length.
[0160] Conforme descrito acima, os elementos de estrutura do tipo de elemento de extensão podem ser fornecidos a fim de acomodar as extensões futuras do codec de áudio ou extensões alternativas para o qual o decodificador atual não é adequado, e consequentemente elementos de estrutura do tipo de elemento de extensão devem ser configuráveis. Especificamente, em conformidade com uma aplicação, o bloco de configuração 28 compreende, para cada posição do elemento para o qual a parte de indicação do tipo 52 indica o tipo de elemento de extensão, um elemento de configuração 56 compreendendo a informação de configuração para o tipo de elemento de extensão, caracterizado pela informação de configuração compreender, além de, ou alternativamente aos componentes destacados acima, um campo do tipo de elemento de extensão 72 indicando um tipo de dados de carga útil de uma pluralidade de tipos de dados de carga útil. A pluralidade dos tipos de dados de carga útil, de acordo com uma aplicação, compreende ao tipo de informação lateral multicanal e um tipo de informação lateral codificador de multi-objetos além de outros tipos de dados que são, por exemplo, reservados para desenvolvimentos futuros. Dependendo do tipo de dado da carga útil indicado, o elemento de configuração 56 abrange adicionalmente os dados de configuração específica do tipo de dado de carga útil. Consequentemente, os elementos de estrutura 22b na correspondente posição do elemento e do respectivo subfluxo, respectivamente, transporta em suas seções de carga útil 68 os dados de carga útil correspondentes ao tipo de dados de carga útil indicados. A fim de permitir uma adaptação do comprimento dos dados de configuração específicos do tipo de dado de carga útil 74 para o tipo de dados de carga útil, e de permitir uma reserva para desenvolvimentos futuros de tipos de dados de carga útil adicional, as aplicações de sintaxe específicas descritas abaixo apresentam os elementos de configuração 56 do tipo de elemento de extensão adicionalmente compreendendo um valor de comprimento do elemento de configuração chamado UsacExtElementConfigLength para que os decodificadores 36 que não são informados no tipo e dados de carga útil indicados para o subfluxo atual, são capazes de ignorar o elemento de configuração 56 e seus dados de configuração específicos do tipo de dados da carga útil 74 para acessar a parte imediatamente seguinte do fluxo contínuo de dados 12, tal como o elemento de sintaxe do tipo de elemento 54 da próxima posição de elemento (ou na aplicação alternativa não mostrada, o elemento de configuração da próxima posição do elemento) ou no início da primeira estrutura seguinte ao bloco de configuração 28 ou algum outro dado, como será mostrado respectivo à Figura 4a. Especificamente, na aplicação específica seguinte para uma sintaxe, os dados de configuração da informação lateral multicanal estão contidos em SpatialSpecificConfig, enquanto que os dados de configuração do tipo multi-objeto estão contidos dentro de SaocSpecificConfig.[0160] As described above, structure elements of the extension element type may be provided in order to accommodate future extensions of the audio codec or alternative extensions for which the current decoder is not suitable, and consequently structure elements of the extension element type should be configurable. Specifically, in accordance with an implementation, the configuration block 28 comprises, for each element position for which the type indicating part 52 indicates the extension element type, a configuration element 56 comprising configuration information for the extension element type, characterized in that the configuration information comprises, in addition to or alternatively to the components highlighted above, an extension element type field 72 indicating a payload data type from a plurality of payload data types. The plurality of payload data types, in accordance with an implementation, comprises a multi-channel side information type and a multi-object encoder side information type in addition to other data types that are, for example, reserved for future developments. Depending on the specified payload data type, the configuration element 56 additionally contains the specific configuration data of the payload data type. Accordingly, the structure elements 22b in the corresponding element position and the respective substream respectively carry in their payload sections 68 the payload data corresponding to the specified payload data type. In order to allow an adaptation of the length of the payload data type-specific configuration data 74 to the payload data type, and to allow a reserve for future developments of additional payload data types, the specific syntax implementations described below present the extension element type configuration elements 56 additionally comprising a configuration element length value called UsacExtElementConfigLength so that decoders 36 that are not informed on the indicated payload data type and data for the current substream, are able to bypass the configuration element 56 and its payload data type-specific configuration data 74 to access the immediately following part of the continuous data stream 12, such as the element type syntax element 54 of the next element position (or in the alternative implementation not shown, the configuration element of the next element position) or the beginning of the first structure following the configuration block 28 or some other data, as will be shown respective to Figure 4a. Specifically, in the following specific application for a syntax, the multi-channel side information configuration data is contained within SpatialSpecificConfig, while the multi-object type configuration data is contained within SaocSpecificConfig.
[0161] Em conformidade com o aspecto mais recente, o decodificador 36 seria configurado para, na leitura do bloco de configuração 28, realizar as seguintes etapas para cada posição de elemento ou subfluxo para o qual a parte de indicação do tipo 52 indica o tipo de elemento de extensão:[0161] In accordance with the latter aspect, the decoder 36 would be configured to, upon reading the configuration block 28, perform the following steps for each element or substream position for which the type indicating portion 52 indicates the extension element type:
[0162] Lendo o elemento de configuração 56, incluindo a leitura do campo do tipo de elemento de extensão 72 indicando o tipo de dado de carga útil da pluralidade dos tipos de dados de carga útil disponíveis,[0162] Reading the configuration element 56, including reading the extension element type field 72 indicating the payload data type of the plurality of available payload data types,
[0163] Se o campo do tipo de elemento de extensão 72 indicar o tipo de informação lateral multicanal, lendo os dados de configuração da informação lateral multicanal 74 como parte da informação de configuração a partir do fluxo contínuo de dados 12, e se o campo do tipo de elemento de extensão 72 indica o tipo de informação lateral do multi-objeto, lendo os dados de configuração da informação lateral do multi-objeto 74 como parte da informação de configuração do fluxo contínuo de dados 12.[0163] If the extension element type field 72 indicates the multi-channel side information type, reading the multi-channel side information configuration data 74 as part of the configuration information from the data stream 12, and if the extension element type field 72 indicates the multi-object side information type, reading the multi-object side information configuration data 74 as part of the configuration information from the data stream 12.
[0164] Então, ao decodificar os elementos de estrutura correspondente 22b, ou seja, aquelas da posição do elemento correspondente e do subfluxo, respectivamente, o decodificador 36 configuraria o decodificador multicanal 44e utilizando os dados de configuração de informação lateral do multicanal 74, enquanto alimenta o assim configurado decodificador multi-objeto 44d com os dados de carga útil 68 dos respectivos elementos de estrutura 22b como informação lateral do multicanal, no caso do tipo de dados de carga útil indicando o tipo de informação lateral do multicanal, e decodificar os elementos de estrutura 22b correspondentes configurando o decodificador multi-objeto 44d utilizando os dados de configuração da informação lateral do multi-objeto 74, e alimentando o assim configurado decodificador multi-objeto 44d com os dados de carga útil 68 do respectivo elemento de estrutura 22b, no caso do tipo de dados de carga útil indicando o tipo de informação lateral do multi-objeto.[0164] Then, when decoding the corresponding structure elements 22b, that is, those of the corresponding element position and the substream, respectively, the decoder 36 would configure the multi-channel decoder 44e using the multi-channel side information configuration data 74, while feeding the thus configured multi-object decoder 44d with the payload data 68 of the respective structure elements 22b as the multi-channel side information, in the case of the payload data type indicating the multi-channel side information type, and decode the corresponding structure elements 22b by configuring the multi-object decoder 44d using the multi-object side information configuration data 74, and feeding the thus configured multi-object decoder 44d with the payload data 68 of the respective structure element 22b, in the case of the payload data type indicating the multi-object side information type.
[0165] Entretanto, se um tipo de dado de carga útil desconhecido estiver indicado pelo campo 72, o decodificador 36 ignoraria os dados de configuração do tipo de dados de carga útil 74 utilizando a configuração supracitada do valor de comprimento de configuração também compreendido pelo elemento de configuração atual.[0165] However, if an unknown payload data type is indicated by field 72, decoder 36 would ignore the configuration data of payload data type 74 using the aforementioned configuration of the configuration length value also comprised by the current configuration element.
[0166] Por exemplo, o decodificador 36 poderia ser configurado para, por qualquer posição do elemento para o qual a parte de indicação do tipo 52 indica o tipo de elemento de extensão, ler um campo de comprimento de dados de configuração 76 a partir do fluxo contínuo de dados 12 como parte da informação de configuração do elemento de configuração 56 para a respectiva posição do elemento de modo a obter um comprimento de dados de configuração, e verifica se o tipo de dados de carga útil pelo campo do tipo de elemento de extensão 72 da informação de configuração do elemento de configuração para a respectiva posição do elemento, pertence ao conjunto predeterminado dos tipos de dados da carga útil, sendo um subconjunto da pluralidade dos tipos de dados de carga útil. Se o tipo de dados de carga útil indicados por um campo do tipo de elemento de extensão 72 da informação de configuração do elemento de configuração para a respectiva posição do elemento pertence ao conjunto predeterminado dos tipos de dados, o decodificador 36 leria os dados de carga útil dependendo dos dados de configuração 74 como parte das informações de configuração do elemento de configuração para a respectiva posição do elemento a partir do fluxo contínuo de dados 12, e decodifica os elementos de estrutura do tipo de elemento de extensão na respectiva posição do elemento nas estruturas 20, utilizando os dados de carga útil dependentes dos dados de configuração 74. Mas, se o tipo de dados de carga útil indicados pelo campo do tipo de elemento de extensão 72 da informação de configuração do elemento de configuração para a respectiva posição de elemento não pertence ao conjunto predeterminado de tipos de dados de carga útil, o decodificador irá ignorar os dados de carga útil de dados dependentes dos dados de configuração 74 utilizando o comprimento de dados de configuração, e ignorando os elementos de estrutura do tipo de elemento de extensão na respectiva posição do elemento de estrutura 20, utilizando a informação de comprimento de 58 no mesmo.[0166] For example, the decoder 36 could be configured to, for any element position for which the type indicating portion 52 indicates the extension element type, read a configuration data length field 76 from the data stream 12 as part of the configuration element configuration information 56 for the respective element position so as to obtain a configuration data length, and check whether the payload data type indicated by the extension element type field 72 of the configuration element configuration information for the respective element position belongs to the predetermined set of payload data types being a subset of the plurality of payload data types. If the payload data type indicated by an extension element type field 72 of the configuration information of the configuration element for the respective element position belongs to the predetermined set of data types, the decoder 36 would read the payload data depending on the configuration data 74 as part of the configuration information of the configuration element for the respective element position from the data stream 12, and decode the frame elements of the extension element type at the respective element position in the frames 20 using the payload data dependent on the configuration data 74. But, if the payload data type indicated by the extension element type field 72 of the configuration information of the configuration element for the respective element position does not belong to the predetermined set of payload data types, the decoder will ignore the payload data of data dependent on the configuration data 74 using the configuration data length, and ignore the frame elements of the extension element type at the respective frame element position 20. using the length information of 58 in it.
[0167] Além de, ou alternativamente aos mecanismos acima referidos, os elementos de estrutura de certo subfluxo podem ser configurados para serem transmitidos em fragmentos em vez de um em cada estrutura completa. Por exemplo, os elementos da configuração dos tipos de elemento de extensão poderiam compreender uma sinalização para o uso da fragmentação 78, o decodificador pode ser configurado para, na leitura de elementos de estrutura 22 posicionado em qualquer posição do elemento para o qual o tipo de indicação da parte indica o tipo de elemento de extensão, e para os quais a sinalização de uso para a fragmentação 78 do elemento de configuração é definida, ler um fragmento de informação 80 do fluxo contínuo de dados 12, e usa as informações do fragmento para colocar os dados de carga útil desses elementos de estrutura das estruturas consecutivas em conjunto. No seguinte exemplo de sintaxe específica, cada elemento de estrutura do tipo de extensão de um subfluxo para o qual a sinalização do uso para a fragmentação 78 é definida, compreende a um par de uma sinalização inicial indicando o início de uma carga útil do subfluxo e uma sinalização final indicando o final de um item de carga útil do subfluxo. Estas sinalizações são chamadas usacExtElementStart e usacExtElementStop no seguinte exemplo de sintaxe específica.[0167] In addition to, or alternatively to, the above mechanisms, the structure elements of a given substream may be configured to be transmitted in fragments rather than one in each complete frame. For example, the extension element type configuration elements could comprise a fragmentation usage flag 78, the decoder may be configured to, upon reading structure elements 22 positioned at any element position for which the chunk type indication indicates the extension element type, and for which the fragmentation usage flag 78 of the configuration element is defined, read an information fragment 80 from the continuous data stream 12, and use the fragment information to put the payload data of those structure elements of the consecutive frames together. In the following specific syntax example, each extension-type structure element of a subflow for which the usage flag for fragmentation 78 is defined comprises a pair of a start flag indicating the start of a payload of the subflow and an end flag indicating the end of a payload item of the subflow. These flags are called usacExtElementStart and usacExtElementStop in the following specific syntax example.
[0168] Ademais, além de, ou alternativamente ao mecanismo acima, o mesmo código de comprimento variável pode ser utilizado para ler a informação de comprimento 80, o campo de tipo de elemento de extensão 72, e o campo de comprimento de dados de configuração 76, assim diminuindo a complexidade para implementar o decodificador, por exemplo, e salvando os bits necessitando de bits adicionais meramente em raros casos de ocorrência, como os tipos de elementos de extensão futuras, comprimentos do tipo de elementos de extensão maiores e assim por diante. No exemplo específico explicado na sequência, este código VCL é derivável da Figura 4m.[0168] Furthermore, in addition to or alternatively to the above mechanism, the same variable length code may be used to read the length information 80, the extension element type field 72, and the configuration data length field 76, thus decreasing the complexity to implement the decoder, for example, and saving the bits requiring additional bits merely in rare occurrence cases, such as future extension element types, larger extension element type lengths, and so on. In the specific example explained below, this VCL code is derivable from Figure 4m.
[0169] Resumindo o mencionado acima, o seguinte pode ser aplicado para a funcionalidade do decodificador: (1) Leitura do bloco de configuração 28, e (2) Leitura /análise da sequência de estruturas 20. As etapas 1 e 2 são realizadas pelo decodificador 36 e, mais precisamente, o distribuidor 40. (3) Uma reconstrução do conteúdo de áudio é restringida para aqueles subfluxos, ou seja, para aquelas sequências de elementos de estruturas nas posições dos elementos, a decodificação da qual é suportada pelo decodificador 36. A etapa 3 é realizada dentro do decodificador 36, por exemplo, nos módulos de decodificação (vide Figura 2).[0169] Summarizing the above, the following can be applied to the functionality of the decoder: (1) Reading the configuration block 28, and (2) Reading/parsing the sequence of structures 20. Steps 1 and 2 are performed by the decoder 36 and, more precisely, the distributor 40. (3) A reconstruction of the audio content is restricted to those substreams, i.e., to those sequences of structure elements at the element positions, the decoding of which is supported by the decoder 36. Step 3 is performed within the decoder 36, for example, in the decoding modules (see Figure 2).
[0170] Consequentemente, na etapa 1 o decodificador 36 lê o número 50 do subfluxo e o número de elementos de estrutura 22 por estrutura 20, respectivamente, bem como a porção de sintaxe do elemento 52 revelando o tipo de elemento de cada um destes subfluxos e posições de elementos, respectivamente. Para a análise do fluxo contínuo de dados na etapa 2, o decodificador 36 então lê criticamente os elementos de estrutura 22 da sequencia de estruturas a partir do fluxo contínuo de dados 12. Ao fazê-lo, o decodificador 36 ignora os elementos de estrutura, ou as partes remanescentes/carga útil deste, utilizando as informações de comprimento 58 como tem sido descrito acima. Na terceira etapa, o decodificador 36 realiza a reconstrução decodificando os elementos da estrutura não tendo que ser ignorado.[0170] Accordingly, in step 1 the decoder 36 reads the substream number 50 and the number of structure elements 22 per structure 20, respectively, as well as the element syntax portion 52 revealing the element type of each of these substreams and element positions, respectively. For analysis of the data stream in step 2, the decoder 36 then critically reads the structure elements 22 of the sequence of structures from the data stream 12. In doing so, the decoder 36 ignores the structure elements, or the remaining parts/payload thereof, using the length information 58 as has been described above. In the third step, the decoder 36 performs reconstruction by decoding the structure elements not having to be ignored.
[0171] Ao decidir na etapa 2 qual das posições do elemento e do subfluxo serão ignoradas, o decodificador 36 pode inspecionar os elementos de configuração 56 dentro do bloco de configuração 28. A fim de fazê-lo, o decodificador 36 pode ser configurado para ler criticamente os elementos de configuração 56 a partir do bloco de configurações 28 do fluxo contínuo de dados 12 na mesma ordem utilizada para os indicadores do tipo de elemento 54, e os elementos de estrutura 22 em si. Conforme denotado acima, a leitura cíclica dos elementos de configuração 56 pode ser internivelada com a leitura cíclica dos elementos de sintaxe 54. Especificamente, o decodificador 36 pode inspecionar o campo do tipo de elemento de extensão 72 dentro dos elementos de configuração 56 dos subfluxos do tipo de elemento de extensão. Se o tipo de elemento de extensão não for um tipo suportado, o decodificador 36 ignora o subfluxo respectivo, e os elementos de estrutura 22 correspondente às respectivas posições dos elementos de estrutura dentro das estruturas 20.[0171] In deciding in step 2 which of the element and substream positions to ignore, the decoder 36 may inspect the configuration elements 56 within the configuration block 28. In order to do so, the decoder 36 may be configured to critically read the configuration elements 56 from the configuration block 28 of the data stream 12 in the same order as used for the element type indicators 54, and the structure elements 22 themselves. As denoted above, the cyclic reading of the configuration elements 56 may be interleveled with the cyclic reading of the syntax elements 54. Specifically, the decoder 36 may inspect the extension element type field 72 within the configuration elements 56 of the extension element type substreams. If the extension element type is not a supported type, the decoder 36 ignores the respective substream, and the structure elements 22 corresponding to the respective positions of the structure elements within the structures 20.
[0172] A fim de facilitar a taxa de bits necessária para a transmissão da informação do comprimento 58, o decodificador 36 é configurado para inspecionar os elementos de configuração 56 dos subfluxos do tipo de elementos de extensão, e especificamente a informação do comprimento de carga útil padrão 60 contida da etapa 1. Na segunda etapa, o decodificador 36 inspeciona a informação de comprimento 58 dos elementos de estrutura de extensão 22 que será ignorado. Especificamente, primeiro, o decodificador 36 inspeciona a sinalização 64. Se definido, o codificador 36 usa o comprimento padrão indicado para o respectivo subfluxo pela informação de comprimento de carga útil padrão 60, como o comprimento de carga útil remanescente que será ignorado a fim de continuar com a leitura/análise cíclica dos elementos de estrutura das estruturas. Se a sinalização 64, entretanto, não estiver definida, então o decodificador 36 lê explicitamente o comprimento de carga útil 66 do fluxo contínuo de dados 12. Embora não explicitamente explicado acima, deve-se deixar claro que o decodificador 36 pode derivar o número de bits ou bytes que será ignorado, a fim de acessar o próximo elemento de estrutura da estrutura atual ou da próxima estrutura por alguma computação adicional. Por exemplo, o decodificador 36 pode levar em consideração se o mecanismo de fragmentação está ativado ou não, conforme explicado acima com respeito à sinalização 78. Se estiver ativado, o decodificador 36 pode levar em consideração que os elementos da estrutura do subfluxo com o conjunto de sinalização 78, em qualquer caso, possuem a informação de fragmentação 80 e que, consequentemente, os dados de carga útil 68 começam mais tarde que deveriam no caso de a sinalização de fragmentação 78 não ser definida.[0172] In order to facilitate the bit rate required for transmission of the length information 58, the decoder 36 is configured to inspect the configuration elements 56 of the substreams of the type of extension elements, and specifically the default payload length information 60 contained in step 1. In the second step, the decoder 36 inspects the length information 58 of the extension structure elements 22 that will be ignored. Specifically, first, the decoder 36 inspects the signaling 64. If defined, the encoder 36 uses the default length indicated for the respective substream by the default payload length information 60 as the remaining payload length that will be ignored in order to continue with the cyclic reading/parsing of the structure elements of the structures. If flag 64, however, is not set, then decoder 36 explicitly reads the payload length 66 from the continuous data stream 12. Although not explicitly explained above, it should be made clear that decoder 36 may derive the number of bits or bytes that will be skipped in order to access the next structure element of the current or next structure by some additional computation. For example, decoder 36 may take into account whether the fragmentation mechanism is enabled or not, as explained above with respect to flag 78. If it is enabled, decoder 36 may take into account that the structure elements of the substream with flag 78 set in any case have fragmentation information 80 and that consequently the payload data 68 starts later than it would in the case that fragmentation flag 78 is not set.
[0173] Ao decodificar na etapa 3, o decodificador age como sempre: os seja, os subfluxos individuais são submetidos aos mecanismos de decodificação ou módulos de decodificação, conforme mostrado na Figura 2, caracterizado por alguns subfluxos poderem formar as informações laterais para outros subfluxos, como tem sido explicado acima com respeito aos exemplos específicos dos subfluxos de extensão.[0173] When decoding in step 3, the decoder acts as usual: that is, the individual substreams are subjected to the decoding engines or decoding modules as shown in Figure 2, characterized in that some substreams can form the side information for other substreams, as has been explained above with respect to the specific examples of extension substreams.
[0174] Com respeito a outros possíveis detalhes concernentes à funcionalidade dos decodificadores, é feita uma referência à discussão acima. Somente para a conclusão, nota-se que o decodificador 36 pode ignorar a análise adicional dos elementos de configuração 56 na etapa 1, a saber, para aquelas posições de elementos que serão ignorados, por exemplo, o tipo de elemento de extensão indicado pelo campo 72 não é adequado para um conjunto suportado de tipos de elemento de extensão. Então, o decodificador 36 pode usar a informação do comprimento de configuração 76 a fim de ignorar os respectivos elementos de configuração em leitura/análise cíclicas nos elementos de configuração 56, ou seja, ignorando o número respectivo de bits/bytes a fim de acessar o próximo elemento de sintaxe do fluxo contínuo de dados tal como o indicador 54 da próxima posição do elemento.[0174] With respect to other possible details concerning the functionality of the decoders, reference is made to the above discussion. For the sake of completeness only, it is noted that the decoder 36 may skip further parsing of the configuration elements 56 in step 1, namely for those element positions that will be skipped, e.g. the extension element type indicated by field 72 is not suitable for a supported set of extension element types. Then, the decoder 36 may use the configuration length information 76 in order to skip respective configuration elements in cyclic reading/parsing in the configuration elements 56, i.e. skipping the respective number of bits/bytes in order to access the next syntax element of the continuous data stream such as the next element position indicator 54.
[0175] Antes de prosseguir com a aplicação de sintaxe específica mencionada acima, deve-se notar que a presente invenção não se restringe a ser implementada com o discurso unificado e a codificação de áudio e suas facetas, como a comutação de codificação do núcleo, utilizando uma mistura ou uma comutação entre a codificação do domínio de frequências tipo AAC e a codificação LP utilizando a codificação paramétrica (ACELP) e a codificação de transformação (TCX). Ao invés disso, os subfluxos mencionados acima representam os sinais de áudio utilizando qualquer esquema de codificação. Além disso, embora na aplicação de sintaxe específica descrita abaixo seja assumido que o SBR é uma opção de codificação do codec principal utilizado para representar os sinais de áudio utilizando um único canal e subfluxos do tipo de elemento de canal duplo, o SBR pode também não ser uma possibilidade dos últimos tipos de elementos, mas meramente utilizável utilizando tipos de elementos de extensão.[0175] Before proceeding with the specific syntax application mentioned above, it should be noted that the present invention is not restricted to be implemented with unified speech and audio coding and its facets, such as core coding switching using a mixture or switching between AAC-type frequency domain coding and LP coding using parametric coding (ACELP) and transform coding (TCX). Rather, the above-mentioned substreams represent audio signals using any coding scheme. Furthermore, although in the specific syntax application described below it is assumed that SBR is an coding option of the main codec used to represent audio signals using single channel and dual channel element type substreams, SBR may also not be a possibility of the latter element types, but merely usable using extension element types.
[0176] Na sequência, exemplo de sintaxe específica para o fluxo contínuo de dados 12 é explicado. Deve-se notar que o exemplo de sintaxe específica representa uma possível implementação para a aplicação da Figura 3, e em conformidade entre os elementos de sintaxe da sintaxe seguinte e a estrutura do fluxo contínuo de dados da Figura 3 é indicado ou derivável das respectivas observações na Figura 3, bem como a descrição da Figura 3. Os aspectos básicos do seguinte exemplo específico são destacados agora: A este respeito, deve-se notar que nenhum detalhe adicional além daqueles já descritos acima com respeito à Figura 3 não são para ser entendidos como uma possível extensão da aplicação da Figura 3. Todas estas extensões podem ser construídas individualmente dentro da aplicação da Figura 3. Como uma última nota preliminar, há que se entender que o exemplo de sintaxe específica descrito abaixo se refere explicitamente ao ambiente do decodificador e do codificador das Figuras 5a e 5b, respectivamente.[0176] In the following, a specific syntax example for the data stream 12 is explained. It should be noted that the specific syntax example represents a possible implementation for the application of Figure 3, and the correspondence between the syntax elements of the following syntax and the structure of the data stream of Figure 3 is indicated or derivable from the respective observations in Figure 3, as well as the description of Figure 3. The basic aspects of the following specific example are now highlighted: In this regard, it should be noted that any additional details beyond those already described above with respect to Figure 3 are not to be understood as a possible extension of the application of Figure 3. All these extensions can be individually constructed within the application of Figure 3. As a final preliminary note, it should be understood that the specific syntax example described below explicitly refers to the decoder and encoder environment of Figures 5a and 5b, respectively.
[0177] Informações de alto nível, como a taxa de amostragem, configuração exata do canal, sobre o conteúdo de áudio contido está presente no fluxo contínuo de dados do áudio. Isso torna o fluxo contínuo de dados mais autocontidos e torna o transporte da configuração e a carga útil mais fácil quando integradas nos esquemas de transporte, que pode não ter meios para transmitir explicitamente esta informação.[0177] High-level information, such as the sample rate, exact channel configuration, about the contained audio content is present in the audio data stream. This makes the data stream more self-contained and makes transport of the configuration and payload easier when integrated into transport schemes, which may not have means to explicitly convey this information.
[0178] A estrutura de configuração contém um comprimento de estrutura combinada e um índice de relação de taxa de amostragem SBR (coreSbrFrameLengthIndex). Isso garante a transmissão eficiente de ambos os valores e certifica que combinações não significativas de comprimento de estrutura e taxa de SBR não podem ser sinalizados. Este último simplifica a implementação de um decodificador.[0178] The configuration structure contains a combined frame length and an SBR sampling rate ratio index (coreSbrFrameLengthIndex). This ensures efficient transmission of both values and ensures that non-meaningful combinations of frame length and SBR rate cannot be signaled. The latter simplifies the implementation of a decoder.
[0179] A configuração pode ser estendida por meio de um mecanismo de extensão de configuração específica. Isto irá evitar a transmissão volumosa e ineficiente das extensões de configuração tal como conhecidas a partir do MPEG-4 AudioSpecificConfig().[0179] The configuration may be extended by means of a specific configuration extension mechanism. This will avoid the bulky and inefficient transmission of configuration extensions as known from MPEG-4 AudioSpecificConfig().
[0180] A configuração permite a sinalização livre das posições dos alto-falantes associadas a cada canal de áudio transmitido. A sinalização de canal comumente utilizada para o mapeamentos dos alto-falantes pode ser eficientemente sinalizada por meio de um channelConfigurationIndex.[0180] The configuration allows for free signaling of the speaker positions associated with each transmitted audio channel. The channel signaling commonly used for speaker mappings can be efficiently signaled via a channelConfigurationIndex.
[0181] A configuração de cada elemento de canal está contida numa estrutura separada de tal modo, que cada elemento de canal pode ser configurado de forma independente.[0181] The configuration of each channel element is contained in a separate structure such that each channel element can be configured independently.
[0182] Dados de configuração do SBR (o “cabeçalho SBR”) são divididos em um SbrInfo() e um SbrHeader(). Para o SbrHeader(), uma versão padrão é definida (SbrDfltHeader()), que pode ser eficientemente referenciada no fluxo contínuo de dados. Isto reduz a demanda de bit em locais onde é necessária a retransmissão de dados de configuração SBR.[0182] SBR configuration data (the “SBR header”) is split into an SbrInfo() and an SbrHeader(). For the SbrHeader(), a standard version is defined (SbrDfltHeader()), which can be efficiently referenced in the data stream. This reduces bit demand at locations where retransmission of SBR configuration data is required.
[0183] Alterações de configuração mais comumente aplicadas ao SBR podem ser eficientemente sinalizadas, com a ajuda do elemento de sintaxe SbrInfo().[0183] Configuration changes most commonly applied to SBR can be efficiently signaled with the help of the SbrInfo() syntax element.
[0184] A configuração para a extensão da largura de banda paramétrica (SBR) e as ferramentas de codificação estéreo paramétricas (MPS212, também conhecidas como MPEG Surround 2-1-2) estão totalmente integradas na estrutura de configuração USAC. Isto representa muito melhor a forma que ambas as tecnologias são efetivamente empregadas na norma.[0184] The configuration for parametric bandwidth extension (SBR) and parametric stereo coding tools (MPS212, also known as MPEG Surround 2-1-2) are fully integrated into the USAC configuration framework. This better represents how both technologies are actually employed in the standard.
[0185] A sintaxe tem um mecanismo de extensão que permite a transmissão de extensões existentes e futuras ao codec.[0185] The syntax has an extension mechanism that allows existing and future extensions to be passed to the codec.
[0186] As extensões podem estar colocadas (ou seja, intercaladas) com os elementos de canal em qualquer ordem. Isto permite as extensões sejam lidas antes ou depois de um elemento de canal específico a qual a extensão deve ser aplicada.[0186] Extensions may be placed (i.e. interleaved) with the channel elements in any order. This allows extensions to be read before or after a specific channel element to which the extension is to be applied.
[0187] Um comprimento padrão pode ser definido por uma extensão de sintaxe, o que torna a transmissão de extensões de comprimento constante muito eficiente, porque o comprimento da extensão de carga útil não precisa ser transmitido toda vez.[0187] A default length can be defined by a syntax extension, which makes transmitting constant length extensions very efficient, because the length of the payload extension does not need to be transmitted every time.
[0188] O caso mais comum de sinalização de um valor com a ajuda de um mecanismo de fuga para estender o intervalo de valores, se necessário, foi modularizado em um elemento de sintaxe genuíno específico (escapedValue()), que é flexível o suficiente para cobrir todas as constelações de valor de fuga desejadas, e as extensões de campos de bits . Configuração de Fluxo Contínuo de Dados UsacConfig() (Fig. 4a)[0188] The most common case of signaling a value with the help of an escape mechanism to extend the value range if necessary has been modularized into a specific genuine syntax element (escapedValue()), which is flexible enough to cover all desired escape value constellations, and bit field extensions. Data Stream Configuration UsacConfig() (Fig. 4a)
[0189] O UsacConfig() foi estendido para conter informações sobre o conteúdo de áudio contido, bem como tudo o necessário para a configuração completa do decodificador. As informações de alto nível sobre o áudio (taxa de amostragem, configuração do canal, saída de comprimento de estrutura) são recolhidas no início para facilitar o acesso das camadas mais altas (de aplicação). UsacChannelConfig() (Fig. 4b)[0189] UsacConfig() has been extended to contain information about the contained audio content, as well as everything needed for full decoder configuration. High-level information about the audio (sampling rate, channel configuration, output frame length) is gathered at the beginning to facilitate access from higher (application) layers. UsacChannelConfig() (Fig. 4b)
[0190] Estes elementos fornecem informações sobre os elementos do fluxo contínuo de dados contidos e seu mapeamento para os alto-falantes. O channelConfigurationIndex permite uma forma fácil e conveniente de sinalização de uma de uma série de configurações mono, estéreo ou multicanal predefinidas que foram consideradas praticamente relevantes.[0190] These elements provide information about the elements of the contained data stream and their mapping to the loudspeakers. The channelConfigurationIndex allows an easy and convenient way of signaling one of a number of predefined mono, stereo or multichannel configurations that have been found to be practically relevant.
[0191] Para configurações mais elaboradas que não são abrangidas pelo channelConfigurationIndex o UsacChannelConfig() permite a atribuição livre de elementos para a posição de alto- falante de uma lista de 32 posições de alto-falante, que cobrem todas as posições de alto-falante atualmente conhecidas em todas as configurações conhecidas de alto-falante para casa ou de reprodução de som de cinema.[0191] For more elaborate configurations that are not covered by channelConfigurationIndex UsacChannelConfig() allows free assignment of elements to the speaker position from a list of 32 speaker positions, which cover all currently known speaker positions in all known speaker configurations for home or cinema sound reproduction.
[0192] Esta lista de posições de alto-falante é um superconjunto da lista apresentada no Padrão MPEG Surround (ver Tabela 1 e Figura 1 em ISO/IEC 23003-1). Quatro posições das colunas foram adicionadas para conseguirem cobrir a configuração recentemente introduzida de alto-falantes 22,2 (vide Figuras 3a, 3b, 4a e 4b). UsacDecoderConfig() (Fig. 4c)[0192] This list of speaker positions is a superset of the list given in the MPEG Surround Standard (see Table 1 and Figure 1 in ISO/IEC 23003-1). Four speaker positions have been added to cover the newly introduced 22.2 speaker configuration (see Figures 3a, 3b, 4a and 4b). UsacDecoderConfig() (Fig. 4c)
[0193] Este elemento é o centro da configuração do decodificador e, como tal, contém todas as outras informações necessárias pelo decodificador para interpretar o fluxo contínuo de dados.[0193] This element is the heart of the decoder configuration and as such contains all other information needed by the decoder to interpret the continuous data stream.
[0194] Especificamente, a estrutura do fluxo contínuo de dados é aqui definida explicitando o número de elementos e a sua ordem no fluxo contínuo de dados.[0194] Specifically, the structure of the data stream is defined here by explicitly stating the number of elements and their order in the data stream.
[0195] Um circuito sobre todos os elementos, em seguida, permite a configuração de todos os elementos de todos os tipos (simples, duplo, lfe, extensão). UsacConfigExtension() (Fig. 4l)[0195] A circuit over all elements then allows the configuration of all elements of all types (single, double, lfe, extension). UsacConfigExtension() (Fig. 4l)
[0196] Para considerar as futuras extensões, a configuração possui um poderoso mecanismo para estender a configuração de extensões de configuração ainda não existentes para USAC. UsacSingleChannelElementConfig() (Fig. 4d)[0196] To consider future extensions, the configuration has a powerful mechanism to extend the configuration of configuration extensions not yet existing for USAC. UsacSingleChannelElementConfig() (Fig. 4d)
[0197] Esta configuração de elemento contém todas as informações necessárias para configurar o decodificador para decodificar um canal simples. Isto é, essencialmente, a informação relacionada com o codificador de núcleo e, se for utilizado o SBR, a informação relacionada com o SBR. UsacChannelPairElementConfig() (Fig. 4e)[0197] This element configuration contains all the information needed to configure the decoder to decode a single channel. This is essentially the information related to the core encoder and, if SBR is used, the information related to SBR. UsacChannelPairElementConfig() (Fig. 4e)
[0198] Analogamente ao previsto acima, esta configuração de elemento contém todas as informações necessárias para configurar o decodificador para decodificar um canal duplo. Além da configuração do núcleo acima mencionada e da configuração SBR, inclui as configurações específicas estéreo, como o tipo exato de codificação estéreo aplicada (com ou sem MPS212, residual, etc.) Note-se que este elemento abrange todos os tipos de opções de codificação estéreo disponíveis no USAC. UsacLfeElementConfig() (Fig. 4f)[0198] Analogously to the above, this element configuration contains all the information needed to configure the decoder to decode a dual channel. In addition to the above-mentioned core configuration and the SBR configuration, it includes stereo-specific settings such as the exact type of stereo encoding applied (with or without MPS212, residual, etc.). Note that this element covers all types of stereo encoding options available in USAC. UsacLfeElementConfig() (Fig. 4f)
[0199] A configuração do elemento LFE não contém dados de configuração como um elemento LFE tem uma configuração estática. UsacExtElementConfig() (Fig. 4k)[0199] The LFE element configuration does not contain configuration data as an LFE element has a static configuration. UsacExtElementConfig() (Fig. 4k)
[0200] Esta configuração do elemento pode ser utilizada para qualquer tipo de configuração de extensões existentes ou futuras para o codec. Cada tipo de elemento de extensão tem o seu próprio valor ID específico. Um campo de comprimento é incluído a fim de poder convenientemente ignorar as extensões de configuração desconhecidas para o decodificador. A definição opcional de um comprimento de carga útil padrão aumenta ainda mais a eficiência de codificação de extensão de carga útil presente no fluxo contínuo de dados real.[0200] This element configuration can be used for any type of existing or future extension configuration for the codec. Each extension element type has its own specific ID value. A length field is included in order to conveniently ignore configuration extensions unknown to the decoder. Optionally defining a default payload length further increases the efficiency of encoding the payload extension present in the actual data stream.
[0201] Extensões que já estão previstas para serem combinadas com USAC incluem: MPEG Surround, SAOC, e algum tipo de elemento FIL como é conhecido a partir de MPEG-4 AAC. UsacCoreConfig() (Fig. 4g)[0201] Extensions that are already planned to be combined with USAC include: MPEG Surround, SAOC, and some kind of FIL element as known from MPEG-4 AAC. UsacCoreConfig() (Fig. 4g)
[0202] Este elemento contém dados de configuração que tem impacto sobre a configuração do codificador do núcleo. Atualmente, estes são comutadores para a ferramenta de distorção de tempo e a ferramenta de preenchimento de ruído. SbrConfig() (Fig. 4h)[0202] This element contains configuration data that impacts the core encoder configuration. Currently, these are switches for the time warp tool and the noise fill tool. SbrConfig() (Fig. 4h)
[0203] A fim de reduzir a sobrecarga de bits produzida pela frequente retransmissão do sbr_header(), os valores padrão para os elementos da sbr_header(), que são normalmente mantidos constantes, são agora realizados no elemento de configuração SbrDfltHeader(). Além disso, os elementos de configuração SBR estáticos também são realizados no SbrConfig(). Estes bits estáticos incluem sinalizadores de recursos de ativação ou desativação específicos do SBR avançados, como a transposição harmônica ou Inter TES. SbrDfltHeader() (Fig. 4i)[0203] In order to reduce the bit overhead produced by frequent retransmission of sbr_header(), default values for sbr_header() elements, which are normally kept constant, are now realized in the SbrDfltHeader() configuration element. In addition, static SBR configuration elements are also realized in SbrConfig(). These static bits include flags for enabling or disabling advanced SBR-specific features, such as harmonic transposition or Inter TES. SbrDfltHeader() (Fig. 4i)
[0204] Este leva os elementos do sbr_header() que são tipicamente mantidos constantes. Elementos que afetam coisas como a resolução de amplitude, banda de intersecção, o espectro de pré- nivelamento, agora são realizados em SbrInfo(), que permite que sejam eficientemente alterados na viagem. Mps212Config() (Fig. 4j)[0204] This takes the elements of sbr_header() that are typically held constant. Elements that affect things like amplitude resolution, intersection bandwidth, and pre-leveling spectrum are now held in SbrInfo(), which allows them to be efficiently changed on the fly. Mps212Config() (Fig. 4j)
[0205] Semelhante à configuração SBR acima, todos os parâmetros de configuração para as ferramentas do MPEG Surround 21-2 são montados nesta configuração. Todos os elementos de SpatialSpecificConfig() que não são relevantes ou redundantes neste contexto, foram removidos. Carga Útil do fluxo contínuo de dados UsacFrame() (Fig. 4n)[0205] Similar to the SBR configuration above, all configuration parameters for the MPEG Surround 21-2 tools are assembled in this configuration. All elements of SpatialSpecificConfig() that are not relevant or redundant in this context have been removed. UsacFrame() Data Stream Payload (Fig. 4n)
[0206] Este é o invólucro mais afastado em torno do fluxo contínuo de dados de carga útil USAC e representa uma unidade de acesso USAC. Ele contém um circuito sobre todos os elementos constantes do canal e os elementos de extensão, conforme consta em parte de configuração. Isso torna o formato do fluxo contínuo de dados muito mais flexível em termos do que pode conter, e é à prova de futuro para qualquer extensão futura. UsacSingleChannelElement() (Fig. 4o)[0206] This is the outermost wrapper around the USAC payload data stream and represents a USAC access unit. It contains circuitry over all the constant channel elements and the extension elements as stated in the configuration part. This makes the data stream format much more flexible in terms of what it can contain, and is future-proof for any future extensions. UsacSingleChannelElement() (Fig. 4o)
[0207] Este elemento contém todos os dados para decodificar um fluxo mono. O conteúdo é dividido em uma parte relacionada com o codificador do núcleo e uma parte relacionada com o ESBR. O último é agora muito mais proximamente ligado ao núcleo, o que reflete também muito melhor a ordem em que os dados são necessários pelo decodificador. UsacChannelPairElement() (Fig. 4p)[0207] This element contains all the data for decoding a mono stream. The content is split into a core encoder-related part and a ESBR-related part. The latter is now much more closely coupled to the core, which also reflects much better the order in which the data is needed by the decoder. UsacChannelPairElement() (Fig. 4p)
[0208] Este elemento compreende os dados de todas as maneiras possíveis para codificar um estéreo duplo. Especificamente, todos os tipos de codificação estéreo unificada são cobertos, variando de codificação com base no legado M/S para a codificação paramétrica estéreo completa com a ajuda de MPEG Surround 2-1-2. O stereoConfigIndex indica que o tipo é realmente utilizado. Os dados eSBR apropriados e os dados do MPEG Surround 2-1-2 são enviados neste elemento. UsacLfeElement() (Fig. 4q)[0208] This element comprises data for all possible ways to encode dual stereo. Specifically, all types of unified stereo coding are covered, ranging from legacy M/S-based coding to full parametric stereo coding with the help of MPEG Surround 2-1-2. The stereoConfigIndex indicates which type is actually used. The appropriate eSBR data and MPEG Surround 2-1-2 data are sent in this element. UsacLfeElement() (Fig. 4q)
[0209] O antigo lfe_channel_element() foi renomeado apenas para seguir um esquema de nomes consistente. UsacExtElement() (Fig. 4r)[0209] The old lfe_channel_element() has been renamed just to follow a consistent naming scheme. UsacExtElement() (Fig. 4r)
[0210] O elemento de extensão foi cuidadosamente concebido para ser capaz de ser maximamente flexível, mas ao mesmo tempo, maximamente eficaz, mesmo para as extensões que possuem uma pequena carga útil (ou frequentemente nenhuma). O comprimento de carga útil de extensão é sinalizado para os decodificadores néscios ignorá-lo. Extensões definidas pelo usuário podem ser sinalizadas por meio de uma gama de tipos de extensão reservadas. As extensões podem ser colocadas livremente na ordem dos elementos. Uma gama de elementos de extensão já foi considerada, incluindo um mecanismo para escrever bytes de preenchimento. UsacCoreCoderData() (Fig. 4s)[0210] The extension element has been carefully designed to be maximally flexible, yet maximally performant, even for extensions that have a small payload (or often none at all). The length of the extension payload is flagged to foolish decoders to ignore it. User-defined extensions can be flagged via a range of reserved extension types. Extensions can be placed freely in the element order. A range of extension elements have already been considered, including a mechanism for writing padding bytes. UsacCoreCoderData() (Fig. 4s)
[0211] Este novo elemento resume todas as informações que afetam os codificadores do núcleo e, portanto, também contém as informações do fd_channel_stream() e do lpd_channel_stream (). StereoCoreToolInfo() (Fig. 4t)[0211] This new element summarizes all the information affecting the core encoders and therefore also contains the information from fd_channel_stream() and lpd_channel_stream(). StereoCoreToolInfo() (Fig. 4t)
[0212] Para facilitar a legibilidade da sintaxe, todas as informações relacionadas ao estéreo foram capturadas neste elemento. Ele lida com as inúmeras dependências de bits nos modos de codificação estéreo. UsacSbrData() (Fig. 4x)[0212] To facilitate syntax readability, all stereo-related information has been captured in this element. It handles the numerous bit dependencies in stereo encoding modes. UsacSbrData() (Fig. 4x)
[0213] A funcionalidade e o legado CRC dos elementos descritivos de codificação de áudio escaláveis foram retirados do que costumava ser o elemento sbr_extension_data(). A fim de reduzir a sobrecarga causada pelos frequentes reenvio de informação de SBR e dos dados de cabeçalho, a presença destes pode ser explicitamente sinalizada. SbrInfo() (Fig. 4y)[0213] The functionality and legacy CRC of the scalable audio coding descriptive elements has been removed from what used to be the sbr_extension_data() element. In order to reduce the overhead caused by frequently resending SBR information and header data, their presence can be explicitly signaled. SbrInfo() (Fig. 4y)
[0214] Dados de configuração SBR que são frequentemente alterados na viagem. Isto inclui elementos que controlam coisas como resolução de amplitude, banda de intersecção, espectro de pré- nivelamento, que anteriormente exigiam a transmissão de um sbr_header() completo. (vide 6.3 em [N11660], “Eficiência”). SbrHeader() (Fig. 4z)[0214] SBR configuration data that is frequently changed on the fly. This includes elements that control things like amplitude resolution, intersection bandwidth, pre-leveling spectrum, which previously required the transmission of a full sbr_header(). (see 6.3 in [N11660], “Efficiency”). SbrHeader() (Fig. 4z)
[0215] A fim de manter a capacidade do SBR para alterar os valores em sbr_header() em funcionamento, agora é possível efetuar um SbrHeader() dentro do UsacSbrData(), no caso de outros valores do que aqueles enviados em SbrDfltHeader(), terem que ser usados. O mecanismo bs_header_extra foi mantido, a fim de manter a sobrecarga tão baixa quanto possível para os casos mais comuns. sbr_data() (Fig. 4za)[0215] In order to keep SBR's ability to change values in sbr_header() working, it is now possible to perform a SbrHeader() inside UsacSbrData(), in case other values than those sent in SbrDfltHeader() need to be used. The bs_header_extra mechanism has been kept, in order to keep the overhead as low as possible for the most common cases. sbr_data() (Fig. 4za)
[0216] Mais uma vez, restos de codificação escaláveis SBR foram removidos porque não são aplicáveis no contexto USAC. Dependendo do número de canais a sbr_data() contém um sbr_single_channel_element() ou um sbr_channel_pair_element(). usacSamplingFrequencyIndex[0216] Again, SBR scalable encoding remainders have been removed because they are not applicable in the USAC context. Depending on the number of channels sbr_data() contains either a sbr_single_channel_element() or a sbr_channel_pair_element(). usacSamplingFrequencyIndex
[0217] Esta tabela é um superconjunto da tabela utilizada no MPEG-4 para indicar a frequência de amostragem do codec de áudio. A tabela foi estendida para abranger também as taxas de amostragem que são utilizadas atualmente nos modos de operação USAC. Alguns múltiplos das frequências de amostragem também foram adicionados. channelConfigurationIndex[0217] This table is a superset of the table used in MPEG-4 to indicate the sampling frequency of the audio codec. The table has been extended to also cover the sampling rates that are currently used in USAC operating modes. Some multiples of the sampling frequencies have also been added. channelConfigurationIndex
[0218] Esta tabela é um superconjunto da tabela utilizada em MPEG-4 para sinalizar o channelConfiguration. Foi estendido para permitir a sinalização de futuras instalações visionadas de alto- falantes comumente usados. O índice nesta tabela é sinalizado com 5 bits para permitir futuras extensões. usacElementType[0218] This table is a superset of the table used in MPEG-4 to signal the channelConfiguration. It has been extended to allow signaling of future viewing installations of commonly used loudspeakers. The index into this table is signaled with 5 bits to allow future extensions. usacElementType
[0219] Só existem 4 tipos de elementos. Um para cada um dos quatro elementos de fluxo contínuo de dados básicos: UsacSingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(), UsacExtElement(). Estes elementos fornecem a estrutura de alto nível necessária, mantendo toda a flexibilidade necessária. usacExtElementType[0219] There are only 4 element types. One for each of the four basic data stream elements: UsacSingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(), UsacExtElement(). These elements provide the necessary high-level structure while maintaining all the necessary flexibility. usacExtElementType
[0220] Dentro do UsacExtElement(), este elemento permite a sinalização de uma multiplicidade de extensões. A fim de ser à prova de futuro, foi escolhido o campo de bit grande o suficiente para permitir todas as extensões possíveis. Fora das extensões conhecidas atualmente, já poucos se propõem a ser considerados: elemento de preenchimento, MPEG Surround, e SAOC. usacConfigExtType[0220] Within UsacExtElement(), this element allows signaling of a multitude of extensions. In order to be future-proof, the bit field was chosen large enough to allow all possible extensions. Out of the currently known extensions, a few are already proposed for consideration: padding element, MPEG Surround, and SAOC. usacConfigExtType
[0221] Caso em algum ponto seja necessário prolongar a configuração, então esta pode ser tratada por meio do UsacConfigExtension() que iria então permitir atribuir um tipo para cada nova configuração. Atualmente, o único tipo que pode ser sinalizado é um mecanismo de preenchimento para a configuração. coreSbrFrameLengthIndex[0221] Should it be necessary at some point to extend the configuration, then this can be handled via UsacConfigExtension() which would then allow a type to be assigned to each new configuration. Currently the only type that can be flagged is a padding mechanism for the configuration. coreSbrFrameLengthIndex
[0222] Esta tabela deve sinalizar aspectos da configuração múltiplas do decodificador. Especificamente, estes são o comprimento de estrutura de saída, o intervalo do SBR e do comprimento da estrutura do codificador do núcleo resultante (CCFL). Ao mesmo tempo, indica o número de análise QMF e as bandas de síntese utilizadas em SBR stereoConfigIndex[0222] This table shall flag multiple configuration aspects of the decoder. Specifically, these are the output frame length, the SBR range and the resulting core encoder frame length (CCFL). At the same time, it indicates the number of QMF analysis and synthesis bands used in SBR stereoConfigIndex
[0223] Esta tabela determina a estrutura interna de um UsacChannelPairElement(). Indica a utilização de um núcleo mono ou estéreo, o uso de MPS212, se o SBR estéreo é aplicado, e se a codificação residual é aplicada em MPS212.[0223] This table determines the internal structure of a UsacChannelPairElement(). It indicates whether a mono or stereo core is used, whether MPS212 is used, whether stereo SBR is applied, and whether residual coding is applied in MPS212.
[0224] Ao mover grandes partes dos campos de cabeçalho ESBR para um cabeçalho padrão que pode ser referenciado por meio de um sinalizador de cabeçalho padrão, a demanda de bits para o envio de dados de controle ESBR foi grandemente reduzida. Antigos campos de bits sbr_header() que foram considerados para uma mudança mais provável em um sistema do mundo real foram terceirizados para o elemento sbrInfo() uma vez que agora consiste apenas de quatro elementos que cobrem um máximo de 8 bits. Comparado com o sbr_header(), que consiste em pelo menos 18 bits, isto representa uma economia de 10 bits.[0224] By moving large parts of the ESBR header fields to a standard header that can be referenced via a standard header flag, the bit demand for sending ESBR control data has been greatly reduced. Former sbr_header() bit fields that were considered to be more likely to change in a real-world system have been outsourced to the sbrInfo() element since it now consists of only four elements covering a maximum of 8 bits. Compared to sbr_header(), which consists of at least 18 bits, this represents a saving of 10 bits.
[0225] É mais difí cil avaliar o impacto dessa mudança na taxa de bits total porque depende muito da taxa de transmissão de dados do controle ESBR em sbrInfo(). Entretanto, já para o caso de utilização comum em que a intersecção de SBR é alterada em um fluxo contínuo de dados, a economia de bits pode ser tão alta quanto 22 bits por ocorrência ao enviar um sbrInfo() em vez de um sbr_header() totalmente transmissível.[0225] It is more difficult to assess the impact of this change on the total bit rate because it depends heavily on the data transmission rate of the ESBR control in sbrInfo(). However, for the common use case where the SBR intersection is changed in a continuous data stream, the bit savings can be as high as 22 bits per occurrence by sending an sbrInfo() instead of a fully transmittable sbr_header().
[0226] A saída do decodificador USAC pode ser adicionalmente processada pelo MPEG Surround (MPS) (ISO/IEC 230031), ou SAOC (ISO/IEC 23003-2). Se a ferramenta SBR em USAC estiver ativa, um decodificador USAC pode tipicamente ser eficientemente combinado com um decodificador MPS/SAOC posterior, conectando-os no domínio QMF do mesmo modo descrito para o HE-AAC na norma ISO/IEC 23003-1 4.4. Se uma conexão no domínio QMF não é possível, estes precisam estar conectados no domínio do tempo.[0226] The output of the USAC decoder may be further processed by MPEG Surround (MPS) (ISO/IEC 230031), or SAOC (ISO/IEC 23003-2). If the SBR tool in USAC is active, a USAC decoder can typically be efficiently combined with a subsequent MPS/SAOC decoder by connecting them in the QMF domain in the same way as described for HE-AAC in ISO/IEC 23003-1 4.4. If a connection in the QMF domain is not possible, they need to be connected in the time domain.
[0227] Se as informações laterais do MPS/SAOC estiverem inseridas em um fluxo contínuo de dados USAC por meio do mecanismo de usacExtElement (com usacExtElementType sendo ID_EXT_ELE_MPEGS ou ID_EXT_ELE_SAOC), o tempo de alinhamento entre os dados USAC e os dados MPS/SAOC assume a conexão mais eficiente entre o decodificador USAC e o decodificador MPS/SAOC. Se a ferramenta SBR no USAC estiver ativa, e se o MPS/SAOC empregar uma representação do domínio de banda QMF 64 (vide ISO/IEC 23003-1 6.6.3), a conexão mais eficiente é no domínio QMF. Caso contrário, a ligação mais eficiente é no domínio do tempo. Isto corresponde ao tempo de alinhamento para a combinação de HE-AAC e MPS, tal como definido na norma ISO/IEC 230031 4.4, 4.5 e 7.2.1.[0227] If MPS/SAOC side information is embedded in a continuous USAC data stream via the usacExtElement mechanism (with usacExtElementType being ID_EXT_ELE_MPEGS or ID_EXT_ELE_SAOC), the alignment time between the USAC data and the MPS/SAOC data assumes the most efficient connection between the USAC decoder and the MPS/SAOC decoder. If the SBR tool in the USAC is active, and if the MPS/SAOC employs a QMF 64 band domain representation (see ISO/IEC 23003-1 6.6.3), the most efficient connection is in the QMF domain. Otherwise, the most efficient connection is in the time domain. This corresponds to the alignment time for the combination of HE-AAC and MPS as defined in ISO/IEC 230031 4.4, 4.5 and 7.2.1.
[0228] O atraso adicional introduzido pela adição da decodificação MPS após a decodificação USAC é dado pela norma ISO/IEC 23003-1 4.5 e depende se ou o HQ MPS ou o LP MPS é utilizado, e se o MPS está conectado com o a USAC no domínio QMF ou no domínio do tempo.[0228] The additional delay introduced by adding MPS decoding after USAC decoding is given by ISO/IEC 23003-1 4.5 and depends on whether either the HQ MPS or the LP MPS is used, and whether the MPS is connected to the USAC in the QMF domain or in the time domain.
[0229] A norma ISO/IEC 23003-1 4.4 esclarece a interface entre os Sistemas USAC e MPEG. Cada unidade de acesso entregue ao decodificador de áudio a partir da interface de sistemas deve resultar em uma unidade de composição correspondente entregue a partir do decodificador de áudio para a interface de sistemas, isto é, o compositor. Isto incluirá as condições de inicialização e o desligamento, ou seja, quando a unidade de acesso é o primeiro ou o último de uma sequência finita de unidades de acesso.[0229] ISO/IEC 23003-1 4.4 clarifies the interface between USAC and MPEG systems. Each access unit delivered to the audio decoder from the systems interface shall result in a corresponding composition unit delivered from the audio decoder to the systems interface, i.e. the compositor. This shall include the start-up and stop-down conditions, i.e. when the access unit is the first or last of a finite sequence of access units.
[0230] Para uma unidade de composição de áudio, ISO/IEC 14496-1 7.1.3.5 a Composição do Carimbo de Tempo [CTS | Composition Time Stamp] especifica que o tempo de composição aplica-se a amostra de áudio n-th dentro da unidade de composição. Para o USAC, o valor de n é sempre 1. Note-se que isto se aplica para a saída do próprio decodificador USAC. No caso em que um decodificador USAC, por exemplo, estiver sendo combinado com um decodificador MPS, precisa ser levado em conta para as unidades de composição entregues na saída do decodificador MPS.[0230] For an audio composition unit, ISO/IEC 14496-1 7.1.3.5 Composition Time Stamp [CTS] specifies that the composition time applies to the n-th audio sample within the composition unit. For USAC, the value of n is always 1. Note that this applies to the output of the USAC decoder itself. In the case where a USAC decoder, for example, is being combined with an MPS decoder, account needs to be taken of the composition units delivered at the output of the MPS decoder.
[0231] Se as informações laterais do MPS/SAOC estiverem integradas a um fluxo contínuo de dados USAC por meio do mecanismo de usacExtElement (com o usacExtElementType sendo ID_EXT_ELE_MPEGS ou ID_EXT_ELE_SAOC), as seguintes restrições podem ser, opcionalmente, aplicadas:[0231] If MPS/SAOC side information is integrated into a continuous USAC data stream via the usacExtElement mechanism (with the usacExtElementType being ID_EXT_ELE_MPEGS or ID_EXT_ELE_SAOC), the following restrictions may optionally be applied:
[0232] O parâmetro MPS/SAOC sacTimeAlign (vide ISO/IEC 23003-1 7.2.5) deve ter o valor de 0.[0232] The MPS/SAOC sacTimeAlign parameter (see ISO/IEC 23003-1 7.2.5) must have the value 0.
[0233] A frequência de amostragem do MPS/SAOC deve ser a mesma da frequência de saída de amostragem do USAC.[0233] The MPS/SAOC sampling frequency must be the same as the USAC sampling output frequency.
[0234] O parâmetro MPS/SAOC bsFrameLength (vide ISO/IEC 23003-1 5.2) deve ter um dos valores permitidos da lista predeterminada.[0234] The MPS/SAOC bsFrameLength parameter (see ISO/IEC 23003-1 5.2) must have one of the permitted values from the predetermined list.
[0235] A sintaxe do fluxo contínuo de dados de carga útil USAC é mostrada nas Figuras 4n a 4r, e a sintaxe de elementos auxiliares de carga útil mostrados nas Figuras 4s-w e a sintaxe de carga útil SBR aprimorada é mostrada nas Figuras 4x a 4zc.[0235] The syntax of the USAC payload data stream is shown in Figures 4n through 4r, and the syntax of payload auxiliary elements is shown in Figures 4s-w and the enhanced SBR payload syntax is shown in Figures 4x through 4zc.
[0236] UsacConfig() Este elemento contém informações sobre o conteúdo de áudio contido, bem como tudo o necessário para a configuração completa do decodificador.[0236] UsacConfig() This element contains information about the contained audio content, as well as everything needed for complete decoder configuration.
[0237] UsacChannelConfig() Este elemento fornece informações sobre os elementos do fluxo contínuo de dados contidos e seu mapeamento para os alto-falantes.[0237] UsacChannelConfig() This element provides information about the elements of the contained data stream and their mapping to speakers.
[0238] UsacDecoderConfig() Este elemento contém todas as informações necessárias pelo decodificador para interpretar o fluxo contínuo de dados. Especificamente, a relação da reamostragem SBR é sinalizada aqui, e a estrutura do fluxo contínuo de dados é aqui definida explicitando o número de elementos e a sua ordem no fluxo contínuo de dados.[0238] UsacDecoderConfig() This element contains all the information needed by the decoder to interpret the data stream. Specifically, the SBR resampling ratio is signaled here, and the structure of the data stream is defined here by explicitly specifying the number of elements and their order in the data stream.
[0239] UsacConfigExtension() O mecanismo de extensão da configuração para estender a configuração para extensões de configurações futuras para o USAC.[0239] UsacConfigExtension() The configuration extension mechanism to extend the configuration for future configuration extensions to USAC.
[0240] UsacSingleChannelElementConfig() Contém todas as informações necessárias para configurar o decodificador para decodificar um canal simples. Isto é, essencialmente, a informação relacionada com o codificador de núcleo e, se for utilizado o SBR, a informação relacionada com o SBR.[0240] UsacSingleChannelElementConfig() Contains all the information needed to configure the decoder to decode a single channel. This is essentially the core encoder related information and, if SBR is used, the SBR related information.
[0241] UsacChannelPairElementConfig() Analogamente ao previsto acima, esta configuração de elemento contém todas as informações necessárias para configurar o decodificador para decodificar um canal duplo. Além da configuração do núcleo acima mencionada e da configuração sbr, inclui as configurações específicas estéreo como o tipo exato de codificação estéreo aplicada (com ou sem MPS212, residual, etc.) Este elemento abrange todos os tipos de opções de codificação estéreo disponíveis no USAC.[0241] UsacChannelPairElementConfig() Analogously to the above, this element configuration contains all the information needed to configure the decoder to decode a dual channel. In addition to the above mentioned core configuration and the sbr configuration, it includes stereo specific settings such as the exact type of stereo encoding applied (with or without MPS212, residual, etc.) This element covers all types of stereo encoding options available in USAC.
[0242] UsacLfeElementConfig() A configuração do elemento LFE não contém dados de configuração, como um elemento LFE tem uma configuração estática.[0242] UsacLfeElementConfig() The LFE element configuration does not contain configuration data, as an LFE element has a static configuration.
[0243] UsacExtElementConfig() Esta configuração do elemento pode ser utilizada para qualquer tipo de configuração de extensões existentes ou futuras para o codec. Cada tipo de elemento de extensão tem o seu próprio valor do tipo específico. Um campo de comprimento é incluído a fim de poder ignorar as extensões de configuração desconhecidas para o decodificador.[0243] UsacExtElementConfig() This element configuration can be used for any type of existing or future extension configuration for the codec. Each extension element type has its own specific type value. A length field is included in order to ignore configuration extensions unknown to the decoder.
[0244] UsacCoreConfig() Contém dados de configuração que têm impacto sobre a configuração do codificador do núcleo.[0244] UsacCoreConfig() Contains configuration data that impacts the core encoder configuration.
[0245] SbrConfig() Contém os valores padrão para os elementos de configuração do sSRR que são mantidos tipicamente constantes. Além disso, os elementos de configuração SBR estáticos também são realizados no SbrConfig(). Estes bits estáticos incluem sinalizadores de recursos de ativação ou desativação específicos do SBR avançado, como a transposição harmônica ou Inter TES.[0245] SbrConfig() Contains default values for sSRR configuration elements that are typically held constant. In addition, static SBR configuration elements are also held in SbrConfig(). These static bits include enabling or disabling flags for features specific to Advanced SBR, such as Harmonic Transposition or Inter TES.
[0246] SbrDfltHeader() Este elemento realiza uma versão padrão dos elementos do SbrHeader() a que pode ser referida se nenhum valor de diferenciação para estes elementos for desejado.[0246] SbrDfltHeader() This element realizes a standard version of the SbrHeader() elements that can be referred to if no differentiating value for these elements is desired.
[0247] Mps212Config() Todos os parâmetros de configuração para as ferramentas do MPEG Surround 2-1-2 são montadas nesta configuração.[0247] Mps212Config() All configuration parameters for the MPEG Surround 2-1-2 tools are assembled into this configuration.
[0248] escapedValue() Este elemento implementa um método geral para a transmissão de um valor integral utilizando um número variante de bits. Possui um mecanismo de fuga de dois níveis, que permite ampliar a gama de valores representáveis pela a transmissão sucessiva de bits adicionais.[0248] escapedValue() This element implements a general method for transmitting an integral value using a varying number of bits. It has a two-level escape mechanism, which allows the range of representable values to be extended by successively transmitting additional bits.
[0249] usacSamplingFrequencyIndex Este índice determina a frequência de amostragem do sinal de áudio depois de decodificação. O valor de usacSamplingFrequencyIndex e suas frequências de amostras associadas são descritas na Tabela C.[0249] usacSamplingFrequencyIndex This index determines the sampling frequency of the audio signal after decoding. The value of usacSamplingFrequencyIndex and its associated sampling frequencies are described in Table C.
[0250] Tabela C - Valores e significados do usacSamplingFrequencyIndex usacSamplingFrequencyIndex [0250] Table C - Values and meanings of usacSamplingFrequencyIndex usacSamplingFrequencyIndex
[0251] usacSamplingFrequency Frequência de amostragem do decodificador codificado como um valor integrado não sinalizado no caso de o usacSamplingFrequencyIndex ser igual a zero.[0251] usacSamplingFrequency Decoder sampling frequency encoded as an unsigned integrated value in case usacSamplingFrequencyIndex is equal to zero.
[0252] channelConfigurationIndex Este índice determina a configuração do canal. Se o channelConfigurationIndex> 0, o índice define inequivocamente o número de canais, os elementos do canal e o mapeamento do alto-falante associado de acordo com a Tabela Y. Os nomes das posições dos alto-falantes, as abreviaturas utilizadas e a posição geral das colunas disponíveis podem ser deduzidos a partir das Figuras. 3a, 3b e das Figuras 4a e 4b.[0252] channelConfigurationIndex This index determines the channel configuration. If channelConfigurationIndex > 0, the index uniquely defines the number of channels, channel elements, and associated speaker mapping according to Table Y. The names of the speaker positions, the abbreviations used, and the general position of the available speakers can be deduced from Figures. 3a, 3b and Figures 4a and 4b.
[0253] bsOutputChannelPos Este índice descreve as posições dos alto-falantes que estão associados com um determinado canal de acordo com a Tabela XX. A Figura Y indica a posição do alto-falante em ambiente 3D do ouvinte. A fim de facilitar o entendimento das posições do alto-falante, a Tabela XX também contém as posições do alto-falante de acordo com o IEC 100/1706/CDV que são listados aqui como informação para o leitor interessado.[0253] bsOutputChannelPos This index describes the positions of the loudspeakers that are associated with a given channel according to Table XX. Figure Y indicates the position of the loudspeaker in the listener's 3D environment. In order to facilitate the understanding of the loudspeaker positions, Table XX also contains the loudspeaker positions according to IEC 100/1706/CDV which are listed here as information for the interested reader.
[0254] Tabela - Valores do coreCoderFrameLength, sbrRatio, outputFrameLength e numSlots dependente do coreSbrFrameLengthIndex [0254] Table - Values of coreCoderFrameLength, sbrRatio, outputFrameLength and numSlots dependent on coreSbrFrameLengthIndex
[0255] usacConfigExtensionPresent Indica a presença de extensões para a configuração.[0255] usacConfigExtensionPresent Indicates the presence of extensions for the configuration.
[0256] numOutChannels Se o valor de channelConfigurationIndex indica que nenhuma das configurações de canal pré-definido é usada, então este elemento determina o número de canais de áudio à que uma posição de alto-falante específico deve ser associada.[0256] numOutChannels If the value of channelConfigurationIndex indicates that none of the predefined channel configurations are used, then this element determines the number of audio channels to which a specific speaker position should be associated.
[0257] numElements Este campo contém o número de elementos que seguirão no circuito nos tipos de elementos no UsacDecoderConfig().[0257] numElements This field contains the number of elements that will follow in the circuit in the element types in UsacDecoderConfig().
[0258] usacElementType[elemIdx] Define o tipo de elemento do canal USAC do elemento na posição elemIdx no fluxo contínuo de dados. Existem quatro tipos de elementos, um para cada um dos quatro elementos de fluxo contínuo de dados básicos: UsacSingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(),UsacExtElement(). Estes elementos fornecem a estrutura de alto nível necessária, mantendo toda a flexibilidade necessária. O significado de usacElementType é definido na Tabela A. Tabela A - Valor do usacElementType [0258] usacElementType[elemIdx] Defines the USAC channel element type of the element at position elemIdx in the data stream. There are four element types, one for each of the four basic data stream elements: UsacSingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(),UsacExtElement(). These elements provide the necessary high-level structure while maintaining all the necessary flexibility. The meaning of usacElementType is defined in Table A. Table A - usacElementType Value
[0259] stereoConfigIndex Este elemento determina a estrutura interna de um UsacChannelPairElement(). Indica a utilização de um núcleo mono ou estéreo, o uso de MPS212, se o SBR estéreo é aplicado, e se a codificação residual é aplicada em MPS212 de acordo com a Tabela ZZ. Este elemento também define os valores dos elementos auxiliares bsStereoSbr e bsResidualCoding.[0259] stereoConfigIndex This element determines the internal structure of a UsacChannelPairElement(). It indicates the use of a mono or stereo core, the use of MPS212, whether stereo SBR is applied, and whether residual coding is applied in MPS212 according to the ZZ Table. This element also defines the values of the auxiliary elements bsStereoSbr and bsResidualCoding.
[0260] Tabela ZZ - Valores de stereoConfigIndex e seu significado e designação implícita do bsStereoSbr e do bsResidualCoding [0260] Table ZZ - StereoConfigIndex values and their meaning and implicit designation of bsStereoSbr and bsResidualCoding
[0261] tw_mdct Este indicador sinaliza o uso do MDCT parado no tempo neste fluxo.[0261] tw_mdct This indicator signals the use of MDCT stopped in time in this flow.
[0262] noiseFilling Este indicador sinaliza o uso do ruído que preenche os furos espectrais no codificador central FD.[0262] noiseFilling This flag signals the use of noise that fills the spectral holes in the FD core encoder.
[0263] harmonicSBR Este indicador sinaliza o uso da reparação harmônica para SBR.[0263] harmonicSBR This indicator signals the use of harmonic repair for SBR.
[0264] bs_interTes Este indicador sinaliza o uso da ferramenta intra-TES em SBR.[0264] bs_interTes This indicator signals the use of the intra-TES tool in SBR.
[0265] dflt_start_freq Este é o valor padrão para o elemento do fluxo contínuo de dados bs_start_freq, que é aplicado no caso do indicador sbrUseDfltHeader indicar que os valores padrão para elementos SbrHeader() devem ser assumidos.[0265] dflt_start_freq This is the default value for the bs_start_freq data stream element, which is applied in case the sbrUseDfltHeader flag indicates that the default values for SbrHeader() elements should be assumed.
[0266] dflt_stop_freq Este é o valor padrão para o elemento do fluxo contínuo de dados bs_stop_freq, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0266] dflt_stop_freq This is the default value for the bs_stop_freq data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0267] dflt_header_extra1 Este é o valor padrão para o elemento do fluxo contínuo de dados bs_header_extra1, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0267] dflt_header_extra1 This is the default value for the bs_header_extra1 data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0268] dflt_header_extra2 Este é o valor padrão para o elemento do fluxo contínuo de dados bs_header_extra2, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0268] dflt_header_extra2 This is the default value for the bs_header_extra2 data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0269] dflt_freq_scale Este é o valor padrão para o elemento do fluxo contínuo de dados bs_freq_scale, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0269] dflt_freq_scale This is the default value for the bs_freq_scale data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0270] dflt_alter_scale Este é o valor padrão para o elemento do fluxo contínuo de dados bs_alter_scale, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0270] dflt_alter_scale This is the default value for the bs_alter_scale data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0271] dflt_noise_bands Este é o valor padrão para o elemento do fluxo contínuo de dados bs_noise_bands, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0271] dflt_noise_bands This is the default value for the bs_noise_bands data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0272] dflt_limiter_bands Este é o valor padrão para o elemento do fluxo contínuo de dados bs_limiter_bands, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0272] dflt_limiter_bands This is the default value for the bs_limiter_bands data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0273] dflt_limiter_gains Este é o valor padrão para o elemento do fluxo contínuo de dados bs_limiter_gains, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0273] dflt_limiter_gains This is the default value for the bs_limiter_gains data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0274] dflt_interpol_freq Este é o valor padrão para o elemento do fluxo contínuo de dados bs_interpol_freq, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0274] dflt_interpol_freq This is the default value for the bs_interpol_freq data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0275] dflt_smoothing_mode Este é o valor padrão para o elemento do fluxo contínuo de dados bs_smoothing_mode, que é aplicado no caso do indicador sbrUseDfltHeader indicar que valores padrão para os elementos SbrHeader() devem ser assumidos.[0275] dflt_smoothing_mode This is the default value for the bs_smoothing_mode data stream element, which is applied in case the sbrUseDfltHeader flag indicates that default values for SbrHeader() elements should be assumed.
[0276] usacExtElementType Este elemento permite sinalizar os tipos de extensões do fluxo contínuo de dados. O significado de usacExtElementType é definido na Tabela B.[0276] usacExtElementType This element allows to signal the types of extensions of the data stream. The meaning of usacExtElementType is defined in Table B.
[0277] Tabela B - Valor de usacExtElementType [0277] Table B - Value of usacExtElementType
[0278] usacExtElementConfigLength sinaliza o comprimento da configuração de extensão em bytes (octetos).[0278] usacExtElementConfigLength flags the length of the extension configuration in bytes (octets).
[0279] usacExtElementDefaultLengthPresent Este indicador sinaliza se um usacExtElementDefaultLength é conduzido no UsacExtElementConfig().[0279] usacExtElementDefaultLengthPresent This flag signals whether a usacExtElementDefaultLength is passed in UsacExtElementConfig().
[0280] usacExtElementDefaultLength sinaliza o comprimento padrão do elemento de extensão em bytes. Apenas se o elemento de extensão em uma dada unidade de acesso desviar deste valor, um comprimento adicional precisa ser transmitido no fluxo contínuo de dados. Se este elemento não for explicitamente transmitido usacExtElementDefaultLengthPresent==0) então o valor de usacExtElementDefaultLength deve ser definido a zero.[0280] usacExtElementDefaultLength signals the default length of the extension element in bytes. Only if the extension element in a given access unit deviates from this value, an additional length needs to be transmitted in the data stream. If this element is not explicitly transmitted (usacExtElementDefaultLengthPresent==0) then the value of usacExtElementDefaultLength should be set to zero.
[0281] usacExtElementPayloadFrag Este indicador indica se a carga útil deste elemento de extensão pode ser fragmentada e enviada como vários segmentos em estruturas USAC consecutivas.[0281] usacExtElementPayloadFrag This flag indicates whether the payload of this extension element can be fragmented and sent as multiple segments in consecutive USAC frames.
[0282] numConfigExtensions Se as extensões à configuração estão presentes em UsacConfig() este valor indica o número de extensões de configuração sinalizadas.[0282] numConfigExtensions If configuration extensions are present in UsacConfig() this value indicates the number of flagged configuration extensions.
[0283] confExtIdx Índice para as extensões de configuração.[0283] confExtIdx Index to the configuration extensions.
[0284] usacConfigExtType Este elemento permite sinalizar os tipos de extensão de configuração. O significado de usacExtElementType é definido na Tabela D.[0284] usacConfigExtType This element allows to flag configuration extension types. The meaning of usacExtElementType is defined in Table D.
[0285] Tabela D - Valor de usacConfigExtType [0285] Table D - Value of usacConfigExtType
[0286] usacConfigExtLength sinaliza o comprimento da extensão da configuração em bytes (octetos).[0286] usacConfigExtLength flags the length of the configuration extension in bytes (octets).
[0287] bsPseudoLr Este indicador sinaliza que uma rotação lateral/média inversa deve ser aplicada ao sinal central antes do processamento Mps212.[0287] bsPseudoLr This flag signals that an inverse lateral/average rotation should be applied to the center signal prior to Mps212 processing.
[0288] Tabela - bsPseudoLr [0288] Table - bsPseudoLr
[0289] bsStereoSbr Este indicador sinaliza o uso de SBR estéreo em combinação com a decodificação de Som MPEG.[0289] bsStereoSbr This flag signals the use of stereo SBR in combination with MPEG Sound decoding.
[0290] Tabela - bsStereoSbr [0290] Table - bsStereoSbr
[0291] bsResidualCoding indica se a codificação residual é aplicada de acordo com a Tabela abaixo. O valor de bsResidualCoding é definido por stereoConfigIndex (vide X).[0291] bsResidualCoding indicates whether residual coding is applied according to the Table below. The value of bsResidualCoding is set by stereoConfigIndex (see X).
[0292] Tabela X - bsResidualCoding [0292] Table X - bsResidualCoding
[0293] sbrRatioIndex indica a relação entre a taxa de amostragem central e a taxa de amostragem após o processamento eSBR. Ao mesmo tempo indica o número da análise QMF e faixas de síntese usadas em SBR de acordo com a Tabela abaixo.[0293] sbrRatioIndex indicates the ratio between the central sampling rate and the sampling rate after eSBR processing. At the same time it indicates the number of QMF analysis and synthesis tracks used in SBR according to the Table below.
[0294] Tabela - Definição de sbrRatioIndex [0294] Table - Definition of sbrRatioIndex
[0295] elemIdx Índice para os elementos presentes em UsacDecoderConfig() e UsacFrame(). UsacConfig()[0295] elemIdx Index to the elements present in UsacDecoderConfig() and UsacFrame(). UsacConfig()
[0296] O UsacConfig() contém informação sobre a frequência de amostragem emitida e configuração do canal. Esta informação deve ser idêntica à informação sinalizada fora deste elemento, por exemplo, em um MPEG-4 AudioSpecificConfig().[0296] UsacConfig() contains information about the output sampling frequency and channel configuration. This information must be identical to the information signaled outside this element, for example in an MPEG-4 AudioSpecificConfig().
[0297] Se a taxa de amostragem não for uma das taxas listadas na coluna direita na Tabela 1, as tabelas dependentes da frequência de amostragem (tabelas de código, tabelas da faixa de fator de escala etc.) devem ser deduzidas para que a carga útil do fluxo contínuo de dados seja analisada. Visto que uma dada frequência de amostragem está associada com apenas uma tabela da frequência de amostragem, e visto que a flexibilidade máxima é desejada na faixa de possíveis frequências de amostragem, a seguinte tabela deve ser entendida para associar uma frequência de amostragem implícita com as tabelas dependentes da frequência de amostragem desejadas.[0297] If the sampling rate is not one of the rates listed in the right column of Table 1, sampling frequency dependent tables (code tables, scale factor range tables, etc.) must be derived in order to analyze the payload of the data stream. Since a given sampling frequency is associated with only one sampling frequency table, and since maximum flexibility is desired in the range of possible sampling frequencies, the following table should be understood to associate an implied sampling frequency with the desired sampling frequency dependent tables.
[0298] Tabela 1 - Mapeamento da frequência de amostragem UsacChannelConfig ()[0298] Table 1 - Sampling frequency mapping UsacChannelConfig()
[0299] A tabela da configuração do canal abrange a maioria das posições mais comuns do alto-falante. Para mais flexibilidade canais podem ser mapeados em toda a seleção de 32 posições do alto- falante encontradas nas configurações modernas do alto-falante em várias aplicações (ver figuras 3a, 3b)[0299] The channel configuration table covers most of the common speaker positions. For added flexibility channels can be mapped to any of the selection of 32 speaker positions found in modern speaker configurations in various applications (see Figures 3a, 3b).
[0300] Para cada canal contido no fluxo contínuo de dados o UsacCanalConfig() especifica a posição associada do alto-falante na qual este canal particular deve ser mapeado. As posições do alto- falante que são indexadas por bsOutputChannelPos são listadas na Tabela X. No caso de vários elementos de canal o índice i de bsOutputChannelPos[i] indica a posição na qual o canal aparece no fluxo contínuo de dados. A figura Y fornece uma visão geral sobre as posições do alto-falante com relação ao ouvinte.[0300] For each channel contained in the data stream UsacCanalConfig() specifies the associated speaker position to which this particular channel should be mapped. The speaker positions that are indexed by bsOutputChannelPos are listed in Table X. In the case of multiple channel elements the index i of bsOutputChannelPos[i] indicates the position at which the channel appears in the data stream. Figure Y provides an overview of the speaker positions relative to the listener.
[0301] Mais precisamente, os canais são numerados na sequência na qual eles aparecem no fluxo contínuo de dados começando com 0 (zero). No caso comum de um UsacSingleCanalElement() ou UsacLfeElement() o número do canal é atribuído a este canal e a conta do canal é elevada por um. No caso de um UsacChannelPairElement() o primeiro canal neste elemento (com índice ch==0) é enumerado primeiro, onde o segundo canal neste mesmo elemento (com índice ch==1) recebe o próximo número mais alto e a conta do canal é elevada por dois.[0301] More precisely, channels are numbered in the sequence in which they appear in the data stream starting with 0 (zero). In the common case of a UsacSingleCanalElement() or UsacLfeElement() the channel number is assigned to this channel and the channel count is raised by one. In the case of a UsacChannelPairElement() the first channel in this element (with index ch==0) is enumerated first, where the second channel in this same element (with index ch==1) is given the next higher number and the channel count is raised by two.
[0302] Segue que numOutChannels deve ser igual ou maior do que a soma acumulada de todos os canais contidos no fluxo contínuo de dados. A soma acumulada de todos os canais é equivalente ao número de todos UsacSingleChannelElement() mais o número de todos UsacLfeElement() mais duas vezes o número de todos UsacChannelPairElement()’s.[0302] It follows that numOutChannels must be equal to or greater than the cumulative sum of all channels contained in the data stream. The cumulative sum of all channels is equivalent to the number of all UsacSingleChannelElement() plus the number of all UsacLfeElement() plus twice the number of all UsacChannelPairElement()’s.
[0303] Todas as entradas na matriz bsOutputChannelPos devem ser mutualmente distintas para evitar a atribuição dupla das posições do alto-falante no fluxo contínuo de dados.[0303] All entries in the bsOutputChannelPos array must be mutually distinct to avoid double assignment of speaker positions in the data stream.
[0304] No caso especial que channelConfigurationIndex é 0 e numOutChannels é menor do que a soma acumulada de todos os canais contidos no fluxo contínuo de dados, então o gerenciamento dos canais não atribuídos está fora do escopo destas especificação. Informação sobre isso, por exemplo, pode ser conduzida pelo meio apropriado nas camadas de aplicação mais altas ou especificamente pelas cargas úteis de extensão desenhadas (particular). UsacDecodificadorConfig()[0304] In the special case that channelConfigurationIndex is 0 and numOutChannels is less than the cumulative sum of all channels contained in the data stream, then the management of unassigned channels is outside the scope of this specification. Information about this, for example, can be conveyed by appropriate means in higher application layers or specifically by designed extension payloads (private). UsacDecoderConfig()
[0305] O UsacDecoderConfig() contém toda a informação necessária pelo decodificador para interpretar o fluxo contínuo de dados. Primeiramente, o valor de sbrRatioIndex determina o índice entre o comprimento da estrutura do codificador central (ccfl) e o comprimento da estrutura de saída. Seguindo o sbrRatioIndex está um circuito sobre todos os elementos de canal no presente fluxo contínuo de dados. Para cada iteração o tipo de elemento é sinalizado em usacElementType[], imediatamente seguido por sua estrutura de configuração correspondente. A ordem na qual os vários elementos estão presentes em UsacDecoderConfig() deve ser idêntica à ordem da carga útil correspondente na UsacFrame().[0305] UsacDecoderConfig() contains all the information needed by the decoder to interpret the data stream. First, the value of sbrRatioIndex determines the ratio between the length of the core encoder frame (ccfl) and the length of the output frame. Following sbrRatioIndex is a loop over all channel elements in the current data stream. For each iteration the element type is signaled in usacElementType[], immediately followed by its corresponding configuration structure. The order in which the various elements are present in UsacDecoderConfig() must be identical to the order of the corresponding payload in UsacFrame().
[0306] Cada momento de um elemento pode ser configurado independentemente. O ler cada elemento do canal em UsacFrame(), para cada elemento a configuração correspondente deste momento, ou seja, com o mesmo elemIdx, deve ser usado. UsacSingleChannelElementConfig()[0306] Each moment of an element can be configured independently. When reading each channel element in UsacFrame(), for each element the corresponding configuration of this moment, i.e. with the same elemIdx, must be used. UsacSingleChannelElementConfig()
[0307] O UsacSingleChannelElementConfig() contém toda a informação necessária para configurar o decodificador para decodificar um único canal. Os dados de configuração de SBR são apenas transmitidos se SBR for realmente empregado. UsacChannelPairElementConfig()[0307] UsacSingleChannelElementConfig() contains all the information needed to configure the decoder to decode a single channel. SBR configuration data is only transmitted if SBR is actually employed. UsacChannelPairElementConfig()
[0308] O UsacChannelPairElementConfig() contém dados da configuração relacionados ao codificador central bem como dados de configuração SBR dependentes do uso de SBR. O tipo exato de algoritmo de codificação estéreo é indicado por stereoConfigIndex. No USAC um par de canais pode ser codificado de várias formas. Estas são: 1. Par do codificador central estéreo utilizando as técnicas tradicionais de codificação estéreo unidas, estendidas pela possibilidade de previsão complexa no domínio MDCT. 2. Canal central do codificador mono em combinação com MPEG Surround com base em MPS212 para codificação estéreo paramétrica completa. O processamento mono SBR é aplicado no sinal central. 3. Par do codificador central estéreo em combinação com MPEG Surround com base em MPS212, onde o primeiro canal do codificador central carrega um sinal de downmix e o segundo canal carrega um sinal residual. O residual pode ser limitado pela faixa para perceber a codificação residual parcial. O processamento mono SBR é aplicado apenas no sinal de downmix antes do processamento MPS212. 4. Par do codificador central estéreo em combinação com MPEG Surround com base em MPS212, onde o primeiro canal do codificador central carrega um sinal de downmix e o segundo canal carrega um sinal residual. O residual pode ser limitado pela faixa para perceber a codificação residual parcial. O SBR estéreo é aplicado no sinal de estéreo reconstruído após o processamento MPS212.[0308] The UsacChannelPairElementConfig() contains configuration data related to the core encoder as well as SBR configuration data dependent on the use of SBR. The exact type of stereo coding algorithm is indicated by stereoConfigIndex. In USAC a channel pair can be encoded in several ways. These are: 1. Stereo core encoder pair using traditional joined stereo coding techniques, extended by the possibility of complex prediction in the MDCT domain. 2. Mono core encoder channel in combination with MPS212-based MPEG Surround for full parametric stereo coding. Mono SBR processing is applied to the core signal. 3. Stereo core encoder pair in combination with MPS212-based MPEG Surround, where the first channel of the core encoder carries a downmix signal and the second channel carries a residual signal. The residual can be band-limited to realize partial residual coding. Mono SBR processing is applied only to the downmix signal before MPS212 processing. 4. Stereo center encoder pair in combination with MPS212-based MPEG Surround, where the first channel of the center encoder carries a downmix signal and the second channel carries a residual signal. The residual can be range-limited to realize partial residual encoding. Stereo SBR is applied to the reconstructed stereo signal after MPS212 processing.
[0309] A opção 3 e 4 pode ainda ser combinada com uma rotação do canal pseudo LR após o decodificador central. UsacLfeElementConfig()[0309] Option 3 and 4 can further be combined with a pseudo LR channel rotation after the central decoder. UsacLfeElementConfig()
[0310] Visto que o uso de MDCT com tempo parado e preenchimento de ruído não é permitido para canais LFE, não há necessidade de transmitir o indicador do codificador central comum para estas ferramentas. Eles devem ser definidos a zero.[0310] Since the use of MDCT with still time and noise padding is not allowed for LFE channels, there is no need to transmit the common central encoder indicator to these tools. They should be set to zero.
[0311] Ainda, o uso de SBR não é permitido nem significativo em um contexto LFE. Assim, os dados de configuração de SBR não são transmitidos. UsacCoreConfig()[0311] Furthermore, the use of SBR is neither allowed nor meaningful in an LFE context. Thus, SBR configuration data is not transmitted. UsacCoreConfig()
[0312] O UsacCoreConfig() contém apenas indicadores para habilitar ou desabilitar o uso do MDCT com tempo parado e preenchimento de ruído espectral em um nível global do fluxo contínuo de dados. Se tw_mdct for definido a zero, o tempo parado não deve ser aplicado. Se noiseFilling for definido a zero o preenchimento de ruído espectral não deve ser aplicado. SbrConfig()[0312] UsacCoreConfig() contains only flags to enable or disable the use of MDCT with still time and spectral noise filling on a global data stream level. If tw_mdct is set to zero, still time should not be applied. If noiseFilling is set to zero, spectral noise filling should not be applied. SbrConfig()
[0313] O elemento do fluxo contínuo de dados SbrConfig() serve à finalidade de sinalizar os parâmetros exatos de configuração eSBR. Por um lado o SbrConfig() sinaliza o emprego geral de ferramentas eSBR. Por outro lado, contém uma versão padrão de SbrHeader(), SbrDfltHeader(). Os valores deste cabeçalho padrão devem ser assumidos se nenhum SbrHeader() diferente for transmitido no fluxo contínuo de dados. O histórico deste mecanismo é, que tipicamente apenas um conjunto de valores de SbrHeader() é aplicado em um fluxo contínuo de dados. A transmissão de SbrDfltHeader(), então, permite se referir a este conjunto padrão de valores muito eficientemente utilizando apenas um bit no fluxo contínuo de dados. A possibilidade de varar os valores de SbrHeader imediatos é ainda retida, permitindo a transmissão na faixa de um novo SbrHeader no próprio fluxo contínuo de dados. SbrDfltHeader()[0313] The data stream element SbrConfig() serves the purpose of signaling the exact eSBR configuration parameters. On the one hand SbrConfig() signals the general employment of eSBR tools. On the other hand, it contains a standard version of SbrHeader(), SbrDfltHeader(). The values of this standard header should be assumed if no different SbrHeader() is transmitted in the data stream. The background of this mechanism is that typically only one set of SbrHeader() values is applied in a data stream. The transmission of SbrDfltHeader() then allows to refer to this standard set of values very efficiently using only one bit in the data stream. The possibility to bypass the immediate SbrHeader values is still retained, allowing the transmission in the range of a new SbrHeader in the data stream itself. SbrDfltHeader()
[0314] O SbrDfltHeader() é o que pode ser chamado de modelo básico de SbrHeader() e deve conter os valores para a configuração eSBR predominantemente usada. No fluxo contínuo de dados esta configuração pode ser referida pelo ajuste do indicador sbrUseDfltHeader. A estrutura de SbrDfltHeader() é idêntica à de SbrHeader(). Para poder distinguir entre os valores de SbrDfltHeader() e SbrHeader(), os campos do bit no SbrDfltHeader() são pré-fixos com “dflt_” ao invés de “bs_”. Se o uso de SbrDfltHeader() for indicado, então os campos do bit SbrHeader() devem assumir os valores do SbrDfltHeader() correspondente, ou seja, bs_start_freq = dflt_start_freq; bs_stop_freq = dflt_stop_freq; etc. (continue para todos os elementos em SbrHeader(), como: bs_xxx_yyy = dflt_xxx_yyy; Mps212Config()[0314] The SbrDfltHeader() is what can be called the basic model of SbrHeader() and should contain the values for the predominantly used eSBR configuration. In the data stream this configuration can be referenced by setting the sbrUseDfltHeader flag. The structure of SbrDfltHeader() is identical to that of SbrHeader(). In order to distinguish between the values of SbrDfltHeader() and SbrHeader(), the bit fields in SbrDfltHeader() are prefixed with “dflt_” instead of “bs_”. If the use of SbrDfltHeader() is indicated, then the SbrHeader() bit fields should assume the values of the corresponding SbrDfltHeader(), i.e. bs_start_freq = dflt_start_freq; bs_stop_freq = dflt_stop_freq; etc. (continue for all elements in SbrHeader(), like: bs_xxx_yyy = dflt_xxx_yyy; Mps212Config()
[0315] O Mps212Config() parece o SpatialSpecificConfig() de MPEG Surround e estava em grandes partes deduzidas deste. É entretanto reduzido na extensão para conter a informação relevante para upmixing mono a estéreo no contexto de USAC. Consequentemente MPS212 configura apenas uma caixa OTT. UsacExtElementConfig()[0315] Mps212Config() resembles MPEG Surround's SpatialSpecificConfig() and was largely derived from it. It is however reduced in scope to contain the information relevant for mono to stereo upmixing in the context of USAC. Consequently MPS212 configures only one OTT box. UsacExtElementConfig()
[0316] O UsacExtElementConfig() é um recipiente geral para os dados de configuração dos elementos de extensão para USAC. Cada extensão USAC tem um único identificador de tipo, usacExtElementType, que é definido na Tabela X. Para cada UsacExtElementConfig() o comprimento da configuração de extensão contida é transmitido na variável usacExtElementConfigLength e permite decodificar para seguramente pular sobre os elementos de extensão cujo usacExtElementType é desconhecido.[0316] UsacExtElementConfig() is a general container for extension element configuration data for USAC. Each USAC extension has a unique type identifier, usacExtElementType, which is defined in Table X. For each UsacExtElementConfig() the length of the contained extension configuration is passed in the usacExtElementConfigLength variable and allows decoding to safely skip over extension elements whose usacExtElementType is unknown.
[0317] Para extensões de USAC que tipicamente têm um comprimento de carga útil constante, o UsacExtElementConfig() permite a transmissão de um usacExtElementDefaultLength. Definir um comprimento da carga útil padrão na configuração permite uma sinalização altamente eficiente do usacExtElementPayloadLength dentro do UsacExtElement(), onde o consumo de bit precisa ser mantido baixo.[0317] For USAC extensions that typically have a constant payload length, UsacExtElementConfig() allows the transmission of a usacExtElementDefaultLength. Setting a default payload length in the configuration allows for highly efficient signaling of the usacExtElementPayloadLength within UsacExtElement(), where bit consumption needs to be kept low.
[0318] No caso de extensões de USAC onde uma quantidade maior de dados é acumulada e transmitida não em uma base por estrutura, mas apenas em cada segunda estrutura ou ainda mais raramente, estes dados podem ser transmitidos em fragmentos ou segmentos sobre várias estruturas de USAC. Isso pode ser útil para manter o reservatório de bit mais equalizado. O uso deste mecanismo é sinalizado pelo indicador usacExtElementPayloadFrag. O mecanismo de fragmentação é ainda explicado na descrição de usacExtElement em 6.2.X. UsacConfigExtension()[0318] In the case of USAC extensions where a larger amount of data is accumulated and transmitted not on a per-frame basis, but only on every second frame or even more rarely, this data may be transmitted in fragments or segments over several USAC frames. This can be useful to keep the bit pool more equalized. The use of this mechanism is signaled by the usacExtElementPayloadFrag flag. The fragmentation mechanism is further explained in the description of usacExtElement in 6.2.X. UsacConfigExtension()
[0319] O UsacConfigExtension() é um recipiente geral para extensões de UsacConfig(). Fornece uma forma conveniente de emendar ou estender a informação trocada no período da inicialização ou configuração do decodificador. A presença de extensões de configuração é indicada por UsacConfigExtensionPresent. Se as extensões de configuração estão presentes (UsacConfigExtensionPresent==1), o número exato destas extensões segue no campo de bit numConfigExtensions. Cada extensão da configuração tem um único identificador de tipo, usacConfigExtType, que é definido na Tabela X. Para cada UsacConfigExtension o comprimento da extensão da configuração contida é transmitido na variável usacConfigExtLength e permite o fluxo contínuo de dados de configuração analisar para seguramente pular a extensão da configuração onde usacConfigExtType é desconhecido. Cargas úteis de nível superior para o tipo de objeto de áudio USAC Termos e Definições[0319] UsacConfigExtension() is a general container for UsacConfig() extensions. It provides a convenient way to amend or extend the information exchanged at decoder initialization or configuration time. The presence of configuration extensions is indicated by UsacConfigExtensionPresent. If configuration extensions are present (UsacConfigExtensionPresent==1), the exact number of these extensions is given in the numConfigExtensions bit field. Each configuration extension has a unique type identifier, usacConfigExtType, which is defined in Table X. For each UsacConfigExtension the length of the contained configuration extension is transmitted in the usacConfigExtLength variable and allows the configuration data stream parser to safely skip configuration extensions where usacConfigExtType is unknown. Top-level payloads for the USAC audio object type Terms and Definitions
[0320] UsacFrame() Este bloco de dados contém dados de áudio para um período de tempo de uma estrutura USAC, informação relacionada e outros dados. Conforme sinalizado em UsacDecoderConfig(), o UsacFrame() contém elementos numElements. Estes elementos podem conter dados de áudio, para um ou dois canais, dados de áudio para melhoria de baixa frequência ou carga útil de extensão.[0320] UsacFrame() This data block contains audio data for a time period of a USAC frame, related information, and other data. As signaled in UsacDecoderConfig(), UsacFrame() contains numElements elements. These elements can contain audio data for one or two channels, audio data for low-frequency enhancement, or extension payload.
[0321] UsacSingleChannelElement() Abreviação SCE. Elemento sintático do fluxo contínuo de dados contendo dados codificados para um único canal de áudio. Um single_channel_element() consiste basicamente em UsacCoreCoderData(), contendo dados tanto para o codificador central FD quanto para LPD. No caso SBR é ativo, o UsacSingleChannelElement também contém dados de SBR.[0321] UsacSingleChannelElement() Abbreviation SCE. Syntactical element of the data stream containing encoded data for a single audio channel. A single_channel_element() basically consists of UsacCoreCoderData(), containing data for both the FD and LPD core encoder. In case SBR is active, the UsacSingleChannelElement also contains SBR data.
[0322] UsacChannelPairElement() Abreviação CPE. Elemento sintático da carga útil do fluxo contínuo de dados contendo dados para um par de canais. O par de canais pode ser obtido pela transmissão de dois canais discretos ou por um canal discreto e relacionado à carga útil Mps212. Este é sinalizado por meios de stereoConfigIndex. O UsacChannelPairElement ainda contém dados SBR no caso SBR estar ativo.[0322] UsacChannelPairElement() Abbreviation CPE. Syntactic element of the payload of the continuous data stream containing data for a channel pair. The channel pair can be obtained by transmitting two discrete channels or by transmitting one discrete channel and related to the Mps212 payload. This is signaled by means of stereoConfigIndex. The UsacChannelPairElement still contains SBR data in case SBR is active.
[0323] UsacLfeElement() Abreviação LFE. Elemento sintático que contém um canal de melhoria de baixa frequência de amostragem. LFEs são sempre codificadas utilizando o elemento fd_channel_stream().[0323] UsacLfeElement() Abbreviation LFE. Syntactic element that contains a low-frequency enhancement channel. LFEs are always encoded using the fd_channel_stream() element.
[0324] UsacExtElement() Elemento sintático que contém carga útil de extensão. O comprimento de um elemento de extensão é sinalizado como um comprimento padrão na configuração (USACExtElementConfig()) ou sinalizado no próprio UsacExtElement(). Se presente, a carga útil de extensão é do tipo usacExtElementType, conforme sinalizado na configuração.[0324] UsacExtElement() Syntactic element containing extension payload. The length of an extension element is either flagged as a default length in the configuration (USACExtElementConfig()) or flagged in UsacExtElement() itself. If present, the extension payload is of type usacExtElementType as flagged in the configuration.
[0325] usacIndependencyFlag Indica se o UsacFrame() atual pode ser decodificado completamente sem o conhecimento da informação das estruturas anteriores de acordo com a Tabela abaixo. [0325] usacIndependencyFlag Indicates whether the current UsacFrame() can be decoded completely without knowing the information of the previous structures according to the Table below.
[0326] NOTA: Favor consultar X.Y para recomendações sobre o uso de usacIndependencyFlag.[0326] NOTE: Please consult X.Y for recommendations on the use of usacIndependencyFlag.
[0327] usacExtElementUseDefaultLength Indica se o comprimento do elemento de extensão corresponde ao usacExtElementDefaultLength, que foi definido em UsacExtElementConfig().[0327] usacExtElementUseDefaultLength Indicates whether the length of the extension element matches the usacExtElementDefaultLength, which was set in UsacExtElementConfig().
[0328] usacExtElementPayloadLength Deve conter o comprimento do elemento de extensão em bytes. Este valor deve ser apenas explicitamente transmitido no fluxo contínuo de dados se o comprimento do elemento de extensão na presente unidade de acesso desviar do valor padrão, usacExtElementDefaultLength.[0328] usacExtElementPayloadLength Shall contain the length of the extension element in bytes. This value shall only be explicitly transmitted in the data stream if the length of the extension element in this access unit deviates from the default value, usacExtElementDefaultLength.
[0329] usacExtElementStart Indica se o presente usacExtElementSegmentData começa um dados bloco.[0329] usacExtElementStart Indicates whether the present usacExtElementSegmentData begins a data block.
[0330] usacExtElementStop Indica se o presente usacExtElementSegmentData termina um bloco de dados.[0330] usacExtElementStop Indicates whether the present usacExtElementSegmentData ends a data block.
[0331] usacExtElementSegmentData A concatenação de todos usacExtElementSegmentData de UsacExtElement() de estruturas consecutivas de USAC, começando do UsacExtElement() com usacExtElementStart==1 e incluindo o UsacExtElement() com usacExtElementStop==1 forma um bloco de dados. No caso de um bloco de dados completo estar contido em um UsacExtElement(), usacExtElementStart e usacExtElementStop devem ser definidos a 1. Os blocos de dados são interpretados como uma carga útil de extensão alinhada com o byte dependendo do usacExtElementType de acordo com a seguinte Tabela:[0331] usacExtElementSegmentData The concatenation of all consecutive usacExtElementSegmentData UsacExtElement() structures starting from the UsacExtElement() with usacExtElementStart==1 and including the UsacExtElement() with usacExtElementStop==1 forms a data block. In case a complete data block is contained in one UsacExtElement(), usacExtElementStart and usacExtElementStop must be set to 1. Data blocks are interpreted as a byte-aligned extension payload depending on the usacExtElementType according to the following Table:
[0332] Tabela - Interpretação do blocos de dados para decodificação da carga útil de extensão de USAC fill_byte Octeto de bits que pode ser utilizado para encher o fluxo contínuo de dados com bits que carregam nenhuma informação. O padrão exato do bit utilizado para fill_byte deve ser ‘10100101’. Elementos de Ajuda[0332] Table - Interpretation of data blocks for decoding the USAC extension payload fill_byte Octet of bits that can be used to fill the data stream with bits that carry no information. The exact bit pattern used for fill_byte must be '10100101'. Help Elements
[0333] nrCoreCoderChannels No contexto de um elemento de par de canais esta variável indica o número de canais do codificador central que formam a base para a codificação estéreo. Dependendo do valor de stereoConfigIndex este valor deve ser 1 ou 2.[0333] nrCoreCoderChannels In the context of a channel pair element this variable indicates the number of core encoder channels that form the basis for stereo encoding. Depending on the value of stereoConfigIndex this value should be either 1 or 2.
[0334] nrSbrChannels No contexto de um elemento de par de canais esta variável indica o número de canais no qual o processamento de SBR é aplicado. Dependendo do valor de stereoConfigIndex este valor deve ser 1 ou 2. Cargas úteis subsidiárias para USAC Termos e Definições[0334] nrSbrChannels In the context of a channel pair element this variable indicates the number of channels to which SBR processing is applied. Depending on the value of stereoConfigIndex this value must be either 1 or 2. Subsidiary Payloads for USAC Terms and Definitions
[0335] UsacCoreCoderData() Este bloco de dados contém os dados de áudio do codificador central. O elemento de carga útil contém para um ou dois canais do codificador central, tanto para o modo FD quanto para LPD. O modo específico é sinalizado por canal no começo do elemento.[0335] UsacCoreCoderData() This data block contains the audio data from the core encoder. The payload element contains payloads for one or two channels of the core encoder, for either FD or LPD mode. The specific mode is signaled per channel at the beginning of the element.
[0336] StereoCoreToolInfo() Toda a informação relacionada estéreo é capturada neste elemento. Lida com as várias dependências de campos de bits nos modos de codificação estéreo. Elementos de Ajuda[0336] StereoCoreToolInfo() All stereo related information is captured in this element. It handles the various bitfield dependencies in stereo coding modes. Help Elements
[0337] commonCoreMode Em um CPE este indicador indica se ambos os canais do codificador central codificados usam o mesmo modo.[0337] commonCoreMode On a CPE this flag indicates whether both encoded core encoder channels use the same mode.
[0338] Mps212Data() Este bloco de dados contém carga útil para o módulo estéreo Mps212. A presença destes dados é dependente do stereoConfigIndex.[0338] Mps212Data() This data block contains payload for the Mps212 stereo module. The presence of this data is dependent on the stereoConfigIndex.
[0339] common_window Indica se o canal 0 e canal 1 de um CPE usam os parâmetros idênticos da janela.[0339] common_window Indicates whether channel 0 and channel 1 of a CPE use identical window parameters.
[0340] common_tw Indica se canal 0 e canal 1 de um CPE usa os parâmetros idênticos para MDCT com tempo parado. Decodificação de UsacFrame()[0340] common_tw Indicates whether channel 0 and channel 1 of a CPE use identical parameters for MDCT with still time. UsacFrame() decoding
[0341] Um UsacFrame() forma uma unidade de acesso do fluxo contínuo de dados USAC. Cada UsacFrame decodifica nas amostras de saída 768, 1024, 2048 ou 4096 de acordo com outputFrameLength determinado da Tabela X.[0341] A UsacFrame() forms an access unit of the continuous USAC data stream. Each UsacFrame decodes at 768, 1024, 2048 or 4096 output samples according to the outputFrameLength determined from Table X.
[0342] O primeiro bit no UsacFrame() é o usacIndependencyFlag, que determina se uma dada estrutura pode ser decodificada sem qualquer conhecimento da estrutura anterior. Se o usacIndependencyFlag for definido a 0, então as dependências à estrutura prévia podem estar presentes na carga útil da estrutura atual.[0342] The first bit in UsacFrame() is the usacIndependencyFlag, which determines whether a given frame can be decoded without any knowledge of the previous frame. If usacIndependencyFlag is set to 0, then dependencies on the previous frame may be present in the payload of the current frame.
[0343] O UsacFrame() é adicionalmente feito de um ou mais elementos sintáticos que devem aparecer no fluxo contínuo de dados na mesma ordem que seus elementos de configuração correspondentes no UsacDecoderConfig(). A posição de cada elemento na série de todos os elementos é indexada por elemIdx. Para cada elemento a configuração correspondente, conforme transmitido no UsacDecoderConfig(), deste momento, ou seja, com o mesmo elemIdx, deve ser usado.[0343] The UsacFrame() is additionally made of one or more syntactic elements that must appear in the continuous data stream in the same order as their corresponding configuration elements in the UsacDecoderConfig(). The position of each element in the series of all elements is indexed by elemIdx. For each element the corresponding configuration, as transmitted in the UsacDecoderConfig(), of this moment, i.e. with the same elemIdx, must be used.
[0344] Estes elementos sintáticos são de um dos quatro tipos, que são listados na Tabela X. O tipo de cada um destes elementos é determinado por usacElementType. Pode haver vários elementos do mesmo tipo. Elementos que ocorrem na mesma posição elemIdx em diferentes estruturas devem pertencer ao mesmo fluxo.[0344] These syntactic elements are of one of the four types, which are listed in Table X. The type of each of these elements is determined by usacElementType. There may be several elements of the same type. Elements that occur at the same elemIdx position in different structures must belong to the same flow.
[0345] Tabela - Exemplos de possíveis cargas úteis simples de fluxos de dados contínuos [0345] Table - Examples of possible simple payloads of continuous data streams
[0346] Se estas cargas úteis do fluxo contínuo de dados tiverem de ser transmitidas sobre um canal de taxa constante então elas podem incluir um elemento da carga útil de extensão com um usacExtElementType de ID_EXT_ELE_FILL para ajustar a taxa de bit instantânea. Neste caso, um exemplo de um sinal estéreo codificado é:[0346] If these data stream payloads are to be transmitted over a constant rate channel then they may include an extension payload element with a usacExtElementType of ID_EXT_ELE_FILL to adjust the instantaneous bit rate. In this case, an example of an encoded stereo signal is:
[0347] Tabela - Exemplos de fluxo contínuo de dados estéreo simples com carga útil de extensão para gravar os bits de preenchimento. Decodificação de UsacSingleChannelElement()[0347] Table - Examples of simple stereo data stream with extension payload to record padding bits. UsacSingleChannelElement() decoding
[0348] A simples estrutura de UsacSingleChannelElement() é feita de um momento de um elemento UsacCoreCoderData() com nrCoreCoderChannels definidos a 1. Dependendo do sbrRatioIndex deste elemento um elemento UsacSbrData() segue com nrSbrChannels definidos a 1 também. Decodificação de UsacExtElement()[0348] The simple UsacSingleChannelElement() structure is made up of a single UsacCoreCoderData() element with nrCoreCoderChannels set to 1. Depending on the sbrRatioIndex of this element a UsacSbrData() element follows with nrSbrChannels set to 1 as well. UsacExtElement() decoding
[0349] As estruturas de UsacExtElement() em um fluxo contínuo de dados podem ser decodificadas ou puladas por um decodificador USAC. Cada extensão é identificada por um usacExtElementType, conduzido no UsacExtElement() associado ao UsacExtElementConfig(). Para cada usacExtElementType um decodificador específico pode estar presente.[0349] UsacExtElement() structures in a data stream may be decoded or skipped by a USAC decoder. Each extension is identified by a usacExtElementType, carried in the UsacExtElement() associated with UsacExtElementConfig(). For each usacExtElementType a specific decoder may be present.
[0350] Se um decodificador para a extensão estiver disponível ao decodificador USAC então a carga útil da extensão é encaminhada ao decodificador de extensão logo após o UsacExtElement() ser analisado pelo decodificador USAC.[0350] If a decoder for the extension is available to the USAC decoder then the extension payload is forwarded to the extension decoder right after the UsacExtElement() is parsed by the USAC decoder.
[0351] Se nenhum decodificador para a extensão estiver disponível ao decodificador USAC, um mínimo da estrutura é fornecido dentro do fluxo contínuo de dados, de modo que a extensão possa ser ignorada pelo decodificador USAC.[0351] If no decoder for the extension is available to the USAC decoder, a minimum of structure is provided within the data stream so that the extension can be ignored by the USAC decoder.
[0352] O comprimento de um elemento de extensão é especificado por um comprimento padrão em octetos, que podem ser sinalizados dentro do UsacExtElementConfig() correspondente e que podem ser dominados no UsacExtElement(), ou por uma informação de comprimento explicitamente fornecida no UsacExtElement(), que é um ou três octetos, utilizando o elemento sintático escapedValue().[0352] The length of an extension element is specified by a default length in octets, which can be signaled within the corresponding UsacExtElementConfig() and which can be overridden in UsacExtElement(), or by a length information explicitly provided in UsacExtElement(), which is one or three octets, using the escapedValue() syntactic element.
[0353] As cargas úteis de extensão que abrangem um ou mais UsacFrame() podem ser fragmentadas e sua carga útil pode ser distribuída entre os vários UsacFrame(). Neste caso o indicador usacExtElementPayloadFrag é definido a 1 e um decodificador deve coletar todos os fragmentos do UsacFrame() com usacExtElementStart definido a 1 e incluindo o UsacFrame() com usacExtElementStop definido a 1. Quando o usacExtElementStop for definido a 1 então a extensão é considerada como completa e é passada para o decodificador de extensão.[0353] Extension payloads that span one or more UsacFrame() may be fragmented and their payload may be distributed among the multiple UsacFrame(). In this case the usacExtElementPayloadFrag flag is set to 1 and a decoder shall collect all fragments from the UsacFrame() with usacExtElementStart set to 1 and including the UsacFrame() with usacExtElementStop set to 1. When the usacExtElementStop is set to 1 then the extension is considered complete and is passed to the extension decoder.
[0354] Observe que a proteção de integridade para uma carga útil de extensão fragmentada não é fornecida por esta especificação e outros meios devem ser usados para garantir a integridade de cargas úteis de extensão.[0354] Note that integrity protection for a fragmented extension payload is not provided by this specification and other means must be used to ensure the integrity of extension payloads.
[0355] Observe que todos os dados da carga útil de extensão são assumidos como alinhados por byte.[0355] Note that all extension payload data is assumed to be byte-aligned.
[0356] Cada UsacExtElement() deve obedecer às exigências resultantes do uso do usacIndependencyFlag. Colocar mais explicitamente, se usacIndependencyFlag for definido (==1) o UsacExtElement() deve ser decodificado sem conhecimento da estrutura prévia (e a carga útil de extensão que pode ser contida nela).[0356] Each UsacExtElement() must obey the requirements resulting from the use of usacIndependencyFlag. To put it more explicitly, if usacIndependencyFlag is set (==1) the UsacExtElement() must be decoded without knowledge of the prior structure (and the extension payload that may be contained within it).
[0357] O stereoConfigIndex, que é transmitido no UsacChannelPairElementConfig(), determina o tipo exato da codificação estéreo que é aplicada no dado CPE. Dependendo deste tipo de codificação estéreo tanto um ou dois canais do codificador central são realmente transmitidos no fluxo contínuo de dados e a variável nrCoreCoderChannels precisa ser definida corretamente. O elemento de sintaxe UsacCoreCoderData() então fornece os dados para um ou dois canais do codificador central.[0357] The stereoConfigIndex, which is passed in UsacChannelPairElementConfig(), determines the exact type of stereo encoding that is applied to the given CPE. Depending on this type of stereo encoding either one or two core encoder channels are actually transmitted in the data stream and the nrCoreCoderChannels variable needs to be set accordingly. The UsacCoreCoderData() syntax element then provides the data for one or two core encoder channels.
[0358] Semelhantemente pode haver dados disponíveis para um ou dois canais dependentes do tipo de codificação estéreo e o uso de eSBR (ou seja, se sbrRatioIndex>0). O valor de nrSbrChannels precisa ser definido corretamente e o elemento de sintaxe UsacSbrData() fornece dados eSBR para um ou dois canais.[0358] Similarly there may be data available for one or two channels depending on the stereo encoding type and the use of eSBR (i.e. if sbrRatioIndex>0). The value of nrSbrChannels needs to be set correctly and the UsacSbrData() syntax element provides eSBR data for one or two channels.
[0359] Finalmente o Mps212Data() é transmitido, dependendo do valor de stereoConfigIndex.[0359] Finally the Mps212Data() is transmitted, depending on the value of stereoConfigIndex.
[0360] Para manter uma estrutura regular no decodificador, o UsacLfeElement() é definido como um elemento padrão fd_channel_stream(0,0,0,0,x), ou seja, é igual a um UsacCoreCoderData() utilizando o codificador do domínio de frequência. Assim, a decodificação pode ser feita utilizando o procedimento padrão para decodificar um UsacCoreCoderData()- element.[0360] To maintain a regular structure in the decoder, UsacLfeElement() is defined as a standard element fd_channel_stream(0,0,0,0,x), i.e. it is equal to a UsacCoreCoderData() using the frequency domain encoder. Thus, decoding can be done using the standard procedure for decoding a UsacCoreCoderData()-element.
[0361] Para acomodar uma implementação mais eficiente da taxa de bit e de hardware do decodificador LFE, entretanto, várias restrições aplicam às opções usadas para a codificação deste elemento:[0361] To accommodate a more efficient bit rate and hardware implementation of the LFE decoder, however, several restrictions apply to the options used for encoding this element:
[0362] O campo window_sequence é sempre definido para 0 (ONLY_LONG_sequence);[0362] The window_sequence field is always set to 0 (ONLY_LONG_sequence);
[0363] Apenas os 24 coeficientes espectrais mais baixos de qualquer LFE podem ser não zero;[0363] Only the lowest 24 spectral coefficients of any LFE may be nonzero;
[0364] Nenhuma Forma de Ruído Temporal é utilizada, ou seja, tns_data_present para definir a 0;[0364] No Temporal Noise Shape is used, i.e. tns_data_present to set to 0;
[0365] O tempo distorcido não está ativo;[0365] Warped time is not active;
[0366] Nenhum preenchimento de ruído é aplicado. UsacCoreCoderData()[0366] No noise padding is applied. UsacCoreCoderData()
[0367] O UsacCoreCoderData() contém toda a informação para decodificar um ou dois canais do codificador central.[0367] UsacCoreCoderData() contains all the information to decode one or two channels from the core encoder.
[0368] A ordem da decodificação é:[0368] The decoding order is:
[0369] Obter o core_mode[] para cada canal;[0369] Get the core_mode[] for each channel;
[0370] No caso de dois canais codificados centrais (nrChannels==2), analisar o StereoCoreToolInfo() e determinar todos os parâmetros relacionados ao estéreo;[0370] In case of two central coded channels (nrChannels==2), parse the StereoCoreToolInfo() and determine all stereo related parameters;
[0371] Dependendo do core_modes sinalizado transmitir um lpd_channel_stream() ou um fd_channel_stream() para cada canal.[0371] Depending on the core_modes flag transmit either a lpd_channel_stream() or a fd_channel_stream() for each channel.
[0372] Como pode ser visto da lista acima, a decodificação de um canal do codificador central (nrChannels==1) resulta na obtenção do bit de core_mode seguido por um lpd_channel_stream ou fd_channel_stream, dependendo do core_mode.[0372] As can be seen from the above list, decoding a core encoder channel (nrChannels==1) results in getting the core_mode bit followed by either lpd_channel_stream or fd_channel_stream, depending on the core_mode.
[0373] No caso de dois canais do codificador central, algumas redundâncias de sinalização entre os canais pode ser explicada em particular se core_mode de ambos os canais for 0. Veja 6.2.X (Decodificação de StereoCoreToolInfo()) para obter mais detalhes. StereoCoreToolInfo()[0373] In the case of two core encoder channels, some signaling redundancies between channels can be explained in particular if core_mode of both channels is 0. See 6.2.X (StereoCoreToolInfo() decoding) for more details. StereoCoreToolInfo()
[0374] O StereoCoreToolInfo() permite codificar eficientemente os parâmetros, cujos valores podem ser compartilhados pelos canais do codificador central de um CPE no caso ambos os canais serem codificados no modo FD (core_mode[0,1]==0). Em particular, os elementos de dados a seguir são compartilhados, quando o indicador apropriado no fluxo contínuo de dados for definido a 1.[0374] StereoCoreToolInfo() allows to efficiently encode parameters whose values can be shared by the core encoder channels of a CPE in case both channels are encoded in FD mode (core_mode[0,1]==0). In particular, the following data elements are shared when the appropriate flag in the data stream is set to 1.
[0375] Tabela - Elemento do fluxo contínuo de dados compartilhado pelos canais de um par do canal do codificador central [0375] Table - Data stream element shared by channels of a central encoder channel pair
[0376] Se o indicador apropriado não for definido então os elementos de dados são transmitidos individualmente para cada canal do codificador central tanto em StereoCoreToolInfo() (max_sfb, max_sfb1) quanto em fd_channel_stream() que segue o StereoCoreToolInfo() no elemento UsacCoreCoderData().[0376] If the appropriate flag is not set then data elements are transmitted individually for each core encoder channel in both StereoCoreToolInfo()(max_sfb, max_sfb1) and fd_channel_stream() that follows the StereoCoreToolInfo() in the UsacCoreCoderData() element.
[0377] No caso de common_window==1 o StereoCoreToolInfo() também contém a informação sobre a codificação estéreo M/S e dados de previsão complexa no domínio MDCT (vide 7.7.2).[0377] In case of common_window==1 the StereoCoreToolInfo() also contains the information about the M/S stereo coding and complex prediction data in the MDCT domain (see 7.7.2).
[0378] UsacSbrData() Este bloco de dados contém a carga útil para a extensão da largura de banda de SBR para um ou dois canais. A presença destes dados é dependente de sbrRatioIndex.[0378] UsacSbrData() This data block contains the payload for extending the SBR bandwidth to one or two channels. The presence of this data is dependent on sbrRatioIndex.
[0379] SbrInfo() Este elemento contém parâmetros de controle de SBR que não requer um reajuste do decodificador quando mudado.[0379] SbrInfo() This element contains SBR control parameters that do not require decoder reset when changed.
[0380] SbrHeader() Este elemento contém dados do cabeçalho de SBR com parâmetros de configuração de SBR, que tipicamente não mudam ao longo de um fluxo contínuo de dados. Carga útil de SBR para USAC[0380] SbrHeader() This element contains SBR header data with SBR configuration parameters, which typically do not change over the course of a continuous data stream. SBR payload for USAC
[0381] Em USAC a carga útil SBR é transmitida em UsacSbrData(), que é uma parte integral de cada elemento de canal único ou elemento de par de canais. UsacSbrData() segue imediatamente UsacCoreCoderData(). Não há carga útil de SBR para canais LFE.[0381] In USAC the SBR payload is transmitted in UsacSbrData(), which is an integral part of each single channel element or channel pair element. UsacSbrData() immediately follows UsacCoreCoderData(). There is no SBR payload for LFE channels.
[0382] numSlots O número de faixas de tempo em uma estrutura Mps212Data.[0382] numSlots The number of time slots in an Mps212Data structure.
[0383] Embora alguns aspectos tenham sido descritos no contexto de um aparelho, fica claro que estes aspectos também representam uma descrição do método correspondente, onde um bloco ou dispositivo corresponde a uma etapa do método ou a uma função de uma etapa do método. De modo análogo, os aspectos descritos no contexto de uma etapa do método também representam uma descrição de um bloco correspondente ou item ou função de um aparelho correspondente.[0383] Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a function of a method step. Similarly, aspects described in the context of a method step also represent a description of a corresponding block or item or function of a corresponding apparatus.
[0384] Dependendo de certas exigências de implantação, as aplicações da invenção podem ser implementadas em hardware ou em software. A implementação pode ser realizada utilizando um meio de armazenamento digital, por exemplo, um disquete. um DVD, um CD, uma memória ROM, uma PROM, uma EPROM, uma EEPROM ou uma memória FLASH, tendo sinais de controle legíveis eletronicamente armazenados nele, que cooperam (ou podem cooperar) com um sistema de computador programável de modo que o respectivo método seja realizado.[0384] Depending on certain implementation requirements, applications of the invention may be implemented in hardware or in software. The implementation may be carried out using a digital storage medium, for example, a floppy disk, a DVD, a CD, a ROM memory, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored therein, which cooperate (or may cooperate) with a programmable computer system so that the respective method is carried out.
[0385] Algumas aplicações de acordo com a invenção compreendem um suporte de dados não transitório tendo sinais de controle eletronicamente legíveis, que podem cooperar com um sistema de computador programável, de modo que um dos métodos descritos aqui seja realizado.[0385] Some applications according to the invention comprise a non-transitory data carrier having electronically readable control signals, which can cooperate with a programmable computer system, so that one of the methods described herein is realized.
[0386] O sinal de áudio codificado pode ser transmitido através de um meio de transmissão com ou sem fio ou pode ser armazenado em um suporte legível por máquina ou em um meio de armazenamento não transitório.[0386] The encoded audio signal may be transmitted over a wired or wireless transmission medium or may be stored on a machine-readable medium or non-transitory storage medium.
[0387] Geralmente, as aplicações da presente invenção podem ser implementadas como um produto de programa de computador com um código do produto, o código do produto sendo operativo para realizar um dos métodos quando o produto do programa de computador for executado em um computador. O código do produto pode, por exemplo, ser armazenado em um suporte legível por máquina.[0387] Generally, applications of the present invention may be implemented as a computer program product having a product code, the product code being operative to perform one of the methods when the computer program product is executed on a computer. The product code may, for example, be stored on a machine-readable medium.
[0388] Outras aplicações compreendem o programa de computador para realizar um dos métodos descritos aqui, armazenados em um suporte legível por máquina.[0388] Other applications comprise the computer program for performing one of the methods described herein, stored in a machine-readable medium.
[0389] Em outras palavras, uma aplicação do método inventivo é, portanto, um programa de computador tendo um código do produto para realizar um dos métodos descritos aqui, quando o programa de computador executa em um computador.[0389] In other words, an application of the inventive method is therefore a computer program having product code for carrying out one of the methods described herein, when the computer program executes on a computer.
[0390] Outra aplicação do método inventivos é, portanto, um suporte de dados (ou um meio de armazenamento digital, ou um meio legível por computador) compreendendo, gravado nele, o programa de computador para realizar um dos métodos descritos aqui.[0390] Another application of the inventive method is therefore a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for carrying out one of the methods described herein.
[0391] Outra aplicação do método inventivo é, portanto, um fluxo de dados ou uma sequência de sinais representando o programa de computador para realizar um dos métodos descritos aqui. O fluxo de dados ou a sequência de sinais pode, por exemplo, ser configurado para ser transferido através de uma conexão de comunicação de dados, por exemplo, através da Internet.[0391] Another application of the inventive method is therefore a data stream or a sequence of signals representing the computer program for carrying out one of the methods described herein. The data stream or the sequence of signals may, for example, be configured to be transferred via a data communication connection, for example via the Internet.
[0392] Uma aplicação adicional compreende um meio de processamento, por exemplo, um computador, ou um dispositivo lógico programável, configurado ou adaptado para realizar um dos métodos descritos aqui.[0392] An additional application comprises a processing means, for example, a computer, or a programmable logic device, configured or adapted to perform one of the methods described herein.
[0393] Uma aplicação adicional compreende um computador tendo instalado nele o programa de computador para realizar um dos métodos descritos aqui.[0393] An additional application comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0394] Em algumas aplicações, um dispositivo lógico programável (por exemplo, um arranjo de portas lógicas programáveis) pode ser utilizado para realizar algumas ou todas as funcionalidades dos métodos descritos aqui. Em algumas aplicações, um arranjo de portas lógicas programáveis pode cooperar com um microprocessador para realizar um dos métodos descritos aqui. Geralmente, os métodos são preferivelmente realizados por qualquer aparelho de hardware.[0394] In some applications, a programmable logic device (e.g., an array of programmable logic gates) may be used to perform some or all of the functionality of the methods described herein. In some applications, an array of programmable logic gates may cooperate with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware device.
[0395] As aplicações acima descritas são meramente ilustrativas para os princípios da presente invenção. Deve ser entendido que modificações e variações das disposições e detalhes descritos aqui serão evidentes a outros especialistas na técnica. É a intenção, portanto, serem limitadas apenas pelo escopo das reivindicações de patente pendente e não pelos detalhes específicos apresentados em forma de descrição e explicação das aplicações aqui contidas.[0395] The applications described above are merely illustrative of the principles of the present invention. It should be understood that modifications and variations of the arrangements and details described herein will be apparent to others skilled in the art. It is intended, therefore, that they be limited only by the scope of the pending patent claims and not by the specific details set forth in the form of description and explanation of the applications contained herein.
Claims (9)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61/454,121 | 2011-03-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
BR122023012858B1 true BR122023012858B1 (en) | 2024-08-06 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10290306B2 (en) | Frame element positioning in frames of a bitstream representing audio content | |
BR122023012858B1 (en) | POSITIONING OF THE STRUCTURE ELEMENT IN STRUCTURES OF A CONTINUOUS DATA STREAM REPRESENTING AUDIO CONTENT | |
BR112013023945B1 (en) | POSITIONING OF THE STRUCTURE ELEMENT IN STRUCTURES OF A CONTINUOUS DATA STREAM REPRESENTING AUDIO CONTENT |