BR112021008173A2 - métodos, aparelhos, programas de computador e meios legíveis por computador para codificação de vídeo escalável e transmissão - Google Patents
métodos, aparelhos, programas de computador e meios legíveis por computador para codificação de vídeo escalável e transmissão Download PDFInfo
- Publication number
- BR112021008173A2 BR112021008173A2 BR112021008173-9A BR112021008173A BR112021008173A2 BR 112021008173 A2 BR112021008173 A2 BR 112021008173A2 BR 112021008173 A BR112021008173 A BR 112021008173A BR 112021008173 A2 BR112021008173 A2 BR 112021008173A2
- Authority
- BR
- Brazil
- Prior art keywords
- payload
- data
- configuration data
- size
- configuration
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Dados residuais são obtidos com base
na primeira e segunda representações de uma imagem em um primeiro nível
de qualidade. A segunda representação é baseada em uma representação da
imagem em um segundo nível de qualidade mais baixo. Os dados residuais
são utilizáveis por um decodificador para reconstruir a primeira
representação usando a segunda representação. Uma mensagem de
configuração (300) que compreende uma parte de cabeçalho (310) e uma
parte de payload (320) é gerada e enviada para processamento pelo
decodificador. A parte de payload (320) compreende os dados de
configuração obtidos (350) relativos ao processamento dos dados
residuais. A parte do cabeçalho (310) compreende: (i) um parâmetro de
tipo de mensagem (312) que especifica um tipo de mensagem de
configuração e indica um dado formato de payload da parte de payload
(320), um tamanho de formato de uma parte de payload (320), com o
referido formato de payload, é predeterminado ou pode ser determinado a
partir do conteúdo da parte de payload, e (ii) um parâmetro de tamanho
de payload (314) que especifica o tamanho real da parte de payload
(320).
Description
[0001] Esta invenção se refere a métodos, aparelhos, programas de computador e mídias legíveis por computador. Em particular, mas não exclusivamente, esta invenção se refere a métodos, aparelhos, programas de computador e mídias legíveis por computador para uso no processamento de informações de configuração que se referem a dados residuais utilizáveis para reconstruir uma representação de uma imagem em um nível de qualidade relativamente alto.
[0002] A compressão e descompressão de sinais é algo levado em consideração em muitos sistemas conhecidos. Muitos tipos de sinal, por exemplo, vídeo, podem ser comprimidos e codificados para transmissão, por exemplo, em uma rede de comunicação de dados. Quando tal sinal é decodificado, pode ser desejado aumentar o nível de qualidade do sinal e/ou recuperar o máximo possível da informação contida no sinal original.
[0003] Alguns sistemas conhecidos exploram técnicas de codificação escalável. A codificação escalável envolve a codificação de um sinal junto com as informações, de modo a permitir a reconstrução do sinal em um ou mais níveis de qualidade diferentes, por exemplo, dependendo das capacidades do decodificador e da largura de banda disponível.
[0004] Existem várias considerações relacionadas à reconstrução de sinais em um sistema de codificação escalável. Uma dessas considerações é a quantidade de informação armazenada, usada e/ou transmitida. A quantidade de informação pode variar, por exemplo, dependendo do nível desejado de qualidade do sinal reconstruído, da natureza da informação que é usada na reconstrução e/ou de como essa informação é configurada. Outra consideração é a capacidade do decodificador de processar informações recebidas de maneira confiável. Um fator que pode afetar a confiabilidade do decodificador é a capacidade do decodificador de lidar com erros e/ou de lidar com informações recebidas que são inesperadas, modificadas e/ou que não são reconhecidas pelo decodificador.
[0005] Vários aspectos da presente invenção são apresentados nas reivindicações anexas.
[0006] Outras características e vantagens se tornarão evidentes a partir da seguinte descrição de modalidades preferenciais, fornecidas apenas a título de exemplo, que é feita com referência às figuras que acompanham este documento.
[0007] A Figura 1 mostra um diagrama de blocos esquemático de um exemplo de um sistema de processamento de sinal de acordo com uma modalidade da presente invenção;
[0008] As Figuras 2A e 2B mostram um diagrama de blocos esquemático de outro exemplo de um sistema de processamento de sinal de acordo com uma modalidade da presente invenção;
[0009] A Figura 3 mostra um diagrama esquemático de um exemplo de uma mensagem de configuração de acordo com uma modalidade da presente invenção;
[0010] A Figura 4 é um diagrama de fluxo que representa um exemplo de um método de acordo com uma modalidade da presente invenção;
[0011] A Figura 5 mostra um diagrama esquemático de outro exemplo de uma mensagem de configuração de acordo com uma modalidade da presente invenção;
[0012] A Figura 6 é um diagrama de fluxo que representa outro exemplo de um método de acordo com uma modalidade da presente invenção;
e
[0013] A Figura 7 mostra um diagrama de blocos esquemático de um exemplo de um aparelho de acordo com uma modalidade da presente invenção.
[0014] Com referência à Figura 1, é mostrado um exemplo de um sistema de processamento de sinal 100. O sistema de processamento de sinal 100 é usado para processar sinais. Exemplos de tipos de sinal incluem, sem limitação, sinais de vídeo, sinais de imagem, sinais de áudio, sinais volumétricos, tais como aqueles usados em geração de imagens médicas, científicas ou holográficas ou outros sinais multidimensionais.
[0015] O sistema de processamento de sinal 100 inclui um primeiro aparelho 102 e um segundo aparelho 104. O primeiro aparelho 102 e o segundo aparelho 104 podem ter uma relação cliente-servidor, com o primeiro aparelho 102 realizando as funções de um dispositivo servidor e o segundo aparelho 104 realizando as funções de um dispositivo cliente. O sistema de processamento de sinal 100 pode incluir pelo menos um aparelho adicional (não mostrado). O primeiro aparelho 102 e/ou o segundo aparelho 104 podem compreender um ou mais componentes. Os um ou mais componentes podem ser implementados em hardware e/ou software. Os um ou mais componentes podem ser colocalizados ou podem estar localizados remotamente um do outro no sistema de processamento de sinal 100. Exemplos de tipos de aparelhos incluem, sem limitação, dispositivos computadorizados, computadores portáteis ou laptops, tablets, dispositivos móveis, consoles de jogos, smart TVs, conversores, fones de ouvido de realidade aumentada e/ou virtual etc.
[0016] O primeiro aparelho 102 é comunicativamente acoplado ao segundo aparelho 104 por meio de uma rede de comunicação de dados 106. Exemplos da rede de comunicação de dados 106 incluem, sem limitação, Internet, uma Rede de Área Local (LAN) e uma Rede de Área Ampla (WAN). O primeiro e/ou segundo aparelhos 102, 104 podem ter uma conexão com fio e/ou sem fio com a rede de comunicação de dados 106.
[0017] O primeiro aparelho 102 compreende um codificador 108. O codificador 108 é configurado para codificar dados compreendidos no sinal, que são referidos a seguir como "dados de sinal". Por exemplo, nos casos em que o sinal é um sinal de vídeo, o codificador 108 é configurado para codificar dados de vídeo. Os dados de vídeo compreendem uma sequência de várias imagens ou quadros. O codificador 108 pode executar uma ou mais funções adicionais, além de codificar dados de sinal. O codificador 108 pode assumir várias formas diferentes. Por exemplo, o codificador 108 pode assumir a forma de um hardware e/ou um software.
[0018] Embora neste exemplo o primeiro aparelho 102 compreenda o codificador 108, em outros exemplos, o primeiro aparelho 102 é separado do codificador 108. Em tais exemplos, o primeiro aparelho 102 é comunicativamente acoplado ao codificador 108. O primeiro aparelho 102 pode assumir a forma de uma ou mais funções de software e/ou módulos de hardware.
[0019] O segundo aparelho 104 compreende um decodificador 110. O decodificador 110 é configurado para decodificar dados de sinal. O decodificador 110 pode executar uma ou mais funções adicionais, além de decodificar dados de sinal. O decodificador 110 pode assumir várias formas diferentes. Por exemplo, o decodificador 110 pode assumir a forma de um hardware e/ou um software.
[0020] Embora neste exemplo o segundo aparelho 104 compreenda o decodificador 110, em outros exemplos, o segundo aparelho 104 é separado do decodificador 110. Em tais exemplos, o segundo aparelho 104 é acoplado comunicativamente ao decodificador 110. O segundo aparelho 104 pode assumir a forma de uma ou mais funções de software e/ou módulos de hardware.
[0021] O codificador 108 codifica os dados do sinal e transmite os dados do sinal codificado para o decodificador 110 por meio da rede de comunicação de dados 106. O decodificador 110 decodifica os dados de sinal codificados recebidos e gera dados de sinal decodificados. O decodificador 110 pode emitir os dados de sinal decodificados ou dados derivados usando os dados de sinal decodificados. Por exemplo, o decodificador 110 pode emitir tais dados para exibição em um ou mais dispositivos de exibição associados ao segundo aparelho 104.
[0022] Em alguns exemplos descritos neste documento, o codificador 108 transmite para o decodificador 110 uma representação de um sinal em um determinado nível de qualidade e informações que o decodificador 110 pode usar para reconstruir uma representação do sinal em um ou mais níveis de qualidade superiores. Essas informações podem ser referidas como "dados de reconstrução". Em alguns exemplos, a “reconstrução” de uma representação envolve a obtenção de uma representação que não é uma réplica exata de uma representação original. O quanto a representação é igual à representação original pode depender de vários fatores, incluindo, sem limitação, níveis de quantização. Uma representação de um sinal em um determinado nível de qualidade pode ser considerada uma réplica, versão ou reprodução de dados compreendidos no sinal em um determinado nível de qualidade. Em alguns exemplos, os dados de reconstrução são incluídos nos dados de sinal que são codificados pelo codificador 108 e transmitidos para o decodificador 110. Por exemplo, os dados de reconstrução podem estar na forma de metadados. Em alguns exemplos, os dados de reconstrução são codificados e transmitidos separadamente dos dados de sinal.
[0023] A informação que o decodificador 110 usa para reconstruir a representação do sinal em um ou mais níveis mais elevados de qualidade pode compreender dados residuais, conforme descrito em mais detalhes abaixo. Os dados residuais são um exemplo de dados de reconstrução. A informação que o decodificador 110 usa para reconstruir a representação do sinal em um ou mais níveis mais elevados de qualidade também pode compreender dados de configuração relacionados ao processamento dos dados residuais. Os dados de configuração podem indicar como os dados residuais foram processados pelo codificador 108 e/ou como os dados residuais devem ser processados pelo decodificador 110. Os dados de configuração podem ser sinalizados para o decodificador 110, por exemplo, na forma de metadados.
[0024] Com referência às Figuras 2A e 2B, é mostrado esquematicamente um exemplo de um sistema de processamento de sinal 200. O sistema de processamento de sinal 200 inclui um primeiro aparelho 202 que compreende um codificador e um segundo aparelho 204 que compreende um decodificador. Em cada um do primeiro aparelho 202 e do segundo aparelho 204, os itens são mostrados em dois níveis lógicos. Os dois níveis são separados por uma linha tracejada. Os itens no primeiro e mais alto nível estão relacionados aos dados em um nível de qualidade relativamente alto. Os itens no segundo e mais baixo nível estão relacionados aos dados em um nível de qualidade relativamente baixo. Os níveis relativamente altos e relativamente baixos de qualidade estão relacionados a uma hierarquia em camadas com vários níveis de qualidade. Em alguns exemplos, a hierarquia em camadas compreende mais de dois níveis de qualidade. Em tais exemplos, o primeiro aparelho 202 e o segundo aparelho 204 podem incluir mais de dois níveis diferentes. Pode haver um ou mais outros níveis acima e/ou abaixo daqueles representados nas Figuras 2A e 2B.
[0025] Com referência primeiro à Figura 2A, o primeiro aparelho 202 obtém uma primeira representação de uma imagem em um nível relativamente alto de qualidade 206. Uma representação de uma determinada imagem é uma representação dos dados contidos na imagem. A imagem pode ser um determinado quadro de um vídeo. A primeira representação da imagem no nível de qualidade relativamente alto 206 será referida como "dados de entrada" doravante, pois, neste exemplo, são dados fornecidos como uma entrada para o codificador no primeiro aparelho 202. O primeiro aparelho 202 pode receber os dados de entrada 206. Por exemplo, o primeiro aparelho 202 pode receber os dados de entrada 206 de pelo menos um outro aparelho. O primeiro aparelho 202 pode ser configurado para receber porções sucessivas de dados de entrada 206, por exemplo, quadros sucessivos de um vídeo, e para executar as operações descritas neste documento para cada quadro sucessivo. Por exemplo, um vídeo pode compreender quadros F 1, F2, … FT, e o primeiro aparelho 202 pode processar cada um deles por vez.
[0026] O primeiro aparelho 202 deriva dados 212 com base nos dados de entrada 206. Neste exemplo, os dados 212 com base nos dados de entrada 206 são uma representação 212 da imagem no nível de qualidade relativamente baixo. Neste exemplo, os dados 212 são derivados realizando uma operação de decimação (downsampling) nos dados de entrada 206 e, portanto, serão referidos como "dados submetidos a decimação" a seguir. Em outros exemplos, os dados 212 são derivados executando uma operação diferente de uma operação de decimação nos dados de entrada 206.
[0027] Neste exemplo, os dados submetidos a decimação 212 são processados para gerar dados processados 213 no nível de qualidade relativamente baixo. Em outros exemplos, os dados submetidos a decimação 212 não são processados no nível relativamente baixo de qualidade. Como tal, o primeiro aparelho 202 pode gerar dados no nível de qualidade relativamente baixo, onde os dados no nível de qualidade relativamente baixo compreendem os dados submetidos a decimação 212 ou os dados processados 213.
[0028] Em alguns exemplos, a geração dos dados processados 213 envolve a codificação dos dados submetidos a decimação 212. Codificar os dados submetidos a decimação 212 produz uma imagem codificada com um nível de qualidade relativamente baixo. O primeiro aparelho 202 pode emitir a imagem codificada, por exemplo, para transmissão para o segundo aparelho
204. Uma série de imagens codificadas, por exemplo, formando um vídeo codificado, como saída para transmissão para o segundo aparelho 204 pode ser referida como um fluxo "base". Em vez de ser produzida no primeiro aparelho 202, a imagem codificada pode ser produzida por um dispositivo de codificação que é separado do primeiro aparelho 202. A imagem codificada pode fazer parte de um vídeo codificado em H.264. A geração dos dados processados 213 pode, por exemplo, compreender a geração de quadros sucessivos de vídeo como saída por um dispositivo de codificação separado, como um codificador de vídeo H.264. Um conjunto intermediário de dados para a geração dos dados processados 213 pode compreender a saída de tal codificador, em oposição a quaisquer dados intermediários gerados pelo dispositivo de codificação separado.
[0029] Gerar os dados processados 213 no nível de qualidade pode relativamente baixo envolver ainda a decodificação da imagem codificada no nível de qualidade relativamente baixo. A operação de decodificação pode ser realizada para emular uma operação de decodificação no segundo aparelho 204, como se tornará aparente abaixo. A decodificação da imagem codificada produz uma imagem decodificada com um nível de qualidade relativamente baixo. Em alguns exemplos, o primeiro aparelho 202 decodifica a imagem codificada no nível relativamente baixo de qualidade para produzir a imagem decodificada no nível relativamente baixo de qualidade. Em outros exemplos, o primeiro aparelho 202 recebe a imagem decodificada no nível de qualidade relativamente baixo, por exemplo, de um dispositivo de codificação e/ou decodificação que é separado do primeiro aparelho 202. A imagem codificada pode ser decodificada usando um decodificador H.264. A decodificação por um dispositivo de decodificação separado pode compreender a entrada de vídeo codificado, tal como um fluxo de dados codificado configurado para transmissão para um dispositivo de decodificação remoto, em um decodificador black-box separado implementado junto com o primeiro aparelho 202 para gerar quadros decodificados sucessivos de vídeo. Os dados processados 213 podem, assim, compreender um quadro de dados de vídeo que é gerado por meio de um processo de codificação e decodificação não linear complexo, onde o processo de codificação e decodificação pode envolver a modelagem de correlações espaço-temporais de acordo com um padrão de codificação específico, como H.264. No entanto, como a saída de qualquer codificador é alimentada em um decodificador correspondente, esta complexidade é efetivamente escondida do primeiro aparelho 202.
[0030] Em um exemplo, a geração dos dados processados 213 no nível relativamente baixo de qualidade envolve ainda a obtenção de dados de correção com base em uma comparação entre os dados submetidos a decimação 212 e a imagem decodificada obtida pelo primeiro aparelho 202, por exemplo, com base na diferença entre os dados submetidos a decimação 212 e a imagem decodificada. Os dados de correção podem ser usados para corrigir erros introduzidos na codificação e decodificação dos dados submetidos a decimação 212. Em alguns exemplos, o primeiro aparelho 202 emite os dados de correção, por exemplo, para transmissão para o segundo aparelho 204, bem como o sinal codificado. Isso permite que o destinatário corrija os erros introduzidos na codificação e decodificação dos dados submetidos a decimação 212. Esses dados de correção também podem ser referidos como um fluxo de "primeiro aprimoramento". Como os dados de correção podem ser baseados na diferença entre os dados submetidos a decimação de amostragem reduzida 212 e a imagem decodificada, eles podem ser vistos como uma forma de dados residuais (por exemplo, que é diferente do outro conjunto de dados residuais descrito posteriormente abaixo).
[0031] Em alguns exemplos, a geração dos dados processados 213 no nível relativamente baixo de qualidade envolve ainda corrigir a imagem decodificada usando os dados de correção. Por exemplo, os dados de correção como saída para transmissão podem ser colocados em uma forma adequada para combinação com a imagem decodificada e, em seguida, adicionados à imagem decodificada. Isso pode ser realizado quadro a quadro. Em outros exemplos, em vez de corrigir a imagem decodificada usando os dados de correção, o primeiro aparelho 202 usa os dados submetidos a decimação 212. Por exemplo, em certos casos, apenas os dados codificados e depois decodificados podem ser usados e, em outros casos, a codificação e a decodificação podem ser substituídas por outro processamento.
[0032] Em alguns exemplos, a geração dos dados processados 213 envolve a execução de uma ou mais operações diferentes dos atos de codificação, decodificação, obtenção e correção descritos acima.
[0033] O primeiro aparelho 202 obtém dados 214 com base nos dados no nível de qualidade relativamente baixo. Como indicado acima, os dados no nível de qualidade relativamente baixo podem compreender os dados processados 213, ou os dados submetidos a decimação 212, onde os dados submetidos a decimação 212 não são processados no nível inferior. Conforme descrito acima, em certos casos, os dados processados 213 podem compreender um fluxo de vídeo reconstruído (por exemplo, a partir de uma operação de codificação-decodificação) que é corrigido usando dados de correção. No exemplo das Figuras 2A e 2B, os dados 214 são uma segunda representação da imagem no nível relativamente alto de qualidade, a primeira representação da imagem no nível relativamente alto de qualidade sendo os dados de entrada 206. A segunda representação no nível relativamente alto de qualidade pode ser considerada uma representação preliminar ou prevista da imagem no nível relativamente alto de qualidade. Neste exemplo, o primeiro aparelho 202 deriva os dados 214 por meio da realização de uma operação de decimação nos dados no nível de qualidade relativamente baixo. Os dados 214 serão referidos doravante como "dados submetidos a decimação". No entanto, em outros exemplos, uma ou mais outras operações poderiam ser usadas para derivar os dados 214, por exemplo, nos casos em que os dados 212 não são derivados por decimação dos dados de entrada 206. Deve ser observado que as referências a níveis relativamente altos e relativamente baixos de qualidade podem corresponder a referências a um primeiro e segundo níveis de qualidade, onde o segundo nível de qualidade é mais alto do que o primeiro nível de qualidade. Conforme descrito neste documento, em certos casos, os níveis de qualidade podem corresponder a diferentes resoluções espaciais.
[0034] Os dados de entrada 206 e os dados de submetidos a decimação 214 são usados para obter dados residuais 216. Os dados residuais 216 estão associados à imagem. Os dados residuais 216 podem estar na forma de um conjunto de elementos residuais. Um elemento residual no conjunto de elementos residuais 216 pode ser associado a um elemento de imagem respectivo nos dados de entrada 206. Um exemplo de elemento de imagem é um pixel.
[0035] Neste exemplo, um determinado elemento residual é obtido subtraindo um valor de um elemento de imagem nos dados submetidos a decimação 214 de um valor de um elemento de imagem correspondente nos dados de entrada 206. Como tal, os dados residuais 216 são utilizáveis em combinação com os dados submetidos a decimação 214 para reconstruir os dados de entrada 206. Os dados residuais 216 também podem ser referidos como "dados de reconstrução" ou "dados de aprimoramento". Em um caso, os dados residuais 216 podem fazer parte de um fluxo de "segundo aprimoramento".
[0036] O primeiro aparelho 202 obtém dados de configuração relacionados ao processamento dos dados residuais 216. Os dados de configuração indicam como os dados residuais 216 foram processados e/ou gerados pelo primeiro aparelho 202 e/ou como os dados residuais 216 devem ser processados pelo segundo aparelho 204. Os dados de configuração podem compreender um conjunto de parâmetros de configuração. Os dados de configuração podem ser utilizáveis para controlar como o segundo aparelho
204 processa dados e/ou reconstrói os dados de entrada 206 usando os dados residuais 216. Os dados de configuração podem se referir a uma ou mais características dos dados residuais 216. Dados de configuração diferentes podem resultar em processamento diferente sendo executado em e/ou usando os dados residuais 216. Os dados de configuração são, portanto, utilizáveis para reconstruir os dados de entrada 206 usando os dados residuais 216.
[0037] Neste exemplo, o primeiro aparelho 202 transmite para o segundo aparelho 204 dados baseados nos dados submetidos a downsampling 212, dados baseados nos dados residuais 216, e os dados de configuração, de modo a permitir que o segundo aparelho 204 reconstrua os dados de entrada
206.
[0038] Voltando agora para a Figura 2B, o segundo aparelho 204 recebe dados 220 baseados nos (por exemplo, derivados dos) dados submetidos a downsampling 212. O segundo aparelho 204 também recebe dados baseados nos dados residuais 216. Por exemplo, o segundo aparelho 204 pode receber um fluxo de "base" (dados 220), um "primeiro fluxo de aprimoramento" (quaisquer dados de correção) e um "segundo fluxo de aprimoramento" (dados residuais 216). O segundo aparelho 204 também recebe os dados de configuração relativos ao processamento dos dados residuais 216. Os dados 220 baseados nos dados submetidos a downsampling 212 podem ser os próprios dados submetidos a downsampling 212, os dados processados 213, ou os dados derivados dos dados de submetidos a downsampling 212, ou os dados processados 213. Os dados baseados nos dados residuais 216 podem ser os próprios dados residuais 216 ou os dados derivados dos dados residuais 216.
[0039] Em alguns exemplos, os dados recebidos 220 compreendem os dados processados 213, que podem compreender a imagem codificada no nível de qualidade relativamente baixo e/ou os dados de correção. Em alguns exemplos, por exemplo, nos casos em que o primeiro aparelho 202 processou os dados submetidos a downsampling 212 para gerar os dados processados 213, o segundo aparelho 204 processa os dados recebidos 220 para gerar dados processados 222. Tal processamento pelo segundo aparelho 204 pode compreender a decodificação de uma imagem codificada (por exemplo, que faz parte de um fluxo de vídeo codificado de "base") para produzir uma imagem decodificada no nível relativamente baixo de qualidade. Em alguns exemplos, o processamento pelo segundo aparelho 204 compreende corrigir a imagem decodificada usando dados de correção obtidos. Portanto, os dados processados 222 podem compreender um quadro de dados corrigidos em um primeiro ou um relativamente baixo nível de qualidade. Em alguns exemplos, a imagem codificada no nível relativamente baixo de qualidade é decodificada por um dispositivo de decodificação que é separado do segundo aparelho 204. A imagem codificada no nível de qualidade relativamente baixo pode ser decodificada usando um decodificador H.264.
[0040] Em outros exemplos, os dados recebidos 220 compreendem os submetidos a downsampling 212 e não compreendem os dados processados 213. Em alguns desses exemplos, o segundo aparelho 204 não processa os dados recebidos 220 para gerar dados processados 222.
[0041] O segundo aparelho 204 usa dados no nível relativamente baixo de qualidade para derivar os dados submetidos a upsampling 214. Conforme indicado acima, os dados no nível de qualidade relativamente baixo podem compreender os dados processados 222, ou os dados recebidos 220 onde o segundo aparelho 204 não processa os dados recebidos 220 no nível de qualidade relativamente baixo. Os dados submetidos a upsampling 214 são uma representação preliminar da imagem no nível de qualidade relativamente alto. Os dados submetidos a upsampling 214 podem ser derivados através da realização de uma operação de upsampling nos dados no nível relativamente baixo de qualidade.
[0042] O segundo aparelho 204 obtém os dados residuais 216. Os dados residuais 216 são utilizáveis com os dados submetidos a upsampling 214 para reconstruir os dados de entrada 206. Os dados residuais 216 são indicativos de uma comparação entre os dados de entrada 206 e os dados submetidos a upsampling 214.
[0043] O segundo aparelho 204 também obtém os dados de configuração relacionados ao processamento dos dados residuais 216. Os dados de configuração são utilizáveis pelo segundo aparelho 204 para reconstruir os dados de entrada 206. Por exemplo, os dados de configuração podem indicar uma característica ou propriedade relacionada aos dados residuais 216 que afeta como os dados residuais 216 devem ser usados e/ou processados, ou se os dados residuais 216 devem ser usados. Em alguns exemplos, os dados de configuração compreendem os dados residuais 216.
[0044] Há várias considerações relacionadas ao uso de tais dados de configuração. Uma dessas considerações é a quantidade de informações geradas, armazenadas, transmitidas e/ou processadas. Quanto mais informações forem usadas, maior será a quantidade de recursos que podem estar envolvidos na manipulação dessas informações. Exemplos de tais recursos incluem recursos de transmissão, recursos de armazenamento e recursos de processamento. Em comparação com algumas técnicas conhecidas, os exemplos descritos neste documento permitem que uma quantidade relativamente pequena de informações seja usada. Isso pode reduzir a quantidade de dados transmitidos através da rede de comunicação de dados 106. Os salvamentos (ou gravações) podem ser particularmente relevantes quando os dados se referem a dados de vídeo de alta qualidade, em que a quantidade de informações transmitidas em sistemas conhecidos pode ser especialmente alta.
[0045] Outra consideração relacionada ao uso de tais dados de configuração é a capacidade de se adaptar a diferentes tipos de dispositivos de decodificação. Por exemplo, um determinado codificador pode transmitir informações para uma pluralidade de decodificadores, cada um com características diferentes, tais como capacidades de processamento e/ou de armazenamento. É desejável que o uso de dados de configuração na reconstrução de imagem independa do tipo e/ou da capacidade do dispositivo decodificador que é usado para realizar a reconstrução. Em comparação com algumas técnicas conhecidas, os exemplos descritos neste documento permitem que diferentes tipos de decodificadores com diferentes características operacionais processem dados de configuração de forma confiável.
[0046] Uma consideração adicional relacionada ao uso de tais dados de configuração é a quantidade e/ou a complexidade do processamento envolvida no decodificador para processar os dados de configuração. Em comparação com algumas técnicas conhecidas, os exemplos descritos neste documento reduzem uma quantidade de processamento realizado pelo decodificador a fim de obter e/ou processar os dados de configuração.
[0047] A forma como se lida com erros também é uma consideração. Por exemplo, a capacidade do decodificador de lidar com erros potenciais no processamento dos dados de configuração pode ser um fator na confiabilidade do decodificador. Em comparação com algumas técnicas conhecidas, os exemplos descritos neste documento permitem que um decodificador trate erros em potencial, bem como o recebimento de dados inesperados ou não reconhecidos. Isso pode aumentar efetivamente a confiabilidade do decodificador.
[0048] Com referência à Figura 3, é mostrado esquematicamente um exemplo de uma mensagem de configuração 300. Um aparelho, por exemplo, o primeiro aparelho 102 compreendendo o codificador 108, gera a mensagem de configuração 300 e emite a mensagem de configuração 300 para processamento por um outro aparelho, por exemplo, o segundo aparelho 104 compreendendo o decodificador 110.
[0049] A mensagem de configuração 300 compreende uma parte de cabeçalho 310 e uma parte de payload 320. A parte de payload 320 compreende os dados de configuração 350. Os dados de configuração 350 estão relacionados ao processamento de dados residuais, por exemplo, os dados residuais 216, conforme descrito acima. Em alguns exemplos, a mensagem de configuração 300 é um número inteiro de bytes de tamanho.
[0050] A parte de cabeçalho 310 compreende um parâmetro de tipo de mensagem 312. O parâmetro de tipo de mensagem 312 especifica um tipo de mensagem da mensagem de configuração 300. O tipo de mensagem especificado pelo parâmetro de tipo de mensagem 312 pode indicar como a mensagem de configuração 300 deve ser processada. Um exemplo de tipo de mensagem é uma mensagem de configuração de conjunto de imagens. Uma mensagem de configuração de conjunto de imagens pode corresponder a várias imagens em um conjunto de imagens. Outro tipo de mensagem de exemplo é uma mensagem de configuração de imagem. Uma mensagem de configuração de imagem pode corresponder a uma determinada imagem apenas em um conjunto de imagens. Outro tipo de mensagem de exemplo é uma mensagem de dados codificados. Uma mensagem de dados codificados pode ser organizada para compreender dados residuais codificados para uma determinada imagem. Outro exemplo de tipo de mensagem é uma mensagem de metadados do codificador. Uma mensagem de metadados do codificador pode compreender metadados relacionados a uma ou mais características do codificador. Outro exemplo de tipo de mensagem é uma mensagem de controle do decodificador. Uma mensagem de controle do decodificador pode compreender instruções para controlar um decodificador.
[0051] O parâmetro de tipo de mensagem 312 é indicativo da parte de payload 320 possuindo um determinado formato de payload. O formato de payload da parte de payload 320 pode ser determinado com base no tipo de mensagem da mensagem de configuração 300. O formato de payload pode definir um conjunto de parâmetros de configuração dos dados de configuração
350 que estão compreendidos na parte de payload 320. Em alguns exemplos, o formato de payload da parte de payload 320 define uma lógica de processamento particular que especifica como o conteúdo da parte de payload 320 deve ser processado. A parte de payload 320 possui um tamanho de formato. O tamanho de formato da parte de payload 320 corresponde ao formato de payload da parte de payload 320. O tamanho do formato de uma parte de payload com um determinado formato de payload é predeterminado ou pode ser determinado a partir do conteúdo da parte de payload. Por exemplo, o tamanho do formato pode ser determinado com base no tamanho combinado dos parâmetros de configuração individuais que são definidos pelo formato de payload. O tamanho do formato pode ser considerado um tamanho possível ou um tamanho sugerido da parte de payload 320.
[0052] A parte do cabeçalho 310 também compreende um parâmetro de tamanho de payload 314. O parâmetro do tamanho de payload 314 especifica o tamanho real da parte de payload 320. O tamanho real da parte de payload 320 pode ser um número inteiro de bytes.
[0053] Em alguns exemplos, o valor do parâmetro de tamanho de payload 314 é armazenado em um elemento de tamanho fixo. O elemento de tamanho fixo que armazena o valor do parâmetro de tamanho de payload 314 pode compreender um número predeterminado de bits em um dado byte da parte de cabeçalho 310. Por exemplo, o valor do parâmetro de tamanho de payload 314 pode ser armazenado em um elemento de tamanho fixo que compreende três bits em uma parte de cabeçalho de um byte.
[0054] Em alguns exemplos, o parâmetro de tamanho de payload 314 compreende uma referência a uma tabela de consulta de tamanho de payload que armazena valores possíveis do tamanho real da parte de payload
320. Por exemplo, o parâmetro de tamanho de payload 314 pode compreender um valor que é utilizável para se obter o tamanho real da parte de payload 320 da tabela de consulta de tamanho de payload.
[0055] Em alguns exemplos, o valor do parâmetro de tamanho de payload 314 é armazenado em um elemento de tamanho variável. Este pode ser o caso, por exemplo, nos casos em que o tamanho real da parte de payload 310 não é um dos valores especificados na tabela de consulta do tamanho do payload. O tamanho real da parte de payload 310 especificada pelo parâmetro de tamanho de payload 314 pode ter um tamanho de bit variável. O elemento de tamanho variável compreende um número inteiro de bytes. Em alguns exemplos, pelo menos um byte do elemento de tamanho variável possui um ou mais bits predeterminados dispostos de modo a indicar se o elemento de tamanho variável compreende ou não um ou mais bytes adicionais em relação ao pelo menos um byte fornecido. Por exemplo, um determinado byte do elemento de tamanho variável pode conter sete bits que são organizados de modo a armazenar o parâmetro de tamanho de payload 314 e um bit que é usado para indicar se há um byte adicional no elemento de tamanho variável após o byte fornecido. Como tal, o parâmetro de tamanho de payload 314 pode ser representado usando o elemento de tamanho variável, independentemente do tamanho de bit do parâmetro de tamanho de payload 314. O elemento de tamanho variável compreende o número mínimo de bytes que podem ser usados para armazenar o valor do parâmetro de tamanho de payload 314.
[0056] Em alguns exemplos, os dados são armazenados em um elemento de tamanho fixo que indica que o valor do parâmetro de tamanho de payload 314 é armazenado em um elemento de tamanho variável. Por exemplo, se for determinado que o valor do parâmetro de tamanho de payload 314 possui um conjunto predeterminado de valores, o valor pode ser armazenado no elemento de tamanho fixo e/ou o elemento de tamanho fixo pode incluir uma referência à tabela de consulta de tamanho de payload. Se, por outro lado, for determinado que o valor do parâmetro de tamanho de payload 314 possui o conjunto predeterminado de valores, um elemento de tamanho variável pode ser usado para armazenar o valor, e o elemento de tamanho fixo pode ser disposto de modo a indicar, por exemplo, por meio de um sinalizador compreendido no elemento de tamanho fixo, que o elemento de tamanho variável está sendo usado para armazenar o valor.
[0057] Neste exemplo, a parte de cabeçalho 310 contém apenas o parâmetro de tipo de mensagem 312 e o parâmetro de tamanho de payload
314. Em outros exemplos, a parte de cabeçalho 310 compreende um ou mais parâmetros adicionais. Em alguns exemplos, a parte de cabeçalho 310 tem um byte de tamanho. Por exemplo, o parâmetro de tipo de mensagem 312 pode ser representado por cinco bits, e o parâmetro de tamanho de payload 314 pode ser representado pelos três bits restantes da parte de cabeçalho de um byte 310. Em outros exemplos, por exemplo, nos casos em que um elemento de tamanho variável é usado para representar o tamanho real da parte de payload 320, a parte de cabeçalho 310 compreende mais de um byte.
[0058] O tamanho real da parte de payload 320 pode ser igual ou diferente do tamanho do formato da parte de payload 320. Independentemente do fato de o tamanho real e o tamanho do formato serem ou não iguais, o parâmetro de tamanho de payload 314 que especifica o tamanho real está incluído na parte de cabeçalho 310 da mensagem de configuração 300.
[0059] Incluir um parâmetro de tamanho de payload 314 que especifica o tamanho real da parte de payload 320 quando um possível tamanho da parte de payload 320, a saber, o tamanho do formato, pode ser inferido a partir do parâmetro de tipo de mensagem 312 pode parecer ineficiente e/ou uma duplicação de informações, especialmente quando o tamanho do formato e o tamanho real são iguais. Incluir um parâmetro de tamanho de payload 314 na mensagem de configuração 300 envolve uma maior quantidade de dados sendo usados para a mensagem de configuração 300 em comparação com um caso em que nenhum parâmetro destes está incluído. No entanto, incluir o parâmetro de tamanho de payload 314 na mensagem de configuração 300 facilita o processamento mais eficiente e confiável do decodificador 110 e/ou correção de erro aprimorada em comparação com um caso em que nenhum parâmetro é usado, como será descrito em mais detalhes abaixo.
[0060] Em relação à Figura 4, é mostrado um exemplo de um método 400 de processamento de dados de configuração. O método 400 pode ser realizado por um aparelho que compreende um decodificador, tal como o segundo aparelho 104 descrito acima.
[0061] Em alguns exemplos, dados residuais são recebidos. Neste exemplo, os dados residuais recebidos são os dados residuais 216 descritos acima. Os dados residuais 216 podem ser recebidos de um codificador, como o codificador 108. Os dados residuais 216 são utilizáveis para reconstruir uma primeira representação 206 de uma imagem em um nível relativamente alto de qualidade em uma hierarquia em camadas usando uma segunda representação 214 da imagem em um nível relativamente alto de qualidade. A segunda representação 214 é baseada em uma representação 222 da imagem em um nível relativamente baixo de qualidade na hierarquia em camadas. Em alguns exemplos, os dados utilizáveis para derivar a representação 222 no nível de qualidade relativamente baixo são recebidos do codificador 108.
[0062] No item 410, uma mensagem de configuração é recebida. Neste exemplo, a mensagem de configuração recebida é a mensagem de configuração 300 descrita acima. A mensagem de configuração 300 pode ser recebida do codificador 108.
[0063] No item 420, a mensagem de configuração recebida 300 é processada usando o parâmetro de tipo de mensagem 312 e o parâmetro de tamanho de payload 314. A mensagem de configuração 300 é processada para obter os dados de configuração 350 armazenados na parte de payload 320 da mensagem de configuração 300.
[0064] Em alguns exemplos, o processamento da mensagem de configuração 300 compreende a análise sintática da parte do cabeçalho 310 da mensagem de configuração 300 para obter o parâmetro de tipo de mensagem 312 e o parâmetro de tamanho de payload 312. Com base no parâmetro de tamanho de payload 314, o tamanho real da parte de payload 320 é determinado. Com base no parâmetro de tipo de mensagem 312, o tipo de mensagem da mensagem de configuração 300 é determinado. A mensagem de configuração 300 pode ser processada de acordo com o tipo de mensagem determinado e o tamanho real determinado da parte de payload 320.
[0065] O processamento da mensagem de configuração 300 pode compreender a análise sintática da parte de payload 320 para se obter os dados de configuração 350. Em alguns exemplos, o processamento da mensagem de configuração 300 compreende o rastreamento do número de bytes da mensagem de configuração 300 que foram lidos enquanto a parte de payload 320 é submetida a uma análise sintática. O decodificador 110 pode detectar a ocorrência de uma sub-leitura se houver uma discrepância determinada entre o número de bytes lidos ao se realizar a análise sintática da parte de payload 320 e o tamanho real da parte de payload 320 conforme especificado pelo parâmetro de tamanho de payload 314. Uma sub-leitura pode ser uma fonte potencial de erros ao se processar mensagens de configuração.
[0066] Em alguns exemplos, o parâmetro de tamanho de payload 314 é usado para determinar o início de uma mensagem de configuração a seguir. A seguinte mensagem de configuração pode ser uma próxima mensagem de configuração sucessiva em relação à mensagem de configuração 300 em uma sequência de mensagens de configuração recebidas pelo decodificador 110. A sequência de mensagens de configuração pode fazer parte dos dados de configuração. A mensagem de configuração 300 e a mensagem de configuração seguinte podem corresponder à mesma imagem ou a imagens diferentes. Por exemplo, a mensagem de configuração 300 pode corresponder a uma primeira imagem em uma sequência de imagens, e a mensagem de configuração seguinte pode corresponder a uma segunda imagem diferente na sequência de imagens.
[0067] Em alguns exemplos, o processamento da mensagem de configuração 300 compreende descartar pelo menos parte do conteúdo da parte de payload 320. A pelo menos parte do conteúdo da parte de payload 320 pode ser descartada usando o parâmetro de tamanho de payload 314. Por exemplo, o decodificador 110 pode pular para a próxima mensagem de configuração, o início da próxima mensagem de configuração tendo sido determinado usando o parâmetro de tamanho de payload 314, sem haver processamento de pelo menos parte do conteúdo da parte de payload 320.
[0068] O uso do parâmetro de tamanho de payload 314, portanto, permite que o decodificador 110 lide com possíveis sub-leituras de uma maneira eficiente. O uso do parâmetro de tamanho de payload 314 para localizar o início da mensagem seguinte também permite que o decodificador 110 mantenha um alinhamento ou sincronização corretos com um fluxo de bytes (bytestream) compreendendo várias mensagens de configuração. Por exemplo, mesmo se o conteúdo e/ou o formato de uma determinada mensagem de configuração não for reconhecido, esperado e/ou tiver sido atualizado sem o conhecimento do decodificador 110, o decodificador 110 ainda é capaz de localizar o início da mensagem de configuração seguinte e assim permanecer sincronizado com o fluxo de bytes. Além disso, se um fluxo de bytes se tornar malformado, o decodificador 110 é capaz de detectar quando uma sobre-leitura está prestes a ocorrer e responder em conformidade. Por exemplo, o decodificador 110 pode abortar o processamento da mensagem de configuração atual e reiniciar o fluxo de bytes para o local determinado do início da próxima mensagem de configuração. O processamento da mensagem de configuração 300 usando o parâmetro de tamanho de payload 314, portanto, melhora a confiabilidade e/ou a adaptabilidade do decodificador 110 em comparação com um caso em que tal parâmetro não é usado, em que o decodificador 110 é capaz de lidar com mensagens de configuração que foram modificados e/ou não reconhecidos e/ou inesperados. O decodificador 110 também é capaz de lidar com possíveis sub-leituras e sobre-leituras sem sair de sincronia com o fluxo de bytes, melhorando assim a capacidade do decodificador 110 de lidar com erros em potencial.
[0069] Em alguns exemplos, o processamento da mensagem de configuração 300 compreende a análise sintática do primeiro conteúdo da parte de payload 320. O primeiro conteúdo corresponde ao tamanho do formato da parte de payload 320. O primeiro conteúdo pode compreender os dados de configuração 350. O primeiro conteúdo pode compreender um primeiro conjunto de parâmetros de configuração. O processamento da mensagem de configuração 300 pode compreender ainda o descarte do conteúdo restante da parte de payload 320 usando o parâmetro de tamanho de payload 314. O conteúdo restante da parte de payload 320 compreende o conteúdo da parte de payload 320 que não está compreendido no primeiro conteúdo. O conteúdo restante compreende dados de configuração adicionais. O conteúdo restante pode compreender um conjunto de parâmetros adicional de configuração. A presença do conteúdo restante pode ser determinada detectando uma discrepância entre o tamanho do formato e o tamanho real da parte de payload
320. Em outras palavras, se for determinado que o tamanho real é maior do que o tamanho do formato, é determinado que o conteúdo adicional, além do conteúdo que é esperado com base no tamanho do formato, está presente na parte de payload 320.
[0070] No item 430, a primeira representação 206 é reconstruída usando os dados de configuração 350 obtidos. A primeira representação 206 pode ser reconstruída usando os dados residuais 216 de acordo com os dados de configuração 350 obtidos.
[0071] Com referência à Figura 5, é mostrado esquematicamente um exemplo de uma mensagem de configuração 500. Um aparelho, por exemplo, o primeiro aparelho 102 compreendendo o codificador 108, pode gerar a mensagem de configuração 500 e emite a mensagem de configuração 500 para processamento por um outro aparelho, por exemplo, o segundo aparelho 104 compreendendo o decodificador 110. Alguns itens representados na Figura 5 são semelhantes aos itens mostrados na Figura 3. Sinais de referência correspondentes, incrementados em 200, foram, portanto, usados para itens semelhantes.
[0072] A mensagem de configuração 500 compreende uma parte de cabeçalho 510 e uma parte de payload 520. A parte de cabeçalho 510 compreende um parâmetro de tipo de mensagem 512. O parâmetro de tipo de mensagem 512 especifica um tipo de mensagem da mensagem de configuração 500. O tipo de mensagem indica como a mensagem de configuração 500 deve ser processada. A parte do cabeçalho 510 também compreende um parâmetro de tamanho de payload 514. O parâmetro do tamanho de payload 514 especifica o tamanho real da parte de payload 520.
[0073] Neste exemplo, a parte de payload 520 compreende uma primeira parte de payload 522. A primeira porção de payload 522 compreende os primeiros dados de configuração 552 relativos ao processamento dos dados residuais 216. A parte de payload 520 também compreende uma segunda parte de payload 524. Neste exemplo, a segunda porção de payload 524 é arranjada subsequentemente em relação à primeira porção de payload 522 na parte de payload 520. Organizar a segunda porção de payload 524 subsequentemente em relação à primeira porção de payload 522 pode permitir que a primeira porção de payload 522 seja recebida, processada e/ou submetida a uma análise sintática pelo decodificador 110 antes que a segunda porção de payload 524 seja recebida, processada e/ou submetida a uma análise sintática. A segunda porção de payload 524 compreende segundos dados de configuração 554 relativos ao processamento dos dados residuais
216.
[0074] A primeira e a segunda porções de payload 522, 524 juntas formam a parte de payload 520 da mensagem de configuração 500. Portanto, o parâmetro de tamanho de payload 514 é indicativo de um tamanho total da primeira e da segunda porções de payload 522, 524.
[0075] Em alguns exemplos, a primeira porção de payload 522 compreende todos os primeiros dados de configuração 552. Em alguns exemplos, a segunda porção de payload 524 compreende a totalidade dos segundos dados de configuração 554. Como tal, o primeiro e o segundo dados de configuração 552, 554 podem ser armazenados em porções separadas da parte de payload 520 da mensagem de configuração 500. O armazenamento dos primeiros dados de configuração 552 em uma porção separada da parte de payload 520 em relação aos segundos dados de configuração 554 facilita que se lide eficientemente com o conteúdo da parte de payload 520 por um decodificador, particularmente para um decodificador que está configurado para não usar e/ou processar um dentre os primeiros e segundos dados de configuração 552, 554.
[0076] Em alguns exemplos, a parte do cabeçalho 510 não especifica o tamanho da primeira porção de payload 522 e/ou o tamanho da segunda porção de payload 524. Em alguns exemplos, o tamanho da primeira porção de payload 522 pode ser determinado com base no tamanho do formato indicado pelo parâmetro de tipo de mensagem 512. Como tal, o tamanho do formato indicado pelo parâmetro de tipo de mensagem 512 pode refletir o conteúdo da primeira porção de payload 522, mas não o conteúdo da segunda porção de payload 524.
[0077] Um ou ambos os primeiros dados de configuração 552 e os segundos dados de configuração 554 podem ser usados para reconstruir os dados de entrada 206 usando os dados residuais 216. Em alguns exemplos, os segundos dados de configuração 554 compreendem dados de configuração suplementares. Os dados de configuração suplementares são organizados para suplementar os primeiros dados de configuração 552.
[0078] Os primeiros dados de configuração 552 estão relacionados a um primeiro conjunto de um ou mais decodificadores. O primeiro conjunto de um ou mais decodificadores possui uma primeira característica operacional. Um exemplo de uma característica operacional é uma capacidade de processamento. Os segundos dados de configuração 554 referem-se a um segundo conjunto de um ou mais decodificadores. O segundo conjunto de um ou mais decodificadores possui uma segunda característica operacional. O decodificador 110 para o qual a mensagem de configuração 500 é transmitida pode estar compreendido no primeiro conjunto ou no segundo conjunto. O codificador 108 que gera a mensagem de configuração 500 pode não estar ciente de em qual conjunto de decodificadores o decodificador 110 está compreendido. O codificador 108 pode transmitir a mensagem de configuração 500 para vários decodificadores em ambos os conjuntos de decodificadores.
[0079] Em alguns exemplos, a primeira característica operacional corresponde a uma primeira versão de acordo com a qual o primeiro conjunto de um ou mais decodificadores está configurado para operar, e a segunda característica operacional corresponde a uma segunda versão, diferente, de acordo com a qual o segundo conjunto de um ou mais decodificadores está configurado para operar. A segunda versão pode ser uma versão posterior em relação à primeira versão. A primeira e a segunda versões podem ser versões diferentes de uma estrutura de sintaxe que define como as mensagens de configuração devem ser processadas e/ou que define o conteúdo de tais mensagens de configuração. Portanto, quando a sintaxe é atualizada da primeira versão para a segunda versão, os segundos dados de configuração 554 são adicionados a uma mensagem de configuração que contém os primeiros dados de configuração 552 da primeira versão. Os segundos dados de configuração 554 podem, por exemplo, ser anexados aos primeiros dados de configuração 552.
[0080] Adicionar os segundos dados de configuração 554 a uma mensagem de configuração de um tipo de mensagem existente em vez de gerar um novo tipo de mensagem para acomodar os segundos dados de configuração 554 reduz uma quantidade de dados que são armazenados, transmitidos e/ou processados em comparação com um caso em que novos tipos de mensagens são gerados. Ao modificar a configuração de tipos de mensagens existentes em vez de definir novos tipos de mensagens, o número total de mensagens de configuração usadas para transmitir todos os dados de configuração relevantes pode ser reduzido. Cada mensagem de configuração possui um cabeçalho correspondente que pode, por exemplo, ter pelo menos um byte de tamanho. Portanto, ao reduzir o número geral de mensagens de configuração, a quantidade de dados que são armazenados, transmitidos e/ou processados pode ser reduzida.
[0081] Em alguns exemplos, o decodificador 110 não é capaz de processar a primeira e a segunda porções de payload 522, 524. Em um caso, o codificador 108 pode ter passado por uma atualização de acordo com a qual os segundos dados de configuração 554 estão incluídos na mensagem de configuração 500, mas o decodificador 110 pode não ter passado por tal atualização. Em outras palavras, o codificador 108 e o decodificador 110 podem operar de acordo com diferentes versões da sintaxe. Em tais exemplos, pode haver uma discrepância no tamanho do formato da parte de payload 520 conforme interpretado pelo codificador 108 e conforme interpretado pelo decodificador 110. Por exemplo, o tamanho do formato de acordo com o codificador 108, estando ciente do conteúdo adicional da parte de payload 520 e do formato de payload atualizado após a atualização da versão, é diferente do tamanho do formato de acordo com o decodificador 110, uma vez que o decodificador 110 não está ciente do conteúdo adicional e do formato de payload atualizado e está operando de acordo com a versão anterior. Para o codificador 108, o tamanho do formato é igual ao tamanho real da parte de payload atualizada 520, mas para o decodificador 110 não o é. O tamanho do formato por si só pode, portanto, não ser um indicador confiável do tamanho real da parte de payload 520. A inclusão do parâmetro de tamanho de payload 514 que especifica o tamanho real da parte de payload 520, portanto, facilita o processamento mais confiável do decodificador 110, conforme descrito em mais detalhes abaixo.
[0082] Com referência à Figura 6, é mostrado um exemplo de um método 600 para processamento de dados de configuração. O método 600 pode ser realizado por um aparelho que compreende um decodificador, como o segundo aparelho 104 descrito acima.
[0083] No item 610, a mensagem de configuração 500 é recebida.
[0084] No item 620, a mensagem de configuração 500 é processada para obter um ou ambos os primeiros dados de configuração 552 e os segundos dados de configuração 554.
[0085] Em alguns exemplos, por exemplo, se o decodificador 110 está no primeiro conjunto de decodificadores, a primeira porção de payload 522 é submetida a uma análise sintática pelo decodificador 110, e a segunda porção de payload 524 não é submetida a uma análise sintática pelo decodificador 110. A análise sintática da primeira porção de payload 522, mas não da segunda porção de payload 524, permite que o decodificador 110 obtenha os primeiros dados de configuração 552, mas não os segundos dados de configuração 554. Em alguns exemplos, por exemplo, se o decodificador 110 está no segundo conjunto de decodificadores, a segunda porção de payload 524 é submetida a uma análise sintática pelo decodificador 110 e a primeira porção de payload 522 não é submetida a uma análise sintática pelo decodificador 110. A análise sintática da segunda porção de payload 524, mas não da primeira porção de payload 522, permite que o decodificador 110 obtenha os segundos dados de configuração 554, mas não os primeiros dados de configuração 552. Em alguns exemplos, por exemplo, se o decodificador 110 está no segundo conjunto de decodificadores, tanto a primeira porção de payload 522 quanto a segunda porção de payload 524 são submetidas a uma análise sintática para se obter os primeiros dados de configuração 552 e os segundos dados de configuração 554.
[0086] O parâmetro de tamanho de payload 514 pode ser usado para determinar o início de uma mensagem de configuração seguinte. Em alguns exemplos, por exemplo, se o decodificador 110 estiver no primeiro conjunto de decodificadores, o conteúdo da segunda porção de payload 524 é descartado. O conteúdo da segunda porção de payload 524 compreende os segundos dados de configuração 554. O conteúdo da segunda porção de payload 524 pode ser descartado usando o tamanho total da parte de payload 520 especificado no parâmetro de tamanho de payload 514. Por exemplo, o decodificador 110 pode ler o conteúdo da primeira porção de payload 522 e, em seguida, pular para a próxima mensagem de configuração, cujo início foi localizado usando o parâmetro de tamanho de payload 514, sem ler o conteúdo da segunda porção de payload 524.
[0087] Usar o parâmetro de tamanho de payload 514 para localizar o início da mensagem seguinte permite que o decodificador 110 permaneça sincronizado com um fluxo de bytes compreendendo várias mensagens de configuração. O decodificador 110 pode, portanto, processar a mensagem de configuração 500 e localizar o início da mensagem de configuração seguinte independentemente de o decodificador 110 estar no primeiro conjunto de decodificadores ou no segundo conjunto de decodificadores.
[0088] No item 630, a primeira representação 206 da imagem no nível relativamente alto de qualidade é reconstruída. A primeira representação 206 é reconstruída usando um ou ambos os primeiros dados de configuração 552 e os segundos dados de configuração 554 que são obtidos no item 620. Em um caso em que o decodificador 110 obtém o primeiro e o segundo dados de configuração 552, 554, a primeira representação 206 da imagem é reconstruída usando o primeiro e o segundo dados de configuração 552, 554.
Em um caso em que o decodificador 110 processa uma dentre a primeira e segunda porções de payload 522, 524, mas não a outra dentre a primeira e segunda porções de payload 522, 524, a primeira representação 206 da imagem pode ser reconstruída usando aqueles que foram obtidos dentre os primeiros e os segundos dados de configuração 552, 554. Dessa forma, pode ser que o uso da mensagem de configuração 500 para reconstruir a primeira representação 206 independa do tipo de decodificador e/ou do número da versão com que o decodificador 110 está configurado para operar.
[0089] Em alguns exemplos, o processamento por byte é executado na mensagem de configuração 500. No processamento por byte, os dados são processados byte a byte. O processamento de dados de configuração por byte pode ser mais eficiente do que processar os dados de configuração de maneira por bits. O processamento bit a bit pode envolver o rastreamento de qual bit dentro de um dado byte é o próximo bit a ser lido ou escrito. Quando um grupo de bits que representa um determinado parâmetro atravessa um limite de byte, um processamento adicional pode ser executado a fim de ler o grupo de bits e obter o parâmetro fornecido. Tal processamento pode ser reduzido no caso em que o processamento por byte é executado. Em alguns exemplos, uma série de ciclos de execução podem ser reduzidos ao se processar dados de maneira por byte em comparação com a maneira por bit.
[0090] Em alguns exemplos, os dados de configuração são escritos na memória. Menos processamento pode estar envolvido no armazenamento dos dados de configuração na memória e/ou na recuperação dos dados de configuração da memória se os dados de configuração forem manipulados de maneira byte a byte em comparação com um caso em que os dados de configuração são manipulados de maneira bit a bit. A menor unidade de memória endereçável pode compreender um byte. Dessa forma, as informações podem ser armazenadas na memória de uma maneira por byte. Portanto, menos etapas podem estar envolvidas no armazenamento dos dados de configuração na memória e/ou na recuperação dos dados de configuração da memória se os dados de configuração forem empacotados em uma sequência de bytes. Uma quantidade de preenchimento usada para empacotar os dados de configuração em unidades de memória endereçáveis também pode ser reduzida fornecendo os dados de configuração para a memória na forma por byte.
[0091] Além disso, a transmissão de dados de configuração por meio de uma rede, como a Internet, pode ser realizada de forma mais eficiente se os dados de configuração forem organizados em uma sequência de bytes. Os dados podem ser transmitidos pela Internet por meio do Protocolo de Controle de Transmissão (TCP). O TCP opera em uma camada de transporte de uma pilha de protocolo. O TCP obtém dados de um fluxo, empacota os dados em segmentos TCP e usa um módulo de Internet, por exemplo, o Protocolo de Internet (IP), para transmitir cada segmento TCP a um destinatário através da Internet. O fluxo de dados pode ser obtido da memória. Um segmento de TCP pode compreender um número inteiro de bytes. Como tal, menos processamento pode estar envolvido se o TCP obtiver os dados que devem ser empacotados nos segmentos TCP de um fluxo de bytes do que de um fluxo de bits. Uma quantidade de preenchimento usada para empacotar os dados em segmentos TCP também pode ser reduzida, fornecendo os dados ao TCP na forma por byte.
[0092] Com referência à Figura 7, é mostrado um diagrama de blocos esquemático de um exemplo de um aparelho 700.
[0093] Em um exemplo, o aparelho 700 compreende um codificador. Em outro exemplo, o aparelho 700 compreende um decodificador.
[0094] Exemplos de aparelhos 700 incluem, sem limitação, um computador móvel, um sistema de computador pessoal, um dispositivo sem fio, estação de base, dispositivo de telefone, computador desktop, laptop, notebook, computador netbook, sistema de computador mainframe,
computador portátil, estação de trabalho, computador em rede, servidor de aplicação, dispositivo de armazenamento, dispositivo eletrônico de consumo, como câmera, filmadora, dispositivo móvel, console de videogame, dispositivo portátil de videogame ou, de forma geral, qualquer tipo de computador ou dispositivo eletrônico.
[0095] Neste exemplo, o aparelho 700 compreende um ou mais processadores 701 configurados para processar informações e/ou instruções. Os um ou mais processadores 701 podem compreender uma unidade de processamento central (CPU). Os um ou mais processadores 701 são acoplados a um barramento 702. As operações realizadas por um ou mais processadores 701 podem ser realizadas por hardware e/ou software. Os um ou mais processadores 701 podem compreender múltiplos processadores colocalizados ou múltiplos processadores localizados de forma distinta.
[0096] Neste exemplo, o aparelho 700 compreende a memória volátil utilizável por computador 703 configurada para armazenar informações e/ou instruções para um ou mais processadores 701. A memória volátil utilizável por computador 703 é acoplada ao barramento 702. A memória volátil utilizável por computador 703 pode compreender uma memória de acesso aleatório (RAM).
[0097] Neste exemplo, o aparelho 700 compreende a memória não volátil utilizável por computador 704 configurada para armazenar informações e/ou instruções para um ou mais processadores 701. A memória não volátil utilizável por computador 704 é acoplada ao barramento 702. A memória não volátil utilizável por computador 704 pode compreender uma memória somente de leitura (ROM).
[0098] Neste exemplo, o aparelho 700 compreende uma ou mais unidades de armazenamento de dados 705 configuradas para armazenar informações e/ou instruções. As uma ou mais unidades de armazenamento de dados 705 são acopladas ao barramento 702. As uma ou mais unidades de armazenamento de dados 705 podem, por exemplo, compreender um disco magnético ou óptico e uma unidade de disco ou uma unidade de estado sólido (SSD).
[0099] Neste exemplo, o aparelho 700 compreende um ou mais dispositivos de entrada/saída (I / O) 706 configurados para comunicar informações para e/ou de um ou mais processadores 701. Os um ou mais dispositivos I/O 706 são acoplados ao barramento 702. Os um ou mais dispositivos I/O 706 podem compreender pelo menos uma interface de rede. A pelo menos uma interface de rede pode permitir que o aparelho 700 se comunique através de uma ou mais redes de comunicação de dados. Exemplos de redes de comunicação de dados incluem, sem limitação, a Internet e uma Rede de Área Local (LAN). Os um ou mais dispositivos I/O 706 podem permitir que um usuário forneça entrada para o aparelho 700 por meio de um ou mais dispositivos de entrada (não mostrados). Os um ou mais dispositivos de entrada podem incluir, por exemplo, um controle remoto, um ou mais botões físicos, etc. Os um ou mais dispositivos I/O 706 podem permitir que as informações sejam fornecidas a um usuário através de um ou mais dispositivos de saída (não mostrados). Os um ou mais dispositivos de saída podem, por exemplo, incluir uma tela de exibição.
[0100] Várias outras entidades são representadas para o aparelho
700. Por exemplo, quando presentes, um sistema operacional 707, um módulo de processamento de sinal de dados 708, um ou mais outros módulos 709 adicionais, e dados 710 são mostrados como localizados em uma dentre a memória volátil utilizável por computador 703, a memória não volátil utilizável por computador 704 e as uma ou mais unidades de armazenamento de dados 705, ou em uma combinação destas. O módulo de processamento de sinal de dados 708 pode ser implementado por meio de um código de programa de computador armazenado em locais de memória dentro da memória não volátil utilizável por computador 704, das mídias de armazenamento legíveis por computador dentro de uma ou mais unidades de armazenamento de dados 705 e/ou das outras mídias de armazenamento legíveis por computador tangíveis. Exemplos de mídias de armazenamento legíveis por computador tangíveis incluem, sem limitação, um meio óptico (por exemplo, CD-ROM, DVD-ROM ou Blu-ray), cartão de memória flash, disquete ou disco rígido ou qualquer outro meio capaz de armazenar instruções legíveis por computador, tais como firmware ou microcódigo em pelo menos uma ROM ou RAM ou chips de ROM programável (PROM) ou como um Circuito Integrado de Aplicação Específica (ASIC).
[0101] O aparelho 700 pode, portanto, compreender um módulo de processamento de sinal de dados 708 que pode ser executado por um ou mais processadores 701. O módulo de processamento de sinal de dados 708 pode ser configurado para incluir instruções para implementar pelo menos algumas das operações descritas neste documento. Durante a operação, os um ou mais processadores 701 iniciam, processam, executam, interpretam ou de outra forma realizam as instruções no módulo de processamento de sinal 708.
[0102] Embora pelo menos alguns aspectos dos exemplos descritos neste documento com referência às figuras compreendam processos de computador realizados em sistemas de processamento ou processadores, os exemplos descritos neste documento também incluem programas de computador, por exemplo, programas de computador em um transportador, adaptados para colocar os exemplos em prática. O transportador pode ser qualquer entidade ou dispositivo capaz de transportar o programa.
[0103] Será apreciado que o aparelho 700 pode compreender mais, menos e/ou diferentes componentes daqueles representados na Figura 7.
[0104] O aparelho 700 pode estar localizado em um único local ou pode ser distribuído em vários locais. Esses locais podem ser próximos ou remotos.
[0105] As técnicas descritas neste documento podem ser implementadas em software ou hardware, ou podem ser implementadas usando uma combinação de software e hardware. Isso pode incluir a configuração de um aparelho para realizar e/ou dar suporte a qualquer ou todas as técnicas descritas neste documento.
[0106] Será compreendido que qualquer característica descrita em relação a qualquer modalidade pode ser utilizada sozinha ou em combinação com outras características descritas e também pode ser utilizada em combinação com uma ou mais características de qualquer outra das modalidades ou qualquer combinação de qualquer outra das modalidades. Além disso, os equivalentes e modificações não descritos acima também podem ser empregues sem sair do escopo da invenção, que é definido nas reivindicações anexas.
Claims (39)
1. Método de processamento de dados de configuração, caracterizado pelo fato de que compreende: obter dados residuais com base em uma primeira representação de uma imagem em um primeiro nível de qualidade em uma hierarquia tendo vários níveis de qualidade e uma segunda representação da imagem no primeiro nível de qualidade, a segunda representação sendo baseada em uma representação da imagem em um segundo nível de qualidade mais baixo na hierarquia, com os dados residuais sendo utilizáveis por um decodificador para reconstruir a primeira representação usando a segunda representação; obter dados de configuração relacionados ao processamento dos dados residuais, os dados de configuração sendo utilizáveis pelo decodificador para reconstruir a primeira representação da imagem; gerar uma mensagem de configuração compreendendo uma parte de cabeçalho e uma parte de payload, a parte de payload compreendendo os dados de configuração, a parte do cabeçalho compreendendo: um parâmetro de tipo de mensagem que especifica um tipo de mensagem da mensagem de configuração e que é indicativo da parte de payload tendo um determinado formato de payload em que um tamanho de formato de uma parte de payload, com o referido formato de payload, é predeterminado ou pode ser determinado a partir do conteúdo da parte de payload; e um parâmetro de tamanho de payload que especifica o tamanho real da parte de payload; e emitir a mensagem de configuração para processamento pelo decodificador para permitir que o decodificador reconstrua a primeira representação usando os dados de configuração.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho do formato e o tamanho real são iguais.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho do formato e o tamanho real são diferentes.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o tipo de mensagem especificado pelo parâmetro de tipo de mensagem indica como a mensagem de configuração deve ser processada.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que a mensagem de configuração é um número inteiro de comprimento em bytes.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que o tamanho real da parte de payload é um número inteiro de bytes.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que um valor do parâmetro de tamanho de payload é armazenado em um elemento de comprimento fixo.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o valor do parâmetro de tamanho de payload é armazenado no elemento de comprimento fixo compreendendo três bits em uma parte do cabeçalho de um byte.
9. Método, de acordo com a reivindicação 7 ou reivindicação 8, caracterizado pelo fato de que o parâmetro de tamanho de payload compreende uma referência a uma tabela de consulta de tamanho de payload que armazena valores possíveis do tamanho real da parte de payload.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o valor é utilizável para se obter o tamanho real da parte de payload a partir da tabela de consulta de tamanho de payload.
11. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que um valor do parâmetro de tamanho de payload tem um comprimento de bit variável, e em que o valor do parâmetro de tamanho de payload é armazenado em um elemento de comprimento variável que compreende um número inteiro de bytes.
12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que o elemento de comprimento variável compreende pelo menos um determinado byte tendo um ou mais bits predeterminados dispostos para indicar se o elemento de comprimento variável compreende, ou não, um ou mais bytes adicionais para o pelo menos byte determinado.
13. Método, de acordo com a reivindicação 11 ou a reivindicação 12, caracterizado pelo fato de que o valor não é um dos diversos valores especificados em uma tabela de consulta de tamanho de payload.
14. Método, de acordo com qualquer uma das reivindicações 1 a 13, caracterizado pelo fato de que a parte do cabeçalho contém apenas o parâmetro do tipo de mensagem e o parâmetro do tamanho de payload.
15. Método de processamento de dados de configuração, caracterizado pelo fato de que compreende: receber uma mensagem de configuração que compreende uma parte de cabeçalho e uma parte de payload, a parte de payload compreendendo dados de configuração relacionados ao processamento de dados residuais utilizáveis para reconstruir uma primeira representação de uma imagem em um primeiro nível de qualidade em uma hierarquia tendo vários níveis de qualidade usando uma segunda representação da imagem no primeiro nível de qualidade, a segunda representação sendo baseada em uma representação da imagem em um segundo nível mais baixo de qualidade na hierarquia, com a parte do cabeçalho compreendendo: um parâmetro de tipo de mensagem que especifica um tipo de mensagem da mensagem de configuração e que é indicativo da parte de payload tendo um determinado formato de payload em que um tamanho de formato de uma parte de payload, com o referido formato de payload, é predeterminado ou pode ser determinado a partir do conteúdo da parte de payload; e um parâmetro de tamanho de payload que especifica o tamanho real da parte de payload; processar a mensagem de configuração usando o parâmetro de tipo de mensagem e o parâmetro de tamanho de payload para obter os dados de configuração; e reconstruir a primeira representação usando os dados de configuração obtidos.
16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que o processamento da mensagem de configuração compreende: determinar o tamanho real da parte de payload com base no parâmetro de tamanho de payload; determinar o tipo de mensagem da mensagem com base no parâmetro de tipo de mensagem; e processar a mensagem de configuração de acordo com o tipo de mensagem determinado e o tamanho real determinado da parte de payload.
17. Método, de acordo com a reivindicação 15 ou reivindicação 16, caracterizado pelo fato de que o tamanho do formato e o tamanho real são iguais.
18. Método, de acordo com a reivindicação 15 ou reivindicação 16, caracterizado pelo fato de que o tamanho do formato e o tamanho real são diferentes.
19. Método, de acordo com qualquer uma das reivindicações 15 a 18, sendo o método caracterizado pelo fato de que compreende: receber os dados residuais; e usar os dados residuais de acordo com os dados de configuração para reconstruir a primeira representação.
20. Método de processamento de dados de configuração, caracterizado pelo fato de que compreende: obter dados residuais com base em uma primeira representação de uma imagem em um primeiro nível de qualidade em uma hierarquia tendo vários níveis de qualidade e uma segunda representação da imagem no primeiro nível de qualidade, a segunda representação sendo baseada em uma representação da imagem em um segundo nível de qualidade mais baixo na hierarquia, com os dados residuais sendo utilizáveis por um decodificador para reconstruir a primeira representação usando a segunda representação; obter os primeiros e segundos dados de configuração relacionados ao processamento dos dados residuais, os primeiros dados de configuração relacionados a um primeiro conjunto de um ou mais decodificadores tendo uma primeira característica operacional e os segundos dados de configuração relacionados a um segundo conjunto de um ou mais decodificadores tendo uma segunda característica operacional; gerar uma mensagem de configuração que compreende uma parte de cabeçalho e uma parte de payload, a parte de payload compreendendo uma primeira parte de payload e uma segunda parte de payload subsequente, a primeira parte de payload compreendendo os primeiros dados de configuração e a segunda parte de payload compreendendo os segundos dados de configuração, a parte do cabeçalho compreendendo um parâmetro de tamanho de payload indicativo de um tamanho total da primeira e da segunda partes de payload; e emitir a mensagem de configuração para processamento pelo decodificador para permitir que o decodificador reconstrua a primeira representação usando um ou ambos dentre os primeiros dados de configuração e os segundos dados de configuração.
21. Método, de acordo com a reivindicação 20, caracterizado pelo fato de que a parte do cabeçalho não especifica o tamanho da primeira parte da payload.
22. Método, de acordo com a reivindicação 20 ou reivindicação 21, caracterizado pelo fato de que a primeira parte de payload compreende todos os primeiros dados de configuração e a segunda parte de payload compreende todos os segundos dados de configuração.
23. Método, de acordo com qualquer uma das reivindicações 20 a 22, caracterizado pelo fato de que os segundos dados de configuração são dados de configuração complementares dispostos para complementar os primeiros dados de configuração.
24. Método, de acordo com qualquer uma das reivindicações 20 a 23, caracterizado pelo fato de que a primeira característica operacional corresponde a uma primeira versão de acordo com a qual o primeiro conjunto de um ou mais decodificadores está configurado para operar, e a segunda característica operacional corresponde a uma segunda versão, diferente, de acordo com a qual o segundo conjunto de um ou mais decodificadores está configurado para operar.
25. Método, de acordo com a reivindicação 24, caracterizado pelo fato de que a segunda versão é uma versão posterior em relação à primeira versão.
26. Método, de acordo com qualquer uma das reivindicações 20 a 25, caracterizado pelo fato de que a primeira característica operacional se refere a uma capacidade de processamento do primeiro conjunto de um ou mais decodificadores e a segunda característica operacional se refere a uma capacidade de processamento do segundo conjunto de um ou mais decodificadores.
27. Método, de acordo com qualquer uma das reivindicações 20 a 26, caracterizado pelo fato de que a parte do cabeçalho compreende um parâmetro de tipo de mensagem que especifica um tipo de mensagem da mensagem de configuração, o tipo de mensagem indicando como a mensagem de configuração deve ser processada.
28. Método, de acordo com a reivindicação 27, caracterizado pelo fato de que o parâmetro de tipo de mensagem é indicativo da parte de payload tendo um determinado formato de payload no qual um tamanho de formato de uma parte de payload, com o referido formato de payload, é predeterminado ou pode ser determinado a partir do conteúdo da parte de payload.
29. Método, de acordo com a reivindicação 28, caracterizado pelo fato de que o tamanho do formato é igual ao tamanho total da primeira e da segunda parte de payload.
30. Método, de acordo com qualquer uma das reivindicações 20 a 29, caracterizado pelo fato de que compreende a execução de processamento por byte nos dados de configuração.
31. Método de processamento de dados de configuração, caracterizado pelo fato de que compreende: receber uma mensagem de configuração que compreende uma parte de cabeçalho e uma parte de payload, a parte de payload compreendendo uma primeira parte de payload e uma segunda parte de payload subsequente, a primeira parte de payload compreendendo os primeiros dados de configuração e a segunda parte de payload compreendendo os segundos dados de configuração, os primeiros e os segundos dados de configuração relacionados ao processamento de dados residuais utilizáveis para reconstruir uma primeira representação de uma imagem em um primeiro nível de qualidade em uma hierarquia tendo vários níveis de qualidade usando uma segunda representação da imagem no primeiro nível de qualidade, a segunda representação sendo baseada em uma representação da imagem em um segundo nível mais baixo de qualidade na hierarquia, com os primeiros dados de configuração relacionados a um primeiro conjunto de decodificadores tendo uma primeira característica operacional e os segundos dados de configuração relacionados a um segundo conjunto de decodificadores tendo uma segunda característica operacional, em que a parte do cabeçalho compreende um parâmetro de tamanho de payload indicativo de um tamanho total da primeira e da segunda parte de payload; processar a mensagem de configuração para se obter um ou ambos dos primeiros dados de configuração e dos segundos dados de configuração; e reconstruir a primeira representação usando um ou ambos os primeiros dados de configuração e os segundos dados de configuração.
32. Método, de acordo com a reivindicação 31, sendo o método caracterizado pelo fato de que compreende: processar a primeira parte de payload e a segunda parte de payload para obter os primeiros dados de configuração e os segundos dados de configuração, respectivamente; e reconstruir a primeira representação usando os primeiros dados de configuração e os segundos dados de configuração.
33. Método, de acordo com a reivindicação 31, sendo o método caracterizado pelo fato de que compreende: processar a primeira parte de payload, mas não a segunda parte de payload, para obter os primeiros dados de configuração, mas não os segundos dados de configuração; e reconstruir a primeira representação usando os primeiros dados de configuração, mas não os segundos dados de configuração.
34. Método, de acordo com a reivindicação 33, sendo o método caracterizado pelo fato de que compreende descartar o conteúdo da segunda parte de payload.
35. Método, de acordo com qualquer uma das reivindicações 31 a 34, sendo o método caracterizado pelo fato de que compreende o uso do parâmetro de tamanho de payload para determinar o início de uma mensagem de configuração a seguir.
36. Método, de acordo com qualquer uma das reivindicações 31 a 35, caracterizado pelo fato de que a parte do cabeçalho compreende um parâmetro de tipo de mensagem que especifica um tipo de mensagem da mensagem de configuração e é indicativo da parte de payload tendo um determinado formato de payload no qual um tamanho de formato de uma parte de payload, com o referido formato de payload, é predeterminado ou pode ser determinado a partir do conteúdo da parte de payload.
37. Aparelho caracterizado pelo fato de que é configurado para executar um método conforme definido em qualquer uma das reivindicações 1 a 36.
38. Programa de computador caracterizado pelo fato de que compreende instruções que, quando executadas, fazem com que um aparelho execute um método conforme definido em qualquer uma das reivindicações 1 a
36.
39. Meio legível por computador caracterizado pelo fato de que compreende um programa de computador conforme definido na reivindicação
38.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1817781.6A GB201817781D0 (en) | 2018-10-31 | 2018-10-31 | Mehods, apparatuses, computer programs and computer-readable media |
GB1817781.6 | 2018-10-31 | ||
PCT/GB2019/053067 WO2020089615A1 (en) | 2018-10-31 | 2019-10-30 | Methods, apparatuses, computer programs and computer-readable media for scalable video coding and transmission |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112021008173A2 true BR112021008173A2 (pt) | 2021-08-03 |
Family
ID=64655663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112021008173-9A BR112021008173A2 (pt) | 2018-10-31 | 2019-10-30 | métodos, aparelhos, programas de computador e meios legíveis por computador para codificação de vídeo escalável e transmissão |
Country Status (12)
Country | Link |
---|---|
US (2) | US11496757B2 (pt) |
EP (1) | EP3874752A1 (pt) |
JP (1) | JP7421552B2 (pt) |
KR (1) | KR20210146879A (pt) |
CN (1) | CN113228662A (pt) |
AU (1) | AU2019370804B2 (pt) |
BR (1) | BR112021008173A2 (pt) |
CA (1) | CA3118185A1 (pt) |
EA (1) | EA202191197A1 (pt) |
GB (1) | GB201817781D0 (pt) |
MX (1) | MX2021005065A (pt) |
WO (1) | WO2020089615A1 (pt) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB202205928D0 (en) | 2022-04-22 | 2022-06-08 | V Nova Int Ltd | Methods, bitstreams, apparatuses, computer programs and computer-readable media |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6873797B2 (en) * | 2001-01-30 | 2005-03-29 | The Regents Of The University Of California | Optical layer multicasting |
US8331313B2 (en) * | 2006-06-14 | 2012-12-11 | Interdigital Technology Corporation | Efficient media independent handover protocol operation enhancements |
CN101543018B (zh) * | 2007-01-12 | 2012-12-26 | 庆熙大学校产学协力团 | 网络提取层单元的分组格式、使用该格式的视频编解码算法和装置以及使用该格式进行IPv6标签交换的QoS控制算法和装置 |
JP5155449B2 (ja) | 2008-07-26 | 2013-03-06 | トムソン ライセンシング | スケーラブルビデオコーディング(svc)を使用する高速チャネル変更アプリケーションのためのリアルタイムトランスポートプロトコル(rtp)パケット化方法 |
JP2012044625A (ja) * | 2010-08-23 | 2012-03-01 | Sony Corp | 立体画像データ送信装置、立体画像データ送信方法、立体画像データ受信装置および立体画像データ受信方法 |
TWI606718B (zh) * | 2012-01-03 | 2017-11-21 | 杜比實驗室特許公司 | 規定視覺動態範圍編碼操作及參數 |
KR101893833B1 (ko) * | 2012-02-01 | 2018-09-03 | 삼성전자주식회사 | 방송 시스템에서 패킷 송수신 방법 및 장치 |
KR102162119B1 (ko) * | 2012-06-29 | 2020-10-06 | 지이 비디오 컴프레션, 엘엘씨 | 비디오 데이터 스트림 개념 |
CN103780954B (zh) * | 2012-10-22 | 2017-05-10 | 上海贝尔股份有限公司 | 一种组合使用流媒体裁剪技术和显性拥塞通知技术的方法 |
US9723091B1 (en) * | 2012-11-09 | 2017-08-01 | Noble Systems Corporation | Variable length protocol using serialized payload with compression support |
KR20230080500A (ko) * | 2013-01-04 | 2023-06-07 | 지이 비디오 컴프레션, 엘엘씨 | 효율적인 확장가능한 코딩 개념 |
US20160065980A1 (en) * | 2013-04-05 | 2016-03-03 | Samsung Electronics Co., Ltd. | Video stream encoding method according to a layer identifier expansion and an apparatus thereof, and a video stream decoding method according to a layer identifier expansion and an apparatus thereof |
WO2015104451A1 (en) * | 2014-01-07 | 2015-07-16 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US9832353B2 (en) * | 2014-01-31 | 2017-11-28 | Digimarc Corporation | Methods for encoding, decoding and interpreting auxiliary data in media signals |
US20150264404A1 (en) * | 2014-03-17 | 2015-09-17 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US10645404B2 (en) * | 2014-03-24 | 2020-05-05 | Qualcomm Incorporated | Generic use of HEVC SEI messages for multi-layer codecs |
WO2016204481A1 (ko) * | 2015-06-16 | 2016-12-22 | 엘지전자 주식회사 | 미디어 데이터 전송 장치, 미디어 데이터 수신 장치, 미디어 데이터 전송 방법, 및 미디어 데이터 수신 방법 |
EP3131296A1 (en) | 2015-08-13 | 2017-02-15 | Thomson Licensing | Color remapping information payload size compression |
-
2018
- 2018-10-31 GB GBGB1817781.6A patent/GB201817781D0/en not_active Ceased
-
2019
- 2019-10-30 WO PCT/GB2019/053067 patent/WO2020089615A1/en unknown
- 2019-10-30 CN CN201980085847.5A patent/CN113228662A/zh active Pending
- 2019-10-30 KR KR1020217016144A patent/KR20210146879A/ko unknown
- 2019-10-30 CA CA3118185A patent/CA3118185A1/en active Pending
- 2019-10-30 MX MX2021005065A patent/MX2021005065A/es unknown
- 2019-10-30 EA EA202191197A patent/EA202191197A1/ru unknown
- 2019-10-30 BR BR112021008173-9A patent/BR112021008173A2/pt unknown
- 2019-10-30 AU AU2019370804A patent/AU2019370804B2/en active Active
- 2019-10-30 JP JP2021524323A patent/JP7421552B2/ja active Active
- 2019-10-30 EP EP19816386.7A patent/EP3874752A1/en active Pending
- 2019-10-30 US US17/290,472 patent/US11496757B2/en active Active
-
2022
- 2022-11-07 US US18/053,291 patent/US11889093B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230232024A1 (en) | 2023-07-20 |
JP2022507027A (ja) | 2022-01-18 |
AU2019370804B2 (en) | 2023-08-03 |
WO2020089615A1 (en) | 2020-05-07 |
US11496757B2 (en) | 2022-11-08 |
EA202191197A1 (ru) | 2021-07-26 |
KR20210146879A (ko) | 2021-12-06 |
EP3874752A1 (en) | 2021-09-08 |
MX2021005065A (es) | 2021-07-02 |
GB201817781D0 (en) | 2018-12-19 |
AU2019370804A1 (en) | 2021-06-10 |
US11889093B2 (en) | 2024-01-30 |
CA3118185A1 (en) | 2020-05-07 |
JP7421552B2 (ja) | 2024-01-24 |
CN113228662A (zh) | 2021-08-06 |
US20210409735A1 (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102450781B1 (ko) | 생성된 콘텐츠를 포함하는 미디어 데이터를 인코딩하기 위한 방법 및 장치 | |
US11671610B2 (en) | Methods, apparatuses, computer programs and computer-readable media for scalable image coding | |
BR112014001207B1 (pt) | Transmissão dos dados de reconstrução em uma hierarquia de qualidade de sinal enfileirada | |
JP2009506456A (ja) | 任意のフォーマットにおけるラージオブジェクトの通信のためのリモートプロトコルサポート | |
BR112016015256B1 (pt) | Método, aparelho e mídia legível por computador para decodificar uma imagem de alta faixa dinâmica - hdr - no formato jpeg, e método, aparelho e mídia legível por computador para codificar uma imagem de alta faixa dinâmica - hdr - no formato jpeg | |
US11889093B2 (en) | Methods, apparatuses, computer programs and computer-readable media for scalable video coding and transmission | |
US11831886B2 (en) | Methods, apparatuses, computer programs and computer-readable media for processing configuration data | |
US20210377550A1 (en) | Methods, apparatuses, computer programs and computer-readable media for processing configuration data | |
EA045133B1 (ru) | Способ, устройство и машиночитаемый носитель, содержащий компьютерную программу для формирования конфигурационного сообщения для обеспечения возможности декодеру восстанавливать первое представление изображения с первым уровнем качества с помощью данных конфигурации | |
EA047124B1 (ru) | Способ, устройство и машиночитаемый носитель, содержащий команды обработки информации о конфигурации для обработки остаточных данных при обработке изображений | |
WO2023203353A1 (en) | Methods, bitstreams, apparatuses, computer programs and computer-readable media | |
US20230239508A1 (en) | Methods and apparatus to identify a video decoding error | |
JP2023550940A (ja) | クライアントデバイス上でビデオストリームを復号化すること | |
KR20160141373A (ko) | 영상 재생 장치 및 방법 | |
JPWO2020089615A5 (pt) |