BR112017020102B1 - Processo de amostragem descendente para modo de previsão de modelo linear - Google Patents

Processo de amostragem descendente para modo de previsão de modelo linear Download PDF

Info

Publication number
BR112017020102B1
BR112017020102B1 BR112017020102-0A BR112017020102A BR112017020102B1 BR 112017020102 B1 BR112017020102 B1 BR 112017020102B1 BR 112017020102 A BR112017020102 A BR 112017020102A BR 112017020102 B1 BR112017020102 B1 BR 112017020102B1
Authority
BR
Brazil
Prior art keywords
block
luminescence
chrominance
samples
filter
Prior art date
Application number
BR112017020102-0A
Other languages
English (en)
Other versions
BR112017020102A2 (pt
Inventor
Li Zhang
Jianle Chen
Marta Karczewicz
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 BR112017020102A2 publication Critical patent/BR112017020102A2/pt
Publication of BR112017020102B1 publication Critical patent/BR112017020102B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

técnicas ilustrativas relacionadas à decodificação ou codificação por previsão de modelo linear (lm) são descritas. um decodificador de vídeo ou codificador de vídeo determina qual filtro aplicar a partir de um conjunto de filtros para amostrar descendentemente as amostras de um bloco de luminescência e gerar um bloco de previsão para um bloco de crominância correspondente com base nas características do bloco de crominância.

Description

[001] Esse pedido reivindica os benefícios do pedido de patente provisório No. 62/136.344, depositado em 20 de março de 2015, a totalidade do conteúdo do qual é incorporada aqui por referência.
CAMPO TÉCNICO
[002] Essa descrição refere-se à codificação e decodificação de vídeo.
FUNDAMENTOS
[003] Capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de dispositivos; incluindo televisores 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 reprodução de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou de rádio satélites, os chamados "smartphones", dispositivos de teleconferência de vídeo, dispositivos de sequenciamento de vídeo e similares. Os dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tal como s descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 Parte 10, Codificação de Vídeo Avançada (AVC), ITU-T H.265, Codificação de Vídeo de Alta Eficiência (HEVC), 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.
[004] As técnicas de compressão de vídeo realizam a previsão espacial (intraimagem) e/ou previsão temporal (interimagem) para reduzir ou remover a redundância inerente às sequências de vídeo. Para codificação de vídeo com base em bloco, uma fatia de vídeo (isso é, um quadro de vídeo ou uma parte de um quadro de vídeo) pode ser dividida em blocos de vídeo. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados utilizando-se a previsão espacial com referência à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 podem utilizar previsão espacial com relação às amostras de referência em blocos vizinhos na mesma imagem ou previsão temporal com relação às amostras de referência em outras imagens de referência. A previsão espacial ou temporal resulta em um bloco de previsã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 previsã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 previsão, e os dados residuais indicam a diferença entre o bloco codificado e o bloco de previsã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 de domínio de pixel em um domínio de transformação, resultando em coeficientes residuais, que então podem ser quantizados.
SUMÁRIO
[005] Essa descrição descreve as técnicas relacionadas com a decodificação e codificação por previsão de modelo linear (LM). Quando o formato de cor não é 4:4:4 (isso é, componentes de luminescência e crominância possuem resoluções diferentes), na previsão LM, um bloco de previsão para um bloco de crominância é determinado pela amostragem descendente de um bloco de luminescência correspondente com base em um filtro e aplicação de parâmetros alfa e beta, descritos abaixo, ao bloco de luminescência amostrado descendentemente. As técnicas determinam que o filtro deve ser aplicado para amostragem descendente de bloco de luminescência. Por exemplo, em vez de existir um filtro que é aplicado a todos os casos de amostragem descendente do bloco doe luminescência, um decodificador de vídeo ou codificador de vídeo pode determinar dinamicamente qual filtro a parir de um conjunto de filtros deve ser aplicado. A determinação de qual filtro deve ser aplicado pode ser baseada em, por exemplo, uma característica do bloco de crominância tal como uma localização do bloco de crominância com relação a um limite. Em alguns exemplos, as técnicas descritas aqui também podem ser aplicadas a outros métodos de codificação onde a crominância é prevista a partir de blocos de luminescência e a amostragem descendente do bloco de luminescência é necessária.
[006] Em um exemplo, a descrição descreve um método ilustrativo de dados de vídeo de decodificação por previsão de modelo linear (LM), o método compreendendo a determinação de um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo decodificado, determinando um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, a amostragem descendente do bloco de luminescência com base no filtro determinado, a determinação de um bloco de previsão com base no bloco de luminescência amostrado descendentemente, e a reconstrução do bloco de crominância com base no bloco de previsão e um bloco residual.
[007] Em um exemplo, a descrição descreve um método ilustrativo de dados de vídeo de codificação por previsão de modelo linear (LM), o método compreendendo a determinação de um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância de dados de vídeo que está sendo codificado, determinando um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, amostragem descendente do bloco de luminescência com base no filtro determinado, determinando um bloco de previsão com base no bloco de luminescência amostrado descendentemente, e gerando um bloco residual com base no bloco de crominância e bloco de previsão.
[008] Em u m exemplo, a descrição descreve um dispositivo ilustrativo para os dados de vídeo de decodificação por previsão de modelo linear (LM), o dispositivo compreendendo uma memória de dados de vídeo configurada para armazenar os dados de vídeo e um decodificador de vídeo compreendendo o conjunto de circuitos integrado. O decodificador de vídeo é configurado para determinar um bloco de luminescência dos dados de vídeo armazenado na memória de dados de vídeo que corresponde a um bloco de crominância de dados de vídeo que está sendo decodificado, determinar um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, amostra descendentemente o bloco de luminescência com base no filtro determinado, determinar um bloco de previsão com base no bloco de luminescência amostrado descendentemente e reconstruir o bloco de crominância com base no bloco de previsão e um bloco residual.
[009] Em um exemplo, a descrição descreve um dispositivo ilustrativo para os dados de vídeo de codificação por previsão de modelo linear (LM), o dispositivo compreendendo uma memória de dados de vídeo configurada par armazenar os dados de vídeo e um codificador de vídeo compreendendo o conjunto de circuitos integrados. O codificador de vídeo é configurado para determinar um bloco de luminescência de dados de vídeo armazenado na memória de dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que estão sendo codificados, determinar um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, amostrar descendentemente o bloco de luminescência com base no filtro determinado, determinar um bloco de previsão com base no bloco de luminescência amostrado descendentemente, e gerar um bloco residual com base no bloco de crominância e no bloco de previsão.
[0010] Em um exemplo, a descrição descreve um dispositivo ilustrativo para os dados de vídeo de decodificação por previsão de modelo linear (LM), o dispositivo compreendendo meios para determinar um bloco de luminescência dos dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo decodificado, meios para determinar um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, meios para amostrar descendentemente o bloco de luminescência com base no filtro determinado, meios para determinar um bloco de previsão com base no bloco de luminescência amostrado descendentemente e meios para reconstruir o bloco de crominância com base no bloco de previsão e um bloco residual.
[0011] Em um exemplo, a descrição descreve um dispositivo ilustrativo para dados de vídeo de codificação por previsão de modelo linear (LM), o dispositivo compreendendo meios para determinar um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo codificado, meios para determinar um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, meios para amostrar descendentemente o bloco de luminescência com base no filtro determinado, meios para determinar um bloco de previsão com base no bloco de luminescência amostrado descendentemente, e meios para gerar um bloco residual com base no bloco de crominância e no bloco de previsão.
[0012] Em um exemplo, a descrição descreve um meio de armazenamento legível por computador ilustrativo armazenando instruções que quando executadas fazem com que um ou mais processadores de um dispositivo para dados de vídeo de decodificação por previsão de modelo linear (LM) determinem um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo decodificado, determinem um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, amostrem descendentemente o bloco de luminescência com base no filtro determinado, determinem um bloco de previsão com base no bloco de luminescência amostrado descendentemente, e reconstruam o bloco de crominância com base no bloco de previsão e um bloco residual.
[0013] Em um exemplo, a descrição descreve um meio de armazenamento legível por computador ilustrativo armazenando instruções que quando executadas fazem com que um ou mais processadores de um dispositivo para dados de vídeo de codificação por previsão de modelo linear (LM) determinem um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância de dados de vídeo que está sendo codificado, determinem um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, mostrem descendentemente o bloco de luminescência com base no filtro determinado, determinem u m bloco de previsão com base no bloco de luminescência amostrado descendentemente e gerem um bloco residual com base no bloco de crominância e no bloco de previsão.
[0014] 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, desenhos e reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0015] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação de vídeo ilustrativo que pode utilizar as técnicas descritas nessa descrição;
[0016] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição;
[0017] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo que pode implementar as técnicas descritas nessa descrição;
[0018] A figura 4 é um diagrama conceitual ilustrando as localizações vertical e horizontal relativas de amostras de luminescência e crominância;
[0019] A figura 5 é um diagrama conceitual ilustrando localizações ilustrativas das quais os parâmetros de escalonamento utilizados para escalonar um bloco de luminescência amostrado descendentemente e reconstruído são derivados;
[0020] A figura 6 é um diagrama conceitual ilustrando um exemplo de posições de luminescência e posições de crominância para amostras de amostragem descendente de um bloco de luminescência para gerar um bloco de previsão;
[0021] A figura 7 é um diagrama conceitual ilustrando outro exemplo de posições de luminescência e posições de crominância para amostras de amostragem descendente de um bloco de luminescência para a geração de um bloco de previsão;
[0022] A figura 8 é um fluxograma ilustrando uma técnica ilustrativa de dados de vídeo para codificação por previsão de modelo linear (LM);
[0023] A figura 9 é um fluxograma ilustrando uma técnica ilustrativa de dados de vídeo de decodificação por previsão de modelo linear (LM).
DESCRIÇÃO DETALHADA
[0024] Essa descrição descreve as técnicas para codificação de vídeo e compressão de dados de vídeo. Em particular, essa descrição descreve as técnicas para o modo de codificação de vídeo por previsão de modelo linear (LM). A codificação de vídeo no modo de previsão LM tende a reduzir a redundância intercomponente entre as amostras de luminescência e crominância dos dados de vídeo. No modo de codificação de vídeo por previsão LM e quando a amostragem não é 4:4:4, um bloco de crominância é previsto a partir de um bloco de luminescência escalonado, amostrado descendentemente, reconstruído correspondente (isso é, esse bloco de luminescência escalonado, amostrado descendentemente reconstruído correspondente forma um bloco de previsão utilizado para prever o bloco de crominância).
[0025] Em alguns exemplos, a amostragem descendente do bloco de luminescência reconstruído correspondente inclui filtragem. Essa descrição descreve formas ilustrativas nas quais se realizar tal filtragem. As técnicas descritas nessa descrição também podem se aplicar a situações nas quais as amostras de luminescência utilizadas no modo de previsão LM são localizadas em tiles diferentes. As técnicas descritas nessa descrição podem ser utilizadas no contexto de codecs de vídeo avançado, tal como extensões do padrão de codificação de vídeo por codificação de vídeo de alta eficiência (HEVC) ITU-T H.265 ou a próxima geração, ou futuras gerações de padrões de codificação de vídeo.
[0026] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação de vídeo ilustrativo 10 que pode utilizar as técnicas dessa descrição. Como utilizado aqui, o termo "codificador de vídeo"se refere genericamente a ambos os codificadores de vídeo e decodificadores de vídeo. Nessa descrição, os termos "codificação de vídeo ou "codificação"podem se referir genericamente à codificação de vídeo ou decodificação de vídeo. O codificador de vídeo 20 e o decodificador de vídeo 30 do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar as técnicas para codificação de vídeo com base em previsão de modelo linear (LM) de acordo com vários exemplos descritos nessa descrição. Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para codificar um bloco de crominância utilizando amostras de luminescência escalonadas, amostradas descendentemente e reconstruídas de um bloco de luminescência correspondente, tal como em exemplos onde a amostragem não é 4:4:4 (por exemplo, crominância é subamostrada com relação à luminescência) como descrito nessa descrição.
[0027] Como ilustrado na figura 1, o sistema de codificação de vídeo 10 inclui um dispositivo fonte 12 e um dispositivo de destino 14. O destino fonte 12 gera dados de vídeo codificados. De acordo, o dispositivo fonte 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. O dispositivo de destino 14 pode decodificar os dados de vídeo codificados gerados pelo dispositivo fonte 12. De acordo, o dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo fonte 12 e o dispositivo de destino 14 podem ser exemplos de dispositivos de codificação de vídeo ou aparelhos de codificação de vídeo.
[0028] O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender uma ampla faixa de dispositivos, incluindo computadores desktop, dispositivos de computação moveis, computadores notebook (por exemplo, laptop), computadores tablet, caixas de decodificação, aparelhos telefônicos tal como os chamados "smartphones", televisores, câmeras, dispositivos de exibição, aparelhos de reprodução de mídia digital, consoles de jogos de vídeo, computadores automotivos, ou similares.
[0029] O dispositivo de destino 14 pode receber dados de vídeo codificados do dispositivo fonte 12 através de um canal 16. O canal 16 pode compreender um ou mais meios ou dispositivos capazes de mover os dados de vídeo codificados a partir do dispositivo fonte 12 para o dispositivo de destino 14. Em um exemplo, o canal 16 pode compreender um ou mais meios de comunicação que permitem que o dispositivo fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Nesse exemplo, o dispositivo fonte 12 pode modular os dados de vídeo codificados de acordo com um padrão de comunicação, tal como o protocolo de comunicação sem fio, e podem transmitir os dados de vídeo modulados para o dispositivo de destino 14. O um ou mais meios de comunicação podem incluir meio de comunicação sem e/ou com fio, tal como espectro de frequência de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. Um ou mais meios de comunicação podem formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla, ou uma rede global (por exemplo, a Internet). Um ou mais meios de comunicação podem incluir roteadores, comutadores, estações base, ou outro equipamento que facilite a comunicação do dispositivo fonte 12 para o dispositivo de destino 14.
[0030] Em outro exemplo, o canal 16 pode incluir um meio de armazenamento que armazena dados de vídeo codificados gerados pelo dispositivo fonte 12. Nesse exemplo, o dispositivo de destino 14 pode acessar o meio de armazenamento, por exemplo, através do acesso a disco ou acesso a cartão. O meio de armazenamento pode incluir uma variedade de meios de armazenamento de dados acessados localmente tal como discos Blu-ray DVDs, CD-ROMs, memória flash, ou outro meio de armazenamento digital adequado para o armazenamento de dados de vídeo codificados.
[0031] Em um exemplo adicional, o canal 16 pode incluir um servidor de arquivo ou outro dispositivo de armazenamento intermediário que armazene dados de vídeo codificados gerados pelo dispositivo fonte 12. Nesse exemplo, o dispositivo de destino 14 pode acessar dados de vídeo codificados armazenados no servidor de arquivo ou outro dispositivo de armazenamento intermediário através de sequenciamento ou download. O servidor de arquivo pode ser um tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivo ilustrativos incluem os servidores de rede (por exemplo, a partir de um sitio da rede), servidores de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento anexados à rede (NAS), e acionadores de disco local.
[0032] O dispositivo de destino 14 pode acessar dados de vídeo codificados através de uma conexão de dados padrão, tal como a conexão com a Internet. Tipos ilustrativos de conexões de dados podem incluir canais em fio (por exemplo, conexões Wi-Fi), conexões com fio (por exemplo, DSL, modem a cabo, etc.) ou combinações de ambos que sejam adequadas para acessar os dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados a partir do servidor de arquivo pode ser uma transmissão de sequenciamento, uma transmissão de download, ou uma combinação de ambas.
[0033] As técnicas dessa descrição não estão limitadas aos aplicativos sem fio ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte de uma variedade de aplicativos de multimídia, tal como difusões de televisão aéreas, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo de sequenciamento, por exemplo, através da Internet, codificação de dados de vídeo para armazenamento em um meio de armazenamento de dados, decodificação de dados de vídeo armazenados em um meio de armazenamento de dados, ou outros aplicativos. Em alguns exemplos, o sistema de codificação de vídeo 10 pode ser configurado para suportar transmissão de vídeo de via única ou duas vias para suportar as aplicações tal como sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo, e/ou videotelefonia.
[0034] O sistema de codificação de vídeo 10 ilustrado na figura 1 é meramente um exemplo e as técnicas dessa descrição podem ser aplicadas às configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e decodificação. Em alguns exemplos, os dados são recuperados a partir de uma memória local, sequenciada através de uma rede, ou similares. Um dispositivo de codificação de vídeo pode codificar e armazenar dados na memória e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados da memória. Em muitos exemplos, a codificação e decodificação é realizada por dispositivos que não se comunicam um com o outro, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados da memória.
[0035] 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 exemplos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou transmissor. A fonte de vídeo 18 pode incluir um dispositivo de captura de vídeo (por exemplo, uma câmera de vídeo), um arquivo de vídeo contendo dados de vídeo previamente capturados, uma interface de alimentação de vídeo para receber dados de vídeo a partir de um provedor de conteúdo de vídeo, e/ou um sistema gráfico de computador para gerar dados de vídeo, ou uma combinação de tais fontes de dados de vídeo.
[0036] O codificador de vídeo 20 pode codificar os dados de vídeo da fonte de vídeo 18. Em alguns exemplos, o dispositivo fonte 12 transmite diretamente os dados de vídeo codificados para o dispositivo de destino 14 através da interface de saída 22. Em outros exemplos, os dados de vídeo codificados também podem ser armazenados em um meio de armazenamento ou um servidor de arquivo para acesso posterior pelo dispositivo de destino 14 para decodificação e/ou reprodução.
[0037] No exemplo da figura 1, 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 exemplos, a interface de entrada 28 inclui um receptor e/ou um modem. A interface de entrada 28 pode receber dados de vídeo codificados através do canal 16. O dispositivo de exibição 32 pode ser integrado com ou pode ser externo ao dispositivo de destino 14. Em geral o dispositivo de exibição 32 exibe os dados de vídeo decodificados. O dispositivo de exibição 32 pode compreender 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 outro tipo de dispositivo de exibição.
[0038] 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 circuitos disponíveis, 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, hardware ou quaisquer combinações dos mesmos. Se as técnicas forem implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio de armazenamento adequado, não transitório e legível por computador e pode executar as instruções no hardware utilizando um ou mais processadores para realizaras técnicas dessa descrição. Qualquer um dos acima (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado como sendo um ou mais processadores. 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.
[0039] Essa descrição pode se referir geralmente ao codificador de vídeo 20 "sinalizando" ou "transmitindo" determinada informação para outro dispositivo, tal como o decodificador de vídeo 30. O termo "sinalização"ou "transmitindo" pode geralmente se referir à comunicação dos elementos de sintaxe e/ou outros dados utilizados para decodificar os dados de vídeo comprimidos. Tal comunicação pode ocorrer em tempo real ou quase real. Alternativamente, tal comunicação pode ocorrer através de uma abrangência de tempo, tal como pode ocorrer quando do armazenamento de elementos de sintaxe para um meio de armazenamento legível por computador em uma sequência de bits codificada no momento da codificação, que então podem ser recuperados por um dispositivo de decodificação a qualquer momento depois de serem armazenados nesse meio.
[0040] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 operam de acordo com o padrão de compressão de vídeo. Padrões de codificação de vídeo ilustrativos incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC, incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Múltiplas Visualizações (MVC).
[0041] Adicionalmente, um novo padrão de codificação de vídeo, isso é, a Codificação de Vídeo de Alta Eficiência (HEVC), tem sido recentemente desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG). A última especificação de rascunho HEVC, e referida como HEVC WD doravante, é o "Relatório de Defeito de Codificação de Vídeo de Alta Eficiência (HEVC) de Wang et al., Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11 14o. Encontro: Viena, AT, de 25 de julho a 2 de agosto de 2013 e disponível a partir de http://phenix.int- evry.fr/jct/doc end user/documents/14 Vienna/wg11/JCTVC- N1003-v1.zip. A especificação de HEVC e suas extensões incluindo Extensões de Faixa de Formato (RExt), Escalabilidade (SHVC) e Múltiplas Visualizações (MV-HEVC) é "Draft High Eficciency Video Coding (HEVC) version 2, combined format range extensions (RExt), scalability (SHVC), and multi-view (MV-HEVC) extentions" de Boyce et al., Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 14o. Encontro: Viena, AT, de 30 de junho a 9 de julho de 2014 e disponível a partir de http://phenisint- evry.fr/jct/doc end user/documents/18 Sapporo/wg11/JcTVC- R1013-v6.zip.
[0042] A codificação de vídeo pode ser realizada com base no espaço de cor e formato de cor. Por exemplo, o vídeo colorido tem um papel essencial nos sistemas de multimídia, onde vários espaços de cor são utilizados para representar cor de forma eficiente. Um espaço de cor específica a cor com valores numéricos utilizando os múltiplos componentes. Um espaço de cor popular é o espaço de cor RGB, onde a cor é representada como uma combinação de três valores de componente de cores primarias (isso é, vermelho, verde e azul). Para a compressão de vídeo colorido, o espaço de cor YCbCr foi amplamente utilizado, como descrito em A. Ford e A. Roberts, "Colour space conversions," University of Westminster, Londres, Tech. Rep., agosto de 1998.
[0043] YCBCr pode ser facilmente convertido do espaço de cores RGB através de uma transformação linear e a redundância entre os diferentes componentes, isso é, a redundância de componente cruzado, é significativamente reduzida no espaço de cores YCBCr. Uma vantagem de YCbCr é a compatibilidade retroativa com a TV em preto e branco visto que o sinal Y transporta a informação de luminescência. Adicionalmente, a largura de banda de crominância pode ser reduzida pela subamostragem dos componentes Cb e Cr no formato de amostragem de crominância 4:2:0 com um impacto subjetivo significativamente menor do que a subamostragem em RGB. Em vista dessas vantagens, YCbCr tem sido o espaço de cor mais importante na compressão de vídeo. Existe também outro espaço de cor, tal como YCoCg, utilizado na compressão de vídeo. Nessa descrição, independentemente do espaço de cor real utilizado, Y, Cb, Cr são utilizados para representar os três componentes de cores no esquema de compressão de vídeo.
[0044] Na amostragem 4:2:0, cada um dos dois conjuntos de crominância possui metade da altura e metade da largura do conjunto de luminescência. As localizações relativas vertical e horizontal nominais das amostras de luminescência e crominância nas imagens são ilustradas na figura 4.
[0045] Em HEVC e outros padrões de codificação de vídeo, uma sequência de vídeo inclui tipicamente uma série de imagens. As imagens também são referidas como "quadros". Uma imagem pode incluir três conjuntos de amostras, denotados SL, SCb e SCr. SL é um conjunto bidimensional (isso é, um bloco) de amostras de luminescência. SCb é um conjunto bidimensional de amostras de crominância Cb. SCr é um conjunto bidimensional de amostras de crominância Cr. Amostras de crominância também podem ser referidas aqui como amostras cromáticas. Em outros casos, uma imagem pode ser monocromática e pode incluir apenas um conjunto de amostras de luminescência.
[0046] Para se gerar uma representação codificada de uma imagem, o codificador de vídeo 20 pode gerar um conjunto de unidades de árvore de codificação (CTUs). Cada uma das CTUs pode ser um bloco de arvore de codificação de amostras de luminescência, dois blocos de árvore de codificação correspondentes de amostras de crominância, e estruturas de sintaxe utilizadas para codificar as amostras dos blocos de árvore de codificação. Um bloco de árvore de codificação pode ser um bloco N x N de amostras. Uma CTU também pode ser referida como um "bloco de árvore"ou uma "unidade de codificação maior" (LCU). As CTUs de HEVC podem ser amplamente análogas aos macro blocos de outros padrões, tal como H.264/AVC. No entanto, uma CTU não está necessariamente limitada a um tamanho em particular e pode incluir uma ou mais unidades de codificação (CUs). Uma fatia pode incluir um número inteiro de CTUs ordenadas consecutivamente na digitalização raster.
[0047] Para se gerar uma CTU codificada, o codificador de vídeo 20 pode realizar de forma recursiva a partição quad-tree nos blocos de árvore de codificação de uma CTU para dividir os blocos de árvore de codificação em blocos de codificação. Um bloco de codificação é um bloco N x N de amostras. Uma CU pode ser um bloco de codificação de amostras de luminescência e dois blocos de codificação correspondentes de amostras de crominância de uma imagem que possui um conjunto de amostras de luminescência, um conjunto de amostras Cb e um conjunto de amostras Cr, e estruturas de sintaxe utilizadas para codificar as amostras dos blocos de codificação. O codificador de vídeo 20 pode dividir um bloco de codificação de uma CU em um ou mais blocos de previsão. Um bloco de previsão pode ser um bloco retangular (isso é, quadrado ou não quadrado) de amostras no qual a mesma previsão é aplicada. Uma unidade de previsão (PU) de uma CU pode ser um bloco de previsão de amostras de luminescência, dois blocos de previsão correspondentes de amostras de crominância de uma imagem, e estruturas de sintaxe utilizadas para prever as amostras de bloco de previsão. O codificador de vídeo 20 pode gerar luminescência de previsão, blocos Cb e Cr para luminescência, blocos de previsão Cb e Cr de cada PU da CU.
[0048] O codificador de vídeo 20 pode utilizar intraprevisão, interprevisão, ou previsão de modelo linear (LM), para citar alguns exemplos, para gerar (por exemplo, determinar) os blocos de previsão para uma PU. Se o codificador de vídeo 20 utilizar intraprevisão para gerar os blocos de previsão de uma PU, o codificador de vídeo 20 pode gerar os blocos de previsão da PU com base nas amostras decodificadas da imagem associadas com a PU.
[0049] Se o decodificador de vídeo 20 utilizar interprevisão para gerar (por exemplo, determinar) os blocos de previsão de uma PU, o codificador de vídeo 20 pode gerar os blocos de previsão da PU com base nas amostras decodificadas de uma ou mais imagens além da imagem associada à PU. O codificador de vídeo 20 pode utilizar a uniprevisão ou biprevisão para gerar os blocos de previsão para uma PU, a PU pode ter um vetor de movimento singular (MV). Quando o codificador de vídeo 20 utilizar biprevisão para gerar os blocos de previsão para uma PU, a PU pode ter duas MVs.
[0050] Depois que o codificador de vídeo 20 gera, os blocos Cb e Cr de luminescência de previsão para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar um bloco residual de luminescência para a CU. Cada amostra no bloco residual de luminescência de CU indica uma diferença entre uma amostra de luminescência em um dos blocos de luminescência de previsão de CU e uma amostra correspondente no bloco de codificação de luminescência original de CU. Adicionalmente, o codificador de vídeo 20 pode gerar um bloco residual Cb para a CU. Cada amostra no bloco residual Cb de CU pode indicar uma diferença entre uma amostra Cb em um dos blocos Cb de previsão de CU e uma amostra correspondente no bloco de codificação de Cb original de CU. O codificador de vídeo 20 também pode gerar um bloco residual Cr para a CU. Ada amostra no bloco residual Cr da CU pode indicar uma diferença entre uma amostra Cr em um dos blocos Cr de previsão de CU e uma amostra correspondente no bloco de codificação Cr original de CU.
[0051] Em alguns exemplos, para um bloco de crominância, em vez de se determinar um bloco de previsão para intra ou interprevisão, o codificador de vídeo 20 pode determinar um bloco de previsão com base em um bloco de luminescência reconstruído correspondente, para o modo de previsão LM. O decodificador de vídeo 30 pode, de forma similar, determinar um bloco de previsão com base em um bloco de luminescência reconstruído correspondente. O bloco de luminescência correspondente ao bloco de luminescência que foi parte da unidade (por exemplo, unidade de codificação ou unidade de previsão) do qual o bloco de crominância atual foi determinado. O codificador de vídeo 20 pode determinar o residual entre o bloco de crominância e esse bloco de previsão gerado a partir de um bloco de luminescência reconstruído correspondente.
[0052] Adicionalmente, o codificador de vídeo 20 pode utilizar a partição quad-tree para decompor os blocos residuais de luminescência, Cb e Cr de uma CU em um ou mais blocos de transformação de luminescência, Cb e Cr. Um bloco de transformação pode ser um bloco retangular de amostras no qual a mesma transformação é aplicada. Uma unidade de transformação (TU) de uma CU pode ser um bloco de transformação de amostras de luminescência, dois blocos de transformação correspondentes de amostras de crominância, e estruturas de sintaxe utilizadas para transformar as amostras de bloco de transformação. Dessa forma, cada TU de uma CU pode ser associada com um bloco de transformação de luminescência, um bloco de transformação Cb, e um bloco de transformação Cr. O bloco de transformação de luminescência associado com a TU ode ser um sub-bloco do bloco residual de luminescência de CU. O bloco de transformação Cb pode ser um sub-bloco do bloco residual Cb da CU. O bloco de transformação Cr pode ser um sub-bloco do bloco residual Cr de CU.
[0053] O codificador de vídeo 20 pode aplicar uma ou mais transformações a um bloco de transformação de luminescência de uma TU para gerar um bloco de coeficientes de luminescência para a TU. Um bloco de coeficientes pode ser um conjunto bidimensional de coeficientes de transformação. Um coeficiente de transformação pode ser uma quantidade escalar. O decodificador de vídeo 20 pode aplicar uma ou mais transformações a um bloco de transformação Cb de uma TU para gerar um bloco de coeficientes Cb para TU. O codificador de vídeo 20 pode aplicar uma ou mais transformações a um bloco de transformação Cr de uma TU para gerar um bloco de coeficientes Cr parra a TU.
[0054] Depois da geração de um bloco de coeficiente (por exemplo, um bloco de coeficientes de luminescência, um bloco de coeficiente Cb ou um bloco de coeficiente Cr), o codificador de vídeo 20 pode quantizar o bloco de coeficientes. A quantização se refere geralmente a um processo no qual os coeficientes de transformação são quantizados para reduzir possivelmente a quantidade de dados utilizada para representar os coeficientes de transformação, fornecendo compressão adicional. Depois que o codificador de vídeo 20 quantiza um bloco de coeficientes, o codificador de vídeo 20 pode codificar por entropia elementos de sintaxe indicando os coeficientes de transformação quantizados. Por exemplo, o codificador de vídeo 20 pode realizar a Codificação Aritmética Binária Adaptativa de Contexto (CABAC) nos elementos de sintaxe indicando os coeficientes de transformação quantizados. O codificador de vídeo 20 pode enviar os elementos de sintaxe codificados por entropia em uma sequência de bits.
[0055] O codificador de vídeo 20 pode enviar uma sequência de bits que inclui elementos de sintaxe codificados por entropia. A sequência de bits pode incluir uma representação codificada de dados de vídeo. Por exemplo, a sequência de bits pode incluir uma sequência de bits que forma uma representação de imagens codificadas e dados associados. A sequência de bits pode compreender uma sequência de unidades de camada de abstração de rede (NAL). Cada uma das unidades NAL inclui um cabeçalho de unidade NAL e encapsula uma carga útil de sequência de byte bruto (RBSP). O cabeçalho de unidade NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade NAL. O código de tipo de unidade NAL especificado pelo cabeçalho de unidade NAL de uma unidade NAL indica o tipo de unidade NAL. Uma RBSP pode ser uma estrutura de sintaxe contendo um número inteiro de bytes que é encapsulado dentro de uma unidade NAL. Em alguns casos, uma RBSP inclui zero bits.
[0056] Diferentes tipos de unidades NAL podem encapsular diferentes tipos de RBSPs. Por exemplo, um primeiro tipo de unidade NAL pode encapsular uma RBSP para um conjunto de parâmetros de sequência (SPS), um segundo tipo de unidade NAL pode encapsular uma RBSP para um conjunto de parâmetros de imagens (PPS), um terceiro tipo de unidade NAL pode encapsular uma RBSP para uma fatia codificada, um quarto tipo de unidade NAL pode encapsular uma RBSP para SEI, e assim por diante. As unidades NAL que encapsulam RBSPs para dados de codificação de vídeo (em oposição às RBSPs para conjuntos de parâmetros e mensagens SEI) podem ser referidas como unidades NAL de camada de codificação de vídeo (VCL).
[0057] O decodificador de vídeo 30 pode receber uma sequência de bits gerada pelo codificador de vídeo 20. Adicionalmente, o decodificador de vídeo 30 pode analisar a sequência de bits para decodificar os elementos de sintaxe a partir da sequência de bits. O decodificador de vídeo 30 pode reconstruir as imagens de dados de vídeo com base pelo menos em parte nos elementos de sintaxe decodificados a partir da sequência de bits. O processo para reconstruir os dados de vídeo pode ser geralmente recíproco ao processo realizado pelo codificador de vídeo 20. Por exemplo, o decodificador de vídeo 30 pode utilizar MVs de PUs para determinar os blocos de previsão para as PUs de uma CU atual. Como outro exemplo, para o modo de previsão LM, o decodificador de vídeo 30 pode determinar o bloco de previsão para um bloco de crominância com base em amostras reconstruídas de um bloco de luminescência correspondente. Adicionalmente, o decodificador de vídeo 30 pode inverter os blocos de coeficiente de transformação por quantização associados com as TUs da CU atual. O decodificador de vídeo 30 pode realizar as transformações inversa nos blocos de coeficientes de transformação para reconstruir os blocos de transformação associados com as TUs da CU atual.
[0058] O decodificador de vídeo 30 pode reconstruir os blocos de codificação da CU atual pela adição de amostras dos blocos de previsão para PUs da CU atual para corresponder as amostras dos blocos de transformação das TUs da CU atual. Pela reconstrução dos blocos de codificação para cada CU de uma imagem, o decodificador de vídeo 30 pode reconstruir a imagem.
[0059] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para realizar a codificação com base em modelo linear (LM). A seguir encontra-se uma descrição da codificação por previsão com base em LM. Por exemplo, apesar de a redundância de competência cruzada ser significativamente reduzida no espaço de cor YCbCr, a correlação entre os três componentes de cor ainda existe. Vários métodos foram estudados para se aperfeiçoar o desempenho de codificação de vídeo pela redução adicional da correlação.
[0060] Na codificação de vídeo de crominância 4:2:0, um método chamado modo de previsão de Modelo Linear (LM) foi bem estudado, durante o desenvolvimento do padrão HEVC. Ver J. Chen, V. Seregin, W.-J Han, J.-S Kim, B. -M. Joen, "CE6.a.4: Chroma intra prediction by reconstructed luma samples", Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, JCTVC-E266, 5o. Encontro: Genebra, de 16 a 23 de março de 2011, disponível em http://phenix.int- evry.fr/jct/doc end user/current document.php?id=2196e referido como JCTVC-E266 doravante.
[0061] Com o modo de previsão LM, as amostras de crominância são previstas com base nas amostras de luminescência reconstruídas do mesmo bloco pela utilização de um modelo linear como segue: onde predc(i,j) representa a previsão de amostras de crominância em um bloco e recL(i,j) representa as amostras de luminescência reconstruídas amostradas descendentemente do mesmo bloco. Os parâmetros a e ß são derivados de amostras reconstruídas causais em torno do bloco atual. Se o tamanho de bloco de crominância for denotado por N x N, então ambos i e j estão dentro da faixa [0, N).
[0062] Os parâmetros a e ß na equação (1) são derivados pela minimização de erro de regressão entre a luminescência reconstruída vizinha e as amostras de crominância em torno do bloco atual. E os parâmetros a e ß são solucionados como segue. onde xi são amostras de referência de luminescência reconstruídas amostradas descendentemente, yi são amostras de referência de crominância reconstruídas, e lé a quantidade de amostras de referência. Para um bloco de crominância N x N alvo, quando ambas as amostras causais esquerda e acima estão disponíveis, o número total de amostras envolvidas lé igual a 2N; quando apenas as amostras causais esquerda ou acima estão disponíveis, o número total de amostras envolvidas lé igual a N.
[0063] A figura 5 é um diagrama conceitual ilustrando as localizações ilustrativas para as quais os parâmetros de escalonamento utilizados para escalonar as amostras do bloco de luminescência amostrado descendentemente reconstruído são derivadas. Por exemplo, a figura 5 ilustra um exemplo de amostragem 4:2:0, e os parâmetros de escalonamento são a e ß.
[0064] Em geral, quando o modo de previsão LM é aplicado, o codificador de vídeo 20 e o decodificador de vídeo 30 podem invocar as seguintes etapas. O codificador de vídeo 20 e o decodificador de vídeo 30 pode amostrar descendentemente as amostras de luminescência vizinhas. O codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar os parâmetros lineares (isso é, a e ß) (também referidos como parâmetros de escalonamento). O codificador de vídeo 20 e o decodificador de vídeo 30 podem amostrar descendentemente o bloco de luminescência atual e derivar a previsão (por exemplo, bloco de previsão) do bloco de luminescência amostrado descendentemente e parâmetros lineares (isso é, parâmetros de escalonamento).
[0065] Pode haver várias formas nas quais se amostrar descendentemente. O seguinte descreve formas ilustrativas nas quais a amostragem descendente pode ser realizada.
[0066] Em JCTVC-E266, como descrito acima, quando da realização do modo de previsão LM, o bloco de luminescência atual amostrado descendentemente e o bloco de luminescência vizinho amostrado descendentemente são necessários. O bloco de luminescência atual amostrado descendentemente é utilizado para derivar o bloco de previsão para a codificação de crominância enquanto o bloco de luminescência vizinho amostrado descentemente é utilizado para derivação de parâmetros (isso é, a e ß).
[0067] Visto que a razão de amostragem típica de componentes de crominância é metade do componente de luminescência e possui uma diferença de fase de amostra de 0,5 na direção vertical na amostragem 4:2:0, a luminescência reconstruída do bloco atual é amostrada descendentemente na direção vertical e subamostrada na direção horizontal para combinar o tamanho e fase do sinal de crominância, como segue: onde RecLOrig [] indica a amostra de luminescência reconstruída original.
[0068] A figura 6 é um diagrama conceitual ilustrando um exemplo de posições de luminescência e posições de crominância para amostras de amostragem descendente de um bloco de luminescência para gerar um bloco de previsão. Como apresentado na figura 6, uma amostra de crominância, representada pelo triângulo preenchido, é prevista a partir de duas amostras de luminescência, representadas pelos dois círculos preenchidos, pela aplicação do filtro [1,1]. O filtro [1,1] é um exemplo de um filtro de 2 saídas. Em outras palavras, para amostrar descendentemente um bloco de luminescência reconstruído, a equação (5) inclui um filtro de 2 saídas [1,1] embutido, como representado por Re cLOrig [2i, 2j] sendo uma saída e Re cLOrig [2i, 2j +1] sendo a outra saída. Uma saída do filtro representa um valor de amostras de entrada utilizadas para amostragem descendente, onde na equação (5), dois valores do bloco de luminescência reconstruído são adicionados juntos e alterados para a direita para gerar o bloco de luminescência amostrado descendentemente. De acordo, como um exemplo, o codificador de vídeo 20 ou decodificador de vídeo 30 pode realizar as operações da equação (5) para determinar o bloco de luminescência amostrado descendentemente.
[0069] Para a amostragem do bloco de luminescência vizinho, quando as amostras vizinhas estão no topo do bloco de luminescência atual, o processo de amostragem descendente é definido como:
[0070] Quando as amostras vizinhas estão à esquerda do bloco de luminescência atual, o processo de amostragem descendente é definido como:
[0071] O filtro de 2 saídas, isso é, [1,1], pode ser igual ao que tem sido utilizado no exemplo ilustrado na figura 6. De acordo, como um exemplo, o codificador de vídeo 20 ou o decodificador de vídeo 30 podem realizar as operações das equações (6) e (7) para determinar os blocos de luminescência vizinhos amostrados descendentemente que são vizinhos do bloco de luminescência.
[0072] Outras técnicas de amostragem descendente também foram propostas. Em Yi-Jen Chiu, Yu Han, Lidong Xu, Wenhao Zhang, Hong Jiang, "Cross-channel techniques to improve intra chroma prediction", Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, JCTVC-F502, 6o. Encontro: Torino, IT, de 14 a 22 de julho de 2011, disponível a partir de http://phenix.int- evry.fr/jct/doc end user/current document.php?id=2979e referido como JCTVC-F502, em vez de utilizar o filtro de duas saídas, a filtragem bidimensional com 6 saídas é aplicada a ambos o bloco de luminescência atual e o bloco de luminescência vizinho. O conjunto de coeficientes de filtro bidimensional é:
[0073] As amostras de luminescência amostradas descendentemente são derivadas pela equação (9):
[0074] Por exemplo, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode realizar as operações da equação (9) para determinar o bloco de luminescência amostrado descendentemente. A equação (9) inclui um filtro de 6 saídas embutido, como representado por [1, 2, 1; 1, 2, 1] com Re cLOrig [2i, 2j]; Re cLOrig [2i, 2j +l], Re cLOrig [2i, 2j-1] Re cLOrig [2i + 1, 2j], Re cLOrig [2i + 1, 2j +1], e Re cLOrig [2i + 1, 2j — 1] como amostras de 6 entradas. Uma saída do filtro representa um número de amostras de entrada utilizadas para amostragem descendente, onde na equação (9), seis valores do bloco de luminescência reconstruído são utilizados para gerar o bloco de luminescência amostrado descendentemente.
[0075] A figura 7 é um diagrama conceitual ilustrando outro exemplo de posições de luminescência e posições de crominância para amostragem descendente de amostras de um bloco de luminescência para geração de um bloco de previsão. Como apresentado na figura 7, uma amostra de crominância, representada pelo triângulo preenchido, é prevista a partir de seis amostras de luminescência, representadas pelos seis círculos preenchidos, pela aplicação de um filtro de 6 saídas.
[0076] Visto que o previsor de uma amostra de crominância é derivado utilizando-se a função linear, como definido na equação (1), pode ser observado que quando o filtro de 6 saídas é aplicado, o previsor de uma amostra de crominância se baseia nas seis amostras de luminescência vizinhas. Quando da combinação das equações (1) e (9), o resultado é a equação a seguir (10);
[0077] No texto a seguir, a amostra amostrada descendentemente recL(i,j) é chamada de amostra de luminescência amostrada descendentemente correspondente para a amostra de crominância localizada em (i,j). Por exemplo, devido à amostragem 4:2:0, um bloco de luminescência 2N x 2N corresponde a um bloco de crominância N x N. Com a amostragem descendente, os blocos de luminescência 2N x 2N se tornam um bloco de luminescência amostrado descendentemente N x N. Esse bloco de luminescência amostrado descendentemente N x N é referido como recL(i,j) e corresponde ao bloco de crominância N x N.
[0078] Adicionalmente, apesar de os exemplos acima serem descritos com relação à amostragem 4:2:0, as técnicas descritas nessa descrição não estão limitadas a isso. Por exemplo, as técnicas descritas nessa descrição também podem ser aplicáveis à amostragem 4:2:2. De acordo, os exemplos com relação a 4:2:0 são fornecidos meramente como uma forma de auxiliar na compreensão.
[0079] Adicionalmente, em alguns exemplos, as técnicas descritas nessa descrição podem ser aplicáveis à amostragem 4:4:4 também. Por exemplo, na amostragem 4:4:4, o bloco de crominância não é subamostrado com relação ao bloco de luminescência. No entanto, pode ser possível se determinar um bloco de previsão para o bloco de crominância em tais exemplos também. Por exemplo, o bloco de luminescência pode ser filtrado e o bloco filtrado pode ser utilizado como um bloco de previsão para o bloco de crominância. Nesses exemplos, a amostragem descendente do bloco de luminescência pode não ser necessária. Como explicado em maiores detalhes, as técnicas ilustrativas descrevem a seleção de um filtro aplicado às amostras do bloco de luminescência com base em uma localização do bloco de crominância. As técnicas para seleção de um filtro aplicado às amostras do bloco de luminescência podem ser estendidas a exemplos onde a amostragem descendente não é necessária para previsão LM, tal como para amostragem 4:4:4. Em tais exemplos, o filtro pode não incluir qualquer amostragem descendente de modo que a amostragem 4:4:4 seja preservada. De acordo, a descrição para a amostragem 4:2:0 é um exemplo, e as técnicas são aplicáveis à amostragem 4:4:4 também.
[0080] Ademais, em HEVC, a opção de se dividir uma imagem em regiões retangulares chamadas de tiles foi especificada. A finalidade principal dos tiles é aumentar a capacidade de processamento paralelo em vez de fornecer resiliência a erro. Tiles são regiões decodificáveis independentemente de uma imagem que são codificadas com alguma informação de cabeçalho compartilhada. Tiles podem ser adicionalmente utilizados para fins de acesso aleatório espacial a regiões locais de imagens de vídeo. Uma configuração de tile típica de uma imagem consiste da segmentação da imagem em regiões retangulares com números quase iguais de CTUs em cada tile. Tiles fornecem paralelismo em um nível mais aproximado de detalhamento (imagem/subimagem), e nenhuma sincronização sofisticada de sequências é necessária para seu uso.
[0081] Podem existir determinados problemas/questões com as técnicas do modo de previsão LM. Por exemplo, o processo de amostragem descendente invocado no modo de previsão LM é importante para o aperfeiçoamento do desempenho de codificação. No entanto, os filtros fixos, tal como o filtro de 2 saídas e os filtros de 6 saídas, limitam de desempenho de codificação. Sequências ou regiões diferentes dentro de uma imagem podem ter características diferentes, e o mesmo filtro aplicado a todas as imagens podem ser subideais. Quando as amostras de luminescência reconstruídas utilizadas no modo de previsão LM são localizadas em um tile diferente, como manusear esse caso é desconhecido.
[0082] Para solucionar os problemas mencionados acima, a descrição descreve as seguintes técnicas. As técnicas podem se aplicar individualmente, ou qualquer combinação das mesmas pode ser aplicada. Em geral, o codificador de vídeo 20 e o decodificador de vídeo 30 podem realizar essas técnicas ilustrativas como parte da codificação ou decodificação de um bloco de crominância no modo de previsão de modelo linear (LM). Por motivos de facilidade, as técnicas são descritas com relação a um codificador de vídeo, exemplos dos quais incluem o codificador de vídeo 20 e o decodificador de vídeo 30.
[0083] Por exemplo, em vez de estar limitado à utilização apenas de um filtro de duas saídas ou um filtro de seis saídas para amostrar descendentemente o bloco de luminescência, um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode determinar um filtro a partir de um conjunto de filtros que é utilizado para amostragem descendente de bloco de luminescência. Como um exemplo, pode haver um número x de diferentes filtros que o codificador de vídeo pode utilizar para amostragem descendente. Por exemplo, pode haver um filtro de uma saída, um filtro de duas saídas, um filtro de três saídas e assim por diante. Ademais, para cada filtro, as saídas específicas podem ser diferentes (por exemplo, amostras de luminescência utilizadas para um primeiro filtro de duas saídas são diferentes das amostras de luminescência utilizadas para um segundo filtro de duas saídas). Em alguns dos exemplos descritos nessa descrição, o conjunto de filtros inclui dois filtros; no entanto, mais de dois filtros dos quais o codificador de vídeo determinar qual filtro aplicar para amostragem descendente do bloco de luminescência são possíveis.
[0084] O codificador de vídeo pode utilizar vários critérios pelos quais o codificador de vídeo determina o filtro a ser aplicado. Como um exemplo, o codificador de vídeo determina qual filtro dentre o conjunto de filtros aplicar com base em uma localização do bloco de crominância. Se o bloco de crominância criar um limite esquerdo da imagem, CU, PU ou TU (por exemplo, o limite esquerdo da imagem CU, PU ou TU é igual à borda de bloco de crominância), o codificador de vídeo pode utilizar um primeiro filtro para amostragem descendente de amostras de luminescência do bloco de luminescência que corresponde às amostras de crominância do bloco de crominância que estão no limite esquerdo. As amostras do bloco de crominância que estão no limite esquerdo se referem às amostras do bloco de crominância que estão mais perto do limite esquerdo incluindo as amostras que são diretamente no limite. O primeiro filtro pode ser aplicado a N amostras mais próximas do limite (por exemplo, a amostra mais próxima do limite, uma próxima a essa amostra e N amostras dessas).
[0085] Em alguns casos, o codificador de vídeo pode aplicar o primeiro filtro a todas as amostras de luminescência do bloco de luminescência, ao invés de apenas às amostras que correspondem às amostras de crominância que são vizinhas do limite esquerdo, no entanto, as técnicas descritas nessa descrição não estão limitadas a isso. Para todos os outros casos, o codificador de vídeo pode utilizar um segundo filtro diferente para a amostragem descendente do bloco de luminescência.
[0086] Por exemplo, na amostragem 4:2:0, quatro amostras de luminescência correspondem a uma amostra de crominância. De acordo, o codificador de vídeo pode determinar qual amostra de crominância corresponde a quais amostras de luminescência. Quando os filtros com saída maior são utilizados, uma amostra de crominância pode corresponder a mais de quatro amostras de luminescência. Para as amostras de luminescência que correspondem a uma amostra de crominância em um limite esquerdo (imediatamente adjacente ou dentro de um número de amostras), o codificador de vídeo pode aplicar um primeiro filtro às amostras de luminescência correspondentes para amostrar descendentemente o bloco de luminescência e para as amostras de luminescência que correspondem a uma amostra de crominância que não está em um limite esquerdo (não é imediatamente adjacente ou não está dentro de um número de amostras), o codificador e vídeo pode aplicar um segundo filtro às amostras de luminescência correspondentes para amostrar descendentemente o bloco de luminescência.
[0087] Em alguns exemplos, o primeiro filtro pode incluir menos saídas (por exemplo, número de amostras sobre as quais o filtro se estende) do que o segundo filtro. Como um exemplo, o primeiro filtro é o filtro de duas saídas e o segundo filtro é o filtro de seis saídas. Nesse exemplo, o codificador de vídeo pode realizar as operações da equação (5) para determinar as amostras de luminescência amostradas descendentemente de um bloco de luminescência no caso de as amostras de crominância correspondentes do bloco de crominância estarem no limite esquerdo, e podem realizar as operações da equação (9) para determinar as amostras de luminescência amostradas descendentemente do bloco de luminescência no caso de as amostras de crominância correspondentes do bloco de crominância não estarem no limite esquerdo. De acordo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes, o codificador de vídeo pode aplicar um filtro diferente às amostras de luminescência de um bloco de luminescência que correspondem às amostras de crominância de um bloco de crominância localizado no limite esquerdo da imagem, ou limite esquerdo da unidade de codificação (CU)/unidade de previsão (PU)/unidade de transformação (TU), em comparação com o filtro aplicado a outras amostras do bloco de luminescência que correspondem às amostras de crominância que não estão no l imite esquerdo da imagem ou limite esquerdo de CU, PU ou TU. As amostras de crominância que estão no limite esquerdo se referem às amostras de crominância imediatamente adjacentes ao limite esquerdo ou dentro de um determinado número de amostras a partir do limite esquerdo.
[0088] Utilizando-se diferentes filtros é possível que o codificador de vídeo utilize adequadamente valores de amostra disponíveis. Por exemplo, utilizando-se um filtro de seis saídas para amostras de luminescência que correspondem às amostras de crominância no limite esquerdo da imagem, CU, PU ou TU podem resultar na solicitação de que o codificador de vídeo utilize os valores de amostras de luminescência que não são parte do bloco de luminescência para amostrar descendentemente e pode resultar no codificador de vídeo precisar realizar algum processamento adicional para solucionar a falta de amostras de luminescência (por exemplo, valores de amostra de luminescência de enchimento para gerar valores para amostras que não são parte do bloco de luminescência). No entanto, utilizando-se um filtro de duas saídas no limite esquerdo pode não ser necessário que o codificador de vídeo utilize os valores de amostra de luminescência que não fazem parte do bloco de luminescência para amostragem descendente. De acordo, apesar de os filtros de duas saídas e seis saídas serem descritos, filtros com outros tamanhos para amostragem descendente podem ser possíveis considerando-se a prevenção da necessidade de se exigir amostras de luminescência que não fazem parte do bloco de luminescência (por exemplo, para se evitar a necessidade de se preencher as amostras de luminescência no limite esquerdo).
[0089] Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificador de vídeo aplica um filtro diferente às amostras de luminescência que corresponde às amostras de crominância localizadas no limite esquerdo da imagem em comparação com o filtro aplicado a outras amostras de luminescência que correspondem às amostras de crominância não localizadas no limite esquerdo da imagem. Em um exemplo, o comprimento (por exemplo, saída) do filtro (isso é, o n úmero de amostras sobre as quais o filtro se estende) para derivar as amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância no limite esquerdo da imagem é menor do que o comprimento do filtro para derivar as amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância que não estão no limite esquerdo da imagem (por exemplo, duas saídas para o limite esquerdo e seis saídas para todos os outros).
[0090] Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificador de vídeo aplica um filtro diferente para amostras de luminescência das amostras de crominância localizadas no limite esquerdo CU em comparação com o filtro aplicado a outras amostras de luminescência dentro da CU atual. Em um exemplo, o comprimento (por exemplo, saídas) do filtro (isso é, o número de amostras sobre as quais o filtro se estende) para derivar as amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância no limite esquerdo da CU é menor do que o comprimento do filtro para derivar as amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância que não estão no limite esquerdo da CU (por exemplo, duas saídas para o limite esquerdo e seis saídas para todos os outros).
[0091] Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificador de vídeo aplica um filtro diferente para as amostras de crominância localizadas no limite esquerdo da PU em comparação com o filtro aplicado a outras amostras dentro da PU atual. Em um exemplo, o comprimento (por exemplo, saídas) do filtro (isso é, o número de amostras sobre as quais o filtro se estende) para derivar as amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância no limite esquerdo da PU é menor do que o comprimento do filtro para derivar as amostras de luminescência amostradas descendentemente correspondentes de amostras de crominância que não estão no limite esquerdo da PU (por exemplo, duas saídas para o limite esquerdo e seis saídas para todos os outros).
[0092] Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificador de vídeo pode aplicar um filtro diferente para as amostras de crominância localizadas no limite esquerdo da TU em comparação com o filtro aplicado a outras amostras dentro da TU atual. Em um exemplo, o comprimento (por exemplo, saídas) do filtro (isso é, o número de amostras sobre as quais o filtro se estende) para derivar as amostras de luminescência amostradas descendentemente correspondentes de amostras de crominância no limite esquerdo da TU é menor do que o comprimento do filtro para derivar as amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância que não estão no limite esquerdo da TU (por exemplo, duas saídas para o limite esquerdo e seis saídas para todos os outros).
[0093] Em alguns casos, pode não haver amostras de luminescência correspondentes na mesma imagem. A seguir são descritas algumas técnicas ilustrativas para se solucionar tais situações. Por exemplo, apesar de a prevenção de enchimento poder ser benéfica em alguns casos, em alguns outros casos, pode não ser possível se evitar o enchimento. Por exemplo, visto que algumas amostras de luminescência estão indisponíveis (por exemplo, fora da imagem), o codificador de vídeo pode substituir os valores de amostra de enchimento por essas amostras indisponíveis e realizar a amostragem descendente com esses valores de amostras de enchimento (por exemplo, amostragem descendente utilizando os valores de amostra de luminescência reais para as amostras de luminescência disponíveis e valores de amostras de enchimento para as amostras de luminescência disponíveis). Os valores de amostras de enchimento podem ser valores padrão por exemplo, 2bitdepth onde bitdepth indica a profundidade do bit do componente de luminescência), valores determinados pelo codificador de vídeo 20 e sinalizados para o decodificador de vídeo 30, ou valores determinados com base em alguma técnica implícita que não exija sinalização de informação. A adição de valores de amostra de enchimento pode reduzir a complexidade visto que pode não haver a necessidade de se utilizar filtros separados.
[0094] Durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, quando as amostras de luminescência estão fora de uma imagem, ou uma CU/PU/TU precisa estar envolvida no processo de amostragem descendente, o codificador de vídeo pode primeiramente aplicar uma operação de enchimento seguida por um processo de amostragem descendente. No enchimento das amostras, o codificador de vídeo pode substituir essas amostras que estão fora da tela por valores de amostra de enchimento.
[0095] Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificador de vídeo pode preencher as amostras de luminescência (por exemplo, apenas as amostras de luminescência) que estão localizadas fora da imagem atual. Para todas as outras posições, as amostras reconstruídas são utilizadas. Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificador de vídeo pode preencher as amostras de luminescência que estão localizadas fora da CU atual. Para todas as outras posições, as amostras reconstruídas são utilizadas. Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificador de vídeo pode preencher as amostras de luminescência que estão localizadas fora da PU atual. Para todas as outras posições, as amostras reconstruídas são utilizadas. Como um exemplo, durante o processo de derivação das amostras de luminescência amostradas descendentemente correspondentes das amostras de crominância, o codificado de vídeo pode preencher as amostras de luminescência que estão localizadas fora da TU atual. Para todas as outras posições, as amostras reconstruídas são utilizadas. Nos exemplos acima para enchimento, o mesmo processo de amostragem descendente é aplicado a todas as posições.
[0096] Quando a posição das amostras reconstruídas de luminescência utilizadas no modo de previsão LM está localizada fora da fatia atual ou tile atual, o codificador de vídeo pode marcar tais amostras com indisponíveis (por exemplo, o codificador de vídeo pode determinar que tais amostras estejam indisponíveis). Quando a amostra é marcada como indisponível, o codificador de vídeo pode realizar um ou mais dentre os seguintes:
[0097] As amostras indisponíveis, se utilizadas no processo de amostragem descendente par ao bloco de luminescência vizinho, não são utilizadas no processo de amostragem descendente para o bloco de luminescência vizinho. Alternativamente ou adicionalmente, o filtro pode ser diferente do filtro utilizado para outras amostras. As amostras indisponíveis, se utilizadas no processo de amostragem descendente para um bloco de luminescência atual, não são utilizadas no processo de amostragem descendente para um bloco de luminescência atual. Alternativamente ou adicionalmente, o filtro pode ser diferente do filtro utilizado para outras amostras. As amostras indisponíveis são remarcadas como disponíveis; no entanto, o valor de amostra e modificado para ser o valor de amostra com enchimento ou um valor padrão. Alternativamente ou adicionalmente, o filtro é mantido o mesmo que o filtro utilizado para outras amostras. Em um exemplo, o valor padrão depende da profundidade de bit. Em outro exemplo, o enchimento pode ser da amostra esquerda/direita/acima/abaixo que é marcada como disponível.
[0098] Em geral, para amostras de luminescência que estão em outro tile, o codificador de vídeo pode marcar os pixels fora do limite de tile como indisponíveis e não incluir os mesmos no processo de amostragem descendente. Em alguns exemplos, o codificador de vídeo pode marcar as amostras de luminescência em outro tile como disponíveis, mas utilizar os pixels com enchimento para tais amostras de luminescência em outro tile. Como outro exemplo, o codificador de vídeo pode utilizar valores "estendidos" de enchimento (por exemplo, metade um possível valor com ase na profundidade de bit, logo 8 bits, utilizando 128) para amostras de luminescência em outro tile, em vez de marcar as amostras como indisponíveis.
[0099] Em alguns exemplos, o codificador de vídeo pode permitir uma ou mais das técnicas ilustrativas acima sob condições específicas. Como um exemplo, a condição pode depender do tipo de fatia (por exemplo, quando a fatia atual não é uma fatia intracodificada, o codificador de vídeo aplica as técnicas de acordo com os exemplos descritos nessa descrição). Alternativamente ou adicionalmente, a condição pode depender do tipo de codificação de sua CU vizinha. Por exemplo, quando a CU vizinha é intercodificada, o codificador de vídeo pode permitir uma ou mais das técnicas acima. Alternativamente ou adicionalmente, a condição pode depender das imagens de referência da fatia contendo CU/PU atual. Por exemplo, quando todas as imagens de referência possuem valores POC menores (Contagem de Ordem de Imagem) do que o valor POC de uma imagem atual, o codificador de vídeo pode permitir uma ou mais das técnicas acima.
[00100] Em alguns exemplos, o codificador de vídeo pode aplicar filtros diferentes a componentes de cor de crominância diferentes (Cb ou Cr). Em alguns exemplos, quando o modo de previsão LM é ativado, um ou mais conjuntos de filtro de amostragem descendente podem ser adicionalmente sinalizados em um conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), ou cabeçalho de fatia. Alternativamente ou adicionalmente, uma sintaxe de mensagem de Informação de Aperfeiçoamento Suplementar (SEI) é introduzida para descrever o filtro de amostragem descendente. Alternativamente ou adicionalmente, um filtro de amostragem descendente padrão é definido, por exemplo, o filtro de 6 saídas [1, 2, 1; 1, 2, 1] sem sinalização. Alternativamente ou adicionalmente, uma PU/CU/CU maior pode sinalizar um índice do filtro que é utilizado no modo de previsão LM. Alternativamente ou adicionalmente, a utilização da saída de filtro pode ser derivada imediatamente pelo decodificador de vídeo 30 sem sinalização. Pode haver outras formas de se fornecer suporte de filtro também.
[00101] Em alguns exemplos, em vez de derivar os parâmetros do modelo linear utilizando amostras de luminescência reconstruídas, vizinhas, amostradas descendentemente, o codificador de vídeo pode utilizar as amostras de luminescência reconstruídas, vizinhas originais para derivar os parâmetros. Nesse caso, a previsão de crominância pode ser derivada, como um exemplo, da seguinte equação 11 onde os parâmetros (ai (com i sendo 0 a 5, inclusive) e ß) são obtidos a partir dos blocos de luminescência e crominância reconstruídos vizinhos.
[00102] Em um exemplo adicionalmente, uma restrição é aplicada na qual ai é igual a a(i+3). Em um exemplo, adicionalmente, uma restrição é aplicada a ai sendo igual a a(i+2) com i sendo igual a 0 ou 3. Em um exemplo, essa técnica ilustrativa só pode ser permitida para CUs codificadas maiores por exemplo, o tamanho da CU superior a 16 x 16. Em um exemplo, um ou mais dos parâmetros é restringido a 0.
[00103] Ademais, o codificador de vídeo pode aplicar uma ou mais das técnicas acima também para previsão residual de componente cruzado, onde o resíduo de luminescência amostrado descendentemente é utilizado para prever o residual de crominância. Nesse caso, o processo de amostragem descendente é aplicado ao residual de luminescência reconstruído, como um exemplo.
[00104] A seguir encontra-se uma forma ilustrativa na qual as técnicas descritas nessa descrição podem ser implementadas por um codificador de vídeo. A técnica de implementação ilustrativa não deve ser considerada limitadora.
[00105] Abaixo encontra-se um exemplo para aplicação de diferentes processos de amostragem descendente para amostras no limite esquerdo de imagem. O processo de amostragem descendente para um bloco de luminescência de corrente é definido como segue: - se a amostra de crominância não for localizada no limite esquerdo da imagem, o filtro de 6 saídas, por exemplo [1, 2, 1; 1, 2, 1] é aplicado para derivar a amostra de luminescência amostrada descendentemente correspondente: -Do contrário, se a amostra de crominância for localizada no limite esquerdo da imagem, um filtro de 2 saídas, por exemplo [1; 1] é aplicado para derivar a amostra de luminescência amostrada descendentemente correspondente:
[00106] Em um exemplo offset0 e offset 1 são ambos configurados igual a 0. Em outro exemplo, offset0 é configurado igual a 4 e offset1 é configurado igual a 1.
[00107] A figura 2 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo 20 que pode implementar as técnicas dessa descrição. A figura 2 é fornecida para fins de explicação e não deve ser considerada limitadora das técnicas como exemplificado de forma ampla e descrito nessa descrição. Para fins de explicação, essa descrição descreve o codificador de vídeo 20 no contexto de codificação HEVC. No entanto, as técnicas dessa descrição podem ser aplicáveis a outros padrões de codificação ou métodos.
[00108] O codificador de vídeo 20 inclui o conjunto de circuitos de processamento, e o codificador de vídeo 20 é configurado para realizar uma ou mais das técnicas ilustrativas descritas nessa descrição. Por exemplo, o codificador de vídeo 20 inclui o conjunto de circuitos integrado, e as várias unidades ilustradas na figura 2 podem ser formadas como blocos de circuito de hardware que são interconectadas com um barramento de circuito. Esses blocos de circuito de hardware podem ser blocos de circuito separados ou duas ou mais das unidades podem ser combinadas em um bloco de circuito de hardware comum. Os blocos de circuito de hardware podem ser formados como uma combinação de componentes elétricos que formam os blocos de operação tal como unidades lógicas aritméticas (ALUs), unidades de função elementar (EFUs), além de blocos lógicos tal como AND, OR, NAND, NOR, XOR, XNOR, e outros blocos lógicos similares.
[00109] Em alguns exemplos, uma ou mais das unidades ilustradas na figura 2 podem ser fornecidas por unidades de software sendo executadas no conjunto de circuitos de processamento. Em tais exemplos, o código de objeto para essas unidades de software é armazenado na memória. Um sistema de operação pode fazer com que o codificador de vídeo 20 recupere o código de objeto e execute o código de objeto, o que faz com que o codificador de vídeo 20 realize as operações para implementar as técnicas ilustrativas. Em alguns exemplos, as unidades de software podem ser firmware que o codificador de vídeo 20 executa durante a inicialização. De acordo, o codificador de vídeo 20 é um componente estrutural possuindo hardware que realiza as técnicas ilustrativas ou possui software/firmware executados no hardware para especializar o hardware para realizar as técnicas ilustrativas.
[00110] O codificador de vídeo 20 representa um exemplo de um dispositivo que pode ser configurado para realizar as técnicas para codificação de vídeo com base em LM de acordo com vários exemplos descritos nessa descrição. Por exemplo, o codificador de vídeo 20 pode ser configurado para codificar um ou mais blocos utilizando a codificação de vido LM.
[00111] No exemplo da figura 2, o codificador de vídeo 20 inclui uma unidade de processamento por previsão 100, memória de dados de vídeo 101, unidade de geração residual 102, uma unidade de processamento de transformação 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de processamento de transformação inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 114, um armazenador de imagem decodificada 116, e uma unidade de codificação por entropia 118. A unidade de processamento por previsão 100 inclui uma unidade de processamento por interprevisão 120 e uma unidade de processamento por intraprevisão 126. A unidade de processamento por interprevisão 120 inclui uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não ilustrada). O codificador de vídeo 20 também inclui uma unidade de codificação com base em modelo linear (LM) 122 configurada para realizar vários aspectos das técnicas de codificação com base em LM descritas nessa descrição. Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou outros componentes.
[00112] A memória de dados de vídeo 102 pode armazenar dados de vídeo a serem codificados pelos componentes do codificador de vídeo 20. Os dados de vídeo armazenados na memória de dados de vídeo 101 podem ser obtidos, por exemplo, a partir da fonte de vídeo 18. O armazenador de imagem decodificada 116 pode ser uma memória de imagem de referência que armazena dados de vídeo de referência para uso na codificação de dados de vídeo pelo codificador de vídeo 20 (por exemplo, nos modos de intracodificação ou intercodificação). A memória de dados de vídeo 101 e o armazenador de imagem decodificada 116 podem ser formados por qualquer um dentre uma variedade de dispositivos de memória, tal como memória de acesso randômico dinâmica (DRAM), incluindo DRAM sincronizada (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de vídeo 101 e o armazenador de imagem decodificada 116 podem ser fornecidos pelo mesmo dispositivo de memória ou por dispositivos de memória separados. Em vários exemplos, a memória de dados de vídeo 101 pode estar em chip com outros componentes do codificador de vídeo 20, ou fora de chip com relação a esses componentes.
[00113] O codificador de vídeo 20 pode receber dados de vídeo. O codificador de vídeo 20, através da unidade de processamento por previsão 100, pode codificar cada CTU em uma fatia de uma imagem de dados de vídeo. Cada uma das CTUs pode ser associada a blocos de árvore de codificação de luminescência de mesmo tamanho (CTBs) e CTBs correspondentes da imagem. Como parte da codificação de um CTU, a unidade de processamento por previsão 100 pode realizar a partição de quad-tree para dividir CTBs da CTU em blocos progressivamente menores. O menor bloco pode ser o bloco de codificação de CUs. Por exemplo, a unidade de processamento por previsão 100 pode dividir um CTB associado com uma CTU em quatro sub-blocos de mesmo tamanho, dividir um ou mais dos sub-blocos em quatro sub- blocos de mesmo tamanho e assim por diante.
[00114] O codificador de vídeo 20 pode codificar CUs de uma CTU para gerar as representações codificadas das CUs (isso é, CUs codificadas). Como parte da codificação de uma CU a unidade de processamento por previsão 100 pode dividir os blocos de codificação associados com a CU entre uma ou mais PUs da CU. Dessa forma, cada PU pode ser associada com um bloco de previsão de luminescência e blocos de previsão de crominância correspondentes. O codificador de vídeo 20 e o decodificador de vido 30 podem suportar PUs possuindo vários tamanhos. Como indicado acima, o tamanho de uma CU pode se referir ao tamanho do bloco de codificação de luminescência da CU e o tamanho de uma PU pode se referir ao tamanho do bloco de previsão de luminescência da PU. Assumindo-se que o tamanho de uma CU em particular seja de 2N x 2N o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2N x 2N ou N x N para intraprevisão e tamanhos de PU simétricos de 2N x 2N, 2N x N, N x 2N, N x N, ou similares para interprevisão. O codificador de vídeo 20 e o decodificador de vídeo 30 também podem suportar a divisão assimétrica para os tamanhos de PU de 2N x nU, 2N x nD, nL x 2N e nR x 2N para interprevisão.
[00115] A unidade de processamento por interprevisão 120 pode gerar dados de previsão para uma PU pela realização da interprevisão em cada PU de uma CU. Os dados de previsão para a PU podem incluir blocos de previsão da PU e informação de movimento para a PU. A unidade de interprevisão 121 pode realizar diferentes operações para uma PU de uma CU dependendo de se a PU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intraprevistas. Dessa forma, se a PU estiver em uma fatia I, a unidade de interprevisão 121 não realiza a interprevisão na PU. Dessa forma, para os blocos codificados no modo I, o bloco previsão é fornecido utilizando-se previsão espacial a partir de blocos vizinhos codificados previamente dentro do mesmo quadro.
[00116] Se uma PU estiver em uma fatia P, a unidade de estimativa de movimento da unidade de processamento de interprevisão 120 pode buscar as imagens de referência em uma lista de imagens de referência (por exemplo, "RefPicList0") para uma região de referência para a PU. A região de referência para a PU pode ser uma região, dentro de uma imagem de referência, que contém blocos de amostra que se correspondem mais de perto com os blocos de amostra da PU. A unidade de estimativa de movimento pode gerar um índice de referência que indica uma posição de RefPicList0 da imagem de referência contendo a região de referência para a PU. Adicionalmente, a unidade de estimativa de movimento pode gerar um MV que indica um deslocamento espacial entre um bloco de codificação da PU e uma localização de referência associada com a região de referência. Por exemplo, MV pode ser um vetor bidimensional que fornece um desvio das coordenadas na imagem decodificada atual pra coordenadas em uma imagem de referência. A unidade de estimativa de movimento pode enviar o índice de referência e MV como informação de movimento da PU. A unidade de compensação de movimento da unidade de processamento de interprevisão 120 pode gerar os blocos de previsão da PU com base nas amostras reais ou interpoladas na localização de referência indicada pelo vetor de movimento da PU.
[00117] Se uma PU estiver em uma fatia B, a unidade de estimativa de movimento da unidade de processamento por interprevisão 120 pode realizar a uniprevisão ou biprevisão para a PU. Para realizar a uniprevisão para a PU, a unidade de estimativa de movimento pode buscar as imagens de referência de RefPicList0 ou uma segunda lista de imagens de referência ("RefPicList1") para uma região de referência para a PU. A unidade de estimativa de movimento pode enviar, como informação de movimento da PU, um índice de referência que indica uma posição em RefPicList0 ou RefPicList1 da imagem de referência que contém a região de referência, um MV que indica um deslocamento espacial entre um bloco de previsão da PU e uma localização de referência associada com a região de referência, e um ou mais indicadores de direção de previsão que indicam se a imagem de referência está em RefPicList0 ou RefPicList1. A unidade de compensação de movimento da unidade de processamento por interprevisão 120 pode gerar os blocos de previsão da PU com base pelo menos em parte nas amostras reais ou interpoladas na região de referência indicada pelo vetor de movimento da PU.
[00118] Para se realizar a interprevisão bidirecional para uma PU, a unidade de estimativa de movimento pode buscar pelas imagens de referência em RefPicList0 para uma região de referência para a PU e também pode buscar as imagens de referência em RefPicList1 para outra região de referência para a PU. A unidade de estimativa de movimento pode gerar índices de imagem de referência que indicam as posições em RefPicList0 e RefPicList1 das imagens de referência que contêm as regiões de referência. Adicionalmente, a unidade de estimativa de movimento pode gerar MVs que indicam os deslocamentos espaciais entre a localização de referência associada com as regiões de referência e um bloco de amostras da PU. A informação de movimento da PU pode incluir os índices e referência e MVs da PU. A unidade de compensação de movimento da unidade de processamento por interprevisão 120 pode gerar os blocos de previsão da PU com base pelo menos em parte nas amostras reais ou interpoladas nas regiões de referência indicadas pelos vetores de movimento da PU.
[00119] A unidade de codificação com base em LM 122 pode realizar a codificação por previsão de modelo linear (LM). Por exemplo, a unidade de codificação com base em LM 122 pode amostrar descendentemente as amostras de luminescência reconstruídas de um bloco de luminescência que correspondem a um bloco de crominância atual que está sendo codificado. Por exemplo, na amostragem 4:2:0, quatro amostras de luminescência correspondem a um bloco de crominância. As quatro amostras de luminescência que formam um bloco 2 x 2 no canto superior esquerdo da imagem de luminescência correspondem a uma amostra de crominância localizada no canto superior esquerdo da imagem de crominância. A unidade de codificação com base em LM 122 pode escalonar as amostras de luminescência reconstruídas e amostradas descendentemente do bloco de luminescência para gerar um bloco de previsão. A unidade de geração residual 102 pode determinar um bloco residual entre o bloco de crominância e o bloco de previsão. Em alguns exemplos, a unidade de codificação com base em LM 122 pode aplicar tais técnicas como parte da previsão residual de componente cruzado. Nesse caso, o bloco de crominância é um bloco residual de crominância e o bloco de luminescência é um bloco residual de luminescência.
[00120] Nas técnicas descritas nessa descrição, a unidade de codificação LM 122 pode implementar uma ou mais das técnicas ilustrativas acima como parte da amostragem descendente das amostras de luminescência de um bloco de luminescência. Por exemplo, a unidade de codificação com base em LM 122 pode aplicar diferentes filtros para amostragem descendente do bloco de luminescência correspondente com base nas características do bloco de crominância sendo codificado. Exemplos das características do bloco de crominância sendo decodificado incluem a posição do bloco de crominância sendo decodificado. Como outro exemplo, a unidade de codificação com base em LM 122 pode aplicar o enchimento ao bloco de luminescência com base nas amostras que estão fora de um limite particular (por exemplo, imagem, CU, PU ou TU).
[00121] A unidade de processamento por intraprevisão 126 pode gerar dados de previsão para uma PU pela realização da intraprevisão na PU. Os dados de previsão para a PU podem incluir blocos de previsão para a PU e vários elementos de sintaxe. A unidade de processamento por intraprevisão 126 pode realizar a intraprevisão nas PUs nas fatias I, P e B.
[00122] Para realizar a intraprevisão em uma PU, a unidade de processamento por intraprevisão 126 pode utilizar múltiplos modos de intraprevisão para gerar múltiplos conjuntos de dados de previsão para a PU. A unidade de processamento por intraprevisão 126 pode utilizar amostras dos blocos de amostras das PUS vizinhas para gerar um bloco de previsão para uma PU. As PUs vizinhas podem estar acima, acima à direita, acima à esquerda ou à esquerda da PU, assumindo-se uma ordem de codificação da esquerda para a direita e de cima para baixo para PUs, CUs e CTUs. A unidade de processamento por intraprevisão 126 pode utilizar vários números de modos de intraprevisão, por exemplo, 33 modos de intraprevisão direcionais. Em alguns exemplos, o número de modos de intraprevisão pode depender do tamanho da região associada com a PU.
[00123] A unidade de processamento por previsão 100 pode selecionar os dados de previsão para PUs de uma CU a partir de entre os dados de previsão gerados pela unidade de processamento por interprevisão 120 para as PUs, os dados de previsão gerados pela unidade de processamento por intraprevisão 126 para as PUs, ou os dados de previsão gerados pela unidade de codificação com base em LM 122. Em alguns exemplos, a unidade de processamento por previsão 100 seleciona os dados de previsão para as PUs da CU com base nas métricas de taxa/distorção dos conjuntos de dados de previsão. Os blocos de previsão dos dados de previsão selecionados podem ser referidos aqui como blocos de previsão selecionados.
[00124] A unidade de geração residual 102 pode gerar, com base no bloco de codificação de luminescência, Cb e Cr de uma CU e blocos de luminescência de previsão selecionada, Cb e Cr das PUs da CU, blocos residuais de luminescência, Cb e Cr da CU. Por exemplo, a unidade de geração residual 102 pode gerar blocos residuais de CU de modo que cada amostra nos blocos residuais possua um valor igual a uma diferença entre uma amostra em um bloco de codificação da CU e uma amostra correspondente em um bloco de previsão selecionado correspondente de uma PU da CU.
[00125] A unidade de processamento de transformação 104 pode realizar a partição quad-tree para dividir os blocos residuais associados com uma CU em blocos de transformação associados com as TUs da CU. Dessa forma, uma TU pode ser associada com um bloco de transformação de luminescência e dois blocos de transformação de crominância. Os tamanhos e posições dos blocos de transformação de luminescência e crominância de TUs de uma CU podem ou não ser baseados em tamanhos e posições dos blocos de previsão das PUs da CU. Uma estrutura quad-tree conhecida como "quad-tree residual" (RQT) pode incluir nós associados a cada uma das regiões. As TUs de uma CU podem corresponder a nós folha de RQT.
[00126] A unidade de processamento de transformação 104 pode gerar os blocos de coeficiente de transformação para cada TU de uma CU pela aplicação de uma ou mais transformações aos blocos de transformação da TU. A unidade de processamento de transformação 104 pode aplicar várias transformações a um bloco de transformação associado com uma TU. Por exemplo, a unidade de processamento de transformação 104 pode aplicar uma transformação de cosseno discreto (DCT), uma transformação direcional, ou uma transformação conceitualmente similar a um bloco de transformação. Em alguns exemplos, a unidade de processamento de transformação 104 não se aplica às transformações a um bloco de transformação. Em tais exemplos, o bloco de transformação pode ser tratado como um bloco de coeficiente de transformação.
[00127] A unidade de quantização 106 pode quantizar os coeficientes de transformação em um bloco de coeficientes. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes de transformação. Por exemplo, um coeficiente de transformação de bit n pode ser arredondado para baixo para um coeficiente de transformação de bit m durante a quantização, onde n é maior que m. A unidade de quantização 106 pode quantizar um bloco de coeficiente associado a uma TU de uma CU com base em um valor de parâmetro de quantização (QP) associado com a CU. O codificador de vídeo 20 pode ajustar o grau de quantização aplicada aos blocos de coeficiente associados com uma CU pelo ajuste de valores QP associados com a CU. A quantização pode introduzir perda de informação, dessa forma, os coeficientes de transformação quantizados podem ter uma precisão inferior à dos originais.
[00128] A unidade de quantização inversa 108 e a unidade de processamento de transformação inversa 110 pode aplicar a quantização inversa e as transformações inversas a um bloco de coeficientes, respetivamente, para reconstruir um bloco residual a partir do bloco de coeficientes. A unidade de reconstrução 112 pode adicionar o bloco residual reconstruído às amostras correspondentes a partir de um ou mais blocos de previsão gerados pela unidade de processamento de previsão 100 para produzir um bloco de transformação reconstruído associado com uma TU. Pela reconstrução dos blocos de transformação para cada TU de uma CU dessa forma, o codificador de vídeo 20 pode reconstruir os blocos de codificação da CU.
[00129] A unidade de filtro 114 pode realizar uma ou mais operações de desbloqueio para reduzir os artefatos de bloqueio nos blocos de codificação associados com uma CU, O armazenador de imagem decodificada 116 pode armazenar os blocos de codificação reconstruídos depois que a unidade de filtro 114 realiza uma ou mais operações de desbloqueio nos blocos de codificação reconstruídos. A unidade de processamento por interprevisão 120 pode utilizar uma imagem de referência que contém os blocos de codificação reconstruídos para realizar a interprevisão nas PUs de outras imagens. Adicionalmente, a unidade de processamento por intraprevisão 126 pode utilizar blocos de codificação reconstruídos no armazenador de imagem decodificada 116 para realizar a intraprevisão em outras PUs na mesma imagem que a CU. Ademais, a unidade de codificação com base em LM 122 pode utilizar os blocos de luminescência reconstruídos no armazenador de imagem decodificada 116 para a codificação por previsão de modelo linear (LM) de um bloco de crominância (onde o bloco de luminescência pode incluir dados de vídeo em alguns exemplos ou pode ser um bloco de luminescência residual e o bloco de crominância pode incluir dados de vídeo em alguns exemplos ou pode ser um bloco de crominância residual).
[00130] A unidade de codificação por entropia 118 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a unidade de codificação por entropia 118 pode receber blocos de coeficiente da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento por previsão 100. A unidade de codificação por entropia 118 pode realizar uma ou mais operações de codificação por entropia nos dados para gerar os dados codificados por entropia. Por exemplo a unidade de codificação por entropia 118 pode realizar uma operação de Codificação Aritmética Binária Adaptativa de Contexto (CABAC), uma operação de codificação de comprimento variável adaptativa de contexto (CAVLC), uma operação de codificação de comprimento de variável para variável (V2V), uma operação de codificação aritmética binaria adaptativa de contexto com base em sintaxe (SBAC), uma operação de codificação por Entropia de Divisão de Intervalo de Probabilidade (PIPE), uma operação de codificação Exponencial-Golomb, ou outro tipo de operação de codificação por entropia nos dados. O codificador de vídeo 20 pode enviar uma sequência de bits que inclui os dados codificados por entropia gerados pela unidade de codificação por entropia 118. Por exemplo, a sequência de bits pode incluir dados que representam uma RQT para uma CU.
[00131] O exemplo da figura 2 dessa descrição descreve o codificador de vídeo 20 configurado para determinar um bloco de luminescência correspondente para um bloco de crominância que está sendo codificado, determinar um filtro a ser aplicado ao bloco de luminescência com base em uma característica do bloco de crominância, amostra descendentemente o bloco de luminescência com base no filtro determinado, determina u m bloco de previsão com base no bloco de luminescência amostrado descendentemente, e codifica por previsão o modelo linear (LM) o bloco de crominância com base no bloco de previsão. Por exemplo, a unidade de codificação com base em LM 22 pode realizar as operações ilustrativas para codificar por previsão LM um bloco de crominância.
[00132] A unidade de codificação com base em LM 122 pode determinar um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância de dados de vídeo que está sendo codificado. A unidade de processamento por previsão 100 pode ser configurada para rastrear qual bloco de luminescência e blocos de crominância correspondem um ao outro tal como durante a divisão de uma imagem em CTUs, CUs e PUs.
[00133] A unidade de codificação com base em LM 122 determina um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância. Por exemplo, a unidade de codificação com base em LM 122 pode determinar uma localização do bloco de crominância com relação a um limite da imagem, CU, PU ou TU. Visto que a unidade de processamento por previsão 100 dividias imagens em CTUs, CUs e PUs, a unidade de codificação com base em LM 122 pode determinar a localização do bloco de crominância com relação à imagem, CU, PU ou TU.
[00134] A unidade de codificação com base em LM 122 determina a aplicação de um primeiro filtro às amostras de luminescência do bloco de luminescência que corresponde ás amostras de crominância do bloco de crominância que estão localizadas em um limite. De acordo, com base nas amostras de crominância sendo localizadas em um limite, a unidade de codificação com base em LM 122 pode determinar a aplicação de um primeiro filtro às amostras de luminescência correspondentes (por exemplo, equação (12)). A unidade de decodificação com base em LM 122 determina a aplicação de um segundo filtro diferente às amostras de luminescência do bloco de luminescência que corresponde às amostras de crominância do bloco de crominância que não estão localizadas no limite. De acordo, com base nas amostras de crominância não sendo localizadas em um limite, a unidade de codificação com base em LM 122 pode determinar a aplicação de um segundo filtro, diferente do primeiro filtro, às amostras de luminescência correspondentes do bloco de luminescência (por exemplo, equação (13)).
[00135] A unidade de codificação com base em LM 122 recupera o bloco de luminescência reconstruído a partir de DPB 116 e amostra descendentemente o bloco de luminescência com base no filtro determinado. O bloco de luminescência amostrado descendentemente é referido como: recL(i,j). Por exemplo, se as amostras de crominância estiverem no limite esquerdo, a unidade de codificação com base em LM 122 realiza a amostragem descendente das amostras de luminescência utilizando um filtro de duas saídas (por exemplo, as operações da equação (12)). Se as amostras de crominância não estiverem no limite esquerdo, a unidade de codificação com base em LM 122 realiza a amostragem descendente das amostras de luminescência utilizando um filtro de seis saídas (por exemplo, as operações da equação (13)). Em geral, o primeiro filtro inclui menos saídas do que o segundo filtro.
[00136] A partir do bloco de luminescência amostrado descendentemente, a unidade de codificação com base em LM 122 determina um bloco de previsão. Por exemplo, a unidade de codificação com base em LM 122 pode realizar as operações da equação 1. Para determinar o bloco de previsão, a unidade de codificação com base em LM 122 determina os valores de a e ß. A unidade de codificação com base em LM 122 pode realizar as operações das equações 2-4 para determinar os valores de a e ß. Com os valores de a e ß, a unidade de codificação com base em LM 122 escalona recL(i,j) de acordo com a equação 1 e determina o bloco de previsão.
[00137] Na determinação dos valores de a e ß, a unidade de codificação com base em LM 122 pode amostrar descendentemente um ou mais blocos de luminescência vizinhos (por exemplo, realizando as operações das equações (6) e (7) e determinando o primeiro parâmetro (por exemplo, a) e o segundo parâmetro (por exemplo, ß) com base nos blocos de luminescência vizinhos amostrados descendentemente para um ou mais blocos de crominância vizinhos. No entanto, a amostragem descendente de blocos vizinhos não é necessária em cada exemplo. Por exemplo, a unidade de codificação com base em LM 122 pode realizar as operações da equação (11).
[00138] Em alguns exemplos, a unidade de codificação com base em LM 122 pode determinar qual filtro de amostragem descendente aplicar com base no tipo de bloco de crominância. Por exemplo, em um caso de o bloco de crominância ser de um primeiro tipo (por exemplo, Cr ou Cb), a unidade de codificação com base em LM 122 pode determinar a aplicação de um primeiro filtro ao bloco de luma com base no bloco de crominância sendo do primeiro tipo. Em outro caso de o bloco de crominância ser de um segundo tipo (por exemplo, outro dentre Cr ou Cb), a unidade de codificação com base em Lm 122 pode determinar a aplicação de um segundo filtro diferente (isso é, diferente do primeiro filtro) ao bloco de luminescência com base no bloco de crominância sendo do segundo tipo. Os filtros que a unidade de codificação com base em LM 122 seleciona para o primeiro e segundo tipos de blocos de crominância também podem ser baseados na localização das amostras de crominância com relação a um limite, mas não necessariamente em cada exemplo.
[00139] Como descrito acima, em alguns exemplos, a unidade de codificação com base em LM 122 pode determinar que as amostras de luminescência do bloco de luminescência estão fora de uma ou mais dentre uma imagem, fatia, CU, PU ou TU. Em tais exemplos, a unidade de codificação com base em LM 122 pode substituir os valores de amostra de luminescência para uma ou mais amostras de luminescência que estão fora com valores de enchimento. Por exemplo, a unidade de codificação com base em LM 122 pode ser pré-configurada ou os valores de enchimento podem ser armazenados na memória de dados de vídeo 101. A unidade de codificação com base em LM 122 pode substituir as amostras de luminescência que estão fora com esses valores de enchimento e armazenam o bloco de luminescência resultante na memória de dados de vídeo 101. A unidade de codificação com base em LM 122 pode então amostrar descendentemente o bloco de luminescência possuindo os valores de enchimento (por exemplo, realizar a equação (5) ou (9)).
[00140] A descrição também descreve o codificador de vídeo 20 configurado para determinar um bloco de luminescência correspondente para um bloco de crominância que está sendo codificado, com base no bloco de luminescência que se estende além de um limite, aplicar o enchimento a uma parte do bloco de luminescência que se estende além do limite e mantém as amostras reconstruídas pelo restante do bloco de luminescência para gerar um bloco de luminescência preenchido, amostrar descendentemente o bloco de luminescência preenchido, determinar um bloco de previsão com base no bloco de luminescência preenchido amostrado descendentemente, e codificar por previsão de modelo linear (LM) o bloco de crominância com base no bloco de previsão.
[00141] Apesar de as técnicas ilustrativas acima terem sido descritas com relação ao bloco de luminescência sendo um bloco de amostras de luminescência, as técnicas descritas nessa descrição não são limitadas a isso. Em alguns exemplos, o bloco de luminescência é um bloco residual de luminescência, significando que o bloco de luminescência representa a diferença entre um bloco de amostras de luminescência e um bloco de previsão das amostras de luminescência. Esse bloco residual de luminescência pode ser utilizado para gerar um bloco residual de crominância por previsão para um bloco residual de crominância correspondente. A unidade de codificação com base em LM 122 pode realizar funções similares no bloco residual de luminescência para gerar um bloco residual de crominância por previsão para um bloco residual de crominância. Por exemplo, para casos nos quais o bloco de luminescência é um bloco residual de luminescência, a unidade de codificação com base em LM 122 pode amostrar descendentemente o bloco residual de luminescência para gerar um bloco residual de crominância por previsão utilizando técnicas similares às descritas acima com relação aos exemplos onde o bloco de luminescência é um bloco de amostras de luminescência. Tais técnicas podem ser aplicáveis a ambas a amostragem 4:2:0 e 4:2:2 utilizando os filtros de amostragem descendente ilustrativos descritos acima (e possivelmente para 4:4:4 com filtragem, mas não necessariamente a amostragem descendente).
[00142] As técnicas ilustrativas descritas acima com relação à unidade de codificação com base em LM 122 podem ser aplicáveis sob condições específicas, apesar de isso não ser uma exigência para cada caso. Por exemplo, se a fatia atual não for uma fatia intracodificada, então a unidade de codificação com base em LM 122 pode realizar a previsão de crominância. Como outro exemplo, se uma CU vizinha for intercodificada, a unidade de codificação com base em LM 122 pode realizar a previsão de crominância. No entanto, essas condições são descritas meramente como exemplos. Pode ser possível que a unidade de codificação com base em LM 122 realize a previsão de crominância em todos os casos, e se a previsão de crominância é realizada com base na unidade de codificação com base em LM 122 é decidido por fim com base em que codifica fornece a codificação de vídeo ideal.
[00143] A unidade de codificação com base em LM 122 pode enviar o bloco de previsão para a unidade de geração residual 102. A unidade de geração residual 102 gera um boco residual a partir do bloco de previsão e do bloco de crominância. O bloco residual resultante é transformado pela unidade de processamento de transformação 103, quantizado pela unidade de quantização 106, e codificado por entropia pela unidade de codificação por entropia 118. O resultado é então sinalizado através de uma sequência de bits e decodificador de vídeo 30 utiliza a informação na sequência de bits para reconstruir o bloco de crominância.
[00144] A figura 3 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo 30 que é configurado para implementar as técnicas dessa descrição. A figura 3 é fornecida para fins de explicação e não limita as técnicas como exemplificado de forma ampla e descrito nessa descrição. Para fins de explicação, essa descrição descreve o decodificador de vídeo 30 no contexto de codificação HEVC. No entanto, as técnicas dessa descrição podem ser aplicáveis a outros padrões ou métodos de codificação.
[00145] O decodificador de vídeo 30 inclui o conjunto de circuitos de processamento, e o decodificador de vídeo 30 é configurado para realizar uma ou mais das técnicas ilustrativas descritas nessa descrição. Por exemplo, o decodificador de vídeo 30 inclui o conjunto de circuitos integrados, e as várias unidades ilustradas na figura 3 podem ser formadas como blocos de circuito de hardware que são interconectadas a um barramento de circuito. Esses blocos de circuito de hardware podem ser blocos de circuito separados ou duas ou mais das unidades podem ser combinadas em um bloco de circuito de hardware comum. Os blocos de circuito de hardware podem ser formados como a combinação de componentes elétricos que formam os blocos de operação tal como as unidades lógicas aritméticas (ALUs), as unidades de função elementares (EFUs), além de blocos lógicos tal como AND, OR, NAND, NOR, XOR, XNOR e outros blocos lógicos similares.
[00146] Em alguns exemplos, uma ou mais das unidades ilustradas na figura 3 podem ser fornecidas pelas unidades de software executadas no conjunto de circuitos de processamento. Em tais exemplos, o código de objeto para essas unidades de software é armazenado na memória. Um sistema operacional pode fazer com que o decodificador de vídeo 30 recupere o código de objeto e execute o código de objeto, o que faz com que o decodificador de vido 30 realize as operações para implementar as técnicas ilustrativas. Em alguns exemplos, as unidades de software podem ser firmware que o decodificador de vídeo 30 executa na inicialização. De acordo, o decodificador de vídeo 30 é um componente estrutural possuindo hardware que realiza as técnicas ilustrativas ou possui um software/firmware executado em hardware para especializar o hardware para realizar as técnicas ilustrativas.
[00147] O decodificador de vídeo 30 representa um exemplo de um dispositivo que pode ser configurado para realizar as técnicas para a codificação de vídeo com base em LM de acordo com vários exemplos descritos nessa descrição. Por exemplo, o decodificador de vídeo 30 pode ser configurado para decodificar um ou mais blocos utilizando um modo de codificação de vídeo LM (isso é, para decodificar por previsão de modelo linear (LM) um ou mais blocos).
[00148] No exemplo da figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 150, a memória de ddos de vídeo 151, uma unidade de processamento por previsão 152, uma unidade de quantização inversa 154, uma unidade de processamento de transformação inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 160, e um armazenador de imagem decodificada 162. A unidade de processamento por previsão 152 inclui uma unidade de compensação de movimento 164 e uma unidade de processamento por intraprevisão 166. O decodificador de vídeo 30 também inclui uma unidade de decodificação com base em modelo linear (LM) 165 configurada para realizar os vários aspectos das técnicas de codificação com base em LM descritas nessa descrição. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais, menos ou outros componentes funcionais.
[00149] A memória de dados de vídeo 151 pode armazenar dados de vídeo, tal como uma sequência de bits de vídeo codificada a ser decodificada pelos componentes do decodificador de vídeo 30. Os dados de vídeo armazenados na memória de dados de vídeo 151 podem ser obtidos, por exemplo, a partir do meio legível por computador 16 (por exemplo, a partir de uma fonte de vídeo local, tal como uma câmera, através de comunicação em rede com ou sem fio de dados de vídeo, ou pelo acesso a meio de armazenamento de dados físico). A memória de dados de vídeo 151 pode formar um armazenador de imagem codificada (CPB) que armazena os dados de vídeo codificados a partir de uma sequência de bits de vídeo codificada. O armazenador de imagem decodificada 162 pode se uma memória de imagem de referência que armazena os dados de vídeo de referência para uso na decodificação de dados de vídeo pelo decodificador de vido 30, por exemplo, nos modos de intracodificação ou intercodificação. A memória de dados de vídeo 151 e o armazenador de imagem decodificada 162 podem ser formados por qualquer um dentre a variedade de dispositivos de memória, tal como memória de acesos randômico dinâmica (DRAM), incluindo DRAM sincronizada (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de vídeo 151 e o armazenador de imagens decodificadas 162 podem ser fornecidos pelo menos dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de vídeo 151 podem estar no chip com outros componentes do decodificador de vídeo 30, ou fora do chip com relação a esses componentes.
[00150] Um armazenador de imagem codificada (CPB) pode receber e armazenar dados de vídeo codificados (por exemplo, unidades NAL) de uma sequência de bits. A unidade de decodificação por entropia 150 pode receber dados de vídeo codificados (por exemplo, unidades NAL) a partir de CPB e analisar as unidades NAL para decodificar os elementos de sintaxe. A unidade de decodificação por entropia 150 pode decodificar por entropia os elementos de sintaxe codificados por entropia nas unidades NAL. A unidade de processamento por previsão 152, a unidade de quantização inversa 154, a unidade de processamento por transformação inversa 156, a unidade de reconstrução 158 e a unidade de filtro 160 podem gerar dados de vídeo decodificados com base nos elementos de sintaxe extraídos da sequência de bits.
[00151] As unidades NAL da sequência de bits podem incluir unidades NAL de fatia codificadas. Como parte da decodificação da sequência de bits, a unidade de decodificação por entropia 150 pode extrair e decodificar por entropia os elementos de sintaxe a partir das unidades NAL de fatia codificada. Cada uma das fatias codificadas pode incluir cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um PPS associado com uma imagem que contém a fatia.
[00152] Em adição à decodificação de elementos de sintaxe a partir da sequência de bits, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em uma CU não dividida. Para realizar a operação de reconstrução em uma CU não dividida, o decodificado de vídeo 30 pode realizar uma operação de reconstrução em cada TU da CU. Pela realização da operação de reconstrução para cada TU da CU, o decodificador de vídeo 30 pode reconstruir os blocos residuais da CU.
[00153] Como parte da realização de uma operação de reconstrução em uma TU de uma CU, a unidade de quantização inversa 154 pode quantizar de forma inversa, isso é, desquantizar, os blocos de coeficiente associados com a TU. A unidade de quantização inversa 154 pode utilizar um valor QP associado com a CU da TU para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa para a unidade de quantização inversa 154 aplicar. Isso é, a razão de compressão, isso é, a razão do número de bits utilizada para representar a sequência original e a comprimida, pode ser controlada pelo ajuste do valor de QP utilizado quando da quantização de coeficientes de transformação. A razão de compressão também pode depender do método de codificação por entropia empregado.
[00154] Depois que a unidade de quantização inversa 154 quantiza de forma inversa um bloco de coeficiente, a unidade de processamento de transformação inversa 156 pode aplicar uma ou mais transformações inversas ao bloco de coeficiente a fim de gerar um bloco residual associado com a TU. Por exemplo, a unidade de processamento de transformação inversa 156 pode aplicar uma DCT inversa, uma transformação de inteiro inversa, uma transformação Karhunen-Loeve inversa (KLT), uma transformação rotativa inversa, uma transformação direcional inversa, ou outra transformação inversa ao bloco de coeficiente.
[00155] Se uma PU for codificada utilizando-se a intraprevisão, a unidade de processamento por intraprevisão 166 pode realizar a intraprevisão para gerar os blocos de previsão para a PU. A unidade de processamento para a interprevisão 166 pode utilizar um modo de intraprevisão para gerar os blocos de luminescência de previsão, Cb e Cr para a PU com base nos blocos de previsão de PUs espacialmente vizinhas. A unidade de processamento por intraprevisão 166 pode determinar o modo de intraprevisão para a PU com base em um ou mais dos elementos de sintaxe decodificados a partir da sequência de bits.
[00156] A unidade de processamento por previsão 152 pode construir uma primeira lista de imagens de referência (RefPicList0) e uma segunda lista de imagens de referência (RefPicList1) com base nos elementos de sintaxe extraídos a partir da sequência de bits. Adicionalmente, se uma PU for codificada utilizando-se a interprevisão, a unidade de decodificação por entropia 150 pode extrair a informação de movimento para a PU. A unidade de compensação de movimento 164 pode determinar, com base na informação de movimento da PU, uma ou mais regiões de referência para a PU. A unidade de compensação de movimento 164 pode gerar, com base nos blocos de amostras em um ou mais dos blocos de referência para a PU, blocos de luminescência de previsão, Cb e Cr para PU.
[00157] A unidade de reconstrução 158 pode utilizar os blocos de transformação de luminescência, Cb e Cr associados com as TUs de uma CU e os blocos de luminescência de previsão, Cb e Cr das PUs da CU, isso é, dados de intraprevisão ou dados de interprevisão, como aplicável, pare reconstruir os blocos de codificação de luma, Cb e Cr da CU. Por exemplo, a unidade de reconstrução 158 pode adicionar amostras de blocos de transformação de luminescência, Cb e Cr às amostras correspondentes dos blocos de luminescência de previsão, Cb e Cr para reconstruir os blocos de codificação de luminescência, Cb e Cr da CU.
[00158] A unidade de filtro 160 pode realizar uma operação de desbloqueio para reduzir os artefatos de bloqueio associados com os blocos de codificação de luminescência, Cb e Cr da CU. O codificador de vídeo 30 pode armazenar os blocos de codificação de luminescência, Cb e Cr da CU no armazenador de imagem decodificada 162. O armazenador de imagem decodificada 162 pode fornecer imagens de referência para a compensação de movimento subsequente, intraprevisão e apresentação em um dispositivo de exibição, tal como dispositivo de exibição 32 da figura 1. Por exemplo, o decodificador de vídeo 30 pode realizar, com base nos blocos de luminescência, Cb e Cr no armazenador de imagem decodificado 162, as operações de intraprevisão ou interprevisão nas PUs de outras CUs.
[00159] De acordo com vários exemplos dessa descrição, o decodificador de vídeo 30 pode ser configurado para realizar a codificação com base em LM. A unidade de codificação com base em LM 165 pode amostrar descendentemente as amostras de luminescência reconstruídas de um bloco de luminescência que corresponde a um bloco de crominância atual que está sendo decodificado. A unidade de decodificação com base em LM 165 pode escalonar as amostras de luminescência reconstruídas amostradas descendentemente do bloco de luminescência para gerar um bloco de previsão para o bloco de crominância. A unidade de reconstrução 158 pode então adicionar o bloco de previsão gerado aos dados residuais decodificados. Em alguns exemplos, a unidade de decodificação com base em LM 165 pode aplicar tais técnicas como parte da previsão residual de componente cruzado. Nesse caso, o bloco de crominância é um bloco residual de crominância e o bloco de luminescência é um bloco residual de luminescência.
[00160] Nas técnicas descritas nessa descrita, a unidade de decodificação com base em LM 165 pode implementar uma ou mais das técnicas ilustrativas acima como parte da amostragem descendente das amostras de luminescência de um bloco de luminescência. Por exemplo, a unidade de decodificação com base em LM 165 pode aplicar diferentes filtros para amostragem descendente do bloco de luminescência correspondente com base nas características do bloco de crominância sendo decodificado. Exemplos das características do bloco de crominância sendo decodificado incluem a posição do bloco de crominância sendo decodificado. Como outro exemplo, a unidade de decodificação com base em LM 165 pode aplicar o enchimento ao bloco de luminescência, com base nas amostras de luminescência estando fora de um limite particular por exemplo, imagem, fatia, CU, PU ou TU).
[00161] Dessa forma, a descrição descreve o decodificador de vídeo 30 configurado para determinar um bloco de luminescência correspondente para um bloco de crominância que está sendo decodificado, determinar um filtro para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância, amostrar descendentemente o bloco de luminescência com base no filtro determinado, determinar um bloco de previsão com base no bloco de luminescência amostrado descendentemente, e decodificar por previsão de modelo linear (LM) o bloco de crominância com base no bloco de previsão.
[00162] A descrição também descreve o decodificador de vídeo 30 configurado para determinar um bloco de luminescência correspondente para um bloco de crominância que está sendo decodificado, com base no bloco de luminescência se estendendo além de um limite, aplicar enchimento a uma parte do bloco de luminescência que se estende além do limite e mantém as amostras reconstruídas pelo restante do bloco de luminescência para gerar um bloco de luminescência preenchido, amostrar descendentemente o bloco de luminescência preenchido, determinar um bloco de previsão com base no bloco de luminescência preenchido e amostrado descendentemente, determinar um bloco de previsão com base no bloco de luminescência preenchido e amostrado descendentemente, e decodificar por previsão de modelo linear (LM) o bloco de crominância com base no bloco de previsão.
[00163] A unidade de decodificação com base em LM 165 pode determinar um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo decodificado. A unidade de processamento por previsão 152 rastreia qual bloco de luminescência e blocos de crominância correspondem um ao outro com base nos elementos de sintaxe que o codificador de vídeo 20 sinaliza na sequência de bits.
[00164] A unidade de decodificação com base em LM 165 determina um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância. Por exemplo, a unidade de decodificação com base em LM 165 pode determinar uma localização do bloco de crominância com relação a um limite da imagem, fatia, CU, PU ou TU. Visto que a sequência de bits indica como as imagens foram divididas em CTUs, CUs e PUs, a unidade de decodificação com base em LM 165 pode determinar a localização do bloco de crominância com relação à imagem, CU, PU ou TU.
[00165] A unidade de decodificação com base em LM 165 determina a aplicação de um primeiro filtro às amostras de luminescência do bloco de luminescência que estão localizadas em um limite. De acordo, com base nas amostras de crominância sendo localizadas em um limite, a unidade de decodificação com base em LM 165 pode determinar a aplicação de um primeiro filtro às amostras de luminescência correspondentes (por exemplo, equação (12)). A unidade de decodificação com base em LM 165 determina a aplicação de um segundo filtro diferente às amostras de luminescência do bloco de luminescência que correspondem às amostras de crominância do bloco de crominância que não estão localizadas no limite. De acordo, com base nas amostras de crominância que não estão localizadas em um limite, a unidade de decodificação com base em LM 165 pode determinar a aplicação de um segundo filtro, diferente do primeiro filtro às amostras de luminescência correspondentes (por exemplo, equação (13)).
[00166] A unidade de decodificação com base em LM 165 recupera o bloco de luminescência reconstruído a partir de DPB 162 e amostra descendentemente o bloco de luminescência com base no filtro determinado. O bloco de luminescência amostrado descendentemente é referido como: recL(i,j). Por exemplo, se as amostras de crominância estiverem no limite esquerdo, a unidade de decodificação com base em LM 165 realiza a amostragem descendente utilizando um filtro de duas saídas (por exemplo, as operações da equação (12)). Se as amostras de crominância não estiverem no limite esquerdo, a unidade de decodificação com base em LM 165 realiza a amostragem descendente utilizando um filtro de seis saídas (por exemplo, as operações da equação (13)). Em geral, no primeiro filtro são incluídas menos saídas do que no segundo filtro.
[00167] A partir do bloco de luminescência amostrado descendentemente, a unidade de decodificação com base em LM 165 determina um bloco de previsão. Por exemplo, a unidade de decodificação com base em LM 165 pode realizar as operações da equação (1). Para determinar o bloco de previsão, a unidade de decodificação com base em LM 165 determina os valores de a e ß. A unidade de decodificação com base em LM 165 pode realizar as operações das equações 2-4 para determinar os valores de a e ß. Com os valores de a e ß, a unidade de decodificação com base em LM 165 escalona recL(i,j) de acordo com a equação (1) e determina o bloco de previsão.
[00168] Na determinação dos valores de a e ß, a unidade de decodificação com base em LM 165 pode amostrar descendentemente um ou mais blocos de luminescência vizinhos (por exemplo, realizando as operações das equações (6 ou (7)) e determinar o primeiro parâmetro (por exemplo, a) e o segundo parâmetro (por exemplo, ß) com base nos blocos de luminescência vizinhos amostrados descendentemente para um ou mais blocos de crominância vizinhos. No entanto, a amostragem descendente dos blocos vizinhos não é necessária em todo exemplo. Por exemplo, a unidade de decodificação com base em LM 165 pode realizar as operações da equação (11).
[00169] Em alguns exemplos, a unidade de decodificação com base em LM 165 pode determinar qual filtro de amostragem descendente aplicar com base no tipo de bloco de crominância. Por exemplo, em um caso de o bloco de crominância ser de um primeiro tipo (por exemplo, Cr ou Cb), a unidade de decodificação com base em LM 165 pode determinar a aplicação de um primeiro filtro ao bloco de luminescência com base no bloco de crominância sendo do primeiro tipo. Em outro caso de o bloco de crominância ser de um segundo tipo (por exemplo, outro dentre Cr ou Cb), a unidade de decodificação com base em LM 165 pode determinar a aplicação de um segundo filtro diferente ao bloco de luminescência com base no bloco de crominância sendo do segundo tipo. Os filtros que a unidade de decodificação com base em LM 165 seleciona para o primeiro e segundo tipos de blocos de crominância também podem ser baseados na localização das amostras de crominância relativas a um limite, mas não necessariamente em cada exemplo.
[00170] Como descrito acima, em alguns exemplos, a unidade de decodificação com base em LM 165 pode determinar que as amostras de luminescência do bloco de luminescência estão fora de uma ou mais dentre uma imagem, uma fatia, uma CU, uma PU ou uma TU. Em tais exemplos, a unidade de decodificação com base em LM 165 pode substituir os valores de amostra de luminescência para uma ou mais amostras de luminescência que estão fora com os valores de enchimento. Por exemplo, a unidade de decodificação com base em LM 165 pode ser pré-configurada ou os valores de enchimento podem ser armazenados na memória de dados de vídeo 151. A unidade de decodificação com base em LM 165 pode substituir as amostras de luminescência que estão fora com esses valores de enchimento e armazenar o bloco de luminescência resultante na memória de dados de vídeo 151. A unidade de decodificação com base em LM 165 pode então amostrar descendentemente o bloco de luminescência possuindo os valores de enchimento (por exemplo, realizar a equação (5) ou (9)).
[00171] Apesar de as técnicas ilustrativas acima terem sido descritas com relação a um bloco de luminescência sendo um bloco de amostras de luminescência, as técnicas descritas nessa descrição não estão limitadas a isso. Em alguns exemplos, o bloco de luminescência é um bloco residual de luminescência, significando que o bloco de luminescência representa a diferença entre um bloco de amostras de luminescência e um bloco de previsão de amostras de luminescência. Esse bloco residual de luminescência pode ser utilizado para gerar um bloco residual de crominância de previsão para um bloco residual de crominância correspondente. A unidade de decodificação com base em LM 165 pode realizar funções similares no bloco residual de luminescência para gerar um bloco residual de crominância de previsão para um bloco residual de crominância. Por exemplo, para casos nos quais o bloco de luminescência é um bloco residual de luminescência, a unidade de decodificação com base em LM 165 pode amostrar descendentemente o bloco residual de luminescência para gerar um bloco residual de crominância de previsão utilizando técnicas similares às descritas acima com relação aos exemplos onde o bloco de luminescência é um bloco das amostras de luminescência. Tais técnicas podem ser aplicáveis a ambas as amostragens 4:2:0 e 4:2:2 utilizando os filtros de amostragem descendente ilustrativos descritos acima (e possivelmente para 4:4:4 com filtragem, mas não necessariamente amostragem descendente).
[00172] As técnicas ilustrativas descritas acima com relação à unidade de decodificação com base em LM 165 podem ser aplicáveis sob condições específicas, apesar de isso não ser uma exigência para cada caso. Por exemplo, se a fatia atual não for uma fatia intracodificada, então a unidade de decodificação com base em LM 165 pode realizar a previsão de crominância. Como outro exemplo, se uma CU vizinha for intercodificada, a unidade de decodificação com base em LM 165 pode realizar a previsão de crominância. Como outro exemplo, se as imagens de referência em RefPicList0 e/ou RefPicList1 possuírem valores POC menores do que o valor POC da imagem atual, então a unidade de decodificação com base em LM 165 pode realizar a previsão de crominância. No entanto, essas condições são descritas meramente como exemplos. Pode ser possível que a unidade de decodificação com base em LM 165 realiza a previsão de crominância em todos os casos, e onde a previsão de crominância é realizada com base na unidade de decodificação com base em LM 165 pode ser, por fim, decidido com base em qual codificação fornece a codificação de vídeo ideal.
[00173] A unidade de decodificação com base em LM 152 pode enviar o bloco de previsão para a unidade de reconstrução 158. A unidade de reconstrução 158 também recebe um bloco residual (por exemplo, depois que a informação na sequência de bits para o bloco residual é decodificada por entropia com a unidade de decodificação por entropia 150, quantizada de forma invertida com a unidade de quantização inversa 154, transformada de forma inversa com a unidade de processamento de transformação inversa 156). A unidade de reconstrução 158 adiciona o bloco residual com o bloco de previsão para reconstruir o bloco de crominância.
[00174] A figura 8 é um fluxograma ilustrando uma técnica ilustrativa dos dados de vídeo de codificação por previsão de modelo linear (LM). Como ilustrado, a unidade de codificação com base em LM 122 determina um bloco de luminescência de dados de vídeo que corresponde a um bloco de crominância de dados de vídeo que está sendo codificado (200). Por exemplo, a unidade de processamento por previsão 100 divide uma imagem em CTUs, CUs e PUs e constrói os blocos de luminescência e os blocos de crominância para armazenamento na memória de dados de vídeo 101, de onde a unidade de codificação com base em LM 122 pode determinar qual bloco de luminescência corresponde a qual bloco de crominância. Adicionalmente, com base na determinação de qual bloco de luminescência corresponde a qual bloco de crominância, a unidade de codificação com ase em LM 122 pode determinar também quais amostras de luminescência do bloco de luminescência correspondem a quais amostras de crominância do bloco de crominância. Por exemplo, na amostragem 4:2:0, quatro amostras de luminescência correspondem a uma amostra de crominância.
[00175] A unidade de codificação com base LM 122 determina um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância (202). Por exemplo, a unidade de codificação com base em LM 122 determina a aplicação de um primeiro filtro (por exemplo, filtro de duas saídas) às amostras de luminescência do bloco de luminescência que correspondem as amostras de crominância do bloco de crominância que estão localizadas em um limite (por exemplo, limite esquerdo) de uma imagem, fatia, CU, PU ou TU. A unidade de codificação com base em LM 122 determina a aplicação de um segundo filtro (por exemplo, filtro de seis saídas) às amostras de luminescência do bloco de luminescência que correspondem às amostras de crominância do bloco de crominância que não estão localizadas no limite.
[00176] A unidade de codificação com base em LM 122 amostra descendentemente o bloco de luminescência com ase no filtro determinado (204). Por exemplo, para amostrar descendentemente o bloco de luminescência com base no filtro determinado, a unidade de codificação com base em LM 122 pode realizar as operações da equação 12 para as amostras de luminescência do bloco de luminescência que correspondem a uma amostra de crominância do bloco de crominância que está em um limite (por exemplo, limite esquerdo) de uma imagem, fatia, CU, PU ou TU, e realizam as operações da equação 13 para as amostras de luminescência do bloco de luminescência que correspondem a uma amostra de crominância do bloco de crominância que não está no limite da imagem, fatia, CU, PU ou TU.
[00177] A unidade de codificação com base em LM 122 pode determinar um bloco de previsão com base no bloco de luminescência amostrado descendentemente (206). Por exemplo, a unidade de codificação com base em LM 122 pode amostrar descendentemente um ou mais blocos de luminescência vizinhos que são vizinhos do bloco de luminescência. A unidade de codificação com base em LM 122 pode determinar um primeiro parâmetro (a) e um parâmetro (ß) com base em um ou mais blocos de luminescência vizinhos amostrados descendentemente e um ou mais blocos de crominância vizinhos que são vizinhos do bloco de crominância sendo codificado. A unidade de codificação com base em LM 122 pode determinar o bloco de previsão com base no bloco de luminescência amostrado descendentemente e o primeiro parâmetro e o segundo parâmetro (por exemplo, pela realização das operações da equação (1)).
[00178] O codificador de vídeo 20 gera um bloco residual com base no bloco de crominância e bloco de previsão (208). Por exemplo, a unidade de geração residual 102 determina um residual entre o bloco de crominância e o bloco de previsão e esse bloco residual é transformado, quantizado e codificado por entropia. O codificador de vídeo 20 sinaliza a informação indicativa do bloco residual que o decodificador de vídeo 30 utiliza para reconstruir o bloco de crominância.
[00179] A figura 9 é um fluxograma ilustrando uma técnica ilustrativa dos dados de vídeo de decodificação por previsão de modelo linear (LM). Como ilustrado, a unidade de decodificação com base em LM 165 determina um bloco de luminescência dos dados de vídeo que corresponde a um bloco de crominância de dados de vídeo que está sendo decodificado (210). Por exemplo, a unidade de processamento por previsão 152 recebe informação indicando a forma na qual uma imagem é dividida em CTUs, CUs e PUs e constrói os blocos de luminescência e os blocos de crominância de acordo, a partir dos quais a unidade de decodificação com base em LM 165 pode determinar qual bloco de luminescência corresponde a qual bloco de crominância. Adicionalmente, com base na determinação de qual bloco de luminescência corresponde a qual bloco de crominância, a unidade de decodificação com base em LM 165 também pode determinar quais amostras de luminescência do bloco de luminescência corresponde a quais amostras de crominância do bloco de crominância. Por exemplo, na amostragem 4:2:0, quatro amostras de luminescência correspondem a uma amostra de crominância.
[00180] A unidade de decodificação com base em LM 165 determina um filtro a partir de um conjunto de filtros para aplicar ao bloco de luminescência com base em uma característica do bloco de crominância (212). Por exemplo, a unidade de decodificação com base em LM 165 determina a aplicação de um primeiro filtro (por exemplo, filtro de duas etapas) para amostras de luminescência do bloco de luminescência que correspondem às amostras de crominância do bloco de crominância que são localizados em um limite (por exemplo, limite esquerdo) de uma imagem, fatia, CU, PU ou TU, onde as amostras de crominância localizadas no limite são amostras localizadas diretamente no limite, adjacente ao limite, e possivelmente entre um determinado número de amostras. A unidade de decodificação com base em LM 165 determina a aplicação de um segundo filtro (por exemplo, filtro de seis saídas) às amostras de luminescência do bloco de luminescência que corresponde às amostras de crominância do bloco de crominância que não estão localizadas no limite.
[00181] A unidade de decodificação com base em LM 165 amostra descendentemente o bloco de luminescência com base no filtro determinado (214). Por exemplo, para amostrar descendentemente o bloco de luminescência com base no filtro determinado, a unidade de decodificação com base em LM 165 pode realizar as operações da equação 12 para as amostras de luminescência do bloco de luminescência que corresponde a uma a mostra de crominância do bloco de crominância que está em um limite (por exemplo, limite esquerdo) de uma imagem, uma fatia, CU, PU ou TU e realiza as operações da equação (13) para as amostras de luminescência do bloco de luminescência que correspondem a uma amostra de crominância do bloco de crominância que não está no limite da imagem, CU, PU ou TU.
[00182] A unidade de decodificação com base em LM 165 pode determinar um bloco de previsão com base no bloco de luminescência amostrado descendentemente (216). Por exemplo, a unidade de decodificação com base em LM 165 pode amostrar descendentemente um ou mais blocos de luminescência vizinhos que são vizinhos do bloco de luminescência. No entanto, a amostragem descendente dos blocos vizinhos pode não ser necessária em todos os exemplos. A unidade de decodificação com base em LM 165 pode determinar um primeiro parâmetro (a) e um segundo parâmetro (ß) com base nos um ou mais blocos de luminescência vizinhos amostrados descendentemente e um ou mais blocos de crominância vizinhos que são vizinhos do bloco de crominância sendo decodificado. A unidade de decodificação com base em LM 165 pode determinar o bloco de previsão com base no bloco de luminescência amostrado descendentemente e o primeiro parâmetro e o segundo parâmetro (por exemplo, pela realização das operações da equação (1)).
[00183] O decodificador de vídeo 30 reconstrói o bloco de crominância com base no bloco de previsão e um bloco residual (218). O decodificador de vídeo 30 gera o bloco residual depois da informação de decodificação por entropia, quantização inversa, e transformação inversa a partir da sequência de bits para o bloco residual. Por exemplo, a unidade de reconstrução 158 soma o bloco de previsão gerado pela previsão LM ao bloco residual recebido a partir do codificador de vídeo 20 para reconstruir o bloco de crominância decodificado que é armazenado em DPB 162.
[00184] As técnicas descritas acima podem ser realizadas pelo codificador de vídeo 20 (figuras 1 e 2) e/ou decodificador de vídeo 30 (figuras 1 e 3), ambos os quais podem ser geralmente referidos como um codificador de vídeo. Da mesma forma, a codificação de vídeo pode se referir à codificação ou decodificação de vídeo, como aplicável. Adicionalmente, a codificação e decodificação de vídeo podem ser genericamente referidas como "processamento" de dados de vídeo.
[00185] Deve-se compreender que todas as técnicas descritas aqui podem ser utilizadas individualmente ou em combinação. Essa descrição inclui vários métodos de sinalização que podem mudar dependendo de determinados fatores tal como tamanho de bloco, tipo de fatia, etc. Tal variação na sinalização ou inferência de elementos de sintaxe pode ser conhecida do codificador e decodificador antecipadamente ou pode ser sinalizada explicitamente no conjunto de parâmetros de vídeo (VPS), conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), cabeçalho de fatia, em um nível de tile ou em outro local.
[00186] Deve-se reconhecer que dependendo do exemplo, determinados atos ou eventos de qualquer uma das técnicas descritas aqui podem ser realizados em uma sequência diferente, podem ser adicionados, misturados ou deixados de fora totalmente (por exemplo, nem todos os atos descritos ou eventos são necessários para a prática das técnicas). Ademais, em determinados exemplos, atos ou eventos podem ser realizados simultaneamente, por exemplo, através do processamento de múltiplas sequências, processamento interrompido, ou múltiplos processadores, em vez de sequencialmente. Adicionalmente, enquanto determinados aspectos dessa descrição são descritos como sendo realizados por um único módulo ou unidade para fins de clareza, deve-se compreender que as técnicas dessa descrição podem ser realizadas por uma combinação de unidades ou módulos associados a um codificador de vídeo.
[00187] Enquanto combinações particulares de vários aspectos das técnicas são descritas acima, essas combinações são fornecidas meramente para ilustrar os exemplos das técnicas descritas nessa descrição. De acordo, as técnicas dessa descrição não devem ser limitadas a essas combinações ilustrativas e podem englobar qualquer combinação concebível dos vários aspectos das técnicas descritas nessa descrição.
[00188] 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, 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 meio 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. 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 possa 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.
[00189] 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 possa ser acessado por um computador. Além disso, qualquer conexão é adequadamente chamada de um meio legível por computador. Por exemplo, se instruções são transmitidas a partir de um sitio da rede, servidor ou outra fonte remota utilizando um cabo coaxial, um cabo de fibra ótica, um 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, o par torcido, DSL ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídos na definição de mesmo. Deve-se compreender, no entanto, que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem as conexões, ondas portadoras, sinais ou outra mídia transiente, mas, em vez disso, são direcionados a meio de armazenamento não transiente e tangível. 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 dados magneticamente, enquanto discos reproduzem dados oticamente com lasers. As combinações do acima também devem ser incluídas dentro do escopo do meio legível por computador.
[00190] Instruções podem ser executadas 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 (ASIC), conjuntos lógicos programáveis em campo (FPGAs), ou outro conjunto de circuito lógico integrado ou discreto equivalente. De acordo, o termo "processador", como utilizado aqui pode se referir a qualquer uma dentre a 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.
[00191] 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 unidades de hardware diferentes. Em vez disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de 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 adequado e/ou firmware.
[00192] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (10)

1. Método de dados de vídeo de decodificação por previsão de modelo linear, LM, caracterizadopelo fato de que compreende: determinar um bloco de luminescência dos dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo decodificado; se o bloco de crominância fizer fronteira com um limite esquerdo de uma imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação: determinar um primeiro filtro a partir de um conjunto de filtros para aplicar a amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que estão imediatamente adjacentes ao limite esquerdo da imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação; determinar um segundo filtro a partir de um conjunto de filtros para aplicar a amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão imediatamente adjacentes ao limite esquerdo da imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, em que o segundo filtro tem um número maior de saídas do que o primeiro filtro; amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância em um limite esquerdo do bloco de crominância usando o primeiro filtro determinado; amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão em um limite esquerdo do bloco de crominância usando o segundo filtro determinado; determinar um bloco de previsão a partir do bloco de luminescência amostrado de modo descendente utilizando um modelo linear; e reconstruir o bloco de crominância com base no bloco de previsão e um bloco residual.
2. Método de dados de vídeo de codificação por previsão de modelo linear, LM, caracterizadopelo fato de que compreende: determinar um bloco de luminescência dos dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo codificado; se o bloco de crominância fizer fronteira com um limite esquerdo de uma imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação: determinar um primeiro filtro a partir de um conjunto de filtros para aplicar a amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que estão imediatamente adjacentes ao limite esquerdo da imagem de crominância, fatia, unidade de codificação, unidade de previsão ou unidade de transformação; determinar um segundo filtro a partir de um conjunto de filtros para aplicar a amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão imediatamente adjacentes ao limite esquerdo da imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, em que o segundo filtro tem um número maior de saídas do que o primeiro filtro; amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância em um limite esquerdo do bloco de crominância usando o primeiro filtro determinado; amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão em um limite esquerdo do bloco de crominância usando o segundo filtro determinado; determinar um bloco de previsão a partir do bloco de luminescência amostrado de modo descendente usando um modelo linear; e gerar um bloco residual com base no bloco de crominância e no bloco de previsão.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizadopelo fato de que o primeiro filtro compreende um filtro de duas saídas e o segundo filtro compreende um filtro de seis saídas.
4. Método, de acordo com a reivindicação 1 ou 2, caracterizadopelo fato de que compreende adicionalmente: amostrar de modo descendente um ou mais blocos de luminescência vizinhos que são vizinhos do bloco de luminescência; e determinar um primeiro parâmetro de escalonamento do modelo linear e um segundo parâmetro de escalonamento do modelo linear com base no um ou mais blocos de luminescência vizinhos amostrados de modo descendente e um ou mais blocos de crominância vizinhos que são vizinhos do bloco de crominância, em que determinar o bloco de previsão compreende determinar o bloco de previsão com base no bloco de luminescência amostrado de modo descendente e no primeiro e segundo parâmetros.
5. Método, de acordo com a reivindicação 1 ou 2, caracterizadopelo fato de que compreende adicionalmente: determinar um primeiro conjunto de parâmetros de escalonamento do modelo linear e um segundo parâmetro de escalonamento do modelo linear com base em um ou mais blocos de luminescência vizinhos que são vizinhos do bloco de luminescência e um ou mais blocos de crominância vizinhos que são vizinhos do bloco de crominância, em que determinar o bloco de previsão compreende determinar o bloco de previsão com base no bloco de luminescência amostrado de modo descendente, no primeiro conjunto de parâmetros e no segundo parâmetro.
6. Método, de acordo com a reivindicação 1 ou 2, caracterizadopelo fato de que uma ou mais amostras de luminescência do bloco de luminescência estão fora de uma ou mais dentre uma imagem, uma unidade de codificação, CU, uma unidade de previsão, PU, ou uma unidade de transformação, TU, compreendendo adicionalmente: preencher valores de amostra de luminescência para a uma ou mais amostras de luminescência que estão fora com valores de preenchimento; em que amostrar de modo descendente o bloco de luminescência compreende amostrar de modo descendente o bloco de luminescência tendo os valores de preenchimento.
7. Método, de acordo com a reivindicação 1 ou 2, caracterizadopelo fato de que o bloco de luminescência compreende um bloco residual de luminescência, e em que o bloco de crominância compreende um bloco residual de crominância.
8. Dispositivo para dados de vídeo de decodificação por previsão de modelo linear, LM, caracterizadopelo fato de que compreende: meios para determinar um bloco de luminescência dos dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo decodificado; meios para determinar um primeiro filtro a partir de um conjunto de filtros se o bloco de crominância fizer fronteira com um limite esquerdo de uma imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, o primeiro filtro para aplicação em amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que estão imediatamente adjacentes ao limite esquerdo da imagem de crominância, fatia, unidade de codificação, unidade de previsão ou unidade de transformação; meios para determinar um segundo filtro a partir de um conjunto de filtros se o bloco de crominância fizer fronteira com um limite esquerdo de uma imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, o primeiro filtro para aplicação a amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão imediatamente adjacentes ao limite esquerdo da imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, em que o segundo filtro tem um número maior de saídas do que o primeiro filtro; meios para amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância em um limite esquerdo do bloco de crominância usando o primeiro filtro determinado; meios para amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão em um limite esquerdo do bloco de crominância usando o segundo filtro determinado; meios para determinar um bloco de previsão a partir do bloco de luminescência amostrado de modo descendente utilizando um modelo linear; e meios para reconstruir o bloco de crominância com base no bloco de previsão e um bloco residual.
9. Dispositivo para dados de vídeo de codificação por previsão de modelo linear, LM, caracterizadopelo fato de que compreende: meios para determinar um bloco de luminescência dos dados de vídeo que corresponde a um bloco de crominância dos dados de vídeo que está sendo codificado; meios para determinar um primeiro filtro a partir de um conjunto de filtros se o bloco de crominância fizer fronteira com um limite esquerdo de uma imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, o primeiro filtro para aplicação a amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que estão imediatamente adjacentes ao limite esquerdo da imagem de crominância, fatia, unidade de codificação, unidade de previsão ou unidade de transformação; meios para determinar um segundo filtro a partir de um conjunto de filtros se o bloco de crominância fizer fronteira com um limite esquerdo de uma imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, o primeiro filtro para aplicação a amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão imediatamente adjacentes ao limite esquerdo da imagem, fatia, unidade de codificação, unidade de previsão ou unidade de transformação, em que o segundo filtro tem um número maior de saídas do que o primeiro filtro; meios para amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância em um limite esquerdo do bloco de crominância usando o primeiro filtro determinado; meios para amostrar de modo descendente as amostras de luminescência do bloco de luminescência que correspondem a amostras de crominância do bloco de crominância que não estão em um limite esquerdo do bloco de crominância usando o segundo filtro determinado; meios para determinar um bloco de previsão a partir do bloco de luminescência amostrado de modo descendente usando um modelo linear; e meios para gerar um bloco residual com base no bloco de crominância e no bloco de previsão.
10. Memória caracterizadapelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um computador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 7.
BR112017020102-0A 2015-03-20 2016-03-18 Processo de amostragem descendente para modo de previsão de modelo linear BR112017020102B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562136344P 2015-03-20 2015-03-20
US62/136,344 2015-03-20
US15/073,171 2016-03-17
US15/073,171 US10455249B2 (en) 2015-03-20 2016-03-17 Downsampling process for linear model prediction mode
PCT/US2016/023157 WO2016154008A1 (en) 2015-03-20 2016-03-18 Downsampling process for linear model prediction mode

Publications (2)

Publication Number Publication Date
BR112017020102A2 BR112017020102A2 (pt) 2018-05-29
BR112017020102B1 true BR112017020102B1 (pt) 2023-10-31

Family

ID=56924068

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112017020102-0A BR112017020102B1 (pt) 2015-03-20 2016-03-18 Processo de amostragem descendente para modo de previsão de modelo linear

Country Status (10)

Country Link
US (1) US10455249B2 (pt)
EP (1) EP3272121B1 (pt)
JP (1) JP6827944B2 (pt)
KR (1) KR102520295B1 (pt)
CN (1) CN107409209B (pt)
AR (1) AR104854A1 (pt)
BR (1) BR112017020102B1 (pt)
CA (1) CA2976820C (pt)
TW (1) TWI693821B (pt)
WO (1) WO2016154008A1 (pt)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
ES2677193B1 (es) 2015-08-28 2019-06-19 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
US20170150156A1 (en) 2015-11-25 2017-05-25 Qualcomm Incorporated Illumination compensation with non-square predictive blocks in video coding
JP7356347B2 (ja) * 2016-10-04 2023-10-04 エルエックス セミコン カンパニー, リミティド 画像復号方法、画像符号化方法、及び記録媒体
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
US10477240B2 (en) * 2016-12-19 2019-11-12 Qualcomm Incorporated Linear model prediction mode with sample accessing for video coding
EP3550842A4 (en) * 2016-12-30 2020-06-10 Huawei Technologies Co., Ltd. IMAGE FILTERING METHOD, APPARATUS AND DEVICE
WO2018230884A1 (ko) * 2017-06-12 2018-12-20 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2019004664A1 (ko) * 2017-06-26 2019-01-03 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN109257605B (zh) * 2017-07-13 2021-11-19 华为技术有限公司 图像处理方法、设备及***
CN109274969B (zh) * 2017-07-17 2020-12-22 华为技术有限公司 色度预测的方法和设备
JP2021005741A (ja) * 2017-09-14 2021-01-14 シャープ株式会社 画像符号化装置及び画像復号装置
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
JP7330184B2 (ja) * 2017-11-29 2023-08-21 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート 画像復号化方法、画像符号化方法及びビットストリーム伝送方法
CN108172168B (zh) * 2017-12-22 2019-11-15 深圳市华星光电半导体显示技术有限公司 一种补偿表压缩方法
CN111630856B (zh) * 2018-01-26 2024-05-07 交互数字Vc控股公司 基于响应于相邻样本的线性模型进行视频编码和解码的方法和设备
CN116647681A (zh) * 2018-04-01 2023-08-25 Oppo广东移动通信有限公司 使用帧内预测的图像编码/解码方法和装置
WO2019194496A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 비디오 신호의 컬러 컴포넌트에 대한 병렬 처리 방법 및 이를 위한 장치
KR102481051B1 (ko) * 2018-04-24 2022-12-23 에이치에프아이 이노베이션 인크. 비디오 코딩에서의 제한된 선형 모델 파라미터 도출을 위한 방법 및 장치
US11758159B2 (en) 2018-05-14 2023-09-12 Intellectual Discovery Co., Ltd. Image decoding method/device, image encoding method/device, and recording medium in which bitstream is stored
US20190364295A1 (en) * 2018-05-25 2019-11-28 Tencent America LLC Method and apparatus for video coding
KR101956756B1 (ko) 2018-06-12 2019-03-11 광운대학교 산학협력단 성분 간 참조 기반의 비디오 신호 처리 방법 및 장치
KR102389267B1 (ko) * 2018-06-12 2022-04-20 광운대학교 산학협력단 성분 간 참조 기반의 비디오 신호 처리 방법 및 장치
CN108769681B (zh) * 2018-06-20 2022-06-10 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、计算机设备和存储介质
CN110650337B (zh) 2018-06-26 2022-04-01 中兴通讯股份有限公司 一种图像编码方法、解码方法、编码器、解码器及存储介质
CN110662065A (zh) * 2018-06-29 2020-01-07 财团法人工业技术研究院 图像数据解码方法及解码器、图像数据编码方法及编码器
CN116708837A (zh) * 2018-07-02 2023-09-05 Lg电子株式会社 编解码设备和数据发送设备
CN116405688A (zh) 2018-07-12 2023-07-07 华为技术有限公司 视频译码中使用交叉分量线性模型进行帧内预测
WO2020015433A1 (en) * 2018-07-15 2020-01-23 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction using cross-component linear model
WO2020015648A1 (en) * 2018-07-16 2020-01-23 Huawei Technologies Co., Ltd. Video encoder, video decoder, and corresponding encoding and decoding methods
CN116347109A (zh) * 2018-08-17 2023-06-27 北京字节跳动网络技术有限公司 一种处理视频数据的方法和装置
WO2020041306A1 (en) * 2018-08-21 2020-02-27 Futurewei Technologies, Inc. Intra prediction method and device
CN110858903B (zh) * 2018-08-22 2022-07-12 华为技术有限公司 色度块预测方法及装置
CN118018746A (zh) * 2018-09-05 2024-05-10 华为技术有限公司 色度块预测方法以及设备
CN117478883A (zh) * 2018-09-12 2024-01-30 北京字节跳动网络技术有限公司 交叉分量线性模型中的尺寸相关的下采样
CN117834862A (zh) * 2018-09-20 2024-04-05 Lg电子株式会社 图像解码、编码方法和数据的发送方法及存储介质
KR20230093063A (ko) * 2018-10-04 2023-06-26 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
WO2020071617A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
CA3115177C (en) * 2018-10-05 2024-06-04 Huawei Technologies Co., Ltd. Intra prediction method and device
CN112889291A (zh) 2018-10-08 2021-06-01 北京达佳互联信息技术有限公司 对跨分量线性模型的简化
US10939118B2 (en) * 2018-10-26 2021-03-02 Mediatek Inc. Luma-based chroma intra-prediction method that utilizes down-sampled luma samples derived from weighting and associated luma-based chroma intra-prediction apparatus
KR20210089131A (ko) 2018-11-06 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 위치 기반 인트라 예측
US11197005B2 (en) 2018-11-08 2021-12-07 Qualcomm Incorporated Cross-component prediction for video coding
CA3085391C (en) 2018-11-23 2023-10-24 Lg Electronics Inc. Method for decoding image on basis of cclm prediction in image coding system, and device therefor
EP4319164A3 (en) * 2018-11-23 2024-03-27 Intellectual Discovery Co., Ltd. Inter-component prediction
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
CN116781915A (zh) * 2018-12-13 2023-09-19 华为技术有限公司 色度块的预测方法和装置
CN118200553A (zh) 2018-12-27 2024-06-14 英迪股份有限公司 图像编码/解码方法和装置
CN111083486A (zh) * 2019-01-03 2020-04-28 北京达佳互联信息技术有限公司 一种确定编码单元的色度信息的方法和装置
WO2020145792A1 (ko) * 2019-01-12 2020-07-16 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측을 사용하는 영상 디코딩 방법 및 그 장치
US11973977B2 (en) 2019-02-22 2024-04-30 Lg Electronics Inc. CCLM prediction-based image decoding method and apparatus in image coding system
MX2021010130A (es) * 2019-02-22 2021-11-12 Huawei Tech Co Ltd Método y aparato para intra predicción utilizando modelo lineal.
KR102628086B1 (ko) * 2019-02-22 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 이웃 샘플 선택
US11991373B2 (en) 2019-02-28 2024-05-21 Interdigital Vc Holdings, Inc. Method and device for picture encoding and decoding
US11889085B2 (en) * 2019-03-08 2024-01-30 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices
US20200288159A1 (en) 2019-03-08 2020-09-10 Qualcomm Incorporated Combined residual coding in video coding
US11070812B2 (en) * 2019-03-12 2021-07-20 Qualcomm Incorporated Coefficient domain block differential pulse-code modulation in video coding
WO2020185888A1 (en) * 2019-03-12 2020-09-17 Beijing Dajia Internet Information Technology Co., Ltd. Video coding using multi-model linear model
CN113412621A (zh) * 2019-03-25 2021-09-17 Oppo广东移动通信有限公司 图像分量的预测方法、编码器、解码器及计算机存储介质
CN113228647A (zh) * 2019-03-25 2021-08-06 Oppo广东移动通信有限公司 图像预测方法、编码器、解码器以及存储介质
CN113826393A (zh) * 2019-05-03 2021-12-21 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
CN113632464B (zh) * 2019-05-21 2023-04-28 华为技术有限公司 分量间预测的方法和设备
US11330298B2 (en) * 2019-06-25 2022-05-10 Qualcomm Incorporated Simplified intra chroma mode coding in video coding
CN117395396A (zh) 2019-07-07 2024-01-12 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
EP3998772A4 (en) * 2019-07-11 2023-06-07 Samsung Electronics Co., Ltd. VIDEO DECODING METHOD AND APPARATUS, AND VIDEO CODING METHOD AND APPARATUS
CN114303369A (zh) * 2019-08-28 2022-04-08 株式会社Kt 视频信号处理方法和装置
KR20220061108A (ko) 2019-09-19 2022-05-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 레퍼런스 샘플 위치 유도
EP4018659A4 (en) 2019-09-19 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SCALE WINDOW IN VIDEO CODING
EP4026336A4 (en) 2019-10-05 2022-12-07 Beijing Bytedance Network Technology Co., Ltd. LEVEL-BASED SIGNALING OF VIDEO CODING TOOLS
KR102637881B1 (ko) 2019-10-12 2024-02-19 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 정제 비디오 코딩 툴의 사용 및 시그널링
MX2022004200A (es) 2019-10-13 2022-05-02 Beijing Bytedance Network Tech Co Ltd Interaccion entre remuestreo de imagen de referencia y herramientas de codificacion de video.
KR20220113379A (ko) 2019-12-27 2022-08-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 픽처 헤더의 슬라이스 유형의 시그널링
KR102558336B1 (ko) * 2019-12-30 2023-07-20 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 데이터의 크로마 및 루마 성분의 교차 성분 결정
CN117596409A (zh) 2020-04-18 2024-02-23 抖音视界有限公司 用于处理视频数据的方法、装置以及计算机可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9693070B2 (en) * 2011-06-24 2017-06-27 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
MX2014000163A (es) * 2011-06-28 2014-02-19 Samsung Electronics Co Ltd Metodo y aparato de prediccion para componente de croma de imagen que utiliza componente de luma de imagen.
US8724711B2 (en) * 2011-07-12 2014-05-13 Intel Corporation Luma-based chroma intra prediction
JP2013110502A (ja) * 2011-11-18 2013-06-06 Sony Corp 画像処理装置及び画像処理方法
CN103918269B (zh) 2012-01-04 2017-08-01 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
CN104380741B (zh) 2012-01-19 2018-06-05 华为技术有限公司 用于lm帧内预测的参考像素缩减
CN104718759B (zh) 2012-01-24 2019-01-18 华为技术有限公司 Lm模式的简化
US9313495B2 (en) * 2012-05-14 2016-04-12 Luca Rossato Encoding and decoding based on blending of sequences of samples along time

Also Published As

Publication number Publication date
US20160277762A1 (en) 2016-09-22
CA2976820C (en) 2023-08-29
KR102520295B1 (ko) 2023-04-10
WO2016154008A1 (en) 2016-09-29
EP3272121A1 (en) 2018-01-24
US10455249B2 (en) 2019-10-22
TWI693821B (zh) 2020-05-11
BR112017020102A2 (pt) 2018-05-29
KR20170129750A (ko) 2017-11-27
JP6827944B2 (ja) 2021-02-10
TW201639365A (zh) 2016-11-01
EP3272121B1 (en) 2021-07-07
CN107409209A (zh) 2017-11-28
CN107409209B (zh) 2020-11-10
AR104854A1 (es) 2017-08-23
CA2976820A1 (en) 2016-09-29
JP2018514119A (ja) 2018-05-31

Similar Documents

Publication Publication Date Title
BR112017020102B1 (pt) Processo de amostragem descendente para modo de previsão de modelo linear
TWI781972B (zh) 具有用於視頻寫碼之樣本存取之線性模型預測模式
US10506246B2 (en) Multi-type-tree framework for video coding
KR102048169B1 (ko) 비디오 코딩에서 비-스퀘어 변환 유닛들에 대한 변환 계수들의 수정
TWI533679B (zh) 在視訊寫碼中之參數集
BR112019013705A2 (pt) predição temporal de filtro de laço adaptativo modificada para suporte de escalabilidade temporal
BR112016006607B1 (pt) Método e dispositivo para processamento de dados de vídeo, e memória legível por computador
BR112016000850B1 (pt) Processamento paralelo de camada cruzada e parâmetros de retardo de desvio para codificação de vídeo
BR112016008224B1 (pt) Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas
BR112016006574B1 (pt) Predição de vetor de movimento temporal com base em unidade de subpredição (pu) em hevc e projeto de sub-pu em 3d-hevc
BR112016015546B1 (pt) Codificação de índice de cor para codificação de vídeo com base em paleta
BR112015024766B1 (pt) Desabilitação da ocultação de dados de sinal na codificação de vídeo
BR112016024233B1 (pt) Método e aparelho para codificar uma imagem de camada de aperfeiçoamento em um fluxo de bits de múltiplas camadas
BR112016008241B1 (pt) Indicação de processamento paralelo em codificação de vídeo
BR112020011099A2 (pt) intra-predição com pixels vizinhos distantes
BR112015007116B1 (pt) Aparelho configurado para decodificar e codificar dados de vídeo, método de decodificação e codificação de dados de vídeo, e, memória legível por computador
ES2903013T3 (es) Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color
BR122022009674A2 (pt) Método implementado por um codificador, dispositivo e aparelho de codificação, sistema e meio para codificação
BR112015021566B1 (pt) Método e dispositivo de decodificação e codificação de dados de vídeo hevc multicamadas, assim como memória legível por computador
BR112015021727B1 (pt) Processamento paralelo para codificação de vídeo
BR112015025643B1 (pt) Codificação de dados de vídeo para um conjunto de camada de saída
BR112016030194B1 (pt) Codificação de vídeo de multi-camada

Legal Events

Date Code Title Description
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 18/03/2016, OBSERVADAS AS CONDICOES LEGAIS