Nothing Special   »   [go: up one dir, main page]

BR112015031825A2 - controle jitter buffer, descodificador de áudio, método e programa de computador - Google Patents

controle jitter buffer, descodificador de áudio, método e programa de computador Download PDF

Info

Publication number
BR112015031825A2
BR112015031825A2 BR112015031825A BR112015031825A BR112015031825A2 BR 112015031825 A2 BR112015031825 A2 BR 112015031825A2 BR 112015031825 A BR112015031825 A BR 112015031825A BR 112015031825 A BR112015031825 A BR 112015031825A BR 112015031825 A2 BR112015031825 A2 BR 112015031825A2
Authority
BR
Brazil
Prior art keywords
time
jitter buffer
audio
signal
frame
Prior art date
Application number
BR112015031825A
Other languages
English (en)
Other versions
BR112015031825B1 (pt
Inventor
Lecomte Jérémie
Jander Manuel
Döhla Stefan
Reuschl Stefan
Original Assignee
Fraunhofer Ges Forschung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of BR112015031825A2 publication Critical patent/BR112015031825A2/pt
Publication of BR112015031825B1 publication Critical patent/BR112015031825B1/pt

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/012Comfort noise or silence coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Soundproofing, Sound Blocking, And Sound Damping (AREA)
  • Noise Elimination (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Abstract

resumo da patente de invenção para: “controle jitter buffer, descodificador de áudio, método e programa de computador”. controle jitter buffer para o controle de um fornecimento de um conteúdo de áudio descodificado com base em uma entrada de conteúdo áudio ser configurada para selecionar um escalonamento de tempo baseado nos quadros ou um escalonamento de tempo baseado na amostra de um modo adaptável ao sinal. um descodificador áudio utiliza esse tipo de controle jitter buffer. fig. 1

Description

Relatório Descritivo da Patente de Invenção para: CONTROLE JITTER BUFFER, DESCODIFICADOR DE ÁUDIO, MÉTODO E PROGRAMA DE COMPUTADOR.
Descrição
1. Área técnica
[001] Modelos de acordo com a invenção estão relacionados com um controle jitter buffer para o controle de um fornecimento de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio.
[002] Outros modelos de acordo com a invenção estão relacionados com um descodificador áudio para o fornecimento de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio.
[003] Outros modelos de acordo com a invenção estão relacionados com um método para o controle de um fornecimento de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio.
[004] Outros modelos de acordo com a invenção estão relacionados com um programa de computador para a execução do dito método.
2. Antecedentes da Invenção
[005] O armazenamento e transmissão de conteúdo áudio (incluindo conteúdo áudio geral, como conteúdo de música, conteúdo de discurso e mistura de conteúdo de áudio geral/discurso) é uma área técnica importante. Um desafio especial é originado pelo facto de que um ouvinte espera uma reprodução contínua de conteúdo áudio, sem interrupções e também sem quaisquer perturbações audíveis e/ou transmissão do conteúdo áudio. Ao mesmo tempo, é desejável manter os requisitos em relação aos meios de armazenamento e aos meios de transmissão de dados o mais baixo possível, de modo a manter os custos em um limite aceitável.
[006] Surgem problemas, por exemplo, se uma leitura de um meio de armazenamento for temporariamente interrompida ou atrasada, ou se uma transmissão entre uma fonte de dados e um coletor de dados for temporariamente interrompida ou atrasada. Por exemplo, uma transmissão através da internet não é altamente fiável, pois os pacotes TCP/IP podem perder-se, e visto que o atraso na transmissão sobre a internet pode variar, por exemplo, dependendo da situação de carga variável dos nós de internet.
2/71
[007] Contudo, é exigido, de modo a ter uma experiência satisfatória do utilizador, a existência de uma reprodução contínua de um conteúdo áudio, sem “intervalos” audíveis ou perturbações audíveis. Além disso, é desejável prevenir atrasos significativos que poderíam ser causados por uma utilização de memórias tampão de uma grande quantidade de informação áudio.
[008] Tendo em consideração o anteriormente discutido, poder-se-á reconhecer que existe uma necessidade de um conceito que proporcione uma boa qualidade áudio, mesmo no caso de um fornecimento descontínuo de uma informação áudio.
[009] 3. Resumo da Invenção
[010] Um modelo de acordo com a invenção cria um controle jitter buffer para o controle de um fornecimento de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio. O controle jitter buffer é configurado para selecionar um escalonamento de tempo baseado no quadro ou um escalonamento de tempo baseado na amostra de um modo adaptável ao sinal. [011] Este modelo de acordo com a invenção é baseado na descoberta de que a utilização de um escalonamento de tempo permite fornecer um conteúdo áudio contínuo descodificado com uma qualidade boa ou pelo menos aceitável mesmo se a entrada de conteúdo áudio compreende jitter significativo ou mesmo no caso de as partes (por exemplo, quadros) da entrada de conteúdo áudio se perderem. Além disso, este modelo de acordo com a invenção é baseado na descoberta de que um escalonamento de tempo baseado no quadro é computacionalmente eficaz e fornece bons resultados em alguns casos, enquanto um escalonamento de tempo baseado na amostra, tipicamente computacionalmente mais complexo, é recomendável (ou mesmo exigido) de modo a prevenir perturbações audíveis do conteúdo áudio descodificado nalgumas situações. Além disso, foi considerado que especialmente bons resultados podem ser obtidos selecionando o escalonamento de tempo baseado no quadro e o escalonamento de tempo baseado na amostra de um modo adaptável ao sinal, pois o tipo mais adequado do escalonamento de tempo pode ser utilizado desta maneira. Por conseguinte, este modelo de acordo com a invenção fornece uma boa contrapartida entre qualidade áudio, atraso e complexidade computacional.
3/71
[012] Εm um modelo preferido, os quadros de áudio são descartados ou inseridos para controlar a profundidade de um jitter buffer quando o escalonamento de tempo baseado no quadro é utilizado. Além disso, uma sobreposição e adição do desvio no tempo das partes do sinal de áudio são efetuadas quando o escalonamento de tempo baseado na amostra é utilizado. Por conseguinte, é possível computacionalmente utilizar abordagens muito eficazes como, por exemplo, descartar ou inserir quadros de áudio, quando o sinal de áudio permite essa abordagem sem provocar distorções de áudio inaceitáveis. Por outro lado, uma abordagem mais elaborada e bem ajustável, em especial uma sobreposição e adição de desvio de tempo de partes do sinal de áudio, é utilizada quando uma abordagem computacionalmente menos complexa (como, por exemplo, descartar ou inserir quadros de áudio) não iria (ou provavelmente não iria, sob o ponto de vista de uma avaliação ou análise do conteúdo áudio) resultar em uma qualidade de áudio satisfatória. Por conseguinte, um bom compromisso entre complexidade computacional e qualidade áudio pode ser obtido.
[013] Em um modelo preferido, o controle jitter buffer é configurado para mudar entre um escalonamento de tempo baseado no quadro, um escalonamento de tempo baseado no quadro e uma desativação de um escalonamento de tempo em uma maneira adaptável ao sinal. Ao utilizar esta abordagem, é possível (pelo menos temporariamente) prevenir uma operação de escalonamento de tempo quando é sabido que uma operação de escalonamento de tempo (mesmo uma operação do escalonamento de tempo baseado no quadro) iria resultar em uma degradação aceitável do conteúdo áudio.
[014] Em um modelo preferido, o controle jitter buffer é configurado para selecionar o escalonamento de tempo baseado no quadro ou o escalonamento de tempo baseado na amostra de modo a controlar uma profundidade de um de-jitter buffer (que poderá também ser brevemente designado como “jitter buffed). Por conseguinte, é possível manter uma “profundidade” (ou completude) do de-jitter buffer (ou jitter buffer) em um alcance desejado, permitindo lidar com o \itter sem significativamente degradar a qualidade áudio enquanto ainda mantém o atraso (que habitualmente corresponde à
4/71 profundidade do de-jitter buffer) razoavelmente pequeno.
[015] Em um modelo preferido, o controle jitter buffer é configurado para selecionar uma inserção de ruído confortável ou uma eliminação de ruído confortável se um quadro anterior tiver estado “inativo”. Este conceito tem como base a descoberta de que é suficiente gerar ruído de conforto se um quadro (por exemplo, um quadro anterior) estiver inativo, por exemplo, quando não existe discurso para certo período de tempo porque um “orador” está apenas a ouvir. Contudo, foi considerado que um escalonamento de tempo pode ser executado sem seriamente degradar uma impressão na audição inserindo ruído de conforto adicional (por exemplo, toda um quadro de ruído de conforto) em um conteúdo áudio, pois um período prolongado de ruído de conforto não será perceptível como uma perturbação significativa por um humano. Do mesmo modo, a eliminação do ruído de conforto (por exemplo, de um quadro de ruído de conforto) não degrada significativamente uma impressão na audição, pois um humano não irá “sentir falta” de um quadro de ruído de conforto. Por conseguinte, um escalonamento de tempo baseado no quadro muito eficaz (inserindo um quadro de ruído de conforto ou eliminando um quadro de ruído de conforto) pode ser executado se o quadro anterior tiver estado inativo (por exemplo, um quadro de ruído de conforto). Por conseguinte, a seleção adaptável ao sinal do escalonamento de tempo baseado no quadro se o quadro anterior tiver estado inativo trás consigo uma boa eficácia do escalonamento de tempo (enquanto um escalonamento de tempo baseado no quadro não é tipicamente adequado para partes “ativas” do conteúdo áudio a menos que existam circunstâncias específicas como, por exemplo, um buffer de transmissão vazio).
[016] E m um modelo preferido, a inserção de ruído de conforto resulta em uma inserção de um quadro de ruído de conforto em um de-jitter buffer (também brevemente designado como jitter buffer). Além disso, a eliminação do ruído de conforto resulta de preferência em uma remoção de um quadro de ruído de conforto do de-jitter buffer. Por conseguinte, um escalonamento de tempo muito eficaz pode ser executado, pois o quadro do ruído de conforto pode ser facilmente gerado (em que o quadro de ruído de conforto tipicamente apenas compreende uma informação de sinalização adequada para sinalização
5/71 de que um ruído de conforto deveria ser gerado).
[017] Em um modelo preferido, um respetivo quadro é considerado inativo quando o respetivo quadro transporta uma informação de sinalização indicando uma geração de um ruído de conforto. Por conseguinte, a seleção adaptável ao sinal do modo de escalonamento de tempo (escalonamento de tempo baseado no quadro ou escalonamento de tempo baseado na amostra) pode ser executada com pouco esforço.
[018] Em um modelo preferido, o controle jitter buffer é configurado para efetuar uma sobreposição e adição do desvio de tempo das partes do sinal de áudio se um quadro anterior tiver estado “ativo”. Este conceito é baseado na descoberta de que uma sobreposição e adição do desvio de tempo de partes do sinal de áudio reduz (ou evita mesmo) perturbações audíveis no caso de um quadro ativo (por exemplo, um quadro que compreende um conteúdo áudio, em vez de uma informação de sinalização que indica uma geração de ruído de conforto).
[019] Em um modelo preferido, a sobreposição e adição de desvio de tempo de partes do sinal de áudio é adaptada para permitir uma regulação de um desvio de tempo entre blocos de amostras de áudio obtidas com base em uma único quadro, ou com base nos quadros posteriores da entrada do conteúdo áudio com uma resolução menor do que um comprimento do bloco de amostras de áudio (ou menor do que um comprimento de um quadro), menor do que um quarto de um comprimento dos blocos de amostras de áudio (ou menor do que um quarto do comprimento do quadro), ou que é menor ou igual a duas amostras de áudio. Por outras palavras, quando se utiliza a sobreposição e adição de desvio de tempo de partes de sinal de áudio, o desvio de tempo pode ser regulado com uma resolução muito boa, que pode ser tão pequena quanto uma única amostra de áudio. Por conseguinte, o desvio de tempo pode ser regulado de modo que uma sobreposição e adição (entre posteriores blocos de amostras de áudio) possam ser executadas de uma maneira bem adaptada às partes do sinal (em que a sobreposição e adição é tipicamente executada entre parte do sinal dotadas de uma semelhança comparativamente elevada, que por seu lado previne perturbações).
6/71
[020] Em um modelo preferido, o controle jitter buffer é configurado para determinar se um bloco de amostras de áudio representa uma parte do sinal de áudio ativa, mas silenciosa (por exemplo, uma parte do sinal de áudio considerada “ativa” porque não existe a geração de ruído de conforto, mas que é considerada “silenciosa” porque a energia da dita parte do sinal de áudio é inferior ou igual a certo valor limite de energia, ou mesmo igual à zero), e a seleção de um modo de sobreposição e adição, no qual o desvio de tempo entre o bloco de amostras de áudio que representam uma parte do sinal de áudio silenciosa e um posterior bloco de amostras de áudio é estabelecido para pré-determinar o valor máximo, para um bloco de amostras de áudio que representam uma parte do sinal de áudio “silenciosa” (mas “ativaj. Por conseguinte, um escalonamento de tempo máximo é executado para essas partes do sinal de áudio “ativas”, mas “silenciosas”, por exemplo, de acordo com as definições anteriormente mencionadas. Em consequência disso, um escalonamento de tempo máximo é obtido para uma parte do sinal de áudio para o qual o escalonamento de tempo não provoca significativas perturbações audíveis, visto que as partes “silenciosas” do sinal de áudio podem ser ao escalonamento de tempo com poucas ou nenhumas distorções audíveis. Além disso, ao aplicar um escalonamento de tempo máximo às partes “silenciosas” do sinal de áudio, é suficiente aplicar apenas um escalonamento de tempo comparativamente menor às partes “não-silenciosas” do sinal de áudio (por exemplo, partes “ativas” do sinal de áudio compreendendo uma energia superior ou igual a um valor limite de energia), que, mais uma vez, ajuda a reduzir ou mesmo a prevenir distorções audíveis (visto que um escalonamento de tempo menor, quando aplicada a partes do sinal de áudio não-silenciosas, tipicamente resultam em distorções menores quando comparadas a um escalonamento de tempo maior).
[021] Em um modelo preferido, o controle jitter buffer é configurado para determinar se um bloco de amostras de áudio representa uma parte do sinal de áudio ativa e não-silenciosa, e para selecionar um modo de sobreposição e adição, no qual o desvio de tempo entre blocos de amostras de áudio (que se encontram sobrepostas e adicionadas de um modo com desvio de tempo, desvio de tempo em relação a uma posição temporal original) é determinado de
7/71 um modo adaptável ao sinal. Foi considerado que a determinação do desvio de tempo entre (posteriormente) blocos de amostras de áudio em um modo adaptável ao sinal é bem adequada para executar a sobreposição e adição no caso em que o bloco de amostras áudio (ou posteriores blocos de amostras de áudio) representa uma parte ativa e não-silenciosa do sinal de áudio, visto que as perturbações audíveis, que podem surgir de um escalonamento de tempo de uma parte ativa e não-silenciosa do sinal de áudio, são reduzidas (ou mesmo prevenidas) pela determinação adaptável ao sinal do desvio de tempo a ser aplicado para a operação de sobreposição e adição.
[022] Em um modelo preferido, o controle jitter buffer é configurado para selecionar uma inserção de um quadro oculto em resposta a uma determinação em que uma dilatação do tempo é exigida e que um jitter buffer está vazio. Por conseguinte, o controle jitter buffer pode executar um manuseamento específico no caso de um jitter buffer vazio, visto que outros conceitos de escalonamento de tempo tipicamente não trazem bons resultados no caso de um jitter buffer vazio. Por exemplo, o quadro oculto pode compreender um conteúdo áudio idêntico ao conteúdo áudio do quadro anterior (por exemplo, o último quadro obtido antes do jitter buffer funciona vazia). Contudo, no caso em que o quadro anterior, antes do jitter buffer funcionar vazio, transporta uma informação de sinalização indicando uma geração de ruído de conforto, o quadro oculto pode compreender também essa informação de sinalização indicando a geração do ruído de conforto.
[023] Em um modelo preferido, o controle jitter buffer é configurado para selecionar o escalonamento de tempo baseado no quadro ou o escalonamento de tempo baseado na amostra dependendo de se uma transmissão contínua juntamente com a geração de ruído de conforto está atualmente a ser utilizada (ou equivalentemente, foi utilizada para o quadro anterior). Este conceito é baseado na descoberta de que é ineficaz utilizar um escalonamento de tempo baseado na amostra se uma transmissão descontínua juntamente com a geração de ruído de conforto for atualmente utilizada (ou foi utilizada para um quadro anterior). Por conseguinte, o controle jitter buffer pode utilizar a informação de se uma transmissão descontínua (também designada DTX) juntamente com a geração de ruído de conforto (também designado CNG)
8/71 estiver a ser utilizada (ou foi utilizada para um quadro anterior) de modo a facilitar a mudança entre o escalonamento de tempo baseado no quadro e o escalonamento de tempo baseado na amostra.
[024] Em um modelo preferido, o controle jitter buffer é configurado para selecionar um escalonamento de tempo baseado no quadro se uma geração de ruído de conforto estiver a ser utilizada (ou, equivalentemente, foi utilizada para um quadro anterior), e para selecionar um escalonamento de tempo baseado na amostra se a geração de ruído de conforto não estiver a ser utilizada (ou, equivalentemente, não foi utilizada para um quadro anterior). Por conseguinte, o modo do escalonamento de tempo está bem adaptado ao sinal (mesmo assim, um “escalonamento de tempo” baseado no quadro utilizando um quadro oculto pode também ser utilizado em condições excecionais de um jitter buffer vazio).
[025] Em um modelo preferido, o controle jitter buffer é configurado para selecionar o ruído de conforto ou a eliminação de um ruído de conforto para um escalonamento de tempo se uma transmissão descontínua juntamente com a geração do ruído de conforto estiver a ser utilizada (ou, equivalentemente, foi utilizada para um quadro anterior), para selecionar uma operação de sobreposição e adição, utilizando um desvio de tempo pré-determinado para um escalonamento de tempo se uma parte do sinal de áudio atual (ou, equivalentemente, uma parte do sinal de áudio anterior) estiver ativa (por exemplo, não utiliza uma geração de ruído de conforto), mas compreende uma energia de sinal menor ou igual a um valor de energia limite (parte “silenciosa” do sinal de áudio), e se um jitter buffer não está vazio, para selecionar uma operação de sobreposição e adição utilizando um desvio de tempo adaptável ao sinal para um escalonamento de tempo se a atual parte do sinal de áudio (ou, equivalentemente, uma parte do sinal de áudio anterior) estiver ativa (por exemplo, não compreende geração de ruído de conforto) e compreende uma energia de sinal superior ou igual ao valor de energia limite e se o jitter buffer não está vazio, e para selecionar uma inserção de um quadro oculto para um escalonamento de tempo se uma parte do sinal de áudio atual (ou, equivalentemente, uma parte do sinal de áudio anterior) estiver ativa e o jitter buffer estiver vazio. Por conseguinte, um modo adequado de escalonamento
9/71 de tempo pode ser selecionado, em uma maneira computacionalmente eficaz, para cada parte (ou quadro) de um sinal de áudio.
[026] Em um modelo preferido, o controle jitter buffer é configurado para selecionar uma operação de sobreposição e adição utilizando um desvio de tempo adaptável ao sinal e um mecanismo de controle de qualidade para um escalonamento de tempo se uma parte do sinal de áudio atual (ou, equivalentemente, uma parte do sinal de áudio anterior) estiver ativa (por exemplo, não compreende geração de ruído de conforto) e compreende uma energia de sinal maior ou igual ao valor de energia limite e se o jitter buffer não está vazio. A utilização de uma operação de sobreposição e adição utilizando desvio de tempo adaptável ao sinal e um mecanismo de controle de qualidade trás a vantagem de que é possível evitar perturbações audíveis intoleráveis utilizando o mecanismo de controle de qualidade. Assim, o mecanismo de controle de qualidade pode, por exemplo, evitar a aplicação de um escalonamento de tempo, mesmo se a parte do sinal de áudio atual estiver ativa e compreenda uma energia de sinal maior ou igual ao valor de energia limite, e mesmo se um desvio de tempo for exigido por uma lógica de controle.
[027] Um modelo de acordo com a invenção cria um descodificador áudio para fornecer um conteúdo de áudio descodificado com base em uma entrada de conteúdo áudio. O descodificador áudio compreende um jitter buffer configurado para buffer uma série de quadros de áudio que representam blocos de amostras de áudio. O descodificador áudio compreende também um núcleo descodificador configurado para fornecer blocos de amostras de áudio baseadas em quadros de áudio recebidas do jitter buffer. O descodificador áudio compreende também um dispositivo de tempo baseado na amostra, em que o dispositivo de tempo baseado na amostra é configurado para fornecer blocos de escalonamento de tempo de amostras de áudio baseadas nas amostras de áudio fornecidas pelo núcleo descodificador. Além disso, o descodificador áudio compreende um controle jitter buffer, tal como descrito em cima. O controle jitter buffer é configurado para selecionar um escalonamento de tempo baseado no quadro, executada pelo jitter buffer, ou um escalonamento de tempo baseado na amostra, executada pelo dispositivo de tempo baseado na amostra, em uma maneira adaptável ao sinal. Por
10/71 conseguinte, dois conceitos de escalonamento de tempo diferentes são selecionados pelo controle jitter buffer, em que o escalonamento de tempo baseado no quadro é executado antes de os quadros de áudio serem introduzidos no núcleo descodificador (por exemplo, adicionando ou removendo todos os quadros de áudio), e em que o escalonamento de tempo baseado na amostra é executado com base nos blocos de amostras de áudio pelo núcleo descodificador. Assim, uma seleção é feita entre as duas abordagens de escalonamento de tempo significativamente diferentes em uma maneira adaptável ao sinal, permitindo uma adaptação do modo de escalonamento de tempo ao sinal, e que consequentemente trás uma boa eficácia enquanto evita perturbações (ou distorções) audíveis excessivas.
[028] Em um modelo preferido, o controle jitter buffer é configurado para descartar ou inserir quadros de áudio de modo a executar um quadro baseada no escalonamento de tempo. Por conseguinte, o escalonamento de tempo pode ser executado de uma maneira especialmente eficiente. Os quadros de tempo descartados podem, por exemplo, ser quadros de tempo compreendendo uma informação de sinalização indicando uma geração de ruído audível (e, possivelmente também indicando “silencio”). Além disso, os quadros de tempo inseridos podem, por exemplo, ser quadros de tempo compreendendo uma informação de sinalização indicando que um ruído audível deverá ser gerado. Tais quadros de tempo podem ser facilmente inseridas ou retidas, sendo que existem habitualmente quase nenhumas (ou nenhuma) distorções audíveis, se o quadro descartado, ou um quadro anterior precedente ao quadro inserido, compreender uma informação de sinalização indicando a geração de um ruído de conforto.
[029] Em um modelo preferido, o descodificador áudio é configurado para executar uma geração de ruído de conforto em resposta a um quadro que transporta uma informação de sinalização indicando uma geração de ruído de conforto. Além disso, o núcleo descodificador está de preferência configurado para executar uma ocultação em resposta a um jitter buffer vazio. A utilização de um núcleo descodificador configurado para executar uma geração de ruído de conforto permite uma transmissão eficiente de um conteúdo áudio, e permite também um escalonamento de tempo eficiente. Além disso, a utilização de um
11/71 núcleo descodificador configurado para executar uma ocultação em resposta a um jitter buffer vazio evita o problema de uma reprodução de um conteúdo áudio ser interrompido no caso de um jitter buffer vazio sem a função de ocultação. Assim, a utilização do núcleo descodificador descrito permite um fornecimento eficiente e fiável do conteúdo áudio descodificado.
[030] Em um modelo preferido, o dispositivo de tempo baseado na amostra é configurado para executar o escalonamento de tempo do sinal de entrada de áudio dependendo do cálculo ou estimativa da qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo. Por conseguinte, um mecanismo adicional é introduzido reduzindo ou mesmo evitando a geração de perturbações audíveis em uma segunda etapa, isto é, após a decisão ter sido tomada em utilizar o escalonamento de tempo baseado na amostra. Por outras palavras, a seleção entre o escalonamento de tempo baseado no quadro e o escalonamento de tempo baseado na amostra é executado em uma primeira etapa em uma maneira adaptável ao sinal, e o controle de qualidade (estimativa computacional da qualidade da versão do escalonamento de tempo do sinal de áudio obtido pelo escalonamento de tempo baseado na amostra) é executado em uma segunda etapa, permitindo omitir um escalonamento de tempo (baseado na amostra) se o escalonamento de tempo fosse degradar significativamente o conteúdo áudio, de modo que a qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo seria má.
[031] Um modelo de acordo com a invenção cria um método para o fornecimento de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio. O método compreende a seleção de um escalonamento de tempo baseado no quadro ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal. Esta método é baseado nas mesmas considerações que o controle jitter buffer anteriormente descrito e que o descodificador áudio anteriormente descrito.
[032] Ainda outro modelo de acordo com a invenção cria um programa de computador para executar o dito método quando o programa de computador está a funcionar no computador. O programa de computador é baseado nas
12/71 mesmas considerações que o método anteriormente referido.
[033] 4. Breve Descrição das Figuras
[034] Modelos de acordo com a invenção serão subsequentemente descritos tendo como referência as figuras em anexo, nas quais:
[035] A Fig. 1 ilustra um esquema de blocos de um controle jitter buffer, de acordo com um modelo desta invenção;
[036] A Fig. 2 ilustra um esquema de blocos de um dispositivo de tempo, de acordo com um modelo desta invenção;
[037] A Fig. 3 ilustra um esquema de blocos de um descodificador áudio, de acordo com um modelo desta invenção;
[038] A Fig. 4 ilustra um esquema de blocos de um descodificador áudio de acordo com outro modelo desta invenção, em que é apresentada uma visão geral sobre a gestão do jitter buffer (JBM);
[039] A Fig. 5 ilustra um pseudo código de programa de um algoritmo para controlar um nível de buffer PCM;
[040] A Fig. 6 ilustra um pseudo código de programa de um algoritmo para calcular um valor de atraso e um valor de desvio de um tempo recebido e uma marca temporal RTP de um pacote RTP;
[041] A Fig. 7 ilustra um pseudo código de programa de um algoritmo para calcular os valores de atraso no alvo;
[042] A Fig. 8 ilustra um fluxograma de uma lógica de controle do gestor jitter buffer;
[043] A Fig. 9 ilustra uma representação do esquema de blocos de um WSOLA modificado com controle de qualidade;
[044] As Figs. 10 e 10b ilustram um fluxograma de um método para o controle de um dispositivo de tempo;
[045] A Fig. 11 ilustra um pseudo código de programa de um algoritmo para controle de qualidade para escalonamento de tempo;
[046] A Fig. 12 ilustra uma representação gráfica de um atraso no alvo e de um atraso na reprodução, obtido por um modelo de acordo com esta invenção;
[047] A Fig. 13 ilustra uma representação gráfica de um escalonamento de tempo, executada no modelo de acordo com esta invenção;
13/71
[048] A Fig. 14 ilustra um fluxograma de um método para o controle de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio; e [049] A Fig. 15 ilustra um fluxograma de um método para uma versão do escalonamento de tempo de um sinal de entrada de áudio, de acordo com um modelo desta invenção.
[050] 5. Descrição Detalhada dos Modelos
[051] 5.11 Controle Jitter Buffer de Acordo com a Fig. 1
[052] A Fig. 1 ilustra um esquema de blocos de um controle jitter buffer, de acordo com um modelo desta invenção. O controle jitter buffer 100 para o controle de um fornecimento de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio recebe um sinal de áudio 110 ou uma informação relativa a um sinal de áudio (cuja informação pode descrever uma ou mais características do sinal de áudio, ou das quadros ou outras partes de sinal do sinal de áudio).
[053] Além disso, o controle jitter buffer 100 fornece uma informação de controle (por exemplo, um sinal de controle) 112 para um escalonamento baseado no quadro. Por exemplo, a informação de controle 112 pode compreender um sinal de ativação (para o escalonamento de tempo baseado no quadro) e/ou uma informação de controle quantitativa (para o escalonamento de tempo baseado no quadro),
[054] Além disso, o controle jitter buffer 100 fornece uma informação de controle (por exemplo, um sinal de controle) 114 para o escalonamento de tempo baseado na amostra. A informação de controle 114 pode, por exemplo, compreender um sinal de ativação e/ou uma informação de controle quantitativa para o escalonamento de tempo baseado na amostra.
[055] O controle jitter buffer 110 é configurado para selecionar um escalonamento de tempo baseado no quadro ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal. Por conseguinte, o controle jitter buffer pode ser configurado para avaliar o sinal de áudio ou a informação relativa ao sinal de áudio 110 e para fornecer, nessa base, a informação de controle 112 e/ou a informação de controle 114. Por conseguinte, a decisão se um escalonamento de tempo baseado no quadro ou um escalonamento de tempo baseado na amostra é utilizada pode ser
14/71 adaptada às características do sinal de áudio, por exemplo, de maneira que o escalonamento de tempo baseado no quadro computacionalmente simples seja utilizada se for esperado (ou estimado) com base no sinal de áudio e/ou com base na informação relativa a uma ou mais características do sinal de áudio que o escalonamento de tempo baseado no quadro não resulta em uma degradação significativa do conteúdo áudio. Pelo contrário, o controle jitter buffer habitualmente decide utilizar o escalonamento de tempo baseado na amostra se for esperado ou estimado (pelo controle jitter buffer), com base em uma avaliação das características do sinal de áudio 110, que o escalonamento de tempo baseado na amostra tem de evitar perturbações audíveis aquando na execução de um escalonamento de tempo.
[056] Além disso, dever-se-á ter em atenção que o controle jitter buffer 110 pode naturalmente receber também informação de controle adicional, por exemplo informação de controle indicando se um escalonamento de tempo deverá ser executado ou não.
[057] A seguir são descritos alguns detalhes opcionais do controle jitter buffer 100. Por exemplo, o controle jitter buffer 100 pode fornecer a informação de controle 112, 114 de modo que os quadros de áudio são descartados ou inseridas para controlarem uma profundidade de um jitter buffer quando o escalonamento de tempo baseado no quadro é utilizado, e de modo que um desvio de tempo da sobreposição e adição das partes do sinal de áudio seja executado quando o escalonamento de tempo baseado no quadro é utilizado. Por outras palavras, o controle jitter buffer 100 pode cooperar, por exemplo, com o jitter buffer (também designado como de-jitter buffer em alguns casos) e controlar o jitter buffer para executar o escalonamento de tempo baseado no quadro. Neste caso, a profundidade do jitter buffer pode ser controlada retirando quadros do jitter buffer, ou inserindo quadros (por exemplo, simples quadros compreendendo uma sinalização em como o quadro está “inativo” e em como uma geração de ruído de conforto deverá ser utilizada) no jitter buffer. Além disso, o controle jitter buffer 100 pode controlar um dispositivo de tempo (por exemplo, um dispositivo de tempo baseado na amostra) para executar uma sobreposição e adição de desvio de tempo de parte do sinal de áudio.
[058] O controle jitter buffer 100 pode ser configurado para mudar entre
15/71 um escalonamento de tempo baseado no quadro, um escalonamento de tempo baseado na amostra e uma desativação do escalonamento de tempo de maneira adaptável ao sinal. Por outras palavras, o controle jitter buffer tipicamente não apenas distingue entre um escalonamento de tempo baseado no quadro e um escalonamento de tempo baseado na amostra, mas seleciona também um estado no qual não existe qualquer escalonamento de tempo. Por exemplo, o último estado pode ser selecionado se não houver necessidade de um escalonamento de tempo porque a profundidade do jitter buffer encontra-se em um alcance aceitável. Por outras palavras, o escalonamento de tempo baseado no quadro e o escalonamento de tempo baseado na amostra não são habitualmente apenas os dois modos de operação que podem ser seletivos pelo controle jitter buffer.
[059] O controle jitter buffer 100 pode também considerar uma informação relativa à profundidade de um jitter buffer para decidir qual o modo de operação (por exemplo, escalonamento de tempo baseado no quadro, escalonamento de tempo baseado na amostra ou nenhum escalonamento de tempo) deverá ser utilizado. Por exemplo, o controle jitter buffer pode comparar um valor-alvo descrevendo uma profundidade desejada do jitter buffer (também designado como de-jitter buffer) e um verdadeiro valor descrevendo uma profundidade real do jitter buffer e selecionar o modo de operação (escalonamento de tempo baseado no quadro, escalonamento de tempo baseado na amostra ou nenhum escalonamento de tempo) dependendo da dita comparação, de modo que o escalonamento de tempo baseado no quadro ou o escalonamento de tempo baseado na amostra são escolhidos de modo a controlar uma profundidade do jitter buffer.
[060] O controle jitter buffer 100 pode, por exemplo, ser configurado para selecionar uma inserção de ruído de conforto ou uma eliminação de ruído de conforto se o quadro anterior tiver estado inativo (que pode, por exemplo, ser reconhecida com base no próprio sinal de áudio 110, ou com base em uma informação relativa ao sinal de áudio, por exemplo, uma bandeira identificadora de silêncio SID no caso de um modo de transmissão descontínua). Por conseguinte, o controle jitter buffer 100 pode assinalar a um jitter buffer (também designado como de-jitter buffer) que um quadro de ruído de conforto
16/71 deverá ser inserida, se uma dilatação de tempo for desejada e um quadro anterior (na atual quadro) estiver inativa. Além disso, o controle jitter buffer 100 pode dar instrução ao jitter buffer (ou o de-jitter buffer) para remover o quadro de ruído de conforto (por exemplo, um quadro compreendendo uma informação de sinalização indicando que uma geração de ruído de conforto deverá ser executada) se for desejado executar um encurtamento do tempo e o quadro anterior tiver estado inativo (ou a atual quadro estiver inativa). Dever-se-á ter em atenção que um respetivo quadro pode ser considerado inativo quando o respetivo quadro transporta uma informação de sinalização indicando uma geração de um ruído de conforto (e tipicamente não compreende conteúdo de áudio codificado adicional). Essa informação de sinalização pode, por exemplo, tomar a forma de uma bandeira indicadora de silêncio (bandeira SID) no caso de um modo de transmissão descontínua.
[061] Pelo contrário, o controle jitter buffer 100 é de preferência configurado para selecionar uma sobreposição e adição de desvio de tempo de partes do sinal de áudio se um quadro anterior tiver estado ativa (por exemplo, se o quadro anterior não compreende informação de sinalização indicando que um ruído de conforto deveria ser gerado). Essa sobreposição e adição de desvio de tempo de partes do sinal de áudio permite habitualmente um ajuste de um desvio de tempo entre blocos de amostras de áudio obtidas com base em quadros posteriores da entrada de informação de áudio com uma resolução comparativamente alta (por exemplo, com uma resolução mais inferior ao comprimento dos blocos de amostras de áudio, ou inferior ao de um quarto do comprimento dos blocos de amostras de áudio, ou mesmo inferior ou igual a duas amostras de áudio, ou tão inferior quanto uma única amostra de áudio). Por conseguinte, a seleção do escalonamento de tempo baseado na amostra permite um escalonamento de tempo muito sintonizado, o que ajuda a evitar perturbações audíveis para quadros ativos.
[062] No caso em que o controle jitter buffer seleciona um escalonamento de tempo baseado na amostra, o controle jitter buffer pode também fornecer informação de controle adicional para regular, ou sintonizar, o escalonamento de tempo baseado na amostra. Por exemplo, o controle jitter buffer pode ser configurado para determinar se um bloco de amostras de áudio representa uma
17/71 parte do sinal de áudio ativa mas “silenciosa”, por exemplo uma parte do sinal de áudio que compreende uma energia comparativamente pequena. Neste caso, isto é, se a parte do sinal de áudio estiver “ativa” (por exemplo, não uma parte do sinal de áudio para o qual uma geração de ruído de conforto é utilizada no descodificador áudio, em vez de uma descodificação mais detalhada de um conteúdo de áudio) mas “silenciosa” (por exemplo, na medida em que a energia do sinal está abaixo de certo valor de energia limite, ou mesmo igual à zero), o controle jitter buffer pode fornecer a informação de controle 114 para selecionar um modo de sobreposição e adição, no qual um desvio de tempo entre um bloco de amostras de áudio representa a parte do sinal de áudio “silenciosa” (mas ativa) e um bloco posterior de amostras de áudio é estabelecido para um valor máximo pré-determinado. Por conseguinte, um dispositivo de tempo baseado na amostra não precisa de identificar uma quantidade adequada de escalonamento de tempo com base em uma comparação detalhada de blocos posteriores de amostras de áudio, mas podem em vez disso simplesmente utilizar o valor máximo pré-determinado para o desvio de tempo. Dever-se-á entender que uma parte “silenciosa” do sinal de áudio não irá habitualmente provocar perturbações significativas em uma operação de sobreposição e adição, independentemente da verdadeira escolha do desvio de tempo. Consequentemente, a informação de controle 114 fornecida pelo controle jitter buffer pode simplificar o processamento a ser executado pelo dispositivo de tempo baseado na amostra.
[063] Pelo contrário, se o controle jitter buffer 110 perceber que um bloco de amostras de áudio representa uma parte do sinal de áudio “ativa” e não silenciosa (por exemplo, uma parte do sinal de áudio para o qual não existe geração de ruído de conforto, e que compreende também uma energia de sinal que se encontra acima de certo valor limite), o controle jitter buffer fornece a informação de controle 114 para desse modo selecionar um modo de sobreposição e adição na qual o desvio de tempo entre blocos de amostras de áudio é determinado em uma maneira adaptável ao sinal (por exemplo, através de um dispositivo de tempo baseado na amostra e utilizando uma determinação de semelhanças entre blocos posteriores de amostras de áudio).
[064] Além disso, o controle jitter buffer 100 pode também receber uma
18/71 informação em uma verdadeira completude do buffer. O controle jitter buffer 100 pode selecionar uma inserção de um quadro oculto (isto é, um quadro gerada utilizando um mecanismo de recuperação de perda de pacote, por exemplo utilizando uma predição com base nos quadros anteriormente descodificadas) em resposta a uma determinação que uma dilatação de tempo é exigida e que o jitter buffer está vazio. Por outras palavras, o controle jitter buffer pode iniciar um manuseamento excecional para um caso no qual, basicamente, um escalonamento de tempo baseado na amostra seria desejada (porque o quadro anterior, ou o quadro atual, está “ativo”), mas em que um escalonamento de tempo baseado na amostra (por exemplo utilizando uma sobreposição e adição) não pode ser executada de modo adequado porque o jitter buffer (ou de-jitter buffer) está vazio. Assim, o controle jitter buffer 100 pode ser configurado para fornecer informação de controle 112, 114 adequada mesmo para casos excecionais.
[065] De modo a simplificar a operação do controle jitter buffer 100, o controle jitter buffer 100 pode ser configurado para selecionar o escalonamento de tempo baseado no quadro ou o escalonamento de tempo baseado na amostra dependendo de se uma transmissão descontínua (também brevemente designada como “DTX”) juntamente com a geração de ruído de conforto (também brevemente designada como “CNG”) é atualmente utilizada. Por outras palavras, o controle jitter buffer 100 pode, por exemplo, selecionar o escalonamento de tempo baseado no quadro se for reconhecido, com base no sinal de áudio ou com base em uma informação relativa ao sinal de áudio, que um quadro anterior (ou um quadro atual) é um quadro “inativa”, para a qual uma geração de ruído de conforto deveria ser utilizada. Isto pode ser determinado, por exemplo, através da avaliação de uma informação de sinalização (por exemplo, uma bandeira, como a chamada bandeira “SID”), incluída em uma representação codificada do sinal de áudio. Por conseguinte, o controle jitter buffer pode decidir que o escalonamento de tempo baseado no quadro deverá ser utilizado se uma transmissão descontínua juntamente com uma geração de ruído de conforto estiver a ser atualmente utilizada, visto que se pode esperar que apenas pequenas distorções audíveis, ou nenhumas distorções audíveis, são provocadas por esse escalonamento de tempo neste
19/71 caso. Pelo contrário, o escalonamento de tempo baseado na amostra pode ser utilizado de outro modo (por exemplo, se uma transmissão descontínua juntamente com uma geração de ruído de conforto não estiver a ser atualmente utilizada), salvo se não existirem quaisquer circunstâncias excecionais (como, por exemplo, um jitter buffer vaz\o).
[066] De preferência, o controle jitter buffer pode selecionar entre um dos (pelo menos) quatro modos no caso em que um escalonamento de tempo é necessário. Por exemplo, o controle jitter buffer pode ser configurado para selecionar uma inserção do ruído de conforto ou uma eliminação do ruído de conforto para um escalonamento de tempo se uma transmissão descontínua juntamente com uma geração do ruído de conforto estiver a ser atualmente utilizada. Além disso, o controle jitter buffer pode ser configurado para selecionar uma sobreposição e adição utilizando um desvio de tempo predeterminado para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa mas compreender uma energia de sinal inferior ou igual ao valor de energia limite, e se um jitter buffer não estiver vazio. Ainda, o controle jitter buffer pode ser configurado para selecionar uma operação de sobreposição e adição utilizando um desvio de tempo adaptável ao sinal para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e compreender uma energia de sinal superior ou igual ao valor de energia limite e se o jitter buffer não estiver vazio. Finalmente, o controle jitter buffer pode ser configurado para selecionar uma inserção de um quadro oculto para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e se o jitter buffer estiver vazio. Por conseguinte, poder-se-á observar que o controle jitter buffer pode ser configurado para selecionar um escalonamento de tempo baseado no quadro ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal.
[067] Além disso, dever-se-á ter em atenção que o controle jitter buffer pode ser configurado para selecionar uma operação de sobreposição e adição utilizando um desvio de tempo adaptável ao sinal e um mecanismo de controle de qualidade para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e compreender uma energia de sinal maior ou igual ao valor de energia limite e se o jitter buffer não estiver vazio. Por outras palavras,
20/71 poderá existir um mecanismo de controle de qualidade adicional para o escalonamento de tempo baseado na amostra, que suplementa a seleção adaptável ao sinal entre um escalonamento de tempo baseado no quadro e um escalonamento de tempo baseado na amostra, executada pelo controle jitter buffer. Desse modo, um conceito de hierarquia pode ser utilizado, em que o jitter buffer executa a seleção inicial entre o escalonamento de tempo baseado no quadro e o escalonamento de tempo baseado na amostra, e em que um mecanismo de controle de qualidade adicional é implementado para assegurar que o escalonamento de tempo baseado na amostra não resulta em uma degradação da qualidade áudio inaceitável.
[068] Para concluir, uma funcionalidade fundamental do controle jitter buffer 100 tem sido explicada, e as suas melhorias opcionais têm também sido explicadas. Ainda, dever-se-á ter em atenção que o controle jitter buffer 100 pode ser complementado por qualquer uma das características e funcionalidades aqui descritas.
[069] 5.3. Dispositivo de Tempo de acordo com a Fiq. 2
[070] A Fig. 2 ilustra um esquema de blocos de um dispositivo de tempo
200, de acordo com um modelo desta invenção. O dispositivo de tempo 200 é configurado para receber um sinal de entrada de áudio 210 (por exemplo, sob a forma de uma sequência de amostras fornecidas por um núcleo descodificador) e fornece, com base nisso, uma versão do escalonamento de tempo 212 do sinal de entrada de áudio. O dispositivo de tempo 200 é configurado para calcular ou estimar uma qualidade de uma versão do escalonamento de tempo do sinal de entrada de áudio obtido por um escalonamento de tempo do sinal de entrada de áudio. Esta funcionalidade pode ser executada, por exemplo, através de uma unidade de cálculo. Ainda, o dispositivo de tempo 200 é configurado para executar um escalonamento de tempo do sinal de entrada de áudio 210 dependendo do cálculo ou estimativa da qualidade da versão do tempo escalonado do sinal de entrada de áudio obtido pelo escalonamento de tempo, para assim obter a versão do escalonamento de tempo do sinal de entrada de áudio 212. Esta funcionalidade pode, por exemplo, ser executada por uma unidade de escalonamento de tempo.
[071] Por conseguinte, um dispositivo de tempo pode executar um controle
21/71 de qualidade para assegurar que excessivas degradações de uma qualidade áudio são evitadas aquando da execução do escalonamento de tempo. Por exemplo, o dispositivo de tempo pode ser configurado para predizer (ou estimar), com base no sinal de entrada de áudio, se uma operação de escalonamento de tempo prevista (como, por exemplo, uma operação de sobreposição e adição executada com base nos blocos de desvio de tempo de amostras (áudio), é esperada como resultando em uma qualidade áudio suficientemente boa. Por outras palavras, o dispositivo de tempo pode ser configurado para calcular ou estimar a qualidade (esperada) da versão do escalonamento de tempo do sinal de entrada de áudio obtido por escalonamento de tempo do sinal de entrada de áudio antes do escalonamento de tempo do sinal de entrada de áudio ser mesmo executada. Para esta finalidade, o dispositivo de tempo pode, por exemplo, comparar partes do sinal de entrada de áudio envolvidas na operação do escalonamento de tempo (por exemplo, na medida em que as ditas partes do sinal de entrada de áudio serão sobrepostas e adicionadas para desse modo executarem a dito escalonamento de tempo). Para concluir, o dispositivo de tempo 200 é tipicamente configurado para verificar se pode esperar que um escalonamento de tempo prevista irá resultar em uma qualidade áudio suficiente da versão do escalonamento de tempo do sinal de entrada de áudio, e para decidir se deve executar o escalonamento de tempo, ou não, nessa base. Em alternativa, o dispositivo de tempo pode adaptar qualquer uma dos parâmetros do escalonamento de tempo (por exemplo, um desvio de tempo entre blocos de amostras a serem sobrepostas e adicionadas) dependendo em um resultado da estimativa computacional da qualidade da versão do escalonamento de tempo do sinal de entrada áudio obtida pelo escalonamento de tempo do sinal de entrada de áudio.
[072] Segue-se uma descrição das melhorias opcionais do dispositivo de tempo 200.
[073] Em um modelo preferido, o dispositivo de tempo é configurado para executar uma operação de sobreposição e adição utilizando um primeiro bloco de amostras do sinal de entrada de áudio e um segundo bloco de amostras do sinal de entrada de áudio. Neste caso, o dispositivo de tempo é configurado
22/71 para deslocar no tempo o segundo bloco de amostras em relação ao primeiro bloco de amostras, e para sobrepor e adicionar o primeiro bloco de amostras e o segundo bloco de amostras, para assim obter a versão do escalonamento de tempo do sinal de entrada de áudio. Por exemplo, se uma redução de tempo for desejada, o dispositivo de tempo pode introduzir um primeiro número de amostras do sinal de entrada de áudio e fornecer, com base nisso, um segundo número de amostras da versão do escalonamento de tempo do sinal de entrada de áudio, em que o segundo número de amostras é inferior a o primeiro número de amostras. De modo a obter uma redução do número de amostras, o primeiro número de amostras pode ser separado em pelo menos um primeiro bloco de amostras e um segundo bloco de amostras (em que o primeiro bloco de amostras e o segundo bloco de amostras podem ser sobrepostos ou não sobrepostos), e o primeiro bloco de amostras e o segundo bloco de amostras podem ser temporariamente desviados juntos, de modo que as versões temporariamente desviadas do primeiro bloco de amostras e do segundo bloco de amostras se sobrepõem. Na área de sobreposição entre a versão(s) desviada do primeiro bloco de amostras e do segundo bloco de amostras, uma operação de sobreposição e adição é aplicada. Essa operação de sobreposição e adição pode ser aplicada sem provocar distorções audíveis significativas se o primeiro bloco de amostras e o segundo bloco de amostras sorem “suficientemente” idênticos na área de sobreposição (na qual a operação de sobreposição e adição é executada) e de preferência também em um ambiente da área de sobreposição. Desse modo, ao sobrepor e aditar partes do sinal originalmente não temporariamente sobrepostas, é obtido um encurtamento do tempo, visto que um número total de amostras é reduzido por um número de amostras que não foram originalmente sobrepostas (no sinal de entrada de áudio 210), mas que são sobrepostas na versão do escalonamento de tempo 212 do sinal de entrada de áudio.
[074] Pelo contrário, uma dilatação do tempo pode ser também obtida utilizando essa operação de sobreposição e adição. Por exemplo, um primeiro bloco de amostras e um segundo bloco de amostras podem ser escolhidos para serem sobrepostos e podem compreender uma primeira extensão temporal total. Consequentemente, o segundo bloco de amostras pode ser com
23/71 desvio de tempo em relação ao primeiro bloco de amostras, de modo que a sobreposição entre o primeiro bloco de amostras e o segundo bloco de amostras é reduzida. Se o segundo bloco de amostras desviadas pelo tempo encaixar bem no primeiro bloco de amostras, uma sobreposição e adição pode ser executada, em que a área sobreposta entre o primeiro bloco de amostras e a versão de desvio de tempo do segundo bloco de amostras pode ser encurtada ambas em termos de um número de amostras e em termos de um tempo do que a área de sobreposição original entre o primeiro bloco de amostras e o segundo bloco de amostras. Por conseguinte, o resultado da operação de sobreposição e adição utilizando o primeiro bloco de amostras e a versão de desvio de tempo do segundo bloco de amostras pode compreender uma extensão temporal maior (ambas em termos de tempo e em termos de um número de amostras) do que a extensão total do primeiro bloco de amostras e do segundo bloco de amostras na sua forma original.
[075] Por conseguinte, é notório que ambas uma redução de tempo e uma dilatação de tempo podem ser obtidas utilizando uma operação de sobreposição e adição utilizando um primeiro bloco de amostras do sinal de entrada de áudio e um segundo bloco de amostras dos sinais de entrada de áudio, em que o primeiro bloco de amostras com desvio de tempo em relação ao segundo bloco de amostras (em que ambos o primeiro bloco de amostras e o segundo bloco de amostras são desviados no tempo um em relação ao outro).
[076] De preferência, o dispositivo de tempo 200 é configurado para calcular ou estimar uma qualidade da operação de sobreposição e adição entre o primeiro bloco de amostras e a versão de desvio de tempo do segundo bloco de amostras, de modo a calcular ou estimar a qualidade (esperada) da versão de desvio de tempo do sinal de entrada de áudio obtida pelo escalonamento de tempo. Dever-se-á ter em atenção que existem tipicamente quase nenhumas perturbações audíveis caso a operação de sobreposição e adição for executada para partes dos blocos de amostras suficientemente idênticas. Por outras palavras, a qualidade da operação de sobreposição e adição influencia significativamente a qualidade (esperada) da versão do escalonamento de tempo dos sinais de entrada de áudio. Assim, a estimativa (ou cálculo) da
24/71 qualidade da operação de sobreposição e adição fornece uma estimativa (ou cálculo) fiável da qualidade da versão do escalonamento de tempo do sinal de entrada de áudio.
[077] De preferência, o dispositivo de tempo 200 é configurado para determinar o desvio de tempo do segundo bloco de amostras em relação ao primeiro bloco de amostras dependendo da determinação do nível de semelhança entre o primeiro bloco de amostras, ou uma parte (por exemplo, a parte do lado direito) do primeiro bloco de amostras, e o segundo bloco de amostras com desvio de tempo, ou uma parte (por exemplo, a parte do lado esquerdo) do segundo bloco de amostras com desvio de tempo. Por outras palavras, o dispositivo de tempo pode ser configurado para determinar qual o desvio de tempo entre o primeiro bloco de amostras e o segundo bloco de amostras é o mais adequado para obter um resultado de sobreposição e adição suficientemente bom (ou pelo menos o melhor resultado de sobreposição e adição possível). Contudo, em uma etapa adicional (“controle de qualidade”), poder-se-á verificar se esse desvio de tempo determinado do segundo bloco de amostras em relação ao primeiro bloco de amostras trás na verdade um resultado de sobreposição e adição suficientemente bom (ou espera-se que traga um resultado de sobreposição e adição suficiente bom).
[078] De preferência, o dispositivo determina informação relativa ao nível de semelhança entre o primeiro bloco de amostras, ou uma parte (por exemplo, a parte do lado direito) do primeiro bloco de amostras, e o segundo bloco de amostras, ou uma parte (por exemplo, a parte do lado esquerdo) do segundo bloco de amostras, para uma série de diferentes desvios de tempo entre o primeiro bloco de amostras e o segundo bloco de amostras, e determina um desvio de tempo (candidato) para ser utilizado para a operação de sobreposição e adição com base na informação relativa ao nível de semelhança para a série de diferentes desvios de tempo. Por outras palavras, pode ser efetuada uma busca pela melhor correspondência, em que a informação relativa ao nível de semelhança para diferentes desvios de tempo pode ser comparada, para descobrir um desvio de tempo para o qual o melhor nível de semelhança pode ser alcançado.
[079] De preferência, o dispositivo de tempo 200 pode ser configurado
25/71 para determinar o desvio de tempo do segundo bloco de amostras em relação ao primeiro bloco de amostras, cujo desvio de tempo deve ser utilizado par a operação de sobreposição e adição, dependendo de uma informação de desvio de tempo-alvo. Por outras palavras, uma informação do desvio de tempo-alvo, que pode, por exemplo, ser obtida com base em uma avaliação de uma completude do buffer, de um jitter e possivelmente de outros critérios adicionais, pode ser considerada (tendo em consideração) quando se determina qual o desvio de tempo a ser utilizado (por exemplo, como um desvio de tempo candidato) para a operação de sobreposição e adição. Assim, a sobreposição e adição é adaptada aos requisitos do sistema.
[080] Em alguns modelos, o dispositivo de tempo pode ser configurado para calcular ou estimar uma qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido através de um escalonamento de tempo do sinal de entrada de áudio com base em uma informação relativa ao nível de uma semelhança entre o primeiro bloco de amostras, ou uma parte (por exemplo, a parte do lado direito) do primeiro bloco de amostras, e o segundo bloco de amostras, com desvio de tempo por um determinado desvio do tempo (candidato), ou uma parte (por exemplo, a parte do lado esquerdo) do segundo bloco de amostras, com desvio de tempo por um determinado desvio do tempo (candidato). A dita informação relativa ao nível de semelhança fornece uma informação sobre a qualidade (esperada) da operação de sobreposição e adição, e consequentemente fornece também uma informação (pelo menos uma estimativa) relativa à qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtida pelo escalonamento de tempo. Em alguns casos, a informação calculada ou estimada relativa à qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo pode ser utilizada para decidir se o escalonamento de tempo é mesmo executado ou não (em que o escalonamento de tempo pode ser adiado no último caso). Por outras palavras, o dispositivo de tempo pode ser configurado para decidir, com base na informação sobre o nível de semelhança entre o primeiro bloco de amostras, ou uma parte (por exemplo, a parte do lado direito) do primeiro bloco de amostras, e o segundo bloco de amostras, com desvio de tempo por um determinado desvio do tempo
26/71 (candidato), ou uma parte (por exemplo, a parte do lado esquerdo) do segundo bloco de amostras, com desvio de tempo por um determinado desvio do tempo (candidato), se a dito escalonamento de tempo é mesmo executada (ou não). Desse modo, o mecanismo de controle de qualidade, que avalia a informação calculada ou estimada sobre a qualidade da versão do desvio de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo, pode mesmo resultar na omissão do escalonamento de tempo (pelo menos para um bloco ou quadro de amostras de áudio atual) se for esperado que uma degradação excessiva de um conteúdo áudio seria provocada pelo escalonamento de tempo.
[081] E m alguns modelos, podem ser utilizadas diferentes medidas semelhantes para a determinação inicial do desvio de tempo (candidato) entre o primeiro bloco de amostras e o segundo bloco de amostras e para o mecanismo de controle de qualidade final. Por outras palavras, o dispositivo de tempo pode ser configurado para deslocar no tempo um segundo bloco de amostras em relação ao primeiro bloco de amostras, e para sobrepor e aditar o primeiro bloco de amostras e o segundo bloco de amostras com desvio de tempo, para assim obter a versão de desvio de tempo do sinal de entrada de áudio, se o cálculo ou estimativa da qualidade da versão de escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo indicar uma qualidade superior a ou igual ao valor de qualidade limite limiar. O dispositivo de tempo pode ser configurado para determinar um desvio de tempo (candidato) do segundo bloco de amostras em relação ao primeiro bloco de amostras dependendo de uma determinação de um nível de semelhança, avaliado utilizando uma primeira medida de semelhança, entre o primeiro bloco de amostras, ou uma parte (por exemplo, a parte do lado direito) do primeiro bloco de amostras, e o segundo bloco de amostras, ou uma parte (por exemplo, a parte do lado esquerdo) do segundo bloco de amostras. Também, o dispositivo de tempo pode ser configurado para calcular ou estimar uma qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido por um escalonamento de tempo do sinal de entrada de áudio com base em uma informação relativa ao nível de semelhança, avaliado utilizando uma segunda medida de semelhança, entre o primeiro bloco de amostras, ou uma
21Π\ parte (por exemplo, a parte do lado direito) do primeiro bloco de amostras, e o segundo bloco de amostras, com desvio de tempo pelo determinado desvio de tempo (candidato), ou uma parte (por exemplo, a parte do lado esquerdo) do segundo bloco de amostras, com desvio de tempo pelo determinado desvio de tempo (candidato). Por exemplo, a segunda medida de semelhança pode ser computacionalmente mais complexa do que a primeira medida de semelhança. Tal conceito é útil, pois é tipicamente necessário calcular a primeira medida de semelhança várias vezes por operação de escalonamento de tempo (de modo a determinar o desvio de tempo “candidato” entre o primeiro bloco de amostras e o segundo bloco de amostras de uma série de possíveis valores de desvio de tempo entre o primeiro bloco de amostras e o segundo bloco de amostras). Pelo contrário, a segunda medida de semelhança tipicamente precisa apenas de ser calculada uma vez por operação de desvio de tempo, por exemplo como uma verificação “final” de qualidade se o desvio de tempo “candidato” determinado utilizando a primeira medida de qualidade (computacionalmente menos complexa) pode ser esperado como resultando em uma qualidade de áudio suficientemente boa. Consequentemente, é possível ainda evitar a execução de uma sobreposição e adição, caso a primeira medida de semelhança indique uma semelhança razoavelmente boa (ou pelo menos suficiente) entre o primeiro bloco de amostras (ou uma parte deste) e o segundo bloco de amostras desviado pelo tempo (ou uma parte deste) para o desvio de tempo “candidato” mas a segunda medida de semelhança (e tipicamente mais significativa ou precisa) indica que o escalonamento de tempo não iria resultar em uma qualidade de áudio suficientemente boa. Assim, a aplicação do controle de qualidade (utilizando a segunda medida de semelhança) ajuda a evitar distorções audíveis no escalonamento de tempo.
[082] Por exemplo, a primeira medida de semelhança pode ser uma correlação cruzada ou uma correlação cruzada normalizada, ou uma função de diferença de magnitude média, ou uma soma dos erros quadráticos. Tais medidas de semelhança podem ser obtidas de uma maneira computacionalmente eficiente e são suficientes em descobrir uma “melhor correspondência” entre o primeiro bloco de amostras (ou uma parte deste) e o segundo bloco de amostras desviado pelo tempo (ou uma parte deste), isto é,
28/71 para determinar o desvio de tempo “candidato”. Pelo contrário, a segunda medida de semelhança pode, por exemplo, ser uma combinação de valores de correlação cruzada ou valores de correlação cruzada normalizada para uma série de diferentes desvios de tempo. Tal medida de semelhança fornece mais exatidão e ajuda a considerar elementos do sinal adicionais (como, por exemplo, harmônicos) ou uma estacionaridade do sinal de áudio aquando da avaliação da qualidade (esperada) do escalonamento de tempo. Contudo, a segunda medida de semelhança é computacionalmente mais exigente do que a primeira medida de semelhança, de modo que seria computacionalmente ineficaz aplicar a segunda medida de semelhança aquando da busca por um desvio de tempo “candidato”.
[083] Segue-se uma descrição de algumas opções para uma determinação da segunda medida de semelhança. Em alguns modelos, a segunda medida de semelhança pode ser uma combinação de correlações cruzadas para pelo menos quatro diferentes desvios de tempo. Por exemplo, a segunda medida de semelhança pode ser uma combinação de um primeiro valor de correlação cruzada e de um segundo valor de correlação cruzada, obtidos para desvios de tempo afastados por um número inteiro múltiplo de um período de duração de uma frequência fundamental de um conteúdo de áudio do primeiro bloco de amostras ou de um segundo bloco de amostras, e de um terceiro valor de correlação cruzada e um quarto valor de correlação cruzada, obtidos para desvios de tempo afastados por um número inteiro múltiplo do período de duração da frequência fundamental do conteúdo áudio. Um desvio de tempo para o qual o primeiro valor de correlação cruzada é obtido pode estar afastado de um desvio de tempo para o qual o terceiro valor de correlação cruzada é obtido, por um múltiplo ímpar de metade do período de duração da frequência fundamental do conteúdo áudio. Se o conteúdo áudio (representado pelo sinal de entrada de áudio) for significativamente estacionário, e dominado pela frequência fundamental, pode ser esperado que o primeiro valor de correlação cruzada e o segundo valor de correlação cruzada que podem, por exemplo, ser normalizados, sejam ambos fechados em um só. Contudo, visto que o terceiro valor de correlação cruzada e o quarto valor de correlação cruzada são ambos obtidos para desvios de tempo
29/71 afastados, por um múltiplo ímpar de metade do período de duração da frequência fundamental, dos desvios de tempo para os quais o primeiro valor de correlação cruzada e o segundo valor de correlação cruzada são obtidos, poder-se-á esperar que o terceiro valor de correlação cruzada e o quarto valor de correlação cruzada se encontram opostos em relação ao primeiro valor de correlação cruzada e ao segundo valor de correlação cruzada no caso de o conteúdo áudio ser significativamente fixo e dominado pela frequência fundamental. Por conseguinte, uma combinação significativa pode ser formada com base no primeiro valor de correlação cruzada, o segundo valor de correlação cruzada, o terceiro valor de correlação cruzada e o quarto valor de correlação cruzada, indicando se o sinal de áudio é significativamente estacionário e dominado por uma frequência fundamental em uma área de sobreposição (candidata).
[084] Dever-se-á ter em atenção que medidas de semelhança especialmente significativas podem ser obtidas por cálculo da medida de semelhança q de acordo com q = c(p) * c(2*p) + c(3/2*p) * c(1/2*p) ou de acordo com q = c(p) * c(-p) + c(-1/2*p) * c(1/2*p).
[085] Em cima, c(p) é um valor de correlação cruzada entre um primeiro bloco de amostras (ou uma parte deste) e um segundo bloco de amostras (ou uma parte deste), desviados no tempo (por exemplo, em relação a uma posição temporal original na entrada de conteúdo de áudio) por um período de duração de p ou uma frequência fundamental de um conteúdo de áudio do primeiro bloco de amostras e/ou do segundo bloco de amostras (em que a frequência fundamental do conteúdo áudio é tipicamente significativamente idêntica no primeiro bloco de amostras e no segundo bloco de amostras). Por outras palavras, um valor de correlação cruzada é calculado com base nos blocos de amostras que são obtidos da entrada de conteúdo áudio e adicionalmente do desvio de tempo, um em relação ao outro, pelo período de duração p da frequência fundamental da entrada de conteúdo áudio (em que o período de duração p da frequência fundamental pode ser obtido, por exemplo, com base de uma estimativa de frequência fundamental, uma autocorrelação,
30/71 ou idêntico). Do mesmo modo, c(2*p) é um valor de correlação cruzada entre um primeiro bloco de amostras (ou uma parte deste) e um segundo bloco de amostras (ou uma parte deste) desviados no tempo por 2 * p. Definições idênticas aplicam-se também a c(3/2*p), c(1/2*p), c(-p) e c(-1/2*p), em que o argumento de c(.) designa o desvio de tempo.
[086] Segue-se uma explicação de alguns mecanismos para decidir se o escalonamento de tempo deverá ou não ser executado, podendo opcionalmente ser aplicada no dispositivo de tempo 200. Em uma implementação, o dispositivo de tempo 200 pode ser configurado para comparar um valor de qualidade, baseado em um cálculo ou estimativa da qualidade (esperada) da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo, com um valor limite variável, para decidir se um escalonamento de tempo deve ou não ser executado. Por conseguinte, a decisão de executar ou não o escalonamento de tempo pode ser também feita dependendo das circunstâncias, como, por exemplo, uma história representando escalonamentos de tempo anteriores.
[087] Por exemplo, o dispositivo de tempo pode ser configurado para reduzir o valor limite variável, para assim reduzir um requisito de qualidade (que deverá ser atingido de modo a permitir um escalonamento de tempo), em resposta a uma descoberta de que uma qualidade do escalonamento de tempo teria sido insuficiente para um ou mais anteriores blocos de amostras. Por conseguinte, é assegurado que um escalonamento de tempo não é evitado para um longa sequência de quadros (ou blocos de amostras) que podería provocar uma sobrecarga do buffer ou uma proteção do buffer. Ainda, o dispositivo de tempo pode ser configurado para aumentar o valor limite variável, para assim aumentar um requisito de qualidade (que deverá ser atingido de modo a permitir um escalonamento de tempo), em resposta ao facto de um escalonamento de tempo ter sido aplicada a um ou mais blocos ou amostras anteriores. Por conseguinte, pode ser evitado que demasiados blocos ou amostras posteriores são escalonamentos de tempo, salvo se uma muito boa qualidade (aumentada em relação a um requisito de qualidade normal) do escalonamento de tempo possa ser obtida. Por conseguinte, perturbações podem ser evitadas que seriam provocadas se as condições para uma
31/71 qualidade do escalonamento de tempo fossem demasiado baixas.
[088] Em alguns modelos, o dispositivo de tempo pode compreender um primeiro contador de alcance limitado para contar um número de blocos de amostras ou um número de quadros que tenham sido escalonados no tempo, porque o respetivo requisito de qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo foi alcançado. Ainda, o dispositivo de tempo pode compreender também um segundo contador de alcance limitado para contar um número de blocos de amostras ou um número de quadros que não foram escalonados no tempo, porque o respetivo requisito de qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo não foi alcançado. Neste caso, o dispositivo de tempo pode ser configurado para calcular o valor limite variável dependendo de um valor do primeiro contador e dependendo de um valor do segundo contador. Por conseguinte, a “história” do escalonamento de tempo (e também a história da “qualidade”) pode ser considerada com esforço computacional moderado.
[089] Por exemplo, o dispositivo de tempo pode ser configurado para adicionar um valor proporcional ao valor do primeiro contador para um valor limite inicial, e para subtrair um valor que é proporcional ao valor de um segundo contador (por exemplo, do resultado da adição) de modo a obter o valor limite variável.
[090] Segue-se um resumo de algumas funcionalidades importantes, que podem ser fornecidas em alguns modelos do dispositivo de tempo 200. Contudo, dever-se-á ter em atenção que as funcionalidades a seguir descritas não são funcionalidades essenciais do dispositivo de tempo 200.
[091] Em uma implementação, o dispositivo de tempo pode ser configurado para executar o escalonamento de tempo do sinal de entrada de áudio dependendo do cálculo ou estimativa da qualidade da versão escalonada de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo. Neste caso, o cálculo ou estimativa da qualidade da versão do escalonamento de tempo do sinal de entrada de áudio compreende um cálculo ou estimativa das perturbações na versão do escalonamento de tempo do sinal de entrada de áudio que poderíam ser causadas pelo escalonamento de tempo. Contudo,
32/71 dever-se-á ter em atenção que o cálculo ou estimativa das perturbações pode ser executado de uma maneira indireta, por exemplo através de calcular uma qualidade de uma operação de sobreposição e adição. Por outras palavras, o cálculo ou a estimativa da qualidade da versão do escalonamento de tempo do sinal de entrada de áudio pode compreender um cálculo ou estimativa das perturbações na versão do escalonamento de tempo do sinal de entrada de áudio que podería ser causado por uma operação de sobreposição e adição de posteriores blocos de amostras do sinal de entrada de áudio (em que, naturalmente, algum desvio de tempo pode ser aplicado aos posteriores blocos de amostras).
[092] Por exemplo, o dispositivo de tempo pode ser configurado para calcular ou estimar a qualidade de uma versão do escalonamento de tempo do sinal de entrada de áudio obtido por um escalonamento de tempo do sinal de entrada de áudio dependendo de um nível de semelhança dos blocos de amostras posteriores (e possivelmente de sobreposição) do sinal de entrada de áudio.
[093] Em um modelo preferido, o dispositivo de tempo pode ser configurado para calcular ou estimar se existem perturbações audíveis em uma versão do escalonamento de tempo do sinal de entrada de áudio obtido por um escalonamento de tempo do sinal de entrada de áudio. A estimativa das perturbações audíveis pode ser executada de uma maneira indireta, tal como mencionado em cima.
[094] Em consequência do controle de qualidade, o escalonamento de tempo pode ser executada em momentos bem adequados para o escalonamento de tempo e evitados em momentos não muito bem adequados para o escalonamento de tempo. Por exemplo, o dispositivo de tempo pode ser configurado para adiar um escalonamento de tempo para um quadro posterior ou para um bloco de amostras posterior se o cálculo ou a estimativa da qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo indicar uma qualidade insuficiente (por exemplo que se encontra abaixo de certo valor de qualidade limite). Assim, o escalonamento de tempo pode ser executado em um momento mais adequado para o escalonamento de tempo, tal que menos perturbações (em especial,
33/71 perturbações audíveis) são geradas. Por outras palavras, o dispositivo de tempo pode ser configurado para adiar um escalonamento de tempo quando o escalonamento de tempo é menos audível se o cálculo ou estimativa da qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo indicar uma qualidade insuficiente.
[095] Para concluir, o dispositivo de tempo 200 pode ser melhorado em um número de diferentes maneiras, tal como discutido em cima.
[096] Ainda, dever-se-á ter em atenção que o dispositivo de tempo 200 pode ser opcionalmente combinado com o controle jitter buffer 100, em que o controle jitter buffer 100 pode decidir se o escalonamento de tempo baseado na amostra, habitualmente executada pelo dispositivo de tempo 200, deverá ser utilizado ou se um escalonamento de tempo baseado no quadro deverá ser utilizado.
[097] 5.3. Descodificador Áudio de acordo com a Fiq. 3
[098] A Fig. 3 ilustra um esquema de blocos de um descodificador áudio
300, de acordo com um modelo desta invenção.
[099] O descodificador áudio 300 é configurado para receber uma entrada de conteúdo áudio 310, que pode ser considerado como uma representação de entrada de áudio, e que pode, por exemplo, ser representada sob a forma de quadros de áudio. Ainda, o descodificador áudio 300 fornece, nessa base, um conteúdo de áudio descodificado 312, que pode, por exemplo, ser representado sob a forma de amostras de áudio descodificadas. O descodificador áudio 300 pode, por exemplo, compreender um jitter buffer 320, configurado para receber a entrada de conteúdo áudio 310, por exemplo, sob a forma de quadros de áudio. O jitter buffer 320 é configurado para buffer uma série de quadros de áudio representando blocos de amostras de áudio (em que uma único quadro pode representar um ou mais blocos de amostras de áudio, e em que as amostras de áudio representadas por uma único quadro podem estar logicamente subdivididas em uma série de blocos de sobreposição ou não-sobreposição de amostras de áudio). Ainda, o jitter buffer 320 fornece quadros de áudio “buffered 322, em que as quadros de áudio 322 podem compreender ambas as quadros de áudio incluídas na entrada de conteúdo áudio 310 e as quadros de áudio geradas ou inseridas pelo jitter buffer (como,
34/71 por exemplo, quadros de áudio “inativas” compreendendo uma informação de sinalização da geração de ruído de conforto). O descodificador áudio 300 compreende ainda um núcleo descodificador 330 que recebe os quadros de áudio buffered 322 do jitter buffer 320 e que fornece amostras de áudio 332 (por exemplo, blocos com amostras de áudio associadas aos quadros de áudio) com base nos quadros de áudio 322 recebidas do jitter buffer. Ainda, o descodificador áudio 300 compreende um dispositivo de tempo baseado na amostra 340, configurado para receber as amostras de áudio 332 fornecidas pelo núcleo descodificador 330 e para fornecer, nessa base, amostras de áudio de escalonamento de tempo 342, formando o conteúdo de áudio descodificado 312. O dispositivo de tempo baseado na amostra 340 é configurado para fornecer amostras de áudio de escalonamento de tempo (por exemplo, sob a forma de blocos de amostras de áudio) com base nas amostras de áudio 332 (isto é, com base nos blocos de amostras áudio fornecidos pelo núcleo descodificador). Ainda, o descodificador áudio pode compreender um controle opcional 350. O controle jitter buffer 350, utilizado no descodificador áudio 300 pode, por exemplo, ser idêntico ao controle jitter buffer 100 de acordo com a Fig. 1. Por outras palavras, o controle jitter buffer 350 pode ser configurado para selecionar um escalonamento de tempo baseado no quadro, executada pelo jitter buffer 320, ou um escalonamento de tempo baseado na amostra, executada pelo dispositivo de tempo baseado na amostra 340 de uma maneira adaptável ao sinal. Por conseguinte, o controle jitter buffer 350 pode receber a entrada de conteúdo áudio 310, ou uma informação relativa à entrada de conteúdo áudio 310 como o sinal de áudio 110, ou como a informação relativa ao sinal de áudio 110. Ainda, o controle jitter buffer 350 pode fornecer a informação de controle 112 (tal como descrito em relação ao controle jitter buffer 100) ao jitter buffer 320, e o controle jitter buffer 350 pode fornecer a informação de controle 114, tal como descrito em relação ao controle jitter buffer 100, ao dispositivo de tempo baseado na amostra 140. Por conseguinte, o jitter buffer 320 pode ser configurado para descartar ou inserir quadros de áudio de modo a executar um escalonamento de tempo baseado no quadro. Ainda, o núcleo descodificador 330 pode ser configurado para executar uma geração de ruído de conforto em resposta a um quadro que transporte uma
35/71 informação de sinalização indicando a geração de um ruído de conforto. Por conseguinte, um ruído de conforto pode ser produzido pelo núcleo descodificador 330 em resposta à inserção de um quadro “inativa” (compreendendo uma informação de sinalização indicando que um ruído de conforto deverá ser produzido) no jitter buffer 320. Por outras palavras, uma forma simples de um escalonamento de tempo baseado no quadro pode eficazmente resultar na produção de um quadro compreendendo ruído de conforto, acionado pela inserção de um quadro “inativa” no jitter buffer (que pode ser executada em resposta à informação de controle 112 fornecida pelo controle jitter buffer). Ainda, o núcleo descodificador pode ser configurado para executar uma “ocultação” em resposta a um jitter buffer vazio. Tal ocultação pode compreender a produção de uma informação de áudio para um quadro “em falta” (Jitter buffer vazio) com base em uma informação de áudio de uma ou mais quadros anteriores ao quadro de áudio em falta. Por exemplo, uma predição pode ser utilizada, pressupondo que o conteúdo áudio do quadro de áudio em falta é uma “continuação” do conteúdo de áudio de uma ou mais quadros de áudio anteriores ao quadro de áudio em falta. Contudo, qualquer um dos conceitos de ocultação de perda de quadro conhecidos na área pode ser utilizado pelo núcleo descodificador. Por consequência, o controle jitter buffer 350 pode dar instruções ao jitter buffer 320 (ou ao núcleo descodificador 330) para iniciar uma ocultação no caso em que o jitter buffer 320 funciona vazio. Contudo, o núcleo descodificador pode executar a ocultação mesmo sem um sinal de controle específico, baseado em uma inteligência própria.
[100] Além disso, dever-se-á ter em atenção que o dispositivo de tempo baseado na amostra 340 pode ser igual ao dispositivo de tempo 200 descrito em relação à Fig. 2. Por consequência, o sinal de entrada áudio 210 pode corresponder às amostras de áudio 322, e a versão do escalonamento de tempo 212 do sinal de entrada de áudio pode corresponder às amostras de áudio do escalonamento de tempo 342. Por conseguinte, o dispositivo de tempo 340 pode ser configurado para executar o escalonamento de tempo do sinal de entrada de áudio dependendo de um cálculo ou estimativa da qualidade da versão do escalonamento de tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo. O dispositivo de tempo baseado na
36/71 amostra 340 pode ser controlado pelo controle jitter buffer 350, em que uma informação de controle 114 fornecida pelo controle jitter buffer ao dispositivo de tempo baseado na amostra 340 pode indicar se um escalonamento de tempo baseado na mostra deverá ser executado ou não. Além disso, a informação de controle 114 pode, por exemplo, indicar uma quantidade desejada de escalonamentos de tempo a serem executadas pelo dispositivo de tempo baseado na amostra 340.
[101] Dever-se-á ter em atenção que o dispositivo de tempo 300 pode ser complementado por qualquer uma das características e funcionalidades descritas em relação ao controle jitter buffer 100 e/ou em relação ao dispositivo de tempo 200. Além disso, o descodificador áudio 300 pode também ser complementado por qualquer uma das outras características e funcionalidades aqui descritas, por exemplo em relação às Figs. 4 a 15.
[102] 5.4. Descodificador Áudio de acordo com a Fiq. 4
[103] A Fig. 4 ilustra um esquema de blocos de um descodificador áudio
400, de acordo com um modelo desta invenção. O descodificador áudio 400 é configurado para receber pacotes 410, podendo compreender uma representação de pacotes de uma ou mais quadros de áudio. Além disso, o descodificador áudio 400 fornece um conteúdo de áudio descodificado 412, por exemplo sob a forma de amostras de áudio. As amostras de áudio podem, por exemplo, ser representadas em um formato “PCM” (isto é, em uma forma modulada por impulso e código, por exemplo, sob a forma de uma sequência de valores digitais representando amostras de uma forma de onda de áudio).
[104] O descodificador áudio 400 fornece um desempacotador 420, configurado para receber os pacotes 410 e fornecer, nessa base, quadros desempacotadas 422. Além disso, o desempacotador é configurado para extrair, dos pacotes 410, uma chamada “bandeira SID”, que sinaliza um quadro de áudio “inativa” (isto é, um quadro de áudio para a qual uma geração de ruído de conforto deverá ser utilizada, em vez de uma descodificação detalhada “normal” de um conteúdo de áudio). A informação da bandeira SID é designada com 424. Além disso, o desempacotador fornece uma marca temporal de protocolo de transporte de tempo (também designada como “RTP TS”) e uma marca temporal de chegada (também designada como “chegada
37/71
TSj. A informação da marca temporal é designada com 426. Além disso, o descodificador áudio 400 compreende um de-jitter buffer 430 (também brevemente designado como jitter buffer 430) que recebe os quadros desempacotadas 422 do desempacotador 420, e que fornece quadros buffered 432 (e possivelmente insere também quadros) a um núcleo descodificador 440. Além disso, o de-jitter buffer 430 recebe uma informação de controle 434 para um escalonamento (de tempo) baseado na amostra de uma lógica de controle. Também, o de-jitter buffer 430 fornece uma informação de retorno de escalonamento 436 a uma estimativa de atraso de reprodução. O descodificador áudio 400 compreende também um dispositivo de tempo (também designado como “TSM”) 450, que recebe amostras de áudio descodificadas 442 (por exemplo, sob a forma de dados modulados por impulso e código) de um núcleo descodificador 440, em que o núcleo descodificador 440 fornece as amostras de áudio descodificadas 442 com base nos quadros buffered ou inseridas 432 recebidas do de-jitter buffer 430. O dispositivo de tempo 450 recebe também uma informação de controle 444 para um escalonamento (de tempo) baseado na amostra de uma lógica de controle e fornece uma informação de retorno de escalonamento (446) a uma estimativa de atraso da reprodução. O dispositivo de tempo 450 fornece também amostras do escalonamento de tempo 448, que podem representar conteúdo de áudio do escalonamento de tempo em uma forma modulada por impulso e código. O descodificador áudio 400 compreende também um buffer PCM 460, que recebe as amostras do escalonamento de tempo 448 e buffers as amostras das escalonamentos de tempo 448. Além disso, o buffer PCM 460 fornece uma versão buffered das amostras de escalonamento de tempo 448 como uma representação do conteúdo de áudio descodificado 412. Além disso, o buffer PCM 460 pode fornecer uma informação de atraso 462 a uma lógica de controle.
[105] O descodificador áudio 400 compreende também uma estimativa do atraso-alvo 470, que recebe a informação 424 (por exemplo à bandeira SID) assim como a informação da marca temporal 426 compreendendo a marca temporal RTP e a marca temporal de chegada. Com base nesta informação, a estimativa do atraso-alvo 470 fornece uma informação do atraso-alvo 472, que
38/71 descreve um atraso desejável, por exemplo um atraso desejável que deverá ser provocado pelo de-jitter buffer 430, pelo descodificador 440, pelo dispositivo de tempo 450 e pelo buffer PCM 460. Por exemplo, a estimativa do atraso-alvo 470 pode calcular ou estimar a informação do atraso-alvo 472 de modo que o atraso não seja escolhido desnecessariamente grande mas suficiente para compensar algum jitter dos pacotes 410. Além disso, o descodificador áudio 400 compreende uma estimativa do atraso da reprodução 480, configurada para receber a informação de retorno do escalonamento 436 do de-jitter buffer 430 e a informação de retorno do escalonamento 446 do dispositivo de tempo 460. Por exemplo, a informação de retorno do escalonamento 436 pode descrever um escalonamento de tempo executada pelo de-jitter buffer. Além disso, a informação de retorno do escalonamento 446 descreve um escalonamento de tempo executada pelo dispositivo de tempo 450. Relativamente à informação de retorno do escalonamento 446, dever-se-á ter em atenção que o escalonamento de tempo executado pelo dispositivo de tempo 450 é tipicamente adaptável ao sinal de modo que o escalonamento de tempo atual descrita pela informação de retorno do escalonamento 446 pode ser diferente de um escalonamento de tempo desejada que pode ser descrita pela informação do escalonamento baseado na amostra 444. Para concluir, a informação de retorno do escalonamento 436 e a informação de retorno do escalonamento 446 podem descrever um escalonamento de tempo atual, que pode ser diferente de um escalonamento de tempo desejado devido à adaptabilidade do sinal fornecida de acordo com alguns aspetos desta invenção.
[106] Além disso, o descodificador áudio 400 compreende também uma lógica de controle 490, que executa um controle (principal) do descodificador áudio. A lógica de controle 490 recebe a informação 424 (por exemplo, a bandeira SID) do desempacotador 420. Além disso, a lógica de controle 490 recebe a informação do atraso-alvo 472 da estimativa do atraso-alvo 470, a informação de atraso da reprodução 482 da estimativa de atraso da reprodução 480 (em que a informação de atraso da reprodução 482 descreve um atraso atual, derivado pela estimativa de atraso da reprodução 480 com base na informação de retorno do escalonamento 436 e na informação de retorno do
39/71 escalonamento 446). Além disso, a lógica de controle 490 recebe (opcionalmente) a informação de atraso 462 do buffer PCM 460 (em que, em alternativa, a informação de atraso do buffer PCM pode ser uma quantidade pré-determinada). Com base na informação recebida, a lógica de controle 490 fornece a informação do escalonamento baseado no quadro 434 e a informação do escalonamento baseado na amostra 442 ao de-jitter buffer 430 e ao dispositivo de tempo 450. Por conseguinte, a lógica de controle estabelece uma informação do escalonamento baseado no quadro 434 e a informação do escalonamento baseado na amostra 442 dependendo da informação do atrasoalvo 472 e da informação de atraso da reprodução 482 de uma maneira adaptável ao sinal, tendo em consideração uma ou mais características do conteúdo áudio (como, por exemplo, a questão se existe um quadro “inativa” para a qual a geração de ruído de conforto deverá ser executada de acordo com a sinalização efetuada pela bandeira SID).
[107] Dever-se-á ter aqui em atenção que a lógica de controle 490 pode executar algumas ou todas as funcionalidades do controle jitter buffer 100, em que a informação 424 pode corresponder à informação 110 relativa ao sinal de áudio, em que a informação de controle 112 pode corresponder à informação do escalonamento baseado no quadro 434, e em que a informação de controle 114 pode corresponder à informação do escalonamento baseado na amostra 444. Também, dever-se-á ter em atenção que o dispositivo 450 pode executar algumas ou todas as funcionalidades do dispositivo de tempo 200 (ou viceversa), em que o sinal de entrada de áudio 210 corresponde às amostras de áudio descodificadas 442, e em que a versão do escalonamento de tempo 212 do sinal de entrada de áudio corresponde às amostras de áudio do escalonamento de tempo 448.
[108] Além disso, dever-se-á ter em atenção que o descodificador áudio 400 corresponde ao descodificador áudio 300, de modo que o descodificador áudio 300 pode executar algumas ou todas as funcionalidades descritas em relação ao descodificador áudio 400, e vice-versa. O jitter buffer 320 corresponde ao de-jitter buffer 430, o núcleo descodificador 330 corresponde ao descodificador 440 e o dispositivo de tempo 340 corresponde ao dispositivo de tempo 450. O controle 350 corresponde à lógica de controle 490.
40/71
[109] Seguem-se alguns detalhes relativos à funcionalidade do descodificador áudio 400. Em especial, a gestão do jitter buffer (JBM) proposta será descrita.
[110] Uma solução de gestão do jitter buffer (JBM) é descrita, podendo ser utilizada para alimentar os pacotes recebidos 410 com quadros, contendo discurso codificado ou dados áudio, em um descodificador 440 enquanto mantém uma reprodução contínua. Nas comunicações por pacotes, por exemplo, Voz por Protocolo Internet (VolP), os pacotes (por exemplo, pacotes 410) são habitualmente sujeitos a variados tempos de transmissão e perdemse durante a transmissão, enquanto conduzem ao jitter entre chegadas e aos pacotes em falta para o receptor (por exemplo, um receptor compreendendo um descodificador áudio 400). Desse modo, as soluções de gestão do jitter buffer e de ocultação da perda de pacotes são desejadas para permitir um sinal de saída contínua sem intermitências.
[111] Segue-se uma visão geral de uma solução. No caso da gestão do jitter buffer, os dados codificados nos pacotes RTP recebidos (por exemplo, pacotes 410) são primeiramente desempacotados (por exemplo, utilizando o desempacotador 420) e os quadros resultantes (por exemplo, quadros 422) com dados codificados (por exemplo, dados de voz em um quadro codificada AMR-WB) são alimentadas em um de-jitter buffer (por exemplo, de-jitter buffer 430). Quando novos dados modulados por impulso e código (dados PCM) são necessários para a reprodução, precisa estar disponível ao descodificador (por exemplo, pelo descodificador 440). Para esta finalidade, os quadros (por exemplo, quadros 432) são puxadas do de-jitter buffer (por exemplo, do de-jitter buffer 430). Através da utilização do de-jitter buffer, as flutuações no tempo de chegada podem ser compensadas. Para controlar a profundidade do buffer, a modificação do escalonamento de tempo (TSM) é aplicada (em que a modificação do escalonamento de tempo é também brevemente designada como escalonamento de tempo). Esta modificação do escalonamento de tempo pode acontecer com base em um quadro codificada (por exemplo, em um dejitter buffer 430) ou em um módulo separado (por exemplo, no dispositivo de tempo 450), permitindo adaptações mais granulares do sinal de saída PCM (por exemplo, do sinal de saída PCM 448 ou do sinal de saída PCM 412).
41/71
[112] O conceito anteriormente descrito é ilustrado, por exemplo, na Fig. 4 que ilustra uma vista geral da gestão do jitter buffer. Para controlar a profundidade do de-jitter buffer (por exemplo, o de-jitter buffer 430) e por isso também os níveis do escalonamento de tempo no de-jitter buffer (por exemplo, o de-jitter buffer 430) e/ou o módulo TSM (por exemplo, o dispositivo de tempo 450), uma lógica de controle (por exemplo, a lógica de controle 490, suportada pela estimativa de atraso-alvo 470 e a estimativa de atraso na reprodução 480) é utilizada. Esta aplica informação no atraso-alvo (por exemplo, a informação 472) e no atraso da reprodução (por exemplo, a informação 482) e se a transmissão descontínua (DTX) juntamente com a geração de ruído de conforto (CNG) é atualmente utilizada (por exemplo, a informação 424). Os valores do atraso são gerados, por exemplo, de módulos separados (por exemplo, os módulos 470 e 480) para estimativa do atraso-alvo e da reprodução, e um bit ativo/inativo (bandeira SID) é previsto, por exemplo, pelo módulo desempacotador (por exemplo, o desempacotador 420).
[113] 5.4.1 Desempacotador
[114] Segue-se a descrição do desempacotador 420. O módulo desempacotador divide pacotes RTP 410 em quadros individuais (unidades de acesso ( 422. Calcula também a marca temporal RTP para todas as quadros que não são as únicas ou a primeira trama em um pacote. Por exemplo, a marca temporal existente no pacote RTP é atribuída à sua primeira trama. No caso de agregação (isto é, para os pacotes RTP com mais do que uma única trama) a marca temporal para as quadros seguintes é aumentada pela duração da trama dividida pelo escalonamento das marcas temporais RTP. Além disso, à marca temporal RTP, cada trama é também etiquetada com a hora do sistema na qual o pacote RTP foi recebido (marca temporal de chegada”). Tal como se pode observar, a informação da marca temporal RTP e a informação da marca temporal de chegada 426 podem estar previstas, por exemplo, para a estimativa do atraso-alvo 740. O módulo desempacotador determina também se um quadro está ativa ou contém um descritor de inserção de silêncio (SID). Dever-se-á ter em atenção que nos períodos não ativos, apenas as quadros SID são recebidas em alguns casos. Por conseguinte, a informação 424, que pode por exemplo compreender a bandeira SID, é fornecida à lógica de
42/71 controle 490.
[115] 5.4.2. De-Jitter Buffer
[116] O módulo de-jitter buffer 430 armazena quadros 422 recebidos na rede (por exemplo, através de uma rede do tipo TCP/IP) até a descodificação (por exemplo, através do descodificador 440). Os quadros 422 são inseridos em uma fila selecionada na ordem da marca temporal RTP ascendente para desfazer a reordenação que podería ter ocorrido na rede. Um quadro na frente da fila pode ser alimentada ao descodificador 440 e é então removida (por exemplo, do de-jitter buffer430), se a fila estiver vazia ou um quadro estiver em falta de acordo com a diferença da marca temporal da trama na frente (da fila) e a trama anteriormente lida, um quadro vazia é devolvida (por exemplo, do dejitter buffer 430 ao descodificador 440) para acionar a ocultação da perda de pacotes (se uma última trama esteve ativa) ou a geração de ruído de conforto (se uma última trama esteve “SID” ou inativa) no módulo descodificador 440.
[117] Por outras palavras, o descodificador 440 pode ser configurado para gerar um ruído de conforto no caso de estar sinalizado, em um quadro, que um ruído de conforto deverá ser utilizado, por exemplo utilizando uma bandeira “SID” ativa. Por outro lado, o descodificador pode também ser configurado para executar ocultação de perda de pacotes, por exemplo, fornecendo amostras de áudio preditas (ou extrapoladas) no caso de um quadro anterior (última) tiver estado ativa (isto é, geração de ruído de conforto desativado) e o jitter buffer funcionar vazio (de modo que um quadro vazia é fornecida ao descodificador 440 pelo jitter buffer430).
[118] O módulo de-jitter buffer 430 contém também um escalonamento de tempo baseado no quadro adicionando um quadro vazia à frente (por exemplo, da fila do jitter buffer) para dilatação do tempo ou descartar a trama à frente (por exemplo, da fila do jitter buffer) para encurtamento do tempo. No caso de períodos não ativos, o de-jitter buffer pode comportar-se como se quadros “No_DATA” fossem adicionados ou descartados.
[119] 5.4.3. Modificação do escalonamento de tempo (TSM)
[120] Segue-se uma descrição da modificação do escalonamento de tempo (TSM), já brevemente designado como dispositivo de tempo ou dispositivo de tempo baseado na amostra. Um algoritmo WSOLA
43/71 (sobreposição e adição baseada na forma de onda) modificado por pacote (ver, por exemplo, [Lia01]) com controle de qualidade embutido é utilizado para executar a modificação do escalonamento de tempo (brevemente designada como escalonamento de tempo) do sinal. Alguns detalhes podem ser observados, por exemplo, na Fig. 9, a seguir explicada. Um nível de escalonamento de tempo é dependente do sinal; sinais que iriam criar sérias perturbações quando escalonados no tempo são detectados através de um controle de qualidade e de sinais de baixo nível, próximos do silêncio, são escalonados o mais possível. Os sinais que são bem escalonados no tempo, como os sinais periódicos, são escalonados por um desvio internamente derivado. O desvio é derivado de uma medida de semelhança, tal como uma correlação cruzada normalizada. Com uma sobreposição e adição (OLA), o final de uma atual quadro (aqui também designado como “segundo bloco de amostras”) é desviado (por exemplo, em relação a um início de um quadro atual, aqui também designado como “primeiro bloco de amostras”) para encurtar ou aumentar o quadro.
[121] Tal como já mencionado, detalhes adicionais relativos à modificação do escalonamento de tempo (TSM) serão descritos em baixo, tendo como referência a Fig. 9, que ilustra um WSOLA modificado com controle de qualidade, e também tendo como referência as Figs. 10a e 10b e 11.
[122] 5.4.4. Buffer PCM
[123] Segue-se uma descrição do buffer PCM. O módulo de modificação do escalonamento de tempo 450 modifica uma duração de quadros PCM disponibilizados pelo módulo descodificador com um escalonamento de tempo variável. Por exemplo, as amostras 1024 (ou amostras 2048) podem ser disponibilizadas pelo descodificador 440 por quadro de áudio 432. Pelo contrário, um número variado de amostras de áudio pode ser disponibilizado pelo dispositivo de tempo 450 por quadro de áudio 432 devido ao escalonamento de tempo baseado na amostra. Pelo contrário, uma placa de som com altifalante (ou, regra geral, um dispositivo de saída de som) espera habitualmente um quadro fixa, por exemplo, 20 ms. Desse modo, um buffer adicional com um comportamento primeiras entradas, primeiras saídas é utilizado para aplicar um quadro fixo nas amostras de saída do dispositivo de
44/71 tempo 448.
[124] Quando se observa toda a cadeia, este buffer PCM 460 não cria um atraso adicional. Em vez disso, o atraso é apenas partilhado entre o de-jitter buffer 430 e o buffer PCM 460. Não obstante, é objetivo manter o número de amostras armazenadas no buffer PCM 460 o mais baixo possível, pois este aumenta um número de quadros armazenados no de-jitter buffer 430 e desse modo reduz a probabilidade de perda tardia (em que o descodificador dissimula um quadro em falta recebida mais tarde).
[125] O pseudo código de programa ilustrado na Fig. 5 ilustra um algoritmo para controlar o nível do buffer PCM. Tal como pode ser observado do pseudo código do programa da Fig. 5, uma dimensão do quadro da placa de som (“soundCardFrameSize”) é calculada com base em uma taxa de amostra (“sampleRate”) em que se presume, como um exemplo, que uma duração do quadro é de 20 ms. Por conseguinte, um número de amostras por placa de som é conhecido. Consequentemente, o buffer PCM é preenchido por descodificação das quadros de áudio 432 (também designadas como “accessUnit”) até que um número de amostras no buffer PCM (“pcmBuffer_nReadableSamplesO”) já não seja inferior ao número de amostras por quadro da placa de som (“soundCardFrameSize”). Primeiro, um quadro (também designado como “accessUnit”) é obtido (ou solicitada) do de-jitter buffer 430, tal como ilustrado no algarismo de referência 510. Consequentemente, uma “trama” de amostras de áudio é obtida por descodificação do quadro 432 solicitado do de-jitter buffer, tal como pode ser observado algarismo de referência 512. Por conseguinte, um quadro de amostras de áudio descodificadas (por exemplo, designada com 442) é obtido. Consequentemente, a modificação do escalonamento de tempo é aplicada ao quadro das amostras de áudio descodificadas 442, de modo que um “quadro” de amostras de áudio do escalonamento de tempo 448 é obtido, o que pode ser observado no algarismo de referência 514. Dever-se-á ter em atenção que o quadro das amostras de áudio do escalonamento de tempo pode compreender um grande número de amostras de áudio ou um número de amostras de áudio inferior ao quadro das amostras de áudio descodificadas 442 introduzidas no dispositivo de tempo 450. Consequentemente, o quadro
45/71 das amostras de áudio do escalonamento de tempo 448 é inserido no buffer PCM 460, tal como pode ser observado no algarismo de referência 516.
[126] Este procedimento é repetido, até que um número suficiente de amostras de áudio (de escalonamento de tempo) se encontrar disponível no buffer PCM 460. Logo que um número suficiente de amostras (de escalonamento de tempo) estiver disponível no buffer PCM, uma “trama” de amostras de áudio do escalonamento de tempo (dotada de um comprimento tal como exigido pelo dispositivo de reprodução de som, como uma placa de som) é lida do buffer PCM 460 e encaminhada para o dispositivo de reprodução de som (por exemplo, para a placa de som), tal como ilustrado nos algarismos de referência 520 e 522.
[127] 5.4.5. Estimativa de Atraso-Alvo
[128] Segue-se uma descrição da estimativa de atraso-alvo, que pode ser executada pelo estimador de atraso-alvo 470. O atraso-alvo especifica o atraso de buffering desejado entre o tempo quando um quadro anterior foi reproduzido e o tempo que esta trama teria recebido se tivesse tido um atraso de transmissão menor na rede comparado a todos os quadros atualmente existentes em uma história do módulo de estimativa de atraso-alvo 470. Para estimar o atraso-alvo, são utilizados dois estimadores jitter diferentes, um estimador jitter em longo prazo e um em curto prazo.
[129] Estimativa Jitter a Longo Prazo
[130] Para calcular um jitter a longo prazo, uma estrutura de dados FIFO pode ser utilizada. Um intervalo de tempo armazenado no FIFO pode ser diferente do número de entradas armazenadas se o TDX (modo de transmissão descontínuo) for utilizado. Por esse motivo, a dimensão da janela do FIFO é limitada de duas maneiras. Pode conter no máximo 500 entradas (igual a 10 segundos a 50 pacotes por segundo) e no máximo um intervalo de tempo (diferença da marca temporal RTP entre o pacote mais recente e o mais antigo) de 10 segundos. Se mais entradas forem armazenadas, a entrada mais antiga é removida. Para cada pacote RTP removido na rede, uma entrada será adicionada ao FIFO. Uma entrada contém três valores: atraso, desvio e marca temporal RTP. Estes valores são calculados do tempo recebido (por exemplo, representados pela marca temporal de chegada) e a marca temporal RTP do
46/71 pacote RTP, uma ilustração no pseudo código da Fig. 6.
[131] Tal como pode ser observado nos algarismos de referência 610 e 612, uma diferença de tempo entre as marcas temporais RTP dos dois pacotes (por exemplo, pacotes posteriores) é calculada (produzindo “rtpTimeDiff”) e uma diferença entre marcas temporais recebidas de dois pacotes (por exemplo, pacotes posteriores) é calculada (produzindo “rcvTimeDiff”). Além disso, a marca temporal RTP é convertida a partir de uma base de tempo de um dispositivo de transmissão para uma base de tempo do dispositivo de recepção, tal como pode ser observado nos algarismos de referência 614, produzindo “rtpTimeTicks”. Do mesmo modo, as diferenças de tempo RTP (diferença entre marcas temporais RTP) são convertidas para um escalonamento de tempo receptora/base temporal do dispositivo de recepção), tal como pode ser observado nos algarismos de referência 616, produzindo “rtpTimeDiff”.
[132] Subsequentemente, uma informação de atraso (“delay”) é atualizada com base em uma informação de atraso anterior, tal como pode ser observado nos algarismos de referência 618. Além disso, se uma diferença de tempo recebido (isto é, uma diferença em tempos quando os pacotes foram recebidos) for superior a uma diferença de tempo RTP (isto é, uma diferença entre tempos nos quais os pacotes foram enviados), pode ser concluído que o atraso aumentou. Além disso, uma informação de tempo de desvio (“offset”) é calculada, tal como pode ser observado nos algarismos de referência 620, em que a informação do tempo de desvio representa a diferença entre um tempo de recepção (isto é, um tempo no qual um pacote foi recebido) e um tempo no qual um pacote foi enviado (tal como definido na marcação temporal RTP, convertida para o escalonamento de tempo recebida). Além disso, a informação de atraso, a informação de desvio de tempo e uma informação de marcação temporal RTP (convertidas para o escalonamento de tempo receptora) são adicionadas ao FIFO de longo prazo, tal como pode ser observado nos algarismos de referência 622.
[133] Consequentemente, alguma informação atual é armazenada como informação “prévia” para uma próxima interação, tal como pode ser observado no algarismo de referência 624.
47/71
[134] Um jitter de longo prazo pode ser calculado como uma diferença entre um valor de atraso máximo atualmente armazenado no FIFO e um valor de atraso mínimo.
[135] longTerm Jitter = longTermFifo_getMaxDelay() longTermFifogetMinDelayO;
[136] Estimativa Jitter de Curto Prazo
[137] Segue-se uma descrição da estimativa jitter de curto prazo. A estimativa jitter de curto prazo é feita, por exemplo, em duas etapas. Na primeira etapa, o mesmo cálculo jitter feito para a estimativa de longo prazo é utilizado com as seguintes modificações: a dimensão da janela do FIFO é limitada no máximo a 50 entradas e no máximo a um intervalo de tempo de 1 segundo. O valor jitter resultante é calculado como a diferença entre 94% do valor de atraso percentil atualmente armazenado no FIFO (os três valores mais elevados são ignorados) e o valor de atraso mínimo:
[138] shortTermJitterTmp = shortTermFifo1_getPercentileDelay(94) -
1. shortTermFifo1_getMinDelay();
[139] E m uma segunda etapa, primeiro os diferentes desvios entre o FIFO de curto prazo e de longo prazo são compensados para este resultado:
[140] shortTermJitterTmp += shortTermFifo1_getMinOffset();
[141] shortTermJitterTmp-= longTermFifo_getMinOffset();
[142] Este resultado é adicionado a outro FIFO com uma dimensão de janela de no máximo 200 entradas e um intervalo de tempo no máximo de quatro segundos. Finalmente, o valor máximo armazenado no FIFO é aumentado para um número inteiro multiplicador da dimensão da trama e utilizado como jitterde curto prazo:
[143] shortTermFifo2_add( shortTermJitterTmp);
[144] shortTermJitter = ceil( shortTermFifo2_getMax() / 2O.f) * 20;
[145] Estimativa de Atraso-Alvo por uma Combinação de Estimativas Jitter de Lonqo/Curto Prazo
[146] Para calcular o atraso-alvo (por exemplo à informação de atraso-alvo 472), as estimativas jitter de longo prazo e de curto prazo (por exemplo, tal como definido como “longTermJitter” e “shirtTermJitter”) são combinadas de diferentes maneiras dependendo do estado atual. Para sinais ativos (ou partes
48/71 de sinais, para as quais uma geração de ruído de conforto não é utilizada), uma série (por exemplo, definida por “targetMin” e “targetMax”) é utilizada como atraso-alvo. Durante a DTX e para arranque após DTX, são calculados dois valores diferentes como atraso-alvo (por exemplo, “targetDtx” e “targetStartUp”).
[147] Detalhes de como os diferentes valores de atraso-alvo podem ser calculados podem ser observados, por exemplo, na Fig. 7. Tal como pode ser observado nos algarismos de referência 710 e 712, os valores “targetMin” e “targetMax”, que atribuem uma série de sinais ativos, são calculados com base no jitter de curto prazo (“shortTermJitter”) e no jitter de longo prazo “longTermJitter”). O cálculo do atraso-alvo durante o DTX (“targetDtx”) é ilustrado no algarismo de referência 714, e o cálculo do valor de atraso-alvo para o arranque (por exemplo, após o DTX) (“targetStartUp”= encontra-se ilustrado no algarismo de referência 716.
[148] 5.4.6. Estimativa do Atraso na Reprodução
[149] Segue-se a descrição da estimativa de atraso na reprodução, que pode ser executada pelo estimador de atraso na reprodução 480. O atraso da reprodução especifica o atraso no buffering entre o tempo quando a trama anterior foi reproduzida e o tempo que esta trama podería ter sido recebida se tivesse o atraso de transmissão mais baixo possível na rede comparado com todas as quadros atualmente existentes na história do módulo de estimativa de atraso-alvo. É calculado em milissegundos utilizando a seguinte fórmula: [150] playoutDelay = prevPlayoutOffset - longTermFifo_getMinOffset() +
1. pcmBufferDelay;
[151] A variável “prevPlayoutOffset” é novamente calculada sempre que um quadro recebida surge do módulo de-jitter buffer 430 utilizando o tempo do sistema atual em milissegundos e o tempo RTP da trama convertida em milissegundos:
[152] prevPlayoutOffset = sysTime - rtpTimestamp
[153] Para evitar que “prevPlayoutOffset” fique desatualizado se um quadro não estiver disponível, a variável é atualizada no caso de escalonamento de tempo baseado na trama. Para a dilatação de tempo baseada no quadro, “prevPlayoutOffset” é aumentada pela duração da trama, e
49/71 para um encurtamento de tempo baseado no quadro. “PrevPlayoutOffset” é diminuído pela duração da trama. A variável “pcmBufferDelay” descreve a duração do tempo bufferedm módulo buffer PCM.
[154] 5.4.7. Lógica de Controle
[155] Segue-se uma descrição detalhada do controle (por exemplo, a lógica de controle 490). Contudo, dever-se-á ter em atenção que a lógica de controle 800 de acordo com a Fig. 8 pode ser complementada por qualquer uma das características e funcionalidades descritas em relação ao controle jitter buffer 100 e vice-versa. Além disso, dever-se-á ter em atenção que a lógica de controle 800 pode substituir a lógica de controle 490 de acordo com a Fig. 4, mas pode opcionalmente compreender características e funcionalidades adicionais. Além disso, não é necessário que todas as características e funcionalidades descritas em cima em relação à Fig. 4 se encontrem também presentes na lógica de controle 800 de acordo com a Fig. 8, e vice-versa.
[156] A Fig. 8 ilustra um fluxograma de uma lógica de controle 800, que pode ser naturalmente implementada também no hardware.
[157] A lógica de controle 800 compreende arrastar 810 um quadro para descodificação. por outras palavras, um quadro é selecionada para descodificação, e é determinado a seguir o modo como esta descodificação deverá ser executada. Em uma verificação 814, é verificado se um quadro anterior (por exemplo, um quadro anterior precedente do quadro descartado para descodificação na etapa 810) estava ativo, ou não. Se foi considerado na verificação 814 que a trama anterior estava inativa, um primeiro caminho de decisão (ramo) 820 é selecionado, utilizado para adaptar um sinal inativo. Pelo contrário, é considerado na verificação 814 que a trama anterior estava ativa, um segundo caminho de decisão (ramo) 830 é selecionado, utilizado para adaptar um sinal ativo. O primeiro caminho de decisão 820 compreende a determinação de um valor do “intervalo” em uma etapa 840, em que o valor do intervalo descreve uma diferença entre um atraso na reprodução e um atrasoalvo. Além disso, o primeiro caminho de decisão 820 compreende decidir 850 em uma operação do escalonamento de tempo a ser executada com base no valor do intervalo. O segundo caminho de decisão 830 compreende selecionar 860 um escalonamento de tempo dependendo se um atraso na reprodução
50/71 atual está em um intervalo do atraso-alvo.
[158] Segue-se uma descrição de detalhes adicionais relativos ao primeiro caminho de decisão 820 e ao segundo caminho de decisão 830.
[159] Na etapa 840 do primeiro caminho de decisão 820, uma verificação 842 é efetuada para se uma próxima trama está ativa. Por exemplo, a verificação 842 pode verificar se a trama puxada para descodificação na etapa 810 está ativa ou não. Em alternativa, a verificação 842 pode verificar se a trama a seguir à trama puxada para descodificação na etapa 810 está ativa ou não. Se for considerado, na verificação 842, que a próxima trama não está ativa, ou que a próxima trama ainda não está disponível, a variável “intervalo” é estabelecida, na etapa 844, como uma diferença entre um atraso na reprodução atual (definido por uma variável “playDelay”) e um atraso-alvo DTX (representado pela variável “targetDtx”), encontra-se descrito em cima na secção “Estimativa do Atraso-Alvo”. Pelo contrário, se for considerado na verificação 840 que a próxima trama está ativa, a variável “intervalo” é estabelecida para uma diferença entre o atraso na reprodução (representado pela variável “playoutDelay”) e o atraso-alvo de arranque (como definido pela variável “targetStartUp”) na etapa 846.
[160] Na etapa 850, é primeiro verificado se uma magnitude da variável “intervalo” é superior a (ou igual) um limite. Isto é feito em uma verificação 852. Se for considerado que a magnitude da variável “intervalo” for menor (ou igual a) o valor limite, nenhum escalonamento de tempo é executada. Pelo contrário, se for considerado na verificação 852 que a magnitude da variável “intervalo” é superior ao limite (ou igual aos valores limite, dependendo da implementação), é decidido que o escalonamento é necessário. Noutra verificação 854, é verificado se o valor da variável “intervalo” é positiva ou negativa (isto é, se a variável “intervalo” é maior que zero ou não). Se for considerado que o valor da variável “intervalo” não é maior que zero (isto é, negativo) um quadro é inserida no de-jitter buffer (dilatação de tempo baseada no quadro na etapa 856), de modo que um escalonamento de tempo baseado no quadro seja executado. Isto pode, por exemplo, ser sinalizado pela informação de escalonamento de tempo baseado no quadro 434. Pelo contrário, se for considerado na verificação 848, que o valor da variável “intervalo” é maior que zero, isto é,
51/71 positivo, um quadro é descartado do de-jitter buffer (dilatação de tempo baseada no quadro na etapa 856), de modo que o escalonamento de tempo baseado no quadro seja executado. Isto pode ser sinalizado utilizando a informação de escalonamento de tempo baseado no quadro 434.
[161] Segue-se a descrição do segundo ramo de decisão 860. Em uma verificação 862, é verificado se o atraso na reprodução é superior a (ou igual a) um valor-alvo máximo (isto é, um limite superior de um intervalo-alvo) que é descrito, por exemplo, por uma variável “targetMax”). Se for considerado que o atraso na reprodução é superior (ou igual a) ao valor-alvo máximo, um encurtamento do tempo é executado pelo dispositivo de tempo 450 (etapa 866, encurtamento do tempo baseado na amostra utilizando TSM), de modo que um escalonamento de tempo baseado na amostra é executado. Isto pode ser sinalizado, por exemplo, pela informação de controle baseada na amostra 444. Contudo, se for considerado na verificação 862 que o atraso na reprodução é inferior (ou igual a) ao atraso-alvo máximo, uma verificação 864 é executada, na qual é verificado se o atraso na reprodução é inferior (ou igual a) ao atrasoalvo mínimo, descrito, por exemplo, pela variável “targetMin”. Se for considerado que o atraso na reprodução é inferior (ou igual a) ao atraso na reprodução mínimo, uma redução de tempo é executada pelo dispositivo de tempo 450 (etapa 866, redução de tempo baseada na amostra utilizando TSM), de modo que um escalonamento de tempo baseado na amostra é executado. Isto pode ser sinalizado, por exemplo, pela informação de controle baseada na amostra 444, se for considerado na verificação 864 que o atraso na reprodução não é inferior (ou igual a) ao atraso-alvo mínimo, nenhum escalonamento de tempo é executado.
[162] Para concluir, o módulo da lógica de controle (também designado como lógica de controle de gestão jitter buffer) ilustrado na Fig. 8, compara o atraso atual (atraso na reprodução) com o atraso desejado (atraso-alvo). No caso de uma diferença significativa, este aciona o escalonamento de tempo. Durante o ruído de conforto (por exemplo, quando a bandeira SID está ativa) o escalonamento de tempo baseado no quadro será acionado e executado pelo módulo de-jitter buffer. Durante períodos ativos, o escalonamento de tempo baseado na amostra é acionada e executada pelo módulo TSM.
52/71
[163] A Fig. 12 ilustra um exemplo para estimativa de um atraso-alvo e na reprodução. Uma abcissa 1210 da representação gráfica 1200 descreve um tempo, e a ordenada 1212 da representação gráfica 1200 descreve um atraso em milissegundos. A série “targetMin” e “targetMax” cria uma gama do atraso desejado pelo módulo de estimativa do atraso-alvo a seguir ao jitter da rede da janela. O atraso na reprodução “playoutDelay” mantém-se habitualmente no alcance, mas a adaptação pode ser ligeiramente atrasada devido à modificação do escalonamento de tempo adaptável ao sinal.
[164] A Fig. 13 ilustra as operações do escalonamento de tempo no traçado da Fig. 12. Uma abcissa 1310 da representação gráfica 1300 descreve um tempo em segundos, e uma ordenada 1312 descreve um escalonamento de tempo em milissegundos. Valores positivos indicam dilatação do tempo, valores negativos encurtamento do tempo na representação grafia 1300. Durante o irrompimento, ambos os buffers ficam vazios uma vez, e um quadro oculto é inserida para dilatação (mais 20 milissegundos a 35 segundos). Para todas as outras adaptações, o método de escalonamento de tempo baseado na amostra de maior qualidade pode ser utilizado resultando em variados escalonamentos devido à abordagem adaptável ao sinal.
[165] Para concluir, o atraso-alvo é dinamicamente adaptado em resposta a um aumento do jitter (e também em resposta a uma diminuição do jitter) sobre certa janela. Quando o atraso-alvo aumenta ou diminui, um escalonamento de tempo é habitualmente executada, em que uma decisão relativa ao tipo de escalonamento de tempo é feita de maneira adaptável ao sinal. Desde que a trama atual (ou a trama anterior) esteja ativa, um escalonamento de tempo baseado na amostra é executada, em que o atraso atual do escalonamento de tempo baseado na amostra é adaptado de maneira adaptável ao sinal de modo a reduzir perturbações. Por conseguinte, não existe tipicamente uma quantidade fixa de escalonamento de tempo quando o escalonamento de tempo baseado na amostra é aplicada. Contudo, quando o jitter buffer funciona vazio, é necessário (ou recomendável), como um manuseamento excecional, inserir um quadro oculto (que constitui um escalonamento de tempo baseado na amostra) mesmo quando um quadro anterior (ou um quadro atual) está ativo.
53/71
[166] 5.8. Modificação do escalonamento de tempo de acordo com a Fiq. 9
[167] Segue-se uma descrição de detalhes relativos à modificação do escalonamento de tempo tendo como referência a Fig. 9. Dever-se-á ter em atenção que a modificação do escalonamento de tempo foi brevemente descrita na secção 5.4.3. Contudo, a modificação do escalonamento de tempo, que pode, por exemplo, ser executada pelo dispositivo de tempo 150, irá ser a seguir descrita com maior detalhe.
[168] A Fig. 9 ilustra um fluxograma de uma WSOLA modificada com controle de qualidade, de acordo com um modelo desta invenção. Dever-se-á ter em atenção que o escalonamento de tempo 900 de acordo com a Fig. 9 pode ser complementado por qualquer uma das características e funcionalidades descritas em relação ao dispositivo de tempo 200 de acordo com a Fig. 2, e vice-versa. Além disso, dever-se-á ter em atenção que o escalonamento de tempo 900 de acordo com a Fig. 9 pode corresponder ao dispositivo de tempo baseado na amostra 340 de acordo com a Fig. 3 e ao dispositivo de tempo 450 de acordo com a Fig. 4. Além disso, o dispositivo de tempo 900 de acordo com a Fig. 9 pode substituir o escalonamento de tempo baseado na amostra 866.
[169] O escalonamento de tempo (ou dispositivo de tempo, ou modificador do escalonamento de tempo) 900 recebe amostras (áudio) descodificadas 910, por exemplo, em uma forma modulada de impulso e código (PCM). As amostras descodificadas 910 podem corresponder às amostras descodificadas 442, às amostras de áudio 332 ou ao sinal de entrada de áudio 210. Além disso, o dispositivo de tempo 900 recebe uma informação de controle 912, que pode, por exemplo, corresponder à informação do escalonamento baseado na amostra 444. A informação de controle 912 pode, por exemplo, descrever um escalonamento -alvo e/ou um quadro de dimensão mínima (por exemplo, um número mínimo de amostras de um quadro de amostras de áudio 448 a serem fornecidas ao buffer PCM 460). O dispositivo de tempo 900 compreende uma troca (ou uma seleção) 920, em que é decidido, com base na informação relativa ao escalonamento -alvo, se um encurtamento de tempo deverá ser executado, se uma dilatação de tempo deverá ser executada ou se nenhum escalonamento de tempo deverá ser executado. Por exemplo, a mudança (ou
54/71 verificação, ou seleção) 920 pode ser baseada na informação do escalonamento baseado na amostra 444 recebida da lógica de controle 490.
[170] Se for considerado, com base na informação do escalonamentoalvo, que nenhum escalonamento deverá ser executado, as amostras descodificadas recebidas 910 são encaminhadas de maneira não modificada como uma saída do dispositivo de tempo 900. Por exemplo, as amostras descodificadas 910 são encaminhadas, em uma forma não modificada, ao buffer PCM 460 como as amostras de “escalonamento de tempo” 448.
[171] Segue-se uma descrição do fluxo de processamento para o caso em que um encurtamento de tempo será executado (que pode ser considerado pela verificação 920, com base na informação do escalonamento-alvo 912). No caso em que um encurtamento de tempo é desejado, um cálculo da energia 930 é executado. Neste cálculo da energia 930, uma energia de um bloco de amostras (por exemplo de um quadro compreendendo um dado número de amostras) é calculado. Após o cálculo da energia 930, uma seleção (ou mudança, ou verificação) é executada. Se for considerado que um valor de energia 932 fornecido pelo cálculo de energia 930 é superior a (ou igual a) um valor de energia limite (por exemplo, um valor de energia limite Y), um primeiro caminho de processamento 940 é escolhido, compreendendo uma determinação adaptável ao sinal de uma quantidade de escalonamento de tempo em um escalonamento de tempo baseado na amostra. Pelo contrário, se for considerado que o valor da energia 932 fornecida pelo cálculo de energia 930 é inferior (ou igual a) ao valor limite (por exemplo, o valor limite Y), um segundo caminho de processamento 960 é escolhido, em que uma quantidade fixa de desvio de tempo é aplicada em um escalonamento de tempo baseado na amostra. No primeiro caminho de processamento 940, no qual uma quantidade de desvio de tempo é determinada de maneira adaptável ao sinal, uma estimativa de semelhança 942 é executada com base nas amostras de áudio. A estimativa de semelhança 942 pode considerar uma informação da dimensão mínima da trama 944 e pode fornecer uma informação 946 relativa a uma semelhança mais elevada (ou relativa a uma posição de semelhança mais elevada). Por outras palavras, a estimativa de semelhança 942 pode determinar qual a posição (por exemplo, qual a posição de amostras em um
55/71 bloco de amostras) é a mais adequada para uma operação de sobreposição e adição de encurtamento. A informação 946 relativa à semelhança mais elevada é encaminhada para um controle de qualidade 950, que calcula ou estima se uma operação de sobreposição e adição utilizando a informação 946 relativa à semelhança mais elevada iria resultar em uma qualidade de áudio superior a (ou igual a) um valor de qualidade limite X (que pode ser constante ou que pode ser variável). Se for considerado, através do controle de qualidade 950, que uma qualidade de uma operação de sobreposição e adição (ou equivalentemente, de uma versão do escalonamento de tempo do sinal de entrada de áudio obtido pela operação de sobreposição e adição) iria ser menor do que (ou igual a) a qualidade do valor limite X, um escalonamento de tempo é omitida e as amostras de áudio não escalonadas são obrigadas a sair pelo dispositivo de tempo 900. Pelo contrário, se for considerado, pelo controle de qualidade 950, que a qualidade de uma operação de sobreposição e adição utilizando a informação 946 relativa à semelhança mais elevada (ou relativa à posição da semelhança mais elevada) iria ser maior ou igual ao valor de qualidade limite X, uma operação de sobreposição e adição 954 é executada, em que um desvio, aplicado na operação de sobreposição e adição, é descrito pela informação 946 relativa à semelhança mais elevada (ou relativa à posição da semelhança mais elevada). Por conseguinte, um bloco (ou trama) escalonado de amostras de áudio é fornecido pela operação de sobreposição e adição.
[172] O bloco (ou trama) de amostras de áudio de escalonamento de tempo 956 pode, por exemplo, corresponder às amostras de escalonamento de tempo 448. Do mesmo modo, um bloco (ou trama) de amostras de áudio não escalonadas 952, fornecidas se o controle de qualidade 950 considerar que uma qualidade obtida seria menor do que ou igual ao valor de qualidade limite X, pode também corresponder às amostras “escalonamentos de tempo” 448 (em que não existe mesmo escalonamento de tempo neste caso).
[173] Pelo contrário, se for considerado na seleção 936 que a energia de um bloco (ou trama) de amostras de áudio 910 é menor do que (ou igual a) ao valor de energia limite Y, uma operação de sobreposição e adição 962 é executada, em que um desvio, utilizado na operação de sobreposição e adição,
56/71 é definido pela dimensão mínima da trama (descrita por uma informação de dimensão mínima da trama), e em que um bloco (ou trama) de amostras do escalonamento de tempo 964 é obtido, podendo corresponder às amostras do escalonamento de tempo 448.
[174] Além disso, dever-se-á ter em atenção que um processamento, executado no caso de uma dilatação do tempo, é análogo a um processo executado de encurtamento de tempo com uma estimativa de semelhança modificada e sobreposição e adição.
[175] Para concluir, dever-se-á ter em atenção que três casos diferentes são distinguidos no escalonamento de tempo baseado na amostra adaptável ao sinal quando um encurtamento do tempo ou uma dilatação do tempo é selecionado. Se uma energia de um bloco (ou trama) de amostras de entrada de áudio compreende uma energia comparativamente pequena (por exemplo, menor do que (ou igual a) o valor da energia limite Y), uma operação de encurtamento ou de dilatação do tempo ou de sobreposição e adição é executada com um desvio de tempo fixo (isto é, com uma quantidade fixa de encurtamento de tempo ou de dilatação de tempo). Pelo contrário, se a energia do bloco (ou trama) de amostras de entrada de áudio é superior (ou igual a) ao valor da energia limite Y, uma quantidade “ótima” (também por vezes aqui designada como “candidata”) de encurtamento de tempo ou de dilatação de tempo é determinada pela estimativa de semelhança (estimativa de semelhança 942). Em uma posterior etapa de controle de qualidade, é determinado se uma qualidade suficiente seria obtida por essa operação de sobreposição e adição utilizando a quantidade “ótima” anteriormente determinada de encurtamento ou dilatação de tempo. Se for considerado que uma qualidade suficiente podería ser alcançada, a operação de sobreposição e adição é executada utilizando a quantidade “ótima” anteriormente determinada de encurtamento ou dilatação de tempo. Se, pelo contrário, for considerado que uma qualidade suficiente pode não ser alcançada utilizando uma operação de sobreposição e adição utilizando a quantidade “ótima” anteriormente determinada de encurtamento ou dilatação de tempo, o encurtamento do tempo ou a dilatação do tempo é omitido (ou adiado para um momento posterior no tempo, por exemplo, para um quadro posterior).
57/71
[176] De seguida serão descritos alguns detalhes relativos ao escalonamento de tempo adaptável à qualidade, que pode ser executada pelo dispositivo de tempo 900 (ou pelo dispositivo de tempo 200, ou pelo dispositivo de tempo 340, ou pelo dispositivo de tempo 450). Os métodos do escalonamento de tempo que utilizam sobreposição e adição (OLA) encontramse amplamente disponíveis, mas regra geral não executam resultados de escalonamento de tempo adaptáveis ao sinal. Na solução descrita, que pode ser utilizada nos dispositivos de tempo aqui descritos, a quantidade de escalonamento de tempo não depende apenas da posição extraída pela estimativa de semelhança (por exemplo, pela estimativa de semelhança 942), que parece ótima para um escalonamento de tempo de alta qualidade, mas também de uma qualidade esperada da sobreposição e adição (por exemplo da sobreposição e adição 954). Por isso, duas etapas de controle de qualidade são introduzidas no módulo de escalonamento de qualidade (por exemplo, no dispositivo de tempo 900, ou noutros dispositivos de tempo aqui descritos), para decidir se o escalonamento de tempo iria resultar em perturbações audíveis. No caso de potenciais perturbações, o escalonamento de tempo é adiado até um ponto no tempo em que seria menos audível.
[177] Uma primeira etapa de controle de qualidade calcula uma medida de qualidade objetiva utilizando a posição p extraída pela medida de semelhança (por exemplo, pela estimativa de semelhança 942) como entrada. No caso de um sinal periódico, p será a frequência fundamental do quadro atual. A correlação cruzada normalizada c() é calculada para as posições p, 2*p, 3/2*p, e 1/2*p. c() é esperada como sendo um valor positivo e c(1/2*p) pode ser positivo ou negativo. Para sinais harmônicos, o sinal c(2p) deverá ser também positivo e o sinal de c(3/2*p) deverá ser igual ao sinal de c(1/2*p). Esta relação pode ser utilizada para criar uma medida de qualidade objetiva q:
[178] q = c(p) * c(2*p) + c(3/2*p) * c(1/2*p).
[179] A gama de valores para q é [-2; +2], Um sinal harmônico ideal iria resultar em q = 2, enquanto sinais muito dinâmicos e de banda larga que podem criar perturbações audíveis durante o escalonamento de tempo irão produzir um valor mais baixo. Devido ao facto de que o escalonamento de tempo é feita em uma base quadro-a-quadro, todo o sinal para calcular c(2*p) e
58/71 c(3/2*p) poderá não estar ainda disponível. Contudo, a avaliação pode também ser feita observando os quadros passadas. Desse modo, c(-p) pode ser utilizado em vez de c(2*p), e do mesmo modo c(-1/2*p) pode ser utilizado em vez de c(3/2*p).
[180] Uma segunda etapa de controle de qualidade compara o valor atual da medida de qualidade objetiva q com um valor mínimo de qualidade dinâmica qMin (que pode corresponder a um valor de qualidade limite X) para determinar se o escalonamento de tempo deverá ser aplicado ao quadro atual.
[181] Existem diferentes intenções para a existência de um valor mínimo de qualidade dinâmica; se q possuir um valor baixo porque o sinal é avaliado como mau de escalonamento sobre um longo período, qMin deverá ser reduzido devagar para assegurar que o escalonamento esperado é ainda executado em algum momento com uma baixa qualidade esperada. Por outro lado, sinais com um valor alto para q não deverão resultar em escalonamento de muitos quadros em uma linha que iria reduzir a qualidade relativamente às características do sinal de longo prazo (por ex.: ritmo).
[182] Desse modo, a seguinte fórmula é utilizada para calcular a qualidade mínima dinâmica qMin (que pode, por exemplo, ser equivalente ao valor de qualidade limite X):
[183] qMin = qMinInitial - (nNotScaled * 0.1) + (nScaled * 0.2)
[184] qMinlnitial é um valor de configuração para otimizar entre certa qualidade e o atraso até que um quadro possa ser escalonada com a qualidade solicitada, da qual um valor de 1 é um bom compromisso. nNotScaled é um contador de quadros que ainda não foram escalonadas devido à qualidade insuficiente (q < qMin). nSclaed conta o número de quadros que foram escalonadas porque o requisito de qualidade foi atingido (q >= qMin). A gama de ambos os contadores é limitada: eles não irão diminuir para valores negativos e não irão ser aumentados acima de um valor designado estabelecido para ser 4 por defeito (por exemplo).
[185] O quadro atual será escalonado no tempo pela posição p se q >= qMin, caso contrário o escalonamento de tempo será adiado para uma próximo quadro onde esta condição for cumprida. O pseudo código da Fig. 11 ilustra o controle de qualidade para o escalonamento de tempo.
59/71
[186] Tal como se pode observar, o valor inicial para qMin é estabelecido em 1, sendo que o dito valor inicial é designado com “qMinlnitial” (ver algarismo de referência 1110). Do mesmo modo, um contravalor máximo de nScaled (designado como “variável qualityRise”) é inicializado para 4, tal como se pode observar no algarismo de referência 1112. Um contravalor máximo nNotScaled é inicializado para 4 (variável “qualityRed”), ver algarismo de referência 1114. Consequentemente, uma informação de posição p é extraída por uma medida de semelhança, tal como pode ser observado no algarismo de referência 1116. Consequentemente, um valor de qualidade q é calculado para a posição descrita pelo valor de posição p de acordo com a equação que pode ser vista no algarismo de referência 1116. Um valor de qualidade limite qMin é calculado dependendo da variável qMinlnitial, e também dependendo dos contravalores nNotScaled e nScaled, tal como pode ser observado no algarismo de referência 1118. Tal como se pode observar, o valor inicial qMinlnitial para o valor de qualidade limite qMin é reduzido por um valor proporcional ao contravalor nNotScaled, e aumentado por um valor proporcional ao valor nScaled. Tal como se pode observar, valores máximos para os contravalores nNotScaled e nScaled determinam também um aumento máximo do valor de qualidade limite qMin e uma diminuição máxima do valor de qualidade limite qMin. Consequentemente, é efetuada uma verificação se o valor de qualidade q é superior a ou igual ao valor de qualidade limite qMin, tal como poder ser observado no algarismo de referência 1120.
[187] Se for este o caso, uma operação de sobreposição e adição é executada, tal como pode ser observado no algarismo de referência 1122. Além disso, a contra variável nNotScaled é reduzida, em que é assegurado que a dita contra variável não fica negativa. Além do mais, a contra variável nNotScaled é reduzida, em que é assegurado que a dita contra variável não fica negativa. Além disso, a contra variável nScaled é aumentada, em que é assegurado que nScaled não ultrapassa o limite superior definido pela variável (ou constante) qualityRise. Uma adaptação das contra variáveis pode ser observada nos algarismos de referência 1124 e 1126.
[188] Pelo contrário, se for considerado na comparação ilustrada no algarismo de referência 1120 que o valor de qualidade q é inferior ao limite de
60/71 qualidade qMin, uma execução da operação de sobreposição e adição é omitida, a contra variável nNotScaled é aumentada, tendo em conta que a contra variável nNotScaled não ultrapassa um limite definido pela variável (ou contante) qualityRise, e a contra variável nScaled é reduzida, tendo em conta que a contra variável nScaled não se torna negativa. A adaptação de contra variáveis para o caso que a qualidade é insuficiente é ilustrada nos algarismos de referência 1128 e 1130.
[189] 5.9. Dispositivo de Tempo de acordo com as Fios. 10a e 10b
[190] A seguir, um dispositivo de tempo adaptável ao sinal será explicado tendo como referência as Figs. 10 e 10b. As Figs. 10 e 10b ilustram um fluxograma de um escalonamento de tempo adaptável ao sinal. Dever-se-á ter em atenção que o escalonamento de tempo adaptável ao sinal, tal como ilustrada nas Figs. 10a e 10b, pode, por exemplo, ser aplicada no dispositivo de tempo 200, no dispositivo de tempo 340, no dispositivo de tempo 450 ou no dispositivo de tempo 900.
[191] O dispositivo de tempo 1000 de acordo com as Figs. 10a e 10b, compreende um cálculo de energia 1010, em que uma energia de um quadro (ou uma parte, ou um bloco) de amostras de áudio é calculada. Por exemplo, o cálculo de energia 1010 pode corresponder ao cálculo de energia 930. Consequentemente, uma verificação 1014 é executada, em que é verificado se o valor da energia obtido no cálculo da energia 1010 é superior a (ou igual a) um valor de energia limite (que pode, por exemplo, ser um valor limite de energia fixo). É considerado, na verificação 1014, que o valor de energia obtido no cálculo da energia 1010 é inferior (ou igual a) ao valor limite de energia, poderá ser pressuposto que uma qualidade suficiente pode ser obtida por uma operação de sobreposição e adição, e a operação de sobreposição e adição é executada com um desvio de tempo máximo (para desse modo obter um escalonamento de tempo máxima) em uma etapa 1018. Pelo contrário, se for considerado na verificação 1014 que o valor de energia obtido no cálculo da energia 1010 não é inferior (ou igual a) ao valor limite de energia, uma busca para uma melhor correspondência de um segmento modelo em uma área de busca é executada utilizando uma medida de semelhança. Por exemplo, a medida de semelhança pode ser uma correlação cruzada, uma correlação
61/71 cruzada normalizada, uma função de diferença de magnitude média ou uma soma de erros quadráticos. De seguida, alguns detalhes relativos a esta abordagem para uma melhor correspondência serão descritos, e será também explicado como uma dilatação do tempo ou um encurtamento do tempo pode ser obtida.
[192] Será de seguida feita referência a uma representação gráfica no algarismo de referência 1040. Uma primeira representação 1042 ilustra um bloco (ou quadro) de amostras que iniciam no tempo t1 e que termina, no tempo t2. Tal como pode ser observado, o bloco de amostras que começa em t1 e que termina em t2 pode ser dividido logicamente em um primeiro bloco de amostras, que inicia no tempo t1 e que termina no tempo t3 e um segundo bloco de amostras que inicia no tempo t4 e termina no tempo t2. Contudo, o segundo bloco de amostras é então com desvio de tempo em relação ao primeiro bloco de amostras, que pode ser observado no algarismo de referência 1044. Por exemplo, em resultado de um primeiro desvio de tempo, o segundo bloco de amostras com desvio de tempo inicia no tempo t4’ e termina no tempo t2’. Por conseguinte, existe uma sobreposição temporal entre o primeiro bloco de amostras e o segundo bloco de amostras com desvio de tempo entre os tempos t4’ e t3. Contudo, tal como pode ser observado, não existe uma boa correspondência (isto é, nenhuma semelhança elevada) entre o primeiro bloco de amostras e a versão com desvio de tempo do segundo bloco de amostras, por exemplo, na área de sobreposição entre os tempos t4’ e t3 (ou em uma parte da dita área de sobreposição entre tempos t4’ e t3). Por outras palavras, o dispositivo de tempo pode, por exemplo, desviar no tempo o segundo bloco de amostras, tal como ilustrado no algarismo de referência 1044, e determinar uma medida de semelhança para a área de sobreposição (ou uma parte da área de sobreposição) entre tempos t4’ e t3. Além disso, o dispositivo de tempo pode aplicar um desvio de tempo adicional ao segundo bloco de amostras, tal como ilustrado no algarismo de referência 1046, de modo que a versão (duas vezes) com desvio de tempo do segundo bloco de amostras inicia no tempo t4” e termina no tempo t2” (com t2” > t2’ > t2 e do mesmo modo t4” > t4’ > t4). O dispositivo de tempo pode também determinar uma informação (quantitativa) de semelhança representando uma semelhança
62/71 entre o primeiro bloco de amostras e a versão duas vezes desviada do segundo bloco de amostras, por exemplo, entre os tempos t4” e t3 (ou, por exemplo, em uma parte entre os tempos t4” e t3).
[193] Por conseguinte, o dispositivo de tempo avalia para qual desvio de tempo da versão com desvio de tempo do segundo bloco de amostras a semelhança, na área de sobreposição com o primeiro bloco de amostras, é maximizado (ou pelo menos superior a um valor limite). Por consequência, um desvio de tempo pode ser determinado resultando em uma “melhor correspondência” na medida em que a semelhança entre o primeiro bloco de amostras e a versão com desvio de tempo do segundo bloco de amostras é maximizada (ou pelo menos suficientemente larga). Por conseguinte, se existir uma semelhança suficiente entre o primeiro bloco de amostras e a versão duas vezes com desvio de tempo do segundo bloco de amostras na área de sobreposição temporal (por exemplo entre tempost4” e t3), pode ser esperado, com uma fiabilidade determinada pela medida de semelhança utilizada, que uma operação de sobreposição e adição sobrepondo e adicionando o primeiro bloco de amostras e a versão com desvio de tempo do segundo bloco de amostras resulta em um sinal de áudio sem perturbações audíveis significativas. Além disso, dever-se-á ter em atenção que uma sobreposição entre o primeiro bloco de amostras e a versão duas vezes com desvio de tempo do segundo bloco de amostras resulta em uma parte do sinal de áudio que possui uma extensão temporal entre os tempos t1 e t2”, maiores do que o sinal de áudio “original”, que se estende do tempo t1 ao tempo r2. Por conseguinte, uma dilatação do tempo pode ser obtida por sobreposição e adição do primeiro bloco de amostras e a versão duas vezes com desvio de tempo do segundo bloco de amostras.
[194] Do mesmo modo, um encurtamento do tempo pode ser obtido, tal como será explicado tendo como referência a representação gráfica no algarismo de referência 1050. Tal como pode ser observado no algarismo de referência 1052, existe um bloco (ou quadro) original de amostras, que se estende entre os tempos t11 e t12. O bloco (ou quadro) original de amostras pode ser dividido, por exemplo em um primeiro bloco de amostras que se estende do tempo t11 ao tempo t13 e um segundo bloco de amostras que se
63/71 estende do tempo t13 ao tempo t12. O segundo bloco de amostras é deslocado no tempo para a esquerda, tal como pode ser observado no algarismo de referência 1054. Consequentemente, a versão (uma vez) com desvio de tempo do segundo bloco de amostras inicia no tempo t13’ e termina no tempot12’. Também, existe uma sobreposição temporal entre o primeiro bloco de amostras e a versão uma vez com desvio de tempo do segundo bloco de amostras entre os tempos t13’ e t13. Contudo, o dispositivo de tempo pode determinar uma informação (quantitativa) de semelhança representando uma semelhança do primeiro bloco de amostras e da versão (uma vez) com desvio de tempo do segundo bloco de amostras entre os tempos t13’ e t13 (ou para uma parte do tempo entre os tempos t13’ e t13) e considerar que a semelhança não é especialmente boa. Ainda, o dispositivo de tempo pode adicionalmente desviar no tempo o segundo bloco de amostras, para desse modo obter uma versão duas vezes com desvio de tempo do segundo bloco de amostras, que se encontra ilustrado no algarismo de referência 1056, e que inicia no tempo t13” e termina no tempo t12”. Assim, existe uma sobreposição entre o primeiro bloco de amostras e a versão (duas vezes) com desvio de tempo do segundo bloco de amostras entre os tempos t13’ e t13. Pode ser considerado, pelo dispositivo de tempo, que uma informação (quantitativa) de semelhança indica uma elevada semelhança entre o primeiro bloco de amostras e a versão duas vezes com desvio de tempo do segundo bloco de amostras entre os tempos t13’ e t13. Por conseguinte, pode ser concluído, pelo dispositivo, que uma operação de sobreposição pode ser executada com boa qualidade e menos perturbações audíveis entre o primeiro bloco de amostras e a versão duas vezes com desvio de tempo do segundo bloco de amostras (pelo menos com a fiabilidade fornecida pela medida de semelhança utilizada). Além disso, uma versão três vezes com desvio de tempo do segundo bloco de amostras, ilustrada no algarismo de referência 1058 pode também ser considerada. A versão três vezes com desvio de tempo do segundo bloco de amostras pode iniciar no tempo t13”’ e terminar como tempo t12”’. Contudo, a versão três vezes com desvio de tempo do segundo bloco de amostras pode não compreender uma boa semelhança com o primeiro bloco de amostras na área de sobreposição entre os tempos t13”’ e t13, porque o desvio no tempo não era
64/71 adequado. Por consequência, o dispositivo de tempo pode considerar que a versão duas vezes com desvio de tempo do segundo bloco de amostras compreende uma melhor correspondência (melhora semelhança na área de sobreposição, e/ou em um ambiente da área de sobreposição, e/ou em uma parte da área de sobreposição) com o primeiro bloco de amostras. Por conseguinte, o dispositivo pode executar a sobreposição e adição do primeiro bloco de amostras e da versão duas vezes com desvio de tempo do segundo bloco de amostras, desde que uma verificação de qualidade adicional (que pode confiar em uma segunda medida de semelhança, mais fiável) indique uma qualidade suficiente. Em resultado de uma operação de sobreposição e adição, um bloco combinado de amostras é obtido, que se estende do tempo t11 ao tempo t12”, e que é temporariamente mais curto do que o bloco de amostras original do tempo t11 ao tempo t12. Por conseguinte, um encurtamento do tempo pode ser executado.
[195] Dever-se-á ter em atenção que as funcionalidades anteriores, descritas tendo como referência as representações geográficas nos algarismos de referência 1040 e 1050, podem ser executadas pela busca 1030, em que uma informação relativa à posição da semelhança mais elevada é fornecida em resultado da busca para uma melhor correspondência (em que a informação ou o valor que descreve a posição da semelhança mais elevada é também aqui designada com p). A semelhança entre o primeiro bloco de amostras e a versão com desvio de tempo do segundo bloco de amostras nas respetivas áreas de sobreposição pode ser determinada utilizando uma correlação cruzada, utilizando uma correlação cruzada normalizada, utilizando uma função de diferença de magnitude média ou utilizando uma soma de erros quadráticos. [196] Logo que a informação relativa à posição de semelhança mais elevada (p) é determinada, um cálculo 1060 de uma qualidade de correspondência (p) de semelhança mais elevada é executado. Este cálculo pode ser executado, por exemplo, tal como ilustrado no algarismo de referência 1116 na Fig. 11. Por outras palavras, a informação (quantitativa) relativa à qualidade de correspondência (que pode, por exemplo, ser designada com q) pode ser calculada utilizando uma combinação de quatro valores de correlação, que podem ser obtidos para diferentes desvios de tempo (por exemplo, desvios
65/71 de tempo p, 2*p, 3/2*p e 1/2*p). Por conseguinte, a informação (quantitativa) (q) que representa a qualidade de correspondência pode ser obtida.
[197] Tendo como referência a seguir a Fig. 10b, uma verificação 1064 é executada, na qual a informação quantitativa q que descreve uma qualidade de correspondência é comparada a um valor de qualidade limite qMin. Esta verificação ou comparação 1064 pode avaliar se a qualidade de correspondência, representada por uma variável q, é superior (ou igual a) ao valor de qualidade limite variável qMin. Se for considerado que a verificação 1064 que a qualidade de correspondência é suficiente (isto é, superior a ou igual ao valor de qualidade limite variável), uma operação de sobreposição e adição é aplicada (etapa 1068) utilizando a posição de semelhança mais elevada (descrita, por exemplo, pela variável p). Por conseguinte, uma operação de sobreposição e adição é executada, por exemplo, entre o primeiro bloco de amostras e a versão com desvio de tempo do segundo bloco de amostras que resulta em uma “melhor correspondência” (isto é, em um valor mais elevado de uma informação de semelhança). Para detalhes, é feita referência, por exemplo, às explicações feitas relativas à representação gráfica 1040 e 1050. A aplicação da sobreposição e adição é também ilustrada no algarismo de referência 1122 na Fig. 11. Além disso, uma atualização de um contador de quadros é executada na etapa 1072. Por exemplo, um contador de variáveis “nNotScaled” e um contador de variáveis “nScaled”, são atualizados, por exemplo tal como descrito com referência à Fig. 11 nos algarismos de referência 1124 e 1126. Pelo contrário, se for considerado na verificação 1064 que a qualidade de correspondência é insuficiente (por exemplo, menor do que (ou igual a) valor de qualidade limite variável qmin), a operação de sobreposição e adição é evitada (por exemplo, adiada), indicada no algarismo de referência 1076. Neste caso, os contadores de quadros são também atualizados, tal como ilustrados na etapa 1080. A atualização dos contadores de quadros pode ser executada, por exemplo, tal como ilustrado nos algarismos de referência 1128 e 1130 na Fig. 11. Além disso, o dispositivo de tempo descrito com referência às Figs. 10aa e 10b pode também calcular o valor de qualidade limite variável qMin, ilustrado no algarismo de referência 1084. O cálculo do valor de qualidade limite variável qMin pode ser executado,
66/71 por exemplo, tal como ilustrado no algarismo de referência 1118 na Fig. 11.
[198] Para concluir, o dispositivo de tempo 1000, cuja funcionalidade tem sido descrita tendo como referência as Figs.lOa e 10b sob a forma de um fluxograma, pode executar um escalonamento de tempo baseado na amostra utilizando um mecanismo de controle de qualidade (etapas 1060 e 1084).
[199] 5.10. Método de acordo com a Fig. 14
[200] A Fig. 14 ilustra um fluxograma de um método para o controle de um fornecimento de um conteúdo áudio descodificado com base em uma entrada de conteúdo áudio. O método 1400 de acordo com a Fig. 14 compreende a seleção 1410 de um escalonamento de tempo baseado em um quadro ou de um escalonamento de tempo baseado em uma amostra de uma maneira adaptável ao sinal.
[201] Além disso, dever-se-á ter em atenção que o método 1400 pode ser complementado por qualquer uma das características e funcionalidades aqui descritas, por exemplo, em relação ao controle jitter buffer.
[202] 5.11. Método de acordo com a Fig. 15
[203] A Fig. 15 ilustra um esquema de blocos de um método 1500 para uma versão do escalonamento de tempo de um sinal de entrada de áudio. O método compreende o cálculo ou estimativa 1510 de uma qualidade de uma versão escalonada no tempo do sinal de entrada de áudio obtido por um escalonamento de tempo do sinal de entrada de áudio. Além disso, o método 1500 compreende a execução 1520 do escalonamento de tempo do sinal de entrada de áudio dependendo do cálculo ou estimativa da qualidade da versão escalonada no tempo do sinal de entrada de áudio obtido pelo escalonamento de tempo.
[204] O método 1500 pode ser complementado por qualquer uma das características e funcionalidades aqui descritas, por exemplo, com referência ao dispositivo de tempo.
[205] 6. Conclusões
[206] Para concluir, modelos de acordo com a invenção criam um método e equipamento de gestão jitter buffer para discurso de alta qualidade e comunicação áudio. O método e o equipamento podem ser utilizados juntos com codificadores-descodificadores de comunicações, tais como MPEG ELD,
67/71
AMR-WB, ou futuros codificadores-descodificadores. Por outras palavras, modelos de acordo com a invenção criam um método e equipamento para compensação de jitter de chegada em comunicação por pacotes.
[207] Modelos da invenção podem ser aplicados, por exemplo, na tecnologia denominada “3GPP EVS”.
[208] De seguida, alguns aspetos dos modelos de acordo com a invenção serão brevemente descritos.
[209] A solução de gestão jitter buffer aqui descrita cria um sistema, em que um número de módulos descritos é avaliado e combinado da maneira descrita em cima. Além disso, dever-se-á ter em atenção que os aspetos da invenção dizem também respeito a características dos próprios modelos.
[210] Um as peto importante desta invenção é uma seleção de sinais adaptáveis de um método de escalonamento de tempo para gestão jitter buffer adaptável. A solução descrita combina escalonamento de tempo baseado no quadro e escalonamento de tempo baseado na amostra na lógica de controle de modo que as vantagens de ambos os métodos sejam combinadas. Métodos de escalonamento de tempo disponíveis são:
• Inserção/eliminação de ruído de conforto na DTX;
• Sobreposição e adição (OLA) sem correlação com baixo sinal de energia (por exemplo, para quadros com baixo sinal de energia;
• WSOLA para sinais ativos;
• Inserção de quadros ocultos para dilatação no caso de jitter buffer vazio.
[211] A solução aqui descrita descreve um mecanismo para combinar métodos baseados no quadro (inserção e eliminação de ruído de conforto, e inserção de quadros ocultos para dilatação) com métodos baseados na amostra (WSOLA para sinais ativos, e sobreposição e adição (OLA) dessincronizada para sinais com baixa energia). Na Fig. 8, a lógica de controle é ilustrada que seleciona a tecnologia ideal para modificação do escalonamento de tempo de acordo com um modelo da invenção.
[212] De acordo com outro aspeto aqui descrito, vários alvos para gestão jitter buffer adaptável são utilizados. Na solução descrita, a estimativa de atraso-alvo emprega diferentes critérios de otimização para calcular um único
68/71 atraso na reprodução-alvo. Esses critérios resultam primeiro em diferentes alvos, otimizados para elevada qualidade ou baixo atraso.
Os múltiplos alvos para calcular o atraso na reprodução-alvo são:
• Qualidade: evitar perda tardia (avalia jitter);
• Atraso: limitar o atraso (avalia jitter).
[213] É um aspeto (opcional) da solução descrita otimizar a estimativa do atraso-alvo de modo que o atraso seja limitado mas também perdas tardias são evitadas e adicionalmente uma pequena reserva no jitter buffer é mantida para aumentar a probabilidade de interpelação para permitir uma elevada ocultação do erro de qualidade para o descodificador.
[214] Outro aspeto (opcional) diz respeito à recuperação da ocultação TCX com quadros tardios. Quadros que chegam tarde são descartados pela maior parte das soluções de gestão jitter buffer até agora. Mecanismos foram descritos para utilizar quadros tardios em descodificadores baseados em ACELP [Lef03]. De acordo com um aspeto, esse mecanismo é também utilizado para outras quadros diferentes dos quadros ACELP, por ex.: quadros codificadas no domínio de frequências como TCX, para ajudar na recuperação do estado do descodificador em geral. Assim, os quadros recebidos mais tarde e já ocultos são ainda alimentadas no descodificador para melhorar a recuperação do estado do descodificador.
[215] Outro aspeto importante de acordo com esta invenção é o escalonamento de tempo de qualidade adaptável, descrita em cima.
[216] Para concluir ainda, modelos de acordo com esta invenção criam uma solução de gestão jitter buffer completa que pode ser utilizada para melhorar a experiência do utilizador nas comunicações por pacotes. Tratou-se de uma observação que as soluções apresentadas executam superiormente a qualquer outra solução de gestão jitter buffer conhecida, conhecida dos inventores.
[217] 7. Alternativas de Implementação
[218] Apesar de alguns aspetos terem sido descritos no contexto de um equipamento, está claro que estes aspetos representam também uma descrição do método correspondente, em que um bloco ou dispositivo corresponde a uma etapa do método ou a uma característica de uma etapa do
69/71 método. Do mesmo modo, aspetos descritos no contexto de uma etapa método representam também uma descrição de um bloco ou item ou característica correspondente de um equipamento correspondente. Algumas ou todas as etapas do método podem ser executadas (ou utilizadas) por um equipamento de hardware, como por exemplo, um microprocessador, um computador programável ou um circuito eletrônico. Em alguns modelos, algumas uma ou mais das etapas mais importantes do método podem ser executadas por esse equipamento.
[219] O sinal de áudio codificado inovador pode ser armazenado em um meio de armazenamento digital ou pode ser transmitido em um médio de transmissão tal como um meio de transmissão sem fios ou um meio de transmissão com fios, tal como a internet.
[220] Dependendo de certos requisitos de implementação, modelos da invenção podem ser implementados em hardware ou em software. A implementação pode ser efetuada utilizando um meio de armazenamento digital, por exemplo em disquete, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM ou uma memória FLASH, dotados de sinais de controle lidos eletronicamente neles armazenados, que cooperam (ou são capazes de cooperar) com um sistema programável por computador de modo que o respetivo método seja executado. Desse modo, o meio de armazenamento digital pode ser lido por computador.
[221] Alguns modelos de acordo com a invenção compreendem um suporte de dados, dotado de sinais de controle lidos eletronicamente, capazes de cooperarem com um sistema programável por computador, de modo que um dos métodos aqui descritos seja executado.
[222] Regra geral, os modelos desta invenção podem ser implementados como um produto de programa de computador com um código do programa, em que o código do programa está operacional para executar um dos métodos quando o produto do programa de computador funciona em um computador. O código do programa pode por exemplo ser armazenado em um suporte de leitura automática.
[223] Outros modelos compreendem o programa de computador para executar um dos métodos aqui descritos, armazenados em um suporte de
70/71 leitura automática.
[224] Por outras palavras, um modelo do método inovador é, desse modo, um programa de computador dotado de um código do programa para executar um dos métodos aqui descritos, quando o programa de computador funciona em um computador.
[225] Outro modelo dos métodos inovadores é, desse modo, um suporte de dados (ou um meio de armazenamento digital, ou um meio lido por computador) compreendendo, neles registado, o programa de computador para executar um dos métodos aqui descritos. O suporte de dados, o meio de armazenamento digital ou um meio lido por computador são tipicamente tangíveis e/ou não-transitórios.
[226] Outro modelo do método inovador é, desse modo, um fluxo de dados ou uma sequência de sinais que representam o programa de computador para executar um dos métodos aqui descritos. O fluxo de dados ou a sequência de sinais pode por exemplo ser configurado para ser transferido através de uma ligação de comunicação de dados, por exemplo através da Internet.
[227] Outro modelo compreende um meio de processamento, por exemplo um computador, ou um dispositivo de lógica programável, configurada para ou adaptada para executar um dos métodos aqui descritos.
[228] Outro modelo compreende um computador tendo nele instalado o programa de computador para executar um dos métodos aqui descritos.
[229] Outro modelo de acordo com a invenção compreende um equipamento ou um sistema configurado para transferir (por exemplo, eletronicamente ou oticamente) um programa de computador para executar um dos métodos aqui descritos a um receptor. O receptor pode, por exemplo, ser um computador, um dispositivo móvel, um dispositivo de memória ou idêntico. O equipamento ou sistema pode, por exemplo, compreender um servidor de ficheiros para transferência do programa de computador ao receptor.
[230] Em alguns modelos, um dispositivo de lógica programável (por exemplo uma rede de portas lógicas programáveis) pode ser utilizado para executar algumas ou todas as funcionalidades dos métodos aqui descritos. Em alguns modelos, uma rede de portas lógicas programáveis pode cooperar com um microprocessador para executar um dos métodos aqui descritos. Regra geral, os métodos são de preferência executados por qualquer equipamento informático.
[231] O equipamento aqui descrito pode ser implementado utilizando um equipamento informático ou um computador.
[232] Os métodos aqui descritos podem ser executados utilizando um equipamento informático, ou utilizando um computador, ou utilizando uma combinação de um equipamento informático de um computador.
[233] Os modelos anteriormente descritos são meramente ilustrativos relativamente aos princípios desta invenção. Dever-se-á entender que modificações e variações das disposições e detalhes aqui descritos serão evidentes a outros especializados na área. É, pois, objetivo ser limitado apenas pelo âmbito das reivindicações em anexo e não pelos detalhes específicos apresentados como descrição e explicação dos modelos aqui presentes.

Claims (27)

1. Controle jitter buffer (100; 350; 490) para controlar um fornecimento de um conteúdo áudio descodificado (312; 412) com base em uma entrada de conteúdo áudio (310; 410), caracterizado por o controle jitter buffer ser configurado para selecionar um escalonamento de tempo baseado nos quadros ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal, de modo a que a decisão se se utiliza o escalonamento de tempo baseado nos quadros ou o escalonamento de tempo baseado na amostra é adaptada às características do sinal áudio.
2. Controle jitter buffer (100; 350; 490) de acordo com a reivindicação 1, caracterizado por quadros de áudio serem descartados ou inseridos para controlarem a profundidade de um jitter buffer (320; 430) quando se utiliza o escalonamento de tempo baseado nos quadros, e por uma sobreposição e adição com desvio no tempo (954; 1068) de partes do sinal áudio ser executada quando se utiliza o escalonamento de tempo baseado na amostra.
3. Controle jitter buffer (100; 350; 490) de acordo com a reivindicação 1 ou 2, caracterizado por o controle jitter buffer ser configurado para mudar entre um escalonamento de tempo baseado nos quadros, um escalonamento de tempo baseado na amostra e uma desativação de um escalonamento de tempo de maneira adaptável ao sinal.
4. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 3, caracterizado por o controle jitter buffer ser configurado para selecionar o escalonamento de tempo baseado nos quadros ou o escalonamento de tempo baseado na amostra de modo a controlar uma profundidade de um jitter buffer (320; 430).
5. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 4, caracterizado por o controle jitter buffer ser configurado para selecionar a inserção de um ruído de conforto ou a eliminação de um ruído de conforto (856) se um quadro anterior tiver estado inativo.
6. Controle jitter buffer (100; 350; 490) de acordo com a reivindicação 5, caracterizado por uma inserção de ruído de conforto resultar em uma inserção
2/9 de um quadro de ruído de conforto em um jitter buffer (320; 430), e por uma eliminação do ruído de conforto resultar em uma remoção de um quadro de ruído de conforto do jitter buffer.
7. Controle jitter buffer (100; 350; 490) de acordo com a reivindicação 5 ou 6, caracterizado por um respetivo quadro ser considerado inativo quando o respetivo quadro transporta uma informação de sinalização indicando uma geração de ruído de conforto.
8. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 7, caracterizado por o controle jitter buffer ser configurado para selecionar uma sobreposição e adição desviada no tempo (954; 1068) de partes do sinal áudio se um quadro anterior tiver estado ativo.
9. Controle jitter buffer (100; 350; 490) de acordo com a reivindicação 8, caracterizado por a sobreposição e adição com desvio no tempo (954; 1068) de partes do sinal áudio ser adaptada para permitir um ajuste de um desvio de tempo entre blocos de amostras áudio obtidas com base em quadros posteriores de entrada de conteúdo áudio com uma resolução mais pequena do que o comprimento dos blocos de amostras de áudio, ou mais pequena do que um quarto do comprimento dos blocos de amostras de áudio, ou mais pequena do que ou igual a duas amostras de áudio.
10. Controle jitter buffer (100; 350; 490) de acordo com a reivindicação 8 ou 9, caracterizado por o controle jitter buffer ser configurado para determinar (930,936; 1010,1014) se um bloco de amostras de áudio representa uma parte do sinal áudio ativa mas silenciosa, e por o controle jitter buffer ser configurado para selecionar um modo de sobreposição e adição (962; 1018), no qual um desvio de tempo entre o bloco de amostras de áudio que representa uma parte do sinal de áudio silenciosa e um bloco anterior ou posterior de amostras de áudio está estabelecido para um valor máximo pré-determinado, para um bloco de amostras de áudio representando uma parte do sinal de áudio silenciosa.
11. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 8 a 10, caracterizado por o controle jitter buffer ser configurado para determinar (930,936; 1010,1014) se um bloco de amostras de áudio representa uma parte do sinal áudio ativa e não silenciosa, e para
3/9 selecionar um modo de sobreposição e adição (942,950,954; 1030,1060,1064,1068), no qual o desvio de tempo entre blocos de amostras de áudio determinado com base nos quadros posteriores da entrada de conteúdo áudio é determinado de uma maneira adaptável ao sinal.
12. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 11, caracterizado por o controle jitter buffer ser configurado para selecionar uma inserção de um quadro oculto em resposta a uma determinação que uma dilatação de tempo é necessária e que um jitter buffer está vazio.
13. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 12, caracterizado por o controle jitter buffer ser configurado para selecionar o escalonamento de tempo baseado nos quadros ou o escalonamento de tempo baseado na amostra dependendo de uma transmissão descontínua juntamente com a geração de ruído de conforto estar a ser ou não atualmente utilizada ou ter sido ou não utilizada para um quadro anterior.
14. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 13, caracterizado por o controle jitter buffer ser configurado para selecionar um escalonamento de tempo baseado nos quadros se uma geração de ruído de conforto estiver atualmente a ser utilizada para um quadro anterior e para selecionar um escalonamento de tempo baseado na amostra se uma geração de ruído de conforto não estiver a ser atualmente utilizada ou não tiver sido utilizada para um quadro anterior.
15. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 14, caracterizado por o controle jitter buffer ser configurado para selecionar uma inserção de ruído de conforto baseado nos quadros ou uma eliminação de ruído de conforto baseado nos quadros (856) para um escalonamento de tempo se uma transmissão descontínua juntamente com a geração de ruído de conforto estiver atualmente a ser utilizada ou tiver sido utilizada para um quadro anterior, em que o controle jitter buffer ser configurado para selecionar uma operação de sobreposição e adição utilizando um desvio de tempo
4/2 predeterminado (962,1018) para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa mas compreender uma energia de sinal inferior ou igual a um valor limite de energia, e se um jitter buffer não estiver vazio, ou se uma parte do sinal de áudio anterior esteve ativa mas compreender uma energia de sinal inferior ou igual ao valor limite de energia, e se o jitter buffer não estiver vazio;
em que o controle jitter buffer ser configurado para selecionar uma operação de sobreposição e adição utilizando desvio de tempo adaptável ao sinal (954; 1068) para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia e se o jitter buffer não estiver vazio, ou se uma parte do sinal de áudio anterior esteve ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia e se o jitter buffer não estiver vazio; e em que o controle jitter buffer ser configurado para selecionar uma inserção de um quadro oculto para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e se o jitter buffer estiver vazio, ou se uma parte do sinal de áudio anterior esteve ativa e se o jitter buffer estiver vazio,
16. Controle jitter buffer (100; 350; 490) de acordo com qualquer uma das reivindicações 1 a 15, caracterizado por o controle jitter buffer ser configurado para selecionar uma operação de sobreposição e adição (942,950,954; 1030,1060,1064,1068, 1072, 1084) utilizando um desvio de tempo adaptável ao sinal e um mecanismo de controle de qualidade (950;1060,1064,1072,1084) para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia e se o jitter buffer não estiver vazio, ou se uma parte do sinal de áudio anterior esteve ativa e compreender uma energia de sinal superior ou igual ao valor limite de anergia e se o jitter buffer não estiver vazio.
17. Descodificador áudio (300;400) para fornecer um conteúdo áudio descodificado (312;412) com base em uma entrada de conteúdo áudio (310;410), em que o descodificador áudio compreende:
um jitter buffer (320;430) configurado para buffer uma série de quadros de áudio que representam blocos de amostras de áudio;
5/9 um núcleo descodificador (330;440) configurado para fornecer blocos (332;442) de amostras de áudio com base em quadros de áudio (322;432) recebidas do jitter buffer;
um dispositivo de escalonamento de tempo baseado na amostra (340; 450) em que o dispositivo de escalonamento de tempo baseado na amostra é configurado para fornecer blocos com escalonamento de tempo de amostras de áudio (342; 448) com base em blocos de amostras de áudio fornecidos pelo núcleo descodificador; e um controle jitter buffer (100;350;490) de acordo com uma das reivindicações 1 a 15, caracterizado por o controle jitter buffer ser configurado para selecionar um escalonamento de tempo baseado nos quadros executado pelo jitter buffer, ou um escalonamento de tempo baseado na amostra, executado pelo dispositivo de escalonamento de tempo baseado na amostra, de uma maneira adaptável ao sinal.
18. Descodificador áudio (300;400) de acordo com a reivindicação 17, caracterizado por o jitter buffer (320;430) ser configurado para descartar ou inserir quadros de áudio de modo a executar um escalonamento de tempo baseado nos quadros.
19. Descodificador áudio (300;400) de acordo com a reivindicação 17 ou 18, caracterizado por o núcleo descodificador (330;440) ser configurado para executar uma geração de ruído de conforto em resposta a um quadro que contém informação de sinalização indicando uma geração de ruído de conforto, e em que o núcleo descodificador ser configurado para executar uma ocultação em resposta a um jitter buffer vazio.
20. Descodificador áudio (300;400) de acordo com qualquer uma das reivindicações 17 a 19, caracterizado por o dispositivo de escalonamento de tempo baseado na amostra (340; 450) ser configurado para executar o escalonamento de tempo do sinal de entrada de áudio dependendo de um cálculo ou de uma estimativa (950;1060) da qualidade da versão com escalonamento de tempo do sinal de entrada de áudio obtenível pelo escalonamento de tempo.
21. Método (1400) para controlar um fornecimento de um conteúdo de
6/9 áudio descodificado com base em uma entrada de conteúdo áudio, caracterizado por o método compreender a seleção (1410) de um escalonamento de tempo baseado nos quadros ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal, de modo a que uma decisão se se utiliza o escalonamento de tempo baseado nos quadros ou o escalonamento de tempo baseado na amostra é adaptada às características do sinal áudio.
22. Programa de computador caracterizado por executar o método de acordo com a reivindicação 21, quando o programa de computador está a correr em um computador.
23. Controle jitter buffer (100; 350; 490) para controlar um fornecimento de um conteúdo áudio descodificado (312; 412) com base em uma entrada de conteúdo áudio (310; 410), caracterizado por o controle jitter buffer ser configurado para selecionar um escalonamento de tempo baseado nos quadros ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal, em que os quadros serem descartados ou inseridos para controlarem uma profundidade de um jitter buffer (320; 430) quando o escalonamento de tempo baseado nos quadros é utilizado e por uma sobreposição e adição com desvio no tempo (954; 1068) das partes do sinal áudio ser executada quando se utiliza o escalonamento de tempo baseado na amostra;
em que o controle jitter buffer ser configurado para selecionar uma inserção de ruído de conforto baseado nos quadros ou uma eliminação de ruído de conforto baseado nos quadros (856) para um escalonamento de tempo se uma transmissão descontínua juntamente com geração de ruído de conforto estiver a ser atualmente utilizada ou tiver sido utilizada para um quadro anterior, em que o controle jitter buffer ser configurado para selecionar uma operação de sobreposição e adição utilizando um desvio de tempo prédeterminado (962,1018) para um escalonamento de tempo se uma parte do sinal áudio atual estiver ativa mas compreender uma energia de sinal inferior ou igual a um valor limite de energia, e se um jitter buffer não estiver vazio, ou se uma parte
7/9 do sinal áudio anterior tiver estado ativa mas compreender uma energia de sinal inferior ou igual ao valor limite de energia, e se o jitter buffer não estiver vazio;
em que o controle jitter buffer ser configurado para selecionar uma operação de sobreposição e adição utilizando um desvio de tempo adaptável ao sinal (954; 1068) para um escalonamento de tempo se uma parte do sinal áudio atual estiver ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia e se o jitter buffer não estiver vazio, ou se uma parte do sinal áudio anterior esteve ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia e se o jitter buffer não estiver vazio; e em que o controle jitter buffer ser configurado para selecionar uma inserção de um quadro oculto para um escalonamento de tempo se uma parte do sinal áudio atual estiver ativa e se o jitter buffer estiver vazio, ou se uma parte do sinal áudio anterior tiver estado ativa e se o jitter buffer estiver vazio.
24. Controle jitter buffer (100; 350; 490) para controlar um fornecimento de um conteúdo áudio descodificado (312; 412) com base em uma entrada de conteúdo áudio (310; 410), caracterizado por o controle jitter buffer ser configurado para selecionar um escalonamento de tempo baseado nos quadros ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal, em que quadros de áudio serem descartados ou inseridos para controlar uma profundidade de um jitter buffer (320; 430) quando se utiliza o escalonamento de tempo baseado nos quadros, e por uma sobreposição e adição com desvio no tempo (954; 1068) de partes do sinal áudio ser executada quando se utiliza o escalonamento de tempo baseado na amostra;
em que o controle jitter buffer ser configurado para selecionar uma operação de sobreposição e adição (942,950,954; 1030,1060,1064,1068, 1072, 1084) utilizando um desvio de tempo adaptável ao sinal e um mecanismo de controle de qualidade (950;1060,1064,1072,1084) para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia e se o jitter buffer não estiver vazio, ou se uma parte do sinal de áudio anterior esteve ativa e
8/9 compreender uma energia de sinal superior ou igual ao valor limite de anergia e se o jitter buffer não estiver vazio.
25. Método (1400) para controlar um fornecimento de um conteúdo de áudio descodificado com base em uma entrada de conteúdo áudio, caracterizado por o método compreender a seleção (1410) de um escalonamento de tempo baseado nos quadros ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal;
em que os quadros serem descartados ou inseridos para controlarem uma profundidade de um jitter buffer (320; 430) quando se utiliza escalonamento de tempo baseado nos quadros e por uma sobreposição e adição desviada no tempo (954; 1068) das partes do sinal áudio ser executada quando se utiliza o escalonamento de tempo baseado na amostra;
em que o método compreender selecionar uma inserção de ruído de conforto baseado nos quadros ou uma eliminação de ruído de conforto baseado nos quadros (856) para um escalonamento de tempo se uma transmissão descontínua juntamente com geração de ruído de conforto estiver a ser atualmente utilizada ou tiver sido utilizada para um quadro anterior, selecionando uma operação de sobreposição e adição utilizando um desvio de tempo pré-determinado (962, 1018) para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa mas compreender uma energia de sinal inferior ou igual a um valor limite de energia, e se um jitter buffer não estiver vazio, ou se uma parte do sinal áudio anterior tiver estado ativa mas compreender uma energia de sinal inferior ou igual ao valor limite de energia, e se o jitter buffer não estiver vazio;
selecionar uma seleção de uma operação de sobreposição e adição utilizando um desvio de tempo adaptável ao sinal (954; 1068) para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e compreender uma energia de sinal superior ou igual a um valor limite de energia, e se o jitter buffer não estiver vazio, ou se uma parte do sinal áudio anterior tiver estado ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia, e se o jitter buffer não estiver vazio; e selecionar uma inserção de um quadro oculto para um escalonamento
9/9 de tempo se uma parte do sinal de áudio atual estiver ativa e se o jitter buffer estiver vazio, ou se uma parte do sinal áudio anterior tiver estado ativa e se o jitter buffer estiver vazio.
26. Método (1400) para controlar um fornecimento de um conteúdo de áudio descodificado com base em uma entrada de conteúdo áudio, caracterizado por o método compreender a seleção (1410) de um escalonamento de tempo baseado nos quadros ou um escalonamento de tempo baseado na amostra de uma maneira adaptável ao sinal, em que os quadros serem descartados ou inseridos para controlarem uma profundidade de um jitter buffer (320; 430) quando o escalonamento de tempo baseado nos quadros é utilizado e por uma sobreposição e adição com desvio no tempo (954; 1068) de partes do sinal áudio ser executada quando se utiliza o escalonamento de tempo baseado na amostra;
em que o método compreender a seleção de uma operação de sobreposição e adição (942,950,954; 1030,1060,1064,1068, 1072, 1084) utilizando um desvio de tempo adaptável ao sinal e um mecanismo de controle de qualidade (950;1060,1064,1072,1084) para um escalonamento de tempo se uma parte do sinal de áudio atual estiver ativa e compreender uma energia de sinal superior ou igual ao valor limite de energia e se o jitter buffer não estiver vazio, ou se uma parte do sinal de áudio anterior esteve ativa e compreender uma energia de sinal superior ou igual ao valor limite de anergia e se o jitter buffer não estiver vazio.
27. Programa de computador caracterizado por executar o método de acordo com a reivindicação 25 ou reivindicação 26, quando o programa de computador está a correr em um computador.
BR112015031825-8A 2013-06-21 2014-06-18 Controle jitter buffer, descodificador de áudio e método para controlar um fornecimento de um conteúdo de áudio descodificado BR112015031825B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP13173159.8 2013-06-21
EP13173159 2013-06-21
EP14167061 2014-05-05
EP14167061.2 2014-05-05
PCT/EP2014/062789 WO2014202647A1 (en) 2013-06-21 2014-06-18 Jitter buffer control, audio decoder, method and computer program

Publications (2)

Publication Number Publication Date
BR112015031825A2 true BR112015031825A2 (pt) 2020-06-16
BR112015031825B1 BR112015031825B1 (pt) 2021-12-28

Family

ID=50976647

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015031825-8A BR112015031825B1 (pt) 2013-06-21 2014-06-18 Controle jitter buffer, descodificador de áudio e método para controlar um fornecimento de um conteúdo de áudio descodificado

Country Status (18)

Country Link
US (3) US9997167B2 (pt)
EP (1) EP3011692B1 (pt)
JP (1) JP6251464B2 (pt)
KR (1) KR101953613B1 (pt)
CN (1) CN105518778B (pt)
AU (1) AU2014283320B2 (pt)
BR (1) BR112015031825B1 (pt)
CA (3) CA2916121C (pt)
ES (1) ES2642352T3 (pt)
HK (1) HK1224447A1 (pt)
MX (1) MX352748B (pt)
MY (1) MY170699A (pt)
PL (1) PL3011692T3 (pt)
PT (1) PT3011692T (pt)
RU (1) RU2663361C2 (pt)
SG (1) SG11201510459YA (pt)
TW (1) TWI582759B (pt)
WO (1) WO2014202647A1 (pt)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888381A (zh) 2012-12-20 2014-06-25 杜比实验室特许公司 用于控制抖动缓冲器的装置和方法
EP3321935B1 (en) 2013-06-21 2019-05-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Time scaler, audio decoder, method and a computer program using a quality control
PL3011692T3 (pl) 2013-06-21 2017-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sterowanie buforem rozsynchronizowania, dekoder sygnału audio, sposób i program komputerowy
CN105099949A (zh) 2014-04-16 2015-11-25 杜比实验室特许公司 基于对延迟抖动和对话动态的监视的抖动缓冲器控制
EP3251117A1 (en) * 2015-01-28 2017-12-06 Dynastrom ApS Synchronization in audio playback network independent of system clock
US9948578B2 (en) * 2015-04-14 2018-04-17 Qualcomm Incorporated De-jitter buffer update
KR102422794B1 (ko) * 2015-09-04 2022-07-20 삼성전자주식회사 재생지연 조절 방법 및 장치와 시간축 변형방법 및 장치
US9929928B1 (en) * 2015-12-24 2018-03-27 Microsemi Solutions (U.S.), Inc. Packet transmitter and method for timestamping packets
WO2017129270A1 (en) * 2016-01-29 2017-08-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for improving a transition from a concealed audio signal portion to a succeeding audio signal portion of an audio signal
EP3382703A1 (en) * 2017-03-31 2018-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and methods for processing an audio signal
US11595316B2 (en) * 2018-06-01 2023-02-28 Apple Inc. Adaptive and seamless playback buffer adjustment for streaming content
CN109062537B (zh) * 2018-08-30 2021-07-30 倪兴炜 一种音频延迟的降低方法、装置、介质及设备
CN110113270B (zh) * 2019-04-11 2021-04-23 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
US10614809B1 (en) * 2019-09-06 2020-04-07 Verbit Software Ltd. Quality estimation of hybrid transcription of audio
CN110659776B (zh) * 2019-09-25 2022-04-19 南京国电南自维美德自动化有限公司 具有自适应时间尺度的新能源发电功率预测方法及系统
EP3805924A1 (en) 2019-10-11 2021-04-14 Unify Patente GmbH & Co. KG Method of scheduling an additional new processing task to be executed by a processor, scheduler, and central processing unit
CN111787268B (zh) * 2020-07-01 2022-04-22 广州视源电子科技股份有限公司 音频信号的处理方法、装置、电子设备及存储介质

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3832491A (en) 1973-02-13 1974-08-27 Communications Satellite Corp Digital voice switch with an adaptive digitally-controlled threshold
US4052568A (en) 1976-04-23 1977-10-04 Communications Satellite Corporation Digital voice switch
US5175769A (en) 1991-07-23 1992-12-29 Rolm Systems Method for time-scale modification of signals
US5806023A (en) 1996-02-23 1998-09-08 Motorola, Inc. Method and apparatus for time-scale modification of a signal
US6360271B1 (en) * 1999-02-02 2002-03-19 3Com Corporation System for dynamic jitter buffer management based on synchronized clocks
US6549587B1 (en) * 1999-09-20 2003-04-15 Broadcom Corporation Voice and data exchange over a packet based network with timing recovery
US6788651B1 (en) * 1999-04-21 2004-09-07 Mindspeed Technologies, Inc. Methods and apparatus for data communications on packet networks
US6658027B1 (en) * 1999-08-16 2003-12-02 Nortel Networks Limited Jitter buffer management
US6665317B1 (en) * 1999-10-29 2003-12-16 Array Telecom Corporation Method, system, and computer program product for managing jitter
US6683889B1 (en) * 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers
SE517156C2 (sv) * 1999-12-28 2002-04-23 Global Ip Sound Ab System för överföring av ljud över paketförmedlade nät
US6700895B1 (en) * 2000-03-15 2004-03-02 3Com Corporation Method and system for computationally efficient calculation of frame loss rates over an array of virtual buffers
US7246057B1 (en) * 2000-05-31 2007-07-17 Telefonaktiebolaget Lm Ericsson (Publ) System for handling variations in the reception of a speech signal consisting of packets
US6862298B1 (en) * 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
US6738916B1 (en) * 2000-11-02 2004-05-18 Efficient Networks, Inc. Network clock emulation in a multiple channel environment
US7010073B2 (en) * 2001-01-19 2006-03-07 Qualcomm, Incorporated Delay lock loops for wireless communication systems
WO2002084645A2 (en) 2001-04-13 2002-10-24 Dolby Laboratories Licensing Corporation High quality time-scaling and pitch-scaling of audio signals
WO2002087137A2 (en) * 2001-04-24 2002-10-31 Nokia Corporation Methods for changing the size of a jitter buffer and for time alignment, communications system, receiving end, and transcoder
US7006511B2 (en) * 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US7697447B2 (en) * 2001-08-10 2010-04-13 Motorola Inc. Control of jitter buffer size and depth
US6977948B1 (en) * 2001-08-13 2005-12-20 Utstarcom, Inc. Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks
US7170901B1 (en) * 2001-10-25 2007-01-30 Lsi Logic Corporation Integer based adaptive algorithm for de-jitter buffer control
US7079486B2 (en) * 2002-02-13 2006-07-18 Agere Systems Inc. Adaptive threshold based jitter buffer management for packetized data
US7496086B2 (en) * 2002-04-30 2009-02-24 Alcatel-Lucent Usa Inc. Techniques for jitter buffer delay management
JP2005535915A (ja) 2002-08-08 2005-11-24 コスモタン インク 可変長さ合成と相関度計算減縮技法を利用したオーディオ信号の時間スケール修正方法
US20040062260A1 (en) * 2002-09-30 2004-04-01 Raetz Anthony E. Multi-level jitter control
US7426470B2 (en) 2002-10-03 2008-09-16 Ntt Docomo, Inc. Energy-based nonuniform time-scale modification of audio signals
US7289451B2 (en) * 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
US7394833B2 (en) * 2003-02-11 2008-07-01 Nokia Corporation Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification
US20050047396A1 (en) * 2003-08-29 2005-03-03 Helm David P. System and method for selecting the size of dynamic voice jitter buffer for use in a packet switched communications system
US7596488B2 (en) * 2003-09-15 2009-09-29 Microsoft Corporation System and method for real-time jitter control and packet-loss concealment in an audio signal
US7337108B2 (en) 2003-09-10 2008-02-26 Microsoft Corporation System and method for providing high-quality stretching and compression of a digital audio signal
WO2005043178A2 (en) * 2003-10-29 2005-05-12 University Of Pittsburgh Of The Commonwealth System Of Higher Education Optimizing packetization for minimal end-to-end delay in voip networks
US20050137729A1 (en) 2003-12-18 2005-06-23 Atsuhiro Sakurai Time-scale modification stereo audio signals
US6982377B2 (en) 2003-12-18 2006-01-03 Texas Instruments Incorporated Time-scale modification of music signals based on polyphase filterbanks and constrained time-domain processing
US7359324B1 (en) * 2004-03-09 2008-04-15 Nortel Networks Limited Adaptive jitter buffer control
WO2005089158A2 (en) * 2004-03-16 2005-09-29 Snowshore Networks, Inc. Jitter buffer management
US7424026B2 (en) * 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
CN101873267B (zh) * 2004-08-30 2012-10-24 高通股份有限公司 用于语音ip传输的自适应去抖动缓冲器
US7783482B2 (en) * 2004-09-24 2010-08-24 Alcatel-Lucent Usa Inc. Method and apparatus for enhancing voice intelligibility in voice-over-IP network applications with late arriving packets
US20060187970A1 (en) * 2005-02-22 2006-08-24 Minkyu Lee Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
WO2006106466A1 (en) 2005-04-07 2006-10-12 Koninklijke Philips Electronics N.V. Method and signal processor for modification of audio signals
US7599399B1 (en) * 2005-04-27 2009-10-06 Sprint Communications Company L.P. Jitter buffer management
US7548853B2 (en) 2005-06-17 2009-06-16 Shmunk Dmitry V Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
US7746847B2 (en) * 2005-09-20 2010-06-29 Intel Corporation Jitter buffer management in a packet-based network
US20070083377A1 (en) 2005-10-12 2007-04-12 Steven Trautmann Time scale modification of audio using bark bands
US7720677B2 (en) * 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
JP4673411B2 (ja) * 2005-11-07 2011-04-20 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動通信ネットワークにおける方法および装置
US8832540B2 (en) * 2006-02-07 2014-09-09 Nokia Corporation Controlling a time-scaling of an audio signal
EP2002429B1 (en) 2006-04-04 2012-11-21 Dolby Laboratories Licensing Corporation Controlling a perceived loudness characteristic of an audio signal
WO2007124582A1 (en) 2006-04-27 2007-11-08 Technologies Humanware Canada Inc. Method for the time scaling of an audio signal
US20070263672A1 (en) * 2006-05-09 2007-11-15 Nokia Corporation Adaptive jitter management control in decoder
EP1868363B1 (en) 2006-06-16 2009-05-27 Ericsson AB System, method and node for limiting the number of audio streams in a teleconference
US8346546B2 (en) 2006-08-15 2013-01-01 Broadcom Corporation Packet loss concealment based on forced waveform alignment after packet loss
US7573907B2 (en) * 2006-08-22 2009-08-11 Nokia Corporation Discontinuous transmission of speech signals
US7647229B2 (en) * 2006-10-18 2010-01-12 Nokia Corporation Time scaling of multi-channel audio signals
JP2008139631A (ja) 2006-12-04 2008-06-19 Nippon Telegr & Teleph Corp <Ntt> 音声合成方法、装置、プログラム
CN101548500A (zh) * 2006-12-06 2009-09-30 艾利森电话股份有限公司 抖动缓冲器控制
US8078456B2 (en) 2007-06-06 2011-12-13 Broadcom Corporation Audio time scale modification algorithm for dynamic playback speed control
US8401865B2 (en) * 2007-07-18 2013-03-19 Nokia Corporation Flexible parameter update in audio/speech coded signals
WO2009070093A1 (en) * 2007-11-30 2009-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Play-out delay estimation
JP5250255B2 (ja) * 2007-12-27 2013-07-31 京セラ株式会社 無線通信装置
US7852882B2 (en) * 2008-01-24 2010-12-14 Broadcom Corporation Jitter buffer adaptation based on audio content
WO2009113926A1 (en) * 2008-03-13 2009-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Method for manually optimizing jitter, delay and synch levels in audio-video transmission
EP2141696A1 (en) 2008-07-03 2010-01-06 Deutsche Thomson OHG Method for time scaling of a sequence of input signal values
CA2836871C (en) 2008-07-11 2017-07-18 Stefan Bayer Time warp activation signal provider, audio signal encoder, method for providing a time warp activation signal, method for encoding an audio signal and computer programs
WO2010003545A1 (en) 2008-07-11 2010-01-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e. V. An apparatus and a method for decoding an encoded audio signal
JP5083097B2 (ja) * 2008-07-30 2012-11-28 日本電気株式会社 ジッターバッファ制御方法と通信装置
EP2230784A1 (de) * 2009-03-19 2010-09-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Übertragung einer Mehrzahl von Informationssignalen in einem flexiblen Zeitmultiplex
US8848525B2 (en) * 2009-06-10 2014-09-30 Genband Us Llc Methods, systems, and computer readable media for providing adaptive jitter buffer management based on packet statistics for media gateway
EP2302845B1 (en) * 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
AU2011206675C1 (en) 2010-01-12 2016-04-28 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries
PL2532001T3 (pl) 2010-03-10 2014-09-30 Fraunhofer Ges Forschung Dekoder sygnału audio, koder sygnału audio, sposoby i program komputerowy wykorzystujące zależne od częstotliwości próbkowania kodowanie krzywej dopasowania czasowego
CN102214464B (zh) * 2010-04-02 2015-02-18 飞思卡尔半导体公司 音频信号的瞬态检测方法以及基于该方法的时长调整方法
US8693355B2 (en) * 2010-06-21 2014-04-08 Motorola Solutions, Inc. Jitter buffer management for power savings in a wireless communication device
BR112013008462B1 (pt) 2010-10-07 2021-11-16 Fraunhofer-Gesellschaft Zur Forderung Der Angewadten Forschung E.V. Aparelho e método para estimativa de nivel de estruturas de áudio codificado em um dominio de fluxo de bits
TWI425502B (zh) * 2011-03-15 2014-02-01 Mstar Semiconductor Inc 音訊的時間伸縮方法與相關裝置
EP2710592B1 (en) * 2011-07-15 2017-11-22 Huawei Technologies Co., Ltd. Method and apparatus for processing a multi-channel audio signal
WO2013026203A1 (en) * 2011-08-24 2013-02-28 Huawei Technologies Co., Ltd. Audio or voice signal processor
JP5894286B2 (ja) * 2011-10-20 2016-03-23 エルジー エレクトロニクス インコーポレイティド ジッタバッファの管理方法及びこれを利用するジッタバッファ
GB2520867B (en) * 2011-10-25 2016-05-18 Skype Ltd Jitter buffer
WO2014039843A1 (en) * 2012-09-07 2014-03-13 Apple Inc. Adaptive jitter buffer management for networks with varying conditions
US9420475B2 (en) * 2013-02-08 2016-08-16 Intel Deutschland Gmbh Radio communication devices and methods for controlling a radio communication device
EP3321935B1 (en) * 2013-06-21 2019-05-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Time scaler, audio decoder, method and a computer program using a quality control
PL3011692T3 (pl) * 2013-06-21 2017-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sterowanie buforem rozsynchronizowania, dekoder sygnału audio, sposób i program komputerowy

Also Published As

Publication number Publication date
MX352748B (es) 2017-12-06
TWI582759B (zh) 2017-05-11
KR20160021886A (ko) 2016-02-26
AU2014283320A1 (en) 2016-02-11
JP6251464B2 (ja) 2017-12-20
EP3011692A1 (en) 2016-04-27
RU2016101339A (ru) 2017-07-26
BR112015031825B1 (pt) 2021-12-28
AU2014283320B2 (en) 2016-09-15
US20200321014A1 (en) 2020-10-08
WO2014202647A1 (en) 2014-12-24
CA2916121A1 (en) 2014-12-24
CA2916121C (en) 2019-01-29
PL3011692T3 (pl) 2017-11-30
RU2663361C2 (ru) 2018-08-03
CA2964368A1 (en) 2014-12-24
US9997167B2 (en) 2018-06-12
PT3011692T (pt) 2017-09-22
TW201517026A (zh) 2015-05-01
US20160180857A1 (en) 2016-06-23
US10714106B2 (en) 2020-07-14
US20180190302A1 (en) 2018-07-05
CA2964362C (en) 2020-03-31
CA2964362A1 (en) 2014-12-24
KR101953613B1 (ko) 2019-03-04
CN105518778A (zh) 2016-04-20
HK1224447A1 (zh) 2017-08-18
MX2015017364A (es) 2016-04-06
CA2964368C (en) 2020-03-31
EP3011692B1 (en) 2017-06-14
ES2642352T3 (es) 2017-11-16
SG11201510459YA (en) 2016-01-28
CN105518778B (zh) 2019-09-13
MY170699A (en) 2019-08-26
JP2016527540A (ja) 2016-09-08
US11580997B2 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
BR112015031825A2 (pt) controle jitter buffer, descodificador de áudio, método e programa de computador
BR112015032174B1 (pt) escalador de tempo, descodificador de áudio, método e um programa de computador utilizando um controle de qualidade

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04J 3/06 , G10L 21/04

Ipc: G10L 19/012 (2013.01), H04J 3/06 (2006.01)

B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 18/06/2014, OBSERVADAS AS CONDICOES LEGAIS.