BR122017006773B1 - Conjunto de parâmetros de vídeo para hevc e extensões - Google Patents

Conjunto de parâmetros de vídeo para hevc e extensões Download PDF

Info

Publication number
BR122017006773B1
BR122017006773B1 BR122017006773-7A BR122017006773A BR122017006773B1 BR 122017006773 B1 BR122017006773 B1 BR 122017006773B1 BR 122017006773 A BR122017006773 A BR 122017006773A BR 122017006773 B1 BR122017006773 B1 BR 122017006773B1
Authority
BR
Brazil
Prior art keywords
video
syntax
syntax element
video data
syntax elements
Prior art date
Application number
BR122017006773-7A
Other languages
English (en)
Other versions
BR122017006773A2 (pt
Inventor
Ying Chen
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority claimed from BR112014033011-5A external-priority patent/BR112014033011B1/pt
Publication of BR122017006773A2 publication Critical patent/BR122017006773A2/pt
Publication of BR122017006773B1 publication Critical patent/BR122017006773B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • 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/176Methods 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 block, e.g. a macroblock
    • 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/187Methods 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 scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive 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
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Um codificador de vídeo pode ser configurado para receber em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros do decodificador de referência hipotético (HRD); receber nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; receber nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; e, codificar com base nos um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros.

Description

[0001] Este pedido refere-se aos: Pedido Provisório N°. U.S. 61/667.387 depositado em 2 de julho de 2012, Pedido Provisório N°. U.S. 61/669.587 depositado em 9 de julho de 2012, e Pedido Provisório N°. U.S. 61/798,135 depositado em 15 de março de 2013, o conteúdo total de cada um é incorporado aqui a título de referência.
Campo Técnico
[0002] Est a descrição refere-se ao processamento de dados de vídeo e, mais particularmente, esta descrição descreve técnicas relacionadas a geração e processamento de conjuntos de parâmetro para dados de vídeo.
Fundamentos
[0003] Capacidades de vídeo digitais podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de transmissão digital direta, sistemas de transmissão sem fio, assistentes digitais pessoais (PDAs), laptops ou computadores de mesa, computadores tablet, e-books, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digitais, dispositivos de jogos de vídeo, videogames, telefones celulares de rádio ou satélite, os chamados "telefones inteligentes", aparelhos de vídeo de teleconferência, dispositivos de fluxo contínuo de vídeo, e afins. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tais como aquelas descritos nos padrões definidos pelo MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), Codificação de Vídeo de Alta Eficiência (HEVC) padrão atualmente em desenvolvimento e extensão de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de forma mais eficiente através da implementação de tais técnicas de compressão de vídeo.
[0004] Técnicas de compressão de vídeo realizam a predição espacial (intra-imagem) e/ou predição temporal (inter-imagem) para reduzir ou eliminar a redundância inerente nas sequências de vídeo. Para a codificação de vídeo baseada em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo ou de uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, que também podem ser referidos como treeblocks, unidades de codificação (UC) e/ou nós de codificação. Os blocos de vídeo em uma fatia intra-codificada (I) de uma imagem são codificados usando a predição espacial em relação às amostras de referência em blocos vizinhos no mesmo quadro. Os blocos de vídeo em uma fatia inter-codificada (P ou B) de uma imagem podem usar a predição espacial em relação às amostras de referência em blocos vizinhos no mesmo quadro, ou a predição temporal, no que diz respeito às amostras de referência em outros quadros de referência. As imagens podem ser referidas como quadros e imagens de referência podem ser referidas como quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco de predição para um bloco de ser codificado. Dados residuais representam as diferenças entre o bloco de pixel original a ser codificado e o bloco de predição. Um bloco inter-codificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que formam o bloco de predição, e os dados residuais indicando a diferença entre o bloco codificado e o bloco de predição. Um bloco intra-codificado é codificado de acordo com um modo de intra-codificação e os dados residuais. Para a compressão adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais, os quais, em seguida, podem ser quantificados. Os coeficientes de transformada quantificados, inicialmente dispostos em uma matriz bidimensional, podem ser verificados, a fim de produzir um vetor unidimensional de coeficientes de transformada, e a codificação de entropia pode ser aplicada para conseguir ainda mais compressão.
Sumário
[0006] Est a descrição descreve técnicas de projeto para conjuntos de parâmetro na codificação de vídeo, e mais particularmente, esta descrição descreve técnicas relacionadas aos conjuntos de parâmetros de vídeo (VPSs).
[0007] Em um exemplo, um método de decodificação de dados de vídeo inclui receber em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros do decodificador de referência hipotético (HRD); receber nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; receber nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; e, codificar, com base em um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros.
[0008] Em outro exemplo, um método de codificação de dados de vídeo inclui gerar para inclusão em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros do decodificador de referência hipotético (HRD); gerar para inclusão nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; gerar para inclusão nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; e, codificar, com base em um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros.
[0009] Em outro exemplo, um dispositivo para processamento de dados de vídeo inclui um decodificador de vídeo configurado para receber em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros do decodificador de referência hipotético (HRD); receber nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; receber nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; e, codificar com base nos um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros.
[0010] Em outro exemplo, um dispositivo para processamento de dados de vídeo inclui um codificador de vídeo configurado para gerar para inclusão em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros do decodificador de referência hipotético (HRD); gerar para inclusão nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; gerar para inclusão nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; and, codificar com base nos um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros.
[0011] Em outro exemplo, um dispositivo para processamento de dados de vídeo inclui mecanismos para receber em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros do decodificador de referência hipotético (HRD); mecanismos para receber nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; mecanismos para receber nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; mecanismos para codificar, com base em um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros.
[0012] Em outro exemplo, um meio de armazenamento legível por computador armazenando instruções que quando executadas por um ou mais processadores fazem com que os um ou mais processadores: recebam em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros do decodificador de referência hipotético (HRD); recebam nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; recebam nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo; codifiquem com base nos um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros.
[0013] Os detalhes de um ou mais exemplos são estabelecidos nos desenhos de acompanhamento e na descrição abaixo. Outras características, objetos e vantagens serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
Breve Descrição Dos Desenhos
[0014] FIG. 1 é um diagrama de blocos ilustrando um sistema de codificação e decodificação de vídeo exemplar que pode usar as técnicas descritas nesta descrição.
[0015] FIG. 2 é um diagrama conceitual ilustrando uma ordem de decodificação MVC exemplar.
[0016] FIG. 3 é um diagrama conceitual mostrando uma estrutura de predição temporal MVC e inter-vista exemplar.
[0017] FIG. 4 é um diagrama de blocos ilustrando um codificador de vídeo exemplar que pode implementar as técnicas descritas nesta descrição.
[0018] FIG. 5 é um diagrama de blocos ilustrando um decodificador de vídeo exemplar que pode implementar as técnicas descritas nesta descrição.
[0019] FIG. 6 é um diagrama de blocos ilustrando um conjunto de dispositivos exemplar que fazem parte de uma rede.
[0020] FIG. 7 é um fluxograma mostrando um método exemplar para processar um conjunto de parâmetros de acordo com as técnicas desta descrição.
[0021] FIG. 8 é um fluxograma mostrando um método exemplar para gerar um conjunto de parâmetros de acordo com as técnicas desta descrição.
[0022] FIG. 9 é um fluxograma mostrando um método exemplar para decodificar um conjunto de parâmetros de acordo com as técnicas desta descrição.
[0023] FIG. 10 é um fluxograma mostrando um método exemplar para processar um conjunto de parâmetros de acordo com as técnicas desta descrição.
[0024] FIG. 11 é um fluxograma mostrando um método exemplar para gerar um conjunto de parâmetros de acordo com as técnicas desta descrição.
[0025] FIG. 12 é um fluxograma mostrando um método exemplar para processar um conjunto de parâmetros de acordo com as técnicas desta descrição.
[0026] FIG. 13 é um fluxograma mostrando um método exemplar para gerar um conjunto de parâmetros de acordo com as técnicas desta descrição.
Descrição Detalhada
[0027] Est a descrição descreve técnicas de projeto para conjuntos de parâmetro na codificação de vídeo, e mais particularmente, esta descrição descreve técnicas relacionadas aos conjuntos de parâmetro de vídeo (VPSs). Além dos VPSs, outros exemplos de conjuntos de parâmetros incluem conjuntos de parâmetros de sequência (SPSs), conjuntos de parâmetros de imagem (PPSs), e conjuntos de parâmetros de adaptação (APSs), para citar alguns.
[0028] Um codificador de vídeo codifica dados de vídeo. Os dados de vídeo podem incluir uma ou mais imagens, onde cada uma das imagens é ainda uma parte formadora de um vídeo. Quando o codificador de vídeo codifica os dados de vídeo, o codificador de vídeo gera um fluxo de bits que inclui uma sequência de bits que formam uma representação codificada dos dados de vídeo. O fluxo de bits pode incluir imagens codificadas e dados associados, onde uma imagem codificada refere-se a uma representação codificada de uma imagem. Os dados associados podem incluir vários tipos de conjuntos de parâmetros incluindo VPSs, SPSs, PPSs, e APSs, e potencialmente outras estruturas de sintaxe. SPSs são usados para transportar dados que são válidos para uma sequência de vídeo inteira, enquanto que PPSs transportam informações válidas em uma base de imagem por imagem. APSs transportam a informação adaptativa da imagem que também é válida em uma base de imagem por imagem mas espera-se que essa mude mais frequentemente do que a informação no PPS.
[0029] HEVC também introduziu o VPS o qual o projeto de trabalho HEVC descreve como segue: conjunto de parâmetros de vídeo (VPS): Uma estrutura de sintaxe contendo elementos de sintaxe que se aplicam a zero ou mais sequências de vídeo codificadas inteiras como determinado pelo conteúdo de um elemento de sintaxe video_parameter_set_id encontrado no conjunto de parâmetros de sequência referido pelo elemento de sintaxe seq_parameter_set_id, que é encontrado no conjunto de parâmetros de imagem referido pelo elemento de sintaxe pic_parameter_set_id encontrado em cada cabeçalho do segmento da fatia.
[0030] Então, como VPSs se aplicam às sequências de vídeo codificadas inteiras, o VPS inclui elementos de sintaxe que mudam raramente. O mecanismo do VPS, SPS, PPS e APS em algumas versões do HEVC desacopla a transmissão de informações raramente alteradas a partir da transmissão dos dados do bloco de vídeo codificados. VPSs, SPSs, PPSs e APSs podem, em algumas aplicações, ser transpotados “fora da banda” i.e., não transportado junto com as unidades contendo dados de vídeo codificados. A transmissão fora da banda é tipicamente confiável, e pode ser desejável para melhor confiabilidade em relação à transmissão em banda. Em HEVC WD7, um identificador (ID) de um VPS, um SPS, um PPS, ou um APS pode ser codificado para cada conjunto de parâmetros. Cada SPS inclui um ID de SPS e um ID de VPS, cada PPS inclui um ID de PPS e um ID de SPS, e cada cabeçalho de fatia inclui um ID de PPS e possivelmente um ID de APS. Deste modo, os IDs podem ser usados para identificar o conjunto de parâmetros adequado a ser usado em casos diferentes.
[0031] Como apresentado acima, codificadores de vídeo tipicamente codificam dados de vídeo, e decodificadores tipicamente decodificam dados de vídeo. Codificadores e decodificadores, no entanto, não são os únicos dispositivos usados para processar dados de vídeo. Quando o vídeo é transportado, por exemplo, como parte de uma rede baseada em pacote como uma rede de área local, uma rede de área ampla, ou uma rede global como a Internet, dispositivos de roteamento e outros desses dispositivos podem processar os dados de vídeo a fim de entregá-los de um dispositivo fonte para um dispositivo de destino. Dispositivos de roteamento especiais, às vezes chamados de elementos de rede cientes de mídia (MANEs), podem realizar várias funções de roteamento com base no conteúdo dos dados de vídeo. Para determinar o conteúdo dos dados de vídeo e realizar estas funções de roteamento, o MANE pode acessar a informação no fluxo de bits codificado, como informações no VPS ou SPS.
[0032] Em um conjunto de parâmetros, alguns elementos de sintaxe são codificados usando um número fixo de bits, enquanto alguns elementos de sintaxe são codificados usando um número variável de bits. A fim de processor os elementos de sintaxe de comprimento variável, um dispositivo pode precisar de capacidades de decodificação por entropia. A realização da decodificação por entropia, no entanto, pode introduzir um nível de complexidade que é indesejável para um MANE ou outros elementos de rede. De acordo com uma técnica apresentada nesta descrição, um elemento de sintaxe de deslocamento pode ser incluído em um conjunto de parâmetros, como um VPS a fim de ajudar elementos de rede na identificação de elementos de sintaxe que podem ser decodificados sem qualquer decodificação por entropia. O elemento de sintaxe de deslocamento pode ser precedido por elementos de sintaxe de comprimento fixo. O elemento de sintaxe de deslocamento pode então identificar elementos de sintaxe no conjunto de parâmetros que devem ser codificados usando elementos de sintaxe de comprimento variável. Ao utilizar o elemento de sintaxe de deslocamento, um dispositivo, como um MANE, pode pular sobre os elementos de sintaxe codificados de comprimento variável e reiniciar o processamento dos elementos de sintaxe de comprimento fixo. O elemento de sintaxe de deslocamento pode identificar os elementos de sintaxe a serem pulados pela identificação de um número de bytes dentro do conjunto de parâmetros que devem ser pulados. Estes bytes pulados podem corresponder aos elementos de sintaxe pulados. Como mencionado acima, os elementos de sintaxe pulados podem incluir elementos de sintaxe codificados de comprimento variável e também podem incluir elementos de sintaxe codificados de comprimento fixo.
[0033] Neste contexto, pular os elementos de sintaxe significa que o MANE pode evitar análieses ou outro processamento dos elementos de sintaxe que são codificados com comprimentos variáveis. Então, o MANE pode processar alguns elementos de sintaxe no VPS (ex., elementos de comprimento fixo) sem ter de realizar a decodificação por entropia, enquanto pula alguns elementos de sintaxe que podem, de outra forma, necessitar da decodificação por entropia. Os elementos de sintaxe pulados pelo MANE não são limitados aos elementos de sintaxe de comprimento variável, como alguns elementos de sintaxe de comprimento fixo também podem ser pulados em vários exemplos. Um decodificador de vídeo pode ser configurado para, mediante recebimento do elemento de sintaxe de deslocamento, essencialmente ignorar um ou mais dos elementos de sintaxe, significando que o decodificador de vídeo pode evitar analisar e processar os elementos de sintaxe que foram pulados pelo MANE.
[0034] O uso de um elemento de sintaxe de deslocamento pode reduzir a complexidade necessária para um MANE processar porções de um conjunto de parâmetros, ex., pela eliminação de uma necessidade pelo MANE realizar a decodificação por entropia. Adicionalmente, o uso de um elemento de sintaxe de deslocamento, como proposto nesta descrição, pode possibilitar o uso de um formato hierárquico para conjuntos de parâmetro. Como um exemplo de um formato hierárquico, em um VPS, ao invés de ter elementos de sintaxe para uma camada base e uma camada de melhoria misturadas dentro do VPS, todos ou substancialmente todos os elementos de sintaxe de uma camada base podem preceder todos ou substancialmente todos elementos de sintaxe de uma primeira camada de melhoria, que por sua vez pode preceder todos ou substancialmente todos elementos de sintaxe para uma segunda camada de melhoria, e assim por diante. Ao usar um elemento de sintaxe de deslocamento apresentado nesta descrição, um MANE pode processar um número de elementos de sintaxe de comprimento fixo para uma camada base, pular um número de elementos de sintaxe de comprimento variável para a camada base, processar um número de elementos de sintaxe de comprimento fixo para uma primeira camada de melhoria, pular um número de elementos de sintaxe de comprimento variável para a primeira camada de melhoria, processar um número de elementos de sintaxe de comprimento fixo para uma segunda camada de melhoria, e assim por diante. Um decodificador de vídeo pode ser configurado para analisar e processar os elementos de sintaxe pulados pelo MANE.
[0035] O uso de um elemento de sintaxe de deslocamento pode adicionalmente possibilitar futuras extensões para um padrão de codificação de vídeo. Por exemplo, mesmo se outros tipos de informações codificadas de comprimento variável forem adicionados a um fluxo de bits (ex., de acordo com uma futura extensão para HEVC), os um ou mais elementos de sintaxe de deslocamento podem ser definidos para facilitar pular esses elementos de comprimento variável. Em outras palavras, os um ou mais elementos de sintaxe de deslocamento podem ser usados para identificar a localização dos elementos de sintaxe de comprimento fixo dentro do fluxo de bits, e os elementos de sintaxe de deslocamento podem ser modificados para serem responsáveis pela adição de quaisquer outros elementos no fluxo de bits para o qual a decodificação pode ser evitada, ex., por um MANE.
[0036] Est a descrição adicionalmente propõe incluir elementos de sintaxe relacionados à negociação da sessão no conjunto de parâmetros de vídeo em oposição a outro conjunto de parâmetros, como um SPS. Pela inclusão dos elementos de sintaxe relacionados à negociação da sessão no VPS, overhead de sinalização pode ser capaz de ser reduzido especialmente quando o VPS descreve informações para várias camadas de vídeo em oposição à informação somente para uma camada única. Além disso, esta descrição propõe usar elementos de sintaxe de comprimento fixo para a negociação da sessão elementos de sintaxe, e elementos de sintaxe da negociação da sessão de comprimento fixo podem ser localizados antes de quaisquer elementos de sintaxe de comprimento variável. A fim de processar elementos de sintaxe de comprimento variável, um dispositivo precisa ser capaz de realizar a decodificação por entropia. A realização da decodificação por entropia, no entanto, pode introduzir um nível de complexidade que é indesejável para um MANE. Assim, pelo uso dos elementos de sintaxe de comprimento fixo que estão presentes no VPS antes de quaisquer elementos de sintaxe de comprimento variável, um MANE pode ser capaz de analisar os elementos de sintaxe para negociação da sessão sem ter de realizar a decodificação por entropia.
[0037] Tabel a 2 abaixo mostra exemplos dos elementos de sintaxe relacionados à negociação da sessão que podem ser incluídos no VPS. Exemplos das informações para negociação da sessão incluem informações que identificam perfis, fileiras e níveis. O projeto de trabalho de HEVC descreve perfis, fileiras e níveis como segue: Um “perfil” é um subconjunto da sintaxe de fluxo de bits inteira que é especificada por este Padrão de Recomendação Internacional. Dentro dos limites impostos pela sintaxe de um dado perfil ainda é possível requerer uma variação muito grande no desempenho dos codificadores e decodificadores dependendo dos valores tomados pelos elementos de sintaxe no fluxo de bits como o tamanho especificado das imagens decodificadas. Em muitas aplicações, atualmente não é prático, nem econômico implementar um decodificador capaz de lidar com todas as utilizações hipotéticas da sintaxe dentro de um determinado perfil. Para lidar com este problema, “fileiras” e “níveis” são especificados dentro de cada perfil. Um nível de uma fileira é um conjunto de limitações especificado imposto sobre os valores dos elementos de sintaxe no fluxo de bits. Estas limitações podem ser limites simples nos valores. Alternativamente eles podem assumir a forma de limitações sobre combinações aritméticas dos valores (ex., largura da imagem multiplicada pela altura de imagem multiplicada pelo número de imagens decodificadas por segundo). Um nível especificado para uma fileira inferior é mais limitado do que um nível especificado para uma fileira superior.
[0038] Durante a negociação da sessão entre um cliente e um MANE, um cliente pode perguntar sobre a disponibilidade no MANE de dados de vídeo codificados de acordo com um determinado perfil, nível, e/ou fileira. O MANE pode ser capaz de analisar a primeira porção (i.e. uma porção codificada de comprimento fixo) do VPS que inclui a informação do perfil, nível e fileira. Dentre os pontos de operação disponíveis no MANE, um adequado pode ser escolhido pelo cliente, e o MANE pode encaminhar os pacotes correspondentes para o cliente após a sessão ser negociada.
[0039] Est a descrição adicionalmente propõe incluir elementos de sintaxe para identificar um decodificador de referência hipotético (HRD) no conjunto de parâmetros de vídeo em oposição a outro conjunto de parâmetros, como um SPS. Os parâmetros HRD identificam um modelo de decodificador hipotético que especifica limitações sobre a variabilidade de conformar fluxos da unidade NAL ou conformar fluxos de byte que um processo de codificação pode produzir. Dois tipos de conjuntos de parâmetros HRD (parâmetros HRD NAL e parâmetros HRD VCL) podem ser incluídos no VPS. Parâmetros HRD NAL pertencem à conformidade de fluxo de bits do Tipo II, enquanto parâmetros HRD VCL pertencem a toda a conformidade de fluxo de bits. HEVC atualmente distinguido entre dois tipos de fluxo de bits que são sujeitos à conformidade de HRD. O primeiro é chamado de um fluxo de bits de Tipo I e refere- se a um fluxo da unidade NAL contendo somente as unidades VCL NAL e unidades NAL de dados de enchimento para todas as unidades de acesso no fluxo de bits. O segundo tipo de fluxo de bits é chamado de um fluxo de bits de Tipo II e contêm as unidades VCL NAL e unidades NAL de dados de enchimento para todas as unidades de acesso no fluxo de bits mais outros tipos de unidades NAL adicionais.
[0040] As técnicas desta descrição podem ser aplicadas na codificação de camada única assim como à codificação de vídeo escalável e de multivista. Uma camada pode, por exemplo, ser uma camada escalável espacial, uma camada escalável de qualidade, uma vista de textura, ou uma vista de profundidade. Em HEVC, uma camada geralmente refere-se a unidades NAL de camada de codificação de conjunto de vídeo (VCL), e unidades NAL associadas a não-VCL, que todas tem um valor de ID de camada particular. As camadas podem ser hierárquicas no sentido de que uma primeira camada pode conter uma camada inferior. Um conjunto de camadas é às vezes utilizado para se referir a um conjunto de camadas representado dentro de um fluxo de bits de dados criado a partir de outro fluxo de bits pela operação do processo de extração de sub-fluxo de bits. Um ponto de operação geralmente refere-se a um fluxo de bits criado a partir de outro fluxo de bits pela operação do processo de extração de sub-fluxo de bits com outro fluxo de bits. Um ponto de operação pode ou incluir todas as camadas em um conjunto de camada ou pode ser um fluxo de bits formado como um subconjunto do conjunto de camada.
[0041] FIG. 1 é um diagrama de blocos ilustrando um sistema de codificação e decodificação de vídeo exemplar 10 que pode usar as técnicas descritas nesta descrição. Como mostrado na FIG. 1, sistema 10 inclui um dispositivo fonte 12 que gera dados de vídeo codificados a serem decodificados em um momento posterior por um dispositivo de destino 14. Os dados de vídeo codificados podem ser roteados a partir do dispositivo fonte 12 para o dispositivo de destino 14 pelo elemento de rede ciente de mídia (MANE) 29. O dispositivo fonte 12 e dispositivo de destino 14 podem compreendem qualquer de uma ampla faixa de dispositivos, incluindo computadores de mesa, computadores notebook (i.e., laptop), computadores tablet, decodificadores, aparelhos de telefone como os chamados smartphones, os chamados smartpads, televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de vídeo game, dispositivo de fluxo contínuo de vídeo, ou similares. Em alguns casos, o dispositivo fonte 12 e dispositivo de destino 14 podem ser equipados para a comunicação sem fio.
[0042] Sistema 10 pode funcionar de acordo com padrões de codificação de vídeo diferentes, um padrão proprietário, ou qualquer outra maneira de codificação de multivista. Por exemplo, o codificador de vídeo 20 e decodificador de vídeo 30 podem funcionar de acordo com um padrão de compressão de vídeo, como o ITU-T H.261 incluído, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalável (SVC) e Codificação de Vídeo de Multivista (MVC). O recente projeto comum, à disposição do público da extensão MVC está descrito em "Advanced video coding for generic audiovisual services", Recomendação ITU-T H.264, Mar 2010. Um projeto comum mais recente, à disposição do público da extensão MVC está descrito na "Advanced video coding for generic audiovisual services", Recomendação ITU- T H.264, de Junho de 2011. Um projeto comum atual da extensão MVC foi aprovado a partir de janeiro de 2012.
[0043] Além disso, há um novo padrão de codificação de vídeo, ou seja, o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento pela Equipe de Colaboração Conjunta sobre Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialista em Imagem em Movimento ISO/IEC (MPEG). Um recente Projeto de Trabalho (DT) de HEVC, e referido como HEVC WD7 adiante, está disponível, a partir de 1° de julho de 2013, no http://phenix.int- evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC- I1003-v6.zip.
[0044] O desenvolvimento do padrão HEVC está em andamento, e um Projeto de Trabalho mais novo (WD) do HEVC, referido como HEVC WD9 está disponível, a partir de 1° de julho de 2013, no http://phenix.int- evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC- K1003-v10.zip. Para fins de descrição, o codificador de vídeo 20 e decodificador de vídeo 30 são descritos no contexto do HEVC ou o padrão H.264 e as extensões de tais padrões. As técnicas desta descrição, no entanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos de padrão de compressão de vídeos incluem MPEG-2 e ITU-T H.263. Técnicas de codificação proprietárias, como aquelas referidas como On2 VP6/VP7/VP8, também podem implementar uma ou mais das técnicas descritas aqui. Um projeto mais novo do próximo padrão HEVC, referido como “Projeto de Trabalho HEVC 10” ou “HEVC WD10,” é descrito em Bross et al., “Editors’ proposed corrections to HEVC version 1,” Equipe Colaborativa Conjunta sobre Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 13° Encontro, Incheon, KR, Abril de 2013, que a partir de 1° de julho de 2013, está disponível na http://phenix.int- evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC- M0432-v3.zip, o conteúdo total do qual é aqui incorporado a título de referência.
[0045] As técnicas desta descrição são potencialmente aplicáveis a alguns padrões de codificação de vídeo MVC e/ou 3D, incluindo a codificação de vídeo baseada em 3D da HEVC (3D-HEVC). As técnicas desta descrição também podem ser aplicáveis aos padrões de codificação de vídeo H.264/3D-AVC e H.264/MVC+D, ou extensões dos mesmos, assim como outros padrões de codificação. As técnicas desta descrição podem, por vezes, ser descritas com referência à ou usando a terminologia de um padrão de codificação de vídeo particular; no entanto, tal descrição não deve ser interpretada para significar que as técnicas descritas são apenas limitadas àquele padrão em particular.
[0046] O dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificados através do link 16. O link 16 pode compreender qualquer tipo de mídia ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo fonte 12 para o dispositivo de destino 14. Em um exemplo, o link 16 pode compreender um meio de comunicação para permitir que o dispositivo fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação remota, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação com fio ou sem fio, como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode fazer parte de uma rede baseada em pacote, como uma rede de área local, uma rede de área ampla, ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo fonte 12 para o dispositivo de destino 14. O link 16 pode incluir um ou mais MANEs, como MANE 29, que direciona os dados de vídeo a partir do dispositivo fonte 12 para o dispositivo de destino 14.
[0047] Alternativamente, dados codificados podem ser produzidos a partir da interface de saída 22 para um dispositivo de armazenamento 27. Similarmente, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 27 pela interface de entrada. O dispositivo de armazenamento 27 pode incluir qualquer de uma variedade de mídias de armazenamento de dados distribuídas ou acessadas localmente como um disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não- volátil, ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 27 pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que pode manter o vídeo codificado gerado pelo dispositivo fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento 27 através de fluxo contínuo ou download. O servidor de arquivo pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivo exemplares incluem um servidor da web (ex., para um website), um servidor FTP, dispositivos de armazenamento anexos à rede (NAS), ou um disco rígido local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão da Internet. Este pode incluir um canal remoto (ex., uma conexão Wi-Fi), uma conexão com fio (ex., DSL, modem a cabo, etc.), ou uma combinação de ambos que é adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados do dispositivo de armazenamento 27 pode ser uma transmissão por fluxo contínuo, uma transmissão por download, ou uma combinação de ambos. Os dados de vídeo recuperados a partir do dispositivo de armazenamento 27 podem ser direcionados para o dispositivo de destino 14 usando um ou mais MANEs, como o MANE 29.
[0048] As técnicas desta descrição não são necessariamente limitadas às aplicações ou configurações remotas. As técnicas podem ser aplicadas à codificação de vídeo no suporte de qualquer de uma variedade de aplicações multimídia, como transmissões televisivas pelo ar, transmissões de televisão por cabo, transmissões de televisão por satélite, transmissões de vídeo por fluxo contínuo, ex., através da Internet, codificação de vídeo digital para armazenamento em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar a transmissão de vídeo de uma via ou duas vias para suportar aplicações como fluxo contínuo de vídeo, reprodução de vídeo, transmissão de vídeo, e/ou telefonia por vídeo.
[0049] No exemplo da FIG. 1, dispositivo fonte 12 inclui uma fonte de vídeo 18, codificador de vídeo 20 e uma interface de saída 22. O codificador de vídeo 20 pode, por exemplo, gerar a sintaxe de deslocamento descrita nesta descrição. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo fonte 12, a fonte de vídeo 18 pode incluir uma fonte como um dispositivo de captura de vídeo, ex., uma câmera de vídeo, um arquivo de vídeo contendo o vídeo anteriormente capturado, uma interface de alimentação de vídeo para receber o vídeo a partir de um provedor de conteúdo de vídeo, e/ou um sistema de gráfico de computador para gerar dados de gráficos de computador como o vídeo fonte, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 é uma câmera de vídeo, o dispositivo fonte 12 e dispositivo de destino 14 podem formar os chamados telefones de câmera ou telefones de vídeo. No entanto, as técnicas descritas nesta descrição podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas às aplicações remotas e/ou com fio.
[0050] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 12. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 através da interface de saída 22 do dispositivo fonte 20. Os dados de vídeo codificados podem ser (ou alternativamente) armazenados no dispositivo de armazenamento 27 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decodificação e/ou reprodução.
[0051] O dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30, e um dispositivo de exibição 32. O decodificador de vídeo 30 pode analisar o elemento de sintaxe de deslocamento descrito nesta descrição. Como descrito acima, o decodificador de vídeo 30 pode, em alguns casos, ignorar o elemento de sintaxe de deslocamento, permitindo assim que o decodificador de vídeo 30 analise os elementos de sintaxe pulados por um MANE. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destino 14 recebe os dados de vídeo codificados sobre o link 16. Os dados de vídeo codificados comunicados sobre o link 16, ou fornecidos no dispositivo de armazenamento 27, podem incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 para uso por um decodificador de vídeo, como decodificador de vídeo 30, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos sobre uma mídia de comunicação, armazenados sobre uma mídia de armazenamento, ou armazenados em um servidor de arquivo.
[0052] O dispositivo de exibição 32 pode ser integrado com, ou externo ao, dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também ser configurado para fazer a interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer de uma variedade de dispositivos de exibição como um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo de emissão de luz orgânica (OLED), ou qualquer tipo do dispositivo de exibição.
[0053] Apesar de não mostrado na FIG. 1, em alguns aspectos, o codificador de vídeo 20 e decodificador de vídeo 30 podem cada ser integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequadas, ou outro hardware e software, para manejar a codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicável, em alguns exemplos, as unidades MUX-DEMUX podem se conformar ao protocolo do multiplexador ITU H.223, ou outros protocolos como o protocolo de datagrama do usuário (UDP).
[0054] O codificador de vídeo 20 e decodificador de vídeo 30 cada pode ser implementado como qualquer de uma variedade de circuitos de codificador adequado, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar as instruções para o software em um meio legível por computador adequada, não-transitória e executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta descrição. Cada um dos codificador de vídeo 20 e dispositivo.
[0055] A JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização de HEVC são baseados em um modelo de evolução de um dispositivo de codificação de vídeo referido como o modelo de teste de HEVC (HM). O HM presume vários recursos adicionais dos dispositivos relativos aos dispositivos existentes de acordo com a codificação de vídeo, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto H.264 oferece nove modos de codificação de intra-predição, o HM pode fornecer até trinta e três modos de codificação de intra-predição.
[0056] Em geral, o modelo de trabalho do HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de treeblocks ou maiores unidades de codificação (LTU), que incluem tanto amostras luma e croma. Um treeblock tem uma finalidade similar como um macrobloco do padrão H.264. Uma fatia inclui um número de treeblocks consecutivos na ordem de codificação. Um quadro de vídeo ou imagem pode ser dividido em uma ou mais fatias. Cada treeblock pode ser dividido em unidades de codificação (CUs) de acordo com uma quadtree. Por exemplo, um treeblock, como um nó raiz do quadtree, pode ser dividido em quatro nós criança, e cada nó criança pode por sua vez ser um nó pai e ser dividido em outros quatro nós criança. Um nó criança final, não dividido, como um nó folha do quadtree, compreende um nó de codificação, i.e., um bloco de vídeo codificado. Dados de sintaxe associados com um fluxo de bits codificado podem definir um número máximo devezes que um treeblock pode ser dividido, e também pode definir um tamanho mínimo dos nós de codificação.
[0057] A CU inclui um nó de codificação e unidades de predição (UP) e as unidades de transformada (TUS) associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e deve ter uma forma quadrada. O tamanho da CU pode variar de 8x8 pixels até o tamanho do treeblock com um máximo de 64x64 pixels ou maiores. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, uma divisão da CU em uma ou mais PUs. Os modos de divisão podem diferir sea CU é ignorada ou codificada de modo direto, codificada por modo de intra-predição, ou codificada por modo de inter- predição. As PUs podem ser dividias para serem não quadradas no formato. Os dados de sintaxe associados com uma CU também descrevem, por exemplo, a divisão da CU em uma ou mais TUs de acordo com um quadtree. Uma TU pode ser quadrada ou não-quadrada no formato.
[0058] O padrão de HEVC permite as transformações de acordo com as TUs, que podem ser diferentes para diferentes UCs. As TUs são tipicamente dimensionadas com base no tamanho de PUs dentro de uma determinada CU definida para uma LCU dividida, embora esse possa não ser sempre o caso. As TUs são geralmente do mesmo tamanho ou menores do que as PUs. Em alguns exemplos, as amostras residuais correspondendo a uma CU podem ser subdivididas em unidades menores que utilizam uma estrutura de quadtree conhecida como "quadtree residual" (RQT). Os nós de folha do RQT podem ser referidos como unidades de transformada (TUS). Os valores de diferença de pixel associados com as TUs podem ser transformados para produzir coeficientes de transformada, que podem ser quantificados.
[0059] Em geral, uma PU inclui dados relacionados ao processo de predição. Por exemplo, quando a PU é codificada intra-modo, a PU pode incluir dados que descrevem um modo de intra-predição para a PU. Como outro exemplo, quando a PU é codificada inter-modo, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (ex., precisão de um quarto de pixel ou precisão de um oitavo de pixel), uma imagem de referência para a qual o vetor de movimento aponta, e/ou uma lista de imagem de referência (ex., Lista 0, Lista 1, ou Lista C) para o vetor de movimento.
[0060] Em geral, uma TU é usada para os processos de transformada e quantificação. Uma dada CU tendo uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). Seguindo a predição, o codificador de vídeo 20 pode calcular valores residuais correspondentes à PU. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantificados, e varridos usando as TUs para produzir coeficientes de transformada em série para codificação por entropia. Esta descrição tipicamente usa o termo “bloco de vídeo” para se referir a um nó de codificação de uma CU. Em alguns casos específicos, esta descrição também pode usar o termo “bloco de vídeo” para se referir a um treeblock, i.e., LCU, ou uma CU, que inclui um nó de codificação e PUs e TUs.
[0061] Uma sequência de vídeo normalmente inclui uma série de quadros de vídeo ou imagens. Um grupo de imagens (GOP) geralmente compreende uma série de uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais imagens, ou em outro lugar, que descreve um número de imagens incluído no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a respectiva fatia. O codificador de vídeo 20 normalmente funciona nos blocos de vídeo dentro de fatias de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis, e podem diferir em tamanho de acordo com um padrão de codificação especificado.
[0062] Como exemplo, o HM suporta a predição em vários tamanhos de PU. Assumindo-se que o tamanho de uma CU particular é 2Nx2N, o HM suporta a intra-predição em tamanhos de PU de 2Nx2N ou NxN, e a inter-predição em tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta a divisão assimétrica para a inter- predição em tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Na divisão assimétrica, uma direção de uma CU não é dividida, enquanto a outra direção é dividida em 25% e 75%. A parte da CU correspondente à divisão de 25% é indicada por um "n" seguido por uma indicação de "Cima", "Baixo", "Esquerda" ou "Direita". Assim, por exemplo, "2NxnU" refere-se a uma CU de 2Nx2N dividida horizontalmente com uma PU de 2Nx0,5N na parte superior e de 2Nx1.5N PU na parte inferior.
[0063] Nesta descrição, "NxN" e "N por N" podem ser usados indistintamente para referir-se as dimensões de pixel de um bloco de vídeo em termos de dimensões verticais e horizontais, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). Do mesmo modo, um bloco de NxN geralmente tem N pixels em uma direção vertical e N pixels em uma direção horizontal, em que N representa um valor inteiro positivo. Os pixels de um bloco podem ser dispostos em filas e colunas. Além disso, os blocos não têm necessariamente de ter o mesmo número de pixels na direção horizontal que na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0064] Depois da codificação intra-previsiva ou inter- previsiva utilizando as PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs de uma CU.. As PUs podem compreender dados de pixel previsivos no domínio espacial (também referido como o domínio de pixel) e as TUs podem compreender coeficientes em um domínio de transformada após a aplicação de uma transformada, ex., uma transformada de cosseno discreta (DCT), uma transformada de número inteiro, uma transformada em ondeleta, ou uma transformada conceitualmente similar aos dados residuais de vídeo. Os dados residuais podem corresponder às diferenças de pixel entre os pixels da imagem não codificada e valores de predição que correspondem às PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU, e depois transformar as TUs para produzir coeficientes de transformada para a CU.
[0065] Depois de quaisquer transformadas para produzir coeficientes de transformada, o codificador de vídeo 20 pode realizar a quantificação de coeficientes de transformada. A quantificação geralmente refere-se a um processo no qual os coeficientes de transformada são quantificados para possivelmente reduzir a quantidade de dados usados para representar os coeficientes, proporcionando a compressão adicional. O processo de quantificação pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Por exemplo, um valor de bit n- pode ser arredondado para baixo para um valor de bit m- durante quantificação, onde n é maior que m.
[0066] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para varrer os coeficientes de transformada quantificados para produzir um vetor em série que pode ser de entropia codificada. Em outros exemplos, o codificador de vídeo 20 pode realizar uma varredura adaptativa. Após a varredura dos coeficientes de transformada quantificados para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar a entropia do vetor unidimensional, ex., de acordo com codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto com base na sintaxe (SBAC), Codificação por Entropia de Divisão de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação de entropia. O codificador de vídeo 20 também pode codificar a entropia dos elementos de sintaxe associados aos dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0067] Para realizar a CABAC, o codificador de vídeo 20 pode atribuit um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode se referir a, por exemplo, se valores vizinhos do símbolo são diferentes de zero ou não. Para realizar a CAVLC, o codificador de vídeo 20 pode escolher um código de comprimento variável para um símbolo a ser transmitido. As palavras código em VLC podem ser construídas tal que códigos relativamente mais curtos correspondem aos símbolos mais prováveis, enquanto códigos mais longos correspondem aos símbolos menos prováveis. Deste modo, o uso de VLC pode conseguir uma economia de bit, por exemplo, usando palavras código de comprimento igual para cada símbolo a ser transmitido. A determinação da probabilidade pode ser com base em um contexto atribuído ao símbolo.
[0068] Est a descrição descreve métodos de projeto para conjuntos de parâmetros, incluindo ambos conjuntos de parâmetros de vídeo e conjuntos de parâmetros de sequência, que podem ser aplicados na codificação de camada única, bem como a codificação escalável e de multivista de forma mutuamente compatível. A codificação de vídeo em multivista (MVC) é uma extensão do H.264/AVC. A especificação MVC é brevemente discutida abaixo.
[0069] A FIG. 2 é um gráfico que ilustra um exemplo da codificação MVC ou ordem de decodificação, de acordo com um ou mais exemplos descritos nesta descrição. Por exemplo, a disposição da ordem de decodificação ilustrada na FIG. 2 é referida como codificação de primeiro tempo. Na FIG. 2, S0- S7 cada refere-se a diferentes vistas do vídeo em multivista. T0-T8 cada um representa um exemplo do tempo de saída. Uma unidade de acesso pode incluir as imagens codificadas de todas as vistas para um caso do tempo de saída. Por exemplo, uma primeira unidade de acesso inclui todas as vistas S0-S7 para a circunstância de tempo T0 (ou seja, imagens 0-7), uma segunda unidade de acesso inclui todas as vistas S0-S7 para a circunstância de tempo T1 (ou seja, imagens de 8-15), e assim por diante. Nestes exemplos, as imagens 0-7 estão em uma mesma circunstância de tempo (ou seja, a circunstância de tempo T0), imagens 815 em uma mesma circunstância de tempo (ou seja, a circunstância de tempo T1). As imagens com a mesma circunstância de tempo são geralmente apresentadas ao mesmo tempo, e isso é a disparidade horizontal, e, possivelmente, alguma disparidade vertical, entre os objetos dentro dos quadros da mesma circunstância de tempo que faz com que o espectador perceba uma imagem que engloba um volume 3D.
[0070] Na FIG. 2, cada uma das vistas inclui conjuntos de imagens. Por exemplo, a vista S0 inclui um conjunto de imagens 0, 8, 16, 24, 32, 40, 48, 56 e 64, a vista S1 inclui um conjunto de imagens 1, 9, 17, 25, 33, 41, 49, 57, e 65, e assim por diante. Cada conjunto inclui dois quadros: uma imagem é referida como um componente de vista da textura, e a outra imagem é referida como um componente vista de profundidade. O componente de vista de textura e o componente de vista de profundidade dentro de um conjunto de imagens de uma vista podem ser considerados como correspondendo um ao outro. Por exemplo, o componente de vista de textura dentro de um conjunto de imagens de uma vista pode ser considerado como correspondente ao componente de vista de profundidade dentro do conjunto das imagens da vista, e vice-versa (ou seja, o componente da vista de profundidade corresponde ao seu componente de vista de textura no conjunto, e vice-versa). Tal como utilizado nesta descrição, um componente de vista de textura e um componente de vista de profundidade correspondente podem ser considerados como parte de uma mesma vista de uma única unidade de acesso.
[0071] O componente de vista de textura inclui o conteúdo da imagem real que é exibido. Por exemplo, o componente de vista de textura pode incluir componentes luma (Y) e chroma (Cb e Cr). O componente de vista de profundidade pode indicar profundidades relativas dos pixels no seu componente de vista de textura correspondente. Como um exemplo, o componente de vista de profundidade pode ser semelhante a uma imagem em escala de cinza que inclui apenas os valores luma. Em outras palavras, o componente de vista de profundidade pode não transmitir qualquer conteúdo da imagem, mas sim fornecer uma medida das profundidades relativas dos pixels no componente de vista de textura.
[0072] Por exemplo, um valor de pixel correspondente a um pixel puramente branco no componente de vista de profundidade pode indicar que seu pixel ou pixels correspondentes no componente de vista de textura correspondente está mais perto do ponto de vista do espectador, e um valor de pixel correspondente a um pixel puramente preto no componente de vista de profundidade pode indicar que o seu pixel ou pixels correspondentes no componente de vista de textura correspondente está mais longe a partir da perspectiva do observador. Os valores de pixels correspondentes aos vários tons de cinza entre preto e branco indicam diferentes níveis de profundidade. Por exemplo, um pixel muito cinza no componente de vista de profundidade indica que o pixel correspondente no componente de vista de textura está mais distante do que um pixel ligeiramente cinzento no componente de vista de profundidade. Porque apenas um valor de pixel, similar à escala de cinza, é necessário para identificar a profundidade de pixels, o componente de vista de profundidade pode incluir apenas um valor de pixel. Assim, os valores análogos aos componentes de chroma não são necessários quando ao codificar a profundidade.
[0073] O componente de vista de profundidade utilizando apenas os valores luma (por exemplo, valores de intensidade) para identificar a profundidade é fornecido para fins de ilustração e não devem ser considerados como limitantes. Em outros exemplos, qualquer técnica pode ser utilizada para indicar as profundidades relativas dos pixels no componente de vista de textura.
[0074] De acordo com a MVC, os componentes de vista de textura são inter-previstos, a partir dos componentes de vista de textura na mesma vista ou componentes de vista de textura em uma ou mais vistas diferentes. Os componentes de vista de textura podem ser codificados em blocos de dados de vídeo, que são chamados de "blocos de vídeo" e comumente chamados de "macroblocos" no contexto de H.264.
[0075] Em MVC, a predição inter-vista é apoiada pela compensação de movimento de disparidade, que usa a sintaxe da compensação de movimento de H.264/AVC, mas permite que uma imagem em uma vista diferente seja usada como uma imagem de referência para a predição de uma imagem sendo codificada. A codificação de duas vistas, também pode ser suportada pela MVC. Uma vantagem potencial da MVC é que um codificador MVC pode demorar mais de duas vistas como uma entrada de vídeo em 3D, e um decodificador de MVC pode decodificar tal representação de multivista do vídeo capturado. Qualquer representante com um decodificador MVC pode processar o conteúdo de vídeo 3D com mais de duas vistas.
[0076] Em MVC, predição inter-vista é permitida entre as imagens na mesma unidade de acesso (ou seja, com a mesma circunstância de tempo). Ao codificar uma imagem em uma vista não-base, uma imagem pode ser adicionada em uma lista de imagem de referência se a imagem está em uma vista diferente, mas com uma mesma circunstância de tempo. Uma imagem de referência de predição inter-vista pode ser colocada em qualquer posição de uma lista de imagens de referência, assim como qualquer imagem entre referência de inter-predição.
[0077] A FIG. 3 é um diagrama conceitual que ilustra um exemplo de padrão de predição de MVC. No exemplo da FIG. 3, oito vistas (com IDs de vista "S0" a "S7") são ilustradas, e doze locais temporais ("T0" a "T11") são ilustrados para cada vista. Isto é, cada fileira na FIG. 3 corresponde a uma vista, enquanto cada coluna indica uma localização temporal. No exemplo da FIG. 3, "B" maiúsculo e "b" minúsculo são usados para indicar diferentes relações hierárquicas entre as imagens, ao invés de diferentes metodologias de codificação. Em geral, as imagens com “B” maiúsculo são relativamente mais elevadas na hierarquia predição do que as imagens com "b" minúsculo.
[0078] Na FIG. 3, a vista S0 pode ser considerada como uma vista base, e as vistas S1 a S7 podem ser consideradas como vistas dependentes. A vista base inclui imagens que não são previstas inter-vista. A imagem em uma vista base pode ser inter-prevista com relação a outras imagens na mesma vista. Por exemplo, nenhuma das imagens na vista S0 pode ser inter-prevista com relação a uma imagem em qualquer uma das vistas S1-S7, mas algumas das imagens na vista S0 podem ser inter-previstas com relação a outras imagens na vista S0.
[0079] Uma vista dependente inclui imagens que são previstas inter-vista. Por exemplo, cada um das vistas S1- S7 inclui, pelo menos, uma imagem que é inter-prevista com relação a uma imagem de outra vista. As imagens em uma vista dependente podem ser inter-previstas com relação às imagens na vista base, ou podem ser inter-previstas com relação às imagens de outras vistas dependentes.
[0080] Um fluxo de vídeo que inclui uma vista base e uma ou mais vistas dependentes pode ser decodificável por diferentes tipos de decodificadores de vídeo. Por exemplo, um tipo básico de decodificador de vídeo pode ser configurado para decodificar apenas a vista base. Além disso, outro tipo de decodificador de vídeo pode ser configurado para decodificar cada um das vistas S0-S7. Um decodificador que é configurado para decodificar tanto a vista base quanto as vistas dependentes pode ser referido como um decodificador que suporta a codificação de multivista.
[0081] As imagens na FIG. 3 são indicados na interseção de cada fileira e cada coluna na FIG. 3. O padrão H.264/AVC com extensões MVC pode usar o termo quadro para representar uma porção do vídeo, enquanto o padrão HEVC pode usar o termo imagem para representar uma porção do vídeo. Esta descrição utiliza o termo imagem e quadro de forma intercambiável.
[0082] As imagens da FIG. 3 são ilustradas usando um bloco sombreado incluindo uma letra que indica se a imagem correspondente é intra-codificada (isto é, uma imagem-I), inter-codificada em uma direção (isto é, como uma imagem- P), ou inter-codificada em múltiplas direções (isto é, como uma imagem-B). Em geral, as previsões são indicadas por setas, onde as imagens apontadas usam a imagem de partida para referência de predição. Por exemplo, a imagem-P de vista S2 na localização temporal T0 é prevista a partir da imagem-I da vista S0 na localização temporal T0.
[0083] Como com a codificação de vídeo de vista única, as imagens de uma sequência de codificação de vídeo de multivista podem ser codificadas previsivelmente em relação às imagens com diferentes localizações temporais. Por exemplo, a imagem-B da vista S0 na localização temporal T1 tem uma seta apontada para ela a partir da imagem-I da vista S0 na localização temporal T0, indicando que a imagem-b é prevista a partir da imagem-I. Além disso, no entanto, no contexto da codificação de vídeo de multivista, as imagens podem ser previstas inter-vista. Ou seja, um componente de vista (ex., um componente de vista de textura) pode usar os componentes de vista em outra vista para referência. Em MVC, por exemplo, a predição intervista é realizada como se o componente de vista em outra vista fosse uma referência de inter-predição. As potenciais referências de inter-vista são sinalizadas na extensão MVC do Conjunto de parâmetros de Sequência (SPS) e pode ser modificadas pelo processo de construção da lista de imagem de referência, o que permite ordenação flexível das referências de predição inter-predição ou inter-vista.
[0084] A FIG. 3 fornece vários exemplos de predição inter-vista. As imagens da vista S1, no exemplo da FIG. 3, são ilustrados como sendo previstas a partir das imagens em diferentes locais temporais da vista S1, bem como previstas inter-vista a partir das imagens das vistas S0 e S2 nas mesmas posições temporais. Por exemplo, a imagem-B da vista S1 na localização temporal T1 é prevista a partir de cada uma das imagens-B da vista S1 nos locais temporais T0 e T2, bem como as imagens-B de vista S0 e S2 na localização temporal T1.
[0085] A FIG. 3 também ilustra variações na hierarquia de predição utilizando diferentes níveis de sombreamento, onde uma maior quantidade de quadros de sombreamento (isto é, relativamente mais escuros) são maiores na hierarquia de predição do que aqueles quadros tendo menos de sombreamento (isto é, relativamente mais claros). Por exemplo, todas as imagens-I na FIG. 3 são ilustradas com sombreamento completo, enquanto as imagens-P têm um sombreado um pouco mais claro, e as imagens-B (e imagens com b minúsculo) tem vários níveis de sombreamento em relação umas às outras, mas sempre mais claras do que o sombreamento das imagens-P e imagens-I.
[0086] Em geral, a hierarquia de predição pode ser relacionada aos índices de ordem de vista, em que imagens relativamente mais elevadas na hierarquia de predição devem ser decodificadas antes de decodificar imagens que estão relativamente mais baixo na hierarquia. Essas imagens relativamente mais elevadas na hierarquia podem ser usadas como imagens de referência, durante a decodificação das imagens relativamente mais baixas na hierarquia. Um índice de ordem de vista é um índice que indica a ordem de decodificação dos componentes de vista em uma unidade de acesso. Os índices de ordem de vista são implícitos na extensão MVC do conjunto de parâmetros de sequência (SPS), conforme especificado no anexo H do H.264/AVC (a alteração de MVC). No SPS, para cada índice i, o view_id correspondente é sinalizado. A decodificação dos componentes de vista pode seguir a ordem crescente do índice de ordem de vista. Se todas as vistas são apresentadas, então, os índices da ordem de vista estão em uma ordem consecutiva de 0 a num_views_minus_1.
[0087] Desta maneira, as imagens utilizadas como imagens de referência são decodificadas antes das imagens que dependem das imagens de referência. Um índice de ordem de vista é um índice que indica a ordem de decodificação dos componentes de vista em uma unidade de acesso. Para cada índice de ordem de vista i, o view_id correspondente é sinalizado. A decodificação dos componentes de vista segue a ordem crescente dos índices de ordem de vista. Se todas as vistas são apresentadas, então, o conjunto de índices de ordem de vista pode compreender um conjunto consecutivamente ordenado a partir de zero a um número menor que o número total de vistas.
[0088] Para certas imagens em níveis iguais de hierarquia, a ordem de decodificação pode não importar em relação uma à outra. Por exemplo, a imagem-I da vista S0 na localização temporal T0 pode ser utilizada como uma imagem de referência para a imagem-P da vista S2 na localização temporal T0, a qual, por sua vez, pode ser utilizada como imagem de referência para a imagem-P da vista S4 na localização temporal T0. Por conseguinte, a imagem-I da vista S0 na localização temporal T0 deve ser decodificada antes da imagem-P da vista S2 na localização temporal T0, que por sua vez, deve ser decodificada antes da imagem-P da vista S4 na localização temporal T0. No entanto, entre as vistas S1 e S3, uma ordem de decodificação não importa, porque as vistas S1 e S3 não dependem uma da outra para a predição. Ao invés as vistas S1 e S3 são previstas apenas a partir de outras vistas que são mais elevadas na hierarquia de predição. Além disso, a vista S1 pode ser decodificada antes da vista S4, enquanto a vista S1 é decodificada após as vistas S0 e S2.
[0089] Deste modo, uma ordenação hierárquica pode ser usada para descrever uma vista S0 a S7. Nesta descrição, a notação "SA> SB" significa que a vista SA deve ser decodificada antes da vista SB. Usando esta notação, S0> S2> S4> S6> S7, no exemplo da FIG. 2. Também, no que diz respeito ao exemplo da FIG. 2, S0> S1, S2> S1, S2> S3, S4> S3, S4> S5 e S6> S5. Qualquer ordem de decodificação para as vistas que não viole esta ordenação hierárquica é possível. Assim, muitas ordens de decodificação diferentes são possíveis, com limitações baseadas na ordenação hierárquica.
[0090] A extensão MVC SPS será agora descrita. Um componente de vista pode usar os componentes de vista em outras vistas para referência, o que é chamado de predição inter-vista. Em MVC, a predição inter-vista é realizada como se o componente de vista em outra vista fosse uma referência de inter-predição. As referências inter-vista potenciais, no entanto, são sinalizadas na extensão MVC do Conjunto de parâmetros de Sequência (SPS) (como mostrado na tabela de sintaxe a seguir, Tabela 1) e podem ser modificadas pelo processo de construção da lista de imagem de referência, que permite a ordenação flexível das referências de inter predição ou inter-vista. O codificador de vídeo 20 representa um exemplo à saída de um codificador de vídeo configurado para gerar sintaxe, como mostrado na Tabela 1, e o decodificador de vídeo 30 representa um exemplo de um decodificador de vídeo configurado para interpretar e processar tal sintaxe. Tabela 1
Figure img0001
Figure img0002
[0091] Na extensão MVC SPS, para cada vista, o número de vistas que podem ser usadas para formar a lista de imagem de referência 0 e lista de imagem de referência 1 é sinalizado. A relação de predição para uma imagem âncora, como sinalizado na extensão MVC SPS, pode ser diferente da relação de predição para uma imagem não-âncora (sinalizada na extensão MVC SPS) da mesma vista.
[0092] Conjuntos de parâmetro para HEVC serão agora descritos. Em HEVC WD7, o mecanismo de conjunto de parâmetros de vídeo, sequência, imagem e adaptação em HEVC desacopla a transmissão das informações raramente alteradas a partir da transmissão dos dados do bloco codificado. Conjuntos de parâmetros de vídeo, sequência, imagem e adaptação podem, em algumas aplicações, ser transportados "fora da banda," i.e., não transportados junto com as unidades contendo dados de vídeo codificados. A transmissão fora da banda é tipicamente confiável.
[0093] Em HEVC WD7, um identificador de um conjunto de parâmetros de sequência de vídeo (VPS), conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS) ou conjunto de parâmetros de adaptação (APS) é codificado usando um elemento de sintaxe de comprimento variável 'ue(v)'. Cada SPS inclui um ID de SPS e um ID de VPS, cada PPS inclui um ID de PPS e um ID de SPS, e cada cabeçalho de fatia inclui um ID de PPS e possivelmente um ID de APS.
[0094] Apesar de um conjunto de parâmetross de vídeo (VPS) ser suportado no HEVC WD7, a maioria dos parâmetros de informação de nível de sequência ainda só estão presentes no SPS. Existem vários problemas ou potenciais desvantagens do projeto VPS de WD7. Como um exemplo, uma quantidade significativa da informação contida nos SPSs pode ou ser a mesma para todos os SPSs, ou ser a mesma para pelo menos dois SPSs. Duplicar esta informação no SPS exige maior largura de banda. Os conjuntos de parâmetros (incluindo, pelo menos, VPS, SPS e PPS) podem precisar ser sinalizados fora da banda. Se sinalizados na banda, esse aumento de taxa de bits é eficaz para cada sintonização em um ponto de acesso aleatório.
[0095] Como um segundo exemplo, em potenciais extensões HEVC, se os princípios de projeto semelhantes como AVC são seguidos, então a maioria das informações de descrição do ponto de operação não pode ser incluída no SPS ou VPS, e em vez disso, as mensagens SEI podem ser utilizadas para inicialização e negociação da sessão. Assim, um MANE pode ser necessário para analisar as mensagens de SPS, VPS e SEI para os fins acima mencionados. Como um terceiro exemplo, uma informação que está presente no SPS em WD7 pode ser alterada ou eliminada nas extensões HEVC.
[0096] Para suprir os eventuais problemas discutidos acima, esta descrição propõe várias técnicas para o projeto dos conjuntos de parâmetros, incluindo o VPS ou outros conjuntos de parâmetros. Por exemplo, de acordo com as técnicas descritas nesta descrição, a informação que é tipicamente a mesma para toda a sequência de vídeo codificada pode estar presente no VPS, enquanto apenas os elementos de sintaxe que podem alterar o nível de SPS podem estar presente no SPS. Outros elementos de sintaxe podem ser excluídos do SPS se já presentes no VPS.
[0097] Como outro exemplo das técnicas desta descrição, a informação relacionada à negociação da sessão pode estar presentes em VPS. Exemplos de informações relacionadas com a negociação da sessão incluem informações de perfil, informações sobre o nível, as informações de resolução de quadro, informações taxa de quadros e informações de taxa de bits, bem como outras informações. Como outro exemplo das técnicas desta descrição, o VPS pode ser projetado de um modo que a análise da informação dos pontos de operação que são importantes para a negociação da sessão não exija a codificação de comprimento variável, incluindo potencialmente a informação tanto para a camada base quanto para a vista e para as camadas de melhoria ou vistas. Os elementos de sintaxe no VPS podem ser agrupados de modo que para cada grupo, a extensão HEVC pode fornecer zero ou mais instâncias, e os pontos de operação na extensão HEVC referem-se apenas a um índice.
[0098] Vários exemplos da sintaxe e semântica para VPS, SPS, informações de usabilidade de vídeo (VUI) e parâmetros HRD e cabeçalho de fatia são fornecidos abaixo. As Tabelas 2 a 6 ilustram um primeiro exemplo. A Tabela 1, definida acima, mostra um exemplo da sintaxe de VPS. As colunas de "descritor" das Tabelas 2 a 6, bem como nas outras tabelas nesta descrição, identificam o número de bits para cada elemento de sintaxe, com "v" indicando o número de bits que pode ser variável. Valores de número na coluna "descritor" indicam que o elemento de sintaxe é transmitido através de um número fixo de bits. Por exemplo, "u (8)" significa que um elemento de sintaxe com um número fixo de oito bits, ao passo que "ue (v)" significa um elemento de sintaxe com um número variável de bits. A fim de analisar os elementos de sintaxe com o descritor ue(v), o dispositivo de análise (como um decodificador de vídeo ou MANE) pode precisar implementar a codificação de entropia, a fim de decodificar e interpretar tais elementos de sintaxe.
Figure img0003
Figure img0004
Figure img0005
Figure img0006
Figure img0007
Figure img0008
Figure img0009
Figure img0010
Figure img0011
Figure img0012
[0099] A semântica RBSP do conjunto de parâmetros de vídeo, como aquelas mostradas na Tabela 2 acima, será agora descrita. O elemento de sintaxe video_parameter_set_id na Tabela 2 fornece uma identificação para o conjunto de parâmetros de vídeo. Usando o valor de video_parameter_set_id, outra estrutura de sintaxe, como um SPS, pode ativar um VPS particular. A Tabela 3, por exemplo, que mostra uma estrutura de sintaxe de SPS examplar, tabém inclui um elemento de sintaxe video_parameter_set_id. Com base no valor do elemento de sintaxe video_parameter_set_id no SPS, um VPS particular com aqueles mesmo cvalor pode ser ativado para codificar blocos de vídeo associados com o SPS. Tipicamente, vários SPSs serão associados com o mesmo VPS. Como um exemplo, o decodificador de vídeo 30 pode receber nos dados de vídeo um primeiro SPS que inclui um primeiro valor para o elemento de sintaxe video_parameter_set_id, e decodificador de vídeo 30 também pode receber um segundo SPS que inclui o mesmo valor para o elemento de sintaxe video_parameter_set_id. O primeiro SPS pode ser uma primeira estrutura de sintaxe incluindo um primeiro grupo de elementos de sintaxe que se aplica a uma ou mais imagens de dados de video inteiras, e o segundo SPS pode ser uma segunda estrutura de sintaxe que inclui um segundo grupo de elementos de sintaxe que se aplica a uma ou mais imagens de dados de vídeo inteiras diferentes. O decodificador de vídeo 30 decodifica blocos de vídeo associados com ambos o primeiro SPS e o segundo SPS com base nos parâmetros a partir do mesmo VPS.
[00100] Os elementos de sintaxe profile_space, profile_idc, profile_compatability_flag[i], constraint_flags, level_idc, bit_depth_luma_minus8, bit_depth_chroma_minus8, chroma_format_idc, pic_width_in_luma_samples, pic_height_in_luma_samples, pic_cropping_flag, pic_crop_left_offset, pic_crop_right_offset, pic_crop_top_offset, pic_crop_bottom_offset, temporal_id_nesting_flag e separate_colour_plane_flag tem a mesma semântica daqueles elementos de sintaxe com os mesmos nomes de elemento de sintaxe no conjunto de parâmetros de sequência como especificado no WD7 mas de acordo com as técnicas propostas desta descrição sendo movidas do SPS para o VPS.
[00101] O elemento de sintaxe profile_space identifica um contexto para interpretar o elemento de sintaxe profile_idc, e o elemento de sintaxe profile_idc identifica um grupo de perfis. Os elementos de sintaxe profile_compatability_flag[i] podem identificar se os dados de vídeo são compatíveis com o perfil [i]. O decodificador de vídeo 20 pode, por exemplo, receber nos dados de vídeo valores para o profile_space e profile_idc, e com base no valor do profile_space, identificar um contexto para interpretar o elemento de sintaxe profile_idc. Com base no valor interpretado do profile_idc, o decodificador de vídeo 30 pode indentificar um grupo de perfis, e para cada perfil, o decodificador de vídeo 30 pode receber um valor para o elemento de sintaxe profile_compatability_flag[i] para identificar se os dados de vídeo são compatíveis com o perfil [i]. O elemento de sintaxe profile_idc pode, por exemplo, ter 32 bandeiras associadas, cada bandeira indicando um aspecto específico do perfil. Por exemplo, uma bandeira pode indicar se uma ferramente de codificação ou processo em particular está ligada ou desligada, dado o mesmo perfil.
[00102] O elemento de sintaxe level_idc identifica um nível máximo associado com os dados de vídeo, e o elemento de sintaxe level_lower_temporal_layers_present_flag identifica se uma camada temporal dos dados de vídeo tem um nível que é inferior ao nível máximo. O elemento de sintaxe level_lower_temporal_layers_present_flag definido igual a 1 especifica que level_idc_temporal_subset[i] pode estar presente. O elemento de sintaxe level_lower_temporal_layers_present_flag definido igual a 0 especifica que level_idc_temporal_subset[i] não está presente. O elemento de sintaxe level_idc_temporal_subset[i] especifica o nível ao qual o subconjunto de fluxo de bits consistindo em todas as unidades NAL com temporal_id menor do que ou igual a i se adapta.
[00103] Decodificador de vídeo 30 pode, por exemplo, em resposta ao recebimento de um elemento de sintaxe level_lower_temporal_layers_present_flag definido igual a 1 recebe elementos de sintaxe level_idc_temporal_subset[i]. Os elementos de sintaxe level_idc_temporal_subset[i] podem estar presentes para identificar um nível ao qual a camada temporal [i] obedece.
[00104] Os elementos de sintaxe vps_temporal_id_nesting_flag, vps_temporal_id_nesting_flag, vps_max_dec_pic_buffering[i], vps_num_reorder_pics[i], e vps_max_latency_increase[i] tem a mesma semântica dos seguintes elementos de sintaxe respectivamente no conjunto de parâmetros de sequência de HEVC WD 7: sps_temporal_id_nesting_flag, sps_temporal_id_nesting_flag, sps_max_dec_pic_buffering[i], sps_num_reorder_pics[i], sps_max_latency_increase[i].
[00105] O elemento de sintaxe next_essential_info_byte_offset é um exemplo do elemento de sintaxe de deslocamento apresentado nesta descrição. O elemento de sintaxe next_essential_info_byte_offset especifica o deslocamento de byte do próximo conjunto de perfil e informação de nível e outras informações codificadas de comprimento fixo na unidade VPS NAL, começando a partir do início da unidade NAL. MANE 29, por exemplo, pode receber o elemento de sintaxe next_essential_info_byte_offset e determinar um número de bytes indicados pelo elemento de sintaxe next_essential_info_byte_offset, e com base no número determinado de bytes, MANE 29 pode pular um ou mais elementos de sintaxe codificados de comprimento variável mostrados na Tabela 2, como os elementos de sintaxe de comprimento variável pic_crop_left_offset, pic_crop_right_offset, pic_crop_top_offset, pic_crop_bottom_offset, e os outros elementos de sintaxe de comprimento variável mostrados na Tabela 2. O decodificador de vídeo 30, no entanto, mediante recebimento do elemento de sintaxe next_essential_info_byte_offset pode ignorar o valor do elemento de sintaxe. Assim, após analisar o elemento de sintaxe next_essential_info_byte_offset, decodificador de vídeo 30 pode continuar a análise dos elementos de sintaxe de comprimento variável pic_crop_left_offset, pic_crop_right_offset, pic_crop_top_offset, pic_crop_bottom_offset, e os outros elementos de sintaxe de comprimento variável mostrados na Tabela 2.
[00106] Em uma futura extensão da especificação HEVC, por exemplo, uma extensão de codificação escalável ou uma extensão 3DV, a informação VPS para uma camada não base ou vista pode ser incluída na unidade NAL VPS após a informação de VPS para a camada base ou vista. As informações VPS para uma camada não base ou vista também podem começar com elementos de sintaxe de comprimento fixo, como o perfil codificado, nível e outras informações essenciais para a negociação da sessão. Usando o deslocamento de bit especificado por next_essential_info_byte_offset, MANE 29 pode localizar e acessar aquela informação essencial na unidade NAL VPS sem a necessidade de realizar a decodificação por entropia. Algumas entidades de rede (por exemplo, MANE 29) configuradas para transportar e processar de dados de vídeo podem não ser equipadas para a decodificação por entropia. Utilizando um elemento de sintaxe de deslocamento como descrito nesta descrição, no entanto, tais entidades de rede podem ainda processar alguns aspectos de um conjunto de parâmetross, e usa as informações contidas no elemento de sintaxe processado ao tomar a decisão de encaminhamento para dados de vídeo. Um exemplo da informação que uma entidade de rede pode processar na tomada de decisões de roteamento inclui informações relacionadas à negociação da sessão.
[00107] Os elementos de sintaxe nal_hrd_parameters_present_flag[i] e vcl_hrd_parameters_present_flag[i] tem a semântica similar como nal_hrd_parameters_present_flag, e vcl_hrd_parameters_present_flag que estão presentes nos parâmetros VUI de WD7, mas são aplicáveis à representação da n-ésima camada temporal. O elemento de sintaxe nal_hrd_parameters_present_flag pode, por exemplo, sinalizar quando os parâmetros HRD como taxa de bit, tamanho de buffer de imagem codificada (CPB), e atraso de remoção de CPB inicial (initial_cpb_removal_delay_length_minus1), um atraso de remoção de CPB (cpb_removal_delay_length_minus1), um atraso de produção de DPB (dpb_output_delay_length_minus1), e um comprimento de deslocamento de tempo (time_offset_length). Os elementos de sintaxe podem, por exemplo, incluir um elemento de sintaxe (cbr_flag) indicando se a taxa de bit para os dados de vídeo é constante ou variável.
[00108] O elemento de sintaxe low_delay_hrd_flag pode ser usado para indicar o tempo de remoção de uma unidade de decodificação a partir de um DPB. O elemento de sintaxe sub_pic_cpb_params_present_flag igual a 1 pode especificar que os parâmetros de atraso de remoção de CPB de nível de sub-imagem estão presentes e o CPB pode operar em um nível de unidade de acesso ou nível de sub-imagem. O elemento de sintaxe sub_pic_cpb_params_present_flag igual a 0 pode especificar que os parâmetros de atraso da remoção de CPB no nível de sub-imagem não estão presentes e o CPB funciona em um nível de unidade de acesso. O elemento de sintaxe num_units_in_sub_tick representa o número de unidades de tempo de um relógio que opera na frequência time_scale Hz que corresponde a um incremento (chamado de pulso de relógio de sub-imagem) de um contador de pulso de relógio de sub-imagem. Os parâmetros HRD discutidos acima podem ser aplicáveis a todas as representações da camada temporal.
[00109] O elemento de sintaxe vui_video_parameters_present_flag definido igual a 1 especifica que a estrutura de sintaxe vui_vps( ) está presente no VPS. Esta bandeira definida igual a 0 especifica que o elemento de sintaxe vui_vps( ) não está presente. O elemento de sintaxe num_vps_short_term_ref_pic_sets especifica o número de conjuntos de imagem de referência de curto prazo que são especificados no conjunto de parâmetros de vídeo. O elemento de sintaxe bitrate_info_present_flag[i] definido igual a 1 especifica que a informação da taxa de bit para a n-ésima camada temporal está presente no conjunto de parâmetros de vídeo. O elemento de sintaxe bitrate_info_present_flag[i] definido para 0 especifica que a informação da taxa de bit para a n-ésima camada temporal não está presente no VPS.
[00110] O elemento de sintaxe frm_rate_info_present_flag[i] definido para 1 especifica que a informação da taxa de quadro para a n-ésima camada temporal está presente no conjunto de parâmetros de vídeo. O elemento de sintaxe frm_rate_info_present_flag[i] definido igual a 0 especifica que a informação da taxa de quadro para a n-ésima camada temporal não está presente no conjunto de parâmetros de vídeo.
[00111] O elemento de sintaxe avg_bitrate[i] indica a taxa média de bit da i-ésima representação da camada temporal. A taxa média de bit para a i-ésima representação da camada temporal em bits por segundo é dada por BitRateBPS(avg_bitrate[i]) com a função BitRateBPS( ) sendo especificada por BitRateBPS(x) = (x & (214 - 1))*10(2 + (x >> 14))
[00112] A taxa de bit média pode ser derivada de acordo com o tempo de remoção da unidade de acesso especificado no Anexo C do padrão HEVC. No que segue, bTotal é o número de bits em todas as unidades NAL da i-ésima representação da camada temporal, t1 é o tempo de remoção (em segundos) da primeira unidade de acesso à qual VPS se aplica, e t2 é o tempo de remoção (em segundos) da última unidade de acesso (na ordem de decodificação) à qual VPS se aplica.
[00113] Com x especificando o valor de avg_bitrate[i], o seguinte se aplica: - Se t1 não é igual a t2, a condição a seguir pode ser verdadeira: (x &(214 - 1))= = Round(bTotal - ((t2 — ti)*10(2 + (x >> 14))) ) - Caso contrário (t1 é igual a t2), a condição a seguir pode ser verdadeira: (x & (214 - 1))= = 0
[00114] O elemento de sintaxe max_bitrate_layer[i] indica um limite superior para a taxa de bit da i-ésima representação da camada temporal em qualquer janela de tempo de um segundo, do tempo de remoção da unidade de acesso como especificado no Anexo C. O limite superior para a taxa de bit da camada escalável atual nos bits por segundo é dado por BitrateBPS( max_bitrate_layer[i] ) com a função BitrateBPS( ) sendo especificada na Equação G-369. Os valores da taxa de bit estão disponíveis de acordo com o tempo de remoção da unidade de acesso especificado no Anexo C do padrão HEVC. No que segue, t1 é qualquer ponto no tempo (em segundos), t2 é definido igual a t1 + max_bitrate_calc_window[i] - 100, e bTotal é o número de bits em todas as unidades NAL da camada escalável atual que pertence à unidade de acessos com um tempo de remoção maior que ou igual a t1 e menor que t2. Com x especificando o valor de max_bitrate_layer[i], a condição a seguir pode ser obedecida para todos os valores de t1: (x & (214 - 1)) >= bTotal - ((t2 - t1) * 10(2 + (x >> 14))).
[00115] O elemento de sintaxe constant_frm_rate_idc[i] indica se a taxa de quadro da i-ésima representação da camada temporal é constante. No que segue, um segmento temporal tSeg é qualquer conjunto de duas ou mais unidades de acesso consecutivas, na ordem de decodificação, da representação da camada temporal atual, fTotal(tSeg) é o número de imagens, no segmento temporal tSeg, t1(tSeg) é o tempo de remoção (em segundos) da primeira unidade de acesso (na ordem de decodificação) do segmento temporal tSeg, t2(tSeg) é o tempo de remoção (em segundos) da última unidade de acesso (na ordem de decodificação) do segmento temporal tSeg, e avgFR(tSeg) é a taxa de quadro média no segmento temporal tSeg, que é dado por: avgFR(tSeg) = = Round(fTotal(tSeg) * 256 + (t2(tSeg) - t1(tSeg)))
[0116] Se a i-ésima representação da camada temporal somente contiver uma unidade de acesso ou o valor de avgFR(tSeg) é constante sobre todos os segmentos temporais da i-ésima representação da camada temporal, a taxa de quadro é constante; caso contrário a taxa de quadro não é constante. O elemento de sintaxe constant_frm_rate_idc[i] definido igual a 0 indica que a taxa de quadro da i-ésima representação da camada temporal não é constante. O elemento de sintaxe constant_frm_rate_idc[i] definido igual a 1 indica que a taxa de quadro da i-ésima representação da camada temporal é constante.
[0117] O elemento de sintaxe constant_frm_rate_idc[i] definido igual a 2 indica que a taxa de quadro da i-ésima representação da camada temporal pode ou não ser constante. O valor de constant_frm_rate_idc[i] pode estar na faixa de 0 a 2, inclusive.
[0118] O elemento de sintaxe avg_frm_rate[i] indica a taxa de quadro média, em unidade de quadros por 256 segunsoa, da i-ésima representação da camada temporal. Com fTotal sendo o número de imagens na i-ésima representação da camada temporal, t1 sendo o tempo de remoção (em segundos) da primeira unidade de acesso à qual VPS se aplica, e t2 sendo o tempo de remoção (em segundos) da última unidade de acesso (na ordem de decodificação) à qual VPS se aplica, o seguinte se aplica:
[0119] Se t1 não é igual a t2, a condição a seguir pode ser verdadeira: avg_frm_rate[i] = = Round(fTotal * 256 + (t2 - t1)) Caso contrário (t1 é igual a t2), a condição a seguir pode ser verdadeira: avg_frm_rate[i] = = 0
[0120] A semântica dos parâmetros VUI será agora descrita. Cada elemento de sintaxe nos parâmetros VUI tem a mesma semântica que o elemento de sintaxe com o mesmo nome na sintaxe dos parâmetros VUI como especificado em WD7.
[00121] A semântica RBSP do conjunto de parâmetros de sequência será agora descrita. O elemento de sintaxe use_rps_from_vps_flag definido igual a 1 especifica que os conjuntos de imagens de referência de curto prazo incluídos no conjunto de parâmetros de sequência são aditivos aos conjuntos de imagens de referência de curto prazo incluídos no conjunto de parâmetros de video referido. O elemento de sintaxe use_rps_from_vps_flag definido igual a 0 especifica que os conjuntos de imagens de referência de curto prazo incluídos no conjunto de parâmetros de sequência ultrapassam os conjuntos de imagens de referência de curto prazo incluídos no conjunto de parâmetros de vídeo referido.
[00122] Alternativamente, o elemento de sintaxe num_short_term_ref_pic_sets pode não estar presente no SPS e pode sempre ser inferido por ser definido igual a 0. Alternativamente, o elemento de sintaxe use_rps_from_vps_flag pode não estar presente e pode sempre ser inferido por ser definido igual a 1. Alternativamente, o elemento de sintaxe use_rps_from_vps_flag pode não estar presente e pode sempre ser inferido por ser definido igual a 0.
[00123] A variável NumShortTermRefPicSets pode ser derivada como segue. NumShortTermRefPicSets = num_short_term_ref_pic_sets se(use_rps_from_vps_flag) NumShortTermRefPicSets += num_vps_short_term_ref_pic_sets
[00124] A semântica do cabeçalho da fatia será agora descrita. O elemento de sintaxe short_term_ref_pic_set_idx especifica o índice para a lista dos conjuntos de imagem de referência de curto prazo especificados no conjunto de parâmetros de sequência ativo que pode ser usado para criação do conjunto de imagem de referência da imagem atual. O elemento de sintaxe short_term_ref_pic_set_idx pode ser representado por Ceil(Log2(NumShortTermRefPicSets)) bits. O valor do short_term_ref_pic_set_idx pode estar na faixa de 0 a num_short_term_ref_pic_sets ? 1, inclusive, onde num_short_term_ref_pic_sets é o elemento de sintaxe a partir do conjunto de parâmetros de sequência ativo.
[00125] Uma variável StRpsIdx pode ser derivada como segue. se( short_term_ref_pic_set_sps_flag ) StRpsIdx = short_term_ref_pic_set_idx ainda StRpsIdx = NumShortTermRefPicSets
[00126] O elemento de sintaxe tiles_fixed_structure_idc definido igual a 0 indica que cada conjunto de parâmetros de imagem referido por qualquer imagem na sequência de vídeo codificada tem tiles_or_entropy_coding_sync_idc definido igual a 0. O elemento de sintaxe tiles_fixed_structure_idc definido igual a 1 indica que cada conjunto de parâmetros de imagem que é referido por qualquer imagem na sequência de vídeo codificada tem o mesmo valor dos elementos de sintaxe num_tile_columns_minus1, num_tile_rows_minus1, uniform_spacing_flag, column_width[i], row_height[i] e loop_filter_across_tiles_enabled_flag, quando presente. O elemento de sintaxe tiles_fixed_structure_idcg definido igual a 2 indica que os elementos de sintaxe de tiles em diferentes conjuntos de parâmetros de imagem que são referidos por imagens na sequência de vídeo codificada podem ou não ter o mesmo valor. O valor de tiles_fixed_structure_idc pode estar na faixa de 0 a 2, inclusive. Quando o elemento de sintaxe tiles_fixed_structure_flag não está presente, é inferido por ser igual a 2.
[00127] A sinalização do elemento de sintaxe tiles_fixed_structure_flag definido igual a 1 pode ser uma garantia para um decodificador que cada imagem na sequência de vídeo codificada tem o mesmo número de fileiras distribuídas da mesma forma que pode ser útil para a atribuição da carga de trabalho no caso da decodificação multi-encadeada.
[00128] Um segundo exemplo, similar ao primeiro exemplo descrito acima, será agora descrito. Neste segundo exemplo, os elementos de sintaxe restantes no SPS podem estar presentes no VPS e condicionalmente presentes no SPS. A sintaxe e semântica de VPS e SPS de acordo com este exemplo são modificadas e descritas abaixo nas Tabelas 7-9. Tabela 7 - Sintaxe RBSP do conjunto de parâmetros de vídeo
Figure img0013
Figure img0014
Figure img0015
Figure img0016
Figure img0017
[00129] A semântica dos parâmetros SPS opcionais será agora descrita. A semântica dos elementos de sintaxe e estruturas de sintaxe nesta estrutura de sintaxe tem a mesma semântica que aqueles elementos de sintaxe no SPS com os mesmos nomes de elemento de sintaxe como especificado no primeiro exemplo.
[00130] A semântica RBSP do conjunto de parâmetros de sequência será agora descrita. O elemento de sintaxe sps_parameters_override_flag definido igual a 1 especifica que os valores dos elementos de sintaxe e estrutura de sintaxes a partir de pcm_enabled_flag a tiles_fixed_structure_idc como especificado no conjunto de parâmetros de sequência sobrepõe os valores dos mesmos elementos de sintaxe e estruturas de sintaxe como especificado no conjunto de parâmetros de video referido. O elemento de sintaxe sps_parameters_override_flag definido igual a 0, os valores dos elementos de sintaxe e estruturas de sintaxe a partir de pcm_enabled_flag a tiles_fixed_structure_idc como especificado no conjunto de parâmetros de vídeo referido estão em uso.
[00131] O elemento de sintaxe next_essential_byte_offset mostrado na Tabela 7 pode ser processado e analisado por MANE 29 e/ou decodificador de vídeo 30 da maneira descrita acima com relação à Tabela 2. Da mesma, os elementos de sintaxe, video_parameter_set_id, profile_idc, e profile_space também podem ser gerados pelo decodificador de vídeo 20 e processados e analisados pelo decodificador de vídeo 30 da maneira descrita acima.
[00132] Um terceiro exemplo é um superconjunto do primeiro exemplo. Neste terceiro exemplo, a sintaxe pode ser concebida de uma maneira que torna as extensões mais fáceis de implementar. Além disso, uma extensão do VPS pode ser suportada neste exemplo. O projeto de sintaxe ou projeto de semântica de uma tabela de sintaxe que é exatamente a mesma que a contraparte no primeiro exemplo não está presente. O terceiro exemplo é descrito abaixo com referência às Tabelas 10 a 19.
Figure img0018
Figure img0019
Figure img0020
Figure img0021
Figure img0022
Figure img0023
[00133] A semântica RBSP do conjunto de parâmetros de vídeo será agora descrita. O elemento de sintaxe byte_alligned_bits especifica os possíveis bits que fazem os bits na unidade NAL VPS antes de num_additional_profile_level_info alinhados em byte. O elemento de sintaxe byte_alligned_bits na faixa de 0 a 7, inclusive. O elemento de sintaxe num_additional_profile_level_info especifica o número de perfis adicionais e tabela de informação de nível presente no VPS. O elemento de sintaxe num_additional_rep_fromat_info especifica o número de tabelas de informação de formato de representação adicionais presentes em VPS. O elemento de sintaxe num_additional_dependency_operation_points especifica o número de pontos de operação de dependência presentes ainda no fluxo de bits, independente da escalabilidade temporal. Cada ponto de operação de dependência pode incluir subpontos de operação temporais, cada um tem a mesma estrutura de camada. O elemento de sintaxe extension_type especifica o tipo de extensão do fluxo de bits atual, com 0 correspondendo a 3DV e 1 correspondendo a SVC. O elemento de sintaxe profile_level_index[k] indica o índice para a tabela de informação de nível sinalizada no VPS para o ponto de operação atual da k-ésima dependência. O elemento de sintaxe ref_format_index indica o índice para a tabela de informação de formato de representação sinalizada no VPS para o ponto de operação atual de k-ésima dependência.
[00134] O elemento de sintaxe applicable_lowest_temporal_id[k] e applicable_highest_temporal_id[k] especificam respectivamente o valor de temporal_id mais baixo e valor de temporal_id mais alto correspondendo aos subpontos de operação temporal sinalizados do ponto de operação de k- ésima dependência. Alternativamente, os elementos de sintaxe applicable_lowest_temporal_id[k] e applicable_highest_temporal_id[k] são ambos não sinalizados e inferidos por ser igual a 0 e vps_max_temporal_layers_minus1 respectivamente. Alternativamente, o elemento de sintaxe applicable_lowest_temporal_id[k] não é sinalizado e inferido por ser igual a 0. Alternativamente, o elemento de sintaxe applicable_highest_temporal_id[k] não é sinalizado e inferido por ser igual a vps_max_temporal_layers_minus1.
[00135] O elemento de sintaxe depth_included_flag[k]igual a 1 indica que o ponto de operação de dependência 3DV atual contém profundidade. Esta bandeira igual a 0 indica que um ponto de operação 3DV atual não contém profundidade. Alternativamente, o elemento de sintaxe depth_included_flag[k] não é sinalizado, indicando assim que a profundidade da unidade NAL VCL baseia-se em layer_id_plust1.
[00136] O elemento de sintaxe num_target_output_views_minus1[k] mais 1 especifica o número de vistas de saída alvo no ponto de operação de k- ésima dependência. O elemento de sintaxe num_depedent_layers[k] indica o número de camadas dependentes para a decodificação do ponto de operação atual da k-ésima dependência. O elemento de sintaxe layer_id[k][j] indica o layer_id da j-ésima vista de saída alvo do ponto de operação da k-ésima dependência. O elemento de sintaxe dependent_layer_id[k][j] indica a layer_id da j-ésima vista dependente do k-ésimo ponto de operação de dependência. Em uma alternativa, uma bandeira é sinalizada, logo após a dependent_layer_id[k][j], como direct_dependent_flag[k][j].
[00137] O elemento de sintaxe direct_dependent_flag[k][ j] indica se a j-ésima vista dependente é uma vista diretamente dependente, a ser usada para derivar RPS intervie. O elemento de sintaxe layer_id[k] indica o layer_id mais alto do k-ésimo ponto de operação de dependência atual (SVC). Alternativamente, num_target_output_views_minus1[k], num_depedent_layers[k], layer_id[k][j] e dependent_layer_id[k][j] podem ser sinalizados como ue(v).
[00138] O elemento de sintaxe num_additional_vui_vps_set_info pode especificar o número da tabela do conjunto VPS VUI adicional presente no VPS.
[00139] Para a semântica da tabela de informação de perfil e nível, o elemento de sintaxe profileLevelInfoIdx indica o índice da tabela de informação de perfil e nível. Para a semântica da tabela de informação de formato de representação, o elemento de sintaxe repFormatInfoIdx indica o índice da tabela de informação de formato de representação.
[00140] O elemento de sintaxe next_essential_byte_offset mostrado na Tabela 7 pode ser processado e analisado por MANE 29 e/ou decodificador de vídeo 30 da maneira descrita acima com relação à Tabela 2.
[00141] Para a semântica da tabela do conjunto VPS VUI, o elemento de sintaxe vuiVpsSetIndex indica o índice da tabela do conjunto VPS VUI.
[00142] Alternativamente, a dependência de vista de cada vista pode ser sinalizada no SPS, como segue: Tabela 18
Figure img0024
[00143] O elemento de sintaxe num_reference_views indica o número máximo de vistas de textura ou profundidade usado para construir o subconjunto RPS de inter-vista. O elemento de sintaxe ref_view_layer_id[i] identifica o layer_id da n- ésima vista de textura/profundidade usada para indicar a n- ésima imagem de referência inter-vista (somente) no subconjunto RPS de inter-vista.
[00144] Alternativamente, a extensão VPS pode ser sinalizada como segue. Quando o elemento de sintaxe extension_type indica SVC, o elemento de sintaxe num_additional_dependency_operation_points não é sinalizado mas derivado para ser igual a vps_max_layers_minus1. Uma restrição é dada que as unidades NAL VCL dentro de uma unidade de acesso estão em uma ordem não-descendente do layer_id. Em MVC, o elemento de sintaxe layer_id é equivalente a view_idx. Em 3DV, o elemento de sintaxe view_idx pode ser calculado como segue pelo layer_id: view_idx = (layer_idx>>1). Tabela 19
Figure img0025
Figure img0026
[00145] O elemento de sintaxe depth_present_flag definido igual a 1 indica que pode haver pontos de operação contendo profundidade. O elemento de sintaxe depth_present_flag definido igual a 0 indica que nenhum ponto de operação contém profundidade.
[00146] O elemento de sintaxe num_target_output_views_minus1[k] mais 1 pode ser usado para especificar o número de vistas de saída alvo no ponto de operação de k-ésima dependência. O elemento de sintaxe num_dependent_layers[k] pode ser usado para indicar um número de camadas dependentes para decodificar o atual ponto de operação de k-ésima dependência. Quando depth_present_flag é definido igual a 1, uma camada dependente pode ser ou tanto uma vista de profundidade ou uma vista de textura. O elemento de sintaxe layer_id[k][j] indica o layer_id da j-ésima vista de textura de saída alvo do ponto de operação de k-ésima dependência. A layer_id da vista de profundidade, associado com a vista de textura, se presente, é layer_id[k][j]+1.
[00147] Alternativamente, o elemento de sintaxe view_idx[k][j] ao invés de layer_id[k][j] pode ser sinalizado para cada vista de saída alvo. Para cada view_idx[k][j], a layer_id da vista de textura correspondente é (view_idx[k][j]<<depth_present_flag). Se depth_included_flag[k] é igual a 1, a layer_id da vista de profundidade correspondente é (view_idx[k][j]<<depth_present_flag)+1, que é (view_idx[k][j]<<1)+1 já que depth_present_flag deve ser 1 neste caso. Alternativamente, o elemento de sintaxe layer_id[k][j] pode ser alterado para view_idx[k][j] e é u(v) codificado, com o comprimento sendo 5 - depth_present_flag. Alternativamente, o elemento de sintaxe layer_id[k][j] pode ser alterado para view_idx[k][j] e é u(v) codificado, com o comprimento sendo 5 - depth_included[k].
[00148] Um quarto exemplo, é um superconjunto do segundo exemplo. A sintaxe é projetada de forma amigável à extensão. Além disso, a extensão de VPS é fornecida neste exemplo. O projeto de sintaxe ou projeto de semântica de uma tabela de sintaxe que é exatamente a mesma que a contraparte no segundo exemplo não está presente. Tabela 20 - Sintaxe RBSP do conjunto de parâmetros de vídeo (espec. base somente)
Figure img0027
Figure img0028
Figure img0029
[0149] O elemento de sintaxe next_essential_byte_offset mostrados na Tabela 21 pode ser processado e analisado por MANE 29 e/ou decodificador de vídeo 30 da maneira descrita acima com relação à Tabela 2.
[0150] FIG. 4 é um diagrama de blocos ilustrando um codificador de vídeo exemplar 20 que pode implementar as técnicas descritas nesta descrição. O codificador de vídeo 20 pode, por exemplo, gerar as estruturas de sintaxe descritas acima com relação às Tabelas 1-21. O codificador de vídeo 20 pode realizar a intra- e inter-codificação de blocos de vídeo dentro das fatias de vídeo. Intra-codificação baseia-se na predição espacial para reduzir ou remover a redundância espacial no vídeo dentro de um dado quadro de vídeo ou imagem. A inter-codificação baseia-se na predição temporal para reduzir ou remover a redundância espacial no vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intra-modo (modo I) pode se referir a qualquer dos vários modos de compressão baseados no espaço. Inter-modos, como predição unidirecional (modo P) ou bi-predição (modo B), pode se referir a qualquer dos vários modos de compressão baseados no tempo.
[0151] No exemplo da FIG. 4, o codificador de vídeo 20 inclui uma unidade de divisão 35, unidade de processamento de predição 41, unidade de filtro 63, memória da imagem 64, somador 50, unidade de processamento de transformada 52, unidade de quantificação 54, e unidade de codificação por entropia 56. A unidade de processamento de predição 41 inclui a unidade de estimativa de movimento 42, unidade de compensação do movimento 44, e unidade de processamento de intra-predição 46. Para a reconstrução do bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantificação inversa 58, unidade de processamento de transformada inversa 60, e somador 62. A unidade de filtro 63 é destinada a representar um ou mais filtros de circuito como um filtro de desbloqueio, um filtro de circuito adaptativo (ALF), e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 63 seja mostrada na FIG. 4 como estando em um filtro de circuito, em outras configurações, a unidade de filtro 63 pode ser implementada como um filtro pós-circuito. A FIG. 4 também mostra o dispositivo de pós-processamento 57 que pode realizar o processamento adicional nos dados de vídeo codificados gerados pelo codificador de vídeo 20. As técnicas desta descrição, que incluem gerar um conjunto de parâmetros dentro de um elemento de sintaxe de deslocamento, podem em alguns casos ser implementadas pelo codificador de vídeo 20. Em outros casos, no entanto, as técnicas desta descrição podem ser implementadas pelo dispositivo de pós- processamento 57.
[0152] Como mostrado na FIG. 4, o codificador de vídeo 20 recebe dados de vídeo, e a unidade de divisão 35 divide os dados em blocos de vídeo. Esta divisão também podem incluir a divisão em fatias, fileiras ou outras unidades maiores, assim como a divisão de bloco de vídeo, ex., de acordo com uma estrutura de quadtree das LCUs e CUs. O codificador de vídeo 20 geralmente ilustra os componentes que codificam blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em vários blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como fileiras). A unidade de processamento de predição 41 pode selecionar um de uma pluralidade de modos de codificação possíveis, como um de uma pluralidade de modos de intra-codificação ou um de uma pluralidade de modos de inter-codificação, para o bloco de vídeo atual com base nos resultados de erro (ex., a taxa de codificação e o nível de distorção). A unidade de processamento de predição 41 pode fornecer o bloco intra- ou inter-codificado resultante ao somador 50 para gerar os dados do bloco residual e para o somador 62 reconstruir o bloco codificado para uso como uma imagem de referência.
[0153] A unidade de processamento de intra-predição 46 dentro da unidade de processamento de predição 41 pode realizar a codificação intra-previsiva do bloco de vídeo atual em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco atual a ser codificado para fornecer a compressão espacial. A unidade de estimativa de movimento 42 e unidade de compensação do movimento 44 dentro da unidade de processamento de predição 41 realizam a codificação inter-previsiva do bloco de vídeo atual em relação a um ou mais blocos de predição em uma ou mais imagens de referência para fornecer a compressão temporal.
[0154] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de inter-predição para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode desdignar fatias de vídeo na sequência como fatias P, fatias B ou fatias GPB. A unidade de estimativa do movimento 42 e unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. A estimativa de movimento, realizadas pela unidade de estimativa do movimento 42, é o processo de geração dos vetores de movimento, que estima o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro de vídeo ou imagem atual em relação a um bloco de predição dentro de uma imagem de referência.
[00155] Um bloco de predição é um bloco que é descoberto por corresponder muito de perto à PU do bloco de vídeo a ser codificado, em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD), soma da diferença ao quadrado (SSD), ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para as posições de pixel sub- inteiras das imagens de referência armazenadas na memória de imagem 64. Por exemplo, codificador de vídeo 20 pode interpolar valores de posições de pixel de um quarto, posições de pixel de um oitavo, ou outras posições de pixel fracionárias da imagem de referência. Portanto, a unidade de estimativa do movimento 42 pode realizar uma busca de movimento em relação às posições de pixel cheias e posições de pixel fracionárias e produzir um vetor de movimento com a precisão de pixel fracionária.
[00156] A unidade de estimativa do movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia inter-codificada pela comparação da posição da PU com a position de um bloco de predição de uma imagem de referência. A imagem de referência pode ser escolhida a partir da primeira lista de imagem de referência (Lista 0) ou segunda lista de imagem de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagem 64. A unidade de estimativa do movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e unidade de compensação de movimento 44.
[00157] A compensação do movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco de predição com base no vetor de movimento determinado pela estimativa do movimento, possivelmente pela realização de interpolações para orecisão de sub-pixel. Mediante recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagem de referência. O codificador de vídeo 20 forma um bloco de vídeo residual pela subtração dos valores de pixel do bloco de predição dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir tanto componentes de diferença luma quanto chroma. O somador 50 representa a componente ou componentes que realizam esta operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados com os blocos de vídeo e a fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[00158] A unidade de intra-predição 46 pode intra-prever um bloco atual, como uma alternativa à inter-predição realizada pela unidade de estimativa do movimento 42 e unidade de compensação de movimento 44, como descrito acima. Em particular, a unidade de intra-predição 46 pode determinar um modo de intra-predição para usar para codificar um bloco atual. Em alguns exemplos, a unidade de intra-predição 46 pode codificar um bloco atual usando vários modos de intra-predição, ex., durante passagens de codificação separadas, e unidade de intra-predição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode escolher um modo de intra-predição adequado para uso a partir dos modos testados. Por exemplo, a unidade de intra- predição 46 pode calcular os valores de distorção de taxa usando uma analise de distorção de taxa para os vários modos de intra-predição testados, e escolher o modo de intra-predição tendo as melhores características de distorção de taxa dentre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um original, bloco não codificado que foi codificado para produzir o bloco codificado, assim como uma taxa de bit (isto é, um número de bits) usada para produzir o bloco codificado. A unidade de intra-predição 46 pode calcular as razões a partir das distorções e taxas para os vários blocos codificados para determinar qual modo de intra- predição exibe o melhor valor de distorção de taxa para o bloco.
[00159] Em qualquer caso, após selecionar um modo de intra-predição para um bloco, a unidade de intra-predição 46 pode fornecer a informação indicativa do modo de intra- predição escolhido para o bloco para a unidade de codificação de entropia 56. A unidade de codificação de entropia 56 pode codificar a informação que indica o modo de intra-predição selecionado de acordo com as técnicas desta descrição. O codificador de vídeo 20 pode incluir nos dados da configuração do fluxo de bits transmitido, que podem incluir uma pluralidade de tabelas do índice de modo de intra-predição e um pluralidade de tabelas do índice de modo de intra-predição modificadas (também referidas como tabelas de mapeamento de palavra código), as definições dos contextos de codificação para vários blocos, e indicações de um modo de intra-predição mais provável, uma tabela do índice do modo de intra-predição, e uma tabela do índice de modo de intra-predição modificado para usar para cada um dos contextos.
[00160] Após a unidade de processamento de predição 41 gerar o bloco de predição para o bloco de vídeo atual através ou da inter-predição ou intra-predição, o codificador de vídeo 20 forma um bloco de vídeo residual pela subtração do bloco de predição do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais TUs e aplicados à unidade de processamento de transformada 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais usando uma transformada, como uma transformada cosseno discreta (DCT) ou uma transformada conceitualmente similar. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais de um domínio de pixel em um domínio de transformada, como um domínio de frequência.
[00161] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantificação 54. A unidade de quantificação 54 quantifica os coeficientes de transformada para reduzir ainda mais a taxa de bit. O processo de quantificação pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. O grau de quantificação pode ser modificado pelo ajuste de um parâmetro de quantificação. Em alguns exemplos, a unidade de quantificação 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada quantificados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[00162] Após a quantificação, a unidade de codificação de entropia 56 codifica a entropia dos coeficientes de transformada quantificados. Por exemplo, a unidade de codificação de entropia 56 pode realizar a codificação de comprimento variável adpatativa ao contexto (CAVLC), codificação aritmética binária adpatativa ao contexto (CABAC), codificação aritmética binária adaptativa ao context com base na sintaxe (SBAC), codificação por Entropia de Divisão de Intervalo de Probabilidade (PIPE) ou outra metodologia ou técnica de codificação por entropia. Depois da codificação por entropia pela unidade de codificação de entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30 ou arquivado para transmissão posterior ou recuperação pelo decodificadro de vídeo 30. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual sendo codificada.
[00163] A unidade de quantificação inversa 58 e unidade de processamento de transformada inversa 60 aplicam a quantificação inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para uso posterior como um bloco de referência de uma imagem de referência. A unidade de compensação do movimento 44 pode calcular um bloco de referência pela adição do bloco residual a um bloco de predição de uma das imagens de referência dentro de uma das listas de imagem de referência. A unidade de compensação do movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores de pixel sub-inteiros para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado de movimento produzido pela unidade de compensação do movimento 44 para produzir um bloco de referência para armazenamento na memória da imagem 64. O bloco de referência pode ser usado pela unidade de estimativa de movimento 42 e unidade de compensação do movimento 44 como um bloco de referência para inter-prever um bloco em um quadro de vídeo ou imagem subsequente.
[00164] Desta maneira, o codificador de vídeo 20 da FIG. 4 representa um exemplo de um codificador de vídeo configurado para gerar a sintaxe descrita acima nas Tabelas 1 a 21. O codificador de vídeo 20 pode, por exemplo, gerar conjuntos de parâmetros VPS, SPS, PPS, e APS como descrito acima. Em um exemplo, o codificador de vídeo 20 pode gerar um conjunto de parâmetros para dados de vídeo codificados que inclui um ou mais elementos de sintaxe de comprimento fixo iniciais seguido por um elemento de sintaxe de deslocamento. Os um ou mais elementos de sintaxe de comprimento fixo iniciais podem, por exemplo, incluir informações relacionadas à negociação da sessão. O elemento de sintaxe de deslocamento pode indicar um número de bytes a ser pulado quando o conjunto de parâmetros é processado por um MANE. O número de bytes a ser pulado pode, por exemplo, incluir um ou mais elementos de sintaxe de comprimento variável. O codificador de vídeo 20 pode incluir no conjunto de parâmetros, seguindo os bytes pulados, elementos de sintaxe de comprimento fixo adicionais. Os elementos de sintaxe adicionais de comprimento fixo podem, por exemplo, incluir informações relacionadas a outra camada de dados de vídeo. Em um exemplo, os elementos de sintaxe de comprimento fixo inicial podem incluir informação relacionada à negociação da sessão para uma camada base, enquanto os elementos de sintaxe adicionais de comprimento fixo podem incluir informação relacionada à negociação da sessão para uma camada não-base.
[00165] O codificador de vídeo 20 pode determinar o valor para o elemento de sintaxe de deslocamento com base no número de bits usado para codificar um ou mais elementos de sintaxe de comprimento variável. Por exemplo, assumir para um primeiro VPS que os elementos de sintaxe a serem pulados incluem três elementos de sintaxe de comprimento fixo de 2 bits, 3 bits, e 5 bits assim como quatro elementos de sintaxe de comprimento variável de 2 bits, 4, bits, 5 bits, e 3 bits. Neste exemplo, os elementos de sintaxe de comprimento fixo incluem um total de 10 bits enquanto os elementos de sintaxe de comprimento variável incluem um total de 14 bits. Assim, para o primeiro VPS, o codificador de vídeo 20 pode definir o valor do elemento de sintaxe de deslocamento para 24 incluindo 24 bits (ex., 3 bytes) devem ser pulados. Para um segundo VPS, o número de bits para cada elemento de sintaxe fixo será novamente 10, mas o número de bits usado para os elementos de sintaxe de comprimento variável pode ser diferente. Assim, para um segundo VPS, o codificador de vídeo 20 pode definir o valor para o elemento de sintaxe de deslocamento para um valor diferente.
[00166] As técnicas desta descrição foram geralmente descritas com relação ao codificador de vídeo 20, mas como mencionado acima, algumas das técnicas desta descrição também podem ser implementadas pelo dispositivo de pós- processamento 57. Por exemplo, dispositivo de pós- processamento 57 pode gerar um VPS para várias camadas de dados de vídeo geradas pelo codificador de vídeo 20.
[00167] FIG. 5 é um diagrama de blocos ilustrando um decodificador de vídeo exemplar 30 que pode implementar as técnicas descritas nesta descrição. O decodificador de vídeo 30 pode, por exemplo, ser configurado para processar e analisar as estruturas de sintaxe descritas acima com relação às Tabelas 1 a 21. No exemplo da FIG. 5, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 80, unidade de processamento de predição 81, unidade de quantificação inversa 86, unidade de transformação inversa 88, somador 90, unidade de filtro 91, e memória da imagem 92. A unidade de processamento de predição 81 inclui a unidade de compensação do movimento 82 e unidade de processamento de intra-predição 84. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passada de decodificação geralmente recíproca à passada de codificação descrita com relação ao codificador de vídeo 20 da FIG. 4.
[00168] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados a partir do codificador de vídeo 20. O decodificador de vídeo 30 pode receber o fluxo de bits de vídeo codificado a partir de uma entidade de rede 79. A entidade de rede 79 pode, por exemplo, ser um servidor, um MANE, um editor/divisor de vídeo, ou outro desses dispositivos configurados para implementar uma ou mais das técnicas descritas acima. A entidade de rede 79 pode ou não incluir o codificador de vídeo 20. Como descrito acima, algumas das técnicas descritas nesta descrição podem ser implementadas pela entidade de rede 79 antes da rede 79 transmitir o fluxo de bits de vídeo codificado para o decodificador de vídeo 30. Em alguns sistemas de decodificação de vídeo, a entidade de rede 79 e decodificador de vídeo 30 podem ser partes de dispositivos separados, enquanto em outros casos, a funcionalidade descrita com relação à entidade de rede 79 pode ser realizada pelo mesmo dispositivo que compreende o decodificador de vídeo 30.
[00169] A entidade de rede 79 representa um exemplo de um dispositivo de processamento de vídeo configurado para processar um ou mais elementos de sintaxe iniciais para um conjunto de parâmetros associado com um fluxo de bits de vídeo; receber no conjunto de parâmetros um elemento de sintaxe de deslocamento para o conjunto de parâmetros que identifica os elementos de sintaxe a serem pulados dentro do conjunto de parâmetros, e com base no elemento de sintaxe de deslocamento, pular os elementos de sintaxe dentro do conjunto de parâmetros. A entidade de rede 79 também pode processar um ou mais elementos de sintaxe adicionais no conjunto de parâmetros. Os um ou mais elementos de sintaxe adicionais são depois dos elementos de sintaxe pulados no conjunto de parâmetros.
[00170] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados a partir do codificador de vídeo 20. Os blocos de vídeo podem, por exemplo, ser roteados a partir do codificador de vídeo 20 para o decodificador de vídeo 30 através de um ou mais MANEs, como MANE 29 na FIG. 1 ou entidade de rede 79 na FIG. 5. A unidade de decodificação por entropia 80 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantificados, vetores de movimento, e outros elementos de sintaxe. A unidade de decodificação por entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de processamento de predição 81. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou o nível de bloco de vídeo.
[00171] Como apresentado acima, a unidade de decodificação por entropia 80 pode processar e analisar ambos elementos de sintaxe de comprimento fixo e elementos de sintaxe de comprimento variável em um ou mais conjuntos de parâmetros, como um VPS, SPS, PPS, e APS. Em um ou mais dos conjuntos de parâmetros, por exemplo um VPS, decodificador de vídeo 30 pode receber um elemento de sintaxe de deslocamento como descrito nesta descrição. Em resposta ao recebimento de um elemento de sintaxe de deslocamento, o decodificador de vídeo 30 pode essencialmente ignorar o valor do elemento de sintaxe de deslocamento. Por exemplo, o decodificador de vídeo 30 pode receber um elemento de sintaxe de deslocamento mas pode continuar a decodificar elementos de sintaxe, incluindo elementos de sintaxe de comprimento variável, que seguem o elemento de sintaxe de deslocamento sem pular quaisquer dos elementos de sintaxe.
[00172] Quando a fatia de vídeo é codificada como uma fatia intra-codificada (I), a unidade de processamento de intra-predição 84 da unidade de processamento de predição 81 pode gerar a predição dados para um bloco de vídeo da fatia de vídeo atual com base em um modo de intra-predição simalizado e dados dos blocos anteriormente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia inter-codificada (i.e., B, P ou GPB), a unidade de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos de predição para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação de entropia 80. Os blocos de predição podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. O decodificador de vídeo 30 pode construir o quadro de listas de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base nas imagens de referência armazenadas na memória de imagem 92.
[00173] A unidade de compensação de movimento 82 determina a informação de predição para um bloco de vídeo da fatia de vídeo atual pela análise dos vetores de movimento e outros elementos de sintaxe, e usa a informação de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (ex., intra- ou inter-predição) usado para codificar os blocos de vídeo de uma fatia de vídeo, um tipo de fatia de inter-predição (ex., fatia B, fatia P, ou fatia GPB), informação de construção para uma ou mais das listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo inter-codificado da fatia, status de inter-predição para cada bloco de vídeo inter-codificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[00174] A unidade de compensação de movimento 82 também pode realizar a interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 82 pode usar filtros de interpolação como usado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels sub-inteiros dos blocos de referência. Neste caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos de predição.
[00175] A unidade de quantificação inversa 86 quantifica inversamente, i.e., desquantifica, os coeficientes de transformada quantificados fornecidos no fluxo de bits e decodificados pela unidade de decodificação de entropia 80. O processo de quantificação inversa pode incluir o uso de um parâmetro de quantificação calculado pelo codificador de vídeo 20 para cada bloco de vídeo em uma fatia de vídeo para determinar um grau de quantificação e, da mesma forma, um grau de quantificação inversa que deveria ser aplicada. A unidade de processamento de transformada inversa 88 aplica uma transformada inversa, ex., uma DCT inversa, uma transformada de número inteiro inversa, ou um processo de transformada inversa conceitualmente similar, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[00176] Após a unidade de compensação de movimento 82 gerar o bloco de predição para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma dos blocos residuais a partir da unidade de processamento de transformada inversa 88 com os blocos de predição correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou componentes que realizam esta operação de soma. Se desejado, filtros de circuito (ou no circuito de codificação ou após o circuito de codificação) também podem ser usados para transições de pixel suaves, ou de outra forma para melhorar a qualidade do vídeo. A unidade de filtro 91 é destinada a representar um ou mais filtros de circuito como um filtro de desbloqueio, um filtro de circuito adaptativo (ALF), e um filtro de deslocamento adptativo de amostra (SAO). Embora a unidade de filtro 91 seja mostrada na FIG. 5 como estando em um filtro de circuito, em outras configurações, a unidade de filtro 91 pode ser implementada como um filtro de pós-circuito. Os blocos decodificados de vídeo em um dado quadro ou imagem são então armazenados na memória da imagem 92, que armazena as imagens de referência usadas para a compensação do movimento subsequente. A memória de imagem 92 também armazena o vídeo decodificado para a apresentação posterior em um dispositivo de exibição, como dispositivo de exibição 32 da FIG. 1.
[00177] De sta maneira, o decodificador de vídeo 30 da FIG. 5 representa um exemplo de um decodificador de vídeo configurado para analisar a sintaxe descrita acima nas Tabelas 1-21. O decodificador de vídeo 30 pode, por exemplo, analisar conjuntos de parâmetros VPS, SPS, PPS, e APS como descrito acima.
[00178] A FIG. 6 é um diagrama de blocos ilustrando um conjunto de dispositivos exemplares que fazem parte da rede 150. Neste exemplo, a rede 150 inclui dispositivos de roteamento 154A, 154B (dispositivos de roteamento 154) e dispositivo de transcodificação 156. Os dispositivos de roteamento 154 e dispositivo de transcodificação 156 são destinados a representar um pequeno número de dispositivos que podem fazer parte da rede 150. Outros dispositivos de rede, como comutadores, hubs, portas, firewalls, pontes, e outros desses dispositivos também podem ser incluídos dentro da rede 150. Além disso, dispositivos de rede adicionais podem ser fornecidos ao longo de um caminho de rede entre o dispositivo servidor 152 e o dispositivo cliente 158. O dispositivo servidor 152 pode corresponder ao dispositivo fonte 12 (FIG. 1), enquanto o dispositivo cliente 158 pode corresponder ao dispositivo de destino 14 (FIG. 1), em alguns exemplos. Os dispositivos de roteamento 154 podem, por exemplo, ser MANEs configurados para rotear os dados da mídia.
[00179] Em geral, os dispositivos de roteamento 154 implementam um ou mais protocolos de roteamento para trocar dados de rede através da rede 150. Em geral, dispositivos de roteamento 154 executam protocolos de roteamento para descobrir rotas através da rede 150. Pela execução de tais protocolos de roteamento, o dispositivo de roteamento 154B pode descobri uma rota de rede a partir de si mesmo para o dispositivo servidor 152 através do dispositivo de roteamento 154A. Os vários dispositivos da FIG. 6 representam exemplos dos dispositivos que podem implementar as técnicas desta descrição. Os dispositivos de roteamento 154 podem, por exemplo, ser elementos de rede cientes de mídia que são configurados para analisar os elementos de sintaxe de um conjunto de parâmetros, como um VPS, de acordo com esta descrição. Por exemplo, dispositivos de roteamento 154 podem receber em um VPS um ou mais elementos de sintaxe de comprimento fixo iniciais e analisar e processar os elementos de sintaxe de comprimento fixo. Os elementos de sintaxe de comprimento fixo iniciais podem, por exemplo, ser elementos de sintaxe relacionados à negociação da sessão. Os dispositivos de roteamento 154 também podem receber, no VPS, um elemento de sintaxe de deslocamento. O elemento de sintaxe de deslocamento pode identificar um número de bytes a serem pulados. O dispositivo de roteamento 154 pode pular o número especificado de bytes, e depois de pular o número especificado de bytes, pode retomar a análise e processamento dos elementos de sintaxe de comprimento fixo dentro do VPS. Os bytes pulados podem incluir um ou mais elementos de sintaxe de comprimento variável que os dispositivos de roteamento 154 não podem analisar porque os dispositivos de roteamento 154 não podem realizar as operações de decodificação por entropia.
[00180] FIG. 7 é um fluxograma ilustrando um exemplo de como processar um elemento de sintaxe de deslocamento de acordo com as técnicas desta descrição. As técnicas da FIG. 7 serão descritas com referência a um dispositivo de rede como MANE 29 da FIG. 1 ou um dos dispositivos de roteamento 154 na FIG. 6. A entidade de rede processa um ou mais elementos de sintaxe iniciais para um conjunto de parâmetros associado com um fluxo de bits de vídeo (171). Os um ou mais elementos de sintaxe iniciais podem adicionalmente incluir elementos de sintaxe de comprimento fixo e preceder o elemento de sintaxe de deslocamento. Os um ou mais elementos de sintaxe iniciais podem incluir elementos de sintaxe que incluem informações relacionadas à negociação da sessão. Além disso, os um ou mais elementos de sintaxe iniciais compreendem elementos de sintaxe para uma camada base dos dados de vídeo e os um ou mais elementos de sintaxe adicionais compreendem elementos de sintaxe para uma camada não base dos dados de vídeo.
[00181] A entidade de rede recebe no fluxo de bits de vídeo um elemento de sintaxe de deslocamento para o conjunto de parâmetros (172). O elemento de sintaxe de deslocamento identifica um número de bits a ser pulado dentro do conjunto de parâmetros. O elemento de sintaxe de deslocamento pode, por exemplo, ser parte de um conjunto de parâmetros de vídeo. O número de bits a ser pulado pode, por exemplo, corresponder a um ou mais elementos de sintaxe codificados usando a codificação de comprimento variável. Com base no elemento de sintaxe de deslocamento, uma entidade de rede pula um número de bits dentro do conjunto de parâmetros (173). A entidade de rede processa um ou mais elementos de sintaxe adicionais no conjunto de parâmetros (174). Os um ou mais elementos de sintaxe adicionais estão após o número de bits pulado no conjunto de parâmetros. Os um ou mais elementos de sintaxe adicionais podem ser elementos de sintaxe adicionais de comprimento fixo, e os um ou mais elementos de sintaxe adicionais podem seguir o elemento de sintaxe de deslocamento e seguir os bits a serem pulados.
[00182] FIG. 8 é um fluxograma ilustrando um exemplo de como processar um elemento de sintaxe de deslocamento de acordo com as técnicas desta descrição. As técnicas da FIG. 8 serão descritas com referência a um dispositivo de processamento de vídeo configurado para codificar dados de vídeo ou processar dados de vídeo codificados. Exemplos dos dispositivos de processamento de vídeo configurados para processar dados de vídeo codificados incluem codificador de vídeo 20 das FIGS. 1 e 4 e dispositivo de pós-processamento 57 da FIG. 4. O dispositivo de processamento de vídeo gera um ou mais elementos de sintaxe iniciais para um conjunto de parâmetros associado com um fluxo de bits de vídeo (181). Os um ou mais elementos de sintaxe iniciais podem incluir elementos de sintaxe de comprimento fixo, e os um ou mais elementos de sintaxe iniciais podem preceder o elemento de sintaxe de deslocamento. Os um ou mais elementos de sintaxe iniciais podem incluir elementos de sintaxe incluindo informação relacionada à negociação da sessão. Os um ou mais elementos de sintaxe iniciais podem incluir elementos de sintaxe para uma camada base dos dados de vídeo, e os um ou mais elementos de sintaxe adicionais podem incluir elementos de sintaxe para uma camada não base dos dados de vídeo.
[00183] O dispositivo de processamento de vídeo gera um elemento de sintaxe de deslocamento para o conjunto de parâmetros (182). O elemento de sintaxe de deslocamento pode identificar um número de bits a ser pulado dentro do conjunto de parâmetros. O elemento de sintaxe de deslocamento pode ser parte de um conjunto de parâmetros de vídeo. O dispositivo de processamento de vídeo gera um ou mais elementos de sintaxe a serem pulados (183). Os bits a serem pulados incluem os um ou mais elementos de sintaxe a serem pulados. Os um ou mais elementos de sintaxe a serem pulados podem incluir um ou mais elementos de sintaxe codificados usando a codificação de comprimento variável. O dispositivo de processamento de vídeo gera um ou mais elementos de sintaxe adicionais no conjunto de parâmetros (184). Os um ou mais elementos de sintaxe adicionais estão depois do número de bits a serem pulados no conjunto de parâmetros. Os um ou mais elementos de sintaxe adicionais podem incluir elementos de sintaxe adicionais de comprimento fixo, os um ou mais elementos de sintaxe adicionais podem seguir o elemento de sintaxe de deslocamento e seguir os bits a serem pulados.
[00184] FIG. 9 é um fluxograma ilustrando um exemplo de como decodificar um elemento de sintaxe de deslocamento de acordo com as técnicas desta descrição. As técnicas da FIG. 9 serão descritas com referência a um decodificador de vídeo, como o decodificador de vídeo 30 das FIGS. 1 e 5. O decodificador de vídeo decodifica um ou mais elementos de sintaxe iniciais para um conjunto de parâmetros associado com um fluxo de bits de vídeo (191). O decodificador de vídeo recebe no fluxo de bits de vídeo um elemento de sintaxe de deslocamento para o conjunto de parâmetros (192). O elemento de sintaxe de deslocamento identifica um número de bits a ser pulado dentro do conjunto de parâmetros. O decodificador de vídeo decodifica os bits a serem pulados (193). Em alguns exemplos, o decodificador de vídeo decodifica os bits a serem pulados realizando a decodificação por entropia para decodificar os elementos de sintaxe de comprimento variável incluídos nos bits a serem pulados. O decodificador de vídeo pode, por exemplo, decodificar os bits a serem pulados porque os bits devem ser pulados quando os dados de vídeo estão sendo processador por um dispositivo de processamento de vídeo como um MANE, mas os bits podem ser necessários para decodificar os dados de vídeo. Um MANE, em contraste com um decodificador de vídeo, pode pular os bits a fim de realizar determinado processamento nos dados de vídeo sem ter que decodificar completamente os dados de vídeo. Em alguns casos, um MANE pode nem mesmo possuir todas as capacidades necessárias para decodificar os dados de vídeo.
[00185] FIG. 10 é um fluxograma ilustrando um exemplo de como processar um VPS de acordo com as técnicas desta descrição. As técnicas da FIG. 10 serão descritas com referência a um dispositivo de processamento de vídeo genérico. O dispositivo de processamento de vídeo pode corresponder a um dispositivo de rede como MANE 29 da FIG. 1 ou um dos dispositivos de roteamento 154 na FIG. 6. O dispositivo de processamento de vídeo pode adicionalmente corresponder a um decodificador de vídeo como o decodificador de vídeo 30 das FIGS. 1 e 4. O dispositivo de processamento de vídeo recebe em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas à negociação da sessão (201). O dispositivo de processamento de vídeo recebe nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (202). O primeiro conjunto de parâmetros de sequência compreende uma primeira estrutura de sintaxe que inclui um primeiro grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras dos dados de vídeo. O dispositivo de processamento de vídeo recebe nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (203). O segundo conjunto de parâmetros de sequência compreende uma segunda estrutura de sintaxe que inclui um segundo grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras diferentes dos dados de vídeo. O dispositivo de processamento de vídeo processa, com base em um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e um segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros (204).
[00186] Os um ou mais elementos de sintaxe podem, por exemplo, ser elementos de sintaxe de comprimento fixo e podem preceder, no conjunto de parâmetros de vídeo, quaisquer elementos de sintaxe codificados de comprimento variável. Os um ou mais elementos de sintaxe podem incluir um elemento de sintaxe que identifica um perfil de um padrão de codificação de vídeo. Os um ou mais elementos de sintaxe podem ainda ou alternativamente incluir um elemento de sintaxe que identifica um nível de um padrão de codificação de vídeo. O nível pode, por exemplo, corresponder a um ou vários níveis associados com o perfil do padrão de codificação de vídeo.
[00187] Os um ou mais elementos de sintaxe podem incluir um primeiro elemento de sintaxe e um segundo elemento de sintaxe. O primeiro elemento de sintaxe pode identificar um contexto para interpretar o segundo elemento de sintaxe, e o segundo elemento de sintaxe pode identificar um grupo de perfis. O dispositivo de processamento de vídeo pode receber, no conjunto de parâmetros de vídeo, uma ou mais bandeiras de compatibilidade, cada uma das quais é associada com um perfil a partir do grupo de perfis. Um valor para cada uma das uma ou mais bandeiras de compatibilidade pode identificar se os dados de vídeo são compatíveis com um perfil associado a partir do grupo de perfis.
[00188] Os um ou mais elementos de sintaxe também podem incluir um primeiro elemento de sintaxe que identifica um nível temporal máximo associado com os dados de vídeo e um segundo elemento de sintaxe que identifica se uma camada temporal dos dados de vídeo tem um nível que é inferior ao nível temporal máximo. Em resposta ao segundo elemento de sintaxe que indica uma camada temporal dos dados de vídeo tem um nível que é inferior ao nível temporal máximo, o dispositivo de processamento de vídeo pode receber elementos de sintaxe adicionais que identificam níveis para uma ou mais camadas temporais dos dados de vídeo.
[00189] Nos casos quando o dispositivo de processamento de vídeo é um decodificador de vídeo, o decodificador de vídeo pode decodificar o primeiro conjunto de blocos de vídeo e o segundo conjunto de blocos de vídeo. Nos casos quando o dispositivo de processamento de vídeo é um MANE, o MANE pode encaminhar o primeiro conjunto de blocos de vídeo e o segundo conjunto de blocos de vídeo para um dispositivo cliente.
[00190] FIG. 11 é um fluxograma ilustrando um exemplo de como gerar elementos de sintaxe para inclusão em um VPS de acordo com as técnicas desta descrição. As técnicas da FIG. 8 serão descritas com referência a um dispositivo de processamento de vídeo configurado para codificar dados de vídeo ou processar dados de vídeo codificados. Exemplos dos dispositivos de processamento de vídeo configurados para processar dados de vídeo codificados incluem codificador de vídeo 20 das FIGS. 1 e 4 e dispositivo de pós-processamento 57 da FIG. 4. O dispositivo de processamento de vídeo gera para inclusão em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas à negociação da sessão (211). O dispositivo de processamento de vídeo gera para inclusão nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (212). O primeiro conjunto de parâmetros de sequência compreende uma primeira estrutura de sintaxe que inclui um primeiro grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras dos dados de vídeo. O dispositivo de processamento de vídeo gera para inclusão nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (213). O segundo conjunto de parâmetros de sequência compreende uma segunda estrutura de sintaxe que inclui um segundo grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras diferentes dos dados de vídeo. O dispositivo de processamento de vídeo codifica, com base em um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e um segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros (214).
[00191] Os um ou mais elementos de sintaxe podem, por exemplo, ser elementos de sintaxe de comprimento fixo e podem preceder, no conjunto de parâmetros de vídeo, quaisquer elementos de sintaxe codificados de comprimento variável. Os um ou mais elementos de sintaxe podem incluir um elemento de sintaxe que identifica um perfil de um padrão de codificação de vídeo. Os um ou mais elementos de sintaxe podem ainda ou alternativamente incluir um elemento de sintaxe que identifica um nível de um padrão de codificação de vídeo. O nível pode, por exemplo, corresponder a um ou vários níveis associados com o perfil do padrão de codificação de vídeo.
[00192] Os um ou mais elementos de sintaxe podem incluir um primeiro elemento de sintaxe e um segundo elemento de sintaxe. O primeiro elemento de sintaxe pode identificar um contexto para interpretar o segundo elemento de sintaxe, e o segundo elemento de sintaxe pode identificar um grupo de perfis. O dispositivo de processamento de vídeo pode receber, no conjunto de parâmetros de vídeo, uma ou mais bandeiras de compatibilidade, cada uma das quais é associada com um perfil a partir do grupo de perfis. Um valor para cada uma das uma ou mais bandeiras de compatibilidade pode identificar se os dados de vídeo são compatíveis com um perfil associado a partir do grupo de perfis.
[00193] Os um ou mais elementos de sintaxe também podem incluir um primeiro elemento de sintaxe que identifica um nível temporal máximo associado com os dados de vídeo e um segundo elemento de sintaxe que identifica se uma camada temporal dos dados de vídeo tem um nível que é inferior ao nível temporal máximo. Em resposta ao segundo elemento de sintaxe que indica uma camada temporal dos dados de vídeo tem um nível que é inferior ao nível temporal máximo, o dispositivo de processamento de vídeo pode receber elementos de sintaxe adicionais que identificam níveis para uma ou mais camadas temporais dos dados de vídeo.
[00194] FIG. 12 é um fluxograma ilustrando um exemplo de como processar um VPS de acordo com as técnicas desta descrição. As técnicas da FIG. 12 serão descritas com referência a um dispositivo de processamento de vídeo genérico. O dispositivo de processamento de vídeo pode corresponder a um dispositivo de rede como MANE 29 da FIG. 1 ou um dos dispositivos de roteamento 154 na FIG. 6. O dispositivo de processamento de vídeo pode adicionalmente corresponder a um decodificador de vídeo como o decodificador de vídeo 30 das FIGS. 1 e 4. O dispositivo de processamento de vídeo recebe em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros HRD (221). O dispositivo de processamento de vídeo recebe nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (222). O primeiro conjunto de parâmetros de sequência compreende uma primeira estrutura de sintaxe que inclui um primeiro grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras dos dados de vídeo. O dispositivo de processamento de vídeo recebe nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (223). O segundo conjunto de parâmetros de sequência compreende uma segunda estrutura de sintaxe que inclui um segundo grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras diferentes dos dados de vídeo. O dispositivo de processamento de vídeo processa, com base em um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e um segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros (224).
[00195] FIG. 13 é um fluxograma ilustrando um exemplo de como gerar elementos de sintaxe para inclusão em um VPS de acordo com as técnicas desta descrição. As técnicas da FIG. 13 serão descritas com referência a um dispositivo de processamento de vídeo configurado para codificar dados de vídeo ou processar dados de vídeo codificados. Exemplos dos dispositivos de processamento de vídeo configurados para processar dados de vídeo codificados incluem o codificador de vídeo 20 das FIGS. 1 e 4 e dispositivo de pós- processamento 57 da FIG. 4. O dispositivo de processamento de vídeo gera para inclusão em um conjunto de parâmetros de vídeo, um ou mais elementos de sintaxe que incluem informações relacionadas aos parâmetros HRD (231). O dispositivo de processamento de vídeo gera para inclusão nos dados de vídeo um primeiro conjunto de parâmetros de sequência compreendendo um primeiro elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (232). O primeiro conjunto de parâmetros de sequência compreende uma primeira estrutura de sintaxe que inclui um primeiro grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras dos dados de vídeo. O dispositivo de processamento de vídeo gera para inclusão nos dados de vídeo um segundo conjunto de parâmetros de sequência compreendendo um segundo elemento de sintaxe que identifica o conjunto de parâmetros de vídeo (233). O segundo conjunto de parâmetros de sequência compreende uma segunda estrutura de sintaxe que inclui um segundo grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras diferentes dos dados de vídeo. O dispositivo de processamento de vídeo codifica, com base em um ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado com o primeiro conjunto de parâmetros e um segundo conjunto de blocos de vídeo associado com o segundo conjunto de parâmetros (234).
[00196] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas através, como uma ou mais instruções ou códigos, de um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Os meios legíveis por computador podem incluir mídias de armazenamento legíveis por computador, as quais correspondem a uma mídia tangível, tais como mídias de armazenamento de dados ou meios de comunicação, incluindo qualquer mídia que facilita a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Deste modo, os meios legíveis por computador podem geralmente corresponder o (1) meio de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação, tal como um sinal ou onda portadora. As mídias de armazenamento de dados podem ser qualquer mídia disponível, que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar as instruções, o código e/ou as estruturas de dados para a implementação das técnicas descritas nesta descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[00197] A título de exemplo, e não de limitação, tais mídias de armazenamento legíveis por computador podem incluir RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco ótico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnéticos, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código do programa desejado, sob a forma de instruções ou estruturas de dados, e que pode ser acessado por um computador. Além disso, qualquer conexão é corretamente considerada um meio legível por computador. Por exemplo, se as instruções são transmitidas a partir de um site, servidor, ou outra fonte remota usando um cabo coaxial, cabo de fibra ótica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio como o infravermelho, rádio e microondas, em seguida, o cabo coaxial, cabo de fibra ótica, par trançado, DSL ou tecnologias sem fio como o infravermelho, rádio e microondas estão incluídos na definição de suporte. Deve-se compreender, contudo, que as mídias de armazenamento legíveis por computador e as mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outra mídia transiente, mas são ao invés direcionadas para mídia de armazenamento não transiente, tangível. Disco e disquete, como aqui utilizado, inclui disco compacto (CD), disco laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu- ray, onde disquetes geralmente reproduzem dados magneticamente, enquanto que os discos reproduzem dados oticamente com lasers. Combinações dos anteriores, também devem ser incluídas no escopo dos meios legíveis por computador.
[00198] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASIC), arranjos lógicos programáveis em campo (FPGA), ou outro circuito lógico discreto ou integrado equivalente. Por conseguinte, o termo "processador", tal como aqui utilizado pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para a aplicação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida dentro de módulos de hardware e/ou software dedicados configurados para a codificação e decodificação, ou incorporada em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[00199] As técnicas da presente descrição podem ser implementadas em ma vasta variedade de dispositivos ou aparelhos, incluindo um monofone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta descrição para enfatizar aspectos funcionais dos dispositivos configurados para executar as técnicas divulgadas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Em vez disso, tal como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por um conjunto de unidades de hardware interoperativas, incluindo um ou mais processadores, como descrito acima, em conjunto com o software e/ou firmware adequado.
[00200] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do escopo das reivindicações anexas.

Claims (14)

1. Método de processamento de dados de vídeo, caracterizado pelo fato de que compreende: receber (221), em um conjunto de parâmetros de vídeo, VPS, para os dados de vídeo, dois ou mais elementos de sintaxe que incluem informações relacionadas à negociação de sessão, em que os dois ou mais elementos de sintaxe compreendem um primeiro elemento de sintaxe e um segundo elemento de sintaxe, em que o primeiro elemento de sintaxe identifica um contexto para interpretar o segundo elemento de sintaxe, e em que o segundo elemento de sintaxe identifica pelo menos um perfil dentre um grupo de perfis; receber (222), nos dados de vídeo, um primeiro conjunto de parâmetros de sequência, SPS, compreendendo um terceiro elemento de sintaxe que identifica o VPS; receber (223), nos dados de vídeo, um segundo SPS compreendendo um quarto elemento de sintaxe que identifica o VPS; receber, no VPS, duas ou mais sinalizações de compatibilidade, em que cada uma da duas ou mais sinalizações de compatibilidade são associadas à um perfil do grupo de perfis, e em que um valor para cada uma da duas ou mais sinalizações de compatibilidade identificam se os dados de vídeo são compatíveis com um perfil associado do grupo de perfis; decodificar (224), com base nos dois ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado ao primeiro SPS e um segundo conjunto de blocos de vídeo associado ao segundo SPS; e emitir dados de vídeo decodificados compreendendo o primeiro conjunto decodificado de blocos de vídeo e o segundo conjunto decodificado de blocos de vídeo.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro SPS compreende uma primeira estrutura de sintaxe compreendendo um primeiro grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras dos dados de vídeo, e em que o segundo SPS compreende uma segunda estrutura de sintaxe compreendendo um segundo grupo de elementos de sintaxe que se aplica a uma ou mais imagens interias diferentes dos dados de vídeo.
3. Dispositivo para processamento de dados de vídeo, caracterizado pelo fato de que compreende: uma memória para armazenar os dados de vídeo; e um ou mais processadores configurados para: receber (221), em um conjunto de parâmetros de vídeo, VPS, para os dados de vídeo, dois ou mais elementos de sintaxe que incluem informações relacionadas à negociação de sessão, em que os dois ou mais elementos de sintaxe compreendem um primeiro elemento de sintaxe e um segundo elemento de sintaxe, em que o primeiro elemento de sintaxe identifica um contexto para interpretar o segundo elemento de sintaxe, e em que o segundo elemento de sintaxe identifica pelo menos um perfil dentre um grupo de perfis; receber (222), nos dados de vídeo, um primeiro conjunto de parâmetros de sequência, SPS, compreendendo um terceiro elemento de sintaxe que identifica o VPS; receber (223), nos dados de vídeo, um segundo SPS compreendendo um quarto elemento de sintaxe que identifica o VPS; receber, no VPS, duas ou mais sinalizações de compatibilidade, em que cada uma das duas ou mais sinalizações de compatibilidade são associadas à um perfil do grupo de perfis, e em que um valor para cada uma das duas ou mais sinalizações de compatibilidade identificam se os dados de vídeo são compatíveis com um perfil associado do grupo de perfis; decodificar (224), com base nos dois ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado ao primeiro SPS e um segundo conjunto de blocos de vídeo associado ao segundo SPS; e emitir dados de vídeo decodificados compreendendo o primeiro conjunto decodificado de blocos de vídeo e o segundo conjunto decodificado de blocos de vídeo.
4. Dispositivo, de acordo com a reivindicação 3, caracterizado pelo fato de que o um ou mais processadores compreendem um decodificador de vídeo.
5. Dispositivo para processamento de dados de vídeo, caracterizado pelo fato de que compreende: uma memória para armazenar os dados de vídeo; e um ou mais processadores configurados para: gerar, para inclusão em um conjunto de parâmetros de vídeo, VPS, para os dados de vídeo, dois ou mais elementos de sintaxe que incluem informações relacionadas à negociação de sessão, em que os dois ou mais elementos de sintaxe compreendem um primeiro elemento de sintaxe e um segundo elemento de sintaxe, em que o primeiro elemento de sintaxe identifica um contexto para interpretar o segundo elemento de sintaxe, e em que o segundo elemento de sintaxe identifica pelo menos um perfil dentre um grupo de perfis; gerar, para inclusão nos dados de vídeo, um primeiro conjunto de parâmetros de sequência, SPS, compreendendo um terceiro elemento de sintaxe que identifica o VPS; gerar, para inclusão nos dados de vídeo, um segundo SPS compreendendo um quarto elemento de sintaxe que identifica o VPS; gerar, para inclusão no VPS, uma ou mais sinalizações de compatibilidade, em que cada uma das uma ou mais sinalizações de compatibilidade são associadas à um perfil do grupo de perfis, e em que um valor para cada uma das uma ou mais sinalizações de compatibilidade identificam se os dados de vídeo são compatíveis com um perfil associado do grupo de perfis; codificar, com base nos dois ou mais elementos de sintaxe, um primeiro conjunto de blocos de vídeo associado ao primeiro SPS e um segundo conjunto de blocos de vídeo associado ao segundo SPS; e emitir dados de vídeo codificados compreendendo o primeiro conjunto codificado de blocos de vídeo e o segundo conjunto codificado de blocos de vídeo.
6. Dispositivo, de acordo com a reivindicação 5, caracterizado pelo fato de que o primeiro SPS compreende uma primeira estrutura de sintaxe compreendendo um primeiro grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras dos dados de vídeo, e em que o segundo SPS compreende uma segunda estrutura de sintaxe compreendendo um segundo grupo de elementos de sintaxe que se aplica a uma ou mais imagens inteiras diferentes dos dados de vídeo.
7. Dispositivo, de acordo com a reivindicação 5, caracterizado pelo fato de que os dois ou mais elementos de sintaxe compreendem um ou mais elementos de sintaxe de comprimento fixo.
8. Dispositivo, de acordo com a reivindicação 5, caracterizado pelo fato de que os dois ou mais elementos de sintaxe precedem, no VPS, quaisquer elementos de sintaxe codificados de comprimento variável.
9. Dispositivo, de acordo com a reivindicação 5, caracterizado pelo fato de que os dois ou mais elementos de sintaxe compreendem um elemento que identifica um perfil de um padrão de codificação de vídeo.
10. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que os dois ou mais elementos de sintaxe compreendem adicionalmente um elemento de sintaxe que identifica um nível do padrão de codificação de vídeo, em que o nível compreende um dentre múltiplos níveis associados ao perfil do padrão de codificação de vídeo.
11. Dispositivo, de acordo com a reivindicação 5, caracterizado pelo fato de que o um ou mais processadores são configurados adicionalmente para: gerar, para inclusão nos dados de vídeo, informações indicativas de um nível temporal máximo associado aos dados de vídeo, e em que os dois ou mais elementos de sintaxe compreendem um quinto elemento de sintaxe que identifica se uma camada temporal dos dados de vídeo possui um nível que é menor que o nível temporal máximo.
12. Dispositivo, de acordo com a reivindicação 11, caracterizado pelo fato de que o um ou mais processadores são configurados adicionalmente para gerar elementos de sintaxe adicionais em resposta ao quinto elemento de sintaxe indicando que uma camada temporal dos dados de vídeo possui um nível que é menor que o nível temporal máximo, em que os elementos de sintaxe adicionais identificam níveis para uma ou mais camadas temporais dos dados de vídeo.
13. Dispositivo, de acordo com a reivindicação 5, caracterizado pelo fato de que o dispositivo compreende pelo menos um de: um circuito integrado; um microprocessador; ou um dispositivo de comunicação sem fio que compreende um decodificador de vídeo.
14. Memória legível por computador caracterizada pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que um computador realize o método conforme definido em qualquer uma das reivindicações 1 e 2.
BR122017006773-7A 2012-07-02 2013-07-02 Conjunto de parâmetros de vídeo para hevc e extensões BR122017006773B1 (pt)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201261667387P 2012-07-02 2012-07-02
US61/667,387 2012-07-02
US201261669587P 2012-07-09 2012-07-09
US61/669,587 2012-07-09
US201361798135P 2013-03-15 2013-03-15
US61/798,135 2013-03-15
US13/932,960 2013-07-01
US13/932,960 US9635369B2 (en) 2012-07-02 2013-07-01 Video parameter set including HRD parameters
PCT/US2013/049126 WO2014008290A1 (en) 2012-07-02 2013-07-02 Video parameter set for hevc and extensions
BR112014033011-5A BR112014033011B1 (pt) 2012-07-02 2013-07-02 Conjunto de parâmetros de vídeo para hevc e extensões

Publications (2)

Publication Number Publication Date
BR122017006773A2 BR122017006773A2 (pt) 2019-09-03
BR122017006773B1 true BR122017006773B1 (pt) 2023-04-04

Family

ID=49778131

Family Applications (2)

Application Number Title Priority Date Filing Date
BR122017006773-7A BR122017006773B1 (pt) 2012-07-02 2013-07-02 Conjunto de parâmetros de vídeo para hevc e extensões
BR112014033008-5A BR112014033008B1 (pt) 2012-07-02 2013-07-02 Conjunto de parâmetros de vídeo para hevc e extensões

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR112014033008-5A BR112014033008B1 (pt) 2012-07-02 2013-07-02 Conjunto de parâmetros de vídeo para hevc e extensões

Country Status (17)

Country Link
US (4) US9635369B2 (pt)
EP (3) EP3200465B1 (pt)
JP (3) JP6775952B2 (pt)
KR (3) KR102006531B1 (pt)
CN (3) CN104396253B (pt)
AU (1) AU2013286730B2 (pt)
BR (2) BR122017006773B1 (pt)
CA (1) CA2877658C (pt)
HK (1) HK1204415A1 (pt)
IL (1) IL236071B (pt)
MY (1) MY168860A (pt)
PH (1) PH12014502783B1 (pt)
RU (1) RU2654138C2 (pt)
SG (1) SG11201408118YA (pt)
TW (4) TWI552574B (pt)
UA (1) UA115335C2 (pt)
WO (3) WO2014008286A1 (pt)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
WO2014000160A1 (en) * 2012-06-26 2014-01-03 Intel Corporation Inter-layer coding unit quadtree pattern prediction
JP6182718B2 (ja) 2012-06-29 2017-08-23 ヴェロス メディア インターナショナル リミテッドVelos Media International Limited 復号装置および復号方法
US9635369B2 (en) 2012-07-02 2017-04-25 Qualcomm Incorporated Video parameter set including HRD parameters
US10116947B2 (en) * 2012-07-06 2018-10-30 Samsung Electronics Co., Ltd. Method and apparatus for coding multilayer video to include scalable extension type information in a network abstraction layer unit, and method and apparatus for decoding multilayer video
US9992490B2 (en) * 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
EP2903268A4 (en) * 2012-09-28 2016-03-09 Sharp Kk IMAGE DECODING DEVICE
US9936196B2 (en) 2012-10-30 2018-04-03 Qualcomm Incorporated Target output layers in video coding
US20140140406A1 (en) * 2012-11-16 2014-05-22 General Instrument Corporation Devices and methods for processing of non-idr related syntax for high efficiency video coding (hevc)
CN104994957B (zh) 2012-12-21 2017-11-28 精密公司 用于微流体用途的低弹性膜
JP6164840B2 (ja) * 2012-12-28 2017-07-19 キヤノン株式会社 符号化装置、符号化方法、及びプログラム
US10219006B2 (en) 2013-01-04 2019-02-26 Sony Corporation JCTVC-L0226: VPS and VPS_extension updates
US10419778B2 (en) * 2013-01-04 2019-09-17 Sony Corporation JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure
CN109547815B (zh) 2013-04-07 2021-05-18 杜比国际公司 用于视频解码的方法和电子设备
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
US9485508B2 (en) 2013-04-08 2016-11-01 Qualcomm Incorporated Non-entropy encoded set of profile, tier, and level syntax structures
US20160191933A1 (en) * 2013-07-10 2016-06-30 Sharp Kabushiki Kaisha Image decoding device and image coding device
WO2015008464A1 (en) * 2013-07-14 2015-01-22 Sharp Kabushiki Kaisha Video parameter set signaling
CN105379273B (zh) * 2013-07-14 2019-03-15 夏普株式会社 对来自比特流的视频进行解码的方法和设备
US20160156915A1 (en) * 2013-07-18 2016-06-02 Samsung Electronics Co., Ltd. Video encoding method and apparatus and video decoding method and apparatus using video format parameter delivery
US10645399B2 (en) * 2013-07-23 2020-05-05 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding image
US9774879B2 (en) 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
CN105580368B (zh) * 2013-09-30 2018-10-19 日本放送协会 图像编码装置和方法以及图像解码装置和方法
US10187662B2 (en) * 2013-10-13 2019-01-22 Sharp Kabushiki Kaisha Signaling parameters in video parameter set extension and decoder picture buffer operation
US20150103909A1 (en) * 2013-10-14 2015-04-16 Qualcomm Incorporated Multi-threaded video encoder
EP3058736B1 (en) 2013-10-14 2019-02-27 Microsoft Technology Licensing, LLC Encoder-side options for intra block copy prediction mode for video and image coding
WO2015054812A1 (en) 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
CA2928495C (en) 2013-10-14 2020-08-18 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
WO2015101716A1 (en) 2014-01-03 2015-07-09 Nokia Technologies Oy Parameter set coding
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
WO2015100726A1 (en) 2014-01-03 2015-07-09 Microsoft Corporation Block vector prediction in video and image coding/decoding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10684687B2 (en) * 2014-12-03 2020-06-16 Mentor Acquisition One, Llc See-through computer display systems
CN105960804B (zh) * 2014-02-03 2019-10-08 Lg电子株式会社 用于提供特技播放服务的信号发送、接收方法及装置
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
KR101809969B1 (ko) * 2014-03-18 2017-12-18 엘지전자 주식회사 Hevc 스트림의 트릭 플레이 서비스 제공을 위한 방송 신호 송수신 방법 및 장치
US11388441B2 (en) 2014-03-18 2022-07-12 Qualcomm Incorporated Derivation of SPS temporal ID nesting information for multi-layer bitstreams
US9591316B2 (en) * 2014-03-27 2017-03-07 Intel IP Corporation Scalable video encoding rate adaptation based on perceived quality
US9641851B2 (en) * 2014-04-18 2017-05-02 Qualcomm Incorporated Conformance window information in multi-layer coding
US9402083B2 (en) * 2014-04-24 2016-07-26 Vidyo, Inc. Signaling conformance points using profile space
EP3138293A4 (en) 2014-04-29 2017-05-24 Microsoft Technology Licensing, LLC Encoder-side decisions for sample adaptive offset filtering
WO2015182342A1 (ja) * 2014-05-26 2015-12-03 シャープ株式会社 画像復号装置、および、画像符号化装置
EP3158734A4 (en) 2014-06-19 2017-04-26 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
US10359871B2 (en) * 2014-09-26 2019-07-23 Lg Display Co., Ltd. Display panel and method of manufacturing the same
CA3171803A1 (en) 2014-09-30 2016-04-07 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US10148969B2 (en) * 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
CN107251008B (zh) * 2015-02-27 2020-11-13 帝威视有限公司 在实况视频编码和流传输中进行帧复制和帧扩展的系统和方法
WO2016170671A1 (ja) * 2015-04-24 2016-10-27 住友化学株式会社 発光素子および該発光素子に用いる組成物
EP3308540B1 (en) 2015-06-09 2020-04-15 Microsoft Technology Licensing, LLC Robust encoding/decoding of escape-coded pixels in palette mode
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image
US10419768B2 (en) * 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
CN106654030A (zh) * 2016-12-14 2017-05-10 上海天马有机发光显示技术有限公司 一种有机发光显示面板及装置
US20200021853A1 (en) * 2017-03-20 2020-01-16 Sharp Kabushiki Kaisha Systems and methods for signaling scalable video in a media application format
JP6597700B2 (ja) 2017-04-13 2019-10-30 トヨタ自動車株式会社 車両の除電装置
US10587904B2 (en) * 2017-07-10 2020-03-10 Qualcomm Incorporated Processing media data using an omnidirectional media format
CN107580224B (zh) * 2017-08-08 2019-11-22 西安理工大学 一种面向hevc熵编码的自适应扫描方法
US11297339B2 (en) * 2017-12-06 2022-04-05 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US10721465B2 (en) * 2018-02-14 2020-07-21 Qualcomm Incorporated Motion compensation for cubemap packed frames
BR112020026618A2 (pt) 2018-06-26 2021-03-30 Huawei Technologies Co., Ltd. Projetos de sintaxe de alto nível para codificação de nuvem de pontos
JP7355829B2 (ja) 2018-09-18 2023-10-03 華為技術有限公司 ビデオエンコーダ、ビデオデコーダ、及び対応する方法
CN112740668B (zh) 2018-09-18 2022-05-24 华为技术有限公司 译码方法、设备、系统
CN110944350B (zh) * 2018-09-21 2021-11-30 展讯通信(上海)有限公司 拥塞控制系数获取方法及用户终端、计算机可读存储介质
EP3864842A4 (en) * 2018-11-07 2021-12-08 Huawei Technologies Co., Ltd. HEADER SETTINGS FOR VIDEO ENCODING
JP7516389B2 (ja) 2019-01-09 2024-07-16 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオエンコーダ、ビデオデコーダ、および対応する方法
MX2021010917A (es) * 2019-03-11 2021-11-12 Fraunhofer Ges Forschung Codificador y decodificador, metodo de codificacion y metodo de decodificacion con opciones de codificacion dependientes del perfil y nivel.
WO2020185884A1 (en) * 2019-03-11 2020-09-17 Futurewei Technologies, Inc. Sub-picture motion vectors in video coding
US20220217404A1 (en) * 2019-04-15 2022-07-07 Lg Electronics Inc. Scaling list-based video or image coding
CN112514399B (zh) 2019-06-24 2022-02-08 瑞典爱立信有限公司 在参数集合中以信号传送参数值信息以减少编码视频比特流中包含的数据量
US11095916B2 (en) * 2019-07-23 2021-08-17 Qualcomm Incorporated Wraparound motion compensation in video coding
EP3997868A4 (en) 2019-08-10 2023-02-22 Beijing Bytedance Network Technology Co., Ltd. BUFFER MANAGEMENT DURING SUBPICTURE DECODING
US11647215B2 (en) 2019-09-12 2023-05-09 Alibaba Group Holding Limited Method and apparatus for signaling video coding information
US11641475B2 (en) 2019-09-12 2023-05-02 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
MX2022002916A (es) * 2019-09-19 2022-04-06 Beijing Bytedance Network Tech Co Ltd Derivacion de posiciones de muestra de referencia en codificacion de video.
AU2020354306A1 (en) 2019-09-24 2022-04-14 Huawei Technologies Co., Ltd. HRD parameters for layer based conformance testing
JP7322290B2 (ja) * 2019-10-02 2023-08-07 北京字節跳動網絡技術有限公司 ビデオビットストリームにおけるサブピクチャシグナリングのための構文
BR112022006453A2 (pt) * 2019-10-05 2022-09-27 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador e meio de gravação não transitório legível por computador
CN117395428A (zh) * 2019-10-07 2024-01-12 华为技术有限公司 避免多层视频码流中的冗余指示
CN118138782A (zh) * 2019-10-07 2024-06-04 华为技术有限公司 编码器、解码器及对应方法
KR20220078600A (ko) 2019-10-18 2022-06-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브픽처들의 파라미터 세트 시그널링에서의 신택스 제약들
US11395007B2 (en) 2019-12-12 2022-07-19 Tencent America LLC Method for signaling dependent and independent picture header
CN110968714B (zh) * 2019-12-23 2020-11-06 自然资源部国土卫星遥感应用中心 一种卫星遥感影像即时服务方法及即时服务平台
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
CN114868399A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 条带类型和视频层的信令通知
EP4066387A4 (en) 2019-12-27 2023-02-15 ByteDance Inc. SUBPICTURE SIGNALING IN PARAMETER SETS
CN114930830A (zh) 2020-01-09 2022-08-19 字节跳动有限公司 波前并行处理的信令通知
WO2021170095A1 (en) * 2020-02-29 2021-09-02 Beijing Bytedance Network Technology Co., Ltd. Constrains for syntax elements of adaptation parameter set
KR20220146491A (ko) 2020-03-11 2022-11-01 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응형 루프 필터링
US11431998B2 (en) * 2020-05-22 2022-08-30 Tencent America LLC Systems and methods for decoding based on inferred video parameter sets
JP7540871B2 (ja) 2020-05-22 2024-08-27 北京字節跳動網絡技術有限公司 一般制約フラグのシグナリング
CN115699753A (zh) 2020-05-31 2023-02-03 抖音视界有限公司 具有本地双树模式类型定义的调色板模式
KR20230027156A (ko) * 2020-06-10 2023-02-27 엘지전자 주식회사 서브레이어 레벨 정보에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체
US11503342B2 (en) * 2020-06-10 2022-11-15 Sharp Kabushiki Kaisha Systems and methods for signaling sequence parameter information in video coding
EP4138401A1 (en) * 2021-08-17 2023-02-22 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding
EP4409911A1 (en) * 2021-09-29 2024-08-07 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Video coding with selectable neural-network-based coding tools
KR20240110005A (ko) * 2021-11-01 2024-07-12 엘지전자 주식회사 피쳐 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW366670B (en) 1996-11-06 1999-08-11 Matsushita Electric Ind Co Ltd Method of image encoding and decoding, image encoding and decoding apparatus, and media for recording image encoding and decoding program
US6094443A (en) 1997-10-30 2000-07-25 Advanced Micro Devices, Inc. Apparatus and method for detecting a prescribed pattern in a data stream by selectively skipping groups of nonrelevant data bytes
JP3990011B2 (ja) * 1997-10-31 2007-10-10 沖電気工業株式会社 復号画像変換回路および復号画像変換装置
US6301428B1 (en) 1997-12-09 2001-10-09 Lsi Logic Corporation Compressed video editor with transition buffer matcher
TW416220B (en) * 1998-01-23 2000-12-21 Matsushita Electric Ind Co Ltd Image transmitting method, image processing method, image processing device, and data storing medium
US6445776B1 (en) 1998-12-31 2002-09-03 Nortel Networks Limited Abstract interface for media and telephony services
US6651252B1 (en) * 1999-10-27 2003-11-18 Diva Systems Corporation Method and apparatus for transmitting video and graphics in a compressed form
JP2001309372A (ja) * 2000-04-17 2001-11-02 Mitsubishi Electric Corp 符号化装置
JP2002010261A (ja) * 2000-06-16 2002-01-11 Nec Corp 画像符号化方式変換装置
US7548565B2 (en) 2000-07-24 2009-06-16 Vmark, Inc. Method and apparatus for fast metadata generation, delivery and access for live broadcast program
US6661358B1 (en) 2002-09-17 2003-12-09 Enroute, Inc. Decoding variable length codes without conditional branching
US7373005B2 (en) 2003-04-10 2008-05-13 Micron Technology, Inc. Compression system for integrated sensor devices
US7769088B2 (en) * 2003-05-28 2010-08-03 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US8582659B2 (en) * 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
KR20060132874A (ko) * 2004-01-21 2006-12-22 코닌클리케 필립스 일렉트로닉스 엔.브이. 공간 및 snr 미세 입도 스케일링 가능한 비디오 인코딩및 전송 방법
US6989773B2 (en) * 2004-02-13 2006-01-24 Hewlett-Packard Development Company, L.P. Media data encoding device
CN101095348B (zh) * 2004-03-03 2014-08-13 分组视频网络技术方案有限公司 用于从网络节点取回数字多媒体内容的系统和方法
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
KR100662350B1 (ko) * 2004-08-23 2007-01-02 엘지전자 주식회사 영상 전송 장치 및 방법
KR101138093B1 (ko) * 2004-08-31 2012-04-24 파나소닉 주식회사 동화상 부호화 방법 및 장치
DE102004042819A1 (de) * 2004-09-03 2006-03-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen eines codierten Multikanalsignals und Vorrichtung und Verfahren zum Decodieren eines codierten Multikanalsignals
CN100474391C (zh) * 2004-09-15 2009-04-01 索尼株式会社 图像处理装置和图像处理方法
JP4727342B2 (ja) * 2004-09-15 2011-07-20 ソニー株式会社 画像処理装置、画像処理方法、画像処理プログラム及びプログラム格納媒体
JP2007065928A (ja) * 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
US20060098001A1 (en) * 2004-10-26 2006-05-11 Lai Jimmy K L System and method for effectively preventing image tearing artifacts in displayed image data
US8711878B2 (en) 2004-12-10 2014-04-29 Broadcom Corporation Upstream channel bonding in a cable communications system
US7995656B2 (en) * 2005-03-10 2011-08-09 Qualcomm Incorporated Scalable video coding with two layer encoding and single layer decoding
US20060233247A1 (en) * 2005-04-13 2006-10-19 Visharam Mohammed Z Storing SVC streams in the AVC file format
KR20080006609A (ko) * 2005-04-13 2008-01-16 노키아 코포레이션 스케일링가능성 정보의 코딩, 저장, 및 시그널링
WO2006111845A2 (en) * 2005-04-22 2006-10-26 Nortel Networks Limited Session initiation from application servers in an ip multimedia subsystem
US20060239563A1 (en) * 2005-04-25 2006-10-26 Nokia Corporation Method and device for compressed domain video editing
US7974341B2 (en) * 2005-05-03 2011-07-05 Qualcomm, Incorporated Rate control for multi-layer video design
US8457203B2 (en) 2005-05-26 2013-06-04 Ntt Docomo, Inc. Method and apparatus for coding motion and prediction weighting parameters
US9635396B2 (en) * 2005-10-11 2017-04-25 Nokia Technologies Oy System and method for efficient scalable stream adaptation
MY148628A (en) * 2006-01-11 2013-05-15 Nokia Corp Backward-compatible aggregation of pictures in scalable video coding
US20070177671A1 (en) * 2006-01-12 2007-08-02 Lg Electronics Inc. Processing multiview video
US8358704B2 (en) * 2006-04-04 2013-01-22 Qualcomm Incorporated Frame level multimedia decoding with frame information table
US8275045B2 (en) * 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
KR101464011B1 (ko) * 2007-01-05 2014-12-03 톰슨 라이센싱 스케일러블 비디오 코딩에 대한 가상 레퍼런스 디코더
EP1994721A4 (en) * 2007-01-12 2013-09-25 Univ Kyung Hee Univ Ind Coop Group PACKET FORMAT OF A NETWORK ABSTRACTION LAYER UNIT, ALGORITHM AND VIDEO ENCODING AND DECODING APPARATUS USING THE SAME, QOS CONTROL ALGORITHM AND IPV6 LABEL SWITCHING APPARATUS USING THE FORMAT
US8548261B2 (en) * 2007-04-11 2013-10-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding multi-view image
WO2008127536A2 (en) * 2007-04-12 2008-10-23 Thomson Licensing Methods and apparatus for video usability information (vui) for scalable video coding (svc)
US20080253467A1 (en) * 2007-04-13 2008-10-16 Nokia Corporation System and method for using redundant pictures for inter-layer prediction in scalable video coding
KR101633576B1 (ko) * 2007-04-17 2016-06-27 톰슨 라이센싱 멀티뷰 비디오 코딩을 위한 가설의 참조 디코더
US20100142613A1 (en) * 2007-04-18 2010-06-10 Lihua Zhu Method for encoding video data in a scalable manner
KR101242472B1 (ko) * 2008-07-16 2013-03-12 노키아 코포레이션 트랙 및 트랙 서브세트의 그룹화를 위한 방법 및 장치
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
WO2010042650A2 (en) * 2008-10-07 2010-04-15 Motorola, Inc. System and method of optimized bit extraction for scalable video coding
US8760492B2 (en) 2009-01-30 2014-06-24 Polycom, Inc. Method and system for switching between video streams in a continuous presence conference
JP5072893B2 (ja) * 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
KR101504887B1 (ko) 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
US8520958B2 (en) 2009-12-21 2013-08-27 Stmicroelectronics International N.V. Parallelization of variable length decoding
US20120063515A1 (en) 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
US20120124633A1 (en) 2010-11-15 2012-05-17 International Business Machines Corporation Wireless Video Streaming Quality Management for Bandwidth Constrained Cellular Network
US10034009B2 (en) * 2011-01-14 2018-07-24 Vidyo, Inc. High layer syntax for temporal scalability
US9215473B2 (en) * 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
US8787688B2 (en) 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
DK3174295T3 (en) * 2012-04-13 2019-04-01 Ge Video Compression Llc Low delay image encoding
US9635369B2 (en) 2012-07-02 2017-04-25 Qualcomm Incorporated Video parameter set including HRD parameters
US9491456B2 (en) 2012-09-24 2016-11-08 Qualcomm Incorporated Coded picture buffer removal times signaled in picture and sub-picture timing supplemental enhancement information messages
US8989508B2 (en) * 2012-09-28 2015-03-24 Sharp Kabushiki Kaisha Electronic device for signaling a sub-picture buffer parameter
US9485508B2 (en) 2013-04-08 2016-11-01 Qualcomm Incorporated Non-entropy encoded set of profile, tier, and level syntax structures

Also Published As

Publication number Publication date
EP2868085A1 (en) 2015-05-06
TWI575936B (zh) 2017-03-21
US20170094277A1 (en) 2017-03-30
RU2015103126A (ru) 2016-08-20
EP3200465B1 (en) 2023-12-13
BR122017006773A2 (pt) 2019-09-03
EP3200465A1 (en) 2017-08-02
US9716892B2 (en) 2017-07-25
TW201415895A (zh) 2014-04-16
IL236071A0 (en) 2015-01-29
WO2014008286A1 (en) 2014-01-09
JP2015526972A (ja) 2015-09-10
CN107105295B (zh) 2020-10-20
KR101799165B1 (ko) 2017-11-17
BR112014033008A2 (pt) 2017-06-27
JP6400660B2 (ja) 2018-10-03
CN104396253B (zh) 2018-10-26
CN107105295A (zh) 2017-08-29
RU2654138C2 (ru) 2018-05-16
TW201714452A (zh) 2017-04-16
JP2015526973A (ja) 2015-09-10
KR101822247B1 (ko) 2018-01-25
MY168860A (en) 2018-12-04
US20140003493A1 (en) 2014-01-02
JP2017079480A (ja) 2017-04-27
IL236071B (en) 2018-01-31
PH12014502783A1 (en) 2015-02-02
BR112014033008B1 (pt) 2023-04-18
EP3200465C0 (en) 2023-12-13
WO2014008287A1 (en) 2014-01-09
TWI552574B (zh) 2016-10-01
BR112014033011A2 (pt) 2017-06-27
US9635369B2 (en) 2017-04-25
UA115335C2 (uk) 2017-10-25
US20140003491A1 (en) 2014-01-02
AU2013286730A1 (en) 2015-01-22
SG11201408118YA (en) 2015-01-29
JP6775952B2 (ja) 2020-10-28
AU2013286730B2 (en) 2017-07-20
CN104509115A (zh) 2015-04-08
HK1204415A1 (en) 2015-11-13
CA2877658C (en) 2018-05-15
KR20150024934A (ko) 2015-03-09
US20140003492A1 (en) 2014-01-02
KR20160148038A (ko) 2016-12-23
US9602827B2 (en) 2017-03-21
TW201412128A (zh) 2014-03-16
TWI595772B (zh) 2017-08-11
CA2877658A1 (en) 2014-01-09
CN104396253A (zh) 2015-03-04
EP2868086A1 (en) 2015-05-06
PH12014502783B1 (en) 2015-02-02
KR102006531B1 (ko) 2019-08-01
TW201414315A (zh) 2014-04-01
JP6416086B2 (ja) 2018-10-31
KR20150036249A (ko) 2015-04-07
WO2014008290A1 (en) 2014-01-09

Similar Documents

Publication Publication Date Title
KR101799165B1 (ko) Hevc 및 확장들에 대한 비디오 파라미터 세트
CA2883439C (en) Video coding with improved random access point picture behaviors
BR112014026745B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivo de decodificação de vídeo para decodificar dados de vídeo e memória legível por computador
BR112015016230B1 (pt) Sinalização condicional de informação de temporização de contagem de ordem de imagens para temporização de vídeo em codificação de vídeo
BR112016000870B1 (pt) Operações de buffer de imagem decodificada para codificação de vídeo
BR112015006440B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
BR112014017159B1 (pt) Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo
KR20150139898A (ko) Irap 액세스 단위들과 비트스트림 스위칭 및 스플라이싱
KR20150024909A (ko) 비디오 코딩에서 장기 참조 화상들의 랜덤 액세스 및 시그널링
WO2014008136A1 (en) Signaling of long-term reference pictures for video coding
BR112015016361B1 (pt) Operações de armazenamento temporário de vídeo para acesso aleatório em codificação de vídeo
BR112015006839B1 (pt) Sinalizando identificadores de camada para pontos de operação em codificação de vídeo
BR112016012510B1 (pt) Método e dispositivo para codificar dados de vídeo
BR112015007273B1 (pt) Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador
BR112014033011B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador
BR112016029356B1 (pt) Método para decodificar e codificar e dispositivo para decodificar dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc)

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]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/24

Ipc: H04N 19/30 (2014.01), H04N 19/70 (2014.01), H04N 1

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 02/07/2013, OBSERVADAS AS CONDICOES LEGAIS