BR112014010326B1 - Codificação de vídeo intramodo - Google Patents

Codificação de vídeo intramodo Download PDF

Info

Publication number
BR112014010326B1
BR112014010326B1 BR112014010326-7A BR112014010326A BR112014010326B1 BR 112014010326 B1 BR112014010326 B1 BR 112014010326B1 BR 112014010326 A BR112014010326 A BR 112014010326A BR 112014010326 B1 BR112014010326 B1 BR 112014010326B1
Authority
BR
Brazil
Prior art keywords
mpms
intramode
current block
video
list
Prior art date
Application number
BR112014010326-7A
Other languages
English (en)
Other versions
BR112014010326A2 (pt
Inventor
Marta Karczewicz
Vadim SEREGIN
Wei-Jung Chien
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 BR112014010326A2 publication Critical patent/BR112014010326A2/pt
Publication of BR112014010326B1 publication Critical patent/BR112014010326B1/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

CODIFICAÇÃO DE VÍDEO INTRAMODO. Essa descrição se refere aos métodos e aparelho para codificação e decodificação de dados de vídeo. Em um exemplo, um intramodo para previsão de um bloco atual de dados de vídeo e intramodos mais prováveis (MPMs) para previsão do bloco atual de dados de vídeo pode ser determinado. MPMs para previsão de bloco atual de dados de vídeo podem ser determinados. Um índice para cada um dos MPMs com base em uma ordem na qual o intramodo para previsão do bloco atual é comparado com os MPMs pode ser determinado. Quando um dos MPMs para previsão do bloco atual combina com o intramodo para previsão do bloco atual, o índice de combinação MPM.

Description

[0001] Esse pedido reivindica os benefícios do pedido provisório U.S. No. 61/556.029, depositado em 4 de novembro de 2011, a totalidade do conteúdo do qual é incorporada aqui por referência.
Campo Técnico
[0002] A descrição se refere à codificação de vídeo e, mais particularmente, a métodos e aparelho para codificação e decodificação de dados de vídeo.
Fundamentos
[0003] As capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tablet, leitoras de e-book, câmeras digitais, dispositivos de gravação digital, aparelhos de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones de rádio via satélite ou celular, os chamados "smartphones", dispositivos de teleconferência de vídeo, dispositivos de sequenciamento de vídeo, e similares. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tal como descrito nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG04, Parte 10, Codificação de Vídeo Avançada (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 de forma mais eficiente pela implementação de tais técnicas de compressão de vídeo.
[0004] As técnicas de compressão de vídeo realizam a predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover a redundância inerente a sequências de vídeo. Para a codificação de vídeo com base em bloco, uma fatia de vídeo (por exemplo, uma imagem de vídeo ou uma parte de uma imagem de vídeo) pode ser dividida em blocos de vídeo, que também pode ser referido como blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados utilizando-se 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 intercodificada (P ou B) de uma imagem pode utilizar a 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 imagens de referência podem ser referidas para quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco de predição para um bloco a ser codificado. Os dados residuais representam as diferenças de pixel entre o bloco original a ser codificado e o bloco de predição. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco de predição, e os dados residuais indicando a diferença entre o bloco codificado e o bloco de predição. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformada, resultando nos coeficientes de transformada residual, que então podem ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em um conjunto bidimensional, podem ser digitalizados a fim de produzir um vetor unidimensional dos coeficientes de transformada, e a codificação por entropia pode ser aplicada para se atingir uma compressão ainda maior.
Sumário
[0006] Em geral, essa descrição refere-se a técnicas para a codificação de vídeo. As técnicas dessa descrição geralmente se referem à codificação e decodificação de dados de vídeo. Em alguns exemplos, as técnicas se referem à classificação de modos de intrapredição mais prováveis (MPMs). Isso é, determinados aspectos dessa descrição se referem a evitar a classificação de MPMs, que pode reduzir a complexidade do codificador de vídeo. Outros aspectos dessa descrição se referem a um MPM padrão, uma ordem de determinação de um MPM, e outros conceitos referentes a MPMs.
[0007] Em um exemplo, a descrição descreve um método de codificação de dados de vídeo. O método inclui a determinação de um intramodo para predição de um bloco atual de dados de vídeo, determinando os modos mais prováveis (MPMs) para predição do bloco atual de dados de vídeo, determinando um índice para cada um dos MPMs com base em uma ordem na qual o intramodo para predição do bloco atual é comparado com os MPMs, e sinalizando, quando um dos MPMs para predição do bloco atual coincide com o intramodo para predição do bloco atual, o índice do MPM coincidente.
[0008] Em outro exemplo, a descrição descreve um aparelho para codificação de dados de vídeo incluindo um ou mais processadores configurados para determinar um intramodo para predizer um bloco atual dos dados de vídeo, determina MPMs para predizer o bloco atual de dados de vídeo, determina um índice para cada um dos MPMs com base em uma ordem na qual o intramodo para predição do bloco atual é comparado com MPMs, e sinaliza, quando um dos MPMs para predição do bloco atual coincide com o intramodo para predição do bloco atual, o índice do MPM coincidente.
[0009] Em outro exemplo, a descrição descreve um meio de armazenamento legível por computador. O meio de armazenamento legível por computador tendo armazenado instruções no mesmo que mediante execução fazem com que um ou mais processadores de um dispositivo determinem um intramodo para predizer um bloco atual de dados de vídeo, determinar MPMs para predizer o bloco atual de dados de vídeo, determinar um índice para cada um dos MPMs com base em uma ordem na qual o intramodo para predição de bloco atual é comparado com MPMs, e sinalizar, quando um dos MPMs para predição do bloco atual coincide com o intramodo para predição do bloco atual, o índice do MPM coincidente.
[0010] Em outro exemplo, a descrição descreve um aparelho para codificação de dados de vídeo incluindo meios para determinar um intramodo para predizer um bloco atual de dados de vídeo, meios para determinar MPMs para a predição do bloco atual de dados de vídeo, meios para determinar um índice para cada um dos MPMs com base em uma ordem na qual o intramodo para predição do bloco atual é comparado com os MPMs, e meios para sinalizar, quando um dos MPMs para predição do bloco atual coincide com o intramodo para predição do bloco atual, o índice do MPM coincidente.
[0011] Em outro exemplo, a descrição descreve um método de decodificação de dados de vídeo, o método incluindo a geração, quando um intramodo para um bloco atual compreende um MPM, uma lista de MPMs para um bloco atual de dados de vídeo, onde a lista de MPMs é disposta em uma ordem na qual o intramodo para o bloco atual de dados de vídeo é comparado com um ou mais intramodos associados com um ou mais blocos de referência de dados de vídeo, determinando um índice MPM que identifica o intramodo para o bloco atual na lista de MPMs, identificando o intramodo para o bloco atual utilizando o índice MPM, e decodificando o bloco atual com o intramodo identificado para o bloco atual.
[0012] Em outro exemplo, a descrição descreve um aparelho incluindo um ou mais processadores configurados para, quando um intramodo para um bloco atual compreende um MPM gera uma lista de MPMs para um bloco atual de dados de vídeo, onde a lista de MPMs é disposta em uma ordem na qual o intramodo para o bloco de dados de vídeo atual é comparado com um ou mais intramodos associados com um ou mais blocos de referência de dados de vídeo, determina um índice MPM que identifica o intramodo para o bloco atual na lista de MPMs, identifica o intramodo para o bloco atual utilizando o índice MPM, e decodifica o bloco atual com o intramodo identificado para o bloco atual.
[0013] Em outro exemplo, a descrição descreve um meio de armazenamento legível por computador. O meio de armazenamento legível por computador possuindo armazenado no mesmo instruções que mediante execução fazem com que um ou mais processadores de um dispositivo gerem, quando um intramodo para um bloco atual compreende um MPM, uma lista de MPMs para um bloco atual de dados de vídeo, onde a lista de MPMs é disposta em uma ordem na qual o intramodo para o bloco atual de dados de vídeo é comparado com um ou mais intramodos associados com um ou mais blocos de referência de dados de vídeo, determine um índice MPM que identifica o intramodo para o bloco atual na lista de MPMs, identifique o intramodo para o bloco atual utilizando o índice MPM, e decodifique o bloco atual com o intramodo identificado para o bloco atual.
[0014] Em outro exemplo, a descrição de um aparelho para decodificação de dados de vídeo, o aparelho incluindo os meios para geração, quando um intramodo para um bloco atual compreende um MPM, uma lista de MPMs para um bloco de dados de vídeo atual, onde a lista de MPMs é disposta em uma ordem na qual o intramodo para o bloco atual de dados de vídeo é comparado com um ou mais intramodos associados com um ou mais blocos de referência de dados de vídeo, meios para determinar um índice MPM que identifica o intramodo para o bloco atual na lista de MPMs, meios para identificar o intramodo para o bloco atual utilizando o índice MPM e meios para decodificar o bloco atual com o intramodo identificado para o bloco atual.
[0015] Os detalhes de um ou mais exemplos da descrição são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens serão aparentes a partir da descrição e dos desenhos e a partir das reivindicações.
Breve Descrição dos Desenhos
[0016] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo que pode utilizar as técnicas descritas nessa descrição;
[0017] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição;
[0018] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição;
[0019] A figura 4 é um diagrama em bloco ilustrando blocos de dados de vídeo que podem ser considerados durante a predição intramodo;
[0020] A figura 5 é um diagrama conceitual ilustrando a predição intramodo.
[0021] A figura 6 é outro diagrama conceitual ilustrando a predição intramodo;
[0022] A figura 7 é um diagrama em bloco ilustrando os candidatos a intramodo mais prováveis, de acordo com os aspectos dessa descrição;
[0023] A figura 8 é um fluxograma ilustrando um método ilustrativo de codificação de dados de vídeo de acordo com um ou mais exemplos descritos nessa descrição;
[0024] A figura 9 é um fluxograma ilustrando um método ilustrativo de decodificação de dados de vídeo de acordo com um ou mais exemplos descritos nessa descrição;
[0025] A figura 10 é um fluxograma ilustrando um método ilustrativo de codificação de dados de vídeo de acordo com um ou mais exemplos descritos nessa descrição.
Descrição Detalhada
[0026] Em um exemplo, aspectos dessa descrição são direcionados para a classificação de modos de intrapredição mais prováveis (MPMs). Por exemplo, de acordo com algumas técnicas de codificação de vídeo, um codificador de vídeo (por exemplo, um codificador de vídeo ou decodificador de vídeo) pode classificar MPMs antes de determinar e sinalizar um MPM para um bloco sendo atualmente codificado. Aspectos dessa descrição referem-se à remoção de tal classificação, que pode reduzir a complexidade do codificador de vídeo.
[0027] Em um exemplo, um codificador de vídeo pode gerar uma lista de MPMs que inclui modos de intrapredição a partir de um conjunto de MPMs em uma ordem na qual os MPMs aparecem em uma imagem ou fatia de dados de vídeo (por exemplo, uma ordem de codificação).Em outro exemplo, o codificador de vídeo pode gerar uma lista de MPMs em uma ordem na qual o codificador de vídeo verifica se um intramodo de um bloco vizinho é igual ao bloco sendo atualmente codificado (referido aqui como uma "ordem de verificação"). O codificador de vídeo pode sinalizar um MPM de acordo com um índice para a lista gerada, e sem classificar ou reordenar os MPMs na lista. Um decodificador de vídeo pode realizar o mesmo processo para gerar a lista de MPMs, obter um índice para a lista de uma sequência de bits codificada, e selecionar um MPM a partir da lista de acordo como índice sem classificar ou reordenar os MPMs na lista.
[0028] Em um exemplo para fins de ilustração, um codificador de vídeo pode primeiro verificar se um intramodo de um bloco posicionado para a esquerda de um bloco sendo atualmente codificado (referido aqui como um "bloco vizinho esquerdo") é igual ao intramodo do bloco atual. O codificador de vídeo pode então verificar se um intramodo de um bloco posicionado acima do bloco sendo atualmente codificado (referido aqui como um "bloco vizinho superior") é igual ao intramodo do bloco atual. Nesse exemplo, de acordo com os aspectos dessa descrição, o intramodo do bloco vizinho esquerdo pode ter um índice zero em uma lista de MPMs mantida pelo codificador de vídeo, e o intramodo do bloco vizinho superior pode ter um índice de um na lista. De acordo, um codificador de vídeo pode sinalizar o índice do intramodo do bloco vizinho esquerdo como zero e o índice do bloco vizinho superior como um, independentemente de se um número real de intramodo (por exemplo, um número de modo predefinido, como designado por um padrão de codificação de vídeo) do bloco vizinho esquerdo é maior do que o bloco vizinho superior. Alternativamente, se o codificador de vídeo verificar o intramodo do bloco vizinho superior antes do bloco vizinho esquerdo, o codificador de vídeo pode sinalizar o índice do bloco vizinho superior como zero e o índice do bloco vizinho esquerdo como um. Em qualquer caso, de acordo com esses exemplos e aspectos dessa descrição, o codificador de vídeo pode sinalizar o índice para o intramodo sem reordenar ou classificar os intramodos na lista. Em alguns exemplos, a classificação pode ser aplicada para codificação de intramodo se o intramodo não for um dos MPMs. Isso é, um codificador de vídeo pode classificar ou de outra forma modificar uma lista de intramodos quando sinalizando um intramodo que não é um MPM. De acordo com os aspectos dessa descrição, a ordem na qual um codificador de vídeo verifica o intramodo dos blocos vizinhos (referido aqui como "ordem de verificação") pode ser o intramodo implicitamente derivado de acordo com as estatísticas coletadas dos intramodos dos blocos codificados previamente. Em outros exemplos, o codificador de vídeo pode derivar uma ordem de verificação com base na disponibilidade dos blocos vizinhos. Em outros exemplos, um codificador de vídeo pode sinalizar (e um decodificador de vídeo pode obter a partir de uma sequência de bits codificada) uma indicação explícita da ordem de verificação.
[0029] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo 10 que pode utilizar as técnicas descritas nessa descrição. Como ilustrado na figura 1, o sistema 10 inclui um dispositivo fonte 12 que gera dados de vídeo codificados para serem decodificados posteriormente por um dispositivo de destino 14. O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla variedade de dispositivos, incluindo computadores desktop, computadores notebook (por exemplo, laptop), computadores tablet, caixas decodificadoras, aparelhos telefônicos tal como os chamados "smartphones", os chamados "smartpads", televisões, câmeras, dispositivos de exibição, aparelhos de reprodução de mídia digital, consoles de jogos de vídeo, dispositivos de sequenciamento de vídeo, ou similares. Em alguns casos, o dispositivo fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0030] O dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificados através de um link 16. O link 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo fonte 12 para o dispositivo de destino 14. Em um exemplo, o link 16 pode compreender um meio de comunicação para permitir que o dispositivo fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação com ou sem fio, tal como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede com base em pacote, tal como a rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo fonte 12 para o dispositivo de destino 14.
[0031] Alternativamente, os dados codificados podem ser enviados a partir da interface de saída 22 para um dispositivo de armazenamento 24. De forma similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 24 pela interface de entrada. O dispositivo de armazenamento 24 pode incluir qualquer um dentre uma variedade de mídia de armazenamento de dados acessada localmente ou distribuída tal como um disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou qualquer outro meio de armazenamento digital adequado para armazenamento de dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 24 pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que pode manter vídeo codificado gerado pelo dispositivo fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento 24 através de sequenciamento ou download. O servidor de arquivo pode ser qualquer tipo de servidor capaz de armazenar os dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivo ilustrativos incluem um servidor de rede (por exemplo, para um sítio da rede), um servidor de protocolo de transferência de arquivo (FTP), um dispositivo de armazenamento anexado à rede (NAS) ou um disco rígido local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso 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 acessar os dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados do dispositivo de armazenamento 24 pode ser uma transmissão de sequenciamento, uma transmissão de download, ou uma combinação de ambos.
[0032] As técnicas dessa descrição não são necessariamente limitadas a aplicativos ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte a qualquer um dentre uma variedade de aplicativos de multimídia, tal como difusões de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo sequenciado, por exemplo, através da 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 outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de via única ou duas vias para suportar os aplicativos tal como sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo, e/ou videotelefonia.
[0033] No exemplo da figura 1, o dispositivo fonte 12 inclui uma fonte de vídeo 18, um 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 fonte 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 capturado previamente, uma interface de alimentação de vídeo para receber vídeo 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 fonte, 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 fonte 12 e o dispositivo de destino 14 podem formar os chamados telefones de câmera ou videofones. No entanto, as técnicas descritas nessa descrição podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicativos com e/ou sem fio.
[0034] O vídeo capturado, pré-capturado, ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 através da interface de saída 22 do dispositivo fonte 12. Os dados de vídeo codificados também podem (ou alternativamente) ser armazenados no dispositivo de armazenamento 24 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decodificação e/ou reprodução.
[0035] 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 24, 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 o decodificador de vídeo 30, na decodificação de 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.
[0036] O dispositivo de exibição 32 pode ser integrado a, 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 pode ser configurado para interfacear com um dispositivo de exibição eterno. 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 dentre uma variedade de dispositivos de exibição tal como um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo de emissão de luz orgânica (OLED), ou qualquer outro tipo de dispositivo de exibição.
[0037] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compressão de vídeo, tal como um padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode se conformar ao 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 proprietários ou da indústria, tal como o padrão ITU-T H.264, alternativamente referido como MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ou extensões de tais padrões. As técnicas dessa descrição, no entanto, não estão limitadas a qualquer padrão de codificação em particular. Outros exemplos de padrões de compressão de vídeo incluem MPEG-2 e ITU-T H.263.
[0038] Apesar de não ilustrado na figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação de ambos o áudio e o vídeo em uma sequência de dados comum ou sequências de dados separadas. Se aplicável, em alguns exemplos, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223, ou outros protocolos tais como o protocolo de datagrama de usuário (UDP).
[0039] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um dentre uma variedade de conjuntos de circuito de codificador adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar as instruções para o software em um meio legível por computador adequado não transitório e executar as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa descrição. Cada codificador de vídeo 20 e 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 combinado (CODEC) em um dispositivo respectivo.
[0040] Essa descrição pode se referir geralmente ao codificador de vídeo 20 "sinalizando" determinada informação para outro dispositivo, tal como o decodificador de vídeo 30. Deve-se compreender, no entanto, que o codificador de vídeo 20 pode sinalizar a informação pela associação de determinados elementos de sintaxe com várias partes codificadas de dados de vídeo. Isso é, o codificador de vídeo 20 pode "sinalizar" os dados pelo armazenamento de determinados elementos de sintaxe nos cabeçalhos de várias partes codificadas de dados de vídeo. Em alguns casos, tais elementos de sintaxe podem ser codificados e armazenados (por exemplo, armazenados no meio de armazenamento 34 ou servidor de arquivo 36) antes de serem recebidos e decodificados pelo decodificador de vídeo 30. Dessa forma, o termo "sinalização" pode se referir geralmente à comunicação de sintaxe ou outros dados para decodificação de dados de vídeo comprimidos, onde tal comunicação ocorre em tempo real ou quase real ou através de uma duração de tempo, tal como pode ocorrer quando do armazenamento de elementos de sintaxe em um meio no momento de codificação, que então pode ser recuperado por um dispositivo de decodificação em qualquer momento depois de ser armazenado nesse meio.
[0041] 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 Modelo de Teste HEVC (HM). O último Rascunho de Trabalho (WD) de HEVC, e referido como HEVC WD7 doravante, está disponível a partir de http://phenix.int- evry.fr/jct/docenduser/documents/9Geneva/wg11/JCTVC- 11003-v5.zip, com uma versão mais recente disponível a partir de http://phenix.int-evry.fr/jct/docenduser/documents/0Geneva/wg11/JCTVC- 11003-v6.zip, ambos os quais são incorporados aqui por referência como se tivessem sido apresentados em sua totalidade aqui. HM presume várias capacidades adicionais de dispositivos de codificação de vídeo com relação aos dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, ao passo que H.264 fornece nove modos de codificação intrapredição, HM pode fornecer tanto quanto trinta e três modos de codificação de intrapredição.
[0042] Em geral, o modelo de trabalho de HM descreve que um quaro de vídeo ou imagem pode ser dividido em uma sequência de blocos de árvore ou unidades de codificação maiores (LCU) que incluem ambas as amostras de luminescência e crominância. Um bloco de árvore possui uma finalidade similar a um macrobloco do padrão H.264. Uma fatia inclui um número de blocos de árvore consecutivos na ordem de codificação. Um quadro de vídeo ou imagem pode ser dividido em uma ou mais fatias. Cada bloco de árvore pode ser dividido em unidade de codificação (CUs) de acordo com um quadtree. Por exemplo, um bloco de árvore, como um nó raiz do quadtree, pode ser dividido em quatro nós criança, e cada nó criança pode, por sua vez, ser um nó parente e ser dividido em outros quatro nós crianças. Um nó criança não dividido final como um nó folha do quadtree, compreende um nó de codificação, por exemplo, um bloco de vídeo codificado. Os dados de sintaxe associados com uma sequência de bits codificada podem definir um número máximo de vezes em que um bloco de árvore pode ser dividido, e também pode definir um tamanho mínimo de nós de codificação.
[0043] Uma unidade de codificação (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 de CU corresponde a um tamanho de nó de codificação e deve ser quadrado. O tamanho da CU pode variar de 8 x 8 pixels até o tamanho do bloco de árvore com um máximo de 64 x 64 pixels ou mais. 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 partição da CU em uma ou mais PUs. Os modos de partição podem diferir entre se a CU é codificada por modo de pulo ou direto, codificada por modo de intrapredição, ou codificada por modo de interpredição. As PUs podem ser divididas para não terem um formato quadrado. Os dados de sintaxe associados com uma CU também podem descrever, por exemplo, a partição da CU em uma ou mais TUs de acordo com um quadtree. Uma unidade de transformada (TU) pode ser quadrada ou não quadrada em formato.
[0044] O padrão HEVC permite as transformações de acordo com as TUs, que podem ser diferentes para diferentes CUs. As TUs são tipicamente dimensionadas com base no tamanho de PUs dentro de uma CU determinada definida para uma LCU dividida, apesar de isso nem sempre ser o caso. As TUs são tipicamente do mesmo tamanho ou menores do que as PUs. Em alguns exemplos, as amostras residuais correspondendo a uma CU podem ser subdivididas em unidades menores utilizando uma estrutura de quadtree conhecida como "quadtree residual" (RQT). Os nós folha do RQT podem ser referidos como unidades de transformada (TUs). Os valores de diferença de pixel associados com as TUs podem ser transformados para produzir coeficientes de transformada, que podem ser quantizados.
[0045] Em geral, uma PU inclui dados relacionados com o processo de predição. Por exemplo, quando a PU é codificada por intramodo, a PU pode incluir dados descrevendo um modo de intrapredição para a PU. Como outro exemplo, quando a PU é codificada por intermodo, a PU pode incluir dados definindo um vetor de movimento para a PU. Os dados definindo o vetor de movimento para uma PU pode descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical de vetor de movimento, uma resolução para o vetor de movimento (por exemplo, uma precisão de um quarto de pixel ou uma precisão de um oitavo de pixel), uma imagem de referência para o qual o vetor de movimento aponta, e/ou uma lista de imagem de referência (por exemplo, Lista 0, Lista 1, ou Lista C) para o vetor de movimento.
[0046] Em geral, uma TU é utilizada para processos de transformada e quantização. Uma CU determinada possuindo uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). Seguindo a predição, o codificador de vídeo 20 pode calcular os valores residuais correspondentes à PU. Os valores residuais compreendem os valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantizados e digitalizados utilizando as TUs para produzir coeficientes de transformada serializados para codificação por entropia. Essa descrição utiliza tipicamente o termo "bloco de vídeo" para fazer referência a um modo de codificação de uma CU. Em alguns casos específicos, essa descrição também pode utilizar o termo "bloco de vídeo" para fazer referência a um bloco de árvore, por exemplo, LCU ou uma CU que inclui um nó de codificação e PUs e TUs.
[0047] Uma sequência de vídeo inclui tipicamente uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) geralmente compreende uma série de uma ou mais imagens de vídeo. Um GOP também 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 um número de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir os dados de sintaxe de fatia que descrevem um modo de codificação para a fatia respectiva. O codificador de vídeo 20 opera tipicamente em blocos de vídeo dentro de fatias de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis, e podem diferir de tamanho de acordo com um padrão de codificação especificado.
[0048] Como um exemplo, HM suporta a predição em vários tamanhos de PU. Considerando-se que o tamanho de uma CU em particular é 2N x 2N, HM suporta a intrapredição em tamanhos de PU de 2N x 2N ou N x N, e interpredição em tamanhos PU simétricos de 2N x 2N, 2N x N, N x 2N, ou N x N. HM também suporta a partição assimétrica para interpredição em tamanhos de PU de 2N x nU, 2N x nD, nL x 2N, e nR x 2N. Na partição assimétrica, uma direção de uma CU não é dividida, enquanto a outra direção é dividida em 25% e 75%. A parte da CU correspondente à partição de 25% é indicada por um "n" seguido por uma indicação de "para cima", "para baixo", "para a esquerda" ou "para a direita". Dessa forma, por exemplo, "2N x nU" se refere a uma CU 2N x 2N que é dividida horizontalmente com uma PU 2N x 0,5N em cima e uma PU 2N x 1,5N no fundo.
[0049] Nessa descrição, "N x N" e "N por N" pode ser utilizado de forma intercambiável para se referir às dimensões de pixel de um bloco de vídeo em termos de dimensões vertical e horizontal, por exemplo, 16 x 16 pixels, ou 16 por 16 pixels. Em geral, um bloco de 16 x 16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). Da mesma forma, um bloco N x N geralmente possui N pixels em uma direção vertical e N pixels em uma direção horizontal, onde N representa um valor inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Ademais, os blocos não precisam ter o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender N x M pixels, onde M não é necessariamente igual a N.
[0050] Seguindo a codificação intrapreditiva ou interpreditiva utilizando PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. As PUs podem compreender dados de pixel no domínio espacial (também referido como um domínio de pixel) e as TUs podem compreender coeficientes no domínio de transformada seguindo a aplicação de uma transformada, por exemplo, uma transformada de cosseno discreta (DCT), uma transformada de inteiro, uma transformada wavelet, ou uma transformada conceitualmente similar aos dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre os pixels da imagem não codificada e os valores de predição correspondentes às PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU, e então transforma as TUs para produzir os coeficientes de transformada para a CU.
[0051] Seguindo quaisquer transformações para produzir os coeficientes de transformada, o codificador de vídeo 20 pode realizar a quantização dos coeficientes de transformada. A quantização geralmente se refere a um processo no qual os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, fornecendo compressão adicional. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Por exemplo, um valor de bit n pode ser arredondado para baixo para um valor de bit m durante a quantização, onde n é maior que m.
[0052] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de digitalização predefinida para digitalizar os coeficientes de transformada quantizados para produzir um vetor serializado que pode ser codificado por entra. Em outros exemplos, o codificador de vídeo 20 pode realizar uma digitalização adaptativa. Depois de digitalizar os coeficientes de transformada quantizados para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com a codificação de comprimento variável adaptativo de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), a codificação por Entropia de Partição de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. O codificador de vídeo 20 pode codificar por entropia elementos de sintaxe associados com os dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação de dados de vídeo.
[0053] Para realizar CABAC, o codificador de vídeo 20 pode designar um contexto dentro de um modelo de contexto para um símbolo a ser transmitido. O contexto pode se relacionar com, por exemplo, se os valores vizinhos do símbolo são diferentes de zero ou não. 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 código na codificação de comprimento variável (VLC) podem ser consideradas de modo que os códigos relativamente mais curtos correspondam a símbolos mais prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Dessa forma, o uso de VLC pode alcançar uma economia de bit sobre, por exemplo, a utilização de palavras código de mesmo comprimento para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada em um contexto designado para o símbolo.
[0054] Em alguns exemplos, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem identificar um chamado modo de intrapredição "mais provável" durante a codificação de intrapredição. Isso é, por exemplo, o codificador de vídeo 20 e/ou decodificador de vídeo 30 pode identificar um modo de intrapredição de blocos codificados previamente que são vizinhos de um bloco sendo atualmente codificado (referido como "blocos de referência") e comparar tais modos de intrapredição com um modo de intrapredição para o bloco sendo atualmente codificado (referido como "bloco atual"). Os intramodos de tais blocos de referência podem ter uma probabilidade relativamente alta de serem iguais ou similares ao bloco atual devido a uma proximidade espacial dos blocos vizinhos ao bloco atual. Como descrito em maiores detalhes abaixo, o modo de intrapredição de múltiplos blocos de referência pode ser considerado quando da identificação de um MPM.
[0055] Adicionalmente, de acordo com alguns exemplos, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode sinalizar um índice que identifique o MPM. Isso é, cada intramodo pode ter um índice de intramodo associado (original) que identifique o intramodo como um dentre uma pluralidade de intramodos possíveis, como definido de acordo com um padrão de codificação. Por exemplo, o padrão HEVC proposto pode suportar até 35 intramodos, com cada intramodo recebendo um valor de índice (por exemplo, um valor de indica para uma tabela de consulta) que pode ser utilizado para identificar os intramodos.
[0056] De acordo com alguns padrões de codificação de vídeo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode classificar os MPMs de acordo com os valores de índice de intramodo originais. O codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode então designar um novo valor de índice de "0" para o intramodo possuindo o menor índice de intramodo original (por exemplo, o valor de índice original inferior), um valor de índice de "1" para o intramodo possuindo o próximo maior valor de índice de intramodo original (por exemplo, valor de índice de intramodo original maior), e assim por diante. Dessa forma, o codificador de vídeo 20 pode sinalizar (e o decodificador de vídeo 30 pode recuperar de uma sequência de bits codificada) o MPM utilizando menos bits do que enviando o índice de intramodo real. No entanto, a despeito de ganhos alcançados pela indicação de um intramodo utilizando MPM, a classificação de intramodo pode adicionar complexidade computacional ao processo de codificação.
[0057] De acordo com os aspectos dessa descrição, ao invés de se classificar os MPMs com base nos valores de índice dos MPMs, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem gerar um alista de MPMs que não exigem classificação. Isso é, por exemplo, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 podem designar valores de índice para os MPMs em uma ordem na qual os MPMs são comparados com o intramodo do bloco atual. Em outros exemplos, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode designar valores de índice de acordo com uma ordem na qual os MPMs são codificados. Dessa forma, se o intramodo sendo codificado for igual a um dos MPMs, os MPMs não precisam ser classificados de acordo com seu valor de índice de intramodo original e a complexidade do codificador de vídeo pode ser reduzida. Em alguns exemplos, a classificação de intramodo pode ser aplicada para codificar o intramodo se o intramodo não for igual a um dos MPMs.
[0058] Em alguns exemplos, o codificador de vídeo 20 determina um intramodo para predizer um bloco atual de dados de vídeo, determina MPMs para predizer o bloco de dados de vídeo atual, compara o intramodo com cada um dos MPMs em uma ordem de comparação, determina um índice para cada um dos MPMs com base na ordem de comparação, e sinaliza o índice do MPM coincidente com o intramodo para predizer o bloco atual de dados em uma sequência de bits.
[0059] Adicionalmente, em um exemplo, o codificador de vídeo 20 pode sinalizar uma lista gerada de MPMs na ordem de comparação. O codificador de vídeo 20 também pode determinar um índice para cada o qual cada um dos MPMs compreende a designação de valores de índice para cada um dos MPMs na lista em ordem ascendente. Em outro exemplo, o codificador de vídeo 20 pode sinalizar um flag MPM antes do índice do MPM para indicar que o índice do MPM foi sinalizado.
[0060] Os MPMs podem ser associados com um bloco de vídeo vizinho esquerdo do bloco atual e um bloco de vídeo vizinho superior do bloco atual, e a ordem de comparação pode compreender a comparação de um intramodo associado com o bloco de vídeo vizinho esquerdo antes da comparação do bloco vizinho superior. Os MPMs podem ser associados com um bloco de vídeo vizinho esquerdo do bloco atual e um bloco de vídeo vizinho superior do bloco atual, e a ordem de comparação pode compreender a comparação de um intramodo associado com o bloco vizinho superior antes da comparação de um intramodo associado com o bloco de vídeo vizinho esquerdo.
[0061] Em outro exemplo, o decodificador de vídeo 30 pode gerar uma lista de MPMs para um bloco atual de dados de vídeo. A lista de MPMs pode então ser disposta em uma ordem de comparação. Essa ordem de comparação pode ser indicativa de uma ordem na qual um intramodo para um bloco atual de dados de vídeo é comparado com um ou mais intramodos associados com um ou mais blocos de referência dos dados de vídeo durante a codificação do bloco de dados de vídeo atual. O decodificador de vídeo 30 pode determinar um índice MPM que identifica o intramodo para o bloco atual na lista de MPMs. O decodificador de vídeo 30 pode então identificar o intramodo para o bloco atual utilizando o índice MPM e decodificar o bloco atual com o intramodo identificado para o bloco atual.
[0062] Em um exemplo, mais de dois blocos de referência incluem um ou mais blocos que são posicionados acima do bloco atual e vizinho do bloco atual. Os mais de dois blocos de referência podem incluir um ou mais blocos que são posicionados para a esquerda do bloco de vídeo atual e vizinhos ao bloco atual. Em um exemplo, a lista de MPMs pode ser disposta em uma ordem de comparação que é indicativa de uma ordem na qual um intramodo para um bloco de dados de vídeo atual é comparado com um ou mais intramodos associados com um ou mais blocos de referência de dados de vídeo durante a codificação do bloco atual de dados de vídeo.
[0063] Em outro exemplo, os MPMs podem ser associados com um bloco de vídeo vizinho esquerdo do bloco atual e um bloco de vídeo vizinho superior do bloco atual, e a ordem de comparação pode incluir a comparação de um intramodo associado com o bloco vizinho esquerdo antes da comparação do intramodo associado com o bloco vizinho superior. Em um exemplo adicional, os MPMs podem ser associados com um bloco de vídeo vizinho esquerdo do bloco atual e um bloco de vídeo vizinho superior do bloco atual, e a ordem de comparação compreende a comparação de um intramodo associado com o bloco vizinho superior antes da comparação de um intramodo associado com o bloco de vídeo vizinho esquerdo.
[0064] Determinados aspectos dessa descrição se referem à designação de um modo padrão em casos nos quais o bloco A ou o bloco B não estão disponíveis para codificação de intramodo. Por exemplo, um codificador de vídeo tal como o codificador de vídeo 20 ou o decodificador de vídeo 30 pode identificar um bloco atual de dados de vídeo. O codificador pode realizar uma determinação quanto ao fato de o bloco não estar disponível para ser utilizado como blocos de referência para determinação de um MPM para o bloco atual de dados de vídeo. O codificador de vídeo pode designar um intramodo padrão para qualquer bloco que não esteja disponível para ser utilizado como um bloco de referência. Em alguns exemplos, o intramodo padrão pode ser o modo plano, o modo DC, etc. O codificador pode determinar um intramodo para o bloco atual de dados de vídeo com base nos intramodos de um ou mais blocos de dados de vídeo. Adicionalmente, o codificador pode codificar o bloco atual utilizando o intramodo determinado.
[0065] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo 20 que pode implementar as técnicas descritas nessa descrição. O codificador de vídeo 20 pode realizar a intra e intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação se baseia na predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de um quadro de vídeo ou imagem determinado. A intercodificação se baseia na predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dos vários modos de compressão com base espacial. Os intermodos, tal como a predição unidirecional (modo P) ou a bipredição (modo B) pode se referir a qualquer um dos vários modos de compressão com base temporal.
[0066] No exemplo da figura 2, o codificador de vídeo 20 inclui uma unidade de partição 35, a unidade de predição 41, a memória de imagem de referência 64, o somador 50, a unidade de processamento de transformada 52, a unidade de quantização 54, e a unidade de codificação por entropia 56. A unidade de predição 41 inclui a unidade de estimativa de movimento 42, a unidade de compensação de movimento 44, e a unidade de intrapredição 46. Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, a unidade de transformada inversa 60, e o somador 62. Um filtro de desbloqueio (não ilustrado na figura 2) também pode ser incluído para filtrar os limites de bloco para remover os artefatos de bloqueio do vídeo reconstruído. Se desejado, o filtro de desbloqueio filtra tipicamente a saída do somador 62. Filtros de circuito adicionais (em circuito ou pós-circuito) também podem ser utilizados em adição ao filtro de desbloqueio.
[0067] Como ilustrado na figura 2, o codificador de vídeo 20 recebe dados de vídeo, e a unidade de partição 35 divide os dados em blocos de vídeo. Essa partição também pode incluir a partição em fatias, tiles ou outras unidades maiores, além de partição de bloco de vídeo, por exemplo, de acordo com uma estrutura de quadtree de LCUs e CUs. O codificador de vídeo 20 geralmente ilustra os componentes que codificam os blocos de vídeo dentro de uma fatia de vídeo a ser codificada. Em geral, uma fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como tiles).
[0068] A unidade de predição 41 pode selecionar um dentre uma pluralidade de possíveis modos de codificação, tal como um dentre uma pluralidade de modos de intracodificação ou um dentre uma pluralidade de modos de intercodificação, para o bloco de vídeo atual com base em resultados de erro (por exemplo, taxa de codificação e nível de distorção). A unidade de predição 41 pode fornecer o bloco intra ou intercodificado resultante para o somador 50 para gerar os dados de bloco residual e para o somador 62 para reconstruir o bloco codificado para uso como uma imagem de referência.
[0069] A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 dentro da unidade de predição 41 realizam a codificação interpreditiva do bloco de vídeo atual com relação a uma ou mais blocos de predição em uma ou mais imagens de referência para fornecer compressão temporal. A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de interpredição para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode 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 para fins conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estima 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 de um quadro de vídeo atual ou imagem com relação a um bloco de predição dentro de uma imagem de referência.
[0079] Um bloco de predição é um bloco que é considerado coincidente com a PU do bloco de vídeo a ser codificado em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD), ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular os valores para as posições de pixel subinteiro das imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar os valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições de pixel fracionado da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento com relação às posições de pixel inteiro e posições de pixel fracionado, e enviar um vetor de movimento com a precisão de pixel fracionado.
[0071] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada pela comparação da posição da PU com a posição de um bloco de predição 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 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 imagem de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44.
[0072] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver a coleta ou geração de bloco de predição com base no vetor de movimento determinado pela estimativa de movimento, realizando possivelmente as interpolações para a precisão de subpixel. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagem de referência. O codificador de vídeo 20 forma um bloco de vídeo residual pela subtração de valores de pixel do bloco de predição a partir dos valores de pixel do bloco de vídeo atual sendo codificado, formando os valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco e podem incluir ambos os componentes de diferença de luminescência e crominância. O somador 50 representa o componente ou componentes que realizam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados com os blocos de vídeo e a fatia de vídeo par auso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0073] A unidade de intrapredição 46 dentro da unidade de predição 41 pode realizar a codificação intrapreditiva do bloco de vídeo atual com relação a um ou mais blocos vizinhos na mesma imagem ou fatia que o bloco atual a ser codificado para fornecer a compressão espacial. De acordo, a unidade de intrapredição 46 pode intrapredizer um bloco atual, como uma alternativa à interpredição realizada pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44, como descrito acima. Em particular, a unidade de intrapredição 46 pode determinar um modo de intrapredição para uso para codificar um bloco atual. Em alguns exemplos, a unidade de intrapredição 46 pode codificar um bloco atual utilizando vários modos de intrapredição, por exemplo, durante passagens de codificação separadas, e a unidade de intrapredição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intrapredição adequado para uso a partir dos modos testados.
[0074] Por exemplo, a unidade de intrapredição 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 intrapredição testados, e selecionar o modo de intrapredição possuindo a melhor característica de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre o bloco codificado e um bloco não codificado original, que foi codificado para produzir o bloco codificado, além de uma taxa de bits (isso é, um número de bits) utilizado para produzir o bloco codificado. A unidade de intrapredição 46 pode calcular razões a partir das distorções e taxas para vários blocos codificados para determinar qual modo de intrapredição exibe o melhor valor de distorção de taxa para o bloco. De acordo com o padrão HEVC proposto, pode haver até 35 modos de intrapredição, e cada modo de intrapredição pode ser associado com um índice.
[0075] Aspectos dessa descrição geralmente se referem à intracodificação. Como tal, determinadas técnicas dessa descrição podem ser realizadas pela unidade de intrapredição 46. Isso é, por exemplo, a unidade de intrapredição 46 pode realizar as técnicas dessa descrição descritas com relação às figuras de 4 a 10 abaixo. Em outros exemplos, uma ou mais outras unidades do codificador de vídeo 20 podem adicionalmente ou alternativamente ser responsáveis pela realização das técnicas dessa descrição.
[0076] Por exemplo, a unidade de intrapredição 46 pode determinar um intramodo para um bloco sendo atualmente codificado (por exemplo, de acordo com uma análise de distorção de taxa, como descrito acima). A unidade de intrapredição 46 também pode determinar um modo de intrapredição de um ou mais blocos previamente codificados (referidos como MPMs) que são vizinhos do bloco sendo atualmente intracodificado. A unidade de intrapredição 46 pode indicar o intramodo determinado para o bloco atual com base nos intramodos determinados dos blocos vizinhos, por exemplo, pela comparação dos MPMs ao intramodo para o bloco atual, como descrito em maiores detalhes abaixo.
[0077] De acordo com os aspectos dessa descrição, a unidade de intrapredição 46 pode gerar uma lista de MPMs na ordem na qual os MPMs são comparados como intramodo do bloco atual. A unidade de intrapredição 46 pode então designar valores de índice para os MPMs em uma ordem na qual os MPMs são comparados com o intramodo do bloco atual. Dessa forma, a unidade de intrapredição 46 pode indicar um MPM em particular sem classificar os MPMs de acordo com seu valor de índice de intramodo (por exemplo, de acordo com um padrão de codificação de vídeo).
[0078] Depois da unidade de predição 41 gerar o bloco de predição para o bloco de vídeo atual através da interpredição ou intrapredição, o codificador de vídeo 20 forma um bloco de vídeo residual pela subtração do bloco de predição do bloco de vídeo atual. Os dados de vídeo residual no bloco residual podem ser incluídos em uma ou mais TUs e aplicados para transformar a unidade de processamento 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residual em coeficientes de transformada residual utilizando uma transformada, tal como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente similar. A unidade de processamento de transformada 52 pode converter os dados de vídeo residual de um domínio de pixel para um domínio de transformada, tal como um domínio de frequência.
[0079] A unidade de processamento 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 bit. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. O grau de quantização pode ser modificado pelo ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma digitalização da matriz incluindo os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a digitalização.
[0080] Seguindo a quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar a codificação de comprimento variável adaptativa de contexto (CAVLC), a codificação aritmética binária adaptativa de contexto (CABAC), a codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), a codificação por entropia de partição de intervalo de probabilidade (PIPE) ou outra metodologia de codificação por entropia ou técnica. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e outros elementos de sintaxe para a fatia de vídeo atual sendo codificada. Seguindo a codificação por entropia pela unidade de codificação por entropia 56, a sequência de bits codificada pode ser transmitida para o decodificador de vídeo 30, ou arquivada para transmissão posterior ou recuperação pelo decodificador de vídeo 30.
[0081] A unidade de codificação por entropia 56 pode codificar a informação indicando o modo de intrapredição selecionado de acordo com as técnicas dessa descrição. O codificador de vídeo 20 pode incluir na sequência de bits transmitida dados de configuração, que podem incluir uma pluralidade de tabelas de índice de modo de intrapredição e uma pluralidade de tabelas de índice de modo de intrapredição (também referidas como tabelas de mapeamento de palavra código), definições dos contextos de codificação para vários blocos, e indicações de um MPM, uma tabela de índice de modo de intrapredição, e uma tabela de índice de modo de intrapredição modificada para uso para cada um dos contextos.
[0082] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para uso futuro como um bloco de referência de uma imagem de referência. A unidade de compensação de movimento pode calcular um bloco de referência pela adição do bloco residual a um bloco de predição de uma das imagens de referência dentro de uma das listas de imagem de referência. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores de pixel subinteiro para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído para o bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de referência para armazenamento na memória de imagem de referência 64. O bloco de referência pode ser utilizado pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44 como um bloco de referência para interpredizer um bloco em um quadro ou imagem de vídeo subsequente.
[0083] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo 30 que pode implementar as técnicas descritas nessa descrição. No exemplo da figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 80, unidade de predição 81, unidade de quantização inversa 86, unidade de transformada inversa 88, somador 90, e memória de imagem de referência 92. A unidade de predição 81 inclui a unidade de compensação de movimento 82 e a unidade de intrapredição 84. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente alternada com a passagem de codificação descrita com relação ao codificador de vídeo 20 a partir da figura 2.
[0084] Durante o processo de decodificação, o decodificador de vídeo 30 recebe uma sequência de bits de vídeo codificada que representa os blocos de vídeo de uma fatia de vídeo codificada 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 30 decodifica por entropia a sequência de bits para gerar coeficientes quantizados, vetores de movimento e outros elementos de sintaxe. A unidade de decodificação por entropia 80 envia os vetores de movimento e outros elementos de sintaxe para a unidade de predição 81. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou nível de bloco de vídeo.
[0085] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de intrapredição 84 da unidade de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados dos blocos decodificados previamente do quadro ou imagem atual.
[0086] Como notado acima, os aspectos dessa descrição geralmente se referem à intracodificação. Como tal, determinadas técnicas dessa descrição podem ser realizadas pela unidade de intrapredição 84. Isso é, por exemplo, a unidade de intrapredição 84 pode realizar as técnicas dessa descrição descritas com relação às figuras de 4 a 7 abaixo. Em outros exemplos, uma ou mais outras unidades de decodificador de vídeo 30 podem adicionalmente ou alternativamente ser responsáveis pela realização das técnicas dessa descrição.
[0087] Por exemplo, a unidade de intrapredição 84 pode obter um índice para uma lista de MPMs para decodificação de um bloco atual de dados de vídeo a partir da unidade de decodificação por entropia 80. A unidade de intrapredição 84 pode gerar a lista à qual o índice pertence ela inclusão de MPMs na lista da mesma forma que o codificador de vídeo 20, por exemplo, a ordem na qual os MPMs são comparados com o intramodo do bloco atual. A unidade de intrapredição 84 pode então determinar o intramodo adequado para decodificação do bloco atual de dados de vídeo com base no índice obtido. Dessa forma, a unidade de intrapredição 84 pode determinar o MPM adequado para decodificação do bloco atual sem classificar os MPMs de acordo com seu valor de índice de intramodo original (por exemplo, de acordo com um padrão de codificação de vídeo).
[0088] Quando a imagem de vídeo é codificada como uma fatia intercodificada (por exemplo, B, P ou GPB), a unidade de compensação de movimento 82 da unidade de predição 81 produz blocos de predição para um bloco de vídeo da fatia de vídeo atual com base nos vetores e movimento e outros elementos de sintaxe recebidos da unidade de decodificação por entropia 80. Os blocos de predição podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de imagem de referência, Lista 0 e Lista 1, utilizando técnicas de construção padrão com base nas imagens de referência armazenadas na memória de imagem de referência 92.
[0089] A unidade de compensação de movimento 82 determina a informação de predição para um bloco de vídeo da fatia de vídeo atual pela análise de vetores de movimento e outros elementos de sintaxe, e utiliza a informação de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou interpredição) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (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 intercodificado da fatia, situação de interpredição para cada bloco de vídeo intercodificado da fatia, e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[0090] A unidade de compensação de movimento 82 também pode realizar a interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 82 pode utilizar os filtros de interpolação como utilizados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular os valores interpolados para os pixels subinteiros dos blocos de referência. Nesse caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir os blocos de predição.
[0091] A unidade de quantização inversa 86 quantiza de forma inversa, por exemplo, desquantiza, os coeficientes de transformada quantizados fornecidos na sequência de bits e decodificados pela unidade de decodificação por 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, da mesma forma, 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 inteiro inversa, ou um processo de transformada inversa conceitualmente similar, aos coeficientes de transformada a fim de produzir os blocos residuais no domínio de pixel.
[0092] Depois que a unidade de compensação de movimento 82 gera o bloco de predição par ao bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma dos blocos residuais a partir da unidade de transformada inversa 88 com os blocos de predição correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou componentes que realizam essas operação de soma. Se desejado, um filtro de desbloqueio também pode ser aplicado para filtrar os blocos decodificados a fim de remover os artefatos de bloqueio. Outros filtros de circuito (no circuito de codificação ou depois do circuito de codificação) também podem ser utilizados para suavizar as transições de pixel, ou de outra forma aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagem são então armazenados a memória de imagem de referência 92, que armazena as imagens de referência utilizadas para a compensação de movimento subsequente. A memória de imagem de referência 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.
[0093] Como notado acima, as técnicas dessa descrição geralmente se referem à intracodificação. Deve-se compreender que as técnicas dessa descrição podem ser realizadas por qualquer um dos codificadores de vídeo descritos nessa descrição, incluindo, por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 como ilustrado e descrito com relação às figuras de 1 a 3. Isso é, exemplo, a unidade de intrapredição 46 descrita com relação à figura 2 pode realizar determinadas técnicas descritas abaixo quando da realização da intrapredição durante a codificação de um bloco de dados de vídeo. Em outro exemplo, a unidade de intrapredição 84 descrita com relação à figura 3 pode realizar determinadas técnicas descritas abaixo quando da realização da intrapredição durante a decodificação de um bloco de dados de vídeo. De Codó, referências a um "codificador de vídeo" genérico podem incluir o codificador de vídeo 20, o decodificador de vídeo 30, ou outra unidade de codificação ou decodificação de vídeo.
[0094] Em alguns exemplos, um codificador de vídeo pode identificar um chamado modo de intrapredição "mais provável" durante a codificação de intrapredição. Isso é, por exemplo, um codificador de vídeo (por exemplo, tal como um codificador de vídeo 20) pode identificar um modo de intrapredição dos blocos previamente codificados (por exemplo, blocos de referência) e comparar tais modos de intrapredição com um modo de intrapredição para o bloco atual. Os intramodos de tais blocos de referência podem ter uma probabilidade relativamente alta de serem iguais ou similares ao bloco atual devido a uma proximidade espacial dos blocos com o bloco atual.Como descrito em maiores detalhes abaixo, o modo de intrapredição de múltiplos blocos de referência pode ser considerado quando da identificação de um MPM.
[0095] Se o modo de intrapredição para o bloco atual for igual ao MPM, o codificador de vídeo 20 pode sinalizar o modo de intrapredição utilizando um flag MPM de um bit. Isso é, o codificador de vídeo 20 pode sinalizar que o modo de intrapredição para um bloco atual é igual ao MPM, sem precisar identificar explicitamente o modo de intrapredição para o bloco atual. O decodificador de vídeo 30 pode receber o indicador indicado que no intramodo para o bloco atual é igual ao MPM, e repetir o processo utilizado pelo codificador de vídeo 20 para determinar esse MPM. Isso é, o decodificador de vídeo 30 pode identificar o MPM utilizando os mesmos blocos considerados pelo codificador de vídeo 20 durante a codificação.
[0096] A figura 4 ilustra um exemplo de um bloco atual, por exemplo, unidade de codificação ("CU atual") e dois blocos de referência (por exemplo, "A" e "B") que podem ser considerados durante a intracodificação. Por exemplo, um codificador de vídeo (por exemplo, tal como o codificador de vídeo 20), pode considerar os intramodos associados com o bloco de referência A (posicionado à esquerda do bloco atual) e o bloco de referência B (posicionado acima do bloco atual) como os MPMs do bloco atual. Em alguns exemplos, se qualquer um dos candidatos a MPM (por exemplo, bloco A ou bloco B) não utilizar o intramodo, ou estiver, de outra forma, indisponível (por exemplo, o bloco ainda não foi codificado), o codificador de vídeo 20 pode designar um intramodo padrão para o bloco, tal como o modo DC. Além disso, em alguns exemplos, o número de MPMs pode ser maior que dois. Por exemplo, o codificador de vídeo 20 pode gerar MPMs adicionais com base em intramodos de mais de dois blocos de referência.
[0097] Se o intramodo real para o bloco atual (por exemplo, como calculado, por exemplo, pela unidade de intrapredição 46) for igual ao bloco de referência A ou ao bloco de referência B, o codificador de vídeo 20 pode sinalizar um indicador de um bit indicando que um MPM é utilizado para codificar o bloco atual (por exemplo, flag MPM é configurado igual a um).
[0098] Adicionalmente, de acordo com alguns exemplos, o codificador de vídeo 20 pode sinalizar um índice que identifica o MPM. Isso é, cada intramodo pode ter um índice de intramodo associado (original) que identifica o intramodo como um dentre uma pluralidade de possíveis intramodos, como definido de acordo com um padrão de codificação. Por exemplo, o padrão HEVC proposto pode suportar até 35 intramodos, com cada intramodo recebendo um valor de índice especificado padrão original como ilustrado na Tabela 1 abaixo:Tabela 1: Modos de Intrapredição e Números de Índice
Figure img0001
No exemplo da Tabela 1, o intramodo plano possui um valor de índice original de 0, o intramodo DC possui um valor de índice original de 1, e vários intramodos angulares possuem valores de índice original entre 2 e 34.
[0099] Tradicionalmente, quando da intracodificação de um bloco atual com base em MPM, o codificador de vídeo 20 classifica os MPMs de acordo com os valores de índice de intramodo originais. Em um exemplo com dois MPMs, o codificador de vídeo 20 pode então designar um novo valor de índice de "0" para o intramodo possuindo um índice de intramodo original menor (por exemplo, o valor de índice original menor). Adicionalmente, o codificador de vídeo 20 designa um novo valor de índice de "1" para o intramodo possuindo o valor de índice de intramodo original maior (por exemplo, o valor de índice de intramodo original maior). Dessa forma, o codificador de vídeo 20 pode sinalizar o MPM utilizando menos bits do que enviando o índice intramodo real. Em alguns exemplos, se o intramodo do bloco de referência A for igual ao intramodo do bloco de referência B, o codificador de vídeo 20 não envia um valor de índice adicional. Em alguns exemplos, se o número de MPMs for maior que dois, designações de índice similares podem ser feitas.
[0100] Se o intramodo do bloco atual não for igual ao MPM, o codificador de vídeo 20 pode intracodificar o bloco atual, por exemplo, utilizando uma tabela de codificação de comprimento fixo ou outro método.
[0101] Um decodificador de vídeo, tal como o decodificador de vídeo 30, pode receber o flag MPM e o índice MPM. O decodificador de vídeo 30 pode então realizar um processo similar como descrito com relação ao codificador de vídeo 20 para determinar para qual intramodo que o índice MPM se refere. Isso é, o decodificador de vídeo 30 pode classificar os intramodos em ordem de índice original ascendente. O decodificador de vídeo 30 pode designar um valor de índice de "0" para o menor índice intramodo original e um valor de índice de "1" para o Mario índice de intramodo original. O decodificador de vídeo 30 pode então utilizar o índice MPM sinalizado para selecionar um dos intramodos classificados. O decodificador de vídeo 30 pode então decodificar o bloco intracodificado dos dados de vídeo.
[0102] De acordo com algumas técnicas de codificação de vídeo, um codificador de vídeo (por exemplo, um codificador de vídeo ou decodificador de vídeo) pode classificar os MPMs antes da determinação e sinalização de um MPM para um bloco sendo atualmente codificado. Isso pode aumentar a complexidade do codificador de vídeo. Como descrito em maiores detalhes abaixo, determinados aspectos dessa descrição se referem à remoção da classificação dos MPMs pra reduzir a complexidade do codificador de vídeo. Por exemplo, o codificador de vídeo 20, o decodificador de vídeo 30, ou ambos podem gerar uma lista de MPMs que não exige classificação. O codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode designar valores de índice para os MPMs em uma ordem na qual os MPMs são comparados com o intramodo do bloco atual. Em outros exemplos, o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode designar valores de índice de acordo com uma ordem na qual os MPMs são codificados. Dessa forma, os MPMs não precisam ser classificados de acordo com seu valor de índice de intramodo original, e a complexidade de codificador de vídeo pode ser reduzida.
[0103] Adicionalmente, determinados aspectos dessa descrição também se referem à designação de um modo padrão em casos nos quais o bloco A ou o bloco B não está disponível para a codificação intramodo. Por exemplo, o codificador de vídeo 20 pode designar um modo pré- selecionado tal como o modo plano ou modo DC como o modo padrão.
[0104] A figura 5 é um diagrama conceitual da codificação de intramodo, como descrito acima com relação à figura 4. Por exemplo, como ilustrado no exemplo da figura 5, se o intramodo do bloco atual coincidir com um dos MPMs (por exemplo, a ramificação "sim"), o codificador de vídeo 20 pode configurar um flag MPM igual a um ("1"). Adicionalmente, o codificador de vídeo 20 pode classificar os MPMs de acordo com seu valor de índice original ("SORT MPM MODES"). Isso é, o codificador de vídeo 20 designa para o MPM possuindo o menor índice intramodo original um valor de zero ("0" "SMALLER MPM") e designa para o MPM possuindo o maior índice intramodo original um valor de um ("1", "OTHER MPM"). O codificador de vídeo 20 pode então sinalizar o intramodo para o bloco atual com base no MPM. Isso é, o codificador de vídeo 20 pode enviar o indicador "1" para indicar que um MPM é utilizado, e o indicador "0" ou o indicador "1" para identificar o MPM adequado.
[0105] Se o intramodo do bloco atual não coincidir com um dos MPMs (por exemplo, ramificação "não"), o codificador de vídeo 20 pode configurar um indicador de MPM par azero ("0"). Adicionalmente, o codificador de vídeo 20 pode codificar o intramodo, por exemplo, utilizando uma tabela de comprimento fixo ou outro método ("REST OF INTRAMODE CODING").
[0106] A figura 6 é um diagrama conceitual da codificação de intramodo, de acordo com os aspectos dessa descrição. Por exemplo, como ilustrado no exemplo da figura 6, se o intramodo do bloco atual coincidir com um dos MPMs (por exemplo, ramificação "sim"), o codificador de vídeo 20 pode configurar um flag MPM igual a um ("1"). De acordo com os aspectos dessa descrição, ao invés de classificar os MPMs com base nos valores de índice de MPMs, o codificador de vídeo 20 pode gerar uma lista de MPMs com base nos valores de índice dos MPMs, o codificador de vídeo 20 pode gerar uma lista de MPMs que não exigem classificação ("GENERATE LIST OF MPMS"). Isso é, por exemplo, determinadas técnicas dessa descrição se referem à designação de valores de índice para os MPMs em uma ordem na qual os MPMs são comparados com o intramodo do bloco atual. Dessa forma, os MPMs não precisam ser classificados de acordo com seu valor de índice de intramodo original. Se o intramodo do bloco atual não for um dos MPMs, o codificador de vídeo 20 pode configurar um flag MPM igual a zero ("0") e a classificação de MPMs adicionais pode ser aplicada antes da realização do resto da codificação intramodo. Isso é, por exemplo, o codificador de vídeo 20 pode classificar uma listagem de intramodos restantes (que não incluem MPMs) antes da identificação de um dos intramodos na lista para o bloco atual.
[0107] Em um exemplo para fins de explicação, o codificador de vídeo 20 pode comparar o intramodo associado com um bloco atual de dados de vídeo com os intramodos associados com um ou mais blocos de referência, tal como os intramodos de um ou mais blocos vizinhos (por exemplo, blocos que são espacialmente vizinhos do bloco atual), para determinar que um dos MPMs coincide com o intramodo real para o bloco atual. Como notado acima com relação às figuras 4 e 5, o codificador de vídeo 20 pode comparar o intramodo do bloco atual com dois blocos vizinhos, apesar de os intramodos de mais ou menos blocos de referência poderem ser considerados (por exemplo, um, três, cinco e similares), adicionalmente, MPMs podem ser gerados com base em intramodos vizinhos.
[0108] De acordo com os aspectos dessa descrição, o codificador de vídeo 20 pode designar um valor de índice para os MPMs na ordem na qual os MPMs são comparados com o intramodo atual. Em um exemplo com dois MPMs o codificador de vídeo 20 pode primeiro comparar o intramodo do bloco atual com o intramodo do bloco vizinho esquerdo, seguido pela comparação do intramodo do bloco atual com o intramodo do bloco vizinho acima (ver, por exemplo, a disposição ilustrada na figura 4). De acordo, o codificador de vídeo 20 pode designar um valor de índice de zero para o intramodo do bloco vizinho esquerdo ("0" "FIRST COMPARISON") e um valor de índice de um para o intramodo do bloco vizinho superior ("1" "SECOND COMPARISON"). Enquanto o exemplo ilustrado na figura 6 inclui apenas dois MPMs, valores de índice adicionais podem ser designados para outros MPMs se tais MPMs forem considerados.
[0109] Se o intramodo do bloco atual não coincidir um dos MPMs (por exemplo, ramificação "não"), o codificador de vídeo 20 pode configurar um flag MPM igual a zero ("0"). Adicionalmente, o codificador de vídeo 20 pode codificar o intramodo, por exemplo, utilizando uma tabela de comprimento fixo ou outro método ("REST OF INTRA-MODE CODING"). Adicionalmente, em alguns exemplos e como notado acima, o codificador de vídeo 20 pode classificar os intramodos restantes de acordo com um processo de classificação MPM.
[0110] Assume-se, para fins de explicação, que 35 intramodos estejam disponíveis para a intracodificação de um bloco de dados de vídeo. Assume-se adicionalmente que os 35 intramodos possam ser identificados por um número de modo, que pode ser incluído em uma tabela identificando intramodos disponíveis. Em um exemplo no qual o modo atual não é um MPM, com, por exemplo, MPMs que são 15, 2 e 31 e com um modo atual que é 16, um codificador de vídeo (por exemplo, decodificador de vídeo 30 ou codificador de vídeo 20) pode inicialmente classificar os MPMs em ordem ascendente. De acordo, a lista de MPMs 15, 2 e 31, se torna 2, 15 e 31 depois da classificação. Em segundo lugar, o codificador de vídeo pode eliminar os MPMs dos intramodos restantes, visto que sabe que o modo atual não é um MPM. Os 32 modos restantes podem então ser remapeados para 32 palavras código de 5 bits. Alguns exemplos podem utilizar uma tabela de 32 modos restantes, eliminando os modos 2, 15 e 31. Outros exemplos, no entanto, não utilizam uma tabela.
[0111] Com relação ao mapeamento, por exemplo, visto que o modo atual (por exemplo, o modo 16) é maior do que ou igual ao primeiro dos MPMs classificados (modo 2), o codificador de vídeo pode subtrair 1 do modo atual (16- 1=15). O valor depois da primeira subtração (15) também é maior do que ou igual ao segundo dos MPMs classificados (15), de modo que o codificador de vídeo subtraia 1 novamente (15-1 = 14). O valor depois da segunda subtração (14) é inferior a 31, de modo que o codificador de vídeo não realize outra subtração. De acordo, o modo atual mapeia a décima quarta entrada na nova tabela como calculado pela realização de duas subtrações no modo atual 16 (16-2 = 14).Em outros exemplos, os modos podem ser mapeados de formas diferentes.
[0112] Em outro exemplo no qual o modo atual não é um MPM, com, por exemplo, MPMs que são 5, 4 e 6 e um modo atual que é 15, codificador de vídeo pode classificar os MPMs em ordem ascendente. De acordo, 5, 4, 6 se torna 4, 5, 6. O codificador de vídeo pode então criar uma lista ou tabela dos 32 modos restantes, eliminando os modos 4, 5 e 6. Como discutido acima, deve-se compreender que nem todos os exemplos utilizam uma tabela.
[0113] Nos exemplos acima, é assumido que o modo atual não seja um MPM. Em contraste, para um caso no qual o modo atual é um MPM, por exemplo, MPMs que são 5, 4 e 6 e um modo atual que é 4, o codificador de vídeo pode configurar um flag MPM igual a "1". Adicionalmente, o codificador de vídeo pode configurar um índice para MPMs igual a "1". Por exemplo, o índice pode mapear os MPMs com base na ordenação da lista. Isso é, no exemplo acima, o codificador de vídeo pode mapear 5 para um índice de 0, 4 para um índice de 1, 6 para um índice de 2.
[0114] Em alguns exemplos, como notado acima, o codificador de vídeo 20 pode gerar uma lista de MPMs na ordem na qual os MPMs são comparados com o intramodo do bloco atual. Dessa forma, o índice pode identificar o MPM coincidente com base na ordem de comparação. O codificador de vídeo 20 pode então designar os valores de índice para cada um dos MPMs na lista. Por exemplo, o codificador de vídeo 20 pode designar os valores de índice para cada um dos MPMs na lista em ordem ascendente, de modo que o primeiro MPM que é comparado com o intramodo atual tenha o menor valor de índice relativo, e o último MPM que é comparado com o intramodo atual tenha o maior valor de índice relativo. Em contraste, cada intramodo pode ter um índice de intramodo associado original que identifica o intramodo como um dentre uma pluralidade de possíveis intramodos (tal como um dos 35 intramodos), como definido de acordo com um padrão de codificação. Esse índice original pode ser diferente do índice sinalizado na sequência de bits de acordo com os aspectos dessa descrição.
[0115] O codificador de vídeo 20 pode então sinalizar o flag MPM e o índice MPM para um decodificador de vídeo, tal como o decodificador de vídeo 30. O decodificador de vídeo 30 pode realizar um processo similar como descrito com relação ao codificador de vídeo 20 para identificar o intramodo adequado a partir do valor de índice recebido. Isso é, por exemplo o decodificador de vídeo 30 pode gerar uma lista que inclui os MPMs na ordem na qual os intramodos foram comparados com o intramodo atual. O decodificador de vídeo 30 pode então aplicar valores de índice para cada um dos MPMs, e selecionar o intramodo adequado para o bloco atual utilizando o valor de índice recebido.
[0116] Em alguns exemplos, a ordem na qual os MPMs são comparados com o intramodo atual pode ser implicitamente derivada de acordo com as estatísticas coletadas de intramodos codificados previamente. Isso é, por exemplo, se um intramodo associado com um bloco de referência determinado coincidir mais frequentemente com o intramodo atual do que outros MPMs de outros blocos, o intramodo associado com determinado bloco de referência pode ser comparado mais cedo do que outros MPMs dos outros blocos.
[0117] Em outros exemplos, a ordem de comparação pode ser derivada com base na disponibilidade, ou pode ser explicitamente sinalizada. Por exemplo, se um ou mais blocos de referência contendo MPMs forem frequentemente indisponíveis, tais blocos de referência podem ser comparados para o bloco atual relativamente depois do que os blocos de referência mais comumente disponíveis. Em outros exemplos, o codificador de vídeo 20 pode determinar e explicitamente sinalizar uma ordem de comparação particular em uma sequência de bits codificada.
[0118] A eliminação da etapa de classificação (por exemplo, classificação de MPMs de acordo com seus valores de índice) pode reduzir a complexidade do processo de codificação. Isso e, ao invés de precisar classificar explicitamente os MPMs, o codificador de vídeo pode gerar uma lista de MPMs enquanto determina se o intramodo atual é o mesmo que qualquer um dos MPMs. Dessa forma, determinadas técnicas dessa descrição podem ser utilizadas para aumentar a eficiência de computação de um codificador de vídeo. No entanto, em alguns exemplos, a classificação MPM pode ser preservada para a codificação intramodo se o intramodo não for igual a um dos MPMs. Por exemplo, quando um intramodo não coincidir com um dos MPMs os modos restantes podem ser classificados.
[0119] As técnicas dessa descrição também se referem à designação de um intramodo padrão para blocos de dados de vídeo que não estão disponíveis para serem considerados como blocos de referência durante a codificação MPM. Isso é, por exemplo, um bloco de referência pode ser considerado "indisponível" se o bloco de referência ainda não tiver sido codificado (e, dessa forma, seu modo de predição é desconhecido), se o bloco de referência for codificado utilizando a interpredição (descrito acima), ou se o bloco de referência não existir (o bloco posicionado no canto superior esquerdo de uma imagem ou fatia pode não ter blocos vizinhos à sua esquerda e/ou acima).
[0120] De acordo com os aspectos dessa descrição, mediante a identificação dos blocos que não podem ser utilizados para referência durante a intracodificação (por exemplo, durante o processo de derivação MPM), tais blocos podem ser designados um intramodo padrão. Isso é, por exemplo, tais blocos podem ser designados intramodo plano, que também podem ser referidos como intramodo plano. O intramodo plano pode incluir uma função de plano linear que é encaixada no bloco para fins de predição. O intramodo plano pode funcionar (fornecer uma predição precisa) bem em áreas de luminescência de variação suave.
[0121] Em alguns casos, o intramodo plano pode ser selecionado relativamente de forma frequente como um intramodo para codificação de dados de vídeo. Isso é, pode haver uma chance relativamente maior de seleção de modo de plano para codificação de um bloco atual do que outros modos de codificação. De acordo, a configuração do modo padrão para o modo plano pode aumentar a possibilidade de o codificador de vídeo poder codificar um modo atual com base no MPM quando os blocos estão indisponíveis.
[0122] As técnicas dessa descrição também se referem à consideração de mais de dois MPMs. Por exemplo, como ilustrado no exemplo da figura 7, um codificador de vídeo pode considerar intramodos associados com uma pluralidade de blocos vizinhos como MPMs. Isso é, o codificador de vídeo pode considerar um intramodo associado com qualquer bloco de referência que é vizinho de um bloco atualmente sendo codificado como um MPM para o bloco atual. O codificador de vídeo pode gerar uma lista de MPMs, e designar valores de índice para cada MPM na lista. O codificador de vídeo pode então intracodificar o bloco atual com base no MPM, como descrito acima.
[0123] No exemplo ilustrado na figura 7, o codificador de vídeo considera os intramodos associados com cada bloco que é vizinho do bloco atual, incluindo um bloco vizinho "superior esquerdo" (AL), além de um "primeiro" bloco vizinho "superior" (A1), "segundo" bloco vizinho "superior" A2 (não ilustrado), o bloco vizinho "n superior" NA, etc., para um bloco vizinho "superior direito" (AR) quando da determinação de um MPM. Adicionalmente, no exemplo ilustrado na figura 7, o codificador de vídeo pode considerar os intramodos associados com o "primeiro" bloco vizinho "esquerdo" (L1), o "segundo" bloco vizinho "esquerdo" L2 (não ilustrado), o bloco vizinho "n esquerdo" LN, etc. para um bloco vizinho "inferior esquerdo" (BL).
[0124] De acordo com alguns aspectos dessa descrição, o codificador de vídeo pode apenas considerar os blocos de referência que são intracodificados quando da determinação de um MPM. Em outro exemplo, o codificador de vídeo pode considerar todos os blocos (por exemplo, incluindo blocos intercodificados e/ou blocos indisponíveis). Em tal exemplo, o codificador de vídeo pode designar um intramodo padrão (por exemplo, tal como o modo plano ou modo DC) para blocos indisponíveis antes da determinação de um MPM, como descrito acima.
[0125] Em alguns exemplos, a ordem de comparação (por exemplo, a ordem na qual o intramodo atual é comparado com o intramodo dos blocos de referência) por um codificador ou decodificador pode ser da esquerda para a direita, seguido por de cima para baixo. Por exemplo, como ilustrado na figura 7, a ordem de comparação pode prosseguir da esquerda para a direita na direção de AL para AR seguido de cima para baixo na direção de AL para BL. Em outro exemplo, a ordem de comparação pode ser da direita para a esquerda, seguido por de cima para baixo. Por exemplo, como também ilustrado na figura 7, a ordem de comparação pode prosseguir da direita para a esquerda na direção de AR para AL seguido de baixo para cima na direção de BL para AL. Em outros exemplos, qualquer outra combinação das ordens de comparação (por exemplo, de baixo para cima seguido pela esquerda para direita, direita para a esquerda seguida por de cima para baixo, e similares) pode ser utilizada.
[0126] Em outros exemplos, a ordem de comparação pode ser definida por uma regra predeterminada. Em tais exemplos, o codificador de vídeo 20 pode sinalizar e o decodificador de vídeo 30 pode recuperar de uma sequência de bits codificada, a regra referente à ordem de comparação. Em outros exemplos adicionais, de acordo com os aspectos dessa descrição, um codificador de vídeo pode considerar um subconjunto de blocos vizinhos, tal como um bloco sim, um bloco não, a cada três blocos, ou um subconjunto diferente de blocos quando comparando um intramodo atual com os intramodos de blocos vizinhos.
[0127] Os blocos de referência que são considerados quando da determinação de um MPM podem ser fixos ou sinalizados. Isso é, por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ambos ser configurados para determinar o MPM pela comparação dos intramodos dos mesmos blocos de referência vizinhos. Adicionalmente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ambos ser configurados para determinar a mesma ordem de comparação (por exemplo, a ordem na qual o intramodo atual é comparado com os intramodos dos blocos de referência).
[0128] Alternativamente, o codificador de vídeo 20 pode sinalizar com blocos de referência para considerar durante a intracodificação MPM e/ou a ordem de comparação. Nesse exemplo, o decodificador de vídeo 30 pode realizar a codificação MPM com base na sinalização recebida fornecida pelo codificador de vídeo 20.
[0129] De acordo com os aspectos dessa descrição, o número de blocos de referência que são considerados quando da identificação de um MPM pode ser relacionado com o número de MPMs diferentes possíveis para seleção. Isso é, por exemplo, cada bloco de referência que é considerado pode ser associado com um MPM único. O número de MPMs pode ser fixo, derivado ou sinalizado. Por exemplo, um MPM pode ser dependente de um número de fatores diferentes tal como blocos vizinhos, tipo de fatia, tipo de bloco, etc. Essa informação pode ser utilizada para determinar o número de MPMs, por exemplo, por uma fórmula conhecida. Essa fórmula conhecida pode então ser utilizada para derivar o número de MPMs.
[0130] Deve-se compreender que, enquanto os blocos de referência no exemplo da figura 7 são ilustrados como sendo similares ou de mesmo tamanho, diferentes blocos de referência de tamanho podem ser considerados pelo codificador de vídeo quando da identificação de um MPM. Ademais, mais ou menos candidatos que os ilustrados no exemplo da figura 7 podem ser considerados.
[0131] A figura 8 é um fluxograma ilustrando um método ilustrativo de dados de vídeo de codificação de acordo com um ou mais exemplos descritos nessa descrição. No método ilustrativo de codificação de dados de vídeo da figura 8, o codificador de vídeo 20 determina um intramodo para predizer um bloco atual de dados de vídeo (800). Por exemplo, o codificador de vídeo 20 pode realizar a intracodificação de blocos de vídeo dentro das fatias de vídeo. A intracodificação pode se basear na predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de um quadro ou imagem de vídeo determinada. Um intramodo pode se referir a qualquer um dos vários modos de compressão espacial.
[0132] O codificador de vídeo 20 determina os MPMs candidatos para predizer o bloco atual de dados de vídeo (802). Isso é, por exemplo, o codificador de vídeo 20 pode identificar um modo de intrapredição de blocos previamente codificados (por exemplo, blocos de referência) e compara tais modos de intrapredição a um modo de intrapredição para o bloco atual (por exemplo, um intramodo real para codificação do bloco atual como selecionado, por exemplo, utilizando uma análise de distorção de taxa descrita acima com relação à figura 2). Os intramodos de tais blocos de referência podem ter uma probabilidade relativamente alta de serem iguais ou similares ao bloco atual devido a uma proximidade espacial dos blocos para o bloco atual. O modo de intrapredição de múltiplos blocos de referência pode ser considerado quando identificando um MPM.
[0133] Em alguns exemplos, o codificador de vídeo 20 compara o intramodo a cada um dos MPMs em uma ordem de comparação. Como discutido acima, a ordem de comparação é, por exemplo, a ordem na qual o intramodo atual é comparado com o intramodo dos blocos de referência pelo codificador de vídeo 20. A ordem de comparação pode ser da esquerda para a direita, seguido por de cima para baixo. Em outro exemplo, a ordem de comparação pode ser da direita para a esquerda, seguido de baixo para cima. Em outros exemplos, qualquer outra combinação de ordens de comparação (por exemplo, de baixo para cima seguido da esquerda para a direita, direita para a esquerda seguido de cima para baixo e similares) pode ser utilizada.
[0134] Como discutido acima, em outros exemplos adicionais, a ordem de comparação pode ser definida por alguma regra e a regra pode ser sinalizada (por exemplo, sinalizada pelo codificador de vídeo 20 a ser utilizado pelo decodificador de vídeo 30). Em outros exemplos, de acordo com os aspectos dessa descrição, o codificador de vídeo 20 pode considerar um subconjunto de blocos vizinhos, tal como um bloco sim, um bloco não, cada terceiro bloco, ou um subconjunto diferente de blocos quando da comparação de um intramodo atual com os intramodos dos blocos vizinhos.
[0135] O codificador de vídeo 20 determina um índice para cada um dos MPMs com base na ordem de comparação (804). Por exemplo, como discutido acima com relação à figura 6, o codificador de vídeo 20 pode designar um valor de índice igual a zero para o intramodo do bloco vizinho esquerdo ("0", "FIRST COMPARISON") e um valor de índice de um para o intramodo do bloco vizinho superior ("1" "SECOND COMPARISON"). Enquanto o exemplo ilustrado na figura 6 inclui apenas dois MPMs, os valores de índice adicionais podem ser designados para outros MPMs se tais MPMs forem considerados.
[0136] O codificador de vídeo 20 sinaliza o índice do MPM coincidente com o intramodo para predição do bloco atual de dados em uma sequência de bits (806). Por exemplo, como notado acima, o índice pode identificar o MPM coincidente com base na ordem de comparação. Em contraste, cada intramodo pode ter um índice de intramodo associado original que identifica o intramodo como um dentre uma pluralidade de possíveis intramodos (tal como um dos 35 intramodos), como definido de acordo com um padrão de codificação. Esse índice original pode ser diferente do índice sinalizado na sequência de bits de acordo com os aspectos dessa descrição. Por exemplo, como notado acima, o codificador de vídeo 20 pode designar os valores de índice MPM com base em uma ordem de comparação em ordem ascendente, tal como um MPM comparado com o intramodo atual relativamente mais cedo no processo de comparação pode ter um valor de índice inferior a um MPM comparado com o intramodo atual relativamente mais tarde no processo de comparação. De acordo, o MPM comparado mais cedo pode ter um valor de índice inferior ao MPM comparado posteriormente, independentemente do índice de intramodo original do MPM comparado mais cedo. Isso é, em alguns exemplos, o MPM comparado mais cedo pode ter um valor de índice original mais alto do que o MPM comparado mais tarde.
[0137] A figura 9 é um fluxograma ilustrando um método ilustrativo de decodificação de dados de vídeo de acordo com um ou mais exemplos descritos nessa descrição. No método ilustrativo de decodificação de dados de vídeo da figura 9, o decodificador de vídeo 30 gera uma lista de MPMs para um bloco atual de dados de vídeo (900). Por exemplo, o codificador de vídeo 30 pode gerar uma lista de MPMs, e designar valores de índice para cada MPM na lista. A lista de MPMs pode ser disposta em uma ordem de comparação que é indicativa de uma ordem na qual um intramodo para um bloco atual de dados de vídeo foi comparado com um ou mais intramodos associados com um ou mais blocos de referência dos dados de vídeo durante a codificação do bloco atual de dados de vídeo.
[0138] O decodificador de vídeo 30 determina um índice MPM que identifica o intramodo para o bloco atual na lista de MPMs (902). O decodificador de vídeo 30 pode determinar um índice MPM que identifica o intramodo para o bloco atual na lista de MPMs. O decodificador de vídeo 30 pode então identificar o intramodo para o bloco atual utilizando o índice MPM, e decodificar o bloco atual com o intramodo identificado para o bloco atual. Em um exemplo, o decodificador de vídeo 30 pode determinar o índice MPM com base na sinalização incluída em uma sequência de bits codificada. O codificador de vídeo 20 pode ter sinalizado o modo de intrapredição utilizando um flag MPM de um bit. Isso é, o codificador de vídeo 20 pode sinalizar que o modo de intrapredição para um bloco atual é igual ao MPM, sem precisar identificar explicitamente o modo de intrapredição para o bloco atual. O decodificador de vídeo 30 pode então receber o indicador indicando que o intramodo para obloco atual é o mesmo que o MPM.
[0139] O decodificador de vídeo 30 identifica o intramodo para o bloco atual utilizando o índice MPM (904). Por exemplo, o decodificador de vídeo 30 pode identificar o MPM utilizando os mesmos blocos considerados pelo codificador de vídeo 20 durante a codificação. O decodificador de vídeo 30 pode então utilizar o índice MPM sinalizado para selecionar um dos intramodos classificados. O decodificador de vídeo 30 decodifica o bloco atual com o intramodo identificado para o bloco atual (906).
[0140] Por exemplo, como notado acima, o índice pode identificar o MPM coincidente com base na ordem de comparação.Em contraste, cada intramodo pode ter um índice de intramodo associado original que identifica o intramodo como um dentre uma pluralidade de intramodos possíveis (tal como um dos 35 intramodos), como definido de acordo com um padrão de codificação. Esse índice original pode ser diferente do índice sinalizado na sequência de bits de acordo com os aspectos dessa descrição. Por exemplo, o decodificador de vídeo 30 pode determinar os valores de índice de MPM com base em uma ordem de comparação em ordem ascendente.
[0141] A figura 10 é um fluxograma ilustrando um método ilustrativo de codificação de dados de vídeo de acordo com um ou mais exemplos descritos nessa descrição. No método ilustrativo de codificação de dados de vídeo da figura 10, um codificador de vídeo tal como um codificador de vídeo 20 ou decodificador de vídeo 30 pode identificar um ou mais blocos de dados de vídeo para determinar um MPM para um bloco atual de dados de vídeo (1000). O codificador de vídeo pode determinar se qualquer um dos um ou mais blocos não estão disponíveis para serem utilizados como blocos de referência para determinação de um MPM para o bloco atual de dados de vídeo (1002). Por exemplo, um bloco de referencia pode ser considerado "indisponível" se o bloco de referência ainda não tiver sido codificado (e, dessa forma, seu modo de predição for desconhecido), se o bloco de referência for codificado utilizando a interpredição (descrita acima), ou se o bloco de referência não existir (o bloco posicionado no canto superior esquerdo de uma imagem ou fatia pode não ter blocos vizinhos para a esquerda e/ou acima).
[0142] O codificador de vídeo designa um intramodo padrão para qualquer um dos um ou mais blocos que não estão disponíveis para serem utilizados como blocos de referência. Em um exemplo, o intramodo padrão pode ser mo modo plano (1004). O intramodo plano (também referido como um intramodo plano) pode incluir uma função de plano linear que é encaixada no bloco para fins de predição e pode fornecer uma predição precisa em áreas de luminescência de variação suave. Em outros exemplos, o intramodo padrão pode ser o modo DC ou outro intramodo.
[0143] O codificador de vídeo determina um intramodo para o bloco atual de dados de vídeo com base nos intramodos de um ou mais blocos (1006). Por exemplo, com relação ao codificador de vídeo 20, como descrito com relação ao exemplo da figura 4 acima, se o intramodo real par ao bloco atual (por exemplo, como calculado, por exemplo, pela unidade de intrapredição 46) for igual ao bloco de referência A ou bloco de referência B, o codificador de vídeo 20 pode sinalizar um indicador de um bit indicando que um MPM for utilizado para codificar o bloco atual (por exemplo, flag MPM é configurado igual a um). Alternativamente, com relação ao decodificador de vídeo 30, como descrito acima, o decodificador de vídeo 30 pode obter um flag MPM de uma sequência de bits codificada, e utiliza o flag MPM para determinar o intramodo para decodificar o bloco atual.
[0144] O codificador de vídeo codifica o bloco atual utilizando o intramodo determinado (1008). Por exemplo, o codificador de vídeo 20 codifica o bloco atual pela predição do bloco atual utilizando o intramodo determinado para gerar um bloco de vídeo de referência. O codificador de vídeo 20 também pode determinar um bloco residual incluindo uma diferença entre o bloco de referência e obloco atual e inclui o bloco residual na sequência de bits. Alternativamente, o decodificador de vídeo 30 decodifica o bloco atual com o MPM identificado par ao bloco atual. Por exemplo, o decodificador de vídeo 30 pode obter, a partir de uma sequência de bits codificada, um bloco de vídeo residual associado com o bloco atual. O decodificador de vídeo 30 pode gerar um bloco de referência pela predição do bloco atual utilizando o intramodo identificado para o bloco atual. Adicionalmente, o decodificador de vídeo 30 pode determinar os valores para o bloco atual a partir de uma combinação de bloco de referência e um bloco de vídeo residual recebido.
[0145] Enquanto determinados aspectos dessa descrição foram descritos com relação ao codificador de vídeo 20 e decodificador de vídeo 30, deve-se compreender que as técnicas dessa descrição podem ser aplicadas por um número de unidades de codificação e/ou decodificação de vídeo, processadores, unidades de processamento, unidades de codificação com base em hardware tal como codificador/decodificadores (CODECs) e similares. Ademais, deve-se compreender que as etapas ilustradas e descritas com relação às figuras de 8 a 10 são fornecidas meramente como exemplos. Isso é, as etapas ilustradas nos exemplos das figuras de 8 a 10 não precisam necessariamente ser realizadas na ordem ilustrada nas figuras de 8 a 10, e menos, mais ou outras etapas podem ser realizadas.
[0146] Ademais, deve-se compreender que, dependendo do exemplo, determinados atos ou eventos de qualquer um dos métodos descritos aqui podem ser realiados em uma sequência diferente, podem ser adicionados, misturados ou deixados de fora (por exemplo, nem todos os atos ou eventos descritos são necessários para se práticas o método). Ademais, em determinados exemplos, atos ou eventos podem ser realizados simultaneamente, por exemplo, através de um processamento de multissequências, o processamento interrompido, ou múltiplos processadores, ao invés de sequencialmente. Adicionalmente, enquanto determinados aspectos dessa descrição são descritos como sendo realizados por um módulo único ou unidade para fins de clareza, deve-se compreender que as técnicas dessa descrição podem ser realizadas por uma combinação de unidas ou módulos associados com um codificador de vídeo.
[0147] 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 em ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento com base em hardware. O meio legível por computador pode incluir meio de armazenamento legível por computador, que corresponde a um meio tangível tal como meio de armazenamento de dados, ou mídia de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação.
[0148] Dessa forma, o meio legível por computador pode geralmente corresponder a (1) meio de armazenamento legível por computador tangível que é não transitório ou (2) um meio de comunicação tal como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que pode ser acessado 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 descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[0149] Por meio de exemplo, e não de limitação, tal meio de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco ótico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser utilizado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é adequadamente chamada de meio legível por computador. Por exemplo, se instruções forem transmitidas a partir de um sítio de rede, servidor, ou outra fonte remota utilizando um cabo coaxial, cabo de fibra ótica, par torcido, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo coaxial, o cabo de fibra ótica, par torcido, DSL, ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídos na definição de meio.
[0150] Deve-se compreender, no entanto, que o meio de armazenamento legível por computador e meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outra mídia transiente, mas são, ao invés disso, direcionados para meio de armazenamento tangível não transiente. Disquete e disco, como utilizados aqui, incluem disco compacto (CD), disco a laser, disco ótico, disco versátil digital (DVD), disquete e disco blu- ray onde disquetes normalmente reproduzem os dados magneticamente, enquanto discos reproduzem os dados oticamente com lasers. Combinações do acima devem ser incluídas também dentro do escopo do meio legível por computador.
[0151] Instruções podem ser executados por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de finalidade geral, circuitos integrados específicos de aplicativo (ASICs), conjuntos lógicos programáveis por campo (FPGAs), ou outros conjuntos de circuito lógicos discretos ou integrados equivalentes. De acordo, o termo "processador", como utilizado aqui pode se referir a qualquer estrutura acima ou qualquer outra estrutura adequada para implementação das técnicas descritas aqui. Adicionalmente, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida dentro de hardware dedicado e/ou módulos de software configurados para codificar e decodificar ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0152] As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho 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 descrição para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Ao invés disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com o software e/ou firmware adequado.
[0153] Vários aspectos da descrição foram descritos. Esses e outros aspectos estão dentro do escopo das reivindicações a seguir.

Claims (11)

1. Método para codificar dados de vídeo, o método caracterizado pelo fato de que compreende: determinar um intramodo para predizer um bloco atual de dados de vídeo; determinar modos mais prováveis, MPMs, para predizer o bloco atual de dados de vídeo, em que os MPMs são intramodos associados à respectivos blocos vizinhos de dados de vídeo codificados antes do bloco atual; gerar uma lista dos MPMs com base em uma posição dos respectivos blocos vizinhos de dados de vídeo associados aos MPMs; designar um índice a cada um dos MPMs na lista sem reordenar os MPMs na lista com base em um índice de modo dos MPMs; e codificar dados intramodo do bloco atual, compreendendo codificar, quando um dos MPMs coincide com o intramodo para predizer o bloco atual, dados que representam o índice do MPM coincidente na lista em um fluxo de bits codificado.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que codificar os dados intramodo do bloco atual compreende, quando um dos MPMs não coincide com o intramodo para predizer o bloco atual: codificar um flag MPM que indica que o intramodo para predizer o bloco atual não é um MPM; gerar uma lista modificada de intramodos; e codificar dados que representam um índice do intramodo do bloco atual na lista modificada.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que gerar a lista modificada compreende eliminar os MPMs a partir da lista modificada de intramodos.
4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que gerar a lista modificada compreende ordenar a lista modificada de intramodos em ordem ascendente de acordo com um valor de modo dos intramodos.
5. Aparelho para codificar dados de vídeo, o aparelho caracterizado pelo fato de que compreende: meios para determinar um intramodo para predizer um bloco atual de dados de vídeo; meios para determinar modos mais prováveis, MPMs, para predizer o bloco atual de dados de vídeo, em que os MPMs são intramodos associados à respectivos blocos vizinhos de dados de vídeo codificados antes do bloco atual; meios para gerar uma lista dos MPMs com base em uma posição dos respectivos blocos vizinhos de dados de vídeo associados aos MPMs; meios para designar um índice a cada um dos MPMs da lista sem reordenar os MPMs na lista com base em um índice de modo dos MPMs; e meios para codificar, quando um dos MPMs coincide com o intramodo para predizer o bloco atual, dados que representam o índice do MPM coincidente na lista em um fluxo de bits codificado.
6. Método para decodificar dados de vídeo, o método caracterizado pelo fato de que compreende: determinar modos mais prováveis, MPMs, para predizer o bloco atual de dados de vídeo, em que os MPMs são intramodos associados à respectivos blocos vizinhos de dados de vídeo decodificados antes do bloco atual; gerar uma lista dos MPMs determinados para predizer o bloco atual de dados de vídeo com base em uma posição dos respectivos blocos vizinhos de dados de vídeo associados aos MPMs; designar um índice a cada um dos MPMs na lista sem reordenar os MPMs na lista com base em um índice de modo dos MPMs; decodificar dados intramodo do bloco atual, compreendendo decodificar, quando um dos MPMs coincide com um intramodo para o bloco atual, dados que representam o índice do MPM coincidente na lista a partir de um fluxo de bits codificado; identificar o intramodo para predizer o bloco atual utilizando o índice; e decodificar o bloco atual com o intramodo identificado para o bloco atual.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que decodificar os dados intramodo do bloco atual compreende, quando um dos MPMs não coincide com o intramodo para predizer o bloco atual: decodificar um flag MPM que indica que o intramodo para predizer o bloco atual não é um MPM; gerar uma lista modificada de intramodos; e decodificar dados que representam um índice do intramodo do bloco atual na lista modificada.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que gerar a lista modificada compreende eliminar os MPMs a partir da lista modificada de intramodos.
9. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que gerar a lista modificada compreende ordenar a lista modificada de intramodos em ordem ascendente de acordo com um valor de modo dos intramodos.
10. Aparelho para decodificar dados de vídeo, caracterizado pelo fato de que compreende: meios para determinar modos mais prováveis, MPMs, para predizer um bloco atual de dados de vídeo, em que os MPMs são intramodos associados à respectivos blocos vizinhos de dados de vídeo decodificados antes do bloco atual; meios para gerar uma lista dos MPMs determinados para predizer o bloco atual de dados de vídeo com base em uma posição dos respectivos blocos vizinhos de dados de vídeo associados aos MPMs; meios para designar um índice a cada um dos MPMs da lista sem reordenar os MPMs na lista com base em um índice de modo dos MPMs; meios para decodificar, quando um dos MPMs coincide com um intramodo para o bloco atual, dados de intramodo do bloco atual, compreendendo decodificar dados que representam o índice do MPM coincidente na lista a partir de um fluxo de bits codificado; meios para identificar o intramodo para predizer o bloco atual utilizando o índice; e meios para decodificar o bloco atual com o intramodo identificado para o bloco atual.
11. Memória legível por computador, caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 4 ou 6 a 9.
BR112014010326-7A 2011-11-04 2012-11-02 Codificação de vídeo intramodo BR112014010326B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161556029P 2011-11-04 2011-11-04
US61/556,029 2011-11-04
US13/666,594 2012-11-01
US13/666,594 US9154796B2 (en) 2011-11-04 2012-11-01 Intra-mode video coding
PCT/US2012/063297 WO2013067334A2 (en) 2011-11-04 2012-11-02 Intra-mode video coding

Publications (2)

Publication Number Publication Date
BR112014010326A2 BR112014010326A2 (pt) 2017-04-18
BR112014010326B1 true BR112014010326B1 (pt) 2022-05-10

Family

ID=47178361

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014010326-7A BR112014010326B1 (pt) 2011-11-04 2012-11-02 Codificação de vídeo intramodo

Country Status (20)

Country Link
US (1) US9154796B2 (pt)
EP (1) EP2774363B1 (pt)
JP (1) JP5902307B2 (pt)
KR (1) KR101618484B1 (pt)
CN (1) CN103959775B (pt)
AR (1) AR089571A1 (pt)
AU (1) AU2012332242B2 (pt)
BR (1) BR112014010326B1 (pt)
CA (1) CA2853660C (pt)
DK (1) DK2774363T3 (pt)
ES (1) ES2763443T3 (pt)
HU (1) HUE046831T2 (pt)
IL (1) IL232238B (pt)
IN (1) IN2014CN02999A (pt)
MX (1) MX2014005352A (pt)
MY (1) MY167847A (pt)
RU (1) RU2584498C2 (pt)
SG (1) SG11201401493SA (pt)
TW (1) TWI532367B (pt)
WO (1) WO2013067334A2 (pt)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5732454B2 (ja) * 2009-07-06 2015-06-10 トムソン ライセンシングThomson Licensing 空間変化残差符号化を行う方法および装置
KR101507344B1 (ko) * 2009-08-21 2015-03-31 에스케이 텔레콤주식회사 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체
AU2011354441B2 (en) * 2011-01-07 2014-07-17 Hfi Innovation Inc. Method and apparatus of improved intra luma prediction mode coding
CN102595118B (zh) * 2011-01-14 2015-04-08 华为技术有限公司 一种编解码中的预测方法和预测器
WO2012134046A2 (ko) 2011-04-01 2012-10-04 주식회사 아이벡스피티홀딩스 동영상의 부호화 방법
KR20130049522A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR101827939B1 (ko) * 2011-12-13 2018-02-12 주식회사 스카이미디어테크 적응적인 인트라 예측 모드 부호화 방법 및 장치, 그리고 복호화 방법 및 장치
AU2013208472B2 (en) * 2012-01-13 2015-10-01 Sharp Kabushiki Kaisha Image decoding device, image encoding device, and data structure of encoded data
WO2013106986A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of intra mode coding
EP3723369A1 (en) * 2012-01-20 2020-10-14 Dolby Laboratories Licensing Corporation Intra prediction mode mapping device
US9955169B2 (en) 2012-01-30 2018-04-24 Electronics And Telecommunications Research Institute Intra prediction mode encoding/decoding method and apparatus
WO2013115568A1 (ko) 2012-01-30 2013-08-08 한국전자통신연구원 인트라 예측 모드 부호화/복호화 방법 및 장치
CN104247423B (zh) * 2012-03-21 2018-08-07 联发科技(新加坡)私人有限公司 可伸缩视频编码***的帧内模式编码方法和装置
US9277212B2 (en) * 2012-07-09 2016-03-01 Qualcomm Incorporated Intra mode extensions for difference domain intra prediction
US10542286B2 (en) 2012-12-19 2020-01-21 ARRIS Enterprise LLC Multi-layer video encoder/decoder with base layer intra mode used for enhancement layer intra mode prediction
US9826239B2 (en) * 2013-01-07 2017-11-21 Lg Electronics Inc. Video signal processing method and device
KR20140092198A (ko) * 2013-01-07 2014-07-23 한국전자통신연구원 계층적 비디오 부호화에서의 스케일러빌리티 정보 표현방식
KR101712110B1 (ko) * 2013-07-12 2017-03-13 삼성전자 주식회사 변이 벡터 유도를 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9497473B2 (en) * 2013-10-03 2016-11-15 Qualcomm Incorporated High precision explicit weighted prediction for video coding
US10148953B2 (en) * 2014-11-10 2018-12-04 Samsung Electronics Co., Ltd. System and method for intra prediction in video coding
US10075692B2 (en) * 2015-01-28 2018-09-11 Hfi Innovation Inc. Method of simple intra mode for video coding
US20160373782A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
US20160373742A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
US11463689B2 (en) 2015-06-18 2022-10-04 Qualcomm Incorporated Intra prediction and intra mode coding
US10142627B2 (en) * 2015-06-18 2018-11-27 Qualcomm Incorporated Intra prediction and intra mode coding
US10841593B2 (en) * 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
WO2017008255A1 (en) * 2015-07-14 2017-01-19 Mediatek Singapore Pte. Ltd. Advanced intra prediction mode signaling in video coding
ES2677193B1 (es) 2015-08-28 2019-06-19 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
KR20180064414A (ko) 2015-10-13 2018-06-14 엘지전자 주식회사 비디오 신호의 인코딩, 디코딩 방법 및 장치
CN106878752B (zh) * 2015-12-11 2022-03-04 北京三星通信技术研究有限公司 一种视频编码模式的编解码方法和装置
KR102631308B1 (ko) * 2016-02-16 2024-01-30 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
CN113438478A (zh) * 2016-04-06 2021-09-24 株式会社Kt 对视频进行编码、解码的方法及存储压缩视频数据的设备
CN113810711B (zh) * 2016-04-29 2024-05-10 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US10694210B2 (en) 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US10223810B2 (en) 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
ES2699723B2 (es) 2016-06-24 2020-10-16 Kt Corp Metodo y aparato para tratar una senal de video
US10812795B2 (en) 2016-09-30 2020-10-20 Lg Electronic Inc. Method for processing picture based on intra-prediction mode and apparatus for same
EP3522531A4 (en) * 2016-09-30 2020-04-15 LG Electronics Inc. -1- IMAGE PROCESSING METHOD BASED ON INTRA PREDICTION MODE AND APPARATUS THEREOF
US10506228B2 (en) 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
KR20180039324A (ko) * 2016-10-10 2018-04-18 디지털인사이트 주식회사 정방형 또는 직방형 블록의 화면 내 예측모드 정보 추출 방법 및 장치
KR20180041833A (ko) * 2016-10-17 2018-04-25 디지털인사이트 주식회사 화면 내 예측에 대한 참조 모드 리스트를 사용하는 비디오 코딩 방법 및 장치
KR20180043149A (ko) * 2016-10-19 2018-04-27 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
CN116915991A (zh) * 2016-10-19 2023-10-20 Sk电信有限公司 对视频数据进行编码或解码的方法及存储比特流的方法
CN116781899A (zh) 2016-10-28 2023-09-19 韩国电子通信研究院 视频编码/解码方法和设备以及存储比特流的记录介质
CN117119185A (zh) * 2017-01-02 2023-11-24 Lx 半导体科技有限公司 图像编码/解码设备以及发送图像数据的设备
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
US11496747B2 (en) * 2017-03-22 2022-11-08 Qualcomm Incorporated Intra-prediction mode propagation
US11102509B2 (en) * 2017-04-28 2021-08-24 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium storing bit stream
EP3399754A1 (en) 2017-05-04 2018-11-07 Thomson Licensing Method and apparatus for most probable mode (mpm) reordering for intra prediction
US10356411B2 (en) 2017-05-30 2019-07-16 Google Llc Adaptation of scan order entropy coding
US10630974B2 (en) 2017-05-30 2020-04-21 Google Llc Coding of intra-prediction modes
EP4084475B1 (en) 2017-05-31 2024-03-06 LG Electronics Inc. Method and device for performing image decoding on basis of intra prediction in image coding system
EP3422717A1 (en) * 2017-06-26 2019-01-02 Thomson Licensing Method and apparatus for most probable mode (mpm) sorting and signaling in video encoding and decoding
EP3422716A1 (en) * 2017-06-26 2019-01-02 Thomson Licensing Method and apparatus for most probable mode (mpm) sorting and signaling in video encoding and decoding
EP3700208A4 (en) * 2017-10-18 2021-04-07 Electronics and Telecommunications Research Institute IMAGE ENCODING / DECODING METHOD AND DEVICE AND RECORDING MEDIUM WITH BITSTREAM STORED ON IT
CN111373755B (zh) * 2017-11-16 2024-04-26 英迪股份有限公司 图像编码/解码方法和装置以及存储比特流的记录介质
US10965942B2 (en) 2017-11-17 2021-03-30 FG Innovation Company Limited Device and method for coding video data based on adjusted intra mode list
US11212553B2 (en) 2017-11-28 2021-12-28 Electronics And Telecommunications Research Institute Bidirectional intra prediction method and apparatus
CN111819845A (zh) 2018-03-08 2020-10-23 三星电子株式会社 视频解码方法和装置以及视频编码方法和装置
SG11202009345QA (en) * 2018-05-10 2020-10-29 Samsung Electronics Co Ltd Video encoding method and apparatus, and video decoding method and apparatus
WO2020009375A1 (ko) * 2018-07-02 2020-01-09 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치
US11277644B2 (en) 2018-07-02 2022-03-15 Qualcomm Incorporated Combining mode dependent intra smoothing (MDIS) with intra interpolation filter switching
US11523106B2 (en) * 2018-07-11 2022-12-06 Lg Electronics Inc. Method for coding intra-prediction mode candidates included in a most probable modes (MPM) and remaining intra prediction modes, and device for same
WO2020055290A1 (en) * 2018-09-13 2020-03-19 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
KR102622452B1 (ko) * 2018-09-13 2024-01-09 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 아핀 선형 가중 인트라 예측
WO2020058896A1 (en) 2018-09-19 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. Intra mode coding based on history information
US20200099927A1 (en) * 2018-09-24 2020-03-26 Qualcomm Incorporated Most probable modes (mpms) construction
EP3633857B1 (en) * 2018-10-03 2022-01-26 BlackBerry Limited Methods and devices for on-the-fly coder mapping updates in point cloud coding
US11095885B2 (en) 2018-10-05 2021-08-17 Tencent America LLC Mode list generation for multi-line intra prediction
WO2020073911A1 (en) 2018-10-09 2020-04-16 Huawei Technologies Co., Ltd. Devices and methods for image and video coding
BR112021006238A2 (pt) * 2018-10-12 2021-07-06 Guangdong Oppo Mobile Telecommunications Corp Ltd método de decodificação de vídeo e método de codificação de vídeo
US11303885B2 (en) 2018-10-25 2022-04-12 Qualcomm Incorporated Wide-angle intra prediction smoothing and interpolation
WO2020091213A1 (ko) * 2018-11-04 2020-05-07 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치
CN115348443A (zh) * 2018-11-30 2022-11-15 杭州海康威视数字技术股份有限公司 一种运动信息确定方法、装置及其设备
US11032551B2 (en) 2018-12-04 2021-06-08 Tencent America LLC Simplified most probable mode list generation scheme
WO2020130477A1 (ko) * 2018-12-17 2020-06-25 세종대학교산학협력단 비디오 부호화/복호화 방법 및 장치
WO2020171647A1 (ko) * 2019-02-21 2020-08-27 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측을 사용하는 영상 디코딩 방법 및 그 장치
GB2582023A (en) * 2019-03-08 2020-09-09 British Broadcasting Corp Method of signalling in a video codec
WO2020184821A1 (ko) * 2019-03-12 2020-09-17 엘지전자 주식회사 Mpm 리스트를 구성하는 방법 및 장치
CN110166772B (zh) * 2019-03-12 2021-04-27 浙江大华技术股份有限公司 帧内预测模式的编解码方法、装置、设备和可读存储介质
CN110062227B (zh) * 2019-03-12 2021-04-27 浙江大华技术股份有限公司 帧内预测模式的编解码方法、装置、设备和可读存储介质
CN114731430A (zh) * 2019-12-05 2022-07-08 交互数字Vc控股法国有限公司 与多个变换选择、矩阵加权帧内预测或多参考线帧内预测结合的用于视频编码和解码的帧内子分区
CN113691809A (zh) * 2021-07-07 2021-11-23 浙江大华技术股份有限公司 帧内预测方法及编、解码方法、电子设备及存储介质
CN116095316B (zh) * 2023-03-17 2023-06-23 北京中星微人工智能芯片技术有限公司 视频图像处理方法及装置、电子设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1944977B1 (en) 2002-05-28 2014-12-31 Sharp Kabushiki Kaisha Method and Systems for Image intra-prediction mode estimation, communication, and organization
DE60345459C5 (de) 2002-06-11 2022-11-17 Nokia Technologies Oy Intracodierung auf der basis räumlicher prädiktion
RU2314656C2 (ru) * 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
KR101291196B1 (ko) * 2008-01-25 2013-07-31 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR101306834B1 (ko) 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
EP2394437B1 (en) * 2009-02-06 2015-04-08 Thomson Licensing Methods and apparatus for implicit and semi-implicit intra mode signaling for video encoders and decoders
JP5746182B2 (ja) 2009-09-14 2015-07-08 トムソン ライセンシングThomson Licensing イントラ予測モードの効率的なビデオ符号化及び復号化方法及び装置
KR20110068793A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 영상 부호화 및 복호화를 위한 장치 및 방법
KR101789634B1 (ko) 2010-04-09 2017-10-25 엘지전자 주식회사 비디오 데이터 처리 방법 및 장치
KR101772459B1 (ko) 2010-05-17 2017-08-30 엘지전자 주식회사 신규한 인트라 예측 모드
US8902978B2 (en) 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
EP3125555B1 (en) * 2010-08-17 2018-04-18 M&K Holdings Inc. Method for encoding an intra prediction mode
US9025661B2 (en) 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
CN103314588B (zh) 2011-01-07 2016-05-11 联发科技(新加坡)私人有限公司 编码方法与装置以及解码方法与装置
GB2491391B (en) 2011-06-02 2014-09-03 Canon Kk Encoding mode values representing prediction modes
US9532058B2 (en) * 2011-06-03 2016-12-27 Qualcomm Incorporated Intra prediction mode coding with directional partitions
US9654785B2 (en) 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
PL2720461T3 (pl) * 2011-06-13 2024-02-05 Sun Patent Trust Sposób dekodowania obrazów, sposób kodowania obrazów, urządzenie do dekodowania obrazów, urządzenie do kodowania obrazów, oraz urządzenie do kodowania i dekodowania obrazów
CN107257466B (zh) 2011-06-17 2020-06-26 寰发股份有限公司 内部预测模式编码的方法及装置
EP2727363B1 (en) 2011-06-28 2020-11-18 HFI Innovation Inc. Method and apparatus of intra mode coding
US9699456B2 (en) 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
GB2494468B (en) 2011-09-12 2014-01-15 Canon Kk Method and device for encoding or decoding information representing prediction modes
GB2494469B (en) 2011-09-12 2015-04-01 Canon Kk Method and device for encoding or decoding information representing prediction modes
WO2013039676A1 (en) 2011-09-13 2013-03-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra mode coding in hevc

Also Published As

Publication number Publication date
RU2584498C2 (ru) 2016-05-20
EP2774363A2 (en) 2014-09-10
CN103959775A (zh) 2014-07-30
MX2014005352A (es) 2014-05-28
BR112014010326A2 (pt) 2017-04-18
DK2774363T3 (da) 2020-01-20
AU2012332242A1 (en) 2014-05-22
CN103959775B (zh) 2017-11-10
RU2014122600A (ru) 2015-12-10
JP5902307B2 (ja) 2016-04-13
US9154796B2 (en) 2015-10-06
TWI532367B (zh) 2016-05-01
MY167847A (en) 2018-09-26
TW201342931A (zh) 2013-10-16
AU2012332242B2 (en) 2016-04-21
IL232238A0 (en) 2014-06-30
SG11201401493SA (en) 2014-06-27
WO2013067334A2 (en) 2013-05-10
EP2774363B1 (en) 2019-10-02
US20130114707A1 (en) 2013-05-09
CA2853660A1 (en) 2013-05-10
IN2014CN02999A (pt) 2015-07-03
JP2014535225A (ja) 2014-12-25
CA2853660C (en) 2017-03-21
IL232238B (en) 2019-09-26
KR101618484B1 (ko) 2016-05-18
ES2763443T3 (es) 2020-05-28
HUE046831T2 (hu) 2020-03-30
KR20140098113A (ko) 2014-08-07
WO2013067334A3 (en) 2013-07-04
AR089571A1 (es) 2014-09-03

Similar Documents

Publication Publication Date Title
BR112014010326B1 (pt) Codificação de vídeo intramodo
US9363510B2 (en) Scan-based sliding window in context derivation for transform coefficient coding
US9503715B2 (en) Constrained intra prediction in video coding
US20150071357A1 (en) Partial intra block copying for video coding
BR112018006408B1 (pt) Predição intra de vídeo melhorada usando combinação de predição dependente de posição para codificação de vídeo
BR122020003135B1 (pt) Método e dispositivo para decodificar dados de vídeo e meio de armazenamento não transitório legível por computador
BR112014017364B1 (pt) Aperfeiçoamento de rendimento para codificação de nível de coeficiente cabac
KR20130129469A (ko) 비디오 코딩에서의 변환들
BR112016000863B1 (pt) Previsão residual de componente intercor
BR112014010046B1 (pt) Método para decodificar dados de vídeo, método e dispositivo para codificar dados de vídeo e memória legível por computador
BR112013013650B1 (pt) Método, dispositivo e meio legível por computador para codificar coeficientes associados a um bloco de dados de vídeo durante um processo de codificação de vídeo
BR112013021612B1 (pt) Método e dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, método e dispositivo para codificar dados de vídeo de acordo com um modo de fusão e memória legível por computador
BR112014001056B1 (pt) Varredura de coeficiente em codificação de vídeo
JP2015507429A (ja) ビデオコード化において変換係数データをコード化するためのコンテキストの決定
JP2015533061A (ja) コンテキスト適応型、マルチレベル有意性コーディングに関するコンテキスト導出
BR112014017706B1 (pt) Sinalização de parâmetros de filtro de desbloqueio em codificação de vídeo
BR112014008097B1 (pt) Remoção de corte de candidato a preditor de vetor de movimento para codificação de vídeo
BR112014011058B1 (pt) Métodos para codificar e decodificar dados de vídeo, dispositivos compreendendo um codificador e um decodificador de vídeo e meio de armazenamento
US20130177070A1 (en) Significance map support for parallel transform coefficient processing in video coding
BR112013032040B1 (pt) Método e aparelho para codificação de vídeo, e memória legível por computador
BR112013033645B1 (pt) Elementos de sintaxe de sinalização para coeficientes de transformada para subconjuntos de uma unidade de codificação de nível-folha
BR112014023466B1 (pt) Derivação de contexto para codificação de última posição para codificação de vídeo
US20130128971A1 (en) Transforms in video coding
US10819999B2 (en) Intra-frame prediction method and apparatus
BR112020006572A2 (pt) codificação aritmética binária com modificação progressiva de parâmetros de adaptação

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 19/11 (2014.01)

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]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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