BR122023021002A2 - Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo - Google Patents

Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo Download PDF

Info

Publication number
BR122023021002A2
BR122023021002A2 BR122023021002-6A BR122023021002A BR122023021002A2 BR 122023021002 A2 BR122023021002 A2 BR 122023021002A2 BR 122023021002 A BR122023021002 A BR 122023021002A BR 122023021002 A2 BR122023021002 A2 BR 122023021002A2
Authority
BR
Brazil
Prior art keywords
data stream
video data
video
enhancement information
supplemental enhancement
Prior art date
Application number
BR122023021002-6A
Other languages
English (en)
Inventor
Yago SÁNCHEZ DE LA FUENTE
Karsten SÜHRING
Cornelius Hellge
Thomas Schierl
Robert SKUPIN
Thomas Wiegand
Original Assignee
Ge Video Compression, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ge Video Compression, Llc filed Critical Ge Video Compression, Llc
Publication of BR122023021002A2 publication Critical patent/BR122023021002A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Abstract

“APARELHO E MÉTODO PARA RECEBER FLUXO DE DADOS DE VÍDEO, FLUXO DE DADOS DE VÍDEO, CODIFICADOR E DECODIFICADOR DE VÍDEO, E MÉTODO PARA CODIFICAR UM VÍDEO EM UM FLUXO DE DADOS DE VÍDEO” É fornecido um aparelho (200) para receber um fluxo de dados de vídeo de entrada de acordo com uma modalidade. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho (200) é configurado para gerar um fluxo de dados de vídeo de saída do fluxo de dados de vídeo de entrada.

Description

[001] A presente invenção refere-se à codificação de vídeo e à decodificação de vídeo e, em particular, a um codificador de vídeo, a um decodificador de vídeo, a métodos para codificação e decodificação e a um fluxo de dados de vídeo para realizar conceitos avançados de conversão de vídeo em código.
[002] O H.265/HEVC (HEVC = High Efficiency Video Coding (Conversão de Vídeo em Código de Alta Eficiência)) é um codec de vídeo que já fornece ferramentas para elevar ou mesmo habilitar o processamento paralelo em um codificador e/ou em um decodificador. Por exemplo, o HEVC suporta uma subdivisão de imagens em uma matriz de recortes que são codificados independentemente uns dos outros. Outro conceito suportado pelo HEVC pertence ao WPP, segundo o qual as linhas de CTU ou filas de CTU das imagens podem ser processadas em paralelo da esquerda para a direita, por exemplo, em faixas, desde que alguma compensação de CTU mínimo seja obedecido no processamento de filas de CTU consecutivas (CTU = coding tree unit (unidade de árvore de conversão em código)). Seria favorável, no entanto, ter um codec de vídeo disponível que suportasse capacidades de processamento paralelo de codificadores de vídeo e/ou decodificadores de vídeo de forma ainda mais eficiente.
[003] A seguir, é descrita uma introdução ao particionamento de VCL de acordo com o estado da técnica (VCL = video coding layer (camada de conversão de vídeo em código).
[004] Tipicamente, em conversão de vídeo em código, um processo de conversão de amostras de imagem em vídeo requer partições menores, em que amostras são divididas em algumas áreas retangulares para processamento conjunto, tal como conversão de previsão ou transformada em código. Portanto, uma imagem é particionada em blocos de um tamanho particular que é constante durante a codificação da sequência de vídeo. No padrão H.264/AVC, blocos de tamanho fixo de amostras de 16x16, chamados macroblocos, são usados (AVC = Advanced Video Coding (Conversão Avançada de Vídeo em Código)).
[005] No padrão HEVC do estado da técnica (consulte [1]), existem Blocos de Árvore Convertidos em Código (CTB) ou Unidades de Árvore de Conversão em Código (CTU) de um tamanho máximo de 64 x 64 amostras. Na descrição posterior do HEVC, para esse tipo de blocos, é usado o termo mais comum CTU.
[006] As CTUs são processadas em ordem de varredura raster, começando com a CTU superior esquerda, processando CTUs no sentido da linha da imagem até a CTU inferior direita.
[007] Os dados convertidos em código da CTU são organizados em um tipo de recipiente denominado fatia. Originalmente, nos padrões de conversão de vídeo em código anteriores, fatia significa um segmento que compreende uma ou mais CTUs consecutivas de uma imagem. Fatias são empregadas para uma segmentação de dados convertidos em código. De outro ponto de vista, a imagem completa também pode ser definida como um grande segmento e, portanto, historicamente, o termo fatia ainda é aplicado. Além das amostras de imagens convertidas em código, as fatias também contêm informações adicionais relacionadas ao processo de conversão em código da própria fatia, que é colocado em um assim chamado cabeçalho de fatia.
[008] De acordo com o estado da técnica, uma VCL (video coding layer (camada de conversão de vídeo em código)) também compreende técnicas para fragmentação e particionamento espacial. Tal particionamento pode, por exemplo, ser aplicado na conversão de vídeo em código por várias razões, entre as quais estão o balanceamento de carga de processamento em paralelização, correspondência de tamanho de CTU na transmissão de rede, mitigação de erros, etc.
[009] Outros exemplos se referem a codificações RoI (RoI = Região de Interesse), em que há, por exemplo, uma região no meio da imagem que os espectadores podem selecionar, por exemplo, com uma operação de zoom (decodificando apenas a RoI) ou atualização gradual do decodificador (GDR) em que os intradados (que normalmente são colocados em um quadro de uma sequência de vídeo) são distribuídos temporalmente em vários quadros sucessivos, por exemplo, como uma coluna de intrablocos que desliza sobre o plano da imagem e redefine a cadeia de previsão temporal localmente da mesma maneira como uma intraimagem faz isso para todo o plano da imagem. Para este último, existem duas regiões em cada imagem, uma que foi redefinida recentemente e outra que é potencialmente afetada por erros e propagação de erros.
[010] A reamostragem de imagem de referência (RPR) é uma técnica usada na conversão de vídeo em código para adaptar a qualidade/taxa do vídeo não apenas com o uso de um parâmetro de quantização mais grosseiro, mas adaptando a resolução de potencialmente cada imagem transmitida. Assim, as referências usadas para previsão inter podem ter um tamanho diferente da imagem que está sendo prevista para codificação. Basicamente, a RPR requer um processo de reamostragem no loop de predição, por exemplo, filtros de sobreamostragem e subamostragem a serem definidos.
[011] Dependendo do sabor, a RPR pode resultar em uma alteração do tamanho da imagem convertida em código em qualquer imagem, ou ser limitado a ocorrer apenas em alguma imagem específica, por exemplo, apenas em posições específicas limitadas, por exemplo, aos limites do segmento streaming HTTP adaptativo.
[012] O objetivo da presente invenção é fornecer conceitos melhorados para codificação de vídeo e decodificação de vídeo.
[013] O objetivo da presente invenção é resolvido pela matéria das reivindicações independentes.
[014] De acordo com um primeiro aspecto da invenção, é fornecido um aparelho para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho é configurado para gerar um fluxo de dados de vídeo de saída do fluxo de dados de vídeo de entrada. Além disso, o aparelho deve determinar se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[015] Além disso, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. O fluxo de dados de vídeo compreende uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[016] Além disso, é fornecido um codificador de vídeo. O codificador de vídeo é configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo inclua uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[017] Além disso, é fornecido um decodificador de vídeo para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O decodificador de vídeo é configurado para decodificar o vídeo do fluxo de dados de vídeo. O decodificador de vídeo é configurado para decodificar o vídeo dependendo de uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[018] Além disso, é fornecido um método para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O método compreende gerar um fluxo de dados de vídeo de saída a partir do fluxo de dados de vídeo de entrada. Além disso, o método compreende determinar se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[019] Além disso, é fornecido um método para codificar um vídeo em um fluxo de dados de vídeo. O método compreende a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo inclua uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[020] Além disso, é fornecido um método para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O método compreende a decodificação do vídeo do fluxo de dados de vídeo. A decodificação do vídeo é realizada dependendo de uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[021] Além disso, são fornecidos programas de computador para implantar um dos métodos descritos acima quando é executado em um computador ou processador de sinal.
[022] De acordo com um segundo aspecto da invenção, é fornecido um aparelho para receber um ou mais fluxos de dados de vídeo de entrada. Cada um dentre o um ou mais fluxos de dados de vídeo de entrada tem um vídeo de entrada codificado no mesmo. O aparelho é configurado para gerar um fluxo de dados de vídeo de saída do um ou mais fluxos de dados de vídeo de entrada, em que o fluxo de dados de vídeo de saída codifica um vídeo de saída, em que o aparelho é configurado para gerar o fluxo de dados de vídeo de saída de modo que o vídeo de saída seja o vídeo de entrada sendo codificado em um dentre o um ou mais fluxos de dados de vídeo de entrada, ou de modo que o vídeo de saída dependa do vídeo de entrada de pelo menos um dentre o um ou mais fluxos de dados de vídeo de entrada. Além disso, o aparelho é configurado para determinar um tempo de remoção de unidade de acesso de uma imagem atual de uma pluralidade de imagens do vídeo de saída de um armazenamento temporário de imagem convertida em código. O aparelho é configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual do armazenamento temporário de imagem convertida em código.
[023] Além disso, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. O fluxo de dados de vídeo compreende informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[024] Além disso, é fornecido um decodificador de vídeo para receber um fluxo de dados de vídeo um vídeo armazenado no mesmo. O decodificador de vídeo é configurado para decodificar o vídeo do fluxo de dados de vídeo. Além disso, o decodificador de vídeo é configurado para decodificar o vídeo dependendo de um tempo de remoção de unidade de acesso de uma imagem atual de uma pluralidade de imagens do vídeo de um armazenamento temporário de imagem convertida em código. O decodificador de vídeo é configurado para decodificar o vídeo dependendo de uma indicação que indica se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual do armazenamento temporário de imagem convertida em código.
[025] Além disso, é fornecido um método para receber um ou mais fluxos de dados de vídeo de entrada. Cada um dentre o um ou mais fluxos de dados de vídeo de entrada tem um vídeo de entrada codificado no mesmo. O método compreende gerar um fluxo de dados de vídeo de saída do um ou mais fluxos de dados de vídeo de entrada, em que o fluxo de dados de vídeo de saída codifica um vídeo de saída, em que a geração do fluxo de dados de vídeo de saída é conduzida de modo que o vídeo de saída seja o vídeo de entrada sendo codificado dentro de um dentre o um ou mais fluxos de dados de vídeo de entrada, ou de modo que o vídeo de saída dependa do vídeo de entrada de pelo menos um dentre o um ou mais fluxos de dados de vídeo de entrada. Além disso, o método compreende determinar um tempo de remoção de unidade de acesso de uma imagem atual de uma pluralidade de imagens do vídeo de saída de um armazenamento temporário de imagem convertida em código. Além disso, o método compreende determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual do armazenamento temporário de imagem convertida em código.
[026] Além disso, é fornecido um método para codificar um vídeo em um fluxo de dados de vídeo de acordo com uma modalidade. O método compreende a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[027] Além disso, é fornecido um método para receber um fluxo de dados de vídeo um vídeo armazenado no mesmo. O método compreende a decodificação do vídeo do fluxo de dados de vídeo. A decodificação do vídeo é realizada dependendo de um tempo de remoção de unidade de acesso de uma imagem atual de uma pluralidade de imagens do vídeo de um armazenamento temporário de imagem convertida em código. Além disso, a decodificação do vídeo é realizada dependendo de uma indicação que indica se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual do armazenamento temporário de imagem convertida em código.
[028] Ademais, são fornecidos programas de computador para implantar um dos métodos descritos acima quando é executado em um computador ou processador de sinal.
[029] De acordo com um terceiro aspecto da invenção, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. Além disso, o fluxo de dados de vídeo compreende um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo de dois ou mais períodos de armazenamento temporário.
[030] Além disso, é fornecido um codificador de vídeo. O codificador de vídeo é configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dois ou mais períodos de armazenamento temporário.
[031] Além disso, é fornecido um aparelho para receber dois fluxos de dados de vídeo de entrada, sendo um primeiro fluxo de dados de vídeo de entrada e um segundo fluxo de dados de vídeo de entrada. Cada um dos dois fluxos de dados de vídeo de entrada tem um vídeo de entrada codificado no mesmo. O aparelho é configurado para gerar um fluxo de dados de vídeo de saída dos dois fluxos de dados de vídeo de entrada, em que o fluxo de dados de vídeo de saída codifica um vídeo de saída, em que o aparelho é configurado para gerar um fluxo de dados de vídeo de saída concatenando o primeiro fluxo de dados de vídeo de entrada e o segundo fluxo de dados de vídeo de entrada. Além disso, o aparelho é configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o aparelho é configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o aparelho é configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante em dois ou mais períodos de armazenamento temporário.
[032] Além disso, é fornecido um decodificador de vídeo para receber um fluxo de dados de vídeo um vídeo armazenado no mesmo. O decodificador de vídeo é configurado para decodificar o vídeo do fluxo de dados de vídeo. Além disso, o fluxo de dados de vídeo compreende um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo de dois ou mais períodos de armazenamento temporário. Além disso, o decodificador de vídeo é configurado para decodificar o vídeo dependendo das informações que indicam se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante entre os dois ou mais períodos de armazenamento temporário.
[033] Além disso, é fornecido um método para codificar um vídeo em um fluxo de dados de vídeo. O método compreende a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o método compreende a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o método compreende a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo inclua informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante em dois ou mais períodos de armazenamento temporário.
[034] Além disso, é fornecido um método para receber dois fluxos de dados de vídeo de entrada, sendo um primeiro fluxo de dados de vídeo de entrada e um segundo fluxo de dados de vídeo de entrada. Cada um dos dois fluxos de dados de vídeo de entrada tem um vídeo de entrada codificado no mesmo. O método compreende gerar um fluxo de dados de vídeo de saída dos dois fluxos de dados de vídeo de entrada, em que o fluxo de dados de vídeo de saída codifica um vídeo de saída, em que o aparelho é configurado para gerar um fluxo de dados de vídeo de saída concatenando o primeiro fluxo de dados de vídeo de entrada e o segundo fluxo de dados de vídeo de entrada. Além disso, o método compreende a geração do fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o método compreende a geração do fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o método compreende a geração do fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída inclua informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante em dois ou mais períodos de armazenamento temporário.
[035] Além disso, é fornecido um método para receber um fluxo de dados de vídeo um vídeo armazenado no mesmo. O método compreende a decodificação do vídeo do fluxo de dados de vídeo. O fluxo de dados de vídeo compreende um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante em dois ou mais períodos de armazenamento temporário. O método compreende a decodificação do vídeo dependendo das informações que indicam se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário.
[036] Ademais, são fornecidos programas de computador para implantar um dos métodos descritos acima quando é executado em um computador ou processador de sinal.
[037] De acordo com um quarto aspecto da invenção, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. Além disso, o fluxo de dados de vídeo compreende uma indicação que indica que é definido se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo se aplica ou não a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[038] Além disso, é fornecido um codificador de vídeo. O codificador de vídeo é configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma indicação que indica se é definido que uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo se aplica a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[039] Além disso, é fornecido um aparelho para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho é configurado para gerar um fluxo de dados de vídeo processado a partir do fluxo de dados de vídeo de entrada. Além disso, o aparelho é configurado para gerar o fluxo de dados de vídeo processado de modo que o fluxo de dados de vídeo processado compreenda uma indicação que indica se é definido que uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso do pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo processado se aplica a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[040] Além disso, é fornecido um decodificador de vídeo para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O decodificador de vídeo é configurado para decodificar o vídeo do fluxo de dados de vídeo. O fluxo de dados de vídeo compreende uma indicação que indica que é definido se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo se aplica ou não a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[041] Além disso, é fornecido um método para codificar um vídeo em um fluxo de dados de vídeo. O método compreende a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma indicação que indica se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo é definida para se aplicar a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[042] Além disso, é fornecido um método para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O método compreende gerar um fluxo de dados de vídeo processado a partir do fluxo de dados de vídeo de entrada. Além disso, o método compreende a geração do fluxo de dados de vídeo processado de modo que o fluxo de dados de vídeo processado compreenda uma indicação que indica se é definido que uma mensagem de informações de aprimoramento complementar de tempo de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo processado se aplica ou não a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[043] Além disso, é fornecido um método para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O método compreende a decodificação do vídeo do fluxo de dados de vídeo. O fluxo de dados de vídeo compreende uma indicação que indica se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de um ou mais vídeos codificados sequências do fluxo de dados de vídeo são definidas para serem aplicadas a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[044] Além disso, são fornecidos programas de computador para implantar um dos métodos descritos acima quando é executado em um computador ou processador de sinal.
[045] De acordo com um quinto aspecto da invenção, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. Além disso, o fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
[046] Além disso, é fornecido um codificador de vídeo. O codificador de vídeo é configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendam uma pluralidade de elementos de sintaxe. Além disso, o codificador de vídeo é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
[047] Além disso, é fornecido um aparelho para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho é configurado para gerar um fluxo de dados de vídeo de saída do fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo. O aparelho é configurado para processar a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis.
[048] Além disso, é fornecido um decodificador de vídeo para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O decodificador de vídeo é configurado para decodificar o vídeo do fluxo de dados de vídeo. O fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo. O decodificador de vídeo é configurado para decodificar o vídeo dependendo do um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe.
[049] Além disso, é fornecido um método para codificar um vídeo em um fluxo de dados de vídeo. O método compreende a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. Além disso, o método compreende a geração do fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendam uma pluralidade de elementos de sintaxe. Além disso, o método compreende a geração do fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
[050] Além disso, é fornecido um método para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O método compreende gerar um fluxo de dados de vídeo de saída a partir do fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo. O método compreende o processamento da uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis.
[051] Além disso, é fornecido um método para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O método compreende a decodificação do vídeo do fluxo de dados de vídeo. O fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo. A decodificação do vídeo é realizada dependendo do um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe.
[052] Além disso, são fornecidos programas de computador para implantar um dos métodos descritos acima quando é executado em um computador ou processador de sinal.
[053] Modalidades preferenciais são fornecidas nas reivindicações dependentes.
[054] A seguir, as modalidades da presente invenção são descritas em detalhes com referência às Figuras, em que: A Figura 1 ilustra um codificador de vídeo para codificar um vídeo em um fluxo de dados de vídeo de acordo com uma modalidade. A Figura 2 ilustra um aparelho para receber um fluxo de dados de vídeo de entrada de acordo com uma modalidade. A Figura 3 ilustra um decodificador de vídeo para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo de acordo com uma modalidade. A Figura 4 ilustra um fluxo de bits original (representado na parte superior da Figura 4) e um fluxo de bits após a descarte de imagens (representado na parte inferior da Figura 4) de acordo com uma modalidade. A Figura 5 ilustra uma junção de dois fluxos de bits após as imagens terem sido descartadas de um dos dois fluxos de bits de acordo com uma modalidade. A Figura 6 ilustra uma junção de dois fluxos de bits de acordo com outra modalidade. A Figura 7 ilustra dois conjuntos de HRD SEIs, SEIs aninhados escaláveis e SEIs aninhados não escaláveis, em um fluxo de bits de duas camadas de acordo com uma modalidade. A Figura 8 ilustra um codificador de vídeo. A Figura 9 ilustra um decodificador de vídeo. A Figura 10 ilustra a relação entre o sinal reconstruído, por exemplo, a imagem reconstruída, por um lado, e a combinação do sinal residual de previsão como sinalizado no fluxo de dados, e o sinal de previsão, por outro lado.
[055] A descrição a seguir das figuras começa com uma apresentação de uma descrição de um codificador e um decodificador de um codec preditivo baseado em bloco para conversão em código de imagens de um vídeo a fim de formar um exemplo para uma estrutura de conversão em código na qual as modalidades da presente invenção podem ser incorporadas. Os respectivos codificador e decodificador são descritos em relação às Figuras 8 e 10. Doravante, a descrição das modalidades do conceito da presente invenção é apresentada junto com uma descrição de como tais conceitos podem ser incorporados ao codificador e ao decodificador da Figura 8 e da Figura 9, respectivamente, embora as modalidades descritas na Figura 1 à Figura 3 e seguintes, também possam ser usadas para formar codificadores e decodificadores que não operam de acordo com a estrutura de conversão em código subjacente ao codificador e decodificador da Figura 8 e Figura 9.
[056] A Figura 8 mostra um codificador de vídeo, um aparelho para conversão em código preditiva de uma imagem 12 em um fluxo de dados 14, de forma exemplar, com o uso de conversão em código residual com base em transformada. O aparelho, ou codificador, é indicado com o uso do sinal de referência 10. A Figura 9 mostra um decodificador de vídeo 20 correspondente, por exemplo, um aparelho 20 configurado para decodificar preditivamente a imagem 12' do fluxo de dados 14 também usando- se decodificação residual com base em transformada, em que o apóstrofo foi usado para indicar que a imagem 12' reconstruída pelo decodificador 20 desvia da imagem 12 codificada originalmente pelo aparelho 10 em termos de perda de conversão em código introduzida por uma quantização do sinal residual de previsão. As Figuras 8 e 9 usam exemplarmente conversão em código residual de previsão com base em transformada, embora modalidades do presente pedido não sejam restritas a este tipo de conversão em código residual de previsão. Isso é verdade para outros detalhes descritos em relação à Figura 8 e Figura 9, também, como será delineado doravante no presente documento.
[057] O codificador 10 é configurado para submeter o sinal residual de previsão à transformação espacial para espectral e codificar o sinal residual de previsão, assim obtido, no fluxo de dados 14. Da mesma forma, o decodificador 20 é configurado para decodificar o sinal residual de previsão do fluxo de dados 14 e submeter o sinal residual de previsão assim obtido à transformação espectral para espacial.
[058] Internamente, o codificador 10 pode compreender um formador de sinal residual de predição 22 que gera um residual de predição 24 de modo a medir um desvio de um sinal de predição 26 do sinal original, isto é, a partir da imagem 12. O formador de sinal de previsão residual 22 pode, por exemplo, ser um subtrator que subtrai o sinal de previsão do sinal original, isto é, da imagem 12. O codificador 10, então, compreende adicionalmente um transformador 28 que submete o sinal de previsão residual 24 a uma transformação espacial para espectral para obter um sinal de previsão residual de domínio espectral 24’ que é, então, submetido à quantização por um quantizador 32, também compreendido pelo codificador 10. O sinal de previsão residual quantizado dessa forma 24’’ é convertido em código no fluxo de bits 14. Para isso, o codificador 10 pode opcionalmente compreender um conversor em código por entropia 34 que converte, por entropia, o sinal de previsão residual em código como transformado e quantizado no fluxo de dados 14. O sinal de previsão 26 é gerado por um estágio de previsão 36 do codificador 10 com base no sinal de previsão residual 24’’ codificado no fluxo de dados 14 e decodificável a partir do mesmo. Para isso, o estágio de previsão 36 pode internamente, conforme é mostrado na Figura 8, compreender um desquantizador 38 que desquantiza o sinal de previsão residual 24’’ de modo a adquirir o sinal de previsão residual de domínio espectral 24’’’ que corresponde ao sinal 24’, exceto para a perda de quantização, seguido por um transformador inverso 40 que submete o último sinal de previsão residual 24’’’ a uma transformação inversa, isto é, uma transformação espectral para espacial, para obter o sinal de previsão residual 24’’’’ que corresponde ao sinal de previsão residual original 24, exceto para perda de quantização. Um combinador 42 do estágio de previsão 36, então, recombina, como por adição, o sinal de previsão 26 e o sinal de previsão residual 24’’’’ de modo a obter um sinal reconstruído 46, isto é, uma reconstrução do sinal original 12. O sinal reconstruído 46 pode corresponder ao sinal 12'. Um módulo de previsão 44 de estágio de previsão 36 gera, então, o sinal de previsão 26 com base no sinal 46 com o uso, por exemplo, de previsão espacial, por exemplo, previsão intraimagem, e/ou previsão temporal, por exemplo, previsão interimagem.
[059] Da mesma forma, o decodificador 20, como mostrado na Figura 9, pode ser composto internamente de componentes correspondentes a, e interconectados de uma maneira correspondente ao estágio de previsão 36. Em particular, o decodificador por entropia 50 do decodificador 20 pode decodificar por entropia o sinal residual de previsão de domínio espectral quantizado 24'’ do fluxo de dados, após o que o desquantizador 52, o transformador inverso 54, o combinador 56 e o módulo de previsão 58, interconectados e cooperando da maneira descrita acima em relação aos módulos do estágio de previsão 36, recuperam o sinal reconstruído com base no sinal residual de previsão 24'' de modo que, como mostrado na Figura 9, a saída do combinador 56 resulta no sinal reconstruído, a saber, a imagem 12'.
[060] Embora não especificamente descrito acima, fica prontamente claro que o codificador 10 pode definir alguns parâmetros de conversão em código, incluindo, por exemplo, modos de previsão, parâmetros de movimento e similares, de acordo com algum esquema de otimização, como, por exemplo, de maneira a otimizar alguma taxa e critério relacionado à distorção, por exemplo, custo de conversão em código. Por exemplo, o codificador 10 e decodificador 20 e os módulos correspondentes 44, 58, respectivamente, podem suportar diferentes modos de previsão, como modos de intraconversão em código e modos de interconversão em código. A granularidade na qual o codificador e o decodificador alternam entre esses tipos de modo de previsão pode corresponder a uma subdivisão da imagem 12 e 12’, respectivamente, em segmentos de conversão em código ou blocos de conversão em código. Em unidades desses segmentos de conversão em código, por exemplo, a imagem pode ser subdividida em blocos que são intraconvertidos em código ou interconvertidos em código. Os blocos intraconvertidos em código são previstos com base em uma vizinhança espacial já convertida em código/decodificada do respectivo bloco, como descrito em mais detalhes abaixo. Vários modos de intraconversão em código podem existir e ser selecionados para um respectivo segmento intraconvertido em código incluindo modos de intraconversão em código direcionais ou angulares de acordo com os quais o respectivo segmento é preenchido extrapolando os valores de amostra da vizinhança ao longo de uma certa direção que é específica para o respectivo modo de intraconversão em código direcional, no respectivo segmento intraconvertido em código. Os modos de intraconversão em código podem, por exemplo, compreender também um ou mais modos adicionais, como um modo de conversão em código DC, de acordo com o qual a predição para o respectivo bloco intraconvertido em código atribui um valor de DC a todas as amostras dentro do respectivo segmento intraconvertido em código, e/ou um modo de intraconversão em código planar de acordo com o qual a predição do respectivo bloco é aproximada ou determinada como uma distribuição espacial de valores de amostra descritos por uma função linear bidimensional sobre as posições de amostra do respectivo bloco intraconvertido em código com inclinação de condução e deslocamento do plano definido pela função linear bidimensional com base nas amostras vizinhas. Em comparação com os mesmos, os blocos interconvertidos em código podem ser previstos, por exemplo, temporalmente. Para blocos interconvertidos em código, vetores de movimento podem ser sinalizados dentro do fluxo de dados, os vetores de movimento indicando o deslocamento espacial da porção de uma imagem previamente convertida em código do vídeo à qual a imagem 12 pertence, na qual a imagem previamente convertida em código/decodificada é amostrada a fim de obter o sinal de previsão para o respectivo bloco interconvertido em código. Isso significa que, além da conversão em código do sinal residual compreendido pelo fluxo de dados 14, tal como os níveis de coeficiente de transformada convertida por entropia em código que representam o sinal residual de previsão de domínio espectral quantizado 24'', o fluxo de dados 14 pode ter codificado em parâmetros de modo de conversão em código para atribuição os modos de conversão em código para os vários blocos, parâmetros de previsão para alguns dos blocos, como parâmetros de movimento para segmentos interconvertidos em código e parâmetros adicionais opcionais, como parâmetros para controlar e sinalizar a subdivisão da imagem 12 e 12', respectivamente, nos segmentos. O decodificador 20 usa esses parâmetros para subdividir a imagem da mesma maneira que o codificador a subdividiu, para atribuir os mesmos modos de previsão aos segmentos e para realizar a mesma previsão de modo a resultar no mesmo sinal de previsão.
[061] A Figura 10 ilustra a relação entre o sinal reconstruído, ou seja, a imagem reconstruída 12', por um lado, e a combinação do sinal residual de previsão 24'''’ como sinalizado no fluxo de dados 14, e o sinal de previsão 26, por outro lado. Como já denotado acima, a combinação pode ser uma adição. O sinal de previsão 26 é ilustrado na Figura 10 como uma subdivisão da área da imagem em blocos intraconvertidos em código que são indicados de forma ilustrativa com o uso de hachuras, e blocos interconvertidos em código que são ilustrativamente indicados como não hachurados. A subdivisão pode ser qualquer subdivisão, como uma subdivisão regular da área de imagem em fileiras e colunas de blocos quadrados ou blocos não quadrados, ou uma subdivisão de imagem 12 de múltiplas árvores de um bloco de raiz de árvore em uma pluralidade de blocos de folha de tamanho variado, como uma subdivisão de árvore quadrática ou similares, em que uma mistura dos mesmos é ilustrada na Figura 10 em que a área de imagem é subdividida primeiramente em fileiras e colunas de blocos de raiz de árvore são, então, subdivididos adicionalmente de acordo com uma subdivisão recursiva de múltiplas árvores em um ou mais blocos de folha.
[062] Novamente, o fluxo de dados 14 pode ter um modo de intraconversão em código convertido em código no mesmo para blocos intraconvertidos em código 80, que atribui um dos vários modos de intraconversão em código suportados ao respectivo bloco intraconvertido em código 80. Para blocos interconvertidos em código 82, o fluxo de dados 14 pode ter um ou mais parâmetros de movimento codificados no mesmo. De um modo geral, os blocos interconvertidos em código 82 não estão restritos a serem convertidos em código temporalmente. Alternativamente, os blocos interconvertidos em código 82 podem ser qualquer bloco predito a partir das porções anteriormente convertidas em código além da própria imagem atual 12, como imagens anteriormente convertidas em código de um vídeo ao qual a imagem 12 pertence, ou a imagem de outra visão ou uma camada hierarquicamente inferior no caso de codificador e decodificador sendo codificadores e decodificadores escaláveis, respectivamente.
[063] O sinal residual de previsão 24'''' na Figura 10 também é ilustrado como uma subdivisão da área da imagem em blocos 84. Esses blocos podem ser chamados de blocos de transformada a fim de distingui-los dos blocos de conversão em código 80 e 82. Com efeito, a Figura 10 ilustra que o codificador 10 e o decodificador 20 podem usar duas subdivisões diferentes da imagem 12 e da imagem 12', respectivamente, em blocos, a saber, uma subdivisão em blocos de conversão em código 80 e 82, respectivamente, e outra subdivisão em blocos de transformada 84. Ambas as subdivisões podem ser iguais, isto é, cada bloco de conversão em código 80 e 82 podem formar simultaneamente um bloco de transformada 84, mas a Figura 10 ilustra o caso em que, por exemplo, uma subdivisão em blocos de transformada 84 forma uma extensão da subdivisão em blocos de conversão em código 80, 82, de modo que qualquer margem entre dois blocos dentre os blocos 80 e 82 se sobreponha a uma margem entre dois blocos 84 ou, alternativamente, cada bloco 80, 82 coincida com um dentre os blocos de transformada 84 ou coincida com um agrupamento de blocos de transformada 84. No entanto, as subdivisões também podem ser determinadas ou selecionadas independentes umas das outras, de modo que os blocos de transformada 84 possam, alternativamente, cruzar as fronteiras dos blocos entre os blocos 80, 82. No que diz respeito à subdivisão em blocos de transformada 84, afirmações similares são, assim, verdadeiras, como aquelas apresentadas em relação à subdivisão em blocos 80, 82, isto é, os blocos 84 podem ser o resultado de uma subdivisão regular da área de imagem em blocos (com ou sem disposição em linhas e colunas), o resultado de uma subdivisão de múltiplas árvores recursiva da área de imagem ou uma combinação das mesmas ou qualquer outro tipo de blocagem. Apenas como um aparte, é notado que os blocos 80, 82 e 84 não estão restritos a serem quadráticos, retangulares ou qualquer outra forma.
[064] A Figura 10 ilustra adicionalmente que a combinação do sinal de previsão 26 e do sinal residual de previsão 24'''' resulta diretamente no sinal reconstruído 12'. No entanto, deve ser notado que mais de um sinal de previsão 26 pode ser combinado com o sinal residual de previsão 24'''' para resultar na imagem 12' de acordo com modalidades alternativas.
[065] Na Figura 10, os blocos de transformada 84 devem ter o seguinte significado. O transformador 28 e o transformador inverso 54 realizam suas transformações em unidades desses blocos de transformada 84. Por exemplo, muitos codecs usam algum tipo de DST ou DCT para todos os blocos de transformada 84. Alguns codecs permitem pular a transformação de modo que, para alguns dos blocos de transformada 84, o sinal residual de previsão é convertido em código no domínio espacial diretamente. No entanto, de acordo com as modalidades descritas abaixo, o codificador 10 e o decodificador 20 são configurados de modo a suportar várias transformações. Por exemplo, as transformações suportadas pelo codificador 10 e decodificador 20 poderiam compreender: o DCT-II (ou DCT-III), em que DCT significa Transformada Discreta de Cosseno o DST-IV, em que DST significa Transformada Discreta de Seno o DCT-IV o DST-VII o Transformação de identidade (TI)
[066] Naturalmente, enquanto o transformador 28 suportaria todas as versões de transformada direta dessas transformadas, o decodificador 20 ou transformador inverso 54 suportaria as versões anteriores ou inversas correspondentes: o DCT-II inversa (ou DCT-III inversa) o DST-IV inverso o DCT-IV inversa o DST-VII inversa o Transformação de identidade (TI)
[067] A descrição subsequente fornece mais detalhes em que transformadas poderiam ser suportadas pelo codificador 10 e pelo decodificador 20. Em qualquer caso, deve-se notar que o conjunto de transformações suportadas pode compreender apenas uma transformada, como uma transformação espectral para espacial ou espacial para espectral.
[068] Como já descrito acima, as Figuras 8 a 10 foram apresentadas como um exemplo onde o conceito inventivo descrito mais abaixo pode ser implantado a fim de formar exemplos específicos para codificadores e decodificadores de acordo com o presente pedido. Na medida em que, o codificador e o decodificador das Figuras 8 e 9, respectivamente, podem representar possíveis implantações dos codificadores e decodificadores descritos abaixo no presente documento. A Figura 8 e a Figura 9 são, no entanto, apenas exemplos. Um codificador de acordo com as modalidades do presente pedido pode, no entanto, realizar a codificação com base em blocos de uma imagem 12 usando o conceito descrito em mais detalhes abaixo e sendo diferente do codificador da Figura 8, como, por exemplo, pelo fato de não haver codificador de vídeo, mas um codificador de imagem estática, em que o mesmo não suporta interprevisão ou em que a subdivisão em blocos 80 é realizada de uma maneira diferente da exemplificada na Figura 10. Da mesma forma, os decodificadores de acordo com as modalidades do presente pedido podem realizar a decodificação com base em blocos da imagem 12' do fluxo de dados 14 usando o conceito de conversão em código descrito adicionalmente abaixo, mas podem diferir, por exemplo, do decodificador 20 da Figura 9 em que o mesmo não é um decodificador de vídeo, mas um decodificador de imagem estática, em que o mesmo não suporta intraprevisão, ou em que o mesmo subdivide a imagem 12' em blocos de uma maneira diferente da descrita em relação à Figura 10 e/ou em que o mesmo não deriva o residual de previsão do fluxo de dados 14 no domínio de transformada, mas no domínio espacial, por exemplo.
[069] A Figura 1 ilustra um codificador de vídeo 100 para codificar um vídeo em um fluxo de dados de vídeo de acordo com uma modalidade. O codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo inclua uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[070] A Figura 2 ilustra um aparelho 200 para receber um fluxo de dados de vídeo de entrada de acordo com uma modalidade. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho 200 é configurado para gerar um fluxo de dados de vídeo de saída do fluxo de dados de vídeo de entrada.
[071] A Figura 3 ilustra um decodificador de vídeo 300 para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo de acordo com uma modalidade. O decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo de uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[072] Além disso, é fornecido um sistema de acordo com uma modalidade. O sistema compreende o aparelho da Figura 2 e o decodificador de vídeo da Figura 3. O decodificador de vídeo 300 da Figura 3 é configurado para receber o fluxo de dados de vídeo de saída do aparelho da Figura 2. O decodificador de vídeo 300 da Figura 3 é configurado para decodificar o vídeo do fluxo de dados de vídeo de saída do aparelho 200 da Figura 2.
[073] Em uma modalidade, o sistema pode, por exemplo, compreender ainda um codificador de vídeo 100 da Figura 1. O aparelho 200 da Figura 2 pode, por exemplo, ser configurado para receber o fluxo de dados de vídeo do codificador de vídeo 100 da Figura 1 como o fluxo de dados de vídeo de entrada.
[074] O dispositivo intermediário (opcional) 210 do aparelho 200 pode, por exemplo, ser configurado para receber o fluxo de dados de vídeo do codificador de vídeo 100 como um fluxo de dados de vídeo de entrada e para gerar um fluxo de dados de vídeo de saída do fluxo de dados de vídeo de entrada. Por exemplo, o dispositivo intermediário pode, por exemplo, ser configurado para modificar as informações (cabeçalho/metadados) do fluxo de dados de vídeo de entrada e/ou pode, por exemplo, ser configurado para excluir imagens do fluxo de dados de vídeo de entrada e/ou pode ser configurado para misturar/unir o fluxo de dados de vídeo de entrada com um segundo fluxo de bits adicional que tem um segundo vídeo codificado no mesmo.
[075] O decodificador de vídeo (opcional) 221 pode, por exemplo, ser configurado para decodificar o vídeo do fluxo de dados de vídeo de saída.
[076] O Decodificador de Referência Hipotética 222 (opcional) pode, por exemplo, ser configurado para determinar informações de tempo para o vídeo dependendo do fluxo de dados de vídeo de saída, ou pode, por exemplo, ser configurado para determinar informações de armazenamento temporário para um armazenamento temporário no qual o vídeo ou uma parte do vídeo deve ser armazenado.
[077] O sistema compreende o codificador de vídeo 101 da Figura 1 e o decodificador de vídeo 151 da Figura 2.
[078] O codificador de vídeo 101 é configurado para gerar o sinal de vídeo codificado. O decodificador de vídeo 151 é configurado para decodificar o sinal de vídeo codificado para reconstruir a imagem do vídeo.
[079] Um primeiro aspecto da invenção é reivindicado nas reivindicações 1 a 38.
[080] Um segundo aspecto da invenção é reivindicado nas reivindicações 39 a 78.
[081] Um terceiro aspecto da invenção é reivindicado nas reivindicações 79 a 108.
[082] Um quarto aspecto da invenção é reivindicado nas reivindicações 109 a 134.
[083] Um quinto aspecto da invenção é reivindicado nas reivindicações 135 a 188.
[084] A seguir, o primeiro aspecto da invenção é descrito, agora em detalhes.
[085] De acordo com o primeiro aspecto da invenção, é fornecido um aparelho 200 para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho 200 é configurado para gerar um fluxo de dados de vídeo de saída do fluxo de dados de vídeo de entrada. Além disso, o aparelho 200 deve determinar se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[086] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar uma primeira variável (por exemplo, um NoOutputBeforeDrapFlag) indicando se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não.
[087] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída possa, por exemplo, compreender uma indicação que pode, por exemplo, indicar se a imagem do vídeo que precede o fluxo aleatório dependente imagem de acesso deve ser emitida ou não.
[088] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída possa, por exemplo, compreender informações de aprimoramento suplementares que compreendem a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não.
[089] Em uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. O aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída possa, por exemplo, compreender um sinalizador (por exemplo, um ph_pic_output_flag) com um valor predefinido (por exemplo, 0) em um cabeçalho de imagem da imagem de acesso aleatório independente, de modo que o valor predefinido (por exemplo, 0) do sinalizador (por exemplo, um ph_pic_output_flag) possa, por exemplo, indicar para a imagem de acesso aleatório independente que precede diretamente a dita imagem de acesso aleatório dependente dentro do fluxo de dados de vídeo, e que a dita imagem de acesso aleatório independente não deve ser emitida.
[090] De acordo com uma modalidade, o sinalizador pode, por exemplo, ser um primeiro sinalizador, em que o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída possa, por exemplo, compreender um sinalizador adicional em um conjunto de parâmetros de imagem do fluxo de dados de vídeo, em que o sinalizador adicional pode, por exemplo, indicar se o primeiro sinalizador (por exemplo, um ph_pic_output_flag) existe ou não no cabeçalho de imagem da imagem de acesso aleatório independente.
[091] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída possa, por exemplo, compreender como a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não como um sinalizador de informações de aprimoramento suplementar dentro de uma informação de aprimoramento suplementar do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de imagem dentro de um conjunto de parâmetros de imagem do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de sequência dentro um conjunto de parâmetros de sequência do fluxo de dados de vídeo de saída ou um sinalizador de meio externo, em que um valor do sinalizador de meio externo pode, por exemplo, ser definido por uma unidade externa que é externa ao aparelho 200.
[092] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar um valor de uma segunda variável (por exemplo, um PictureOutputFlag) para a imagem do vídeo que precede a imagem de acesso aleatório dependente dependendo da primeira variável (por exemplo, um NoOutputBeforeDrapFlag), em que a segunda variável (por exemplo, um PictureOutputFlag) pode, por exemplo, indicar para a dita imagem se a dita imagem deve ser emitida ou não, e em que o aparelho 200 pode, por exemplo, ser configurado para emitir ou não a dita imagem dependendo na segunda variável (por exemplo, um PictureOutputFlag).
[093] Em uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. A primeira variável (por exemplo, um NoOutputBeforeDrapFlag) pode, por exemplo, indicar que a imagem de acesso aleatório independente não deve ser emitida.
[094] De acordo com uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. O aparelho 200 pode, por exemplo, ser configurado para definir a primeira variável (por exemplo, um NoOutputBeforeDrapFlag) de modo que a primeira variável (por exemplo, um NoOutputBeforeDrapFlag) possa, por exemplo, indicar que a imagem de acesso aleatório independente deve ser emitida.
[095] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para sinalizar para um decodificador de vídeo 300, se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[096] Além disso, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. O fluxo de dados de vídeo compreende uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[097] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender informações de aprimoramento suplementares que compreendem a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não.
[098] Em uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. O fluxo de dados de vídeo pode, por exemplo, compreender um sinalizador (por exemplo, um ph_pic_output_flag) que tem um valor predefinido (por exemplo, 0) em um cabeçalho de imagem da imagem de acesso aleatório independente, de modo que o valor predefinido (por exemplo, 0) do sinalizador (por exemplo, um ph_pic_output_flag) possa, por exemplo, indicar para a imagem de acesso aleatório independente que precede diretamente a dita imagem de acesso aleatório dependente dentro do fluxo de dados de vídeo, e que a dita imagem de acesso aleatório independente não deve ser emitida.
[099] De acordo com uma modalidade, o sinalizador pode, por exemplo, ser um primeiro sinalizador, em que o fluxo de dados de vídeo pode, por exemplo, compreender um sinalizador adicional em um conjunto de parâmetros de imagem do fluxo de dados de vídeo, em que o sinalizador adicional pode, por exemplo, indicar se ou não o primeiro sinalizador (por exemplo, um ph_pic_output_flag) existe no cabeçalho da imagem da imagem de acesso aleatório independente.
[0100] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender como a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não um sinalizador de informações de aprimoramento suplementar dentro de uma informação de aprimoramento suplementar do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de imagem dentro de um conjunto de parâmetros de imagem do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de sequência dentro de um conjunto de parâmetros de sequência do fluxo de dados de vídeo de saída, ou um sinalizador de meio externo, em que um valor do sinalizador de meio externo pode, por exemplo, ser definido por uma unidade externa que é externa a um aparelho 200.
[0101] Além disso, é fornecido um codificador de vídeo 100. O codificador de vídeo 100 pode, por exemplo, ser configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo inclua uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[0102] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender informações de aprimoramento suplementares que compreendem a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não.
[0103] Em uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender um sinalizador (por exemplo, um ph_pic_output_flag) com um valor predefinido (por exemplo, 0) em um cabeçalho de imagem do imagem de acesso aleatório independente, de modo que o valor predefinido (por exemplo, 0) do sinalizador (por exemplo, um ph_pic_output_flag) possa, por exemplo, indicar para a imagem de acesso aleatório independente que precede diretamente a dita imagem de acesso aleatório dependente dentro do fluxo de dados de vídeo, e que a dita imagem de acesso aleatório independente não deve ser emitida.
[0104] De acordo com uma modalidade, o sinalizador pode, por exemplo, ser um primeiro sinalizador, em que o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender um sinalizador adicional em uma imagem conjunto de parâmetros do fluxo de dados de vídeo, em que o sinalizador adicional pode, por exemplo, indicar se o primeiro sinalizador (por exemplo, um ph_pic_output_flag) existe ou não no cabeçalho da imagem da imagem de acesso aleatório independente.
[0105] Em uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender como a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede o fluxo aleatório dependente A imagem de acesso deve ser emitida ou não como um sinalizador de informações de aprimoramento suplementar dentro de uma informação de aprimoramento suplementar do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de imagem dentro de um conjunto de parâmetros de imagem do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de sequência dentro de um conjunto de parâmetros de sequência do fluxo de dados de vídeo de saída, ou um sinalizador de meio externo, em que um valor do sinalizador de meio externo pode, por exemplo, ser definido por uma unidade externa que é externa a um aparelho 200.
[0106] Além disso, é fornecido um decodificador de vídeo 300 para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo de uma indicação que indica se uma imagem do vídeo que precede uma imagem de acesso aleatório dependente deve ser emitida ou não.
[0107] De acordo com uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo de uma primeira variável (por exemplo, um NoOutputBeforeDrapFlag) indicando se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não.
[0108] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo da indicação dentro do fluxo de dados de vídeo.
[0109] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender informações de aprimoramento suplementares que compreendem a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo das informações de aprimoramento suplementares.
[0110] Em uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. O fluxo de dados de vídeo pode, por exemplo, compreender um sinalizador (por exemplo, um ph_pic_output_flag) que tem um valor predefinido (por exemplo, 0) em um cabeçalho de imagem da imagem de acesso aleatório independente, de modo que o valor predefinido (por exemplo, 0) do sinalizador (por exemplo, um ph_pic_output_flag) possa, por exemplo, indicar para a imagem de acesso aleatório independente que precede diretamente a dita imagem de acesso aleatório dependente dentro do fluxo de dados de vídeo, e que a dita imagem de acesso aleatório independente não deve ser emitida. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo da bandeira.
[0111] De acordo com uma modalidade, o sinalizador pode, por exemplo, ser um primeiro sinalizador, em que o fluxo de dados de vídeo pode, por exemplo, compreender um sinalizador adicional em um conjunto de parâmetros de imagem do fluxo de dados de vídeo, em que o sinalizador adicional pode, por exemplo, indicar se ou não o primeiro sinalizador (por exemplo, um ph_pic_output_flag) existe no cabeçalho da imagem da imagem de acesso aleatório independente. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo do sinalizador adicional.
[0112] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender como a indicação que pode, por exemplo, indicar se a imagem do vídeo que precede a imagem de acesso aleatório dependente deve ser emitida ou não um sinalizador de informações de aprimoramento suplementar dentro de uma informação de aprimoramento suplementar do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de imagem dentro de um conjunto de parâmetros de imagem do fluxo de dados de vídeo de saída, ou um sinalizador de conjunto de parâmetros de sequência dentro de um conjunto de parâmetros de sequência do fluxo de dados de vídeo de saída, ou um sinalizador de meio externo, em que um valor do sinalizador de meio externo pode, por exemplo, ser definido por uma unidade externa que é externa a um aparelho 200. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo da indicação dentro do fluxo de dados de vídeo.
[0113] De acordo com uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para reconstruir o vídeo a partir do fluxo de dados de vídeo. O decodificador de vídeo 300 pode, por exemplo, ser configurado para emitir ou não a imagem do vídeo que precede a imagem de acesso aleatório dependente dependendo da primeira variável (por exemplo, um NoOutputBeforeDrapFlag).
[0114] Em uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para determinar um valor de uma segunda variável (por exemplo, um PictureOutputFlag) para a imagem do vídeo que precede a imagem de acesso aleatório dependente dependendo da primeira variável (por exemplo, um NoOutputBeforeDrapFlag), em que a segunda variável (por exemplo, um PictureOutputFlag) pode, por exemplo, indicar para a dita imagem se a dita imagem deve ser emitida ou não, e em que o aparelho 200 pode, por exemplo, ser configurado para emitir ou não a dita imagem dependendo na segunda variável (por exemplo, um PictureOutputFlag).
[0115] De acordo com uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo da primeira variável (por exemplo, um NoOutputBeforeDrapFlag) que pode, por exemplo, indicar que a imagem de acesso aleatório independente não deve ser emitida.
[0116] Em uma modalidade, a imagem do vídeo que precede a imagem de acesso aleatório dependente pode, por exemplo, ser uma imagem de acesso aleatório independente. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo da primeira variável (por exemplo, um NoOutputBeforeDrapFlag) que pode, por exemplo, indicar que a imagem de acesso aleatório independente deve ser emitida.
[0117] Ademais, é fornecido um sistema. O sistema compreende um aparelho 200 como descrito acima e um decodificador de vídeo 300 como descrito acima. O decodificador de vídeo 300 é configurado para receber o fluxo de dados de vídeo de saída do aparelho 200. Além disso, o decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo de saída do aparelho 200.
[0118] De acordo com uma modalidade, o sistema pode, por exemplo, compreender ainda um codificador de vídeo 100. O aparelho 200 pode, por exemplo, ser configurado para receber o fluxo de dados de vídeo do codificador de vídeo 100 como o fluxo de dados de vídeo de entrada.
[0119] Em particular, o primeiro aspecto da invenção se refere ao início do CVS em DRAP e à omissão da saída de IDR na decodificação e no teste de conformidade.
[0120] Quando um fluxo de bits compreende imagens marcadas como DRAP (ou seja, com o uso apenas do IRAP anterior como referência para o DRAP e a partir daí no fluxo de bits), é possível utilizar essas imagens de DRAP para funcionalidade de acesso aleatório com menor taxa de overhead. No entanto, ao usar algum DRAP de destino para acessar aleatoriamente um fluxo, é indesejável exibir qualquer imagem inicial antes do DRAP de destino (ou seja, o IRAP associado do DRAP de destino) na saída do decodificador, pois a distância temporal entre essas imagens levaria a uma reprodução de vídeo shacky/jittery quando reproduzido na taxa do vídeo original até que o vídeo seja reproduzido de maneira suave a partir do DRAP de destino.
[0121] Portanto, é desejável omitir a saída das imagens que precedem a imagem de DRAP. Esse aspecto da invenção apresenta meios para controlar o descodificador em conformidade.
[0122] Em uma modalidade, um meio externo para definir a variável PicOutputFlag de uma imagem de IRAP é disponibilizado para implantações para uso da seguinte forma: - Se algum meio externo não especificado neste Relatório Descritivo estiver disponível para definir a variável NoOutputBeforeDrapFlag para a imagem como um valor, NoOutputBeforeDrapFlag para a imagem será definido igual ao valor fornecido pelo meio externo. [...] - A variável PictureOutputFlag da imagem atual é derivada da seguinte forma: - Se sps_video_parameter_set_id for maior que 0 e a camada atual não for uma camada de saída (ou seja, nuh_layer_id não for igual a OutputLayerIdInOls[ TargetOlsIdx ][ i ] para qualquer valor de i no intervalo de 0 a NumOutputLayersInOls[TargetOlsIdx ] - 1, inclusive), ou uma das seguintes condições for verdadeira, PictureOutputFlag será definido como 0: - A imagem atual é uma imagem de RASL e NoOutputBeforeRecoveryFlag da imagem de IRAP associada é igual a 1. - A imagem atual é uma imagem GDR com NoOutputBeforeRecoveryFlag igual a 1 ou é uma imagem de recuperação de uma imagem GDR com NoOutputBeforeRecoveryFlag igual a 1. - A imagem atual é uma imagem de IRAP com NoOutputBeforeDrapFlag igual a 1. - De outro modo, PictureOutputFlag é definido como igual a ph_pic_output_flag. Em outra modalidade, o NoOutputBeforeDrapFlag é definido por meios externos apenas para a primeira imagem de IRAP em um CVS e definido como 0, caso contrário. - Se algum meio externo não especificado neste Relatório Descritivo estiver disponível para definir a variável NoOutputBeforeDrapFlag para a imagem como um valor, NoOutputBeforeDrapFlag para a primeira imagem no CVS é definido igual ao valor fornecido pelo meio externo. Caso contrário, NoOutputBeforeDrapFlag é definido como 0.
[0123] O sinalizador NoOutputBeforeDrapFlag mencionado acima também pode ser associado ao uso de tempos alternativos de HRD transmitidos no fluxo de bits para o caso de remoção de imagens entre a imagem de IRAP e a imagem de DRAP, por exemplo, o sinalizador UseAltCpbParamsFlag na especificação VVC.
[0124] Em uma modalidade alternativa, é uma restrição que as imagens IRAP que precedem diretamente as imagens de DRAP sem imagens não DRAP entre as mesmas tenham um valor de 0 no sinalizador de saída ph_pic_output_flag no cabeçalho da imagem. Nesse caso, sempre que um extrator ou reprodutor utiliza um DRAP para acesso aleatório, ou seja, retira do fluxo de bits imagens intermediárias entre IRAP e DRAP, é também necessário verificar ou ajustar se o respectivo marcador de saída está definido para 0 e a saída do IRAP é omitido.
[0125] Para que essa operação seja simples, o fluxo de bits original precisa ser preparado de forma correspondente. Mais concretamente, pps_output_flag_present_flag, que determina a presença do sinalizador ph_pic_output_flag no cabeçalho da imagem deve ser igual a 1 para que o cabeçalho da imagem possa ser facilmente alterado e não seja necessário alterar também os conjuntos de parâmetros. Ou seja:
[0126] É um requisito de conformidade de fluxo de bits que o valor de pps_output_flag_present_flag seja igual a 1 se o PPS for referido por uma imagem dentro de um CVSS AU que tenha DRAP AUs associados.
[0127] Além das opções listadas acima, em outra modalidade, é indicado em um conjunto de parâmetros PPS ou um SPS se o primeiro AU no fluxo de bits, ou seja, um CRA ou IDR que constitui um início de CLVS, deve ser emitido ou não após a decodificação. Assim, a integração do sistema é mais simples, pois apenas um conjunto de parâmetros precisa ser ajustado em vez de exigir que uma sintaxe comparativamente de baixo nível, como PHs, também seja alterada, por exemplo, ao analisar um arquivo no formato de arquivo ISOBMFF.
[0128] A seguir, é mostrado um exemplo: sps_pic_in_cvss_au_no_output_flag igual a 1 especifica que uma imagem em um CVSS AU referente ao SPS não é emitida. sps_pic_in_cvss_au_no_output_flag igual a 0 especifica que uma imagem em um CVSS AU referente ao SPS pode ou não ser emitida. É um requisito de conformidade de fluxo de bits que o valor de sps_pic_in_cvss_au_no_output_flag seja o mesmo para qualquer SPS referido por qualquer camada de saída em um OLS. Em 8.1.2 - A variável PictureOutputFlag da imagem atual é derivada da seguinte forma: - Se sps_video_parameter_set_id for maior que 0 e a camada atual não for uma camada de saída (ou seja, nuh_layer_id não for igual a OutputLayerIdInOls[ TargetOlsIdx ][ i ] para qualquer valor de i no intervalo de 0 a NumOutputLayersInOls[TargetOlsIdx ] - 1, inclusive), ou uma das seguintes condições for verdadeira, PictureOutputFlag será definido como 0: - A imagem atual é uma imagem de RASL e NoOutputBeforeRecoveryFlag da imagem de IRAP associada é igual a 1. - A imagem atual é uma imagem GDR com NoOutputBeforeRecoveryFlag igual a 1 ou é uma imagem de recuperação de uma imagem GDR com NoOutputBeforeRecoveryFlag igual a 1. - Caso contrário, se a AU atual for uma AU CVSS e sps_pic_in_cvss_au_no_output_flag igual a 1 PictureOutputFlag é definido como 0. - De outro modo, PictureOutputFlag é definido como igual a ph_pic_output_flag. NOTA - Em uma implantação, o decodificador pode gerar uma imagem que não pertence a uma camada de saída. Por exemplo, quando há apenas uma camada de saída enquanto em uma AU a imagem da camada de saída não está disponível, por exemplo, devido a uma perda ou mudança de camada, o decodificador pode definir PictureOutputFlag igual a 1 para a imagem que tem o valor mais alto de nuh_layer_id entre todas as imagens da AU disponíveis para o decodificador e tendo ph_pic_output_flag igual a 1, e definir PictureOutputFlag igual a 0 para todas as outras imagens da AU disponíveis para o decodificador.
[0129] Em outra modalidade, por exemplo, um requisito pode, por exemplo, ser definido como segue: É um requisito de conformidade de fluxo de bits que o valor de ph_pic_output_flag seja igual a 0 se a imagem pertencer a um IRAP AU e o IRAP AU estiver precedendo diretamente um DRAP AU.
[0130] A seguir, o segundo aspecto da invenção é descrito, agora em detalhes.
[0131] De acordo com o segundo aspecto da invenção, é fornecido um aparelho 200 para receber um ou mais fluxos de dados de vídeo de entrada. Cada um dentre o um ou mais fluxos de dados de vídeo de entrada tem um vídeo de entrada codificado no mesmo. O aparelho 200 é configurado para gerar um fluxo de dados de vídeo de saída do um ou mais fluxos de dados de vídeo de entrada, em que o fluxo de dados de vídeo de saída codifica um vídeo de saída, em que o aparelho é configurado para gerar o fluxo de dados de vídeo de saída de modo que o vídeo de saída seja o vídeo de entrada sendo codificado dentro de um dentre o um ou mais fluxos de dados de vídeo de entrada, ou de modo que o vídeo de saída dependa do vídeo de entrada de pelo menos um dentre o um ou mais fluxos de dados de vídeo de entrada. Além disso, o aparelho 200 é configurado para determinar um tempo de remoção de unidade de acesso de uma imagem atual de uma pluralidade de imagens do vídeo de saída de um armazenamento temporário de imagem convertida em código. O aparelho 200 é configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual do armazenamento temporário de imagem convertida em código.
[0132] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para descartar um grupo de uma ou mais imagens do vídeo de entrada de um primeiro fluxo de dados de vídeo do um ou mais fluxos de dados de vídeo de entrada para gerar o fluxo de dados de vídeo de saída. O aparelho 200 pode, por exemplo, ser configurado para determinar um tempo de remoção de unidade de acesso para pelo menos uma da pluralidade de imagens do vídeo de saída do armazenamento temporário de imagem convertida em código dependendo das informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[0133] Em uma modalidade, o primeiro vídeo recebido pelo aparelho 200 pode, por exemplo, ser um vídeo pré-processado que resulta de um vídeo original do qual um grupo de uma ou mais imagens foi descartado para gerar o vídeo pré-processado. O aparelho 200 pode, por exemplo, ser configurado para determinar um tempo de remoção de unidade de acesso para pelo menos uma da pluralidade de imagens do vídeo de saída do armazenamento temporário de imagem convertida em código dependendo das informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[0134] De acordo com uma modalidade, as informações de compensação de atraso de armazenamento temporário dependem de um número de imagens do vídeo de entrada que foram descartadas.
[0135] Em uma modalidade, o um ou mais fluxos de dados de vídeo de entrada são dois ou mais fluxos de dados de vídeo de entrada. O aparelho 200 pode, por exemplo, ser configurado para emendar o vídeo processado e o vídeo de entrada de um segundo fluxo de dados de vídeo dos dois ou mais fluxos de dados de vídeo de entrada para obter o vídeo de saída e pode, por exemplo, ser configurado para codificar a saída vídeo no fluxo de dados de vídeo de saída.
[0136] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo de uma localização da imagem atual dentro do vídeo de saída. Ou o aparelho 200 pode, por exemplo, ser configurado para determinar se deve ou não definir um valor de compensação de atraso de armazenamento temporário de imagem convertida em código das informações de compensação de atraso de armazenamento temporário de imagem convertida em código para 0 para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo da localização da imagem atual dentro do vídeo de saída.
[0137] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo de uma posição de uma imagem anterior não descartável que precede a imagem atual dentro do vídeo de saída.
[0138] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo ou não da imagem não descartável anterior que precede a imagem atual dentro do vídeo de saída pode, por exemplo, ser uma primeira imagem em um período de armazenamento temporário anterior.
[0139] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo de um sinalizador de concatenação, em que a imagem atual é uma primeira imagem do vídeo de entrada do segundo fluxo de dados de vídeo.
[0140] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo do tempo de remoção de uma imagem anterior.
[0141] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo das informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial.
[0142] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para atualizar as informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial dependendo de um tique do relógio para obter informações de atraso de remoção de armazenamento temporário de imagem convertida em código temporárias para determinar o tempo de remoção de unidade de acesso da imagem atual.
[0143] De acordo com uma modalidade, se o sinalizador de concatenação for definido para um primeiro valor, então o aparelho 200 é configurado para usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar um ou mais tempos de remoção. Se o sinalizador de concatenação for definido para um segundo valor diferente do primeiro valor, então o aparelho 200 é configurado para não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o um ou mais tempos de remoção.
[0144] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para sinalizar para um decodificador de vídeo 300, o uso ou não de informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual do armazenamento temporário de imagem convertida em código.
[0145] De acordo com uma modalidade, a imagem atual pode, por exemplo, estar localizada em um ponto de junção do vídeo de saída, em que dois vídeos de entrada foram unidos.
[0146] Além disso, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. O fluxo de dados de vídeo compreende informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[0147] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender um sinalizador de concatenação.
[0148] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial.
[0149] De acordo com uma modalidade, se o sinalizador de concatenação for definido para um primeiro valor (por exemplo, 0), então o sinalizador de concatenação indica que as informações de compensação de atraso de armazenamento temporário de imagem convertida em código precisam ser usadas para determinar um ou mais tempos de remoção (imagem ou unidade de acesso), por exemplo, quando se sabe que algumas imagens (por exemplo, imagens de RASL) foram descartadas. Se o sinalizador de concatenação for definido para um segundo valor diferente do primeiro valor (por exemplo, 1), o sinalizador de concatenação indica que a compensação indicada não é usada para determinar o um ou mais tempos de remoção (imagem ou unidade de acesso), por exemplo, independentemente de uma sinalização de compensação e, por exemplo, independentemente de as imagens de RASL terem sido descartadas. Se as fotos não forem descartadas, por exemplo, a compensação não deve ser usada.
[0150] Além disso, é fornecido um codificador de vídeo 100. O codificador de vídeo 100 é configurado para codificar um vídeo em um fluxo de dados de vídeo. O codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[0151] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender um sinalizador de concatenação.
[0152] Em uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[0153] Além disso, é fornecido um decodificador de vídeo 300 para receber um fluxo de dados de vídeo um vídeo armazenado no mesmo. O decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo. Além disso, o decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo de um tempo de remoção de unidade de acesso de uma imagem atual de uma pluralidade de imagens do vídeo de um armazenamento temporário de imagem convertida em código. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo de uma indicação que indica se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual do armazenamento temporário de imagem convertida em código.
[0154] De acordo com uma modalidade, o tempo de remoção de unidade de acesso para pelo menos uma da pluralidade de imagens do vídeo do armazenamento temporário de imagem convertida em código depende das informações de compensação de atraso de armazenamento temporário de imagem convertida em código.
[0155] Em uma modalidade, o decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo de usar ou não informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo de uma localização da imagem atual dentro do vídeo.
[0156] De acordo com uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo se um valor de compensação de atraso de armazenamento temporário de imagem convertida em código das informações de compensação de atraso de armazenamento temporário de imagem convertida em código pode, por exemplo, ser definido como 0.
[0157] Em uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo de uma posição de uma imagem anterior não descartável que precede a imagem atual no vídeo.
[0158] De acordo com uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo ou não da imagem não descartável anterior que precede a imagem atual dentro do vídeo pode, por exemplo, ser uma primeira imagem em um período de armazenamento temporário anterior.
[0159] Em uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para determinar se deve ou não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo de um sinalizador de concatenação, em que a imagem atual é uma primeira imagem do vídeo de entrada do segundo fluxo de dados de vídeo.
[0160] De acordo com uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo de um tempo de remoção de uma imagem anterior.
[0161] Em uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para determinar o tempo de remoção de unidade de acesso da imagem atual dependendo das informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial.
[0162] De acordo com uma modalidade, o decodificador de vídeo 300 pode, por exemplo, ser configurado para atualizar as informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial dependendo de um tique do relógio para obter informações de atraso de remoção de armazenamento temporário de imagem convertida em código temporárias para determinar o tempo de remoção de unidade de acesso da imagem atual.
[0163] De acordo com uma modalidade, se o sinalizador de concatenação for definido para um primeiro valor, então o decodificador de vídeo 300 é configurado para usar as informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar um ou mais tempos de remoção. Se o sinalizador de concatenação for definido para um segundo valor diferente do primeiro valor, então o decodificador de vídeo 300 é configurado para não usar informações de compensação de atraso de armazenamento temporário de imagem convertida em código para determinar o um ou mais tempos de remoção.
[0164] Ademais, é fornecido um sistema. O sistema compreende um aparelho 200 como descrito acima e um decodificador de vídeo 300 como descrito acima. O decodificador de vídeo 300 é configurado para receber o fluxo de dados de vídeo de saída do aparelho 200. Além disso, o decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo de saída do aparelho 200.
[0165] De acordo com uma modalidade, o sistema pode, por exemplo, compreender ainda um codificador de vídeo 100. O aparelho 200 pode, por exemplo, ser configurado para receber o fluxo de dados de vídeo do codificador de vídeo 100 como o fluxo de dados de vídeo de entrada.
[0166] Em particular, o segundo aspecto da invenção se refere a que prevNonDiscardable em caso de temporização alternativa pode (quando não for um início de BP) já incluir a compensação alternativa (CpbDelayOffset), então para a AU com concatenation_flag == 1, CpbDelayOffset deve ser temporariamente igual a zero.
[0167] Quando ocorre a junção de dois fluxos de bits, a derivação do tempo de remoção de uma AU do CPB é feita de forma diferente do que para fluxos de bits não emendados. No ponto de emenda, uma mensagem de período de armazenamento temporário SEI (mensagem BP SEI; SEI = informações de aprimoramento suplementar) compreende um sinalizador de concatenação que é igual a 1. Então o decodificador precisa verificar entre 2 valores e pegar o maior de ambos: • tempo de remoção anterior de Non Discardable Pic (prevNonDiscardablePic) mais um delta sinalizado na mensagem BP SEI (auCpbRemovalDelayDeltaMinus1 + 1), ou • tempo de remoção da foto anterior mais InitCpbRemovalDelay
[0168] No entanto, quando o Pic anterior com uma mensagem BP SEI era uma AU para a qual foram usados tempos alternativos (ou seja, uma segundas informações de tempo usada quando a imagem de RASL ou imagens até um DRAP foram descartadas) para derivar os tempos de remoção, uma compensação é usada (CpbDelayOffset) para calcular cada tempo de remoção que é calculado como um delta para a imagem anterior com um período de armazenamento temporário, ou seja, AuNominalRemovalTime[ firstPicInPrevBuffPeriod ] mais AuCpbRemovalDelayVal - CpbDelayOffset, conforme ilustrado na Figura 4.
[0169] A Figura 4 ilustra um fluxo de bits original (parte superior da Figura 4) e um fluxo de bits após a descarte de imagens (parte inferior da Figura 4): Uma compensação é incorporado em um cálculo do atraso de remoção após a eliminação de AUs (linhas 1, 2 e 3 no fluxo de bits original).
[0170] A compensação é adicionada uma vez que o tempo de remoção é calculado com o uso de um delta para o tempo de remoção da imagem referido como firstPicInPrevBuffPeriod, após o qual alguns AUs foram descartados e, portanto, um CpbDelayOffset é necessário para contabilizar (compensar) o descarte de AUs.
[0171] A Figura 5 ilustra a junção de dois fluxos de bits (em uma posição diferente), um primeiro fluxo de bits (na Figura 5 meio à esquerda) e um segundo fluxo de bits (na Figura 5, meio, à direita), depois que as imagens foram retiradas do primeiro fluxo de bits original (na Figura 5, meio, esquerda).
[0172] O exemplo para usar o tempo de remoção de Pic anterior como âncora em vez da imagem anterior não descartável é similar e também não exigiria o fator de correção “-3” (CpbDelayOffset).
[0173] No entanto, no caso de junção como ilustrado na Figura 5, observar que não é necessariamente o caso de as duas derivações usarem o tempo de remoção do AU associado a uma mensagem BP SEI (firstPicInPrevBuffPeriod). Conforme discutido, para o caso de junção, um delta adicionado ao prevNonDiscardablePic ou apenas ao Pic anterior. Isso significa que quando o prevNonDiscardablePic não é o firstPicInPrevBuffPeriod, o CpbDelayOffset não pode ser usado para derivar o tempo de remoção do CPB da AU atual, pois o tempo de remoção de prevNonDiscardablePic já leva em consideração o descarte de AU e nenhum AU é descartado entre prevNonDiscardablePic e o AU para o qual o tempo de remoção é calculado. Agora imagine que o tempo de remoção de Pic anterior é usado, como para o caso em que a AU atual (ou seja, o ponto de emenda com uma nova mensagem BP SEI) tem um InitialCpbRemovalDelay que força o tempo de remoção da AU atual a vir após a remoção desejada time, que teria alcançado um tempo de remoção equidistante (quando o prevNonDiscardablePic é usado). Nesse caso, o tempo de remoção do AU atual não pode ser menor que o tempo calculado usando o tempo de remoção de Pic anterior mais InitCpbRemovalDelay, pois isso pode levar a interrupções de armazenamento temporário (AUs não no armazenamento temporário antes de precisarem ser removidos). Portanto, como parte da invenção, para esse caso, o CpbDelayOffset não é utilizado para a computação ou considerado igual a 0.
[0174] Resumir a modalidade no presente documento é usar um CpbDelayOffset para o cálculo dos tempos de remoção de AU quando AUs RASL são descartados de um fluxo de bits ou AUs entre um IRAP e AUs DRAP são descartados dependendo de uma verificação. A verificação para determinar se CpbDelayOffset não é usado ou considerado igual a 0 sendo um dos seguintes: • prevNonDiscardablePic não é o firstPicInPrevBuffPeriod • O tempo de remoção da imagem anterior mais InitCpbRemovalDelay é usado para o cálculo da remoção da AU atual A implantação no relatório descritivo pode ser a seguinte: • Quando AU n é a primeira AU de um BP que não inicializa o HRD, aplica- se o seguinte: O tempo nominal de remoção da AU n do CPB é especificado por: if( !concatenationFlag ) { baseTime = AuNominalRemovalTime[ firstPicInPrevBuffPeriod ] tmpCpbRemovalDelay = AuCpbRemovalDelayVal tmpCpbDelayOffset = CpbDelayOffset } or { baseTime1 = AuNominalRemovalTime[ prevNonDiscardablePic ] tmpCpbRemovalDelay1 = (auCpbRemovalDelayDeltaMinus1 + 1) baseTime2 = AuNominalRemovalTime[ n - 1 ] tmpCpbRemovalDelay2 = (C.10) Ceil((InitCpbRemovalDelay[ Htid ][ ScIdx ] - 90000 + AuFinalArrivalTime[ n - 1 ] - AuNominalRemovalTime[ n - 1 ]) - ClockTick) if(baseTime1 + ClockTick * tmpCpbRemovalDelay1 < baseTime2 + ClockTick * tmpCpbRemovalDelay2) { baseTime = baseTime2 tmpCpbRemovalDelay = tmpCpbRemovalDelay2 tmpCpbDelayOffset = 0 } else { baseTime = baseTime1 tmpCpbRemovalDelay = tmpCpbRemovalDelay1 tmpCpbDelayOffset = ((prevNonDiscardablePic= =firstPicInPrevBuffPeriod)?CpbDelayOffset:0) } } AuNominalRemovalTime[ n ] = baseTime + (ClockTick * tmpCpbRemovalDelay - tmpCpbDelayOffset ) Alternativamente, em outra modalidade ilustrada na Figura 6, o CpbDelayOffset para o cálculo dos tempos de remoção de AU quando RAS AUs são descartados de um fluxo de bits ou AUs entre um IRAP e DRAP AUs são descartados dependendo de uma verificação diferente que compreende a verificação do concatenationFlag. Nesse caso, o delta no fluxo de bits quando concatenationFlag é definido como 1 precisa corresponder ao valor adequado, como se o CpbDelayOffset fosse contabilizado (como fica evidente ao comparar as Figura 5 e 6), pois para essa figura CpbDelayOffset não é aplicado ou considerado para seja 0. A implantação no relatório descritivo pode ser a seguinte: • Quando AU n é a primeira AU de um BP que não inicializa o HRD, aplica- se o seguinte: O tempo nominal de remoção da AU n do CPB é especificado por: if(!concatenationFlag) { baseTime = AuNominalRemovalTime[ firstPicInPrevBuffPeriod ] tmpCpbRemovalDelay = AuCpbRemovalDelayVal tmpCpbDelayOffset = CpbDelayOffset } or { baseTime1 = AuNominalRemovalTime[ prevNonDiscardablePic ] tmpCpbRemovalDelay1 = (auCpbRemovalDelayDeltaMinus1 + 1) baseTime2 = AuNominalRemovalTime[ n - 1 ] tmpCpbRemovalDelay2 = (C.10) Ceil((InitCpbRemovalDelay[ Htid ][ ScIdx ] - 90000 + AuFinalArrivalTime[ n - 1 ] - AuNominalRemovalTime[ n - 1 ]) - ClockTick) if(baseTime1 + ClockTick * tmpCpbRemovalDelay1 < baseTime2 + ClockTick * tmpCpbRemovalDelay2) { baseTime = baseTime2 tmpCpbRemovalDelay = tmpCpbRemovalDelay2 } else { baseTime = baseTime1 tmpCpbRemovalDelay = tmpCpbRemovalDelay1 } tmpCpbDelayOffset = 0 } AuNominalRemovalTime[ n ] = baseTime + (ClockTick * tmpCpbRemovalDelay - tmpCpbDelayOffset
[0175] A seguir, o terceiro aspecto da invenção é descrito, agora em detalhes.
[0176] De acordo com o terceiro aspecto da invenção, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. Além disso, o fluxo de dados de vídeo compreende um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo de dois ou mais períodos de armazenamento temporário.
[0177] De acordo com uma modalidade, o atraso de remoção de armazenamento temporário de imagem convertida em código inicial pode, por exemplo, indicar um tempo que precisa passar para uma primeira unidade de acesso de uma imagem do fluxo de dados de vídeo que inicializa um decodificador de vídeo 300 antes de enviar a primeira unidade de acesso para o decodificador de vídeo 300.
[0178] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma única indicação que pode, por exemplo, indicar se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode, por exemplo, ser definido para ser constante ao longo dos dois ou mais períodos de armazenamento temporário.
[0179] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender um sinalizador de concatenação como a única indicação, que pode, por exemplo, indicar se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode ou não, por exemplo, ser definida como constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for igual a um primeiro valor, a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for diferente do primeiro valor, o sinalizador de concatenação não define se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário.
[0180] Em uma modalidade, se a indicação única não indicar que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, o fluxo de dados de vídeo pode, por exemplo, compreender informações continuamente atualizadas sobre as informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial e informações continuamente atualizadas sobre as informações de compensação de remoção do armazenamento temporário de imagem convertida em código inicial.
[0181] De acordo com uma modalidade, se o fluxo de dados de vídeo compreende as informações que indicam que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, pode ser definido, por exemplo, que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante a partir de uma posição atual dentro do fluxo de dados de vídeo.
[0182] Além disso, é fornecido um codificador de vídeo 100. O codificador de vídeo 100 é configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo inclua informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante em dois ou mais períodos de armazenamento temporário.
[0183] De acordo com uma modalidade, o atraso de remoção de armazenamento temporário de imagem convertida em código inicial pode, por exemplo, indicar um tempo que precisa passar para uma primeira unidade de acesso de uma imagem do fluxo de dados de vídeo que inicializa um decodificador de vídeo 300 antes de enviar a primeira unidade de acesso para o decodificador de vídeo 300.
[0184] Em uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender uma única indicação que pode, por exemplo, indicar se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode ou não, por exemplo, ser definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário.
[0185] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender um sinalizador de concatenação como a única indicação, que pode, por exemplo, indicar se o a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode, por exemplo, ser definido para ser constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for igual a um primeiro valor, a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for diferente do primeiro valor, o sinalizador de concatenação não define se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário.
[0186] Em uma modalidade, se a indicação única não indicar que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender informações continuamente atualizadas nas informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial e informações continuamente atualizadas nas informações de compensação de remoção do armazenamento temporário de imagem convertida em código inicial.
[0187] De acordo com uma modalidade, se o fluxo de dados de vídeo compreende a informação que pode, por exemplo, indicar que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante a partir de uma posição atual dentro do fluxo de dados de vídeo.
[0188] Além disso, é fornecido um aparelho 200 para receber dois fluxos de dados de vídeo de entrada, sendo um primeiro fluxo de dados de vídeo de entrada e um segundo fluxo de dados de vídeo de entrada. Cada um dos dois fluxos de dados de vídeo de entrada tem um vídeo de entrada codificado no mesmo. O aparelho 200 é configurado para gerar um fluxo de dados de vídeo de saída dos dois fluxos de dados de vídeo de entrada, em que o fluxo de dados de vídeo de saída codifica um vídeo de saída, em que o aparelho é configurado para gerar um fluxo de dados de vídeo de saída concatenando o primeiro fluxo de dados de vídeo de entrada e o segundo fluxo de dados de vídeo de entrada. Além disso, o aparelho 200 é configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o aparelho 200 é configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o aparelho 200 é configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída inclua informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante em dois ou mais períodos de armazenamento temporário.
[0189] De acordo com uma modalidade, o atraso de remoção de armazenamento temporário de imagem convertida em código inicial pode, por exemplo, indicar um tempo que precisa passar para uma primeira unidade de acesso de uma imagem do fluxo de dados de vídeo de saída que inicializa um decodificador de vídeo 300 antes de enviar a primeira unidade de acesso para o decodificador de vídeo 300.
[0190] Em uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída possa, por exemplo, compreender uma única indicação que pode, por exemplo, indicar se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode ou não, por exemplo, ser definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário.
[0191] De acordo com uma modalidade, o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída possa, por exemplo, compreender um sinalizador de concatenação como a única indicação, que pode, por exemplo, indicar se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode ou não, por exemplo, ser definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for igual a um primeiro valor, a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for diferente do primeiro valor, o sinalizador de concatenação não define se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário.
[0192] Em uma modalidade, se a única indicação não indicar que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, o aparelho 200 é configurado para gerar o fluxo de dados de vídeo de saída de modo que o fluxo de dados de vídeo de saída compreenda informações continuamente atualizadas nas informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial e informações continuamente atualizadas nas informações de compensação de remoção de armazenamento temporário de imagem convertida em código inicial.
[0193] De acordo com uma modalidade, se o fluxo de dados de vídeo compreende as informações que indicam que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante a partir de uma posição atual dentro do fluxo de dados de vídeo.
[0194] Além disso, é fornecido um decodificador de vídeo 300 para receber um fluxo de dados de vídeo um vídeo armazenado no mesmo. O decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo. Além disso, o fluxo de dados de vídeo compreende um atraso de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende uma compensação de remoção de armazenamento temporário de imagem convertida em código inicial. Além disso, o fluxo de dados de vídeo compreende informações que indicam se uma soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo de dois ou mais períodos de armazenamento temporário. Além disso, o decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo das informações que indicam se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário.
[0195] De acordo com uma modalidade, o atraso de remoção de armazenamento temporário de imagem convertida em código inicial pode, por exemplo, indicar um tempo que precisa passar para uma primeira unidade de acesso de uma imagem do fluxo de dados de vídeo de saída que inicializa o decodificador de vídeo 300 antes de enviar a primeira unidade de acesso para o decodificador de vídeo 300.
[0196] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma única indicação que pode, por exemplo, indicar se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode, por exemplo, ser definido para ser constante ao longo dos dois ou mais períodos de armazenamento temporário. O decodificador de vídeo 300 pode, por exemplo, ser configurado para decodificar o vídeo dependendo da indicação única.
[0197] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender um sinalizador de concatenação como a única indicação, que pode, por exemplo, indicar se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial pode ou não, por exemplo, ser definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for igual a um primeiro valor, a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário. Se o sinalizador de concatenação for diferente do primeiro valor, o sinalizador de concatenação não define se a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é constante ao longo dos dois ou mais períodos de armazenamento temporário. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo do sinalizador de concatenação.
[0198] Em uma modalidade, se a indicação única não indicar que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, o fluxo de dados de vídeo compreende informações continuamente atualizadas sobre as informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial e informações continuamente atualizadas sobre as informações de compensação de remoção do armazenamento temporário de imagem convertida em código inicial. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo das informações continuamente atualizadas nas informações de atraso de remoção de armazenamento temporário de imagem convertida em código inicial e nas informações continuamente atualizadas nas informações de compensação de remoção de armazenamento temporário de imagem convertida em código inicial.
[0199] De acordo com uma modalidade, se o fluxo de dados de vídeo compreende as informações que indicam que a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante ao longo dos dois ou mais períodos de armazenamento temporário, a soma do atraso de remoção de armazenamento temporário de imagem convertida em código inicial e da compensação de remoção do armazenamento temporário de imagem convertida em código inicial é definida como sendo constante a partir de uma posição atual dentro do fluxo de dados de vídeo.
[0200] Ademais, é fornecido um sistema. O sistema compreende um aparelho 200 como descrito acima e um decodificador de vídeo 300 como descrito acima. O decodificador de vídeo 300 é configurado para receber o fluxo de dados de vídeo de saída do aparelho 200. Além disso, o decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo de saída do aparelho 200.
[0201] De acordo com uma modalidade, o sistema pode, por exemplo, compreender ainda um codificador de vídeo 100. O aparelho 200 de acordo com uma das reivindicações 221 a 226 pode, por exemplo, ser configurado para receber o fluxo de dados de vídeo do codificador de vídeo 100 de acordo com uma das reivindicações 211 a 216 como o fluxo de dados de vídeo de entrada.
[0202] Em particular, o terceiro aspecto da invenção se refere à junção, a um Atraso de Remoção de Cpb Inicial e a uma Compensação de Remoção de Cpb Inicial.
[0203] Atualmente a especificação indica que a soma do Atraso de Remoção de Cpb Inicial e Compensação de Remoção de Cpb Inicial são constantes dentro de um CVS. A mesma restrição é expressa para os tempos alternativos. O Atraso de Remoção de Cpb Inicial indica o tempo que precisa passar para o primeiro AU no fluxo de bits que inicializa o decodificador antes de enviar o primeiro AU para decodificação. A Compensação de Remoção de Cpb Inicial é uma propriedade do fluxo de bits que significa que o primeiro tempo de chegada das AUs no decodificador não é necessariamente equidistante em relação ao tempo 0 em que a primeira AU chega ao decodificador. Isso ajuda a determinar quando o primeiro bit de uma AU pode chegar mais cedo ao decodificador.
[0204] A restrição atual na especificação preliminar do VVC indica que a soma desses dois valores precisa ser constante dentro de um CVS: Em todo o CVS, para cada par de valores de i e j, a soma de nal_initial_cpb_removal_delay[ i ][ j ] e nal_initial_cpb_removal_offset[ i ][ j ] deve ser constante, e a soma de nal_initial_alt_cpb_removal_delay[ i ][ j ] e nal_initial_alt_cpb_removal_offset[ i ][ j ] deve ser constante.
[0205] O problema aparece ao editar ou juntar fluxo de bits para formar um novo fluxo de bits conjunto. É desejável também poder indicar se essa propriedade é cumprida através do limite CVS para o fluxo de bits, pois ter um valor diferente da soma pode levar a interrupções ou estouros de armazenamento temporário.
[0206] Portanto, em uma modalidade, uma indicação é transportada no fluxo de bits de que a partir de um determinado ponto no fluxo de bits (por exemplo, ponto de emenda), a restrição de valor em relação à soma constante de InitCpbRemovalDelay e InitCpbRemovalDelayOffset (e as contrapartes alternativas) é redefinida e as somas antes e após o ponto no fluxo de bits pode ser diferente. A menos que essa indicação esteja presente no fluxo de bits, a soma permanece constante.
[0207] Por exemplo: Quando concatenationFlag é igual a 0, é uma restrição de conformidade de fluxo de bits que a soma de InitCpbRemovalDelay e InitCpbRemovalDelayOffset seja constante nos períodos de armazenamento temporário.
[0208] Caso contrário, a soma de InitCpbRemovalDelay e InitCpbRemovalDelayOffset não precisa ser constante nos períodos de armazenamento temporário. Os valores de InitCpbRemovalDelay e InitCpbRemovalDelayOffset são atualizados para levar em conta os tempos de chegada.
[0209] Em uma modalidade, se vários fluxos de bits são emendados, em cada ponto de junção um sinalizador de concatenação pode, por exemplo, definir se a soma permanece constante ou não.
[0210] A seguir, o quarto aspecto da invenção é descrito, agora em detalhes.
[0211] De acordo com o quarto aspecto da invenção, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. Além disso, o fluxo de dados de vídeo compreende uma indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) indicando se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de um vídeo codificado a sequência de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo é definida para se aplicar a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica ou não para todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[0212] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem.
[0213] Em uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar.
[0214] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código dentre a uma ou mais sequências de vídeo convertidas em código, a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreende nenhuma outra mensagem de informações de aprimoramento suplementar.
[0215] Em uma modalidade, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de cada uma dentre a uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo, a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreende nenhuma outra mensagem de informações de aprimoramento suplementar.
[0216] Além disso, pode ser fornecido um codificador de vídeo 100, por exemplo. O codificador de vídeo 100 é configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) indicando se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo é definida para aplicar a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica ou não para todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[0217] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar que é diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem.
[0218] Em uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar.
[0219] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código dentre a uma ou mais sequências de vídeo convertidas em código, a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar.
[0220] Em uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de cada uma dentre a uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo, a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar.
[0221] Além disso, é fornecido um aparelho 200 para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho 200 é configurado para gerar um fluxo de dados de vídeo processado a partir do fluxo de dados de vídeo de entrada. Além disso, o aparelho 200 é configurado para gerar o fluxo de dados de vídeo processado de modo que o fluxo de dados de vídeo processado compreenda uma indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) indicando se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo processado é definida para aplicar a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica ou não para todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso.
[0222] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o aparelho 200 é configurado para gerar o fluxo de dados de vídeo processado de modo que a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar que é diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem.
[0223] Em uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o aparelho 200 é configurado para gerar o fluxo de dados de vídeo processado de modo que a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar.
[0224] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo processado de modo que para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código dentre a uma ou mais sequências de vídeo convertidas em código, a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar.
[0225] Em uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então o aparelho 200 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo processado de modo que para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de cada uma dentre a uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo processado, a dita unidade de camada de abstração de rede não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar que é diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreenda nenhuma outra mensagem de informações de aprimoramento suplementar.
[0226] Além disso, é fornecido um decodificador de vídeo 300 para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo. O fluxo de dados de vídeo compreende uma indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) indicando se uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável de uma unidade de camada de abstração de rede de uma unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código de uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo são definidas para aplicar a todos os conjuntos de camadas de saída de uma pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um primeiro valor, então é definido que a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica a todos os conjuntos de camada de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. Se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver um valor diferente do primeiro valor, então a indicação não define se a mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável da dita unidade de camada de abstração de rede da dita unidade de acesso se aplica ou não para todos os conjuntos de camadas de saída da pluralidade de conjuntos de camadas de saída da dita unidade de acesso. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo da dita indicação.
[0227] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem.
[0228] Em uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo da dita indicação.
[0229] De acordo com uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento suplementar de temporização de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de uma sequência de vídeo convertida em código dentre a uma ou mais sequências de vídeo convertidas em código, a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreende nenhuma outra mensagem de informações de aprimoramento suplementar.
[0230] Em uma modalidade, por exemplo, se a indicação (por exemplo, um general_same_pic_timing_in_all_ols_flag) tiver o primeiro valor, então para cada unidade de camada de abstração de rede, que compreende uma mensagem de informações de aprimoramento complementar de tempo de imagem aninhada não escalável, de cada unidade de acesso da pluralidade de unidades de acesso de cada uma dentre a uma ou mais sequências de vídeo convertidas em código do fluxo de dados de vídeo, a dita unidade de camada de abstração de rede não compreende nenhuma outra mensagem de informações de aprimoramento suplementar que seja diferente de uma mensagem de informações de aprimoramento suplementar de temporização de imagem ou não compreende nenhuma outra mensagem de informações de aprimoramento suplementar.
[0231] Ademais, é fornecido um sistema. O sistema compreende um aparelho 200 como descrito acima e um decodificador de vídeo 300 como descrito acima. O decodificador de vídeo 300 é configurado para receber o fluxo de dados de vídeo processado do aparelho 200. Além disso, o decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo de saída do aparelho 200.
[0232] De acordo com uma modalidade, o sistema pode, por exemplo, compreender ainda um codificador de vídeo 100. O aparelho 200 pode, por exemplo, ser configurado para receber o fluxo de dados de vídeo do codificador de vídeo 100 como o fluxo de dados de vídeo de entrada.
[0233] Em particular, o quarto aspecto da invenção se refere a restringir o PT SEI a não ser emparelhado com outros HRD SEIs quando general_same_pic_timing_in_all_ols_flag igual a 1
[0234] A especificação de rascunho do VVC compreende um sinalizador chamado general_same_pic_timing_in_all_ols_flag na estrutura geral do parâmetro HRD que tem a seguinte semântica: general_same_pic_timing_in_all_ols_flag igual a 1 especifica que a mensagem PT SEI aninhada não escalável em cada AU se aplica à AU para qualquer OLS no fluxo de bits e nenhuma mensagem PT SEI aninhada escalável está presente. general_same_pic_timing_in_all_ols_flag igual a 0 especifica que a mensagem PT SEI aninhada não escalável em cada AU pode ou não se aplicar à AU para qualquer OLS no fluxo de bits e mensagens PT SEI aninhadas escaláveis podem estar presentes.
[0235] Em geral, quando um subfluxo de bits de OLS é extraído de um fluxo de bits original (compreende dados OLS mais dados não OLS), as informações de temporização/armazenamento temporário relacionadas ao HRD para o OLS de destino na forma de mensagens de Informações SEI de Período de Armazenamento Temporário, Temporização de Imagem e Unidade de Decodificação que são encapsuladas nas chamadas mensagens SEI de aninhamento escalável são desencapsuladas. Essas mensagens SEI desencapsuladas são subsequentemente usadas para substituir as informações HRD SEI aninhadas não escaláveis no fluxo de bits original. No entanto, em muitos cenários, o conteúdo de algumas mensagens, por exemplo, a mensagem SEI de Temporização de Imagem, pode permanecer o mesmo quando uma camada é descartada, ou seja, de um OLS para um subconjunto dele. Portanto, general_same_pic_timing_in_all_ols_flag fornece um atalho para que apenas as mensagens BP e DUI SEI sejam substituídas, mas o PT SEI no fluxo de bits original pode permanecer em vigor, ou seja, ele simplesmente não é removido durante a extração quando general_same_pic_timing_in_all_ols_flag for igual a 1. Portanto, nenhuma mensagem PT SEI de substituição precisa ser encapsulada na mensagem SEI de aninhamento escalável que transporta as mensagens BP e DUI SEI de substituição e nenhuma sobrecarga de taxa de bits é introduzida para essa informação.
[0236] No entanto, no estado da arte, a mensagem PT SEI pode ser transportada dentro de uma unidade SEI NAL (unidade NAL = unidade de camada de abstração de rede) em conjunto com outras mensagens HRD SEI, ou seja, mensagens BP, PT e SEI podem todos sejam encapsulados dentro da mesma unidade Prefixo SEI NAL. Assim, um extrator teria que fazer uma inspeção mais profunda de tal unidade SEI NAL para entender as mensagens compreendidas e quando apenas uma das mensagens compreendidas (PT) deve ser mantida durante o procedimento de extração, seria necessário reescrever as unidades mostrar SEI NAL (ou seja, remova as mensagens não PT SEI). A fim de evitar este processamento de baixo nível incômodo e permitir que um extrator opere na porção não definida de parâmetros de um fluxo de bits inteiramente no nível da unidade NAL, é parte da invenção que uma restrição de fluxo de bits não permita tal construção de fluxo de bits. Em uma modalidade, a restrição é formulada da seguinte forma: general_same_pic_timing_in_all_ols_flag igual a 1 especifica que a mensagem PT SEI aninhada não escalável em cada AU se aplica à AU para qualquer OLS no fluxo de bits e nenhuma mensagem PT SEI aninhada escalável está presente. general_same_pic_timing_in_all_ols_flag igual a 0 especifica que a mensagem PT SEI aninhada não escalável em cada AU pode ou não se aplicar à AU para qualquer OLS no fluxo de bits e mensagens PT SEI aninhadas escaláveis podem estar presentes. Quando general_same_pic_timing_in_all_ols_flag for igual a 1, é uma restrição de conformidade do fluxo de bits que todas as mensagens SEI gerais no fluxo de bits contendo uma mensagem SEI com payload_type igual a 1 (Temporização de Imagem) não devem conter mensagens SEI com payload_type diferente de 1.
[0237] A seguir, o quinto aspecto da invenção é descrito, agora em detalhes.
[0238] De acordo com o quinto aspecto da invenção, é fornecido um fluxo de dados de vídeo. O fluxo de dados de vídeo tem um vídeo codificado no mesmo. Além disso, o fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
[0239] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo.
[0240] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma pluralidade de unidades de acesso, em que cada unidade de acesso da pluralidade de unidades de acesso pode, por exemplo, ser atribuída a uma de uma pluralidade de imagens do vídeo. A porção do fluxo de dados de vídeo pode, por exemplo, ser uma unidade de acesso da pluralidade de unidades de acesso do fluxo de dados de vídeo. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso.
[0241] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da unidade de acesso.
[0242] Em uma modalidade, a porção do fluxo de dados de vídeo pode, por exemplo, ser uma sequência de vídeo convertida em código do fluxo de dados de vídeo. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código.
[0243] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da sequência de vídeo convertida em código.
[0244] Em uma modalidade, cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo.
[0245] De acordo com uma modalidade, cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo.
[0246] Em uma modalidade, o fluxo de dados de vídeo ou a porção do fluxo de dados de vídeo pode, por exemplo, compreender pelo menos uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário, em que a dita mensagem de informações de aprimoramento suplementar de período de armazenamento temporário define o tamanho para cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe.
[0247] De acordo com uma modalidade, a dita mensagem de informações de aprimoramento suplementar do período de armazenamento temporário compreende, para definir o tamanho para cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe, pelo menos um de um elemento bp_cpb_initial_removal_delay_length_minus1, um elemento bp_cpb_removal_delay_length_minus1, um elemento bp_dpb_output_delay_length_minus1, um elemento bp_du_cpb_removal_delay_increment_length_minus1, um elemento bp_dpb_output_delay_du_length_minus1.
[0248] Em uma modalidade, para cada unidade de acesso de uma pluralidade de unidades de acesso do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado escalável, a dita unidade de acesso pode, por exemplo, também compreender uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas não escaláveis.
[0249] De acordo com uma modalidade, para cada unidade de acesso de camada única de uma pluralidade de unidades de acesso de camada única do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado escalável, a dita unidade de acesso de camada única pode, por exemplo, também incluem uma mensagem de informações de aprimoramento suplementar do período de armazenamento temporário aninhadas não escaláveis.
[0250] Além disso, é fornecido um codificador de vídeo 100. O codificador de vídeo 100 é configurado para codificar um vídeo em um fluxo de dados de vídeo. Além disso, o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. Além disso, o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendam uma pluralidade de elementos de sintaxe. Além disso, o codificador de vídeo 100 é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
[0251] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendam a pluralidade de elementos de sintaxe. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe possa, por exemplo, ser definido para ter o mesmo tamanho em cada um dos mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo.
[0252] Em uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender uma pluralidade de unidades de acesso, em que cada unidade de acesso da pluralidade de unidades de acesso pode, por exemplo, ser atribuída a uma de uma pluralidade de imagens do vídeo. A porção do fluxo de dados de vídeo pode, por exemplo, ser uma unidade de acesso da pluralidade de unidades de acesso do fluxo de dados de vídeo. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe possa, por exemplo, ser definido para ter o mesmo tamanho em cada um dos mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso.
[0253] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendam a pluralidade de elementos de sintaxe. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe possa, por exemplo, ser definido para ter o mesmo tamanho em cada um dos mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da unidade de acesso.
[0254] Em uma modalidade, a porção do fluxo de dados de vídeo pode, por exemplo, ser uma sequência de vídeo convertida em código do fluxo de dados de vídeo. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe possa, por exemplo, ser definido para ter o mesmo tamanho em cada um dos mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código.
[0255] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo possa, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendam a pluralidade de elementos de sintaxe. O codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe possa, por exemplo, ser definido para ter o mesmo tamanho em cada um dos mensagens de informações de melhoramento suplementares aninhadas escaláveis da sequência de vídeo convertida em código e em cada uma das mensagens de informações de melhoramento suplementares aninhadas não escaláveis da sequência de vídeo convertida em código.
[0256] Em uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe possa, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo.
[0257] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe possa, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de melhoramento suplementares aninhadas escaláveis do fluxo de dados de vídeo e em cada uma das mensagens de informações de melhoramento suplementares aninhadas não escaláveis do fluxo de dados de vídeo.
[0258] Em uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo ou a porção do fluxo de dados de vídeo possa, por exemplo, compreender pelo menos uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário, em que a dita mensagem de informações de aprimoramento suplementar do período de armazenamento temporário define o tamanho para cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe.
[0259] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que a dita mensagem de informações de aprimoramento suplementar do período de armazenamento temporário compreenda, para definir o tamanho para cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe, pelo menos um dos um elemento bp_cpb_initial_removal_delay_length_minus1, um elemento bp_cpb_removal_delay_length_minus1, um elemento bp_dpb_output_delay_length_minus1, um elemento bp_du_cpb_removal_delay_increment_length_minus1, um elemento bp_dpb_output_delay_du_length_minus1.
[0260] Em uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que para cada unidade de acesso de uma pluralidade de unidades de acesso do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado escalável, a dita unidade de acesso possa, por exemplo, também compreender uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas não escaláveis.
[0261] De acordo com uma modalidade, o codificador de vídeo 100 pode, por exemplo, ser configurado para gerar o fluxo de dados de vídeo de modo que para cada unidade de acesso de camada única de uma pluralidade de unidades de acesso de camada única do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado, a dita unidade de acesso de camada única possa, por exemplo, também compreender uma mensagem de informações de aprimoramento complementar de período de armazenamento temporário aninhado não escalável.
[0262] Além disso, é fornecido um aparelho 200 para receber um fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo de entrada tem um vídeo codificado no mesmo. O aparelho 200 é configurado para gerar um fluxo de dados de vídeo de saída do fluxo de dados de vídeo de entrada. O fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo. O aparelho 200 é configurado para processar a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis.
[0263] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo. O aparelho 200 é configurado para processar a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis.
[0264] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma pluralidade de unidades de acesso, em que cada unidade de acesso da pluralidade de unidades de acesso pode, por exemplo, ser atribuída a uma de uma pluralidade de imagens do vídeo. A porção do fluxo de dados de vídeo pode, por exemplo, ser uma unidade de acesso da pluralidade de unidades de acesso do fluxo de dados de vídeo. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso.
[0265] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da unidade de acesso. O aparelho 200 pode, por exemplo, ser configurado para processar a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis.
[0266] Em uma modalidade, a porção do fluxo de dados de vídeo pode, por exemplo, ser uma sequência de vídeo convertida em código do fluxo de dados de vídeo. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código.
[0267] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da sequência de vídeo convertida em código. O aparelho 200 pode, por exemplo, ser configurado para processar a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis.
[0268] Em uma modalidade, cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo.
[0269] De acordo com uma modalidade, cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo. O aparelho 200 pode, por exemplo, ser configurado para processar a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis.
[0270] Em uma modalidade, o fluxo de dados de vídeo ou a porção do fluxo de dados de vídeo pode, por exemplo, compreender pelo menos uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário, em que a dita mensagem de informações de aprimoramento suplementar de período de armazenamento temporário define o tamanho do um ou mais da pluralidade de elementos de sintaxe. O aparelho 200 pode, por exemplo, ser configurado para processar a pelo menos uma mensagem de informações de aprimoramento suplementar do período de armazenamento temporário.
[0271] De acordo com uma modalidade, a dita mensagem de informações de aprimoramento suplementar do período de armazenamento temporário compreende, para definir o tamanho do um ou mais da pluralidade de elementos de sintaxe, pelo menos um dentre um elemento bp_cpb_initial_removal_delay_length_minus1, um elemento bp_cpb_removal_delay_length_minus1, um elemento bp_dpb_output_delay_length_minus1, um elemento bp_du_cpb_removal_delay_increment_length_minus1, um elemento bp_dpb_output_delay_du_length_minus1.
[0272] Em uma modalidade, para cada unidade de acesso de uma pluralidade de unidades de acesso do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado escalável, a dita unidade de acesso pode, por exemplo, também compreender uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas não escaláveis. O aparelho 200 pode, por exemplo, ser configurado para processar as mensagens de informações de aprimoramento suplementar aninhadas escaláveis e as mensagens de informações de aprimoramento suplementar aninhadas não escaláveis.
[0273] De acordo com uma modalidade, para cada unidade de acesso de camada única de uma pluralidade de unidades de acesso de camada única do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado escalável, a dita unidade de acesso de camada única pode, por exemplo, também incluem uma mensagem de informações de aprimoramento suplementar do período de armazenamento temporário aninhadas não escaláveis. O aparelho 200 pode, por exemplo, ser configurado para processar as mensagens de informações de aprimoramento suplementar aninhadas escaláveis e as mensagens de informações de aprimoramento suplementar aninhadas não escaláveis.
[0274] Além disso, é fornecido um decodificador de vídeo 300 para receber um fluxo de dados de vídeo com um vídeo armazenado no mesmo. O decodificador de vídeo 300 é configurado para decodificar o vídeo do fluxo de dados de vídeo. O fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe. É definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo. O decodificador de vídeo 300 é configurado para decodificar o vídeo dependendo do um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe.
[0275] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou da porção do vídeo fluxo de dados e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo.
[0276] Em uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma pluralidade de unidades de acesso, em que cada unidade de acesso da pluralidade de unidades de acesso pode, por exemplo, ser atribuída a uma de uma pluralidade de imagens do vídeo. A porção do fluxo de dados de vídeo pode, por exemplo, ser uma unidade de acesso da pluralidade de unidades de acesso do fluxo de dados de vídeo. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso.
[0277] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da unidade de acesso.
[0278] Em uma modalidade, a porção do fluxo de dados de vídeo pode, por exemplo, ser uma sequência de vídeo convertida em código do fluxo de dados de vídeo. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código.
[0279] De acordo com uma modalidade, o fluxo de dados de vídeo pode, por exemplo, compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis. A uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe. cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da sequência de vídeo convertida em código.
[0280] Em uma modalidade, cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo.
[0281] De acordo com uma modalidade, cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe pode, por exemplo, ser definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo.
[0282] Em uma modalidade, o fluxo de dados de vídeo ou a porção do fluxo de dados de vídeo pode, por exemplo, compreender pelo menos uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário, em que a dita mensagem de informações de aprimoramento suplementar de período de armazenamento temporário define o tamanho para cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe.
[0283] De acordo com uma modalidade, a dita mensagem de informações de aprimoramento suplementar do período de armazenamento temporário compreende, para definir o tamanho para cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe, pelo menos um de um elemento bp_cpb_initial_removal_delay_length_minus1, um elemento bp_cpb_removal_delay_length_minus1, um elemento bp_dpb_output_delay_length_minus1, um elemento bp_du_cpb_removal_delay_increment_length_minus1, um elemento bp_dpb_output_delay_du_length_minus1.
[0284] Em uma modalidade, para cada unidade de acesso de uma pluralidade de unidades de acesso do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado escalável, a dita unidade de acesso pode, por exemplo, também compreender uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas não escaláveis.
[0285] De acordo com uma modalidade, para cada unidade de acesso de camada única de uma pluralidade de unidades de acesso de camada única do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhado escalável, a dita unidade de acesso de camada única pode, por exemplo, também incluem uma mensagem de informações de aprimoramento suplementar do período de armazenamento temporário aninhadas não escaláveis.
[0286] Ademais, é fornecido um sistema. O sistema compreende um aparelho 200 como descrito acima e um decodificador de vídeo 300 como descrito acima. O decodificador de vídeo 300 é configurado para receber o fluxo de dados de vídeo de saída do aparelho 200. Além disso, o decodificador de vídeo 300 configurado para decodificar o vídeo do fluxo de dados de vídeo de saída do aparelho 200.
[0287] De acordo com uma modalidade, o sistema pode, por exemplo, compreender ainda um codificador de vídeo 100. O aparelho 200 pode, por exemplo, ser configurado para receber o fluxo de dados de vídeo do codificador de vídeo 100 como o fluxo de dados de vídeo de entrada.
[0288] Em particular, o quinto aspecto da invenção se refere a restringir todas as mensagens BP SEIs em um fluxo de bits para indicar o mesmo comprimento de certos elementos de sintaxe convertidos em código de comprimento variável e não serem aninhados escaláveis sem uma variante aninhada não escalável na mesma AU.
[0289] A mensagem SEI de período de armazenamento temporário, a mensagem SEI de temporização de imagem e a mensagem SEI de informação de unidade de decodificação são usadas para fornecer informações de tempo precisas para as unidades NAL dentro de um fluxo de bits para controlar sua transição através dos armazenamentos temporários de um decodificador em testes de conformidade. Alguns elementos de sintaxe na mensagem PT e DUI SEI são convertidos em código com comprimento variável e o comprimento desses elementos de sintaxe é transmitido na mensagem BP SEI. Essa dependência de análise é uma compensação de design. Pelo custo de não permitir a análise de mensagens PT e DUI SEI sem analisar primeiro a mensagem BP SEI associada, o benefício de economizar o envio desses elementos de sintaxe de comprimento em cada mensagem PT ou DUI SEI é alcançado. Como a mensagem BP SEI (uma vez por vários quadros) é enviada com muito menos frequência do que as mensagens PT (uma vez por cada quadro) ou DUI SEI (várias vezes por quadro), uma economia de bits é alcançada por meio dessa compensação de design comum semelhante a como as estruturas de cabeçalho de imagem podem reduzir o custo de bits dos cabeçalhos de fatias quando muitas fatias são usadas.
[0290] Mais especificamente, a mensagem BP SEI na especificação de rascunho atual do VVC inclui os elementos de sintaxe que são a raiz das dependências de análise: • bp_cpb_initial_removal_delay_length_minus1 que especifica o comprimento convertido em código de atrasos de remoção de CPB inicial de tempo alternativo de AUs na mensagem PT SEI e, • bp_cpb_removal_delay_length_minus1 que especifica o comprimento convertido em código de atrasos de remoção de CPB e compensações de atraso de remoção de AUs na mensagem PT SEI e, • bp_dpb_output_delay_length_minus1 que especifica o comprimento convertido em código dos atrasos de saída DPB de AUs na mensagem PT SEI e, • bp_du_cpb_removal_delay_increment_length_minus1 que especifica o comprimento convertido em código dos atrasos de remoção de CPB individuais e comuns de DUs na mensagem PT SEI e os atrasos de remoção de CPB de DUs na mensagem DUI SEI e, • bp_dpb_output_delay_du_length_minus1 que especifica os atrasos de saída DPB de comprimento convertido em código de AUs na mensagem PT SEI e na mensagem DU SEI.
[0291] No entanto, surge um problema quando um fluxo de bits compreende vários OLSs. Enquanto as mensagens BP/PT/DUI SEI que se aplicam ao OLS que representa o fluxo de bits são transportadas de forma literal no fluxo de bits, o acompanhamento da dependência de análise é trivial, outros pares de mensagens BP/PT/DUI SEI que correspondem a os OLSs que representam (sub)fluxos de bits devem ser transportados em uma forma encapsulada nas chamadas mensagens SEI de aninhamento escalável. Ainda assim, as dependências de análise se aplicam e, dado que o número de OLS pode ser muito alto, é um fardo considerável para um decodificador ou analisador acompanhar a mensagem BP SEI encapsulada correta por causa da dependência de análise ao processar o PT encapsulado e mensagens DUI SEI. Especialmente, uma vez que essas mensagens também podem ser encapsuladas em diferentes mensagens SEI de aninhamento escaláveis.
[0292] Portanto, como parte da invenção, em uma modalidade, uma restrição de fluxo de bits é estabelecida de que o valor convertido em código dos respectivos elementos de sintaxe que descrevem os comprimentos deve ser o mesmo em todas as mensagens BP SEI aninhadas escaláveis e não escaláveis em uma AU. Portanto, um decodificador ou parser só precisa armazenar os respectivos valores de comprimento ao analisar a primeira mensagem BP SEI não escalável na AU e pode resolver as dependências de análise de todas as mensagens PT e DUI SEI nos períodos de armazenamento temporário que começam na respectiva AU, encapsulado em mensagens SEI de aninhamento escalável ou não. O seguinte é um exemplo do respectivo texto de especificação:
[0293] É um requisito de conformidade de fluxo de bits que todas as mensagens SEI de período de armazenamento temporário aninhadas escaláveis e não escaláveis em uma AU tenham o mesmo valor respectivo dos elementos de sintaxe bp_cpb_initial_removal_delay_length_minus1, bp_cpb_removal_delay_length_minus1, bp_dpb_output_delay_length_minus1, bp_du_cpb_removal_delay_increment_length_minus1, bp_dpb_output_delay_du_length_minus1.
[0294] Em outra modalidade, a restrição é expressa apenas para mensagens BP SEI aninhadas escaláveis que estão no período de armazenamento temporário que a mensagem BP SEI aninhada não escalável atual determina da seguinte forma: É um requisito de conformidade de fluxo de bits que todas as mensagens SEI de período de armazenamento temporário aninhadas escaláveis em um período de armazenamento temporário tenham o mesmo valor respectivo dos elementos de sintaxe bp_cpb_initial_removal_delay_length_minus1, bp_cpb_removal_delay_length_minus1, bp_dpb_output_delay_length_minus1, bp_du_cpb_removal_delay_increment_length_minus1, bp_dpb_output_delay_du_length_minus1 então as mensagens SEI do período de armazenamento temporário aninhadas não escaláveis do período de armazenamento temporário.
[0295] Aqui, os BPs do fluxo de bits definem o escopo das restrições para os BPs aninhados escaláveis de um BP aninhado escalável para o próximo BP aninhado escalável.
[0296] Em outra modalidade, a restrição é expressa para todas as AUs do fluxo de bits, por exemplo, da seguinte forma: É um requisito de conformidade de fluxo de bits que todas as mensagens SEI de período de armazenamento temporário aninhadas escaláveis e não escaláveis no fluxo de bits tenham o mesmo valor respectivo dos elementos de sintaxe bp_cpb_initial_removal_delay_length_minus1, bp_cpb_removal_delay_length_minus1, bp_dpb_output_delay_length_minus1, bp_du_cpb_removal_delay_increment_length_minus1, bp_dpb_output_delay_du_length_minus1.
[0297] Em outra modalidade, a restrição é expressa apenas para as AUs em um CVS, de modo que um codificador inteligente ainda pode facilitar a diferença na duração das BPs no fluxo de bits para a conversão em código dos elementos de sintaxe de atraso e compensação relevantes. O texto da especificação seria o seguinte: É um requisito de conformidade de fluxo de bits que todas as mensagens SEI de período de armazenamento temporário aninhadas escaláveis e não escaláveis em uma CVS tenham o mesmo valor respectivo dos elementos de sintaxe bp_cpb_initial_removal_delay_length_minus1, bp_cpb_removal_delay_length_minus1, bp_dpb_output_delay_length_minus1, bp_du_cpb_removal_delay_increment_length_minus1, bp_dpb_output_delay_du_length_minus1.
[0298] Aqui, o escopo da restrição é o CVS.
[0299] Mais especificamente, o período de armazenamento temporário ou mensagem BP SEI define um chamado período de armazenamento temporário no qual os tempos de imagens individuais usam a imagem no início de um período de armazenamento temporário como âncora. O início de um período de armazenamento temporário é fundamental, por exemplo, para testar a conformidade da funcionalidade de acesso aleatório em um fluxo de bits.
[0300] A Figura 7 ilustra dois conjuntos de HRD SEIs, SEIs aninhados escaláveis e SEIs aninhados não escaláveis, em um fluxo de bits de duas camadas de acordo com uma modalidade.
[0301] Em um cenário de várias camadas, como mostrado na Figura 7, por exemplo, os SEIs HRD aninhados escaláveis fornecem uma configuração de período de armazenamento temporário diferente (através do BP no POC 0 e POC 3) do que os SEIs aninhados não escaláveis (somente POC 0) para ser usado quando apenas a camada L0 for extraída e reproduzida do POC3 em diante.
[0302] No entanto, isso também vem com o aumento do custo de complexidade de rastrear as dependências de análise entre o PT e as mensagens BP individuais, conforme explicado acima, o que é indesejável. Portanto, como parte da invenção, em uma modalidade, é proibido ter mensagem BP SEI aninhada escalável em AUs sem uma mensagem BP SEI aninhada não escalável da seguinte forma: É um requisito de conformidade de fluxo de bits que nenhuma mensagem BP SEI aninhada escalável esteja em uma AU que não contenha uma mensagem BP SEI aninhada não escalável.
[0303] Como o cenário de uso acima é limitado a fluxos de bits de várias camadas, em outra modalidade, a restrição relacionada é limitada a fluxos de bits de camada única da seguinte forma: É um requisito de conformidade de fluxo de bits que nenhuma mensagem BP SEI aninhada escalável esteja em uma AU de camada única que não contenha uma mensagem BP SEI aninhada não escalável.
[0304] Embora alguns aspectos tenham sido descritos no contexto de um aparelho, é evidente que esses aspectos também representam uma descrição do método correspondente, em que um bloco ou um dispositivo corresponde a uma etapa do método ou a um recurso de uma etapa do método. De modo análogo, os aspectos descritos no contexto de uma etapa do método também representam uma descrição de um bloco ou item ou recurso correspondente de um aparelho correspondente. Algumas ou todas as etapas do método podem ser executadas por (ou com o uso de) um aparelho de hardware, como, por exemplo, um microprocessador, um computador programável ou um circuito eletrônico. Em algumas modalidades, uma ou mais das etapas mais importantes do método podem ser executadas por esse aparelho.
[0305] Dependendo de certas exigências de implantação, as modalidades da invenção podem ser implantadas em hardware ou em software ou pelo menos parcialmente em hardware ou pelo menos parcialmente em software. A implantação pode ser desempenhada com a utilização de uma mídia de armazenamento digital, por exemplo, um disquete, um DVD, um Blu-Ray, um CD, uma ROM, uma PROM, uma EPROM, uma EEPROM ou uma memória Flash, que tem sinais de controle eletronicamente legíveis armazenados no mesmo, que cooperam (ou têm a capacidade de cooperar) com um sistema de computador programável de modo que o respectivo método seja realizado. Portanto, o meio de armazenamento digital pode ser legível por computador.
[0306] Algumas modalidades de acordo com a invenção compreendem uma portadora de dados que tem sinais de controle eletronicamente legíveis, que tem capacidade para cooperar com um sistema de computador programável, de modo que um dentre os métodos descritos no presente documento seja executado.
[0307] Em geral, as modalidades da presente invenção podem ser implementadas como um produto de programa de computador com um código de programa, em que o código de programa é operacional para realizar um dos métodos quando o produto de programa de computador for executado em um computador. O código de programa pode, por exemplo, ser armazenado em uma portadora legível por máquina.
[0308] Outras modalidades compreendem o programa de computador para desempenho de um dentre os métodos descritos no presente documento, armazenado em uma portadora legível por máquina.
[0309] Em outras palavras, uma modalidade do método inventivo é, portanto, um programa de computador que tem um código de programa para desempenho de um dos métodos descritos no presente documento, quando o programa de computador é executado em um computador.
[0310] Uma modalidade adicional dos métodos inventivos é, portanto, uma portadora de dados (ou uma mídia de armazenamento digital, ou uma mídia legível por computador) que compreende, registrado no mesmo, o programa de computador para desempenho de um dentre os métodos descritos no presente documento. A portadora de dados, a mídia de armazenamento digital ou a mídia gravada são tipicamente tangíveis e/ou não transitórias.
[0311] Uma modalidade adicional do método inventivo é, portanto, um fluxo de dados ou uma sequência de sinais que representa o programa de computador para realizar um dentre os métodos descritos no presente documento. O fluxo de dados ou a sequência de sinais podem ser configurados, por exemplo, para serem transferidos por meio de uma conexão de comunicação de dados, por exemplo, por meio da internet.
[0312] Uma modalidade adicional compreende meios de processamento, por exemplo, um computador ou um dispositivo de lógica programável, configurados ou adaptados para realizar um dentre os métodos descritos no presente documento.
[0313] Uma modalidade adicional compreende o um computador que tem instalado no mesmo o programa de computador para realizar um dos métodos descritos no presente documento.
[0314] Uma modalidade adicional de acordo com a invenção compreende o um aparelho e um sistema configurados para transferir (por exemplo, eletronicamente ou opticamente) um programa de computador para realizar um dos métodos descritos no presente documento para um receptor. O receptor pode, por exemplo, ser um computador, um dispositivo móvel, um dispositivo de memória ou semelhantes. O aparelho ou sistema pode compreender, por exemplo, um servidor de arquivos para transferir o programa de computador para o receptor.
[0315] Em algumas modalidades, um dispositivo de lógica programável (por exemplo, uma matriz de portas programável em campo) pode ser usado para realizar algumas ou todas as funcionalidades dos métodos descritos no presente documento. Em algumas modalidades, um arranjo de porta programável de campo pode cooperar com um microprocessador a fim de realizar um dos métodos descritos no presente documento. Em geral, os métodos são realizados preferencialmente por meio de qualquer aparelho de hardware.
[0316] O aparelho descrito no presente documento pode ser implantado com o uso de um aparelho de hardware, ou com o uso de um computador ou com o uso de uma combinação de um aparelho de hardware e um computador.
[0317] Os métodos descritos no presente documento podem ser realizados com a utilização de um aparelho de hardware, ou com a utilização de um computador, ou com a utilização de uma combinação de um aparelho de hardware e um computador.
[0318] As modalidades descritas acima são meramente ilustrativas para os princípios da presente invenção. Entende-se que as modificações e as variações das disposições e os detalhes descritos no presente documento serão evidentes para outras pessoas versadas na técnica. Portanto, pretende-se que as mesmas sejam limitadas apenas pelo escopo das reivindicações da patente iminentes e não pelos detalhes específicos apresentados a título de descrição e explicação das modalidades no presente documento. REFERÊNCIAS: [1] ISO/IEC, ITU-T. High efficiency video coding. ITU-T Recommendation H.265 | ISO/IEC 23008 10 (HEVC), edição 1, 2013; edição 2, 2014.

Claims (33)

1. Decodificador de vídeo (300) para receber um fluxo de dados de vídeo que tem um vídeo armazenado no mesmo, em que o decodificador de vídeo (300) é caracterizado por ser configurado para decodificar o vídeo do fluxo de dados de vídeo, em que o fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo. em que o decodificador de vídeo (300) é configurado para decodificar o vídeo dependendo do um ou mais elementos de sintaxe dentre a pluralidade de elementos de sintaxe.
2. Decodificador de vídeo (300), de acordo com a reivindicação 1, caracterizado por o fluxo de dados de vídeo ou a porção do fluxo de dados de vídeo compreender pelo menos uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário, em que a dita mensagem de informações de aprimoramento suplementar de período de armazenamento temporário define o tamanho para cada elemento de sintaxe dentre o um ou mais elementos de sintaxe dentre a pluralidade de elementos de sintaxe.
3. Decodificador de vídeo (300), de acordo com a reivindicação 2, caracterizado por a mensagem de informações de aprimoramento suplementar de período de armazenamento temporário compreender, para definir o tamanho de cada elemento de sintaxe dentre o um ou mais elementos de sintaxe dentre a pluralidade de elementos de sintaxe, pelo menos um dentre um elemento bp_cpb_initial_removal_delay_length_minus1 um elemento bp_cpb_removal_delay_length_minus1 element um elemento bp_dpb_output_delay_length_minus1 element um elemento bp_du_cpb_removal_delay_increment_length_minus1 um elemento bp_dpb_output_delay_du_length_minus1
4. Decodificador de vídeo (300), de acordo com qualquer uma das reivindicações 1 a 3, caracterizado por, para cada unidade de acesso dentre uma pluralidade de unidades de acesso do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhada escalável, a dita unidade de acesso também compreender uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário não escalável.
5. Decodificador de vídeo (300), de acordo com a reivindicação 2 ou 3, caracterizado por, para cada unidade de acesso de camada única dentre uma pluralidade de unidades de acesso de camada única do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de tamponamento aninhadas não escaláveis, a dita unidade de acesso de camada única também compreender uma mensagem de informações de aprimoramento suplementar de período de tamponamento aninhadas não escaláveis
6. Decodificador de vídeo (300), de acordo com qualquer uma das reivindicações 1 a 5, em que o fluxo de dados de vídeo é caracterizado por compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo.
7. Decodificador de vídeo (300), de acordo com a reivindicação 4, em que o fluxo de dados de vídeo é caracterizado por compreender uma pluralidade de unidades de acesso, em que cada unidade de acesso da pluralidade de unidades de acesso é atribuída a uma de uma pluralidade de imagens do vídeo, em que a porção do fluxo de dados de vídeo é uma unidade de acesso da pluralidade de unidades de acesso do fluxo de dados de vídeo, e em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso.
8. Decodificador de vídeo (300), de acordo com a reivindicação 7, em que o fluxo de dados de vídeo é caracterizado por compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da unidade de acesso.
9. Decodificador de vídeo (300), de acordo com qualquer uma das reivindicações 1 a 5, caracterizado por a porção do fluxo de dados de vídeo ser uma sequência de vídeo convertida em código do fluxo de dados de vídeo, e em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código.
10. Decodificador de vídeo (300), de acordo com a reivindicação 9, em que o fluxo de dados de vídeo é caracterizado por compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da sequência de vídeo convertida em código.
11. Codificador de vídeo (100), em que o codificador de vídeo (100) é caracterizado por ser configurado para codificar um vídeo em um fluxo de dados de vídeo, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendam uma pluralidade de elementos de sintaxe, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
12. Codificador de vídeo (100), de acordo com a reivindicação 11, sendo que o codificador de vídeo (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo ou a porção do fluxo de dados de vídeo compreenda pelo menos uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário, em que a dita mensagem de informações de aprimoramento suplementar do período de armazenamento temporário define o tamanho para cada elemento de sintaxe de um ou mais elementos de sintaxe dentre pluralidade de elementos de sintaxe.
13. Codificador de vídeo (100), de acordo com a reivindicação 12, sendo o que o codificador (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que a dita mensagem de informações de aprimoramento suplementar do período de armazenamento temporário compreenda, para definir o tamanho de cada elemento de sintaxe de um ou mais elementos de sintaxe dentre pluralidade de elementos de sintaxe, pelo menos um dentre um elemento bp_cpb_initial_removal_delay_length_minus1, um elemento bp_cpb_removal_delay_length_minus1 um elemento bp_dpb_output_delay_length_minus1 um elemento bp_du_cpb_removal_delay_increment_length_minus1 um elemento bp_dpb_output_delay_du_length_minus1.
14. Codificador de vídeo (100), de acordo com qualquer uma das reivindicações 11 a 13, sendo que o codificador de vídeo (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que, para cada unidade de acesso dentre uma pluralidade de unidades de acesso do fluxo de dados de vídeo que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas escaláveis, a dita unidade de acesso também compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas não escalável.
15. Codificador de vídeo (100), de acordo com a reivindicação 12 ou 13, sendo que o codificador de vídeo (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que, para cada unidade de acesso de camada única dentre uma pluralidade de unidades de acesso de camada única do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas escaláveis, a dita unidade de acesso de camada única também compreenda uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas não escaláveis.
16. Codificador de vídeo (100), de acordo com qualquer uma das reivindicações 11 a 15, em que o codificador de vídeo (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendam a pluralidade de elementos de sintaxe, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das informações de aprimoramento suplementares aninhadas escaláveis mensagens do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo.
17. Codificador de vídeo (100), de acordo com a reivindicação 14, em que o codificador de vídeo (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma pluralidade de unidades de acesso, em que cada unidade de acesso da pluralidade de unidades de acesso é atribuída a uma de uma pluralidade de imagens do vídeo, em que a porção do fluxo de dados de vídeo é uma unidade de acesso da pluralidade de unidades de acesso do fluxo de dados de vídeo, e em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das informações de aprimoramento suplementares aninhadas escaláveis mensagens da unidade de acesso.
18. Codificador de vídeo (100), de acordo com a reivindicação 17, em que o codificador de vídeo (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendam a pluralidade de elementos de sintaxe, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das informações de aprimoramento suplementares aninhadas escaláveis mensagens da unidade de acesso e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da unidade de acesso.
19. Codificador de vídeo (100), de acordo com qualquer uma das reivindicações 11 a 15, caracterizado por a porção do fluxo de dados de vídeo ser uma sequência de vídeo convertida em código do fluxo de dados de vídeo, e em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das informações de aprimoramento suplementares aninhadas escaláveis mensagens da sequência de vídeo convertida em código.
20. Codificador de vídeo (100), de acordo com a reivindicação 19, em que o codificador de vídeo (100) é caracterizado por ser configurado para gerar o fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendam a pluralidade de elementos de sintaxe, em que o codificador de vídeo (100) é configurado para gerar o fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem o mesmo tamanho em cada uma das informações de aprimoramento suplementares aninhadas escaláveis mensagens da sequência de vídeo convertida em código e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da sequência de vídeo convertida em código.
21. Fluxo de dados de vídeo, sendo que o fluxo de dados de vídeo é caracterizado por ter um vídeo codificado no mesmo, em que o fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
22. Fluxo de dados de vídeo, de acordo com a reivindicação 21, sendo que o fluxo de dados de vídeo, ou a porção do fluxo de dados de vídeo, é caracterizado por compreender pelo menos uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário, em que a dita mensagem de informações de aprimoramento suplementar de período de armazenamento temporário define o tamanho para cada elemento de sintaxe do um ou mais elementos de sintaxe dentre a pluralidade de elementos de sintaxe.
23. Fluxo de dados de vídeo, de acordo com a reivindicação 22, caracterizado por a mensagem de informações de aprimoramento suplementar de período de armazenamento temporário compreender, para definir o tamanho para cada elemento de sintaxe do um ou mais elementos de sintaxe entre a pluralidade de elementos de sintaxe, pelo menos um dentre um elemento bp_cpb_initial_removal_delay_length_minus1, um elemento bp_cpb_removal_delay_length_minus1, um elemento bp_dpb_output_delay_length_minus1, um elemento bp_du_cpb_removal_delay_increment_length_minus1, um elemento bp_dpb_output_delay_du_length_minus1.
24. Fluxo de dados de vídeo, de acordo com qualquer uma das reivindicações 21 a 23, caracterizado por, para cada unidade de acesso dentre uma pluralidade de unidades de acesso do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar aninhadas escaláveis, a dita unidade também compreender uma mensagem de informações de aprimoramento suplementar aninhadas escaláveis.
25. Fluxo de dados de vídeo, de acordo com a reivindicação 22 ou 23, caracterizado por, para cada unidade de acesso de camada única dentre uma pluralidade de unidades de acesso de camada única do fluxo de dados de vídeo, que compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas escaláveis, a dita unidade de acesso de camada única também compreende uma mensagem de informações de aprimoramento suplementar de período de armazenamento temporário aninhadas não escaláveis.
26. Fluxo de dados de vídeo, de acordo com qualquer uma das reivindicações 21 a 25, sendo que o fluxo de dados de vídeo é caracterizado por compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis do fluxo de dados de vídeo ou da porção do fluxo de dados de vídeo.
27. Fluxo de dados de vídeo, de acordo com a reivindicação 24, sendo que o fluxo de dados de vídeo é caracterizado por compreender uma pluralidade de unidades de acesso, em que cada unidade de acesso da pluralidade de unidades de acesso é atribuída a uma dentre uma pluralidade de imagens do vídeo, em que a porção do fluxo de dados de vídeo é uma unidade de acesso da pluralidade de unidades de acesso do fluxo de dados de vídeo, e em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso.
28. Fluxo de dados de vídeo, de acordo com a reivindicação 27, sendo que o fluxo de dados de vídeo é caracterizado por compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da unidade de acesso e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da unidade de acesso.
29. Fluxo de dados de vídeo, de acordo com qualquer uma das reivindicações 21 a 25, caracterizado por a porção do fluxo de dados de vídeo ser uma sequência de vídeo convertida em código do fluxo de dados de vídeo, e em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código.
30. Fluxo de dados de vídeo, de acordo com a reivindicação 29, sendo que o fluxo de dados de vídeo é caracterizado por compreender uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis e a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas não escaláveis compreendem a pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter o mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis da sequência de vídeo convertida em código e em cada uma das mensagens de informações de aprimoramento suplementar aninhadas não escaláveis da sequência de vídeo convertida em código.
31. Método para receber um fluxo de dados de vídeo que tem um vídeo armazenado no mesmo, sendo que o método é caracterizado por decodificar o vídeo a partir do fluxo de dados de vídeo, em que o fluxo de dados de vídeo compreende uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis, em que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendem uma pluralidade de elementos de sintaxe, em que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe é definido para ter um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo, em que a decodificação do vídeo é conduzida dependendo do um ou mais elementos de sintaxe dentre a pluralidade de elementos de sintaxe.
32. Método para codificar um vídeo em um fluxo de dados de vídeo, em que o método é caracterizado por compreender a geração do fluxo de dados de vídeo de modo que o fluxo de dados de vídeo compreenda uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis, em que o método compreende a geração do fluxo de dados de vídeo de modo que a uma ou mais mensagens de informações de aprimoramento suplementar aninhadas escaláveis compreendam uma pluralidade de elementos de sintaxe, em que o método compreende a geração do fluxo de dados de vídeo de modo que seja definido que cada elemento de sintaxe dentre o um ou mais elementos de sintaxe da pluralidade de elementos de sintaxe tem um mesmo tamanho em cada uma das mensagens de informações de aprimoramento suplementar aninhadas escaláveis do fluxo de dados de vídeo ou de uma porção do fluxo de dados de vídeo.
33. Programa de computador caracterizado por ser para implantar o método, conforme definido em qualquer uma das reivindicações 31 ou 32, quando executado em um computador ou processador de sinal.
BR122023021002-6A 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo BR122023021002A2 (pt)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
EP20176178 2020-05-22
EP20176206 2020-05-22
EP20176178.0 2020-05-22
EP20176206.9 2020-05-22
PCT/EP2021/063587 WO2021234132A1 (en) 2020-05-22 2021-05-21 Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts
BR112022023315A BR112022023315A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo

Publications (1)

Publication Number Publication Date
BR122023021002A2 true BR122023021002A2 (pt) 2024-02-27

Family

ID=76059896

Family Applications (5)

Application Number Title Priority Date Filing Date
BR122023021003-4A BR122023021003A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122023020999-0A BR122023020999A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122023021002-6A BR122023021002A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122023021005-0A BR122023021005A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR112022023315A BR112022023315A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR122023021003-4A BR122023021003A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122023020999-0A BR122023020999A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR122023021005-0A BR122023021005A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR112022023315A BR112022023315A2 (pt) 2020-05-22 2021-05-21 Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo

Country Status (20)

Country Link
US (5) US20240022735A1 (pt)
EP (1) EP4154539A1 (pt)
JP (3) JP2023526955A (pt)
KR (2) KR20230019103A (pt)
CN (2) CN117061758B (pt)
AU (5) AU2021277524B2 (pt)
BR (5) BR122023021003A2 (pt)
CA (1) CA3183280A1 (pt)
CL (7) CL2022003252A1 (pt)
CO (1) CO2022017126A2 (pt)
CR (4) CR20230152A (pt)
DO (4) DOP2022000257A (pt)
EC (3) ECSP22089307A (pt)
IL (3) IL304023A (pt)
MX (16) MX2022014465A (pt)
PE (4) PE20230678A1 (pt)
SA (1) SA522441415B1 (pt)
TW (1) TWI801883B (pt)
WO (1) WO2021234132A1 (pt)
ZA (1) ZA202212623B (pt)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021236895A1 (en) 2020-05-21 2021-11-25 Bytedance Inc. Constraints on reference picture information
JP2023526661A (ja) 2020-05-22 2023-06-22 バイトダンス インコーポレイテッド 適合出力サブビットストリームの生成技術
CN115668949A (zh) * 2020-05-26 2023-01-31 字节跳动有限公司 编解码视频中的帧间层参考图片的标识
WO2021252543A1 (en) * 2020-06-09 2021-12-16 Bytedance Inc. Picture timing information signaling in coded video
WO2021252533A1 (en) * 2020-06-09 2021-12-16 Bytedance Inc. Sub-bitstream extraction of multi-layer video bitstreams
WO2024020050A1 (en) * 2022-07-18 2024-01-25 Bytedance Inc. Drap and edrap in the isobmff

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2406254C2 (ru) 2006-03-29 2010-12-10 Квэлкомм Инкорпорейтед Видеообработка с масштабируемостью
US8699583B2 (en) 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
US8594202B2 (en) * 2006-07-21 2013-11-26 Vidyo, Inc. Systems and methods for signaling and performing temporal level switching in scalable video coding
CN102984544A (zh) * 2007-01-08 2013-03-20 汤姆森特许公司 用于视频流拼接的方法及装置
KR20100030648A (ko) 2007-06-26 2010-03-18 노키아 코포레이션 시간 레이어 스위칭 포인트들을 표시하는 시스템 및 방법
US8542492B2 (en) 2009-12-10 2013-09-24 Richard Anthony Dunn, JR. Scalable up and down nesting integrated electronic enclosures with form factors including asteroids and/or dumbbells and/or approximated tessellation(s)/tiling(s) or combinations thereof with thermal management, wiring, sliding fit, manual and/or automated full range vertical to horizontal positioning, access and structural systems for individual modules and intra-and inter-planar stacks, columns, rows, arrays and associated infrastructures
US20120294366A1 (en) * 2011-05-17 2012-11-22 Avi Eliyahu Video pre-encoding analyzing method for multiple bit rate encoding system
US9565431B2 (en) * 2012-04-04 2017-02-07 Qualcomm Incorporated Low-delay video buffering in video coding
KR101678321B1 (ko) 2012-07-02 2016-11-21 노키아 테크놀로지스 오와이 비디오 코딩을 위한 방법 및 장치
US9154785B2 (en) 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
US9521393B2 (en) 2013-01-07 2016-12-13 Qualcomm Incorporated Non-nested SEI messages in video coding
US10003815B2 (en) * 2013-06-03 2018-06-19 Qualcomm Incorporated Hypothetical reference decoder model and conformance for cross-layer random access skipped pictures
US20150016547A1 (en) 2013-07-15 2015-01-15 Sony Corporation Layer based hrd buffer management for scalable hevc
WO2015053157A1 (ja) * 2013-10-11 2015-04-16 ソニー株式会社 送信装置、送信方法および受信装置
US20150103895A1 (en) * 2013-10-13 2015-04-16 Sharp Laboratories Of America, Inc. Electronic devices for signaling multiple initial buffering parameters
US10284858B2 (en) 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
WO2015056182A2 (en) 2013-10-15 2015-04-23 Nokia Technologies Oy Video encoding and decoding
US9894370B2 (en) * 2014-03-24 2018-02-13 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
EP3158752B1 (en) * 2014-06-18 2021-08-04 Telefonaktiebolaget LM Ericsson (publ) Dependent random access point pictures
US10432951B2 (en) 2014-06-24 2019-10-01 Qualcomm Incorporated Conformance and inoperability improvements in multi-layer video coding
US11418812B2 (en) * 2015-02-11 2022-08-16 Qualcomm Incorporated Placement of parameter sets and sync samples in video coding
US10129558B2 (en) 2015-09-21 2018-11-13 Qualcomm Incorporated Supplement enhancement information (SEI) messages for high dynamic range and wide color gamut video coding
CN118827977A (zh) * 2018-12-20 2024-10-22 瑞典爱立信有限公司 恢复点的规范指示
AU2020352900A1 (en) 2019-09-24 2022-04-14 Huawei Technologies Co., Ltd. Scalable Nesting SEI Messages For OLSs
BR112022005448A2 (pt) 2019-09-24 2022-06-21 Huawei Tech Co Ltd Métodos implementados por codificador, e decodificador, dispositivos de codificação de vídeo, e de produto de computador
MX2022003552A (es) 2019-09-24 2022-06-02 Huawei Tech Co Ltd Información de unidad de temporización y decodificación de imagen para escalabilidad temporal.
CN114788281A (zh) 2019-12-20 2022-07-22 弗劳恩霍夫应用研究促进协会 用于hrd时序修复的视频数据流、视频编码器、装置和方法以及可扩展及可合并位流的进一步添加
US11356681B2 (en) 2019-12-27 2022-06-07 Tencent America LLC Coded video sub-bitstream extraction
US11451789B2 (en) 2020-05-20 2022-09-20 Sharp Kabushiki Kaisha Systems and methods for signaling buffering period information in video coding

Also Published As

Publication number Publication date
MX2022014464A (es) 2022-12-13
CR20220589A (es) 2023-04-26
CR20230153A (es) 2023-05-16
ECSP22089427A (es) 2023-01-31
BR112022023315A2 (pt) 2022-12-20
IL308302A (en) 2024-01-01
BR122023021005A2 (pt) 2024-02-27
BR122023021003A2 (pt) 2024-02-27
EP4154539A1 (en) 2023-03-29
PE20231246A1 (es) 2023-08-21
DOP2022000260A (es) 2023-02-28
MX2024000633A (es) 2024-02-06
MX2022014471A (es) 2022-12-13
JP2023526955A (ja) 2023-06-26
CN117061758B (zh) 2024-06-04
MX2024000632A (es) 2024-02-06
US20230092331A1 (en) 2023-03-23
AU2021277524B2 (en) 2023-04-13
DOP2022000257A (es) 2023-02-28
CL2024000852A1 (es) 2024-09-23
AU2023200765A1 (en) 2023-03-09
SA522441415B1 (ar) 2024-06-06
PE20230678A1 (es) 2023-04-21
TWI801883B (zh) 2023-05-11
US20230345022A1 (en) 2023-10-26
TW202335504A (zh) 2023-09-01
ECSP22089390A (es) 2023-01-31
ZA202212623B (en) 2024-09-25
MX2024000622A (es) 2024-02-02
MX2024000623A (es) 2024-02-02
MX2024000621A (es) 2024-02-02
US20240022735A1 (en) 2024-01-18
AU2023200757A1 (en) 2023-03-09
CL2024000857A1 (es) 2024-09-23
AU2023200764A1 (en) 2023-03-09
CN115668942A (zh) 2023-01-31
PE20230675A1 (es) 2023-04-21
MX2024000629A (es) 2024-02-06
CL2022003256A1 (es) 2023-02-03
IL298260A (en) 2023-01-01
TW202145789A (zh) 2021-12-01
CL2022003252A1 (es) 2023-02-03
US11863770B2 (en) 2024-01-02
US20230065580A1 (en) 2023-03-02
MX2024000626A (es) 2024-02-02
DOP2022000261A (es) 2023-02-28
CL2023001840A1 (es) 2023-12-15
ECSP22089307A (es) 2023-01-31
KR20230019103A (ko) 2023-02-07
KR102717190B1 (ko) 2024-10-15
MX2024000631A (es) 2024-02-06
CR20230152A (es) 2023-05-15
MX2024000628A (es) 2024-02-02
AU2023203089A1 (en) 2023-08-03
IL304023A (en) 2023-08-01
BR122023020999A2 (pt) 2024-02-27
MX2022014460A (es) 2022-12-08
MX2022014465A (es) 2023-08-14
JP2023126808A (ja) 2023-09-12
MX2024000624A (es) 2024-02-02
JP2023126807A (ja) 2023-09-12
PE20231334A1 (es) 2023-08-28
US20230043130A1 (en) 2023-02-09
DOP2022000258A (es) 2023-02-28
CR20230151A (es) 2023-05-16
WO2021234132A1 (en) 2021-11-25
CO2022017126A2 (es) 2023-03-07
AU2021277524A1 (en) 2022-12-22
KR20230101942A (ko) 2023-07-06
MX2024000627A (es) 2024-02-02
CA3183280A1 (en) 2021-11-25
US11736705B2 (en) 2023-08-22
CL2022003254A1 (es) 2023-02-03
CL2024000854A1 (es) 2024-09-23
MX2024000630A (es) 2024-02-06
CN117061758A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
BR122023021002A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR112016000863B1 (pt) Previsão residual de componente intercor
BR112016015552B1 (pt) Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits
US12063381B2 (en) Video data stream, video encoder, apparatus and methods for a hypothetical reference decoder and for output layer sets
BR122024009560A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122024009537A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122024009547A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122024009529A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122024009500A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122024009492A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122024009497A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
BR122024009494A2 (pt) Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
JPWO2021234132A5 (pt)
TWI859804B (zh) 視訊編碼器、視訊解碼器、用於編碼與解碼之方法及用以實現進階視訊寫碼概念之視訊資料串流
AU2022271423B2 (en) Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts
AU2022271427A1 (en) Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts
OA21017A (en) Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts.
OA21018A (en) Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]