BR112015016253B1 - Sinalização de informação de derivação de tique de relógio para temporização de vídeo em codificação de vídeo - Google Patents

Sinalização de informação de derivação de tique de relógio para temporização de vídeo em codificação de vídeo Download PDF

Info

Publication number
BR112015016253B1
BR112015016253B1 BR112015016253-3A BR112015016253A BR112015016253B1 BR 112015016253 B1 BR112015016253 B1 BR 112015016253B1 BR 112015016253 A BR112015016253 A BR 112015016253A BR 112015016253 B1 BR112015016253 B1 BR 112015016253B1
Authority
BR
Brazil
Prior art keywords
syntax
video
syntax structure
vps
encoded
Prior art date
Application number
BR112015016253-3A
Other languages
English (en)
Other versions
BR112015016253A2 (pt
Inventor
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
Publication of BR112015016253A2 publication Critical patent/BR112015016253A2/pt
Publication of BR112015016253B1 publication Critical patent/BR112015016253B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

SINALIZAÇÃO DE INFORMAÇÃO DE DERIVAÇÃO DE TIQUE DE RELÓGIO PARA TEMPORIZAÇÃO DE VÍDEO EM CODIFICAÇÃO DE VÍDEO. Em um exemplo, a invenção proporciona o recebimento de uma sequência de vídeo codificada compreendendo imagens codificadas de uma sequência de vídeo e o recebimento de parâmetro de temporização para a sequência de vídeo codificada que inclui uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) referenciada pela sequência de vídeo codificada e no máximo uma vez em uma parte de informação de usabilidade vídeo (VUI) de uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) referenciada pela sequência de vídeo codificada. Outro exemplo proporciona codificação de imagens de uma sequência de vídeo para gerar a sequência de vídeo codificada e sinalização de parâmetros de temporização para a sequência de vídeo codificada mediante ao menos em parte sinalização de uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe VPS e no máximo uma vez em uma parte VUI de uma estrutura de sintaxe SPS.

Description

[0001] Esse pedido reivindica o benefício do Pedido Provisional dos Estados Unidos N° 61/749.866, depositado em 7 de janeiro de 2013, cujo conteúdo integral é aqui incorporado mediante referência.
Campo da Invenção
[0002] Es sa invenção se refere à codificação de vídeo e processamento de vídeo, e mais especificamente às técnicas para sinalizar informação de temporização na informação de vídeo.
Descrição da Técnica Anterior
[0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas digitais de difusão direta, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores de mesa ou laptop, computadores tablet, leitores de livro eletrônico, câmeras digitais, dispositivos digitais de gravação, dispositivos de reprodução de mídia digital, dispositivo de videogame, consoles de videogame, telefones de rádio via satélite ou celulares, os assim chamados “smartphones”, dispositivos de teleconferência de vídeo, dispositivos de fluxo contínuo de vídeo, e semelhantes. Os dispositivos de vídeo digital implementam técnicas de compactação de vídeo tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informação de vídeo digital mais especificamente mediante implementação de tais técnicas de compactação de vídeo.
[0004] Técnicas de compactação de vídeo realizam predição espacial (imagem intra) e/ou predição temporal (imagem inter) para reduzir ou remover a redundância inerente nas sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, os quais também podem ser referidos como bloco de árvores, unidades de codificação (CUs) e/ou modos de codificação. Os blocos de vídeo em uma fatia codificada intra (I) de uma imagem são codificados utilizando a predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia codificada inter (P ou B) de uma imagem podem usar predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros; e as imagens de referência podem ser referidas como quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco codificado inter é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco preditivo, e os dados residuais indicando a diferença entre o bloco codificado e o bloco preditivo. Um bloco codificado intra é codificado de acordo com um modo de codificação intra e os dados residuais. Para compactaçã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 residual, os quais podem ser então quantizados. Os coeficientes de transformada quantizados, inicialmente arranjados em um arranjo bidimensional, podem ser escaneados para produzir um vetor unidimensional dos coeficientes de transformada, e codificação de entropia pode ser empregada para se obter ainda mais compactação.
[0006] Uma sequência de vídeo codificada determinada, codificada para um fluxo de bits inclui uma sequência ordenada de imagens codificadas. Nos padrões H.264/AVC e HEVC, a ordem de decodificação das imagens codificadas para um fluxo de bits é igual à sequência ordenada. Contudo, os padrões também suportam uma ordem de saída de imagens decodificadas que difere da ordem de decodificação, e em tais casos cada uma das imagens codificadas é associada com um valor de contagem de ordem de imagem (POC) que especifica a ordem de saída da imagem na sequência de vídeo.
[0007] A informação de temporização de vídeo para uma sequência de vídeo pode ser sinalizada em elementos de sintaxe de uma ou mais estruturas de sintaxe (alternativamente referidas como “estruturas de conjunto de parâmetros ou simplesmente “conjuntos de parâmetros”). As estruturas de sintaxe podem incluir um conjunto de parâmetros de sequência (SPS) que inclui informação de codificação aplicada a todas as fatias de uma sequência de vídeo codificada. O SPS pode ele próprio incluir parâmetros referidos como informação de usabilidade de vídeo (VUI), que inclui informação de decodificador de referência hipotética (HRD) assim como informação para aperfeiçoar o uso de sequência de vídeo correspondente para vários propósitos. A própria informação HRD pode ser sinalizada utilizando uma estrutura de sintaxe HRD que pode ser incluída dentro de outras estruturas de sintaxe tal como a estrutura de sintaxe VUI. As estruturas de sintaxe também podem incluir um conjunto de parâmetros de vídeo (VPS) que descreve características de uma sequência de vídeo correspondente, tal como elementos de sintaxe comum compartilhados por múltiplas camadas ou pontos de operação assim como outra informação de ponto de operação que pode ser comum a múltiplos conjuntos de parâmetros de sequência, tal como informação HRD para várias camadas ou subcamadas.
Sumário da Invenção
[0008] Em geral, essa invenção descreve técnicas para codificação de vídeo, e mais particularmente às técnicas para sinalizar, por exemplo, para especificar temporização de saída de imagem e/ou para definir um modelo de armazenamento temporário tal como um decodificador de referência hipotética (HRD). Em alguns exemplos, as técnicas podem incluir a geração, para uma sequência de vídeo codificada, de um fluxo de bits codificado para sinalizar a escala de tempo e o número de unidades em um tique de relógio no máximo uma vez em cada uma de estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) e parte de informação de usabilidade de vídeo (VUI) da estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) para a sequência de vídeo codificada. Isto é, em alguns exemplos, em uma determinada estrutura de sintaxe VPS para uma sequência de vídeo codificada, a estrutura de sintaxe VPS pode incluir a escala de tempo e o número de unidades nos elementos de sintaxe de tique de relógio no máximo uma vez. Como em alguns exemplos, em uma determinada estrutura de sintaxe VUI (por exemplo, a parte VUI de uma estrutura de sintaxe SPS) para uma sequência de vídeo codificada, a estrutura de sintaxe VUI pode incluir a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez.
[0009] Em um exemplo da invenção, um método de processar dados de vídeo inclui receber uma sequência de vídeo codificada compreendendo imagens codificadas de uma sequência de vídeo e receber parâmetros de temporização para a sequência de vídeo codificada que inclui uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) referido pela sequência de vídeo codificada e no máximo uma vez em uma parte de informação de usabilidade de vídeo (VUI) de uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) referenciada pela sequência de vídeo codificada.
[0010] Em outro exemplo da invenção, um método de codificar dados de vídeo inclui codificar imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada compreendendo as imagens codificadas e sinalizar parâmetros de temporização para a sequência de vídeo codificada mediante ao menos em parte sinalização de uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) e no máximo uma vez em uma parte de informação de usabilidade de vídeo (VUI) de uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS).
[0011] Em outro exemplo da invenção, um dispositivo para processar dados de vídeo inclui um processador configurado para receber uma sequência de vídeo codificada compreendendo imagens codificadas de uma sequência de vídeo e receber parâmetros de temporização para a sequência de vídeo codificada que inclui uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) referenciada pela sequência de vídeo codificada e no máximo uma vez em uma parte de informação de usabilidade de vídeo (VUI) de uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) referenciada pela sequência de vídeo codificada.
[0012] Em outro exemplo da invenção, um dispositivo para codificar dados de vídeo inclui um processador configurado para codificar imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada compreendendo as imagens codificadas e parâmetros de temporização de sinal para a sequência de vídeo codificada mediante ao menos em parte sinalizar uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) e no máximo uma vez em uma parte de informação de usabilidade de vídeo (VUI) de uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS).
[0013] Em outro exemplo da invenção, um dispositivo para processamento de dados de vídeo inclui meios para receber uma sequência de vídeo codificada compreendendo imagens codificadas de uma sequência de vídeo e meio para receber parâmetros de temporização para a sequência de vídeo codificada que inclui uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) referenciada pela sequência de vídeo codificada e no máximo uma vez em uma parte de informação de usabilidade de vídeo (VUI) de uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) referenciada pela sequência de vídeo codificada.
[0014] Em outro exemplo, a invenção descreve um meio de armazenamento legível por computador, o meio legível por computador tendo nele armazenadas instruções que a partir da execução fazem com que um ou mais processadores recebam uma sequência de vídeo codificada compreendendo imagens codificadas de uma sequência de vídeo e recebam parâmetros de temporização para a sequência de vídeo codificada que incluem uma escala de tempo e um número de unidades em um tique de relógio no máximo uma vez em uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) referenciada pela sequência de vídeo codificada e no máximo uma vez em uma parte de informação de usabilidade de vídeo (VUI) de uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) referenciada pela sequência de vídeo codificada.
[0015] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos e vantagens serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
Breve Descrição das Figuras
[0016] A Figura 1 é um diagrama de blocos ilustrando um sistema de codificação e decodificação de vídeo exemplar que pode utilizar técnicas descritas nessa invenção.
[0017] A Figura 2 é um diagrama de blocos ilustrando um codificador de vídeo exemplar que pode implementar as técnicas descritas nessa invenção.
[0018] A Figura 3 é um diagrama de blocos ilustrando um decodificador de vídeo exemplar que pode implementar as técnicas descritas nessa invenção.
[0019] A Figura 4 é um diagrama de blocos ilustrando informação de temporização para uma estrutura de codificação exemplar para um conjunto de imagens de referência de acordo com as técnicas aqui descritas.
[0020] A Figura 5 é um fluxograma ilustrando um método exemplar de operação de acordo com as técnicas descritas nessa invenção.
[0021] As Figuras 6A-6B são fluxogramas ilustrando métodos exemplares de operação de acordo com as técnicas descritas nessa invenção.
[0022] A Figura 7 é um fluxograma ilustrando um método exemplar de operação de acordo com as técnicas descritas nessa invenção.
[0023] A Figura 8 é um fluxograma ilustrando um método exemplar de operação de acordo com as técnicas descritas nessa invenção.
[0024] As Figuras 9A-9B são fluxogramas ilustrando métodos exemplares de operação de acordo com as técnicas descritas nessa invenção.
[0025] A Figura 10 é um fluxograma ilustrando um método exemplar de operação de acordo com as técnicas descritas nessa invenção
Descrição Detalhada da Invenção
[0026] Es sa invenção descreve várias técnicas para codificação de vídeo, e mais especificamente se refere às técnicas para sinalizar informação de temporização, por exemplo, para especificar temporização de saída de imagem e/ou para definir um modelo de decodificação ou armazenamento temporário tal como um decodificador de referência hipotética (HRD). Em geral, o termo “sinalização” é usado nessa invenção para se referir à sinalização que ocorre dentro de um fluxo de bits codificado. Um codificador pode gerar elementos de sintaxe para sinalizar informação em um fluxo de bits como parte de um processo de codificação de vídeo. Um dispositivo de decodificação ou outro dispositivo de processamento de vídeo pode receber um fluxo de bits codificado, e interpretar os elementos de sintaxe no fluxo de bits codificado como parte de um processo de decodificação de vídeo ou outro processamento de vídeo. Por exemplo, para indicar a temporização de saída para comutar de uma determinada imagem para a próxima imagem em uma sequência de vídeo codificada de acordo com ordenação de saída, a informação de temporização para sequência de vídeo codificada pode em alguns casos sinalizar um número de tiques de relógio que correspondem a uma diferença de valores de contagem de ordem de imagem (POC) igual a um. Uma diferença de valores POC igual a um pode representar a diferença entre um valor POC para uma determinada imagem e o valor POC para próxima imagem de acordo com a ordenação de saída, por exemplo, o valor POC para a segunda imagem e o valor POC para a terceira imagem de acordo com a ordenação de saída. A informação de temporização de vídeo também pode incluir uma condição que especifica se a informação de temporização de vídeo sinaliza o número de tiques de relógio que corresponde a uma diferença de valores de contagem de ordem de imagem igual a um. Em outras palavras, apenas se a condição mantida realizar o sinal de informação de temporização de vídeo e o número de tiques de relógio que corresponde a uma diferença nos valores de contagem de ordem de imagem for igual a um. Em alguns casos, a condição não se mantém e a informação de temporização de vídeo não sinaliza o número de tiques de relógio que corresponde a uma diferença nos valores de contagem de ordem de imagem igual a um. O número de tiques de relógio pode depender da escala de tempo (correspondendo, por exemplo, a uma frequência de oscilador, tal como 27 MHz - que define um sistema de coordenada de tempo para a informação sinalizada) e o número de unidades de tempo de um relógio operando na escala de tempo que corresponde a um incremento de um contador de tiques de relógio, o qual é referido como um “tique de relógio”.
[0027] Em alguns exemplos, as técnicas dessa invenção podem incluir sinalizar diretamente na estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS para uma sequência de vídeo codificada, todos os elementos de sintaxe que definem a condição para sinalizar um número de tiques de relógio correspondendo a uma diferença de valores POC igual a um. Isto é, em alguns casos, a condição pode ter uma ou mais dependências a partir da informação adicional (isto é, elementos de sintaxe) sinalizados na estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS. Esses elementos de sintaxe podem incluir um indicador de presença de informação de temporização, como descrito abaixo.
[0028] Padrões de codificação de vídeo incluem ITU-T H. 261, 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 Scalable Video Coding (SVC) e Multiview Video Coding (MVC) de ITU-T H.264.
[0029] Além disso, há um novo padrão de codificação de vídeo, ou seja High-Efficiency Video Coding (HEVC), sendo desenvolvido pela Joint Collaboration Team on Video Coding (JCT-VC) do ITU-T Video Coding Experts Group (VCEG) e ISO/IEC Motion Picture Experts Group (MPEG). O Esboço de Trabalho (WD) mais recente de HEVC, e referido como HEVC WD9 ou simplesmente WD9 em seguida, é Bross et al., "Proposed editorial improvements for High Efficiency Video Coding (HEVC) text specification draft 9 (SoDIS)", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 12th Meeting: Geneva, CH, 14-23 Jan. 2013, disponível através de http://phenix.intevry.fr/jct/doc_end_user/documents/12_ Geneva/wgll/JCTVC-L0030-vl.zip, de 7 de janeiro de 2013.
[0030] Um esboço recente do padrão HEVC, referido como "HEVC Working Draft 10" ou "WD10", é descrito no documento JCTVC-L1003v34, Bross et al, "High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)", Joint Collaborative Team on Video Coding (JCT- VC) de ITU-T SGI6 WP3 e ISO/IEC JTC1/SC29/WG11, 12th Meeting: Geneva, CH, 14-23 January, 2013, que pode ser baixado a partir de: http://phenix.int- evry.fir/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC- L1003-v34.zip.
[0031] Out ro esboço do padrão HEVC, referido aqui como "WD10 revisions" é descrito em Bross et al, "Editors' proposed corrections to HEVC version 1," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SGI6 WP3 and ISO/IEC JTC1/SC29/WG11, 13th Meeting, Incheon, KR, April 2013, de 7 de junho de 2013, é disponível através da: http://phenix.int- evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC- M0432-v3.zip
[0032] Os esforços de padronização HEVC se baseiam em um modelo de um dispositivo de codificação de vídeo referido como Modelo de Teste HEVC (HM). O HM presume aperfeiçoamento nas capacidades dos dispositivos atuais de codificação de vídeo com relação aos dispositivos de codificação de vídeo disponíveis durante o desenvolvimento de outros padrões de codificação de vídeo anteriores, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto que H.264 proporciona nove modos de codificação de predição intra, HEVC proporciona tantos quantos 35 modos de codificação de predição intra. Os conteúdos integrais de HEVC WD9 e HEVC WD10 são aqui incorporados mediante referência.
[0033] Os padrões de codificação de vídeo incluem tipicamente uma especificação de um modelo de armazenamento temporário de vídeo. Em AVC e HEVC, o modelo de armazenamento temporário é referido como o decodificador de referência hipotética (HRD), o qual inclui um modelo de armazenamento temporário de ambos, armazenador temporário de imagem codificada (CPB) e armazenador de imagem decodificada (DPB). Conforme definido em HEVC WD9, um HRD é um modelo de decodificador hipotético que define limitações em relação à variabilidade dos fluxos de unidade de Camada de Abstração de Rede (NAL) ou a conformidade de fluxos de byte que um processo de codificação pode produzir. Os comportamentos de CPB e DPB são especificados matematicamente. O HRD impõe diretamente limitações em diferente temporização, tamanhos de armazenador temporário e taxas de bit, e impõe indiretamente limitações às características e estatísticas de fluxo de bits. Um conjunto completo de parâmetros HRD inclui cinco parâmetros básicos: retardo de remoção CPB inicial, tamanho de CPB, taxa de bits, retardo de saída de DPB inicial, e tamanho de DPB.
[0034] Em AVC e HEVC, a conformidade de fluxo de bits e a conformidade de decodificador são especificados como partes da especificação HRD. Embora “Decodificador de Referência Hipotética” inclua o termo “decodificador”, HRD é tipicamente necessário pelo lado do codificador para garantir a conformidade de fluxo de bits e tipicamente não é necessário pelo lado do decodificador. Dois tipos de fluxo de bits ou em conformidade com HRD, isto é, Tipo I e Tipo II, são especificados. Além disso, dois tipos de conformidade de decodificador, conformidade de decodificador de temporização de saída e conformidade de decodificador de ordem de saída são especificados.
[0035] Em HEVC WD9, operações HRD requerem parâmetros sinalizados nas estruturas de sintaxe hrd_parameters(), mensagens de informação de otimização suplementar (SEI) de período de armazenamento temporário, mensagens SEI de temporização de imagem e algumas vezes também em mensagens SEI de informação de unidade de decodificação. As estruturas de sintaxe hrd_parameters() podem ser sinalizadas no conjunto de parâmetros de vídeo (VPS), conjunto de parâmetros de sequência (SPS), ou qualquer combinação dos mesmos.
[0036] Em HEVC WD9, a estrutura de sintaxe hrd_parameters() inclui elementos de sintaxe para sinalização de informação de temporização de vídeo, incluindo escala de tempo e o número de unidades em um tique de relógio. A parte de informação de usabilidade e vídeo (VUI) do SPS inclui indicador que indica se o valor de contagem de ordem de imagem (POC) para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada; se afirmativo, então o número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem é igual a 1.
[0037] A sintaxe relacionada e semânticas em HEV WD9 são como a seguir. A Tabela 1 mostra uma estrutura de sintaxe de carga útil de sequência de bytes brutos (RBSP) de conjunto de parâmetros de vídeo exemplar de acordo com WD9. Tabela 1: Estrutura de Sintaxe RBSP de conjunto
Figure img0001
[0038] Na Tabela 1 acima, o elemento de sintaxe vps_num_hrd_parameters especifica o número de estruturas de sintaxe hrd_parameters() presentes na Carga Útil de Sequência de Bytes Brutos (RBSP) de conjunto de parâmetros de vídeo. Nos fluxos de bits em conformidade com essa versão dessa Especificação, o valor de vps_num_hrd_parameters deve ser menor do que ou igual a 1. Embora o valor de vps_num_hrd_parameters tenha que ser menor do que ou igual a 1 em HEVC WD9, os decodificadores devem permitir que outros valores de vps_num_hrd_parameters na faixa de 0 a 1024, inclusive, apareçam na sintaxe.
[0039] O elemento de sintaxe hrd_op_set_idx[i] especifica o índice, na lista de conjuntos de pontos de operação especificados pelo conjunto de parâmetros de vídeo, do conjunto de pontos de operação ao qual a estrutura de sintaxe de ordem i hrd_parameters() no conjunto de parâmetros de vídeo (VPS) se aplica. Nos fluxos de bits em conformidade com essa versão dessa Especificação, o valor de hrd_op_set_idx[i] deve ser igual a 0. Embora o valor de hrd_op_set_idx[i] tenha que ser menor do que ou igual a 1 em HEVC WD9, os decodificadores devem permitir que outros valores de hrd_op_set_idx[i] na faixa de 0 a 1023 apareçam na sintaxe.
[0040] O elemento de sintaxe cprms_present_flag[i] igual a 1 especifica os parâmetros HRD que são comuns a todas as subcamadas estejam presentes na extremidade de sintaxe de ordem i hrd_parameters() no conjunto de parâmetros de vídeo. cprms_present_flag[i] igual a 0 especifica que os parâmetros HRD que são comuns para todas as subcamadas não estão presentes na estrutura de sintaxe de ordem i hrd_parameters() no conjunto de parâmetros de vídeo e são derivados de modo a serem os mesmos que os da estrutura de sintaxe de ordem (i - 1) hrd_parameters() no conjunto de parâmetros de vídeo. cprms_present_flag [0] é inferido como sendo igual a 1.
[0041] A Tabela 2 abaixo mostra uma estrutura de sintaxe de parâmetros VUI de acordo com WD9. Tabela 2: Estrutura de sintaxe de parâmetros VUI
Figure img0002
[0042] Na Tabela 2 acima, o elemento de sintaxe hrd_parameters_present_flag igual a 1 especifica que a estrutura de sintaxe hrd_parameters() está presente na estrutura de sintaxe vui_parameters(). O hrd_parameters_present_flag igual a 0 especifica que a estrutura de sintaxe hrd_parameters() não está presente na estrutura de sintaxe vui_parameters().
[0043] O elemento de sintaxe poc_proportional_to_timing_flag igual a 1 indica que o valor de contagem de ordem de imagem para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificado, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada. O poc_proportional_to_timing_flag igual a 0 indica que o valor de contagem de ordem de imagem para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, pode ou não ser proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada.
[0044] O elemento de sintaxe num_ticks_poc_diff_one_minus1 plus 1 especifica o número de tiques de relógio correspondendo a uma diferença nos valores de contagem de ordem de imagem igual a 1.
[0045] A Tabela 3 abaixo mostra uma estrutura de sintaxe de parâmetros HRD, exemplar de acordo com WD9. Tabela 3: Estrutura de sintaxe de parâmetros HDR, exemplar
Figure img0003
Figure img0004
.
[0046] Na Tabela 3 acima, o elemento de sintaxe timing_info_present_flag igual a 1 especifica que num_units_in_tick e time_scale estão presentes na estrutura de sintaxe hrd_parameters(). Se o timing_info_present_flag for igual a 0, o num_units_in_tick e time_scale não estão presentes na estrutura de sintaxe hrd_parameters(). Se não estiverem presentes, o valor de timing_info_present_flag é inferido como sendo 0.
[0047] O elemento de sintaxe num_units_in_tick é o número de unidades de tempo de um relógio operando na frequência time_scale Hz que corresponde a um incremento (denominado tique de relógio) de um contador de tiques de relógio. O valor para o elemento de sintaxe num_units_in_tick deve ser maior do que 0. Um tique de relógio é o intervalo mínimo de tempo que pode ser representado nos dados codificados quando sub_pic_cpb_params_present_flag for igual a 0. Por exemplo, quando a taxa de imagem de um sinal de vídeo é de 25 Hz, time_scale pode ser igual a 27.000.000 e num_units_in_tick pode ser igual a 1.080.000.
[0048] O elemento de sintaxe time_scale é o número de unidades de tempo que passam em um segundo. Por exemplo, um sistema de coordenada de tempo que mede o tempo utilizando um relógio de 27 MHz tem um time_scale de 27.000.000. O valor para o elemento de sintaxe time_scale deve ser maior do que 0.
[0049] A sinalização de temporização conforme especificado em HEVC WD0 e como descrito acima pode apresentar alguns problemas. Primeiramente, a condição para sinalização do elemento de sintaxe num_ticks_poc_diff_one_minus1 é “se( poc_proportional_to_timing_flag && timing_info_present_flag)”. Essa condição inclui tendências em relação a dois elementos de sintaxe sinalizados: poc_proportional_to_timing_flag e timing_info_present_flag. Contudo, não é evidente a partir da especificação de HRVC WD9 se o timing_info_present_flag para a condição referencia o elemento de sintaxe timing_info_present_flag de uma estrutura de sintaxe hrd_parameters() (se presente) na parte VUI do SPS ou referencia as referências ao elemento de sintaxe timing_info_present_flag de uma estrutura de sintaxe hrd_parameters() no VPS.
[0050] Além disso, múltiplas camadas ou múltiplos subconjuntos de fluxo de bits, possíveis de um fluxo de bits de vídeo escalável podem compartilhar os valores comuns da escala de tempo e o número de unidades em um tique de relógio, que são especificados em HEVC WD9 nos elementos de sintaxe time_scale e num_units_in_tick de uma estrutura de sintaxe hrd_parameters() que pode ser sinalizada repetitivamente na parte VUI do SPS e no VPS, por exemplo. Tal replicação, se presente no fluxo de bits, pode resultar em desperdício de bits.
[0051] Além disso, valores de contagem de ordem de imagem (POC) são tipicamente proporcionais aos tempos de saída para todas as camadas de um fluxo de bits de vídeo escalável se os valores POC forem proporcionais aos tempos de saída para quaisquer das camadas de um fluxo de bits e vídeo escalável. Contudo, a especificação HEVC WD9 não proporciona sinalização, no fluxo de bits de vídeo escalável, uma indicação de que os valores POC são proporcionais aos tempos de saída para todas as camadas ou todos os subconjuntos de fluxo de bits possíveis do fluxo de bits de vídeo escalável. Referência a uma “camada” de um fluxo de bits de vídeo escalável pode se referir a uma camada escalável, uma vista de textura, e/ou uma vista de profundidade, por exemplo. Além disso, embora HEVC WD9 especifique que o indicador poc_proportional_to_timing_flag seja sempre sinalizado na sintaxe VUI é sempre sinalizado na estrutura de sintaxe VUI da SPS, o indicador poc_proportional_to_timing_flag não tem utilidade se os elementos de sintaxe time_scale e num_units_in_tick também não forem sinalizados no fluxo de bits.
[0052] As técnicas dessa invenção podem resolver um ou mais dos problemas acima, assim como proporcionar outros aperfeiçoamentos, para habilitar a sinalização eficiente de parâmetros para operação HRD. Vários exemplos das técnicas são descritos aqui com referência a HEVC WD9 e potenciais aperfeiçoamentos para as mesmas. As soluções se aplicam a quaisquer padrões de codificação de vídeo, incluindo AVC e HEVC, por exemplo, que incluem uma especificação para um modelo de armazenamento temporário de vídeo, embora para fins de ilustração a descrição seja específica para a sinalização de parâmetros HRD definida em HEVC WD9 e modificada de acordo com as técnicas dessa invenção.
[0053] A figura 1 é um diagrama de blocos ilustrando um sistema de codificação e decodificação de vídeo 10 exemplar que pode utilizar as técnicas descritas nessa invenção. Como mostrado na figura 1, o sistema 10 inclui um dispositivo de origem 12 que gera dados de vídeo codificados para ser decodificados em um momento posterior por um dispositivo de destino 14. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma variedade de dispositivos, incluindo dispositivos de mesa, computadores notebook (isto é, laptop), computadores tablet, aparelhos de conversão de sinais, aparelhos telefônicos de mão, tais como os assim chamados telefones inteligentes, televisões, câmeras, dispositivos de exibição, aparelhos de reprodução de meios digitais, consoles de jogos de vídeo, ou semelhante. Em alguns casos, tais dispositivos podem ser equipados para comunicação sem fio.
[0054] O dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificadas através de um meio legível por computador 16. Link 16 pode incluir qualquer tipo de mídia ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, o link 16 pode incluir um meio de comunicação para habilitar o dispositivo de origem 12 a transmitir 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 uma padrão, como um protocolo de comunicação sem fio de comunicação e transmitidos para o dispositivo de destino de 14. O meio de comunicação pode incluir qualquer meio de comunicação sem fio ou com fio, como um espectro de rádio freqüência (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode fazer parte de uma rede baseada em pacotes, como uma rede global como a Internet, uma rede de área remota ou uma rede de área local. O meio de comunicação pode incluir roteadores, comutadores, estações rádio-base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de origem 12 para o dispositivo de destino de 14.
[0055] Alternativamente, os dados codificados podem ser produzidos a partir de interface de saída 22 para um dispositivo de armazenamento 32. Da mesma forma, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 32 pela interface de entrada. O dispositivo de armazenamento 32 pode incluir qualquer um de uma variedade de meios de armazenamento de dados distribuídos ou localmente acessados, como um disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não-volátil, ou quaisquer outras mídias de armazenamento digital adequadas para armazenamento de dados de vídeo codificados. Num outro exemplo, o dispositivo de armazenamento 32 pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode manter o vídeo codificado gerado pelo dispositivo de origem 12. Dispositivo de destino 14 pode acessar dados de vídeo armazenados de dispositivo de armazenamento 32 via fluxo contínuo ou download. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificado e transmitir esses dados de vídeo codificado para o dispositivo de destino 14. Servidores de arquivos exemplares incluem um servidor web (por exemplo, para um sítio de rede), um servidor FTP, dispositivos de armazenamento anexado à rede (NAS), ou uma unidade de disco local. Dispositivo de destino 14 pode acessar os dados de vídeo codificados por meio de qualquer conexão de dados padrão, incluindo conexão de Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que seja adequada para o acesso a dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados vídeo codificados a partir do dispositivo de armazenamento 34 pode ser uma transmissão de fluxo contínuo, uma transmissão de download, ou uma combinação de ambas.
[0056] As técnicas dessa invenção não são necessariamente limitadas às aplicações ou cenários sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte de qualquer uma de uma variedade de aplicações de multimídia, tal como transmissões de televisão aberta, transmissões de televisão a cabo, transmissões de televisão via-satélite, transmissões de vídeo de fluxo contínuo, por exemplo via Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo em via única ou em duas vias para suportar aplicações tais como fluxo contínuo de vídeo, reprodução de vídeo, transmissão de vídeo e/ou telefonia de vídeo.
[0057] No exemplo da Figura 1, o dispositivo de origem 12 inclui uma fonte de vídeo 18, codificador de vídeo 20 e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de origem 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo contendo vídeo previamente capturado, uma interface de alimentação de vídeo para receber vídeo a partir de um provedor de conteúdo de vídeo, e/ou um sistema gráfico de computador para gerar dados gráficos de computador como o vídeo de origem, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os assim chamados fones de câmera ou fones de vídeo. Contudo, as técnicas descritas nessa invenção podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas em aplicações sem fio e/ou cabeadas.
[0058] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificado podem ser transmitidos diretamente para o dispositivo de destino 14 por intermédio da interface de saída 22 do dispositivo de origem 12. Os dados de vídeo codificados também podem ser (ou alternativamente) armazenados no dispositivo de armazenamento 32 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decodificação e/ou reprodução.
[0059] O dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30, e um dispositivo de exibição 32. 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 através do link 16. Os dados de vídeo codificados comunicados através do link 16, ou fornecidos no dispositivo de armazenamento 32, podem incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 para uso por um decodificador de vídeo, tal 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 em um meio de comunicação, armazenados em um meio de armazenamento, ou armazenados em um servidor de arquivo.
[0060] 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 estabelecer 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 um de uma variedade de dispositivos de exibição tal como um display de cristal líquido (LCD), um display de plasma, um display de diodo de emissão de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0061] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode estar de acordo com o Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões patenteados ou da indústria, tal como o padrão ITU-T H.264, referido alternativamente como Codificação de Vídeo Avançada (AVC) Parte 10, MPEG-4, ou extensões de tais padrões. As técnicas dessa invenção, contudo, não são limitadas a qualquer padrão de codificação específico. Outros exemplos de padrões de compactação de vídeo incluem MPEG-2 e ITU-T H.263.
[0062] Embora não seja mostrado na Figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser individualmente integrados com um codificador de áudio e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para lidar com a codificação tanto de áudio como de vídeo em um fluxo de dados comum ou em fluxos de dados separados. Se aplicável, as unidades MUX-DEMUX podem se adaptar ao protocolo de multiplexador ITU H.223, ou outros protocolos tal como o protocolo de datagrama de usuário (UDP).
[0063] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados individualmente como qualquer um de uma variedade de circuitos de codificador adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa invenção. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um dispositivo respectivo.
[0064] O JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização 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 HEVC (HM). O HM presume vários recursos adicionais de codificação de vídeo de dispositivos relativo a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto H.264 oferece nove modos de codificação predição intra, a HM pode fornecer até trinta e três modos de codificação de predição intra.
[0065] Em geral, o modelo de funcionamento do HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos-árvore ou unidades de codificação maiores (LCU) que incluem amostras de luminância e também de crominância. Um treeblock tem um propósito similar ao de 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 um quadtree. Por exemplo, um treeblock, como um nó raiz do quadtree, pode ser dividido em quatro nós filhos, e cada nó filho pode por sua vez ser um nó pai e dividido em outros quatro nós filhos. Um nó filho não dividido, final como um nó folha do quadtree, compreende um nó de codificação, isto é, um bloco de vídeo codificado. Dados e sintaxe associados com um fluxo de bits codificado pode definir um número máximo de vezes que um treeblock pode ser dividido, e também pode definir um tamanho mínimo dos nós de codificação.
[0066] Uma CU inclui um nó de codificação e unidades de predição (PUs) e unidades de transformada (TUs) associadas com o nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e deve ser de formato quadrado. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco-árvore com um máximo de 64x64 pixels ou superior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados com uma CU podem descrever, por exemplo, a divisão da CU em uma ou mais PUs. Os modos de divisão podem diferir entre se a CU é codificada no modo de pulo ou direto, codificada no modo de predição intra, ou codificada no modo de predição inter. As PUs podem ser divididas de modo a ser de formato não quadrado. Os dados de sintaxe associados com uma CU também podem descrever, por exemplo, a divisão da CU em uma ou mais TUs de acordo com uma quadtree. Uma TU pode ser de formato quadrado ou não quadrado.
[0067] O padrão HEVC permite transformações de acordo com as TUs, que podem ser diferentes para diferentes UCs. As TUs são tipicamente medidas com base no tamanho da UP dentro de uma determinada CU definida para uma LCU dividida, embora isso possa não ser sempre o caso. Os TUs normalmente são do mesmo tamanho ou menor do que as PUs. Em alguns exemplos, as amostras residuais correspondendo a uma CU podem ser subdivididas em unidades de menores usando uma estrutura quadtree conhecido como “quadtree residual” (RQT). Os nós folha da RQT pode ser referido como transformar unidades (TUS). Os valores de diferença de pixel associados com as unidades de tradução podem ser transformadas para produzir coeficientes de transformada, que podem ser quantificados.
[0068] Em geral, uma PU inclui dados relacionados ao processo de predição. Por exemplo, quando a PU é codificada no modo intra, a PU pode incluir dados que descrevem um modo de predição intra para a PU. Como outro exemplo, quando a PU é codificada no modo inter, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados definindo o vetor de movimento para a 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 (por exemplo, precisão de pixel de um quarto ou precisão de pixel de um oitavo), uma imagem de referência para qual aponta o vetor de movimento, e/ou uma lista de imagens de referência (por exemplo, Lista 0, Lista 1 ou Lista C) para o vetor de movimento.
[0069] Em geral, uma TU é usada para os processos de transformada e de quantização. Uma determinada CU para uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). Após a predição, o codificador de vídeo 20 pode calcular os valores residuais a partir do bloco de vídeo identificados pelo nó de codificação de acordo com a PU. O nó de codificação é então atualizado para referenciar os valores residuais mais propriamente do que o bloco de vídeo original. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantizados, e escaneados utilizando as transformadas e outra informação de transformada especificada nas TUs para produzir coeficientes de transformada serializados para codificação por entropia. O nó de codificação pode uma vez mais ser atualizado para referência a esses coeficientes de transformada, serializados. Essa invenção utiliza tipicamente o termo “bloco de vídeo” para se referir a um nó de codificação de uma CU. Em alguns casos específicos, essa invenção também pode usar o termo “bloco de vídeo” para se referir a um treeblock, isto é, LCU, ou uma CU, que inclui um nó de codificação e as PUs e TUs.
[0070] Uma seqüência de vídeo, normalmente inclui uma série de imagens ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente 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 das imagens, ou em outro lugar, que descreve uma série de imagens incluídas 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 opera em blocos de vídeo dentro fatias de vídeo individuais, para 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 fixados ou variados, e podem variar em tamanho de acordo com um padrão de codificação especificado.
[0071] Como um exemplo, o HM suporta predição em vários tamanhos de PU. Assumindo-se que o tamanho de uma CU particular é 2Nx2N, o HM suporta predição intra em tamanhos de PU de 2Nx2N ou NxN, e predição inter em tamanhos simétricos PU de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta divisão assimétrica para predição inter em tamanhos PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Na divisão assimétrica, uma direção de uma CU não está dividida, enquanto a outra direção é dividida em 25% e 75%. A porção da CU correspondendo à porção de 25% é indicada por um “n” seguido por uma indicação de “acima”, “abaixo”, “esquerda” ou “direita”. Assim, por exemplo, “2NxnU” refere-se a uma CU 2Nx2N dividida horizontalmente com uma PU de 2Nx0,5N na parte superior e uma PU de 2Nxl,5 N na parte inferior.
[0072] Nessa invenção, “NxN” e “N por N” pode ser utilizado indiferentemente para designar as dimensões de pixels de um bloco de vídeo, em termos de dimensões vertical e horizontal, 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 na direção horizontal (x = 16). Da mesma forma, um bloco NxN geralmente tem N pixels na direção vertical e N pixels na direção horizontal, onde N representa um valor inteiro não negativo. Os pixels de um bloco podem ser dispostos em filas e colunas. Além disso, os blocos não necessitam, necessariamente, ter o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0073] Após a codificação preditiva intra ou preditiva inter utilizando as PUs de uma CU, o codificador de vídeo 20 pode calcular os dados residuais aos quais são aplicadas as transformadas especificas pelas TUs da CU. Os dados residuais podem corresponder às diferenças de pixel entre os pixels da imagem não codificada e valores de predição correspondendo às CUs. O codificador de vídeo 20 pode formar os dados residuais para a CU, e então transformar os dados residuais para produzir coeficientes de transformada.
[0074] Depois de qualquer transformada para produzir coeficientes de transformada, o codificador de vídeo 20 pode realizar quantização dos coeficientes de transformada. Quantização geralmente refere-se a um processo em que os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, proporcionando a compactação adicional. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado para um valor de m bits durante quantização, onde n é maior do que m.
[0075] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para realizar a varredura dos coeficientes de transformada quantizada para produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode realizar uma varredura adaptativa. Após a varredura dos coeficientes de transformada quantizada para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com uma codificação de comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseado em sintaxe (SBAC), codificação de 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 por entropia os elementos de sintaxe associados com os dados de vídeo codificado para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0076] Para realizar CABAC, o codificador de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode se relacionar, por exemplo, ao fato de se os valores adjacentes do símbolo são ou não diferentes de zero. Para realizar CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. As palavras-chave na codificação de comprimento variável (VLC) podem ser construídas de tal modo que códigos relativamente mais curtos correspondem aos símbolos mais prováveis, enquanto que códigos mais longos correspondem aos símbolos menos prováveis. Desse modo, o uso de VLC pode atingir uma economia de bits, por exemplo, utilizando palavras-chave de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode se basear em um contexto atribuído ao símbolo.
[0077] O dispositivo de origem 12 pode gerar um fluxo de bits codificado para incluir elementos de sintaxe que se adaptam a uma estrutura de sintaxe de acordo com as técnicas descritas nessa invenção. Em alguns exemplos, o codificador de vídeo 20 pode gerar o fluxo de bits codificado para sinalizar diretamente, na estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) ou na parte de informação de usabilidade de vídeo (VUI) da estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) para uma sequência de vídeo codificada, todas as variáveis que definem a condição para sinalizar um número de tiques de relógio correspondendo uma diferença de valores de contagem de ordem de imagem (POC) igual a 1. Em outras palavras, mais propriamente do que sinalizar os elementos de sintaxe para a condição para sinalizar um número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem (POC) igual a 1 em outra estrutura de sintaxe (tal como a estrutura de sintaxe de parâmetros HRD) que é incorporada em uma estrutura de sintaxe VPS ou parte VUI da estrutura de sintaxe SPS, o codificador de vídeo 20 gera o fluxo de bits codificado para sinalizar os elementos de sintaxe que definem a condição na estrutura de sintaxe VPS e/ou VUI sem referência à outra estrutura de sintaxe potencialmente incorporada dentro de qualquer um/ambos dentre a estrutura de sintaxe VPS e VUI. Os elementos de sintaxe podem incluir o elemento de sintaxe timing_info_present_flag que é especificado em HEVC WD9 como um elemento de sintaxe da estrutura de sintaxe de parâmetros HRD. Como um resultado, as técnicas podem reduzir e potencialmente eliminar a ambigüidade dentro da especificação HEVC WD9 mediante especificação clara na sintaxe da fonte dos elementos de sintaxe que definem a condição.
[0078] O codificador de vídeo 20 pode testar o fluxo de bits codificado para conformidade com as exigências especificadas como um ou mais testes de conformidade de fluxo de bits em uma especificação de codificação de vídeo, tal como HEVC WD9 ou uma especificação sucessora tal como HEVC WD10. O codificador de vídeo 20 pode incluir ou de outro modo usar um decodificador de referência hipotética para testar o fluxo de bits codificado em termos de conformidade. De acordo com as técnicas aqui descritas, o codificador de vídeo 20 pode testar o fluxo de bits codificado em termos de conformidade mediante decodificação do fluxo de bits codificado para determinar, a partir da estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS para uma sequência de vídeo codificada, os elementos de sintaxe que definem a condição para sinalizar o número de tiques de relógio correspondendo a uma diferença dos valores POC igual a 1. Se a condição se mantiver de acordo com os valores de elemento de sintaxe, o codificador de vídeo 20 pode determinar o número de tiques de relógio correspondendo a uma diferença de valores POC igual a 1 e utilizar o número determinado de tiques de relógio como entrada para, por exemplo, determinar o fluxo insuficiente de CPB ou fluxo excessivo durante a decodificação de imagens codificadas incluídas no fluxo de bits codificado.
[0079] Em alguns casos, no dispositivo de destino 14, um decodificador de vídeo 30 sob teste (ou VUT) pode em alguns casos receber uma representação do fluxo de bits codificado gerado pelo codificador de vídeo 20 para sinalizar diretamente, na estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS para uma sequência de vídeo codificada, todos os elementos de sintaxe que definem a condição para sinalizar um número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem (POC) igual a 1. O decodificador de vídeo 30 pode decodificar o fluxo de bits codificado para determinar, a partir da estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS para uma sequência de vídeo codificada, os elementos de sintaxe que definem a condição para sinalizar o número de tiques de relógio correspondendo a uma diferença de valores POC iguais a 1. Se a condição se mantiver de acordo com os valores de elemento de sintaxe, o decodificador de vídeo 30 pode determinar o número de tiques de relógio correspondendo a uma diferença de valores POC igual a 1 e utilizar o número determinado de tiques de relógio como entrada para, por exemplo, determinar fluxo insuficiente de CPB ou fluxo excessivo durante a decodificação de imagens codificadas incluídas no fluxo de bits codificado.
[0080] Em alguns exemplos, o codificador de vídeo 20 pode gerar o fluxo de bits para sinalizar a escala de tempo e o número de unidades em um tique de relógio no máximo uma vez em cada uma das estruturas de sintaxe VPS e VUI para uma determinada sequência de vídeo codificada. Isto é, em uma determinada estrutura de sintaxe VPS para o fluxo de bits codificado, o codificador de vídeo 20 pode sinalizar a escala de tempo e o número de unidades nos elementos de sintaxe de tique de relógio no máximo uma vez. Similarmente, em uma determinada estrutura de sintaxe VUI (por exemplo, a parte VUI de uma estrutura de sintaxe SPS) para o fluxo de bits codificado, o codificador de vídeo 20 pode sinalizar a escala de tempo e o número de unidades nos elementos de sintaxe de tique de relógio, no máximo uma vez. Como um resultado, o codificador de vídeo 20 operando de acordo com as técnicas aqui descritas pode reduzir um número de instâncias do elemento de sintaxe de escala de tempo (time_scale por WD9) e o número de unidades em um elemento de sintaxe de tique de relógio (num_units_in_tick por WD9) no fluxo de bits codificado. Além disso, o codificador de vídeo 20 pode em alguns casos gerar o fluxo de bits codificado para sinalizar diretamente a escala de tempo e o número de unidades em um tique de relógio em cada um das estruturas de sintaxe VPS e VUI para uma determinada sequência de vídeo codificada, mais propriamente do que em uma estrutura de sintaxe de parâmetros HRD incorporada dentro de uma estrutura de sintaxe VPS e/ou VUI.
[0081] De acordo com as técnicas aqui descritas, o codificador de vídeo 20 pode testar um fluxo de bits codificado, gerado pelo codificador de vídeo 20 para sinalizar a escala de tempo e o número de unidades em um tique de relógio no máximo uma vez em cada uma das estruturas de sintaxe, VPS e VUI, para uma determinada sequência de vídeo codificada, para conformidade mediante decodificação do fluxo de bits codificado para determinar a escala de tempo e o número de unidades em um tique de relógio a partir da estrutura de sintaxe VPS do fluxo de bits codificado que codifica a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez em uma estrutura de sintaxe VPS. Em alguns casos, o codificador de vídeo 20 pode testar o fluxo de bits codificado para conformidade mediante decodificação do fluxo de bits codificado para determinar a escala de tempo e o número de unidades em um tique de relógio a partir de uma estrutura de sintaxe VUI do fluxo de bits codificado que codifica a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez na estrutura de sintaxe VUI. A escala de tempo e o número de unidades em um tique de relógio podem ser sinalizados exceto em uma estrutura de sintaxe de parâmetros HRD incorporada dentro da estrutura de sintaxe VPS e/ou VUI. O codificador de vídeo 20 pode usar a escala de tempo determinada e o número de unidades determinado em um tique de relógio como entrada para, por exemplo, determinar fluxo insuficiente ou fluxo excessivo de CPB durante a decodificação das imagens codificadas incluídas no fluxo de bits codificado.
[0082] Em alguns casos, no dispositivo de destino 14, um decodificador de vídeo 30 sob teste pode em alguns casos receber uma representação do fluxo de bits codificado gerado pelo codificador de vídeo 20 para sinalizar a escala de tempo e o número de unidades em um tique de relógio no máximo uma vez em cada uma das estruturas de sintaxe VPS e VUI para uma determinada sequência de vídeo codificada. O decodificador de vídeo 30 pode decodificar o fluxo de bits codificado para determinar a escala de tempo e o número de unidades em um tique de relógio a partir de uma estrutura de sintaxe VPS do fluxo de bits codificado que codifica a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez na estrutura de sintaxe VPS. Em alguns casos, o decodificador de vídeo 30 pode testar o fluxo de bits codificado para conformidade mediante decodificação do fluxo de bits codificado para determinar a escala de tempo e o número de unidades em um tique de relógio a partir de uma estrutura de sintaxe VUI do fluxo de bits codificado que codifica a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez na estrutura de sintaxe VUI. A escala de tempo e o número de unidades em um tique de relógio podem ser sinalizados de outra forma do que na estrutura de sintaxe de parâmetros HRD incorporada dentro da estrutura de sintaxe VPS e/ou VUI. O decodificador de vídeo 30 pode usar a escala de tempo determinada e o número determinado de unidades em um tique de relógio como entrada para, por exemplo, determinar o fluxo insuficiente ou fluxo excessivo de CPB durante a decodificação das imagens codificadas incluídas no fluxo de bits codificado.
[0083] Em alguns exemplos, o codificador de vídeo 20 pode gerar o fluxo de bits codificado para sinalizar, em uma estrutura de sintaxe VPS para uma ou mais sequências de vídeo codificadas, um indicador indicando se o valor POC para cada imagem em uma sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada. Esse indicador pode alternativamente ser referido como o POC proporcional ao indicador de temporização. Como resultado, o codificador de vídeo 20 pode reduzir um número de instâncias da indicação na informação de temporização sinalizada para múltiplas camadas de uma sequência de vídeo codificada e/ou para um fluxo de bits de vídeo escalável tendo múltiplas camadas. Em algumas instâncias, o codificador de vídeo 20 pode incluir esse indicador na estrutura de sintaxe VPS apenas se a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio também forem incluídos. O codificador de vídeo 20 pode, desse modo, evitar sinalizar essa informação de temporização específica (isto é, se o valor POC para cada imagem em uma sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada) se a informação de tique de relógio necessária para usar o POC proporcional à indicação de temporização também não estiver presente.
[0084] De acordo com as técnicas aqui descritas, o codificador de vídeo 20 pode testar a conformidade de um fluxo de bits codificado, gerado pelo codificador de vídeo 20 para sinalizar, em uma estrutura de sintaxe VPS para uma ou mais sequências de vídeo codificadas, o POC proporcional ao indicador de temporização. O codificador de vídeo 20 pode testar o fluxo de bits codificado para conformidade mediante decodificação do fluxo de bits codificado para determinar um valor para o indicador. O codificador de vídeo 20 pode adicionalmente, ou alternativamente, testar um fluxo de bits codificado, gerado pelo codificador 20 para sinalizar o indicador na estrutura de sintaxe VPS apenas se a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio também forem incluídos. O codificador de vídeo 20 pode usar o valor determinado do POC proporcional ao indicador de temporização e a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio como entrada para, por exemplo, determinar fluxo insuficiente ou fluxo excessivo de CPB durante a decodificação de imagens codificadas incluídas no fluxo de bits codificado.
[0085] Em alguns casos, no dispositivo de destino 14, um decodificador de vídeo 23 sob teste pode em alguns casos receber em uma representação do fluxo de bits codificado gerado pelo codificador de vídeo 20 para sinalizar, em uma estrutura de sintaxe VPS para uma ou mais sequências de vídeo codificadas, um POC proporcional ao indicador de temporização. O decodificador de vídeo 30 pode testar o fluxo de bits codificado para conformidade mediante decodificação do fluxo de bits codificado para determinar um valor para o indicador. O decodificador de vídeo 30 pode adicionalmente, ou alternativamente, testar um fluxo de bits codificado, gerado pelo decodificador de vídeo 30 para sinalizar o indicador na estrutura de sintaxe VPS apenas se a escala de tempo e o número de unidades em um elemento de sintaxe de tique de relógio também forem incluídos. O decodificador de vídeo 30 pode usar o valor determinado do POC proporcional ao indicador de temporização e a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio como entrada para, por exemplo, determinar fluxo insuficiente ou fluxo excessivo de CPB durante a decodificação de imagens codificadas incluídas no fluxo de bits codificado.
[0086] A Figura 2 é um diagrama de blocos ilustrando um exemplo do codificador de vídeo 20 que pode implementar técnicas descritas nessa invenção. O codificador de vídeo 20 pode realizar codificação, intra e inter, dos blocos de vídeo dentro das fatias de vídeo. A codificação intra se baseia em predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de um determinado quadro de vídeo ou imagem. Codificação inter baseia-se em predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros adjacentes ou imagens de uma sequência de vídeo. Modo intra (modo I) pode se referir a qualquer um de vários modos de codificação de base espacial. Os modos inter, tal como predição unidirecional (modo P) ou predição bidirecional (modo B), pode se referir a qualquer um dos vários modos de codificação de base temporal.
[0087] No exemplo da Figura 2, o codificador de vídeo 20 inclui uma unidade de divisão 35, módulo de predição 41, memória de imagem de referência 64, somador 50, módulo de transformada 52, unidade de quantização 54, e unidade de codificação por entropia 56. O módulo de predição 41 inclui unidade de estimação de movimento 42, unidade de compensação de movimento 44, e módulo de predição intra 46. Para reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui unidade de quantização inversa 58, módulo de transformada inversa 60, e somador 62. Um filtro de desblocagem (não mostrado na Figura 2) também pode ser incluído aos limites de bloqueio de filtro para remover artefatos de blocagem a partir do vídeo reconstruído. Se desejado, o filtro de desblocagem tipicamente filtraria a saída do somador 62. Filtros de loop adicionais (em loop ou pós-loop) também podem ser usados além do filtro de desblocagem.
[0088] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe os dados de vídeo, e a unidade de divisão 35 divide os dados em blocos de vídeo. Essa divisão também pode incluir a divisão em fatias, blocos de pixels adjacentes, ou outras unidades maiores, assim como divisão de bloco de vídeo, por exemplo, de acordo com uma estrutura quadtree de LCUs e CUs. O codificador de vídeo 20 ilustra geralmente os componentes que codificam os blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como blocos de pixels adjacentes). O módulo de predição 41 pode selecionar um de uma pluralidade de possíveis modos de codificação, tal como um de uma pluralidade de modos de codificação intra ou um de uma pluralidade de modos de codificação inter, para o bloco de vídeo atual com base em resultados de erro (por exemplo, taxa de codificação e o nível de distorção). O módulo de predição 41 pode proporcionar o bloco codificado intra ou inter resultante ao somador 50 para gerar dados de blocos residuais e ao somador 62 para reconstruir o bloco codificado para uso como uma imagem de referência.
[0089] O módulo de predição intra 46 dentro do módulo de predição 41 pode realizar codificação preditiva intra 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 proporcionar compactação espacial. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 dentro do módulo de predição 41 realizam codificação preditiva inter do bloco de vídeo atual relativo a um ou mais blocos preditivos em uma ou mais imagens de referência para proporcionar compactação temporal.
[0090] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de predição inter 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 designar fatias de vídeo na sequência como fatias P, fatias B ou fatias GPB. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente com propósitos conceptuais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de gerar vetores de movimento, que estimam o movimento para os blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro do quadro de vídeo ou imagem atual em relação a um bloco preditivo dentro de uma imagem de referência.
[0091] Um bloco preditivo é um bloco que combina estreitamente com a PU do bloco de vídeo a ser codificado, em termos de diferença de pixel, o que pode ser determinado pela soma da diferença absoluta (SAD), soma da diferença ao quadrado (SSD), ou outra métrica de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel de sub-inteiro de imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições fracionárias de pixel da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel integral e posições fracionárias de pixel e produzir um vetor de movimento, com exatidão fracionária de pixel.
[0092] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia codificada inter, mediante comparação da posição da PU em relação à posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou de uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagens de referência 64. A unidade de estimação de 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.
[0093] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver e buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimativa de movimento, possivelmente realizando interpolações para exatidão de subpixel. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual aponta o vetor de movimento em uma das listas de imagem de referência. O codificador de vídeo 20 forma um bloco de vídeo residual mediante subtração de valores de pixel do bloco preditivo a partir 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 componentes de diferença luma e componentes de diferença croma. O somador 50 representa o componente ou os componentes que formam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe 55 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.
[0094] A unidade de compensação de movimento 44 pode gerar elementos de sintaxe 55 que se adaptam a uma estrutura de sintaxe de acordo com as técnicas descritas nessa invenção. Em alguns exemplos, o codificador de vídeo 20 pode gerar elementos de sintaxe 55 para analisar diretamente, na estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) ou na parte de informação de usabilidade de vídeo (VUI) da estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) associada com os blocos de vídeo, todos os elementos de sintaxe que definem a condição para sinalizar um número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem (POC) igual a 1. Em outras palavras, mais do que sinalizar os elementos de sintaxe para a condição para sinalizar um número de tiques de relógio correspondendo a uma diferença dos valores de contagem de ordem de imagem (POC) igual a 1 em outra estrutura de sintaxe (tal como a estrutura de sintaxe de parâmetros HRD) que é incorporada em uma estrutura de sintaxe VPS ou parte VUI da estrutura de sintaxe SPS, a unidade de compensação de movimento 44 gera o fluxo de bits codificado para sinalizar os elementos de sintaxe para os elementos de sintaxe que definem a condição na estrutura de sintaxe VPS e/ou VUI sem referência à outra estrutura de sintaxe incorporada potencialmente dentro de qualquer uma ou das duas estruturas de sintaxe VPS e VUI.
[0095] Em alguns exemplos, a unidade de compensação de movimento 44 pode gerar os elementos de sintaxe 55 para sinalizar a escala de tempo de o número de unidades em um tique de relógio no máximo uma vez em cada uma das estruturas de sintaxe VPS e VUI para uma determinada sequência de vídeo codificada. Isto é, em uma determinada estrutura de sintaxe VPS para o fluxo de bits codificado, a unidade de compensação de movimento 44 pode gerar os elementos de sintaxe 55 para sinalizar a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez. Similarmente, em uma determinada estrutura de sintaxe VUI (por exemplo, a parte VUI de uma estrutura de sintaxe SPS) para o fluxo de bits codificado, a unidade de compensação de movimento 44 pode gerar o sinal de elementos de sintaxe 55 em escala de tempo e número de unidades em um elemento de sintaxe de tique de relógio no máximo uma vez. Além disso, a unidade de compensação de movimento 44 pode em alguns casos gerar os elementos de sintaxe 55 para sinalizar diretamente a escala de tempo e o número de unidades em um tique de relógio em cada uma das estruturas de sintaxe VPS e VUI para uma determinada sequência de vídeo codificada, mais propriamente do que em uma estrutura de sintaxe de parâmetros HRD incorporada dentro de uma estrutura de sintaxe VPS e/ou VUI.
[0096] Em alguns exemplos, a unidade de compensação de movimento 44 pode gerar os elementos de sintaxe 55 para sinalizar, em uma estrutura de sintaxe VPS para uma ou mais sequências de vídeo codificadas, um indicador que indica se o valor POC para cada imagem em uma sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada. Esse indicador pode alternativamente ser referido como o POC proporcional ao indicador de temporização. Como resultado, a unidade de compensação de movimento 44 pode reduzir um número de instâncias da indicação na informação de temporização sinalizada para múltiplas camadas de uma sequência de vídeo codificada e/ou para um fluxo de bits de vídeo escalável tendo múltiplas camadas. Em algumas instâncias, a unidade de compensação de movimento 44 pode incluir esse indicador na estrutura de sintaxe VPS apenas se a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio também forem incluídos. A unidade de compensação de movimento 44 pode assim evitar a sinalização dessa informação de temporização específica (isto é, se o valor POC para cada imagem em uma sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, for proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada) se a informação de tique de relógio necessária para usar o POC proporcional à indicação de temporização também não estiver presente.
[0097] Mudanças exemplares para o texto de HEVC WD9 para efetuar os ensinamentos acima para gerar elementos de sintaxe 55 são como a seguir (outras partes não mencionadas podem ser não modificadas vis-à-vis HEVC WD9):
[0098] O que se segue é um exemplo de uma estrutura de sintaxe RBSP de conjunto de parâmetros de vídeo modificada para resolver um ou mais dos problemas acima (a sintaxe sublinhada é uma adição para a estrutura de sintaxe RBSP de conjunto de parâmetros de vídeo de HEVC WD9; outra sintaxe pode ser inalterada em relação HEVC WD9): Tabela 4: Estrutura de sintaxe RBSP de conjunto de parâmetros de vídeo exemplar
Figure img0005
Figure img0006
[0099] A Tabela 4 define elementos de sintaxe recentemente adicionados de acordo coma semântica de RBSP de conjunto de parâmetros de vídeo (VPS) a seguir:
[00100] vps_timing_info_present_flag é igual a 1 especifica que vps_num_units_in_tick, vps_time_scale e vps_poc_proportional_to_timing_flag estão presentes no conjunto de parâmetros de vídeo. vps_timing_info_present_flag igual a 0 especifica que vps_num_units_in_tick, vps_time_scale e vps_poc_proportional_to_timing_flag não estão presentes no conjunto de parâmetros de vídeo.
[00101] vps_num_units_in_tick é o número de unidades de tempo de um relógio operando na frequência vps_time_scale Hz que corresponde a um incremento (chamado de tique de relógio) de um contador de tiques de relógio. O valor de vps_num_units_in_tick deve ser maior do que 0. Um tique de relógio, em unidades de segundos, é igual ao quociente de vps_num_units_in_tick dividido por vps_time_scale. Por exemplo, quando a taxa de imagem de um sinal de vídeo é de 25 Hz, vps_time_scale pode ser igual a 27.000.000 e vps_num_units_in_tick pode ser igual a 1.080.000, e conseqüentemente um tique de relógio pode ser de 0,04 segundos.
[00102] vps_time_scale é o número de unidades de tempo que passam em um segundo. Por exemplo, um sistema de coordenada de tempo que mede o tempo utilizando um relógio de 27 MHz tem um vps_time_scale de 27.000.000. O valor de vps_time_scale pode ser maior do que 0.
[00103] vps_poc_proportional_to_timing_flag igual a 1 indica que o valor de contagem de ordem de imagem para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada. vps_poc_proportional_to_timing_flag igual a 0 indica que o valor de contagem de ordem de imagem para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, pode ou não ser proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada.
[00104] vps_num_ticks_poc_diff_one_minus1 plus 1 especifica o número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem igual a 1. O valor de vps_num_ticks_poc_diff_one_minus1 deve estar na faixa de 0 a 2A32-1, inclusive.
[00105] O que se segue é um exemplo de uma estrutura de sintaxe de parâmetros VUI modificada para resolver um ou mais dos problemas acima (a sintaxe sublinhada é uma adição à estrutura de sintaxe de parâmetros VUI de HEVC WD9; a sintaxe em itálico é removida da estrutura de sintaxe de parâmetro VUI de HEVC WD9; outras porções da tabela de sintaxe são inalteradas em relação a HEVC WD9): Tabela 5: Estrutura de sintaxe de parâmetro VUI modificada exemplar
Figure img0007
[00106] A Tabela 5 define elementos de sintaxe recentemente adicionados de acordo com a semântica de parâmetros VUI seguintes (semântica para os elementos de sintaxe removidos são similarmente removidos):
[00107] sps_timing_info_present_flag igual a 1 especifica que sps_num_units_in_tick, sps_time_scale, e sps_poc_proportional_to_timing_flag estão presentes na estrutura de sintaxe vui_parameters(). sps_timing_info_present_flag igual a 0 especifica que sps_num_units_in_tick, sps_time_scale, sps_poc_proportional_to_timing_flag não estão presentes na estrutura de sintaxe vui_parameters( ).
[00108] sps_num_units_in_tick é o número de unidades de tempo de um relógio operando na frequência sps_time_scale Hz que corresponde a um incremento (chamado de um tique de relógio) de um contador de tiques de relógio. sps_num_units_in_tick deve ser maior do que 0. Um tique de relógio, em unidades de segundos, é igual ao quociente de sps_num_units_in_tick dividido por sps_time_scale. Por exemplo, quando a taxa de imagem de um sinal de vídeo é 25 Hz, sps_time_scale pode ser igual a 27.000.000 e sps_num_units_in_tick pode ser igual a 1.080.000, e conseqüentemente um tique de relógio pode ser igual a 0,04 segundos (vide Equação (1)). Quando vps_num_units_in_tick estiver presente no conjunto de parâmetros de vídeo referido pelo conjunto de parâmetros de sequência sps_num_units_in_tick quando presente, deve ser igual a vps_num_units_in_tick.
[00109] A fórmula para derivar o ClockTick variável (também referida aqui como “tique de relógio”) é modificada para ser como a seguir:
Figure img0008
[00110] sps_time_scale é o número de unidades de tempo que passam em um segundo. Por exemplo, um sistema de coordenada de tempo que mede o tempo utilizando um relógio de 27 MHz tem um sps_time_scale de 27.000.000. O valor de sps_time_scale deve ser maior do que 0. Quando vps_time_scale estiver presente no conjunto de parâmetros de vídeo referido pelo conjunto de parâmetros de sequência, sps_time_scale, quando presente, deve ser igual a vps_time_scale.
[00111] sps_poc_proportional_to_timing_flag igual a 1 indica que o valor de contagem de ordem de imagem para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada. O sps_poc_proportional_to_timing_flag igual a 0 indica que o valor de contagem de ordem de imagem para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, pode ou não ser proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada. Quando vps_poc_proportional_to_timing_flag estiver presente no conjunto de parâmetro de vídeo referido pelo conjunto de parâmetro de sequência, sps_poc_proportional_to_timing_flag, quando presente, deve ser igual a vps_poc_proportional_to_timing_flag.
[00112] sps_num_ticks_poc_diff_one_minus1 plus 1 especifica o número de tiques de relógio correspondendo a uma diferença nos valores de contagem de ordem de imagem igual a 1. O valor de sps_num_ticks_poc_diff_one_minus1 deve estar na faixa de 0 a 2A32-1, inclusive. Quando vps_num_ticks_poc_diff_one_minus1 estiver presente no conjunto de parâmetros de vídeo referido pelo conjunto de parâmetros de sequência, sps_num_ticks_poc_diff_one_minus1, quando presente, deve ser igual a sps_num_ticks_poc_diff_one_minus1.
[00113] O que se segue é um exemplo de uma estrutura de sintaxe de parâmetros HRD modificada para resolver um ou mais dos problemas acima (a sintaxe em itálico é removida da estrutura de sintaxe de parâmetros
Figure img0009
[00114] A semântica para os elementos de sintaxe removidos de acordo com a estrutura de sintaxe de parâmetros HRD, modificada, exemplar da Tabela 6 é similarmente removida.
[00115] O módulo de predição intra 46 pode predizer no modo intra um bloco atual, como uma alternativa à predição inter realizada pela unidade de estimação de movimento 42 e unidade de compensação de movimento 44, conforme descrito acima. Especificamente, o módulo de predição intra 46 pode determinar um modo de predição intra para ser usado para codificar um bloco atual. Em alguns exemplos, o módulo de predição intra 46 pode codificar um bloco atual utilizando vários modos de predição intra, por exemplo, durante passagens separadas de codificação, e o módulo de predição intra 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de predição intra apropriado para usar a partir dos modos testados. Por exemplo, o módulo de predição intra 46 pode calcular os valores de distorção de taxa utilizando uma análise de distorção de taxa para os vários modos de predição intra, testados, e selecionar o modo de predição intra, 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 bloco original, não codificado que foi codificado para produzir o bloco codificado, assim como uma taxa de bits (isto é, um número de bits) usada para produzir o bloco codificado. O módulo de predição intra 46 pode calcular as proporções a partir das distorções e taxas para os vários blocos codificados para determinar qual modo de predição intra, apresenta o melhor valor de distorção de taxa para o bloco.
[00116] Em todo caso, após selecionar um modo de predição intra para um bloco, o módulo de predição intra 46 pode prover informação indicativa do modo de predição intra selecionado para o bloco à unidade de codificação de entropia 56. A unidade de codificação de entropia 56 pode codificar a informação indicando o modo de predição intra selecionado. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido os dados de configuração, os quais podem incluir uma pluralidade de tabelas de índice de modo de predição intra e uma pluralidade de tabelas de índice de modo de predição, modificadas (também referidas como tabelas de mapeamento de palavra-chave), definições de contextos de codificação para vários blocos, e indicações de um modo de predição intra mais provável, uma tabela de índice de modo de predição intra, e uma tabela de índice de modo de predição intra, modificada para usar para cada um dos contextos.
[00117] Após o módulo de predição 41 gerar o bloco preditivo para o bloco de vídeo atual por intermédio de predição inter ou de predição intra, o codificador de vídeo 20 forma um bloco de vídeo residual mediante subtração do bloco preditivo a partir 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 ao módulo de transformada 52. O módulo de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residual utilizando uma transformada, tal como uma transformada discreta de cosseno (DCT) ou uma transformada similar na forma conceptual. O módulo de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel para um domínio de transformada, tal como um domínio de frequência.
[00118] O módulo de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou a todos os coeficientes. O grau de quantização pode ser modificado mediante ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada, quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[00119] Após a quantização, a unidade de codificação de entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseado em sintaxe (SBAC), codificação de entropia de divisão de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia. Após a codificação por entropia por intermédio da unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para posterior transmissão ou recuperação pelo decodificador 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.
[00120] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para posterior uso como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência mediante adição do bloco residual a um bloco preditivo de um dos quadros de um armazenamento de quadro de referência na memória 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel de sub-inteiro para uso em estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento no meio de armazenamento de quadro de referência da memória 64 (algumas vezes chamado de armazenador temporário de imagem decodificada (DPB)). O bloco de vídeo reconstruído pode ser usado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para codificação inter de um bloco em um quadro de vídeo subsequente.
[00121] O codificador de vídeo 20 opcionalmente pode incluir um decodificador de referência hipotética (HRD) 57 (ilustrado como opcional por intermédio do uso de linhas tracejadas) para verificar os fluxos de bits codificados gerados pelos elementos do codificador de vídeo 20 para conformidade com o modelo de armazenamento temporário definido para o HRD 57. O HRD 57 pode verificar os fluxos de bit do Tipo I e/ou do Tipo II ou subconjuntos de fluxo de bit para conformidade de HRD. Conjuntos de parâmetros necessários para operação do HRD 57 são sinalizados por um de dois tipos de conjuntos de parâmetros HRD, parâmetros NAL HRD e parâmetros VCL HRD. Como descrito acima, os conjuntos de parâmetros HRD podem ser incorporados dentro da estrutura de sintaxe SPS e/ou da estrutura de sintaxe VPS.
[00122] O HRD 57 pode testar os blocos de vídeo e elementos de sintaxe associados 55 para conformidade com as exigências especificadas como um ou mais testes de conformidade de fluxo de bit definidos em uma especificação de codificação de vídeo, tal como HEVC WD9 ou uma especificação sucessora tal como HEVC WD10. Por exemplo, o HRD 57 pode testar o fluxo de bits codificado para conformidade mediante processamento dos elementos de sintaxe 55 para determinar, a partir da estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS para uma sequência de vídeo codificada, os elementos de sintaxe que definem a condição para sinalizar o número de tiques de relógio correspondendo a uma diferença de valores POC igual a 1. Se a condição se mantiver de acordo com os valores de elementos de sintaxe, HRD 57 pode determinar o número de tiques de relógio correspondendo a uma diferença de valores POC igual a 1 e usar o número determinado de tiques de relógio como entrada para, por exemplo, determinar um fluxo insuficiente CPB ou um fluxo excessivo durante a decodificação de imagens codificadas incluídas no fluxo de bits codificado. O uso aqui do termo “processamento” com relação a um elemento de sintaxe pode se referir à extração, decodificação e extração, leitura, análise e qualquer outra operação que pode ser servida ou combinação de operações para obter elementos de sintaxe em uma forma utilizável por um decodificador/HRD 57.
[00123] Como outro exemplo, o HRD 57 pode testar o fluxo de bits codificado para conformidade mediante decodificação do fluxo de bits codificado para determinar a escala de tempo e o número de unidades em um tique de relógio a partir de uma estrutura de sintaxe VPS de elementos de sintaxe 55 que codificam a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez na estrutura de sintaxe VPS. Em alguns casos, o HRD 57 pode testar o fluxo de bits codificado para conformidade mediante decodificação dos elementos de sintaxe 55 para determinar a escala de tempo e o número de unidades em um tique de relógio a partir de uma estrutura de sintaxe VUI do fluxo de bits codificado que codifica a escala de tempo e o número de unidades em um elemento de sintaxe de tique de relógio no máximo uma vez na estrutura de sintaxe VUI. A escala de tempo e o número de unidades em um tique de relógio podem ser sinalizados de outra forma do que em uma estrutura de sintaxe de parâmetros HRD incorporada dentro da estrutura de sintaxe VPS e/ou VUI. O HRD 57 pode usar a escala de tempo determinada e o número determinável de unidades em um tique de relógio como entrada para, por exemplo, determinar o fluxo insuficiente CPB ou excesso de fluxo durante a decodificação das imagens codificadas incluídas no fluxo de bits codificado.
[00124] De acordo com as técnicas aqui descritas, o HRD 57 pode testar o fluxo de bits codificado para conformidade mediante decodificação, a partir de uma estrutura de sintaxe VPS dos elementos de sintaxe 55 para uma ou mais sequências de vídeo codificadas, o valor para um POC proporcional ao indicador de temporização. O HRD 57 pode adicionalmente, ou alternativamente, testar um fluxo de bits codificado para conformidade mediante decodificação do valor para um POC proporcional ao indicador de temporização na estrutura de sintaxe VPS apenas se a escala de tempo e o número de unidades nos elementos de sintaxe de tique de relógio também estiverem incluídos. O HRD 57 pode usar o valor determinado do POC proporcional ao indicador de temporização e a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio como entrada para, por exemplo, determinar fluxo insuficiente CPB ou fluxo em excesso durante decodificação de imagens codificadas incluídas no fluxo de bits codificado.
[00125] A Figura 3 é um diagrama de blocos ilustrando um decodificador de vídeo exemplar 76 que pode implementar as técnicas descritas nessa invenção. No exemplo da Figura 3, o decodificador de vídeo 76 inclui armazenador temporário de imagem codificada (CPB) 78, unidade de decodificação por entropia 80, módulo de predição 81, unidade de quantização inversa 86, unidade de transformada inversa 88, somador 90, e armazenador de imagem decodificada (DPB) 92. O módulo de predição 81 inclui unidade de compensação de movimento 82 e módulo de predição intra 84. O decodificador de vídeo 76 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita com relação ao codificador de vídeo 20 a partir da Figura 2. O decodificador de vídeo 76 pode representar uma instância exemplar do decodificador de vídeo 30 do dispositivo de destino 14 ou do decodificador de referência hipotética 57 da Figura 2.
[00126] CPB 78 armazena as imagens codificadas a partir do fluxo de bits de imagem codificada. Em um exemplo, CPB 78 é um armazenador temporário do tipo primeiro a entrar, primeiro a sair que contém unidades de acesso (AU) na ordem de decodificação. Uma AU é um conjunto de unidades de camada de abstração de rede (NAL) que são associadas entre si de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação, e cada uma delas contém exatamente uma imagem codificada. A ordem de decodificação é a ordem na qual as imagens são decodificadas, e pode diferir da ordem na qual as imagens são exibidas (isto é, a ordem de exibição). A operação do CPB pode ser especificada por um decodificador de referência hipotética (HRD).
[00127] Durante o processo de decodificação, o decodificador de vídeo 76 recebe um fluxo de bits de vídeo codificado que representa os blocos de vídeo de uma fatia de vídeo codificado e elementos de sintaxe associados a partir do codificador de vídeo 20. A unidade de decodificação por entropia 80 do decodificador de vídeo 76 decodifica o fluxo de bits para gerar coeficientes quantizados, vetores de movimento e outros elementos de sintaxe 55. A unidade de decodificação por entropia 80 envia os vetores de movimento e outros elementos de sintaxe 55 para o módulo de predição 81. O decodificador de vídeo 76 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo. O fluxo de bits de vídeo codificado pode incluir informação de temporização sinalizada de acordo com as técnicas descritas abaixo. Por exemplo, o fluxo de bits de vídeo codificado pode incluir um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de sequência (SPS), ou qualquer combinação dos mesmos que têm estruturas de sintaxe de acordo com as técnicas aqui descritas para sinalizar parâmetros para operações de HRD.
[00128] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), o módulo de predição intra 84 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados a partir de blocos previamente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia codificada inter (isto é, B, P ou GPB), a unidade de compensação de movimento 82 do módulo de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe 55 recebidos a partir da unidade de decodificação de entropia 80. Os blocos preditivos 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 76 pode construir as listas de quadro de referência, Lista 0 e Lista 1, utilizando técnicas de construção padrão com base nas imagens de referência armazenadas em DPB 92.
[00129] 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 mediante análise dos vetores de movimento e outros elementos de sintaxe 55, e utiliza a informação de predição para produzir os blocos preditivos para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 utiliza alguns dos elementos de sintaxe 55 recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, 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 codificado inter, da fatia; status de predição inter para cada bloco de vídeo codificado inter, da fatia, e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[00130] A unidade de compensação de movimento 82 também pode realizar interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 82 pode usar filtros de interpolação conforme usado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular os valores interpolados para pixels de inteiro secundário de blocos de referência. Nesse 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 55 e usar os filtros de interpolação para produzir os blocos preditivos.
[00131] A unidade de quantização inversa 86 quantiza de forma inversa, isto é, desquantiza, os coeficientes de transformada quantizados providos no fluxo de bits e decodificados pela unidade de decodificação de entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, similarmente, um grau de quantização inversa que deve ser aplicado. A unidade de transformada inversa 88 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa, ou um processo de transformada inversa semelhante de forma conceptual, aos coeficientes de transformada para produzir blocos residuais no domínio de pixel.
[00132] Após a unidade de compensação de movimento 82 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe 55, o decodificador de vídeo 76 forma um bloco de vídeo decodificado pela soma dos blocos residuais da unidade de transformada inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente, ou componentes, que realiza essa operação de soma. Se desejado, um filtro de desblocagem também pode ser aplicado para filtrar os blocos decodificados para remover os artefatos de blocagem. Outros filtros de circuito fechado (no circuito fechado de codificação ou após o circuito fechado de codificação) também podem ser usados para transições suaves de pixel, ou de outro modo para aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagem são então armazenados no DPB 92, que armazena as imagens de referência usadas para compensação de movimento subsequente. O DPB 92 também armazena o vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como o dispositivo de exibição 32 da Figura 1. Como o CPB 78, em um exemplo, a operação do DPB 92 pode ser especificada pelo Decodificador de Referência Hipotética (HRD).
[00133] O codificador 20 e o decodificador 76, conforme descritos nessa invenção representam exemplos de dispositivos configurados para realizar técnicas para sinalização de temporização em um processo de codificação de vídeo como descrito nessa invenção. Consequentemente, as operações descritas nessa invenção para sinalização de tempo podem ser realizadas pelo codificador 20, decodificador 76 ou ambos. Em alguns casos, o codificador 20 pode sinalizar informação de temporização decodificador 76 pode receber tal informação de temporização, por exemplo, para uso na definição de uma ou mais características de HRD, recursos, parâmetros, ou condições.
[00134] O decodificador de vídeo 76 pode em alguns casos ser um decodificador de vídeo 76 sob teste (ou VUT). O decodificador de vídeo 76 pode receber uma representação do fluxo de bits codificados gerado por um codificador de vídeo 20 para sinalizar diretamente, na estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS dos elementos de sintaxe 55 para uma sequência de vídeo codificada, todos os elementos de sintaxe que definem a condição para sinalizar um número de tiques de relógio correspondendo a uma diferença dos valores de contagem de ordem de imagem (POC) igual a 1. O decodificador de vídeo 76 pode decodificar o fluxo de bits codificado para determinar, a partir da estrutura de sintaxe VPS ou na parte VUI da estrutura de sintaxe SPS para uma sequência de vídeo codificada, os elementos de sintaxe que definem a condição para sinalizar o número de tiques de relógio correspondendo a uma diferença de valores POC igual a 1. Se a condição se mantém de acordo com os valores de elemento de sintaxe, o decodificador de vídeo 76 pode determinar o número de tiques de relógio correspondendo a uma diferença de valores POC igual a 1 e utilizar o número determinado de tiques de relógio como entrada para, por exemplo, determinar fluxo insuficiente ou fluxo excessivo de CBP 78 durante a decodificação das imagens codificadas incluídas no fluxo de bits codificado.
[00135] Em outro exemplo, o codificador de vídeo 20 pode receber uma representação do fluxo de bits codificados gerado pelo codificador de vídeo 20 para sinalizar a escala de tempo e o número de unidades em um tique de relógio no máximo uma vez em cada uma das estruturas de sintaxe VPS e VUI dos elementos de sintaxe 55 para uma determinada sequência de vídeo codificada. O decodificador de vídeo 76 pode decodificar o fluxo de bits codificado para determinar a escala de tempo e o número de unidades em um tique de relógio a partir de uma estrutura de sintaxe VPS do fluxo de bits codificado que codifica a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez na estrutura de sintaxe VPS. Em alguns casos, o decodificador de vídeo 76 pode testar o fluxo de bits codificado para conformidade mediante decodificação do fluxo de bits codificado para determinar a escala de tempo e o número de unidades em um tique de relógio a partir de uma estrutura de sintaxe VUI do fluxo de bits codificado que codifica a escala de tempo e o número de unidades em elementos de sintaxe de tique de relógio no máximo uma vez na estrutura de sintaxe VUI. A escala de tempo e o número de unidades em um tique de relógio podem ser sinalizados de outra forma do que em uma estrutura de sintaxe de parâmetros HRD incorporada dentro da estrutura de sintaxe VPS e/ou VUI. O decodificador de vídeo 76 pode usar a escala de tempo determinada e o número determinado de unidades em um tique de relógio como entrada para, por exemplo, determinar fluxo insuficiente ou fluxo excessivo de CPB 78 durante a decodificação das imagens codificadas incluídas no fluxo de bits codificado.
[00136] Em outro exemplo, o decodificador de vídeo 76 pode receber uma representação do fluxo de bits codificado gerado pelo codificador de vídeo 20 para sinalizar, em uma estrutura de sintaxe VPS dos elementos de sintaxe 55 para uma ou mais sequências de vídeo codificadas, um POC proporcional ao indicador de temporização. O decodificador de vídeo 76 pode testar o fluxo de bits codificado para conformidade mediante decodificação do fluxo de bit codificado para determinar um valor para o indicador. O decodificador de vídeo 76 adicionalmente, ou alternativamente, pode testar um fluxo de bits codificado, gerado pelo decodificador de vídeo 76 para sinalizar o indicador na estrutura de sintaxe VPS apenas se a escala de tempo e o número de unidades de elementos de sintaxe em um tique de relógio também forem incluídos. O decodificador de vídeo 76 também pode usar o valor determinado do POC proporcional ao indicador de temporização e a escala de tempo e o número de unidades de elementos de sintaxe em um tique de relógio como entrada para, por exemplo, determinar fluxo insuficiente ou fluxo excessivo de CPB 78 durante a decodificação de imagens codificadas incluídas no fluxo de bits codificado.
[00137] A Figura 4 é um diagrama em blocos ilustrando uma estrutura de codificação exemplar 100 para um conjunto de imagens de referência. A estrutura de codificação 100 inclui fatias 102A-102E (coletivamente, “fatias 102”). A contagem de ordem de imagem 108 associada com a estrutura de codificação 100 denota a ordem de saída da fatia correspondente no conjunto de imagens de referência. Por exemplo, fatia-I 102A deve ser emitida primeiro (valor de POC 0) enquanto que fatia-B 102B deve ser emitida em segundo lugar (valor de POC 1). A ordem de decodificação 110 associada com a estrutura de codificação 100 denota a ordem de decodificação para a fatia correspondente no conjunto de imagens de referência. Por exemplo, a fatia-I 102A deve ser emitida em primeiro lugar (ordem de decodificação 1) enquanto que a fatia-B 102B deve ser emitida em segundo lugar (ordem de decodificação 2).
[00138] A seta 104 indica um tempo de saída para as imagens ao longo de uma sequência contínua de tempo t. O intervalo de tempo 106 representa um intervalo de tempo correspondendo a uma diferença de valores de contagem de ordem de imagem (POC) igual a 1. O intervalo de tempo 106 pode incluir um número de tiques de relógio, que pode depender da escala de tempo (correspondendo, por exemplo, a uma frequência de oscilador - tal como 27 MHz - que define um sistema de coordenada de tempo para a informação sinalizada) e o número de unidades de tempo de um relógio operando na escala de tempo que corresponde a um incremento de um contador de tique de relógio, o qual é referido como um “tique de relógio”. De acordo com as técnicas aqui descritas, um codificador de vídeo 20 pode gerar um fluxo de bits para diretamente sinalizar, na estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) ou na parte de informação de usabilidade de vídeo (VUI) da estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) para uma sequência de vídeo codificada, os elementos de sintaxe que definem uma condição para sinalização de um número de tiques de relógio correspondendo a uma diferença dos valores de contagem de ordem de imagem (POC) igual a 1.
[00139] A Figura 5 é um fluxograma ilustrando um método exemplar de operação de acordo com as técnicas descritas nessa invenção. Um codificador de vídeo 20 codifica as imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada (200). O codificador de vídeo 20 adicionalmente gera conjuntos de parâmetro para a sequência de vídeo codificada. Os conjuntos de parâmetro podem incluir parâmetros codificados de acordo com uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) e/ou de acordo com uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS). De acordo com as técnicas aqui descritas, o codificador de vídeo 20 codifica elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo diretamente para a estrutura de sintaxe VPS e/ou diretamente para a estrutura de sintaxe SPS para a sequência de vídeo codificada (202). O termo “diretamente” indica que tal codificação pode ser gerada sem incorporar, na estrutura de sintaxe VPS ou na estrutura de sintaxe SPS (conforme aplicável), os elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo definida para uma estrutura de sintaxe de conjunto de parâmetros, separada, de tal modo que aquela correspondendo ao conjunto de parâmetros de decodificador de referência hipotética (HRD) conforme definido em HEVC WD9.
[00140] Além disso, o codificador de vídeo 20 codifica, diretamente para a estrutura de sintaxe VPS e/ou estrutura de sintaxe SPS da sequência de vídeo codificada, uma condição para sinalizar um número de tiques de relógio correspondendo a uma diferença dos valores de contagem de ordem de imagem (POC) igual a 1 (204). A condição pode incluir um ou mais elementos de sintaxe que representam variáveis para uma fórmula Booleana, em cujo caso o codificador de vídeo 20 pode codificar cada elemento de sintaxe diretamente para a estrutura de sintaxe VPS e/ou estrutura de sintaxe SPS da sequência de vídeo codificada. O codificador de vídeo 20 emite a sequência de vídeo codificada e a estrutura de sintaxe VPS e/ou a estrutura de sintaxe SPS para sequência de vídeo codificada (206). Em alguns casos, o codificador de vídeo 20 emite essas estruturas para um HRD do codificador de vídeo 20.
[00141] As Figuras 6A-6B são fluxogramas que ilustram métodos exemplares de operação de acordo com as técnicas descritas nessa invenção. Na Figura 6A, um codificador de vídeo 20 codifica imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada (200). O codificador de vídeo 20 adicionalmente gera conjuntos de parâmetros para a sequência de vídeo codificada. Os conjuntos de parâmetros podem incluir parâmetros codificados de acordo com uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS). De acordo com as técnicas aqui descritas, o codificador de vídeo 20 codifica os elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo diretamente, e no máximo uma vez, para uma estrutura de sintaxe VPS para a sequência de vídeo codificada (302). Em alguns casos, mesmo nos casos nos quais a estrutura de sintaxe VPS inclui múltiplas instâncias de parâmetros HRD, mediante a codificação dos elementos de sintaxe diretamente para a estrutura de sintaxe VPS (no máximo uma vez) e não para os conjuntos de parâmetros HRD (ou qualquer outra estrutura de sintaxe de conjunto de parâmetros, incorporada), a estrutura de sintaxe VPS pode incluir um único elemento de sintaxe para cada uma das unidades em um tique de relógio e a escala de tempo. O codificador de vídeo 20 emite a sequência de vídeo codificada e a estrutura de sintaxe VPS para a sequência de vídeo codificada (304). Em alguns casos, o codificador de vídeo 20 emite essas estruturas para um HRD do codificador de vídeo 20.
[00142] Na Figura 6B, o codificador de vídeo 20 codifica as imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada (310). O codificador de vídeo 20 adicionalmente gera conjuntos de parâmetro para a sequência de vídeo codificada. Os conjuntos de parâmetros podem incluir parâmetros codificados de acordo com uma estrutura de sintaxe de conjunto de parâmetros de vídeo (SPS). De acordo com as técnicas aqui descritas, o codificador de vídeo 20 codifica os elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo diretamente, e no máximo uma vez, para uma estrutura de sintaxe SPS para a sequência de vídeo codificada (312). Em alguns casos, mesmo nos casos nos quais a estrutura de sintaxe SPS inclui múltiplas instâncias de parâmetros HRD, mediante codificação dos elementos de sintaxe diretamente para a estrutura de sintaxe SPS (no máximo uma vez) e não para os conjuntos de parâmetros HRD (ou qualquer outra estrutura de sintaxe de conjunto de parâmetros, incorporada), a estrutura de sintaxe SPS pode incluir um único elemento de sintaxe para cada uma das unidades em um tique de relógio e a escala de tempo. O codificador de vídeo 20 emite a sequência de vídeo codificada e a estrutura de sintaxe SPS para a sequência de vídeo codificada (314). Em alguns casos, o codificador de vídeo 20 emite essas estruturas para um HRD do codificador de vídeo 20. Em algumas instâncias, o codificador de vídeo 20 pode codificar os elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo para ambas, estrutura de sintaxe VPS e estrutura de sintaxe SPS para a sequência de vídeo codificada.
[00143] A Figura 7 é um fluxograma ilustrando um método de operação exemplar de acordo com as técnicas descritas nessa invenção. Um codificador de vídeo 20 codifica as imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada (400). O codificador de vídeo 20 adicionalmente gera conjuntos de parâmetros para a sequência de vídeo codificada. Os conjuntos de parâmetros podem incluir parâmetros codificados de acordo com uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS). Se a informação de temporização deve ser incluída, por exemplo, para definir um modelo de armazenamento temporário de HRD (derivação SIM de 402), o codificador de vídeo 20 codifica, diretamente para uma estrutura de sintaxe VPS para a sequência de vídeo codificada, um elemento de sintaxe tendo um valor que especifica se o valor de contagem de ordem de imagem (POC) para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada (404). O elemento de sintaxe pode ser semanticamente similar ao poc_proportional_to_timing_flag definido por HEVC WD9. A informação de temporização pode representar o número de unidades em um tique de relógio e a escala de tempo.
[00144] Se o valor do elemento de sintaxe for verdadeiro (derivação SIM de 406), o codificador de vídeo 20 também codifica um elemento de sintaxe para o número de tiques de relógio correspondendo uma diferença de valores de contagem de ordem de imagem igual a um (408). Como o codificador de vídeo 20 codifica os elementos de sintaxe para o VPS, os valores dos elementos de sintaxe podem se aplicar a todas as camadas ou todos os possíveis subconjuntos de fluxo de bits de um fluxo de bits de vídeo escalável, uma vez que o VPS representa o conjunto de parâmetros de camada mais alta e descreve as características globais das sequências de imagem codificadas.
[00145] Se a informação de temporização não deve ser incluída na estrutura de imagem VPS (derivação NÃO de 402), o codificador de vídeo 20 não codifica o elemento de sintaxe para indicar que o POC é proporcional à informação de temporização nem o elemento de sintaxe para o número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem igual a um. Se o POC não for proporcional à informação de temporização (isto é, o valor for falso) (derivação NÃO de 406), o codificador de vídeo 20 não codifica o elemento de sintaxe para o número de tiques de relógio correspondendo a uma diferença dos valores de contagem de ordem de imagem igual a um.
[00146] O codificador de vídeo 20 emite a sequência de vídeo codificada e a estrutura de sintaxe VPS para a sequência de vídeo codificada (410). Em alguns casos, o codificador de vídeo 20 emite essas estruturas para um HRD do codificador de vídeo 20.
[00147] A Figura 8 é um fluxograma ilustrando um método exemplar de operação de acordo com as técnicas descritas nessa invenção. Um dispositivo decodificador de vídeo 30 ou decodificador de referência hipotética 57 de um dispositivo codificador de vídeo 20 (em seguida, “o decodificador”) recebe uma sequência de vídeo codificada e uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) e/ou uma estrutura de sintaxe de conjunto de parâmetros de sequência (SPS) para a sequência de vídeo codificada (500). A sequência de vídeo codificada e/ou estrutura(s) de sintaxe pode ser codificada para um fluxo de bits que inclui uma ou mais imagens codificadas.
[00148] O decodificador processa a estrutura de sintaxe VPS e/ou a estrutura de sintaxe SPS para extrair um elemento de sintaxe que especifica, diretamente na estrutura de sintaxe VPS e/ou na estrutura de sintaxe SPS, uma condição para sinalizar um número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem (POC) igual a um (502). A condição pode incluir um ou mais elementos de sintaxe que representam variáveis para uma fórmula Booleana, em cujo caso o decodificador pode processar cada elemento de sintaxe diretamente a partir da estrutura de sintaxe VPS e/ou estrutura de sintaxe SPS da sequência de vídeo codificada.
[00149] O decodificador adicionalmente processa a estrutura de sintaxe VPS e/ou a estrutura de sintaxe SPS para extrair elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo diretamente a partir da estrutura de sintaxe VPS e/ou diretamente a partir da estrutura de sintaxe SPS para a sequência de vídeo codificada (504). O decodificador pode então verificar a conformidade da sequência de vídeo codificada com um modelo de armazenamento temporário de vídeo que é definido, ao menos em parte, pelos valores para a condição, o número de unidades em um tique de relógio, e a escala de tempo conforme extraída da estrutura de sintaxe VPS e/ou da estrutura de sintaxe SPS e como lida a partir dos correspondentes elementos de sintaxe (506).
[00150] As Figuras 9A-9B são fluxogramas ilustrando métodos exemplares de operação de acordo com as técnicas descritas nessa invenção. Na Figura 9A, um dispositivo decodificador de vídeo 30 ou decodificador de referência hipotética 57 de um dispositivo codificador de vídeo 20 (em seguida, “o decodificador”) recebe uma sequência de vídeo decodificada e uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) para a sequência de vídeo codificada (600). A sequência de vídeo codificada e/ou a estrutura de sintaxe VPS pode ser codificada para um fluxo de bits que inclui uma ou mais imagens codificadas.
[00151] De acordo com as técnicas aqui descritas, o decodificador processa a estrutura de sintaxe VPS para extrair elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo que ocorrem diretamente, e no máximo uma vez, na estrutura de sintaxe VPS para a sequência de vídeo codificada (602). O decodificador pode então verificar a conformidade da sequência de vídeo codificada com um modelo de armazenamento temporário de vídeo que é definido, ao menos em parte, pelos valores para o número de unidades em um tique de relógio e a escala de tempo conforme extraída a partir da estrutura de sintaxe VPS e conforme lida a partir dos correspondentes elementos de sintaxe (604).
[00152] Na Figura 9B, o decodificador recebe uma sequência de vídeo codificada e uma estrutura de sintaxe de conjunto de parâmetros de vídeo (SPS) para a sequência de vídeo codificada (610). A sequência de vídeo codificada e/ou as estruturas de sintaxe SPS podem ser codificadas para um fluxo de bits que inclua uma ou mais imagens codificadas.
[00153] De acordo com as técnicas aqui descritas, o decodificador processa a estrutura de sintaxe SPS para extrair elementos de sintaxe para o número de unidades em um tique de relógio e a escala de tempo que ocorrem diretamente, e no máximo uma vez, na estrutura de sintaxe SPS para a sequência de vídeo codificada (612). O decodificador pode então verificar a conformidade da sequência de vídeo codificada em relação a um modelo de armazenamento temporário de vídeo que é definido, ao menos em parte, pelos valores para o número de unidades em um tique de relógio e a escala de tempo como extraída a partir da estrutura de sintaxe SPS e conforme lida a partir dos elementos de sintaxe correspondentes (614).
[00154] A Figura 10 é um fluxograma ilustrando um método exemplar de operação de acordo com as técnicas descritas nessa invenção. Na Figura 10, um dispositivo decodificador de vídeo 30 ou decodificador de referência hipotética 57 de um dispositivo codificador de vídeo 20 (em seguida, “o decodificador”) recebe uma sequência de vídeo codificada e uma estrutura de sintaxe de conjunto de parâmetros de vídeo (VPS) para a sequência de vídeo codificada (700). A sequência de vídeo codificada e/ou a estrutura de sintaxe VPS pode ser codificada para um fluxo de bits que inclui uma ou mais imagens codificadas.
[00155] O decodificador processa a estrutura de sintaxe VPS para extrair um elemento de sintaxe que especifica se o valor de contagem de ordem de imagem para cada imagem na sequência de vídeo codificada que não é a primeira imagem na sequência de vídeo codificada, na ordem de decodificação, é proporcional ao tempo de saída da imagem em relação ao tempo de saída da primeira imagem na sequência de vídeo codificada (702). Se o valor para o elemento de sintaxe for verdadeiro, então o decodificador processa adicionalmente a estrutura de sintaxe VPS para extrair um elemento de sintaxe para o número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem igual a um (706). O decodificador pode então verificar a conformidade da sequência de vídeo codificada em relação a um modelo de armazenamento temporário de vídeo que é definido, ao menos em parte, pelo valor para o número de tiques de relógio correspondendo a uma diferença de valores de contagem de ordem de imagem igual àquele extraído a partir da estrutura de sintaxe VPS e conforme lido a partir do elemento de sintaxe correspondente (708).
[00156] 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 no, ou transmitidas através do, como uma ou mais instruções ou código, meio legível por computador e executadas por uma unidade de processamento baseado em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, os quais correspondem a um meio tangível; tal como os meios de armazenamento de dados, ou meios de comunicação incluindo qualquer meio que facilita a transferência de um programa de computador de um local para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, meios legíveis por computador geralmente podem corresponder a (1) meios de armazenamento tangíveis legíveis por computador os quais são não transitórios ou (2) um meio de comunicação tal com um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que podem ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa invenção. Um produto de programa de computador pode incluir um meio legível por computador.
[00157] Como exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro meio de armazenamento de dados de estado sólido, ótico ou magnético, incluindo armazenamento de disco ótico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possam ser acessados por um computador. Além disso, qualquer conexão é propriamente denominada meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio de rede, servidor, ou outra fonte remota utilizando um cabo coaxial, cabo de fibras óticas, par de fios torcidos, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo axial, cabo de fibras óticas, par de fios torcidos, DSL, ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve ser entendido, contudo, que meios de armazenamento tangíveis legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transientes, mas em vez disso são dirigidos aos meios de armazenamento não transientes, tangíveis. Disco magnético e disco ótico, conforme aqui usado, incluem disco compacto (CD), disco a laser, disco ótico, disco digital versátil (DVD), disquete e disco Blu-ray, onde discos magnéticos normalmente reproduzem os dados magneticamente, enquanto que os discos óticos reproduzem os dados oticamente com laseres. Combinações dos mencionados acima também devem ser incluídas no escopo de meios legíveis por computador.
[00158] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis no campo (FPGAs), ou outros circuitos lógicos integrados ou discretos equivalentes. Consequentemente, o termo “processador”, conforme aqui usado pode se referir a qualquer uma da estrutura precedente ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de hardware e/ou software, dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas poderiam ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[00159] As técnicas dessa invenção podem ser implementadas em uma ampla variedade de dispositivos ou equipamentos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa invenção para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente requerem a realização por diferentes unidades de hardware. Mais propriamente, conforme descrito acima, as várias unidades podem ser combinadas em uma unidade de hardware de codec ou providas por um grupo de unidades de hardware inter operativas, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequado.
[00160] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (15)

1. Método para processar dados de vídeo, caracterizado pelo fato de que compreende: receber (600, 610) uma sequência de vídeo codificada compreendendo imagens codificadas de uma sequência de vídeo; e receber parâmetros de temporização para a sequência de vídeo codificada que inclui um primeiro elemento de sintaxe em uma estrutura de sintaxe (602) de conjunto de parâmetros de vídeo, VPS, referenciada pela sequência de vídeo codificada que fornece uma escala de tempo e um segundo elemento de sintaxe na estrutura de sintaxe VPS que fornece um número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na estrutura de sintaxe VPS incluídos diretamente e, no máximo, uma vez na estrutura de sintaxe VPS e aplicável a todas as camadas especificadas pela estrutura de sintaxe VPS; em que os parâmetros de temporização para a sequência de vídeo codificada incluem um primeiro elemento de sintaxe em uma parte de informação de usabilidade de vídeo, VUI, de uma estrutura de sintaxe (612) de conjunto de parâmetros de sequência, SPS, referenciada pela sequência de vídeo codificada que fornece a escala de tempo e um segundo elemento de sintaxe na parte VUI da estrutura de sintaxe SPS que fornece o número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na parte VUI da estrutura de sintaxe SPS incluída diretamente e, no máximo, uma vez na parte VUI da estrutura de sintaxe SPS e aplicável a todas as camadas que estão dentro da sequência de vídeo codificada e que referencia a estrutura de sintaxe SPS.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que receber os parâmetros de temporização para a sequência de vídeo codificada compreende receber a escala de tempo e o número de unidades em um tique de relógio na estrutura de sintaxe VPS.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que receber os parâmetros de temporização para a sequência de vídeo codificada compreende receber a escala de tempo e o número de unidades em um tique de relógio na parte VUI da estrutura de sintaxe SPS.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que receber a sequência de vídeo codificada compreende receber um fluxo de bits codificado compreendendo uma sequência de bits que forma uma representação das imagens codificadas, compreendendo adicionalmente: verificar conformidade do fluxo de bits em relação a um modelo de armazenamento temporário de vídeo de um armazenador temporário de imagens codificadas e um armazenador temporário de imagens decodificadas definido, pelo menos em parte, pela escala de tempo e pelo número de unidades em um tique de relógio.
5. Método para codificar dados de vídeo, caracterizado pelo fato de que compreende: codificar (300, 310) imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada compreendendo as imagens codificadas; e sinalizar parâmetros de temporização para sequência de vídeo codificada ao sinalizar (302), pelo menos em parte, um primeiro elemento de sintaxe em uma estrutura de sintaxe de conjunto de parâmetros de vídeo, VPS, referenciada pela sequência de vídeo codificada que fornece uma escala de tempo e um segundo elemento de sintaxe na estrutura de sintaxe VPS que fornece um número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na estrutura de sintaxe VPS incluídos diretamente e no máximo uma vez na estrutura de sintaxe VPS e aplicável a todas as camadas especificadas pela estrutura de sintaxe VPS, e ao sinalizar (312), pelo menos em parte, um primeiro elemento de sintaxe em uma parte de informação de usabilidade de vídeo, VUI, de uma estrutura de sintaxe de conjunto de parâmetros de sequência, SPS, referenciada pela sequência de vídeo codificada que fornece a escala de tempo e um segundo elemento de sintaxe na parte VUI da estrutura de sintaxe SPS que fornece o número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na parte VUI da estrutura de sintaxe SPS incluída diretamente e no máximo uma vez na parte VUI da estrutura de sintaxe SPS e aplicável a todas as camadas que estão dentro da sequência de vídeo codificada e que referencia a estrutura de sintaxe SPS.
6. Método, de acordo com a reivindicação 1 ou 5, caracterizado pelo fato de que o primeiro elemento de sintaxe na estrutura de sintaxe VPS compreende um elemento de sintaxe vps_time_scale e o segundo elemento de sintaxe na estrutura de sintaxe VPS compreende um elemento de sintaxe vps_num_units_in_tick.
7. Método, de acordo com a reivindicação 1 ou 5, caracterizado pelo fato de que o primeiro elemento de sintaxe na parte VUI da estrutura de sintaxe SPS compreende um elemento de sintaxe sps_time_scale e o segundo elemento de sintaxe na parte VUI da estrutura de sintaxe SPS compreende um elemento de sintaxe sps_num_units_in_tick.
8. Método, de acordo com a reivindicação 1 ou 5, caracterizado pelo fato de que o primeiro e segundo elementos de sintaxe na estrutura de sintaxe VPS não são sinalizados em uma estrutura de sintaxe de parâmetros de decodificador de referência hipotética, HRD, incorporada na estrutura de sintaxe VPS.
9. Método, de acordo com a reivindicação 1 ou 5, caracterizado pelo fato de que o primeiro e segundo elementos de sintaxe na parte VUI da estrutura de sintaxe SPS não são sinalizados em uma estrutura de sintaxe de parâmetros de decodificador de referência hipotética, HRD, incorporada na estrutura de sintaxe SPS.
10. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que compreende adicionalmente: gerar um fluxo de bits codificado compreendendo uma sequência de bits que formam uma representação das imagens codificadas, em que os parâmetros de temporização definem, pelo menos em parte, um modelo de armazenamento temporário de vídeo de um armazenador de imagens codificadas e um armazenador de imagens decodificadas para verificar conformidade do fluxo de bits.
11. Método, de acordo com a reivindicação 1 ou 5, caracterizado pelo fato de que os parâmetros de temporização compreendem parâmetros de temporização para operações de decodificação de referência hipotética.
12. Método, de acordo com a reivindicação 1 ou 5, caracterizado pelo fato de que a estrutura de sintaxe VPS especifica uma pluralidade de camadas.
13. Memória caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um computador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 12.
14. Dispositivo para processar dados de vídeo caracterizado pelo fato de que compreende: meios para receber parâmetros de temporização para a sequência de vídeo codificada que inclui um primeiro elemento de sintaxe em uma estrutura de sintaxe de conjunto de parâmetros de vídeo, VPS, referenciada pela sequência de vídeo codificada que fornece uma escala de tempo e um segundo elemento de sintaxe na estrutura de sintaxe VPS que fornece um número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na estrutura de sintaxe VPS incluídos diretamente e no máximo uma vez na estrutura de sintaxe VPS e aplicável a todas as camadas especificadas pela estrutura de sintaxe VPS; em que os parâmetros de temporização para a sequência de vídeo codificada incluem um primeiro elemento de sintaxe em uma parte de informação de usabilidade de vídeo, VUI, de uma estrutura de sintaxe de conjunto de parâmetros de sequência, SPS, referenciada pela sequência de vídeo codificada que fornece a escala de tempo e um segundo elemento de sintaxe na parte VUI da estrutura de sintaxe SPS que fornece o número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na parte VUI da estrutura de sintaxe SPS incluída diretamente e no máximo uma vez na parte VUI da estrutura de sintaxe SPS e aplicável a todas as camadas que estão dentro da sequência de vídeo codificada e que referencia a estrutura de sintaxe SPS.
15. Dispositivo para codificar dados de vídeo caracterizado pelo fato de que compreende: meios para codificar imagens de uma sequência de vídeo para gerar uma sequência de vídeo codificada compreendendo as imagens codificadas; e meios para sinalizar parâmetros de temporização para sequência de vídeo codificada ao sinalizar, pelo menos em parte, um primeiro elemento de sintaxe em uma estrutura de sintaxe de conjunto de parâmetros de vídeo, VPS, referenciada pela sequência de vídeo codificada que fornece uma escala de tempo e um segundo elemento de sintaxe na estrutura de sintaxe VPS que fornece um número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na estrutura de sintaxe VPS incluídos diretamente e no máximo uma vez na estrutura de sintaxe VPS e aplicável a todas as camadas especificadas pela estrutura de sintaxe VPS, e ao sinalizar, pelo menos em parte, um primeiro elemento de sintaxe em uma parte de informação de usabilidade de vídeo, VUI, de uma estrutura de sintaxe de conjunto de parâmetros de sequência, SPS, referenciada pela sequência de vídeo codificada que fornece a escala de tempo e um segundo elemento de sintaxe na parte VUI da estrutura de sintaxe SPS que fornece o número de unidades em um tique de relógio, o primeiro e segundo elementos de sintaxe na parte VUI da estrutura de sintaxe SPS incluída diretamente e no máximo uma vez na parte VUI da estrutura de sintaxe SPS e aplicável a todas as camadas que estão dentro da sequência de vídeo codificada e que referencia a estrutura de sintaxe SPS.
BR112015016253-3A 2013-01-07 2013-12-20 Sinalização de informação de derivação de tique de relógio para temporização de vídeo em codificação de vídeo BR112015016253B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361749866P 2013-01-07 2013-01-07
US61/749,866 2013-01-07
US14/061,215 2013-10-23
US14/061,215 US9325992B2 (en) 2013-01-07 2013-10-23 Signaling of clock tick derivation information for video timing in video coding
PCT/US2013/077283 WO2014107362A1 (en) 2013-01-07 2013-12-20 Signaling of clock tick derivation information for video timing in video coding

Publications (2)

Publication Number Publication Date
BR112015016253A2 BR112015016253A2 (pt) 2017-07-11
BR112015016253B1 true BR112015016253B1 (pt) 2023-02-23

Family

ID=51060946

Family Applications (3)

Application Number Title Priority Date Filing Date
BR112015016230-4A BR112015016230B1 (pt) 2013-01-07 2013-12-20 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
BR112015016256-8A BR112015016256B1 (pt) 2013-01-07 2013-12-20 Sinalização de contagem de ordem de imagens para relações de informação de temporização para temporização de vídeo em codificação de vídeo
BR112015016253-3A BR112015016253B1 (pt) 2013-01-07 2013-12-20 Sinalização de informação de derivação de tique de relógio para temporização de vídeo em codificação de vídeo

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR112015016230-4A BR112015016230B1 (pt) 2013-01-07 2013-12-20 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
BR112015016256-8A BR112015016256B1 (pt) 2013-01-07 2013-12-20 Sinalização de contagem de ordem de imagens para relações de informação de temporização para temporização de vídeo em codificação de vídeo

Country Status (29)

Country Link
US (3) US9325992B2 (pt)
EP (3) EP2941886B1 (pt)
JP (4) JP6203866B2 (pt)
KR (3) KR101719940B1 (pt)
CN (3) CN104885469B (pt)
AP (3) AP2015008583A0 (pt)
AR (3) AR095292A1 (pt)
AU (3) AU2013371450B2 (pt)
BR (3) BR112015016230B1 (pt)
CA (3) CA2894704C (pt)
DK (3) DK2941885T3 (pt)
EA (3) EA026630B1 (pt)
EC (3) ECSP15034549A (pt)
ES (3) ES2613003T3 (pt)
HK (3) HK1210350A1 (pt)
HU (3) HUE032261T2 (pt)
IL (3) IL239303A (pt)
MA (3) MA38236B1 (pt)
MY (3) MY176139A (pt)
PH (3) PH12015501374B1 (pt)
PL (3) PL2941885T3 (pt)
PT (3) PT2941888T (pt)
SA (3) SA515360724B1 (pt)
SG (3) SG11201504553WA (pt)
SI (3) SI2941888T1 (pt)
TW (3) TWI520588B (pt)
UA (3) UA116645C2 (pt)
WO (3) WO2014107362A1 (pt)
ZA (1) ZA201505418B (pt)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2813075A1 (en) * 2012-02-08 2014-12-17 Thomson Licensing Method and apparatus for using an ultra-low delay mode of a hypothetical reference decoder
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
US9325992B2 (en) 2013-01-07 2016-04-26 Qualcomm Incorporated Signaling of clock tick derivation information for video timing in video coding
US10075735B2 (en) * 2013-07-14 2018-09-11 Sharp Kabushiki Kaisha Video parameter set signaling
KR101851479B1 (ko) * 2014-01-03 2018-04-23 노키아 테크놀로지스 오와이 파라미터 세트 코딩
EP3603067A4 (en) * 2017-03-20 2021-03-24 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SIGNALING SCALABLE VIDEO IN A MEDIA APPLICATION FORMAT
US10721608B2 (en) * 2017-12-15 2020-07-21 Motorola Solutions, Inc. Profiles in deployable wireless communications systems
CA3105453A1 (en) 2018-07-01 2020-01-09 Sharp Kabushiki Kaisha Systems and methods for signaling picture order count values for pictures included in coded video
JP2021535671A (ja) * 2018-08-31 2021-12-16 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co., Ltd 符号化方法、復号方法、符号化機器、復号機器、およびコンピュータプログラム
WO2020093999A1 (en) 2018-11-05 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
WO2020171224A1 (ja) * 2019-02-21 2020-08-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2020185879A1 (en) 2019-03-11 2020-09-17 Dolby Laboratories Licensing Corporation Video coding using reference picture resampling supporting region of interest
CN114845109A (zh) 2019-03-11 2022-08-02 杜比实验室特许公司 帧速率可伸缩视频编码
KR20210129224A (ko) * 2019-04-15 2021-10-27 엘지전자 주식회사 스케일링 리스트 기반 비디오 또는 영상 코딩
CN112118454B (zh) * 2019-06-20 2023-02-24 腾讯美国有限责任公司 视频解码方法、设备和计算机可读存储介质
JP2022543627A (ja) 2019-08-06 2022-10-13 ドルビー ラボラトリーズ ライセンシング コーポレイション 描画面サイズ拡張可能ビデオコーディング
WO2021033774A1 (en) * 2019-08-21 2021-02-25 Sharp Kabushiki Kaisha Systems and methods for signaling buffering period information in video coding
EP4032298A4 (en) * 2019-09-17 2023-08-16 Beijing Dajia Internet Information Technology Co., Ltd. METHODS AND APPARATUS FOR PREDICTION REFINEMENT WITH OPTICAL FLOW
MX2022003561A (es) * 2019-09-24 2022-06-14 Huawei Tech Co Ltd Gestión de mensajes de sei de anidamiento escalable.
EP4026094A4 (en) * 2019-10-07 2022-11-09 Huawei Technologies Co., Ltd. VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC) TIME INFORMATION
WO2021133721A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Techniques for implementing a decoding order within a coded picture
CN116800976B (zh) * 2023-07-17 2024-03-12 武汉星巡智能科技有限公司 伴睡婴幼儿时音视频压缩和还原方法、装置及设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001041065A2 (en) 1999-11-29 2001-06-07 Koninklijke Philips Electronics N.V. Method for coding and decoding multimedia data
WO2002080541A1 (fr) 2001-03-29 2002-10-10 Matsushita Electric Industrial Co., Ltd. Appareil d'enregistrement/lecture de donnees av, procede connexe, et disque sur lequel sont enregistrees les donnees par l'appareil d'enregistrement/lecture de donnees av ou procede associe
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US8503541B2 (en) 2004-01-16 2013-08-06 Motorola Mobility Llc Method and apparatus for determining timing information from a bit stream
EP2346243B1 (en) * 2004-08-31 2013-11-06 Panasonic Corporation Moving image encoding method and apparatus
TWI401918B (zh) 2005-02-03 2013-07-11 Nokia Corp 傳送指示接收器緩衝架構之緩衝參數信號的通訊方法
KR101450921B1 (ko) * 2006-07-05 2014-10-15 톰슨 라이센싱 멀티뷰 비디오 엔코딩 및 디코딩을 위한 방법 및 장치
MX339121B (es) * 2006-07-06 2016-05-12 Thomson Licensing Metodo y aparato para desacoplar el numero de cuadro y/o la cuenta del orden de imagen (poc) para la codificación y decodificación de video de múltiples vistas.
JP2009543514A (ja) * 2006-07-11 2009-12-03 トムソン ライセンシング マルチビュー・ビデオ符号化における使用のための方法および装置
CN101569197B (zh) * 2006-12-21 2013-07-10 汤姆森许可贸易公司 针对多视点视频编码和解码使用高级语法进行改进信号通知的方法和装置
US20100061452A1 (en) * 2007-01-04 2010-03-11 Thomson Licensing Corporation Method and apparatus for video error concealment using high level syntax reference views in multi-view coded video
CN101675667A (zh) * 2007-01-04 2010-03-17 汤姆森特许公司 用于多视图编码的视频中的视频纠错的方法和装置
RU2518904C2 (ru) * 2007-01-05 2014-06-10 Томсон Лайсенсинг Гипотетический эталонный декодер для масштабируемого видеокодирования
US8938012B2 (en) 2007-04-13 2015-01-20 Nokia Corporation Video coder
BRPI0809585A2 (pt) 2007-04-17 2014-09-23 Thomson Licensing Decodificador de referência hipotética para codificação de vídeo multivisualização
PL2528341T3 (pl) 2007-04-18 2017-10-31 Dolby Int Ab System kodowania, stosujący uzupełniający zestaw parametrów sekwencyjnych do skalowalnego kodowania wideo lub kodowania wielowidokowego
KR101609890B1 (ko) 2008-09-18 2016-04-06 파나소닉 아이피 매니지먼트 가부시키가이샤 화상 복호 장치, 화상 부호화 장치, 화상 복호 방법, 화상 부호화 방법 및 프로그램
CN104768031B (zh) * 2009-01-26 2018-02-09 汤姆森特许公司 用于视频解码的装置
EP2392138A4 (en) 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
JP5332773B2 (ja) * 2009-03-18 2013-11-06 ソニー株式会社 画像処理装置および方法
US8731053B2 (en) 2009-11-18 2014-05-20 Tektronix, Inc. Method of multiplexing H.264 elementary streams without timing information coded
US8934552B2 (en) * 2011-03-31 2015-01-13 Qualcomm Incorporated Combined reference picture list construction and mapping
US20120287999A1 (en) * 2011-05-11 2012-11-15 Microsoft Corporation Syntax element prediction in error correction
US10154276B2 (en) 2011-11-30 2018-12-11 Qualcomm Incorporated Nested SEI messages for multiview video coding (MVC) compatible three-dimensional video coding (3DVC)
US9325992B2 (en) 2013-01-07 2016-04-26 Qualcomm Incorporated Signaling of clock tick derivation information for video timing in video coding

Also Published As

Publication number Publication date
EA201591235A1 (ru) 2015-11-30
JP2017195614A (ja) 2017-10-26
JP2016506692A (ja) 2016-03-03
CA2894704A1 (en) 2014-07-10
TW201436532A (zh) 2014-09-16
MY169409A (en) 2019-04-01
DK2941886T3 (en) 2017-01-30
WO2014107360A1 (en) 2014-07-10
CA2894549A1 (en) 2014-07-10
US20140192903A1 (en) 2014-07-10
KR101711318B1 (ko) 2017-02-28
BR112015016256A2 (pt) 2017-07-11
SG11201504538WA (en) 2015-07-30
IL239302A (en) 2017-02-28
BR112015016253A2 (pt) 2017-07-11
AP2015008583A0 (en) 2015-07-31
ECSP15034553A (es) 2016-01-29
AU2013371450A1 (en) 2015-07-09
EA201591289A1 (ru) 2015-11-30
BR112015016230B1 (pt) 2023-02-23
EA201591282A1 (ru) 2015-11-30
EA026630B1 (ru) 2017-04-28
PL2941888T3 (pl) 2017-05-31
US9369711B2 (en) 2016-06-14
ES2613003T3 (es) 2017-05-19
HUE032261T2 (en) 2017-09-28
JP2016506691A (ja) 2016-03-03
MA38235B1 (fr) 2017-01-31
SI2941886T1 (sl) 2017-02-28
US20140192902A1 (en) 2014-07-10
KR20150104146A (ko) 2015-09-14
CN104904222A (zh) 2015-09-09
BR112015016256B1 (pt) 2023-02-23
ES2630831T3 (es) 2017-08-24
SA515360731B1 (ar) 2018-05-10
PH12015501525B1 (en) 2015-09-21
HK1210554A1 (en) 2016-04-22
AR095294A1 (es) 2015-10-07
TWI562620B (en) 2016-12-11
JP6337010B2 (ja) 2018-06-06
UA116645C2 (uk) 2018-04-25
CN104904223A (zh) 2015-09-09
HK1210350A1 (en) 2016-04-15
AP2015008575A0 (en) 2015-07-31
US9325992B2 (en) 2016-04-26
MY171807A (en) 2019-10-30
DK2941885T3 (en) 2017-01-30
AR095292A1 (es) 2015-10-07
US9374581B2 (en) 2016-06-21
HUE032248T2 (en) 2017-09-28
TW201444352A (zh) 2014-11-16
SG11201504535TA (en) 2015-07-30
IL239302A0 (en) 2015-07-30
EA026507B1 (ru) 2017-04-28
KR20150104141A (ko) 2015-09-14
IL239303A (en) 2016-11-30
DK2941888T3 (en) 2017-01-30
UA115163C2 (uk) 2017-09-25
SA515360724B1 (ar) 2018-12-10
AR095293A1 (es) 2015-10-07
AU2013371449A1 (en) 2015-07-09
ECSP15034549A (es) 2015-11-30
KR101719940B1 (ko) 2017-03-24
IL239303A0 (en) 2015-07-30
KR20150104142A (ko) 2015-09-14
CA2894549C (en) 2019-03-19
CA2894704C (en) 2020-04-21
MA38236B1 (fr) 2017-03-31
SI2941888T1 (sl) 2017-02-28
ECSP15034547A (es) 2015-11-30
AU2013371449B2 (en) 2017-09-14
JP2016503269A (ja) 2016-02-01
CN104904222B (zh) 2018-12-04
BR112015016230A2 (pt) 2017-07-11
IL239301A0 (en) 2015-07-30
JP6382395B2 (ja) 2018-08-29
EP2941888B1 (en) 2016-11-02
CN104885469B (zh) 2018-10-02
PH12015501374A1 (en) 2015-09-02
MA38236A1 (fr) 2016-08-31
SG11201504553WA (en) 2015-07-30
US20140192901A1 (en) 2014-07-10
KR101788427B1 (ko) 2017-10-19
JP6411368B2 (ja) 2018-10-24
ES2613136T3 (es) 2017-05-22
CN104904223B (zh) 2018-06-01
EP2941886A1 (en) 2015-11-11
SI2941885T1 (sl) 2017-02-28
PT2941888T (pt) 2017-02-03
WO2014107362A1 (en) 2014-07-10
CA2894900C (en) 2018-11-06
MA38241B1 (fr) 2016-12-30
IL239301A (en) 2016-06-30
PL2941886T3 (pl) 2017-05-31
MA38241A1 (fr) 2016-04-29
AU2013371450B2 (en) 2017-06-22
AU2013371451A1 (en) 2015-07-02
MA38235A1 (fr) 2016-05-31
EP2941886B1 (en) 2016-11-02
MY176139A (en) 2020-07-24
TW201444351A (zh) 2014-11-16
PT2941885T (pt) 2017-02-13
EP2941888A1 (en) 2015-11-11
EP2941885A1 (en) 2015-11-11
JP6203866B2 (ja) 2017-09-27
PH12015501525A1 (en) 2015-09-21
PH12015501374B1 (en) 2015-09-02
AP2015008577A0 (en) 2015-07-31
CA2894900A1 (en) 2014-07-10
SA515360730B1 (ar) 2018-01-28
ZA201505418B (en) 2017-07-26
HK1210557A1 (en) 2016-04-22
EP2941885B1 (en) 2016-11-02
UA114946C2 (uk) 2017-08-28
AU2013371451B2 (en) 2017-09-14
PH12015501490A1 (en) 2015-09-28
TWI524744B (zh) 2016-03-01
EA032226B1 (ru) 2019-04-30
HUE032327T2 (en) 2017-09-28
TWI520588B (zh) 2016-02-01
PT2941886T (pt) 2017-02-03
CN104885469A (zh) 2015-09-02
PL2941885T3 (pl) 2017-05-31
WO2014107361A1 (en) 2014-07-10

Similar Documents

Publication Publication Date Title
BR112015016253B1 (pt) Sinalização de informação de derivação de tique de relógio para temporização de vídeo em codificação de vídeo
ES2765038T3 (es) Modelo de almacenamiento intermedio de bajo retardo en codificación de vídeo
BR112017003073B1 (pt) Unificação de cópia de intrabloco e interpredição
BR112016000863B1 (pt) Previsão residual de componente intercor
BR122017006773B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
BR112014017159B1 (pt) Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo
BR112015025639B1 (pt) Alinhamento poc de camada cruzada para fluxos de bits de várias camadas que podem incluir imagens irap não alinhadas
OA17516A (en) Conditional signaling of picture order count timing information for video timing in video coding.
OA17517A (en) Signaling of clock tick derivation information for video timing in video coding.

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04N 19/70 , H04N 19/149 , H04N 19/44 , H04N 19/46

Ipc: H04N 19/149 (2014.01), H04N 19/44 (2014.01), H04N

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 20/12/2013, OBSERVADAS AS CONDICOES LEGAIS