BR112015007116B1 - 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 - Google Patents

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 Download PDF

Info

Publication number
BR112015007116B1
BR112015007116B1 BR112015007116-3A BR112015007116A BR112015007116B1 BR 112015007116 B1 BR112015007116 B1 BR 112015007116B1 BR 112015007116 A BR112015007116 A BR 112015007116A BR 112015007116 B1 BR112015007116 B1 BR 112015007116B1
Authority
BR
Brazil
Prior art keywords
block
layer
sub
oversampled
motion vector
Prior art date
Application number
BR112015007116-3A
Other languages
English (en)
Other versions
BR112015007116A2 (pt
Inventor
Vadim SEREGIN
Jianle Chen
Xiang Li
Krishnakanth RAPAKA
Marta Karczewicz
Ying Chen
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 BR112015007116A2 publication Critical patent/BR112015007116A2/pt
Publication of BR112015007116B1 publication Critical patent/BR112015007116B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain

Landscapes

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

Abstract

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. Em uma modalidade, um aparelho configurado para codificar dados de vídeo inclui um processador e uma unidade de memória. A unidade de memória armazena os dados de vídeo associados com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial. Os dados de vídeo associados com a primeira camada incluem pelo menos um bloco de primeira camada e informação de modo de predição de primeira camada associada com o bloco de primeira camada, e o bloco de primeira camada inclui uma pluralidade de sub-blocos onde cada sub-bloco é associado com dados respectivos de modo de predição da informação de modo de predição de primeira camada. O processador deriva os dados de modo de predição associados com um da pluralidade de sub-blocos com base ao menos em uma regra de seleção, sobreamostra os dados derivados de modo de predição e o bloco de primeira camada, e associa os dados sobreamostrados de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada.

Description

Campo Técnico
[0001] Essa revelação se refere geralmente à codificação e compactação de vídeo.
[0002] Capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas digitais de difusão direta, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores de mesa ou laptop, computadores tablet, leitores de livro eletrônico, câmeras digitais, dispositivos digitais de gravação, dispositivos de reprodução de mídia digital, dispositivo de videogame, consoles de videogame, telefones de rádio via satélite ou celulares, dispositivos de teleconferência de vídeo, e semelhantes. Os dispositivos de vídeo digital implementam técnicas de compactação de vídeo tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões para transmitir, receber, e armazenar mais eficientemente informação de vídeo digital.
[0003] Uma imagem digital, tal como uma imagem de vídeo, um imagem de TV, uma imagem estática ou uma imagem gerada por um gravador de vídeo, ou por um computador, pode consistir em pixels arranjados em linhas horizontais e verticais. O número de pixels em uma única imagem é tipicamente da ordem de dezenas de milhares. Cada pixel contém tipicamente informação de luminância e de crominância. Sem compactação, a quantidade de informação a ser conduzida de um codificador de imagem para um decodificador de imagem é tão grande que pode tornar difícil a transmissão da imagem em tempo real. Para reduzir a quantidade de informação a ser transmitida, alguns métodos de computação diferentes foram desenvolvidos.
[0004] Técnicas de compactação de vídeo realizam predição espacial (imagem intra) e/ou predição temporal (inter-imagem) para reduzir ou remover a redundância inerente nas sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (isto é, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser dividida em blocos de vídeo, os quais também podem ser referidos como treeblocks, unidades de codificação (CUs) e/ou modos de codificação. Os blocos de vídeo em uma fatia codificada intra (I) de uma imagem são codificados utilizando a predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia inter-codificada (P ou B) de uma imagem podem usar predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas como quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco inter-codificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco preditivo, e os dados residuais indicando a diferença entre o bloco codificado e o bloco preditivo. Um bloco intra-codificado é codificado de acordo com um modo de codificação intra e os dados residuais.
[0006] Codificação e compactação de vídeo baseadas em bloco podem adicionalmente fazer uso de técnicas de escalação. A codificação de vídeo escalável (SVC) se refere à codificação de vídeo na qual uma camada de base e uma ou mais camadas de aperfeiçoamento escaláveis são usadas. Para SVC, uma camada de base tipicamente transporta dados de vídeo com um nível básico de qualidade. Uma ou mais camadas de aperfeiçoamento carregam dados adicionais de vídeo para suportar níveis espaciais, temporais e/ou SNR superiores.
Sumário
[0007] Com o propósito de resumir a revelação, certos aspectos, vantagens e características inovadoras foram descritas aqui. Deve-se entender que não necessariamente todas as tais vantagens podem ser obtidas de acordo com qualquer modalidade específica aqui revelada. Assim, as características aqui reveladas podem ser incorporadas ou executadas de uma maneira que realiza ou otimiza uma vantagem ou grupo de vantagens como aqui ensinado sem necessariamente obter outras vantagens conforme ensinadas ou sugeridas aqui.
[0008] De acordo com algumas modalidades, um aparelho configurado para codificar dados de vídeo inclui uma unidade de memória e um processador. A unidade de memória é configurada para armazenar os dados de vídeo associados com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial diferente da primeira resolução espacial. Os dados de vídeo associados com a primeira camada incluem pelo menos um bloco de primeira camada e informação de modo de predição de primeira camada associada com o bloco de primeira camada, e o bloco de primeira camada inclui uma pluralidade de sub-blocos onde cada sub- bloco é associado com os respectivos dados de modo de predição da informação de modo de predição de primeira camada. O processador está em comunicação com a unidade de memória, e o processador é configurado para derivar os dados de modo de predição associados com um da pluralidade de sub-blocos com base ao menos em uma regra de seleção, sobreamostrando os dados derivados de modo de predição e o bloco de primeira camada, e associando os dados sobreamostrados de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada.
[0009] O aparelho do parágrafo anterior pode incluir uma ou mais das seguintes características: De acordo com a regra de seleção, o processador é configurado para selecionar os dados de modo de predição associados com um primeiro sub-bloco da pluralidade de sub-blocos com base ao menos em um local do primeiro sub-bloco em relação a um ou mais de outros sub-blocos do bloco de primeira camada. O primeiro sub-bloco é um sub-bloco central adjacente em cada lado a um da pluralidade de sub-blocos do bloco de primeira camada. O processador é configurado para determinar a regra de seleção de acordo com um indicador de sinal. O processador é configurado para determinar um valor predito de um bloco de segunda camada na segunda camada com base ao menos no bloco sobreamostrado de primeira camada e nos dados sobreamostrados de modo de predição associados com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada. O bloco de primeira camada está localizado em uma posição na primeira camada correspondendo à posição do bloco de segunda camada na segunda camada, ou o bloco de primeira camada está localizado na posição na primeira camada correspondendo à posição de um bloco adjacente de segunda camada posicionado adjacente ao bloco de segunda camada na segunda camada. Os dados respectivos de modo de predição associados com cada sub-bloco do bloco de primeira camada incluem um vetor de movimento. A relação de resolução espacial entre os dados sobreamostrados de modo de predição e os dados derivados de modo de predição se equipara à relação de resolução espacial entre a segunda resolução espacial e a primeira resolução espacial. O processador é configurado para: associar os dados sobreamostrados de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada quando um primeiro codificador-decodificador (codec) é usado para compactar o bloco de primeira camada; e associar os dados atribuídos de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada com base ao menos em uma regra de atribuição quando um segundo codec diferente do primeiro codec é usado para compactar a unidade de vídeo na primeira camada. De acordo com a regra de atribuição, o processador é configurado para atribuir os dados de modo de predição para ser pelo menos um de um vetor de movimento zero, um índice de referência igual a zero, um índice de referência igual a menos um, e um campo de movimento marcado como indisponível. O processador é configurado para inserir o bloco sobreamostrado de primeira camada em uma lista de referência. O processador compreende um decodificador. O processador compreende um codificador. O aparelho é parte de um dispositivo, o dispositivo selecionado a partir do grupo consistindo em um computador e um aparelho telefônico de dispositivo de comunicação sem fio.
[0010] De acordo com algumas modalidades, um método de codificar dados de vídeo inclui: armazenar os dados de vídeo associados com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial diferente da primeira resolução espacial, os dados de vídeo associados com a primeira camada incluindo pelo menos um bloco de primeira camada e informação de modo de predição de primeira camada associada com o bloco de primeira camada, o bloco de primeira camada incluindo uma pluralidade de sub-blocos onde cada sub-bloco é associado com os dados respectivos de modo de predição da informação de modo de predição de primeira camada; derivar os dados de modo de predição associados com um da pluralidade de sub-blocos com base ao menos em uma regra de seleção; sobreamostrar os dados derivados de modo de predição e o bloco de primeira camada; e associar os dados sobreamostrados de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada.
[0011] O método do parágrafo anterior pode incluir uma ou mais das seguintes características: De acordo com a regra de seleção, a derivação inclui derivar os dados de modo de predição associados com um primeiro sub-bloco da pluralidade de sub-blocos com base ao menos em uma localização do primeiro sub-bloco em relação a um ou mais de outros sub-blocos do bloco de primeira camada. O primeiro sub-bloco é um sub-bloco central adjacente em cada lado a um da pluralidade de sub-blocos do bloco de primeira camada. O método inclui ainda determinar a regra de seleção de acordo com um indicador de sinal. O método inclui ainda determinar um valor predito de um bloco de segunda camada na segunda camada com base ao menos no bloco sobreamostrado de primeira camada e nos dados sobreamostrados de modo de predição associados com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada, em que o bloco de primeira camada está localizado em uma posição na primeira camada correspondendo à posição do bloco de segunda camada na segunda camada, ou o bloco de primeira camada está localizado na posição na primeira camada correspondendo à posição de um bloco adjacente de segunda camada posicionado adjacente ao bloco de segunda camada na segunda camada. Os dados respectivos de modo de predição associados a cada sub-bloco do bloco de primeira camada incluem um vetor de movimento. Uma relação de resolução espacial entre os dados sobreamostrados de modo de predição e os dados derivados de modo de predição combina com a relação de resolução espacial entre a segunda resolução espacial e a primeira resolução espacial. O método inclui ainda: associar os dados sobreamostrados de modo de predição com cada sub- bloco sobreamostrado do bloco sobreamostrado de primeira camada quando o primeiro codificador-decodificador (codec) é usado para compactar o bloco de primeira camada; e associar os dados atribuídos de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada com base ao menos em uma regra de atribuição quando o segundo codec diferente do primeiro codec é usado para compactar a unidade de vídeo na primeira camada. O método inclui ainda atribuir, de acordo com a regra de atribuição, os dados de modo de predição para ser ao menos um de um vetor de movimento zero, um índice de referência igual a zero, um índice de referência igual a menos um, e um campo de movimento marcado como indisponível. O método inclui ainda inserir o bloco sobreamostrado de primeira camada em uma lista de referência. O método inclui ainda receber um elemento de sintaxe extraído a partir de um fluxo de bits de vídeo codificado, o elemento de sintaxe indicativo da informação de modo de predição associada com o bloco de vídeo da primeira camada. O método inclui ainda gerar um elemento de sintaxe para um fluxo de bits de vídeo codificado, o elemento de sintaxe indicativo da informação de modo de predição associada com o bloco de vídeo de primeira camada.
[0012] De acordo com algumas modalidades, um aparelho configurado para codificar dados de vídeo inclui: meio para armazenar os dados de vídeo associado com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial diferente da primeira resolução espacial, os dados de vídeo associados com a primeira camada incluindo pelo menos um bloco de primeira camada e informação de modo de predição de primeira camada associada com o bloco de primeira camada, o bloco de primeira camada incluindo uma pluralidade de sub-blocos onde cada sub-bloco é associado com os respectivos dados de modo de predição da informação de modo de predição de primeira camada; meio para derivar os dados de modo de predição associados com um da pluralidade de sub-blocos com base ao menos em uma regra de seleção; meio para sobreamostragem dos dados derivados de modo de predição e do bloco de primeira camada; e meio para associar os dados sobreamostrados de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada.
[0013] De acordo com algumas modalidades, um meio de armazenamento de computador não transitório que armazena instruções de programa executável que direciona um aparelho para codificação de dados de vídeo para realizar um processo que inclui: armazenar os dados de vídeo associados com uma primeira camada que tem uma primeira resolução espacial e uma segunda camada que tem uma segunda resolução espacial diferente da primeira resolução espacial, os dados de vídeo associados com a primeira camada incluindo pelo menos um bloco de primeira camada e informação de modo de predição de primeira camada associada com o bloco de primeira camada, o bloco de primeira camada incluindo uma pluralidade de sub-blocos onde cada sub-bloco é associado com os respectivos dados de modo de predição da informação de modo de predição de primeira camada; derivar os dados de modo de predição associados com um da pluralidade de sub-blocos com base ao menos em uma regra de seleção; sobreamostrar os dados derivados de modo de predição e o bloco de primeira camada; e associar os dados sobreamostrados de modo de predição com cada sub-bloco sobreamostrado do bloco sobreamostrado de primeira camada.
Breve Descrição Dos Desenhos
[0014] As características das várias modalidades aqui reveladas são descritas abaixo com referência aos desenhos. Do princípio ao fim dos desenhos, números de referência são reutilizados para indicar correspondência entre elementos citados. Os desenhos são providos para ilustrar as modalidades aqui descritas e não para limitar o seu escopo.
[0015] A Figura 1 é um diagrama de blocos ilustrando um sistema de codificação de vídeo exemplar que pode utilizar as técnicas descritas nessa revelação.
[0016] A Figura 2 é um diagrama de blocos ilustrando um codificador de vídeo exemplar que pode implementar as modalidades dessa revelação.
[0017] A Figura 3 é um diagrama de blocos ilustrando um decodificador de vídeo exemplar que pode implementar as modalidades dessa revelação.
[0018] A Figura 4 é um diagrama conceptual ilustrando os dados de vídeo exemplares utilizáveis para predição de uma camada de aperfeiçoamento.
[0019] As Figuras, 5 e 6, são diagramas conceptuais que ilustram os dados de vídeo de camada de base exemplar e os dados de vídeo sobreamostrados de camada de base.
[0020] A Figura 7 ilustra um método exemplar para codificação de dados de vídeo.
Descrição Detalhada Visão geral
[0021] As técnicas descritas nesta revelação geralmente se relacionam com codificação de vídeo escalável, (SVC), codificação de vídeo escalável a alta eficiência (SHVC), codificação de múltipla visualização e codificação de vídeo 3D. Por exemplo, as técnicas podem ser relacionadas com e usadas com ou dentro de uma extensão SVC de codificação de alta eficiência (HEVC). Em uma extensão SVC, pode haver várias camadas de informação de vídeo. A camada no nível inferior pode servir como uma camada de base (BL), e a camada no topo pode servir como uma camada otimizada (EL). Em MVC, o termo “exibição” pode ser usado no lugar do termo “camada”. Nesse sentido, referências a esta revelação a “camada” ou “camadas” podem ser substituídas com “vista” ou “vistas”, respectivamente. A camada ”otimizada” é por vezes referida como uma “camada de realce”, e estes termos podem ser usados de forma intercambiável. As camadas no meio podem servir como uma ou ambas as camadas de reforço ou camadas de base. Por exemplo, uma camada no meio pode ser uma camada de reforço para as camadas abaixo dela, como a camada de base ou qualquer camadas intermediárias de realce e ao mesmo tempo, servir como uma camada de base para as camadas de reforço acima dela.
[0022] SVC pode ser usado para fornecer escalabilidade qualidade (também referida como sinal-ruído (SNR)), escalabilidade espacial / temporal escalabilidade. Uma camada de reforço pode ter o mesmo ou uma resolução espacial diferente do que a camada de base. Por exemplo, a relação de aspecto espacial entre uma camada de reforço e camada de base pode ser 1.0, 1.5, 2.0 ou outras relações diferentes. Em outras palavras, o aspecto espacial da camada de reforço pode ser igual 1.0, 1.5 ou 2.0 vezes o aspecto espacial da camada de base. Em alguns exemplos, o fator de escala da camada de reforço pode ser maior do que a camada de base. Por exemplo, um tamanho de imagem na camada de reforço pode ser maior do que um tamanho de imagens em camada de base. Desta forma, pode ser possível, embora não uma limitação, que a resolução espacial da camada de reforço é maior que a resolução espacial da camada de base.
[0023] A filtragem de sobreamostragem, por vezes referido como re-amostragem filtragem, pode ser aplicada a uma camada de base, a fim de aumentar a resolução espacial da camada de base. Em algumas implementações, uma resolução espacial de camada de base pode ser aumentada para coincidir com a resolução espacial de uma camada de reforço. Este processo pode ser chamado de escalabilidade espacial. Um conjunto de filtro de sobreamostragem pode ser aplicado para a camada de base, e um filtro pode ser escolhido do conjunto com base em uma fase (por vezes referida como uma mudança de pixel fracionária). A fase pode ser calculada com base na relação de aspecto espacial entre a camada de base e imagem de camada de reforço.
[0024] SVC Além disso, facilita a predição de movimento inter-camada onde o movimento de uma camada de base é usado para prever o movimento na camada de reforço. Informação de movimento como um vetor de movimento, um índice de referência ou uma inter-direção associado com um ou mais blocos de vídeo de uma camada de base podem ser usados para determinar as informação de movimento associadas a um ou mais blocos de vídeo de uma camada de reforço. Por exemplo, um vetor de movimento de um bloco co- localizado em imagens a camada de base pode ser usado como um candidato para prever um vetor de movimento de uma unidade de vídeo previsto em uma camada de realce quando uma imagem de camada base está listada como um retrato co- localizado em uma lista de imagens de referência.
[0025] Contudo, em alguns casos, se a resolução espacial de uma camada de reforço é diferente do que a resolução espacial de uma camada de base, camada de movimento de inter-predição pode não ser habilitado desde que as informação de movimento associado com os blocos de vídeo da camada base podem não estar acessíveis para predição de movimento inter-camada sem precisar implementar mudanças para um projeto de sistema de camada base abaixo do nível de fatia ou usando diferentes modelos de sistemas de hardware ou software. Como resultado, a capacidade de um codificador de vídeo para compactar dados de vídeo pode ser reduzida, onde a resolução espacial da camada de reforço é diferente do que a resolução espacial da camada de base.
[0026] Vantajosamente, modalidades de revelação são dirigidas em parte para informação de modo de predição de sobreamostragem, às vezes conhecidas como informação não-pixel, (por exemplo, modo de intra-predição, inter modo de predição ou informação de movimento como um vetor de movimento, um índice de referência ou uma inter- direção que é utilizável para a compactação de dados de vídeo) de uma base para que as informação de modo de predição sobreamostrado podem ser usadas na predição de movimento inter-camada para uma camada de reforço da camada. As abordagens desta revelação podem facilitar a predição de movimento de inter-camadasem implementar unidade ou alterações de baixo nível do sistema de codificação quando a camada de reforço tem uma resolução espacial diferente ou maior do que a camada de base. Em um exemplo, informação de modo de predição associadas com um bloco de camada base são é aumentada, e algumas ou todas as informação de modo de predição é aumentada, por sua vez, podem ser usadas para determinar a informação de modo de predição prevista para um bloco de camada de reforço. Além disso, em determinadas modalidades, informação de modo de predição de padrão podem ser beneficamente usadas como um candidato para determinar a informação de modo de predição prevista para um bloco de camada de reforço.
[0027] Para fins de ilustração, apenas, as técnicas descritas na revelação podem ser descritas com exemplos incluindo apenas duas camadas (por exemplo, baixa camada nível como uma camada de base e uma camada de nível superior, tais como uma camada de reforço). Deve ser entendido, no entanto, que os exemplos descritos nesta revelação podem ser estendidos para exemplos com múltiplas camadas de base e camadas de reforço também.
Sistema de Codificação de Vídeo
[0028] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo exemplar 10 que pode utilizar as técnicas dessa revelação. Conforme aqui descrito, o termo “codificador de vídeo” se refere genericamente tanto aos codificadores de vídeo como aos decodificadores de vídeo. Os termos “codificação de vídeo” ou “codificação” pode se referir geralmente à codificação de vídeo e decodificação de vídeo.
[0029] Como mostrado na figura 1, o sistema de codificação de vídeo 10 inclui um dispositivo de origem 12 e um dispositivo de destino 14. Dispositivo de origem 12 gera dados de vídeo codificados. Dispositivo de destino 14 pode decodificar os dados codificados de vídeo gerados pelo dispositivo de origem 12. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender uma ampla gama de dispositivos, incluindo computadores de mesa, dispositivos de computação móvel, computadores notebook (por exemplo, laptop), computadores tablet, conversores de sinais de frequência, aparelhos telefônicos de mão, tal como os assim chamados telefones “inteligentes”, televisões, câmeras, dispositivos de exibição, aparelhos de reprodução de mídia digital, consoles de jogos de vídeo, computadores em carros, ou semelhante. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0030] O dispositivo de destino 14 pode receber dados de vídeo codificado a partir do dispositivo de origem 12 por intermédio de um canal 16. O canal 16 pode compreender um tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados a partir do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, o canal 16 pode compreender um meio de comunicação que possibilita ao dispositivo de origem 12 transmitir os dados de vídeo codificado diretamente para o dispositivo de destino 14 em tempo real. Nesse exemplo, o dispositivo de origem 12 pode modular os dados de vídeo codificado de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e pode transmitir os dados de vídeo modulado para o dispositivo de destino 14. O meio de comunicação pode compreender um meio de comunicação sem fio ou cabeado, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas físicas de transmissão. O meio de comunicação pode formar parte de uma rede baseada em pacote, tal como uma rede de área local, uma rede de área remota, ou uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base, ou outro equipamento que facilite a comunicação a partir do dispositivo de origem 12 para o dispositivo de destino 14.
[0031] Em outro exemplo, o canal 16 pode corresponder a um meio de armazenamento que armazena os dados de vídeo codificado gerados pelo dispositivo de origem 12. Nesse exemplo, o dispositivo de destino 14 pode acessar o meio de armazenamento por intermédio de acesso de disco ou acesso de cartão. O meio de armazenamento pode incluir diversos meios de armazenamento de dados acessados localmente tal como discos Blu-ray, DVDs, CD-ROMs, memória flash, ou outros meios de armazenamento digitais adequados para armazenar dados de vídeo codificado. Em um exemplo adicional, o canal 16 pode incluir um servidor de arquivo ou outro dispositivo de armazenamento intermediário que armazena o vídeo codificado gerado pelo dispositivo de origem 12. Nesse exemplo, o dispositivo de destino 14 pode acessar os dados de vídeo codificados armazenados no servidor de arquivo ou outro dispositivo de armazenamento intermediário por intermédio de fluxo contínuo ou transferência descendente. O servidor de arquivo pode ser um tipo de servidor capaz de armazenar os dados de vídeo codificados e transmitir os dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivo exemplares incluem servidores de rede (por exemplo, para um sítio de rede), servidores de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento anexados à rede (NAS), e unidades de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificado através de uma conexão de dados padrão, incluindo uma conexão de Internet. Tipos exemplares de conexões de dados podem incluir canais sem fio (por exemplo, conexões Wi-Fi), conexões cabeadas (por exemplo, DSL, modem a cabo, etc.) ou combinações de ambos que são adequadas para acessar os dados de vídeo codificado armazenados em um servidor de arquivo. A transmissão dos dados de vídeo codificado a partir do servidor de arquivo pode ser uma transmissão de fluxo contínuo, uma transmissão de transferência descendente, ou uma combinação das duas.
[0032] No exemplo da Figura 1, o dispositivo de origem 12 inclui uma fonte de vídeo 18, codificador de vídeo 20, e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de origem 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo contendo dados de vídeo previamente capturados, uma interface de alimentação de vídeo para receber os 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 os dados de vídeo, ou uma combinação de fontes de alimentação de um vídeo.
[0033] O codificador de vídeo 20 pode codificar os dados de vídeo capturados, pré-capturados, ou gerados por computador. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 por intermédio da interface de saída 22 do dispositivo de origem 12. Os dados de vídeo codificados também podem ser armazenados em um meio de armazenamento ou em um servidor de arquivo para posterior acesso pelo dispositivo de destino 14 para decodificação e/ou reprodução.
[0034] 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 casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destino 14 recebe os dados de vídeo codificados através do canal 16. Os dados de vídeo codificado podem incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 que representam os dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificado transmitidos em um meio de comunicação, armazenados em um meio de armazenamento, ou armazenados em um servidor de arquivos.
[0035] O dispositivo de exibição 32 pode ser integrado com, ou pode ser externo ao dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também pode ser configurado para estabelecer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados a um usuário. O dispositivo de exibição 32 pode compreender qualquer um de uma variedade de dispositivos de exibição tal como um display de cristal líquido (LCD), um display de plasma, um display de diodo de emissão de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0036] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode estar de acordo com um Modelo de Teste HEVC (HM). Alternativamente, codificador de vídeo de 20 e 30 do decodificador de vídeo pode operar de acordo com outros padrões proprietários ou de indústria, tal como o padrão ITU-T H.264, referido alternativamente como MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC) ou extensões de tais normas. As técnicas de revelação, no entanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões e técnicas de compactação de vídeo incluem MPEG-2, ITU-T H.263. Duas ou mais normas (por exemplo, HEVC e H.264 AVC) Além disso, podem ser usadas juntas ou em combinação, em alguns casos. Por exemplo, 264/AVC ou outro combinado codificador/decodificador (codec) pode ser utilizado para compactação de camada de base, e compactação de camadas de reforço pode usar HEVC.
[0037] Embora não mostrado no exemplo da Figura 1, o codificador de vídeo 20 e o decodificador de vídeo 30 possam ser integrados individualmente com um codificador de áudio e decodificador, e podem incluir unidades apropriadas de multiplexação/demultiplexação, ou outro hardware e software, para lidar com codificação tanto de áudio como de vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicável, em alguns exemplos, as unidades de multiplexação-demultiplexação podem estar de acordo com o protocolo de multiplexador ITU H.223, ou outros protocolos tal como o protocolo de datagrama de usuários (UDP).
[0038] Outra vez, a Figura 1 é apenas um exemplo e as técnicas dessa revelaçã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 de decodificação. Em outros exemplos, os dados podem ser recuperados a partir de uma memória local, transferidos em fluxo contínuo através de uma rede, ou semelhante. Um dispositivo de codificação pode codificar e armazenar os dados em memória, e/ou um dispositivo de decodificação pode recuperar e decodificar os dados a partir da memória. Em muitos exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam entre si, mas simplesmente codificam os dados para memória e/ou recuperam e decodificam os dados a partir da memória.
[0039] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados individualmente como qualquer uma de uma variedade de conjuntos de circuitos adequados, tal como um ou mais micro processadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, hardware, ou qualquer combinação dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar as instruções para o software em um meio de armazenamento legível por computador não transitório, adequado e pode executar as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa revelação. Cada codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, ou pode ser integrado como parte de um codec em um respectivo aparelho. Um dispositivo 20 incluindo um codificador de vídeo e/ou decodificador de vídeo 30 pode incluir um circuito integrado, um microprocessador, e/ou um dispositivo de comunicação sem fio, como um telefone celular.
Codificador de vídeo
[0040] A figura 2 é um diagrama de bloco que ilustra um codificador de vídeo de exemplo 20 que pode implementar qualquer ou todas as técnicas em conformidade com os aspectos descritos nesta revelação. Como um exemplo, o módulo de inter-predição 121, e o módulo de sobreamostragem 130 podem executar qualquer ou todas as técnicas descritas nesta revelação. No entanto, aspectos de revelação não são tão limitados. Em alguns exemplos, as técnicas podem ser compartilhadas entre os vários componentes do codificador de vídeo 20. Em alguns exemplos, para além ou em vez de um processador (não mostrado) pode ser configurado para executar qualquer ou todas as técnicas descritas nesta revelação.
[0041] O codificador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do codificador de vídeo 20 incluem um módulo de predição 100, um módulo de geração residual 102, um módulo de transformação 104, um módulo de quantização 106, um módulo de quantização inversa 108, um módulo de transformação inversa 1 10, um módulo de reconstrução 1 12, um módulo de filtro 1 13, um armazenador temporário de imagem decodificada 114, um módulo de codificação por entropia 1 16 e um módulo de sobreamostragem 130. Módulo de predição 100 inclui um módulo de predição do inter 121, módulo de estimativa de movimento 122, um módulo de compensação de movimento 124 e um módulo de intra-predição 126. Em outros exemplos, codificador de vídeo 20 pode incluir componentes funcionais diferentes, mais ou menos. Além disso, módulo de estimativa de movimento 122 e módulo de compensação de movimento 124 podem ser altamente integrados, mas são representados no exemplo da figura 2 separadamente para fins de explicação.
[0042] O codificador de vídeo 20 pode receber dados de vídeo. Codificador de vídeo 20 pode receber os dados de vídeo de várias fontes. Por exemplo, o codificador de vídeo 20 pode receber os dados de vídeo da fonte de vídeo 18 (figura 1) ou de outra fonte. Os dados de vídeo podem representar uma série de quadros ou imagens de vídeo, como um grupo de imagens (GOP). Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais das imagens, ou em outro lugar, que descreve uma série de imagens incluídas no partido republicano. Cada fatia de uma imagem pode incluir dados de sintaxe fatia que descreve um modo de codificação para a fatia respectiva. Codificador de vídeo 20 normalmente opera em blocos de vídeo dentro de fatias de vídeo individuais para codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de um CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis e podem variar em tamanho de acordo com um padrão de codificação especificada.
[0043] Um quadro ou imagem de vídeo pode ser dividido em uma sequência de treeblocks ou maiores unidades de codificação (UTI) que incluem amostras tanto luma e croma (por vezes referidas como pixels). Dados de sintaxe dentro de um fluxo de bits podem definir um tamanho para a UTI, que é uma unidade de codificação maior em termos de número de amostras. Uma fatia inclui um número de treeblocks consecutivos na ordem de codificação. Um quadro ou imagem de vídeo pode ser dividido em um ou mais fatias. Cada treeblock pode ser dividido em unidades (CUs) de acordo com um núcleo de codificação. Em geral, uma estrutura de dados do núcleo inclui um nó por CU, com um nó de raiz correspondente para o treeblock. Se um CU é dividido em quatro sub-CUs, o nó correspondente para o CU inclui quatro nós de folha, cada uma das quais corresponde a um dos sub-CUs.
[0044] Os tamanhos dos blocos de vídeo associados com as CUs podem variar de amostras de 8x8 até o tamanho do treeblock com um máximo de amostras 64x64 ou maiores. Nessa revelação, “NxN” e “N por N” podem ser usados de forma permutável para se referir às dimensões de amostra de um bloco de vídeo em termos de dimensões verticais e horizontais, por exemplo, amostras de 16x16 ou amostras de 16 por 16. Em geral, um bloco de vídeo de 16x16 tem 16 amostras em uma direção vertical (y = 16) e 16 amostras em uma direção horizontal (x = 16). Similarmente, um bloco NxN geralmente tem N amostras em uma direção vertical e N amostras em uma direção horizontal, onde N representa um valor de número inteiro não negativo.
[0045] Cada nó da estrutura de dados quadtree pode conter dados de sintaxe (por exemplo, elementos de sintaxe) para o treeblock correspondente ou CU. Por exemplo, um nó no quadtree pode incluir um sinalizador de divisão que indica se o bloco de vídeo da CU correspondendo ao nó está dividido (isto é, separado) em quatro sub- blocos. Os elementos de sintaxe para uma CU podem ser definidos de forma recursiva, e podem depender de se o bloco de vídeo da CU é dividido em sub-blocos. Uma CU cujo bloco de vídeo não é dividido pode corresponder a um nó folha na estrutura de dados quadtree. Um treeblock codificado pode incluir dados com base na estrutura de dados quadtree para um treeblock correspondente.
[0046] O codificador de vídeo 20 pode realizar operações de codificação em cada CU não dividida de um treeblock. Quando o codificador de vídeo 20 realiza uma operação de codificação em uma CU não dividida, o codificador de vídeo 20 gera dados representando uma representação codificada da CU não dividida.
[0047] Como parte da realização de uma operação de codificação em uma CU, o módulo de predição 100 pode dividir o bloco de vídeo da CU entre uma ou mais PUs da CU. O codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar diversos tamanhos de PU. Supondo que o tamanho de uma CU específica seja 2Nx2N, o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2Nx2N ou NxN, e inter predição em tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, nLx2N, nRx2N ou similar. O codificador de vídeo 20 e o decodificador de vídeo 30 também podem suportar divisão assimétrica para tamanhos de PU de 2NxnU, 2NxnD, nLx2N, e nRx2N. Em alguns exemplos, o módulo de predição 100 pode realizar divisão geométrica para dividir o bloco de vídeo de uma CU entre PUs da CU ao longo de um limite que não encontra os lados do bloco de vídeo da CU em ângulos retos.
[0048] O módulo de inter predição 121 pode realizar inter predição em cada PU da CU. Inter predição pode prover compactação temporal. Para realizar inter predição em uma PU, o módulo de estimação de movimento 122 pode gerar informação de movimento para a PU. O módulo de compensação de movimento 124 pode gerar um bloco de vídeo predito para a PU com base na informação de movimento e amostras decodificadas de imagens exceto a imagem associada com a CU (isto é, imagens de referência). Nessa revelação, um bloco de vídeo predito gerado pelo módulo de compensação de movimento 124 pode ser referido como um bloco de vídeo inter predito.
[0049] As Fatias podem ser fatias I, fatias P, ou fatias B. O módulo de estimação de movimento 102 e o módulo de compensação de movimento 124 podem realizar operações diferentes 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 intra preditas. Portanto, se a PU está em uma fatia I, o módulo de estimação de movimento 122 e o módulo de compensação de movimento 124 não realizam inter-predição na PU.
[0050] Se a PU está em uma fatia P, a imagem contendo a PU é associada com uma lista de imagens de referência referidas como “lista zero”. Cada uma das imagens de referência na lista zero contém amostras que podem ser usadas para inter predição de outras imagens. Quando o módulo de estimação de movimento 122 realiza a operação de estimação de movimento com relação a uma PU em uma fatia P, o módulo de estimação de movimento 122 pode procura nas imagens de referência na lista zero por um bloco de referência para a PU. O bloco de referência da PU pode ser um conjunto de amostras, por exemplo, um bloco de amostras, que corresponde mais estreitamente com as amostras no bloco de vídeo da PU. O módulo de estimação de movimento 122 pode usar uma variedade de métricas para determinar quão estreitamente um conjunto de amostras em uma imagem de referência corresponde às amostras no bloco de vídeo de uma PU. Por exemplo, o módulo de estimação de movimento 122 pode determinar quão estreitamente um conjunto de amostras em uma imagem de referência corresponde às amostras no bloco de vídeo de uma PU mediante soma da diferença absoluta (SAD), soma da diferença quadrática (SSD), ou outras métricas de diferença.
[0051] Após identificar um bloco de referência de uma PU em uma fatia P, o módulo de estimação de movimento 122 pode gerar um índice de referência que indica a imagem de referência na lista zero contendo o bloco de referência e um vetor de movimento que indica um deslocamento espacial entre a PU e o bloco de referência. Em vários exemplos, o módulo de estimação de movimento 122 pode gerar vetores de movimento para graus variáveis de exatidão. Por exemplo, o módulo de estimação de movimento 122 pode gerar vetores de movimento em precisão de amostra de um quarto, precisão de amostra de um oitavo, ou outra precisão de amostra fracionária. No caso de precisão de amostra fracionária, os valores de bloco de referência podem ser interpolados a partir dos valores de amostra de posição de número inteiro na imagem de referência. O módulo de estimação de movimento 122 pode produzir o índice de referência e o vetor de movimento como a informação de movimento da PU. O módulo de compensação de movimento 124 pode gerar um bloco de vídeo predito da PU com base no bloco de referência identificado pela informação de movimento da PU.
[0052] Se a PU estiver em uma fatia B, a imagem contendo a PU pode ser associada com duas listas de imagens de referência, referidas como “lista 0” e “lista 1”. Em alguns exemplos, uma imagem contendo uma fatia B pode ser associada com uma combinação de lista que é uma combinação de lista 0 e lista 1.
[0053] Adicionalmente, se a PU estiver em uma fatia B, o módulo de estimação de movimento 122 pode realizar predição unidirecional ou predição bidirecional para a PU. Quando o módulo de estimação de movimento 122 realiza predição unidirecional para a PU, o módulo de estimação de movimento 122 pode procurar as imagens de referência da lista 0 ou da lista 1 por um bloco de referência para a PU. O módulo de estimação de movimento 122 pode então gerar um índice de referência que indica a imagem de referência na lista 0 ou lista 1 que contém o bloco de referência e um vetor de movimento que indica um deslocamento espacial entre a PU e o bloco de referência. O módulo de estimação de movimento 122 pode produzir o índice de referência, um indicador de direção de predição, e o vetor de movimento como a informação de movimento da PU. O indicador de direção de predição pode indicar se o índice de referência indica uma imagem de referência na lista 0 ou lista 1. O módulo de compensação de movimento 124 pode gerar o bloco de vídeo predito da PU com base no bloco de referência indicado pela informação de movimento da PU.
[0054] Quando o módulo de estimação de movimento 122 realiza predição bidirecional para uma PU, o módulo de estimação de movimento 122 pode procurar as imagens de referência na lista 1 para um bloco de referência para a PU e também pode procurar as imagens de referência na lista 1 para outro bloco de referência para a PU. O módulo de estimação de movimento 122 pode então gerar índices de referência que indicam as imagens de referência na lista 0 e lista 1 contendo os blocos de referência e vetores de movimento que indicam deslocamentos espaciais entre os blocos de referência e a PU. O módulo de estimação de movimento 122 pode produzir os índices de referência e os vetores de movimento da PU como a informação de movimento da PU. O módulo de compensação de movimento 124 pode gerar o bloco de vídeo predito da PU com base nos blocos de referência indicados pela informação de movimento da PU.
[0055] Em alguns casos, o módulo de estimação de movimento 122 não produz um conjunto completo de informação de movimento para uma PU para o módulo de codificação e entropia 116. Mais propriamente, o módulo de estimação de movimento 122 pode sinalizar a informação de movimento de uma PU com referência à informação de movimento de outra PU. Por exemplo, o módulo de estimação de movimento 122 pode determinar que a informação de movimento da PU seja suficientemente similar à informação de movimento de uma PU adjacente. Nesse exemplo, o módulo de estimação de movimento 122 pode indicar, em uma estrutura de sintaxe associada com a PU, um valor que indica para o decodificador de vídeo 30 que a PU tem a mesma informação de movimento que a PU adjacente. Em outro exemplo, o módulo de estimação de movimento 122 pode identificar, em uma estrutura de sintaxe associada com a PU, uma PU adjacente e uma diferença de vetor de movimento (MVD). A diferença de vetor de vetor de movimento indica uma diferença entre o vetor de movimento da PU e o vetor de movimento da PU adjacente indicada. O decodificador de vídeo 30 pode usar o vetor de movimento da PU adjacente indicada e a diferença de vetor de movimento para determinar o vetor de movimento da PU. Mediante referência à informação de movimento de uma primeira PU ao sinalizar a informação de movimento de uma segunda PU, o codificador de vídeo 20 pode ser capaz de sinalizar a informação de movimento da segunda PU utilizando um número menor de bits.
[0056] Como parte da realização de uma operação de codificação em uma CU, o módulo de intra- predição 126 pode realizar intra-predição nas PUs da CU. A intra-predição pode prover compactação espacial. Quando um módulo de intra-predição 126 realiza intra-predição em uma PU, o módulo de intra-predição 126 pode gerar dados de predição para a PU com base nas amostras decodificadas de outras PUs na mesma imagem. Os dados de predição para a PU podem incluir um bloco de vídeo predito e vários elementos de sintaxe. O módulo intra-predição 126 pode realizar intra-predição nas PUs em fatias I, fatias P, e fatias B.
[0057] Para realizar intra-predição em uma PU, o módulo de intra-predição 126 pode usar múltiplos modos de intra-predição para gerar múltiplos conjuntos de dados de predição para a PU. Quando o módulo de intra-predição 126 utiliza um modo de intra-predição pra gerar um conjunto de dados de predição para a PU, o módulo de intra-predição 126 pode estender as amostras a partir dos blocos de vídeo de PUs adjacentes através do bloco de vídeo da PU em uma direção e/ou gradiente associado com o modo de intra- predição. As PUs adjacentes podem estar acima, acima e à direita, acima e à esquerda, ou à esquerda da PU, supondo uma ordem de codificação da esquerda para a direita, de cima para baixo para as PUs, CUs, e treeblocks. O módulo de intra-predição 126 pode usar vários números de modos de intra-predição, por exemplo, 33 modos de intra-predição, direcionais dependendo do tamanho da PU.
[0058] O módulo de predição 100 pode selecionar os dados de predição para uma PU dentre os dados de predição gerados pelo módulo de compensação de movimento 124 para a PU ou os dados de predição gerados pelo módulo de intra-predição 126 para a PU. Em alguns exemplos, o módulo de predição 100 seleciona os dados de predição para a PU com base na métrica de taxa/distorção dos conjuntos de dados de predição.
[0059] Se o módulo de predição 100 seleciona os dados de predição gerados pelo módulo de intra-predição 126, o módulo de predição 100 pode sinalizar o modo de intra-predição que foi usado para gerar os dados de predição para as PUs, isto é, o modo de intra-predição selecionado. O módulo de predição 100 pode sinalizar o modo de intra-predição selecionada de diversas formas. Por exemplo, é provável que o modo de intra-predição selecionado seja o mesmo que o modo de intra-predição de uma PU adjacente. Em outras palavras, o modo de intra- predição da PU adjacente pode ser o modo mais provável para a PU atual. Assim, o módulo de predição 100 pode gerar um elemento de sintaxe para indicar que o modo de intra- predição selecionado é o mesmo que o modo de intra-predição da PU adjacente.
[0060] Após o módulo de predição 100 selecionar os dados de predição para as PUs de uma CU, o módulo de geração residual 102 pode gerar dados residuais para a CU mediante subtração dos blocos de vídeo preditos das PUs da CU a partir do bloco de vídeo da CU. Os dados residuais de uma CU podem incluir blocos de vídeo residuais 2D que correspondem aos diferentes componentes de amostra das amostras no bloco de vídeo da CU. Por exemplo, os dados residuais podem incluir um bloco de vídeo residual que corresponde às diferenças entre componentes de luminância da amostras nos blocos de vídeo preditos das PUs da CU e componentes de luminância de amostras no bloco de vídeo original da CU. Além disso, os dados residuais da CU podem incluir blocos de vídeo residuais que correspondem às diferenças entre os componentes de crominância das amostras nos blocos de vídeo preditos das PUs da CU e os componentes de crominância das amostras no bloco de vídeo original da CU.
[0061] O módulo de predição 100 pode realizar divisão quadtree para dividir os blocos de vídeo residuais de uma CU em sub-blocos. Cada bloco de vídeo residual não dividido pode ser associado com uma TU diferente da CU. Os tamanhos e posições dos blocos de vídeo residuais associados com as TUs de uma CU podem ou não se basear nos tamanhos e posições dos blocos de vídeo associados com as PUs da CU. Uma estrutura quadtree conhecida como uma “quadtree residual” (RQT) pode incluir nós associados com cada um dos blocos de vídeo residuais. As TUs de uma CU podem corresponder aos nós de folha da RQT.
[0062] O módulo de transformada 104 pode gerar um ou mais blocos de coeficiente de transformada para cada TU de uma CU mediante aplicação de uma ou mais transformadas a um bloco de vídeo residual associado com a TU. Cada um dos blocos de coeficiente de transformada pode ser uma matriz 2D dos coeficientes de transformada. O módulo de transformada 104 pode aplicar várias transformadas ao bloco de vídeo residual associado com uma TU. Por exemplo, o módulo de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional, ou uma transformada similar no modo conceptual ao bloco de vídeo residual associado com uma TU.
[0063] Após o módulo de transformada 104 gerar um bloco de coeficiente de transformada associado com uma TU, o módulo de quantização 106 pode quantizar os coeficientes de transformada no bloco de coeficiente de transformada. O módulo de quantização 106 pode quantizar um bloco de coeficiente de transformada associado com uma TU de uma CU com base em um valor QP associado com a CU.
[0064] O codificador de vídeo 20 pode associar um valor QP com uma CU de diversas formas. Por exemplo, o codificador de vídeo 20 pode realizar uma análise de distorção de taxa em um treeblock associado com a CU. Na análise de distorção de taxa, o codificador de vídeo 20 pode gerar múltiplas representações codificadas do treeblock mediante realização de uma operação de codificação múltiplas vezes no treeblock. O codificador de vídeo 20 pode associar diferentes valores QP com a CU quando o codificador de vídeo 20 gera diferentes representações codificadas do treeblock. O codificador de vídeo 20 pode sinalizar que um determinado valor QP seja associado com a CU quando o valor QP determinado é associado com a CU em uma representação codificada do treeblock que tem a taxa de bit e a métrica de distorção, mais baixas.
[0065] O módulo de quantização inversa 108 e o módulo de transformada inversa 110 podem aplicar quantização inversa e transformadas inversas ao bloco de coeficiente de transformada, respectivamente, para reconstruir o bloco de vídeo residual a partir do bloco de coeficiente de transformada. O módulo de reconstrução 112 pode adicionar o bloco de vídeo residual reconstruído às amostras correspondentes a partir de um ou mais blocos de vídeo preditos gerados pelo módulo de predição 100 para produzir um bloco de vídeo reconstruído associado com uma TU. Mediante reconstrução dos blocos de vídeo para cada TU de uma CU desse modo, o codificador de vídeo 20 pode reconstruir o bloco de vídeo da CU.
[0066] O módulo de quantização inversa 108 e o módulo de transformada inversa 110 podem aplicar quantização inversa e transformadas inversas ao bloco de coeficiente de transformada, respectivamente, para reconstruir o bloco de vídeo residual a partir do bloco de coeficiente de transformada. O módulo de reconstrução 112 pode adicionar o bloco de vídeo residual reconstruído às amostras correspondentes a partir de um ou mais blocos de vídeo preditos gerados pelo módulo de predição 100 para produzir um bloco de vídeo reconstruído associado com uma TU. Mediante reconstrução dos blocos de vídeo para cada TU de uma CU desse modo, o codificador de vídeo 20 pode reconstruir o bloco de vídeo da CU.
[0067] O módulo de codificação por entropia 116 pode receber os dados a partir de outros componentes funcionais do codificador de vídeo 20. Por exemplo, o módulo de codificação por entropia 116 pode receber blocos de coeficiente de transformada a partir do módulo de quantização 106 e pode receber elementos de sintaxe a partir do módulo de predição 100. Quando o módulo de codificação por entropia 116 recebe os dados, o módulo de codificação por entropia 116 pode realizar uma ou mais operações de codificação por entropia para gerar os dados codificados de entropia. Por exemplo, o codificador de vídeo 20 pode realizar uma operação de codificação de comprimento variável de contexto adaptativo (CAVLC), uma operação CABAC, uma operação de codificação de comprimento variável para variável (V2V), uma operação de codificação aritmética binária adaptativa de sintaxe baseado em contexto (SBAC), uma operação de codificação por entropia de Partição de Intervalo de Probabilidade (PIPE), ou outro tipo de operação de codificação por entropia nos dados. O módulo de codificação por entropia 116 pode produzir um fluxo de bits que inclui os dados codificados de entropia.
[0068] O módulo de sobreamostragem 130 pode escalar ou re-amostrar os dados de vídeo, incluindo informação de pixel e de não-pixel como informação de modo de predição, para aumentar a resolução espacial. Em algumas modalidades, os dados de vídeo de uma camada de base podem ser sobreamostrados para coincidir com a resolução espacial de uma camada de reforço. Módulo de sobreamostragem 130 pode também coordenar com um ou mais outros componentes funcionais do codificador de vídeo 20 para sobreamostrar os dados de vídeo de camada base de uma imagem de camada de base antes que a imagem da camada base seja inserida em uma lista de referência.
[0069] O codificador de vídeo 20 pode adicionalmente enviar dados de sintaxe, como dados de sintaxe baseados em blocos, sintaxe baseada no quadro dados e dados de sintaxe baseado em GOP, para decodificador de vídeo 30, por exemplo, em um cabeçalho de quadro, um cabeçalho de bloco, um cabeçalho de fatia ou um cabeçalho de GOP. Os dados de sintaxe do GOP podem descrever um número de quadros no GOP respectivo, e os dados de sintaxe do quadro podem indicar um modo de codificação/predição usado para codificar o quadro correspondente.
Decodificador de vídeo
[0070] A figura 3 é um diagrama de blocos ilustra um exemplo de um decodificador de vídeo que pode implementar técnicas de acordo com os aspectos descritos na revelação. Decodificador de vídeo 30 pode executar qualquer uma ou todas as técnicas de revelação. Como um exemplo, a unidade de compensação de movimento 162 e módulo de sobreamostragem 170 pode ser configurado para executar qualquer ou todas as técnicas descritas nesta revelação. No entanto, aspectos de revelação não são tão limitados. Em alguns exemplos, as técnicas descritas nesta revelação podem ser compartilhadas entre os vários componentes do decodificador de vídeo 30. Em alguns exemplos, para além ou em vez de um processador (não mostrado) pode ser configurado para executar qualquer ou todas as técnicas descritas nesta revelação.
[0071] Decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 150, unidade de compensação de movimento 162, unidade de intra-predição 164, unidade de quantização inversa 154, unidade de transformada inversa 156, memória de imagens de referência 160 e somador 158. Decodificador de vídeo 30 pode, em alguns exemplos, executar um passe de decodificação recíproco geralmente ao cartão codificação descrito em relação ao codificador de vídeo 20 (figura 2). A unidade de compensação de movimento 162 pode gerar dados de predição com base em vetores de movimento recebidas da unidade de decodificação por entropia 150, enquanto intra-predição unidade 164 podem gerar dados de predição com base em indicadores de modo de intra-predição recebidas da unidade de decodificação por entropia 150.
[0072] Durante o processo de decodificação, decodificador de vídeo 30 recebe um fluxo de bits vídeo codificado que representa a blocos de uma fatia de vídeo codificado e associado a elementos de sintaxe de codificador de vídeo 20. A unidade de decodificação por entropia 150 do decodificador de vídeo 30 decodifica o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo intra-predição e outros elementos de sintaxe. A unidade de decodificação por entropia 150 encaminha os vetores de movimento para e outros elementos de sintaxe para unidade de compensação de movimento 162. Decodificador de vídeo 30 pode receber os elementos de sintaxe em nível a fatia de vídeo e/ou o nível de bloco de vídeo.
[0073] Quando a fatia de vídeo é codificada como um intra-codificado (I) fatia, unidade intra-predição 164 podem gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intra-predição sinalizado e dados de blocos anteriormente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia inter-codificada (por exemplo, B, P ou GPB), unidade de compensação de movimento 162 produz blocos preditivos para um bloco de vídeo de vídeo atual fatia baseia os vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação por entropia 150. Os blocos preditivos podem ser produzidos a partir um dos quadros de referência dentro de uma das listas de imagens de referência. Decodificador de vídeo 30 pode construir as listas do quadro de referência, listas 0 e 1, usando técnicas de construção padrão com base em imagens de referência armazenadas na memória de imagens de referência 160. Unidade de compensação de movimento 162 determina informação de predição para um bloco de vídeo da fatia atual vídeo analisando os vetores de movimento e outros elementos de sintaxe e usa a informação de predição para produzir os blocos de preditivos para o bloco de vídeo atual sendo decodificada. Por exemplo, a unidade de compensação de movimento 162 usa alguns elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou inter-predição) usado para código enumera os blocos de vídeo de vídeo fatia, fatia de inter-predição tipo (por exemplo, B fatia, fatia de P ou fatia GPB), informação de construção para um ou mais do quadro de referência para a fatia, vetores para cada bloco de vídeo inter codificado da fatia de movimento, status de inter- predição para cada bloco de vídeo inter-codificado da fatia e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[0074] O módulo de sobreamostragem 170 pode escalar ou re-amostrar os dados de vídeo, incluindo informação de pixel e não-pixel como informação de modo de predição, para aumentar o espaço resolução. Em algumas modalidades, os dados de vídeo de uma camada de base podem ser sobreamostrados para coincidir com a resolução espacial de uma camada de reforço. Módulo de sobreamostragem 130 pode coordenar com um ou mais outros componentes funcionais do codificador de vídeo 20 para sobreamostrar os dados de vídeo de camada base de uma imagem de camada de base antes que a imagem da camada base seja inserida em uma lista de referência.
[0075] A unidade de compensação de movimento 162 também pode realizar a interpolação com base em filtros de interpolação. Unidade de compensação de movimento 162 pode usar filtros de interpolação como usado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels de integridade secundária de blocos de referência. Neste caso, a unidade de compensação de movimento 162 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos de preditivos.
[0076] A unidade de quantização inversa 154 quantiza inversamente, por exemplo, quantifica inversamente os coeficientes de transformada quantizados fornecida no fluxo de bits e decodificado pela unidade de decodificação por entropia 150. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QPY calculado pelo decodificador de vídeo 30 para cada bloco de vídeo em vídeo fatia para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado.
[0077] A unidade de transformação inversa 156 aplica uma transformação inversa, por exemplo, um inverso DCT, uma transformação inversa inteiro ou um conceitualmente similar inverso transformar o processo, para os coeficientes de transformação para produzir blocos residuais no domínio do pixel.
[0078] Após a unidade de compensação de movimento 162 gerar o bloco preditivo para o bloco de vídeo atual baseado os vetores de movimento e outros elementos de sintaxe, 30 formas de decodificador de vídeo um bloco de vídeo decodificado somando os blocos residuais de unidade de transformação inversa 156 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 162. O somador 158 representa o componente ou os componentes que executam essa operação de soma. Se desejado, um filtro desblocagem também pode ser aplicado para filtrar os blocos decodificados para remover artefatos de bloqueio. Outros filtros de loop (ou no loop de codificação ou após o loop de codificação) também podem ser usados para suavizar as transições de pixel, ou outra forma de melhorar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagens são então armazenados em memória de imagens de referência 160, que armazena imagens de referência utilizadas para compensação de movimento subsequente. Memória de imagens de referência 160 também armazena vídeo decodificado para posterior apresentação em um dispositivo de exibição, como dispositivo de visualização de 32 de figura 1.
[0079] Em outra modalidade, não é mostrada, após o somador 158 reconstruir o bloco de vídeo da CU, um módulo de filtro pode realizar uma operação desblocagem para reduzir o bloqueio artefatos associados com a CU. Depois que o módulo de filtro executa uma operação desblocagem para reduzir o bloqueio artefatos associados com o CU, o decodificador de vídeo 30 pode armazenar o vídeo bloco do CU em um armazenador temporário de imagem decodificada. O armazenador temporário de imagem decodificada pode fornecer imagens de referência para compensação de movimento subsequente, intra-predição e apresentação em um dispositivo de exibição, como dispositivo de visualização de 32 de figura 1. Por exemplo, o decodificador de vídeo 30 pode realizar, com base em blocos de vídeo no armazenador temporário de imagem decodificada, intra ou inter-predição operações predição pus de outras CUs.
[0080] Em um codificador de vídeo típico, o quadro da sequência de vídeo original é dividido em regiões retangulares ou blocos, que são codificados em modo (modo i) Intra ou inter (modo P). Os blocos são codificados usando algum tipo de codificação de transformação, como a codificação DCT. No entanto, puro baseado na transformação de codificação pode apenas reduzir a correlação entre pixel dentro de um determinado bloco, sem considerar a correlação entre bloco de pixels e ainda pode produzir altas taxas de bits para transmissão. Os padrões de codificação imagem digital atual, também pode explorar certos métodos que reduzem a correlação dos valores de pixel entre os blocos.
[0081] Em geral, blocos codificados em modo-P são preditos de um dos quadros anteriormente codificados e transmitidos. As informação de predição de um bloco podem ser representadas por um vetor bidimensional (2D) movimento. Para os blocos codificados no modo-, o bloco previsto é formado usando predição espacial de blocos vizinhos já codificados dentro do mesmo quadro. O erro de predição (por exemplo, a diferença entre o bloco sendo codificado e o bloco previsto) pode ser representado como um conjunto de funções de base ponderada de alguma transformação discreta. O erro de predição também pode ser referido como dados residuais. A transformação geralmente é executada em uma base de bloco 8 x 8 ou 4 x 4. Os pesos (por exemplo, transformar coeficientes) posteriormente são quantizados. Quantização introduz perda de informação e, portanto, coeficientes quantizados têm menor precisão do que os originais.
[0082] Coeficientes de transformada quantizados, juntamente com os vetores de movimento e alguma informação de controle, podem formar-se uma representação de sequência codificada completa e são referidos como elementos de sintaxe. Antes da transmissão do codificador para o decodificador, todos os elementos de sintaxe podem ser codificados para reduzir ainda mais o número de bits necessários para sua representação de entropia.
[0083] No decodificador, o bloco no quadro atual pode ser obtido através da primeira construção predição do bloco da mesma maneira como o codificador e adicionando à predição o erro de predição compactado. O erro de predição compactado pode ser encontrado ponderando- se as funções de base de transformação através dos coeficientes quantizados. A diferença entre o quadro reconstruído e o quadro original pode ser chamada de erro de reconstrução.
Modalidades de Codificação e Compactação de Vídeo
[0084] Inter-predição em MVC pode incluir tanto imagens de inter-predição dentro de cada modo de exibição como predição de exibição inter (por exemplo, a predição entre modos de exibição). Predição de exibição Inter é suportada no MVC usando a compensação de movimento de disparidade, que pode aplicar a sintaxe da compensação de movimento de 264/AVC, mas permite que uma imagem em uma visão diferente para ser usado como uma imagem de referência. Codificação de dois modos de exibição também pode ser suportada pelo MVC. Uma das vantagens do MVC como resultado, pode ser que um codificador usando MVC pode levar mais de dois pontos de vista como uma entrada de vídeo 3D; e um decodificador usando MVC pode decodificar tal uma representação de múltiplas vista. Assim, um renderizador e decodificador usando MVC podem esperar o conteúdo de vídeo 3D com mais de dois pontos de vista.
[0085] A predição de exibição inter pode ser admitida entre imagens na mesma unidade de acesso, contendo as imagens codificadas de todas as exibições para uma instância de tempo de saída. Assim, no caso de uma imagem em uma exibição não-base de codificação, uma imagem pode ser adicionada em uma lista de referência em uma ou mais posições diferentes se a imagem está dentro de uma visão diferente e na mesma instância do tempo como outra imagem.
[0086] No exemplo da construção de uma lista de referência para um filme B, por exemplo, o processo de construção pode envolver duas etapas. Em primeiro lugar, a lista de referência pode ser inicializada. Referência lista de inicialização pode ser um mecanismo para a colocação de imagens de referência em uma memória de imagens de referência, por exemplo, como armazenador temporário de imagem decodificada 114 da figura 2 ou referenciar imagens memória 160 da figura 3, em uma lista de acordo com a ordem de um valor POC (contagem de ordem de imagem). O POC pode ser alinhado com a ordem de exibição de uma imagem. Em segundo lugar, a lista de referência pode ser reordenada. Reordenação da lista de referência pode envolver a modificar a posição de uma imagem em uma lista de referência ou colocando uma imagem de referência na memória de imagens de referência em uma determinada posição, embora as imagens não possam pertencer à lista de referência inicializado. Algumas imagens após reordenação da lista de referência pode ser considerado colocado em uma posição na lista de referência final. No entanto, em alguns casos, se uma posição de uma imagem excede o número de imagens de referência ativo da lista, uma imagem pode não considerada como uma entrada da lista de referência final. Um número de quadros de referência ativos pode ser sinalizado no cabeçalho da fatia para cada lista. Uma vez que as listas de referência são construídas, um índice de referência pode ser usado para identificar a imagem nas listas de referência.
[0087] Um Temporal Motion Vector Predictor (TMVP) pode ser determinado em HEVC acessando um vetor de movimento de uma imagem em um armazenador temporário de imagem decodificada, tal como uma lista de referência. Na implementação de um exemplo, quando o TMVP está habilitado para uma sequência de vídeo codificada toda, um "sps_temporal_mvp_enable_flag" em um conjunto de parâmetros de sequência pode ser definido como 1. Um “slice_temporal_mvp_enable_flag” pode então mais sinal no cabeçalho fatia se TMVP está habilitado para uma fatia específica. Quando TMVP está habilitado para uma fatia específica, um “collocated_from_l0_flag” pode ser usado para sinalizar no cabeçalho da fatia se co-localizado imagem é de uma lista de referência, tais como lista 0 ou lista 1. Depois de uma lista de referência é identificada, um "collocated_ref_idx" pode ser sinalizado no cabeçalho da fatia que identifique a imagem na imagem na lista. Um PU co-localizado pode ser identificada verificando as imagens co-localizados e o movimento de um PU inferior direito do CU contendo este PU ou o movimento do PU inferior direito dentro do centro de PUs do CU contendo este PU pode ser usado.
[0088] Movendo-se agora para a figura 4, figura 4 é um diagrama conceitual ilustrando os dados de vídeo de exemplo 400 utilizável para a predição de uma camada de reforço. Os dados de vídeo 400 incluem blocos de camada base 410, tais como uma camada de base destacada bloco 412, e informação de modo de predição (não mostradas) associado com os blocos da camada base 410. A informação de modo de predição inclui informação de pixel não associadas com as amostras dos blocos de camada base 410 e é utilizável para efeitos de compactação de vídeo. Tal informação não-pixel pode incluir, mas não está limitada a, informação sobre o modo predição como modo de intra- predição, modo de inter-predição, sintaxes, vetores de movimento, os índices de referência e direções inter (por exemplo, unidirecional LO, bidirecional Ll, ou bidirecional).
[0089] Os blocos da camada base 410 são que blocos de cada amostra de 16 x 16 no exemplo da figura 4. Cada amostra da camada base destacada bloco 412 é mostrada na figura 4. A informação de modo de predição associadas à camada de base destacada bloco 412, por sua vez, pode ser armazenada com uma resolução correspondente a amostras 4 x 4 do bloco de camada base destacada 412. Por exemplo, um conjunto de informação de modo de predição pode armazenar informação sobre o modo predição associado com o sub blocos amostra realçada 4x4 414 do bloco de camada base destacada 412 enquanto outros conjuntos de informação de modo de predição individualmente podem armazenar informação de modo de predição associado com outros sub-blocos de amostra de 4 x 4 do bloco de camada base destacada 412. Estes blocos correspondentes resoluções de informação de modo de predição da figura 4 e tamanhos são fornecidas como exemplos ilustrativos. Em algumas modalidades, os blocos de camada base 410 podem incluir mais amostras (por exemplo, amostras de 32 x 32 ou 64 x 64 amostras) ou menos amostras (por exemplo, 4 x 4 amostras ou amostras de 8 x 8), e as informação de modo de predição para a camada de base destacada bloco 412 podem ter uma resolução correspondente a mais amostras (por exemplo, amostras de 8 x 8) ou menos amostras (por exemplo, amostras de 2 x 2 ou lxl) do bloco de camada base destacada 412.
[0090] Referindo-se à figura 5, a figura 5 é um diagrama conceitual 500 que ilustra dados de vídeo de camada base exemplar; e dados de vídeo de camada base sobreamostrados. O diagrama conceitual 500 inclui blocos de camada base sobreamostrados 520 e os blocos de camada de base 410.
[0091] Os blocos da camada base sobreamostrados 520 podem ser determinados por amostragem os blocos da camada base 410 de acordo com um rácio de aspecto espacial, como a espacial de proporção entre uma camada de reforço e a camada de base dos dados de vídeo. Os blocos individuais dos blocos de camada base 410 quando é aumentada, portanto, tem um bloco correspondente é aumentada, que contém uma versão reduzida ou re-amostrada dos blocos individuais. Por exemplo, o bloco de camada de base sobreamostrado realçado 522 pode corresponder ao bloco de camada de base destacada 412 e ser determinado por sobreamostragem do bloco de camada base destacada 412.
[0092] A informação de modo de predição associada com os blocos da camada base 410 pode também ser sobreamostrados e associada com os blocos de camada base sobreamostrados 520. O sobreamostragem de informação de modo de predição pode coincidir com a sobreamostragem dos blocos de camada de base 520, de modo que a informação de modo de predição é sobreamostrados de acordo com a mesma relação de aspecto espacial usada para sobreamostrar os blocos da camada base 410. Em algumas implementações, a resolução espacial da informação de modo de predição sobreamostrados ainda mais pode depender um tamanho de bloco usado para redução da resolução de determinadas informação de modo de predição, tais como informação de movimento.
[0093] Em algumas modalidades, a informação de modo de predição associada com um ou mais blocos de camada de base (por exemplo, única base camada bloco) pode ser usada para determinar a informação de modo de predição sobreamostrados associadas com uma camada de base inteira sobreamostrados bloco. Por exemplo, a informação de modo de predição associadas com o sub-bloco de amostra realçada 4 x 4 414 pode ser sobreamostrado e atribuído como a informação de modo de predição associadas ao bloco de camada de base sobreamostrado realçado 522. Tal abordagem vantajosamente pode (1) limitar ou reduzir uma quantidade de informação de modo de predição associadas com o bloco de camada base realçado sobreamostrado 522 e armazenado para uso na codificação de inter-predição e (2) utilizar implementações existentes de um codec para codificação de única camada sem implementar alterações de nível de bloco. Em uma implementação, a informação de modo de predição juntamente com informação de pixel sobreamostrados podem ser armazenadas em uma imagem de inter-camada gerada. Esta imagem de inter-camada pode ser a versão sobreamostrados do quadro de camada de base e uma recém-gerado imagens com uma resolução espacial que corresponde à resolução espacial do quadro de camada de reforço. Depois da derivação, a imagem de inter-camada pode incluir as mesmas informação que uma imagem de referência temporal e pode ser adicionada a uma lista de imagens de referência e usada para inter-predição da camada de reforço. O tamanho do bloco de camada de reforço adicional pode ser selecionado de acordo com o armazenamento de informação do modo de predição definido por um codec de camada de reforço usado na codificação. Por exemplo, na informação de movimento de sobreamostragem no HEVC padrão, um conjunto de informação de modo de predição pode ser armazenado em uma base de 16 x 16 amostras. Para ser compatível com o HEVC padrão sem a introdução de alterações no nível de bloco e para além do nível de fatia, a granularidade no qual a informação de modo de predição é armazenada na camada de inter-imagem pode ser pelo menos de amostras 16 x 16.
[0094] Em conjunto com esta abordagem, uma ou mais regras de seleção diferentes podem ser usadas para selecionar informação de modo de predição de ser sobreamostrados e associadas com um bloco de camada base é aumentada. As regras de seleção diferente podem fornecer regras alternativas ou compostas para selecionar a informação de modo de predição. Uma regra de seleção de exemplo pode fornecer que uma localização de um sub-bloco camada base (por exemplo, o destaque 4 x 4 amostra sub- bloco 414) associado com informação sobre o modo particular de predição pode ser utilizada para selecionar ou derivar informação de modo de predição. A localização do sub-bloco para esta regra de seleção pode, por exemplo, denotar um sub-bloco de canto particular como o sub-bloco do canto inferior esquerdo ou superior direito do bloco de camada de base, ou um sub-bloco de centro como o sub-bloco centro superior esquerdo ou inferior direito do bloco de camada de base. No exemplo da figura 5, a informação de modo de predição associadas com o sub-bloco de amostra realçado de 4 x 4 414 pode ser selecionadas com base em uma regra de seleção de localização de sub-bloco centro inferior direito. Outra regra de seleção de exemplo pode fornecer que valores de informação de modo de predição são utilizados para selecionar a informação de modo de predição. Por exemplo, os valores dos vetores de movimento das unidades modo de predição podem ser comparados e a informação de modo de predição associado com o vetor de movimento, tendo um maior ou menor valor total ou médio pode ser selecionada. Uma ou mais regras de seleção podem ser sinalizadas como um elemento de sintaxe ou um indicador armazenado em um cabeçalho (por exemplo, um vídeo parâmetro definido, sequência de parâmetro definido, imagens parâmetro definido ou cabeçalho de fatia) ou em outro lugar ou determinada de acordo com o conjunto padrão de regras, dependendo da implementação.
[0095] Além disso, quando uma ou mais regras de seleção são aplicadas, algumas informação de modo de predição associadas com um bloco de camada de base não podem ser sobreamostrados em alguns casos porque esta parte da informação não pode depender a relação espacial como faz, por exemplo, um vetor de movimento. Nesse sentido, informação sobre o modo particular de predição pode ser derivada com base em uma regra de seleção e, em seguida, sobreamostrados antes de ser associado com um bloco de camada base é aumentada. Em outras modalidades, a informação de modo de predição associadas com o bloco de camada de base podem ser primeira sobreamostrados e em seguida, de acordo com uma regra de seleção, informação de modo particular sobreamostrados predição podem ser derivadas e associadas com um bloco de camada base é aumentada. Além disso, a informação de modo de predição pode ser diminuída antes ou após o processo de amostragem em algumas implementações.
[0096] Uma imagem de base sobreamostrada, incluindo blocos de camada base sobreamostrados, como o bloco de camada de base sobreamostrado realçado 522, pode ser colocada em um ou mais camada de realce imagens listas de referência como parte de uma camada de base reconstruída imagens ou como uma imagem recém-gerado (por exemplo, uma imagem de camada inter) e utilizado para a predição da camada de reforço. A imagem da camada base reconstruída ou o quadro de referência de inter-camada pode ser adicionado ao ou substituir outra imagem na uma ou mais listas de referência de. A informação de modo de predição sobreamostrados associadas com o bloco de camada base sobreamostrados podem ser usadas para predição de movimento Interamericano de camada da camada de reforço. Mais do que uma imagem de camada base tendo diferentes bloquear sobreamostragens e/ou sobreamostragens de modo de predição podem ser adicionados às listas de referência de um ou mais. O bloco diferente sobreamostragens e/ou sobreamostragens de modo de predição pode ser indicado ou marcado usando uma sintaxe elemento ou indicador. Em determinadas modalidades, o sinalizador ou elemento de sintaxe pode indicar que pelo menos um de um bloco ou modo de predição sobreamostragem difere de uma sobreamostragem de padrão.
[0097] Em determinadas modalidades, para evitar problemas relacionados à atribuição de informação de modo de predição para uma imagem de camada base inserida como referência, uma imagem de camada de base pode não ser usada como um quadro de referência co-localizado (por exemplo, um parâmetro “collocated_ref_idx” não pode ser igual ao índice de referência da imagem da camada de base na lista de referência de camada de reforço). A lista de referência em tais implementações pode ser definida como lista 0, lista 1 ou duas listas de 0 e 1. Ainda mais, a lista de referência pode ser definida por um parâmetro “collocated_from_l0_flag” indicando se uma imagem co- localizado usada para predição de vetor de movimento temporal é derivada de lista 0 ou lista 1. Além disso, um TMVP pode ser marcado como indisponível se um índice de referência co-localizado aponta para o quadro de referência de camada de base (por exemplo, um ou mais sinalizadores TMVP podem indicar que TMVP está desativada, como um parâmetro “sps_temporal_mvp_enable_flag” ou “slice_temporal_mvp_enable_flag” pode ser indicado para ser desligado).
[0098] Em algumas modalidades, se uma imagem de camada base é inserida em uma lista de imagens de referência de camada realce como uma fatia de P, a informação de modo de predição para inter-predição pode ser designada para lista 0, mas não para a lista 1. Por outro lado, se a imagem da camada base é inserida como uma fatia de B, as informação de modo de predição para inter-predição pode ser atribuído para listas de 0 e 1. No entanto, mesmo quando a informação de modo de predição associadas com um bloco de camada base são unidirecional, as informação de modo de predição podem ser feitas para ser bi-direcional como parte de um processo de amostragem para obter informação de modo de predição. Na abordagem de um exemplo, um vetor de movimento unidirecional é dimensionado da lista 0 deve então ser usado para a lista 1, com um índice de referência específica (por exemplo, zero ou um). Em outro exemplo, informação de modo unidirecional predição são suplementadas com zero movimento ou outra informação do movimento padrão. Além disso, mesmo para B-fatia, um campo de movimento unidirecional pode ser usado para lista 0 ou lista 1.
[0099] A figura 6 é um diagrama conceitual 600 que ilustra o exemplo camada base dados de vídeo e dados de vídeo de camada base é aumentada. A camada de base destacada bloco 412 situa-se em uma posição na camada de base correspondente para a posição do bloco de camada base sobreamostrado realçado 522, que é um bloco vizinho do bloco de camada base sobreamostrado realçado 624 na camada de base é aumentada. A figura 6 é semelhante da figura 5, no entanto, a informação de modo de predição associadas com o sub-bloco de amostra de 4 x 4 realçado 414 pode ser sobreamostrado e, além disso, ou, alternativamente, atribuído como as informação de modo de predição associadas ao bloco de camada de base sobreamostrado realçado 624. Ou seja, o sub-bloco de destaque 4x4 amostra 414 pode ser localizado diferente relativo a um sobreamostrados base bloco de camada superior ao indicado na figura 5 e não pode ser um bloco co-localizado com o bloco de camada base é aumentada. Em algumas modalidades, a informação de modo de predição da unidade de modo de predição 422 pode adicionalmente ou alternativamente ser atribuída a um ou mais de outros blocos de camada de base sobreamostrados, como os outros blocos adjacentes do bloco de camada base sobreamostrado co-localizado realçado 522 ou o bloco de camada de base sobreamostrado realçado 624.
[00100] A figura 7 ilustra um método de exemplo 700 para codificação de dados de vídeo. O método 700 pode ser realizado por um ou mais componentes de codificador de vídeo de 20 ou decodificador de vídeo 30, incluindo o módulo de inter-predição 121, módulo de sobreamostragem 130, unidade de compensação de movimento 162 ou módulo de sobreamostragem 170. Em algumas modalidades, outros componentes podem ser usados para implementar uma ou mais das etapas descritas neste documento. O método 700 pode ser usado para executar uma ou mais das ações descritas em relação à figura 4-6, por exemplo.
[00101] No nó 705, informação sobre o modo predição associada com um dos vários sub-blocos de um bloco de vídeo em uma camada de base é derivada usando pelo menos uma regra de seleção. A informação de modo de predição pode incluir modo de intra-predição, inter modo de predição, informação de movimento, ou como associados com o bloco de vídeo e pode ser usado para compactação de vídeo do bloco de vídeo. A informação de modo de predição associadas com o bloco de vídeo podem ser armazenadas com uma resolução correspondente a 4 x 4 amostras do bloco de vídeo. Em algumas modalidades, a informação de modo de predição associadas com um determinado bloco sub do bloco de vídeo (por exemplo, o bloco centro inferior direito sub) são selecionadas e derivadas de acordo com a regra de seleção. A unidade de modo particular predição pode adicionalmente ou alternativamente ser indicada e determinada com base em um elemento de sintaxe ou de indicador ou de um conjunto padrão de regras.
[00102] No nó 710, a informação de modo de predição derivada e o bloco de vídeo são é aumentada. A informação de modo de predição, por exemplo, podem ser sobreamostrados de acordo com uma relação de aspecto espacial entre uma camada de reforço e uma camada de base de conteúdo de vídeo em algumas implementações.
[00103] No nó 715, a informação de modo de predição sobreamostrados são associadas com cada sub-bloco sobreamostrado do bloco de vídeo sobreamostrado. A informação modo de predição sobreamostrado e o bloco sobreamostrado podem, por sua vez, ser usado em conjunto para predizer os blocos de vídeo (por exemplo, valores de amostra) na camada de reforço. Em determinadas modalidades, um bloco de vídeo na camada de reforço pode ser co- localizado com o bloco de vídeo na camada de base para que o bloco de vídeo na camada de base está localizado em uma posição na camada de base correspondente para a posição do bloco de vídeo na camada de reforço. Alternativamente, um bloco de vídeo na camada de base pode ser localizado em uma posição na camada de base correspondente para a posição de um bloco de vídeo vizinha para o bloco de vídeo na camada de reforço. Em um exemplo, o bloco de vídeo vizinho pode ser posicionado adjacente para o bloco de vídeo na camada de reforço.
[00104] Adicionalmente, ou como alternativa para o método 700, informação de modo de predição de padrão pode ser associada com um sobreamostrados camada base bloco e/ou imagens, em vez de sobreamostrados predição modo informação em algumas modalidades. Por exemplo, zero movimento pode ser associado com um bloco de camada base sobreamostrados tais que um vetor de movimento e um índice de referência associado ao bloco de camada base sobreamostrado são definidas como zero. Em outro exemplo, informação de modo de predição associadas com um bloco de camada base sobreamostrados podem ser marcadas como indisponível, definindo um índice de referência associada ao menos um. A informação de modo de predição padrão nesses casos pode ser definida como lista de 0, lista 1 ou ambas as listas, 0 e 1.
[00105] Além disso, informação de modo de predição padrão pode ser associada com um bloco de camada base sobreamostrados e/ou imagens sob certas condições, mas não outros, tais como, de acordo com uma regra de atribuição. Por exemplo, informação de modo de predição de padrão pode ser usada quando uma imagem de referência do alvo TMVP faz referência a uma imagem co-localizada (por exemplo, um índice de referência TMVP equivale a um índice de referência co-localizado) e não usado quando a imagem de referência do alvo TMVP não faz referência a uma imagem co- localizada. Em outro exemplo, informação de modo de predição padrão pode depender de uma codificação usada para comprimir uma camada de base. Por exemplo, informação de modo de predição de padrão pode ser usada se uma camada de base é codificada usando um codec que não HEVC, tais como H.264 AVC ou MPEG-2 e não usadas se a camada base é codificada usando um codec HEVC. Tal abordagem vantajosamente pode evitar extrair sintaxes de camada de base quando extrair as sintaxes de camada de base pode ser difícil dado o codec usado para compactar a camada de base.
[00106] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementada em software, as funções podem ser armazenadas no, ou transmitidas através do, como uma ou mais instruções ou código, meio legível por computador e executadas por uma unidade de processamento baseado em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, os quais correspondem a um meio tangível; tal como os meios de armazenamento de dados, ou meios de comunicação incluindo qualquer meio que facilita a transferência de um programa de computador de um local para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, meios legíveis por computador geralmente podem corresponder a (1) meios de armazenamento tangíveis legíveis por computador os quais são não transitórios ou (2) um meio de comunicação tal com um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que podem ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[00107] Como um exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro meio de armazenamento de dados de estado sólido, ótico ou magnético, incluindo armazenamento de disco ótico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possam ser acessados por um computador. Além disso, qualquer conexão é propriamente denominada meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio de rede, servidor, ou outra fonte remota utilizando um cabo coaxial, cabo de fibras óticas, par de fios torcidos, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo axial, cabo de fibras óticas, par de fios torcidos, DSL, ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve ser entendido, contudo, que meios de armazenamento tangíveis legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transientes, mas em vez disso são dirigidos aos meios de armazenamento não transientes, tangíveis. Disco magnético e disco ótico, conforme aqui usado, incluem disco compacto (CD), disco a laser, disco ótico, disco digital versátil (DVD), disquete e disco Blu-ray, onde discos magnéticos normalmente reproduzem os dados magneticamente, enquanto que os discos óticos reproduzem os dados oticamente com laseres. Combinações dos mencionados acima também devem ser incluídas no escopo de meios legíveis por computador.
[00108] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis no campo (FPGAs), ou outros circuitos lógicos integrados ou discretos equivalentes. Consequentemente, o termo ”processador”, conforme aqui usado pode se referir a qualquer uma da estrutura precedente ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de hardware e/ou software, dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas poderiam ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[00109] As técnicas dessa revelação podem ser implementadas em uma ampla variedade de dispositivos ou equipamentos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa revelação para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não requerem necessariamente a realização por diferentes unidades de hardware. Mais propriamente, conforme descrito acima, as várias unidades podem ser combinadas em uma unidade de hardware de codec ou providas por um grupo de unidades de hardware interoperativas, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequado.
[00110] Ainda em outros exemplos, essa revelação pode ser direcionada para um meio legível por computador que armazena conteúdo de vídeo compactado, em que o conteúdo de vídeo é compactado de acordo com uma ou mais das técnicas descritas neste documento.
[00111] Vários exemplos foram descritos. Esses e outros exemplos estão abrangidos pelo escopo das reivindicações a seguir.

Claims (11)

1. Aparelho configurado para decodificar dados de vídeo, caracterizado pelo fato de compreender: meio para armazenar dados de vídeo associados com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial maior do que a primeira resolução espacial, os dados de vídeo associados com a primeira camada incluindo pelo menos um bloco de primeira camada (412) e informação de modo de predição de primeira camada associada com o bloco de primeira camada, o bloco de primeira camada incluindo uma pluralidade de sub-blocos onde cada sub-bloco é associado a respectivos dados de modo de predição da informação de modo de predição de primeira camada, em que os dados de modo de predição compreendem um vetor de movimento; meio para derivar o vetor de movimento associado a um sub-bloco da pluralidade de sub-blocos, o um sub-bloco sendo um sub-bloco de centro (414) do bloco de primeira camada (412), tendo como vizinhança em cada lado um da pluralidade de sub-blocos do bloco de primeira camada; meio para sobreamostrar o vetor de movimento derivado e o bloco de primeira camada, o bloco de primeira camada sobreamostrado (522) incluindo uma pluralidade de sub-blocos sobreamostrados; meio para atribuir o vetor de movimento sobreamostrado como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; meio para armazenar, em uma imagem inter-camada, a pluralidade de sub-blocos sobreamostrados e o vetor de movimento sobreamostrado atribuído como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; e meio para adicionar a imagem inter-camada a uma lista de imagens de referência utilizável para inter- predição da segunda camada.
2. Aparelho configurado para codificar dados de vídeo, caracterizado pelo fato de compreender: meio para armazenar dados de vídeo associados com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial maior do que a primeira resolução espacial, os dados de vídeo associados com a primeira camada incluindo pelo menos um bloco de primeira camada (412) e informação de modo de predição de primeira camada associada com o bloco de primeira camada, o bloco de primeira camada incluindo uma pluralidade de sub-blocos onde cada sub-bloco é associado a respectivos dados de modo de predição da informação de modo de predição de primeira camada, em que os dados de modo de predição compreendem um vetor de movimento; meio para derivar o vetor de movimento associado a um sub-bloco dentre a pluralidade de sub-blocos, o um sub-bloco sendo um sub-bloco de centro (414) do bloco de primeira camada (412), tendo como vizinhança em cada lado um da pluralidade de sub-blocos do bloco de primeira camada; meio para sobreamostrar o vetor de movimento derivado e o bloco de primeira camada, o bloco de primeira camada sobreamostrado (522) incluindo uma pluralidade de sub-blocos sobreamostrados; meio para atribuir o vetor de movimento sobreamostrado como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; meio para armazenar, em uma imagem inter-camada, a pluralidade de sub-blocos sobreamostrados e o vetor de movimento sobreamostrado atribuído como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; e meio para adicionar a imagem inter-camada a uma lista de imagens de referência utilizável para inter- predição da segunda camada.
3. Método de decodificação de dados de vídeo, caracterizado pelo fato de compreender: armazenar dados de vídeo associados com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial maior do que a primeira resolução espacial, os dados de vídeo associados com a primeira camada incluindo pelo menos um bloco de primeira camada (412) e informação de modo de predição de primeira camada associada com o bloco de primeira camada, o bloco de primeira camada incluindo uma pluralidade de sub-blocos onde cada sub-bloco é associado com respectivos dados de modo de predição da informação de modo de predição de primeira camada, em que os dados de modo de predição compreendem um vetor de movimento; derivar (705) o vetor de movimento associado a um sub-bloco dentre a pluralidade de sub-blocos, o um sub- bloco sendo um sub-bloco de centro (414) do bloco de primeira camada (412), tendo como vizinhança em cada lado um da pluralidade de sub-blocos do bloco de primeira camada; sobreamostrar (710) o vetor de movimento derivado e o bloco de primeira camada, o bloco de primeira camada sobreamostrado (522) incluindo uma pluralidade de sub- blocos sobreamostrados; atribuir (715) o vetor de movimento sobreamostrado como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; armazenar, em uma imagem inter-camada, a pluralidade de sub-blocos sobreamostrados e o vetor de movimento sobreamostrado atribuído como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; e adicionar a imagem inter-camada a uma lista de imagens de referência utilizável para inter-predição da segunda camada.
4. Método de codificação de dados de vídeo, caracterizado pelo fato de compreender: armazenar dados de vídeo associados com uma primeira camada tendo uma primeira resolução espacial e uma segunda camada tendo uma segunda resolução espacial maior do que a primeira resolução espacial, os dados de vídeo associados com a primeira camada incluindo pelo menos um bloco de primeira camada (412) e informação de modo de predição de primeira camada associada com o bloco de primeira camada, o bloco de primeira camada incluindo uma pluralidade de sub-blocos onde cada sub-bloco é associado com respectivos dados de modo de predição da informação de modo de predição de primeira camada, em que os dados de modo de predição compreendem um vetor de movimento; derivar (705) o vetor de movimento associado com um sub-bloco dentre a pluralidade de sub-blocos, o um sub- bloco sendo um sub-bloco de centro (414) do bloco de primeira camada (412), tendo como vizinhança em cada lado um da pluralidade de sub-blocos do bloco de primeira camada; sobreamostrar (710) o vetor de movimento derivado e o bloco de primeira camada, o bloco de primeira camada sobreamostrado (522) incluindo uma pluralidade de sub- blocos sobreamostrados; atribuir (715) o vetor de movimento sobreamostrado como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; armazenar, em uma imagem inter-camada, a pluralidade de sub-blocos sobreamostrados e o vetor de movimento sobreamostrado atribuído como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados; e adicionar a imagem inter-camada a uma lista de imagens de referência utilizável para inter-predição da segunda camada.
5. Método, de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de compreender adicionalmente determinar um valor predito para cada sub-bloco de um bloco de segunda camada na segunda camada utilizando a pluralidade de sub-blocos sobreamostrados e o vetor de movimento sobreamostrado atribuído como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados armazenados na imagem inter-camada adicionada à lista de imagens de referência, o bloco de primeira camada sendo localizado em uma posição na primeira camada correspondente à posição do bloco de segunda camada na segunda camada.
6. Método, de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de que uma relação de resolução espacial entre o vetor de movimento sobreamostrado e o vetor de movimento derivado coincide com a relação de resolução espacial entre a segunda resolução espacial e a primeira resolução espacial.
7. Método, de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de compreender adicionalmente: atribuir o vetor de movimento sobreamostrado como o vetor de movimento associado a cada sub-bloco sobreamostrado do bloco de primeira camada sobreamostrado quando um primeiro codificador-decodificador (codec) é usado para compactar o bloco de primeira camada; e atribuir, com base em pelo menos uma regra de atribuição, um vetor de movimento padrão como o vetor de movimento associado a cada sub-bloco sobreamostrado do bloco de primeira camada sobreamostrado quando um segundo codec diferente do primeiro codec é usado para compactar a unidade de vídeo na primeira camada.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de compreender ainda atribuir, de acordo com a regra de atribuição, o vetor de movimento padrão como sendo ao menos um dentre um vetor de movimento zero e um campo de movimento marcado como indisponível.
9. Método, de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de compreender ainda determinar um valor predito para cada sub-bloco de um bloco de segunda camada na segunda camada utilizando a pluralidade de sub- blocos sobreamostrados e o vetor de movimento sobreamostrado atribuídos como o vetor de movimento associado a cada sub-bloco sobreamostrado dentre a pluralidade de sub-blocos sobreamostrados armazenados na imagem inter-camada adicionada à lista de imagens de referência, o bloco de primeira camada sendo localizado em uma posição na primeira camada correspondente à posição de um bloco de segunda camada vizinho posicionado adjacente ao bloco de segunda camada na segunda camada.
10. Método, de acordo com a reivindicação 3, caracterizado pelo fato compreender ainda receber um elemento de sintaxe extraído a partir de um fluxo de bits de vídeo codificado, o elemento de sintaxe indicativo do vetor de movimento associado com o bloco de vídeo de primeira camada; ou o método de acordo com a reivindicação 4 compreendendo ainda gerar um elemento de sintaxe para um fluxo de bits de vídeo codificado, o elemento de sintaxe indicativo do vetor de movimento associado com o bloco de vídeo de primeira camada.
11. Memória legível por computador, caracterizada pelo fato de que armazena instruções de programa executáveis que, quando executadas por um aparelho para decodificação ou codificação de dados de vídeo, levam o aparelho a realizar o método conforme definido em qualquer umas das reivindicações 3 a 10.
BR112015007116-3A 2012-10-05 2013-09-26 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 BR112015007116B1 (pt)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201261710640P 2012-10-05 2012-10-05
US61/710,640 2012-10-05
US201261711704P 2012-10-09 2012-10-09
US61/711,704 2012-10-09
US201261728193P 2012-11-19 2012-11-19
US61/728,193 2012-11-19
US14/035,129 US20140098880A1 (en) 2012-10-05 2013-09-24 Prediction mode information upsampling for scalable video coding
US14/035,129 2013-09-24
PCT/US2013/062001 WO2014055327A1 (en) 2012-10-05 2013-09-26 Prediction mode information upsampling for scalable video coding

Publications (2)

Publication Number Publication Date
BR112015007116A2 BR112015007116A2 (pt) 2017-07-04
BR112015007116B1 true BR112015007116B1 (pt) 2023-03-14

Family

ID=50432655

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015007116-3A BR112015007116B1 (pt) 2012-10-05 2013-09-26 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

Country Status (7)

Country Link
US (2) US20140098880A1 (pt)
EP (1) EP2904802B1 (pt)
JP (2) JP2015532552A (pt)
KR (1) KR102188488B1 (pt)
CN (1) CN104718757B (pt)
BR (1) BR112015007116B1 (pt)
WO (1) WO2014055327A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3754982B1 (en) 2011-09-29 2024-05-01 SHARP Kabushiki Kaisha Image decoding device, image decoding method, image encoding method and image encoding device for performing bi-prediction to uni-prediction conversion
US20140098880A1 (en) 2012-10-05 2014-04-10 Qualcomm Incorporated Prediction mode information upsampling for scalable video coding
US10085017B2 (en) 2012-11-29 2018-09-25 Advanced Micro Devices, Inc. Bandwidth saving architecture for scalable video coding spatial mode
KR20140121315A (ko) * 2013-04-04 2014-10-15 한국전자통신연구원 참조 픽처 리스트를 이용한 다 계층 기반의 영상 부호화/복호화 방법 및 그 장치
KR20140122195A (ko) * 2013-04-05 2014-10-17 삼성전자주식회사 인터 레이어 복호화 및 부호화 방법 및 장치를 위한 인터 예측 후보 결정 방법
US9510001B2 (en) * 2013-07-09 2016-11-29 Electronics And Telecommunications Research Institute Video decoding method and apparatus using the same
KR20150026927A (ko) 2013-09-03 2015-03-11 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
WO2016068630A1 (ko) * 2014-10-29 2016-05-06 엘지전자(주) 비디오 신호의 인코딩, 디코딩 방법 및 그 장치
US20170105006A1 (en) * 2015-10-13 2017-04-13 Mediatek Inc. Method and Apparatus for Video Coding Using Master-Slave Prediction Structure
CN106170089B (zh) * 2016-08-25 2020-05-22 上海交通大学 基于h.265的多路编码方法
US10778976B2 (en) * 2016-09-28 2020-09-15 Sharp Kabushiki Kaisha Image decoding apparatus and image coding apparatus
FR3072850B1 (fr) 2017-10-19 2021-06-04 Tdf Procedes de codage et de decodage d'un flux de donnees representatif d'une video omnidirectionnelle
CN112514387B (zh) 2018-07-26 2023-02-03 谷歌有限责任公司 空间层速率分配方法和系统
JP7230189B2 (ja) 2018-10-08 2023-02-28 エルジー エレクトロニクス インコーポレイティド シンタックスデザイン方法及びシンタックスを用いてコーディングを行う装置
SG11202104022XA (en) * 2018-11-02 2021-05-28 Beijing Bytedance Network Technology Co Ltd Table maintenance for hmvp candidate storage
US10855983B2 (en) 2019-06-13 2020-12-01 Intel Corporation Encoding video using two-stage intra search

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5790839A (en) * 1996-12-20 1998-08-04 International Business Machines Corporation System integration of DRAM macros and logic cores in a single chip architecture
US5901304A (en) * 1997-03-13 1999-05-04 International Business Machines Corporation Emulating quasi-synchronous DRAM with asynchronous DRAM
KR100244769B1 (ko) * 1997-06-26 2000-02-15 전주범 스케일러빌리티를 갖는 간 윤곽선 부호화 방법 및 장치
KR100240770B1 (ko) * 1997-07-11 2000-01-15 이형도 에너지보상/역보상기능을개선한스케러블부호화기및그방법
US6765962B1 (en) * 1999-12-02 2004-07-20 Sarnoff Corporation Adaptive selection of quantization scales for video encoding
US6826232B2 (en) * 1999-12-20 2004-11-30 Koninklijke Philips Electronics N.V. Fine granular scalable video with embedded DCT coding of the enhancement layer
US6580754B1 (en) * 1999-12-22 2003-06-17 General Instrument Corporation Video compression for multicast environments using spatial scalability and simulcast coding
US7477688B1 (en) * 2000-01-26 2009-01-13 Cisco Technology, Inc. Methods for efficient bandwidth scaling of compressed video data
US7095782B1 (en) * 2000-03-01 2006-08-22 Koninklijke Philips Electronics N.V. Method and apparatus for streaming scalable video
US6771703B1 (en) * 2000-06-30 2004-08-03 Emc Corporation Efficient scaling of nonscalable MPEG-2 Video
US7016412B1 (en) * 2000-08-29 2006-03-21 Koninklijke Philips Electronics N.V. System and method for dynamic adaptive decoding of scalable video to balance CPU load
WO2002035854A1 (en) * 2000-10-24 2002-05-02 Eyeball Networks Inc. Dct-based scalable video compression
US7263124B2 (en) * 2001-09-26 2007-08-28 Intel Corporation Scalable coding scheme for low latency applications
US7729421B2 (en) * 2002-02-20 2010-06-01 International Business Machines Corporation Low latency video decoder with high-quality, variable scaling and minimal frame buffer memory
US7391807B2 (en) * 2002-04-24 2008-06-24 Mitsubishi Electric Research Laboratories, Inc. Video transcoding of scalable multi-layer videos to single layer video
KR20060105409A (ko) * 2005-04-01 2006-10-11 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
US7369610B2 (en) * 2003-12-01 2008-05-06 Microsoft Corporation Enhancement layer switching for scalable video coding
US7697608B2 (en) * 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
CN101204092B (zh) 2005-02-18 2010-11-03 汤姆森许可贸易公司 从低分辨率图像导出高分辨率图像的编码信息的方法以及实施所述方法的编码和解码设备
CN101213840B (zh) * 2005-02-18 2011-02-02 汤姆森许可贸易公司 从低分辨率图像导出高分辨率图像的编码信息的方法以及实现该方法的编码和解码设备
KR100732961B1 (ko) * 2005-04-01 2007-06-27 경희대학교 산학협력단 다시점 영상의 스케일러블 부호화, 복호화 방법 및 장치
KR20070012201A (ko) 2005-07-21 2007-01-25 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
US8189659B2 (en) * 2005-08-30 2012-05-29 Thomson Licensing Cross-layer optimization for scalable video multicast over IEEE 802.11 wireless local area networks
JP2007081720A (ja) * 2005-09-13 2007-03-29 Sanyo Electric Co Ltd 符号化方法
EP1972154A4 (en) 2006-01-09 2014-11-19 Lg Electronics Inc INTERLAYER PREDICTION METHOD FOR VIDEO SIGNAL
JP5036826B2 (ja) 2006-12-14 2012-09-26 トムソン ライセンシング ビット深度スケーラビリティのためのエンハンスメントレイヤの残差予測を使用したビデオデータを符号化及び/又は復号化する方法及び装置
US8199812B2 (en) 2007-01-09 2012-06-12 Qualcomm Incorporated Adaptive upsampling for scalable video coding
TWI416961B (zh) * 2010-04-02 2013-11-21 Univ Nat Chiao Tung 用於可調式視訊編碼系統之選擇性移動向量預測方法、移動估測方法及其裝置
US20110268175A1 (en) * 2010-04-30 2011-11-03 Wai-Tian Tan Differential protection of a live scalable media
US20130028324A1 (en) * 2011-07-29 2013-01-31 National Chiao Tung University Method and device for decoding a scalable video signal utilizing an inter-layer prediction
US20130188719A1 (en) 2012-01-20 2013-07-25 Qualcomm Incorporated Motion prediction in svc using motion vector for intra-coded block
US9124899B2 (en) * 2012-09-28 2015-09-01 Sharp Laboratories Of America, Inc. Motion derivation and coding for scaling video
US20140098880A1 (en) 2012-10-05 2014-04-10 Qualcomm Incorporated Prediction mode information upsampling for scalable video coding

Also Published As

Publication number Publication date
JP6700323B2 (ja) 2020-05-27
US20170237990A1 (en) 2017-08-17
JP2018110410A (ja) 2018-07-12
CN104718757B (zh) 2019-08-06
US20140098880A1 (en) 2014-04-10
BR112015007116A2 (pt) 2017-07-04
WO2014055327A1 (en) 2014-04-10
EP2904802B1 (en) 2020-12-23
JP2015532552A (ja) 2015-11-09
CN104718757A (zh) 2015-06-17
KR102188488B1 (ko) 2020-12-08
US10721478B2 (en) 2020-07-21
EP2904802A1 (en) 2015-08-12
KR20150065797A (ko) 2015-06-15

Similar Documents

Publication Publication Date Title
CN116723315B (zh) 视频解码的方法和装置、视频编码的方法和装置及存储介质
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
US9491458B2 (en) Scalable video coding prediction with non-causal information
KR101858885B1 (ko) 비디오 코딩을 위한 모션 벡터 결정
JP5805849B2 (ja) ビデオコード化における動きベクトル予測
KR101825262B1 (ko) B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한
BR112019013705A2 (pt) predição temporal de filtro de laço adaptativo modificada para suporte de escalabilidade temporal
BR112017020102B1 (pt) Processo de amostragem descendente para modo de previsão de modelo linear
BR112017003073B1 (pt) Unificação de cópia de intrabloco e interpredição
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
BR112015024766B1 (pt) Desabilitação da ocultação de dados de sinal na codificação de vídeo
JP2015510358A (ja) Bスライス中の予測単位の単方向インター予測への制限
BR112015032977B1 (pt) Equipamento e método para codificar informações de vídeo, equipamento e método para decodificar informações de vídeo, e memória legível por computador
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
BR112015025639B1 (pt) Alinhamento poc de camada cruzada para fluxos de bits de várias camadas que podem incluir imagens irap não alinhadas
BR112015023800B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
BR112016013464B1 (pt) Método para decodificar e método para codificar um bloco de profundidade; dispositivo para decodificar e dispositivo para codificar um bloco de profundidade e memória legível por computador
BR112016006677B1 (pt) Tipo de dependência inter-vista em mv-hevc
WO2013155266A1 (en) Inter-layer mode derivation for prediction in scalable video coding
CN117499670A (zh) 一种视频图像预测方法及装置
CN114097246A (zh) 跨光栅扫描切片的自适应环路滤波
CN113498607B (zh) 视频编码方法、解码方法、装置和可读介质
TWI853918B (zh) 用於視訊寫碼之區塊內複製合併資料語法

Legal Events

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

Ipc: H04N 7/00 (2011.01)

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

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

Ipc: H04N 19/159 (2014.01), H04N 19/176 (2014.01), H04N

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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