DECODIFICADOR DE DADOS DE VÍDEO E PROCESSO DE DECODIFICAÇAO DE DADOS DE VÍDEO
Domínio Técnico da Invenção
[0001] A presente invenção refere-se a um decodificador de dados de vídeo e a um processo de decodificação desses dados. A invenção se aplica ao domínio dos decodificadores de televisão digital que visam decodificar dados de vídeo e que compreendem meios de sincronização dos dados de vídeo, dos dados de legendas e de dados de áudio (quando esses últimos estão presentes), esses dados sendo registrados em um espaço de armazenamento (do tipo disco rígido) sob a forma multiplexada. Será notado que o termo "legendas" utilizado na sequência designa qualquer tipo de dados textuais destinados a acompanhar os dados de vídeo; pode se tratar por exemplo de legendas definidas de acordo com a norma DVB (para "Digital Vídeo Broadcasting" em inglês) mas também de dados que utilizam a norma tele-texto (transportados em pacotes DVB por exemplo).
Plano de Fundo Tecnológico da Invenção
[0002] Em um decodificador de televisão digital que compreende um disco rígido, diferentes fluxos de tipo áudio, vídeo e teletex-to/legendas tais como notadamente descritos nas normas DVB podem ser estocados sob a forma de fluxo parcial no disco rígido, a fim de ser utilizados de novo e decodificados posteriormente.
[0003] Esses diferentes fluxos são habitualmente transportados em um fluxo de transporte que utiliza por exemplo a norma DVB, des-multiplexado por um desmultiplexador, e transmitidos respectivamente para decodificadores elementares para decodificações de áudio, vídeo, teletexto ou legendas. Os fluxos transmitidos a um órgão de decodificação podem ser destinados a ser utilizados de maneira síncrona. Isso é por exemplo o caso das informações de áudio e de vídeo que estão ligadas entre si por informações de sincronização temporais sob a forma de identificações de tempo de apresentação ou PTS ("Presentation Time Stamps" em inglês). A exploração dessas informações, combinada com a atualização de um relógio local STC ("System Time Clock" em inglês) com o auxílio de sinais de referência temporal anotados PCR (para "Program Clock Reference" em inglês) permite exibir imagens de modo síncrono com o som. As referências temporais PCR são inseridas no fluxo de dados em sincronismo com um relógio que cadencia a codificação dos dados. Elas permitem com o auxílio de um sintetizador de frequências ou de um oscilador comandado em tensão anotado VCXO (para "Voltage Controlled Chrystal Oscilator") gerar no lado de decodificação o relógio STC. As identificações de tempo de apresentação PTS permitem sincronizar a apresentação dos pacotes de dados em relação ao relógio STC. Ainda que a decodificação de vídeo e a decodificação de áudio sejam processos separados, cada pacote de vídeo e cada pacote de áudio é sincronizado com o relógio STC de modo que eles estão presentes a um mesmo instante determinado. Em outros termos, os pacotes de vídeo e os pacotes de áudio são cada um deles sincronizados com o relógio STC e são portanto sincronizados entre si. Esse método é bem-conhecido e implementado nos decodificadores digitais.
[0004] Será notado que a transmissão das informações de sincronização PTS não é obrigatória no caso dos dados de legen-das/teletexto. A sincronização para tais dados, cuja necessidade é bem menos precisa que no caso do áudio, é realizada por uma decodificação quase imediata (algumas dezenas de ms no máximo) dos dados recebidos na saída do desmultiplexador. Devido a isso, no âmbito da exploração de fluxo de legendas em modo de decodificação direta conforme um sinal de antena, a presença ou não de informações de sincronização nesses fluxos não tem grande interesse, a consideração de um erro médio sendo suficiente para ganhar em precisão.
[0005] No entanto, a execução de uma tal solução apresenta um certo número de dificuldades no caso de um decodificador que compreende um espaço de armazenamento de dados.
[0006] Assim, o princípio geralmente utilizado por ocasião da relei-tura de dados utilizados de novo em um espaço de armazenamento consiste em tamponar (quer dizer colocar em memória temporária) os dados utilizados, preenchendo notadamente ao máximo a memória temporária de dados de vídeo. Será utilizado indiferentemente na sequência o termo "memória tamporária" ou o termo "buffer". Os buffers utilizados são do tipo "primeiro que entra-primeiro que sai" FIFO ("First In First Out" em inglês). Dessa maneira, um eventual defeito de leitura no espaço de armazenamento (tal como um erro de leitura de disco por exemplo) que acarreta um prazo na leitura desses dados não é visível. Assim, o conjunto dos dados de áudio, de vídeo, legendas relidas a partir de um espaço de armazenamento é fornecido ao desmul-tiplexador, com uma subordinação dirigida pelo nível de enchimento do buffer de decodificação de vídeo.
[0007] No caso em que nenhuma identificação de tempo PTS antes de envio é implementada para as legendas, essas últimas são decodificadas desde que elas estão disponíveis na saída do desmultiple-xador, da mesma maneira que em recepção direta. Dados de vídeo não ainda descodificados apresentam portanto o risco de estarem ainda presentes no buffer de descodificação de vídeo, enquanto que as legendas correspondentes já estão no decorrer de exibição. Na prática, o tamanho do buffer de decodificação de vídeo e as vazões de compressão de vídeo habituais são tais que é possível ter vários segundos de diferença entre essas legendas e a imagem ainda não descodificada. A coerência de exibição das legendas em relação ao vídeo é nesse caso seriamente comprometida. Desde logo, concebe-se bem que o fato de executar imediatamente (sem colocação em memória temporária) as legendas sem identificação de tempo de apresentação PTS não apresenta um problema maior quando os dados são executados ao "vivo" mas que essa ausência de colocação em memória temporária apresenta sérios problemas em caso de leitura dos dados a partir de um disco rígido incorporado ao decodificador. Será notado que o termo "vivo" utilizado na sequência designa uma visualização em direto, a partir do fluxo e não a partir do disco rígido.
[0008] Por outro lado, na ausência de identificações de tempo de apresentação associadas aos dados de legendas, os problemas mencionados acima são ainda mais aumentados em modo desacelerado na medida em que o atraso entre a exibição das legendas e aquele das imagens de vídeo é ainda maior.
Descrição Geral da Invenção
[0009] Nesse contexto, a presente invenção visa fornecer um decodificador de dados de vídeo e de dados de legendas associados aos ditos dados de vídeo que provêm de um espaço de armazenamento, que permite sincronizar os dados de vídeo e os dados de legendas de modo eficaz, simples e econômico.
[00010] Com essa finalidade, a invenção propõe um decodificador de dados de vídeo e de dados de legendas associados aos ditos dados de vídeo, os ditos dados provindo de um fluxo de dados que inclui por outro lado referências temporais PCR em sincronismo com um relógio que serviu para cadenciar a codificação dos ditos dados, o dito decodificador compreendendo
- - um espaço de armazenamento, os ditos dados de vídeo e de legendas sendo registrados sob a forma multiplexados no dito espaço de armazenamento,
- - uma primeira memória temporária que funciona em modo "primeiro que entra-primeiro que sai" e própria para receber os ditos dados de vídeo sob a forma de pacotes,
- - uma segunda memória temporária que funciona em modo "primeiro que entra-primeiro que sai" e própria para receber os ditos dados de legendas sob a forma de pacotes,
- - um desmultiplexador para emitir os ditos dados de vídeo e os ditos dados de legendas respectivamente na direção da dita primeira e da dita segunda memória temporária,
- - um relógio local,
o dito decodificador sendo caracterizado pelo fato de que o dito espaço de armazenamento compreende meios para armazenar as ditas referências temporais de modo que o dito desmultiplexador transmite também as ditas referências temporais, o dito decodificador incluindo meios para gerar uma identificação de tempo de apresentação associada a cada pacote de dados de legendas que não contém inicialmente uma identificação de tempo de apresentação, a dita identificação de tempo de apresentação sendo determinada a partir de um valor de referência temporal emitido pelo dito desmultiplexador e permitindo sincronizar a apresentação dos ditos pacotes de dados de legendas em relação ao dito relógio local.
[00011] Graças à invenção, associa-se a cada pacote de legendas que não possui uma identificação de tempo PTS (que permite a sincronização) uma identificação de tempo reconstruída; essa identificação de tempo reconstruída é gerada a partir de uma referência temporal PCR. A invenção permite portanto por ocasião de uma leitura de disco sincronizar as legendas mesmo se elas não contêm PTS, quer dizer mesmo se elas não foram previstas com essa finalidade.
[00012] O dispositivo de acordo com a invenção pode também apresentar uma ou várias das características abaixo, consideradas individualmente ou de acordo com todas as combinações tecnicamente possíveis.
[00013] De acordo com um primeiro modo de realização preferencial, o decodificador de acordo com a invenção compreende meios de memorização de uma variável de referência temporal igual à última referência temporal recebida do dito multiplexador, os ditos meios para gerar uma identificação de tempo de apresentação fixando o valor da dita identificação de tempo de apresentação de cada pacote de dados de legendas recebido na dita segunda memória temporária no valor corrente da dita variável de referência temporal.
[00014] De acordo com um segundo modo de realização, o decodificador de acordo com a invenção compreende meios de memorização de uma variável de referência temporal igual à última referência temporal recebida do dito multiplexador, os ditos meios para gerar uma identificação de tempo de apresentação fixando o valor da dita identificação de tempo de apresentação de cada pacote de dados de legendas recebido na dita segunda memória temporária no valor que segue o valor corrente da dita variável de referência temporal no momento da recepção do dito pacote na dita segunda memória temporária.
[00015] De acordo com um terceiro modo de realização, o decodificador de acordo com a invenção compreende meios de memorização de uma variável de referência temporal igual à última referência temporal recebida do dito multiplexador, os ditos meios para gerar uma identificação de tempo de apresentação fixando o valor da dita identificação de tempo de apresentação de cada pacote de dados de legendas recebido na dita segunda memória temporária em uma combinação do valor corrente da dita variável de referência temporal e do valor que segue o valor corrente da dita variável de referência temporal no momento da recepção do dito pacote na dita segunda memória temporária.
[00016] De maneira especialmente vantajosa, o decodificador de acordo com a invenção compreende uma terceira memória temporária que funciona em modo "primeiro que entra-primeiro que sai" e própria para conter provisoriamente as ditas identificações de tempo de apresentação geradas, a dita terceira memória temporária contendo tantas identificações de tempo quanto for o número de pacotes de dados de legendas que não contêm inicialmente uma identificação de tempo de apresentação que se encontra na dita segunda memória temporária.
[00017] De acordo com um modo de realização, os ditos dados de vídeo e de legendas são estocados no dito espaço de armazenamento sob um formato DVB.
[00018] Preferencialmente, o decodificador de acordo com a invenção compreende uma quarta memória temporária que funciona em modo "primeiro que entra-primeiro que sai" e própria para conter provisoriamente dados de áudio, os ditos dados de áudio provindo também do dito fluxo de dados que inclui por outro lado os dados de vídeo, os dados de legendas e as referências temporais.
[00019] Vantajosamente, o decodificador de acordo com a invenção é um decodificador de televisão digital.
[00020] A presente invenção tem também como objeto um processo de decodificação de dados de vídeo e de dados de legendas associados aos ditos dados de vídeo, os ditos dados provindo de um fluxo de dados que inclui por outro lado referências temporais em sincronismo com um relógio que serviu para cadenciar a codificação dos ditos dados, os ditos dados de vídeo, de legendas e as ditas referências temporais sendo registrados sob a forma multiplexados em um espaço de armazenamento, o dito processo compreendendo as etapas seguintes:
- - desmultiplexação dos ditos dados de vídeo, dos ditos dados de legendas e das ditas referências temporais,
- - colocação em uma primeira memória temporária que funciona em modo "primeiro que entra-primeiro que sai" dos ditos dados de vídeo sob a forma de pacotes,
- - colocação em uma segunda memória temporária que funciona em modo "primeiro que entra-primeiro que sai" dos ditos dados de legendas sob a forma de pacotes,
- - memorização de uma variável de referência temporal igual à última referência temporal recebida do dito multiplexador,
- - colocação em uma terceira memória temporária que funciona em modo "primeiro que entra-primeiro que sai" de uma identificação de tempo de apresentação associada a cada pacote de dados de legendas que entra na dita segunda memória temporária e que não contém inicialmente uma identificação de tempo de apresentação, a dita identificação de tempo sendo igual ao valor da última referência temporal memorizada e permitindo sincronizar a apresentação dos ditos pacotes de legendas em relação a um relógio local.
Breve Descrição das Figuras
[00021] Outras características e vantagens da invenção se destacarão claramente da descrição que é dada da mesma abaixo, a título indicativo e de nenhuma forma limitativo, em referência à figura 1 anexa que é uma representação esquemática simplificada de um decodificador de acordo com a invenção para a execução do processo de codificação de acordo com a invenção.
Descrição das Formas de Realização Preferidas da Invenção
[00022] A figura 1 representa esquematicamente um decodificador de televisão digital 1 previsto para receber fluxos de dados F (que utilizam por exemplo uma norma do tipo DVB). O decodificador 1 permite não somente difundir diretamente (ao "vivo") os programas audiovisuais ao telespectador ou gravá-los em um espaço de armazenamento tal como um disco rígido 3 de modo a torná-los acessíveis ao telespectador futuramente. Será notado que a figura 1 só representa as funcionalidades relativas ao modo de realização ligado à armazenamento dos dados.
O decodificador 1 compreende:
- - um módulo de recepção 2 do fluxo de dados F,
- - o disco rígido 3,
- - um desmultiplexador 4,
- - quatro memórias temporárias 5, 6, 7, e 8,
- - três decodificadores 11, 12 e 13 previstos respectivamente para decodificar os dados de vídeo, de áudio e de legendas.
[00023] Cada uma das memórias temporárias 5, 6, 7, e 8 é um buffer de tipo "primeiro que entra-primeiro que sai" FIFO ("First In First Out").
[00024] O fluxo de dados F depois de recepção pelo módulo de recepção 2 é estocado no disco rígido 3.
[00025] O fluxo F compreende um conjunto de dados de vídeo, de áudio e de legendas. O fluxo F compreende também sinais de referência temporal anotados PCR (para "Program Clock Reference"). Essas referências temporais PCR são inseridas no fluxo de dados em sincronismo com um relógio que cadencia a codificação dos dados. Em leitura ao "vivo", os PCR permitem com o auxílio de um sintetizador de frequências ou de um oscilador comandado em tensão anotado VCXO (para "Voltage Controlled Chrystal Oscilator") gerar no lado decodificação um relógio de sincronização STC. No caso de uma leitura a partir do disco rígido 3, as referências temporais não são utilizadas para gerar o relógio STC: o disco rígido 3 compreende no entanto meios 16 para conservar em memória as referências PCR incorporadas no fluxo F.
[00026] Como foi explicado em referência ao estado da técnica, as informações de áudio e de vídeo compreendem cada uma delas informações de sincronização temporais sob a forma de identificações de tempo de apresentação ou PTS ("Presentation Time Stamps" em inglês). Assim, depois de desmultiplexação do fluxo F pelo desmultiple-xador 4, os pacotes P1 de dados de vídeo que compreendem cada um deles uma identificação de tempo PTS são enviados para a memória temporária 5. Do mesmo modo, os pacotes P2 de dados de áudio que compreendem cada um deles uma identificação de tempo PTS são enviados para a memória temporária 8.
[00027] O decodificador 1 compreende também um relógio local 15 STC ("System Time Clock" em inglês) de sincronização e meios 14 para gerar o dito relógio STC 15. A maneira de gerar o relógio 15 STC é diferente de acordo com que se está ao "vivo" ou em leitura do disco rígido 3.
[00028] Assim, como foi explicado em referência ao estado da técnica, ao vivo, gera-se o relógio STC graças às referências temporais PCR recebidas no fluxo, e os pacotes de vídeo e de áudio se sincronizam no relógio STC (isto é as identificações de tempo PTS dos pacotes recebidos são comparadas com o relógio STC para conhecer o momento certo para utilizar o pacote de dados).
[00029] Em leitura de disco, como o fluxo chega a uma velocidade artificial, as referências temporais PCR não são valores confiáveis. Desde logo, os pacotes de vídeo não são sincronizados e o decodificador de vídeo 11 não vai portanto mais levar em consideração a identificação de tempo PTS presente em cada pacote de vídeo; em contrapartida, o decodificador de vídeo 11 vai informar os meios 14 de geração do relógio STC 15 do valor da identificação de tempo PTS associada a cada imagem exibida. Essa identificação de tempo PTS vai em seguida servir para gerar o relógio local 15 STC. Como ao "vivo", os pacotes de áudio vão se sincronizar com o relógio 15. Esse processo é um processo conhecido sob o nome de "vídeo máster".
[00030] Será notado que é também possível utilizar as identificações de tempo PTS dos pacotes de áudio para gerar o relógio STC. Esse processo é conhecido sob o nome de "áudio máster".
[00031] Como foi dito mais acima, a transmissão das informações de sincronização PTS não é obrigatória no caso dos dados de legen-das/teletexto. A fim de ilustrar a invenção, serão tratados aqui unicamente o caso dos pacotes P3 de legendas que não compreendem identificações de tempo PTS (a ausência de PTS é ilustrada pela presença de X nos pacotes P3). Esses pacotes P3 são transmitidos pelo desmultiplexador 4 para a memória temporária 6.
[00032] O decodificador 1 compreende meios 9 de memorização de uma variável de referência temporal igual à última referência temporal PCR recebida do multiplexador 4: em outros termos, os meios 9 permitem ter acesso em permanência ao último valor do PCR.
[00033] O decodificador 1 compreende também meios 10 para gerar uma identificação de tempo de apresentação associada a cada pacote de dados de legendas P3 recebido na memória temporária 6.
[00034] Assim, a cada recepção de um pacote P3 na memória temporária 6, os meios 10 vão interrogar os meios de memorização 9 e fixam o valor de identificação de tempo associado ao pacote P3 no último valor recebido do PCR (isto é valor corrente da variável de referência temporal). Cria-se assim uma identificação de tempo virtual (ou reconstruída) PTSV igual ao último valor recebido de cada valor de referência PCR.
[00035] Cada uma das identificações de tempo PTSV entra na memória temporária 7.
[00036] Compreende-se bem que a memória temporária 6 de pacotes de legendas compreende tantos pacotes de legendas sem identificações de tempo STC quanto for o número de identificações de tempo virtuais PTSV contidas na memória temporária 7.
[00037] A presença de uma identificação de tempo associada ao pacote de legendas permite que o decodificador 13 de dados de legendas sincronize os dados de legendas com o relógio local STC 15.
[00038] Será notado que as referências PCR chegam com muito mais frequência (pelo menos a cada 100 ms na norma DVB) que os pacotes de legenda. Desde logo, é revelado claramente que cada identificação de tempo virtual PTSV tomará um valor diferente de PCR e que numerosos valores de PCR não serão utilizados pelos meios 10 de geração das PTSV.
[00039] O buffer de dados de vídeo 5 é disposto para estar cheio em permanência induzido devido a isso um prazo de vários segundos (o valor desse prazo é diretamente dependente do tamanho do buffer de vídeo 5 e da vazão de vídeo) entre a entrada de um pacote e sua saída. Desde logo, a hora dada por uma referência PCR que acaba de ser recebida está adiantada desses alguns segundos em relação ao relógio local STC 15 gerado a partir das imagens de vídeo que provêm do decodificador 11. Em consequência disso, o fato de atribuir o valor do último PCR recebido à identificação de tempo de cada pacote de legendas constitui uma boa aproximação e permite obter um resultado praticamente tão sincronizado quanto em leitura ao "vivo".
[00040] Naturalmente, a invenção não está limitada ao modo de realização que acaba de ser descrito.
[00041] Notadamente, os meios representados na figura 1 são unidades funcionais que podem ou não corresponder a unidades fisicamente distinguíveis. Por exemplo, esses meios podem ser agrupados em um único componente, ou constituir funcionalidades de um mesmo programa de computador. Ao contrário, certos meios podem eventualmente ser compostos por entidades físicas separadas.
[00042] Por outro lado, foi descrito um modo de realização no qual o valor da identificação de tempo virtual é fixado no valor da última referência PCR recebida. É possível no entanto considerar utilizar um outro valor de PCR diferente do último recebido. É possível por exemplo tratar-se da referência recebida imediatamente depois da recepção do pacote de legendas ou de uma combinação (média) do último valor recebido e do próximo valor recebido.
[00043] Por outro lado, foi indicada a presença de um buffer destinado a armazenar as identificações de tempo virtuais PTSV. É possível também considerar modificar o pacote de legendas (aumentando-se para isso notadamente seu tamanho) a montante de sua entrada na memória temporária de dados de legendas a fim de acrescentar a ele diretamente a identificação de tempo virtual PTSV.
[00044] Finalmente, será possível substituir qualquer meio por um meio equivalente.