BR112016001223B1 - Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador - Google Patents

Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador Download PDF

Info

Publication number
BR112016001223B1
BR112016001223B1 BR112016001223-2A BR112016001223A BR112016001223B1 BR 112016001223 B1 BR112016001223 B1 BR 112016001223B1 BR 112016001223 A BR112016001223 A BR 112016001223A BR 112016001223 B1 BR112016001223 B1 BR 112016001223B1
Authority
BR
Brazil
Prior art keywords
image
slice
video
block
information
Prior art date
Application number
BR112016001223-2A
Other languages
English (en)
Other versions
BR112016001223A2 (pt
Inventor
Marta Karczewicz
Krishnakanth RAPAKA
Jianle Chen
Xiang Li
Vadim SEREGIN
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 BR112016001223A2 publication Critical patent/BR112016001223A2/pt
Publication of BR112016001223B1 publication Critical patent/BR112016001223B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

DISPOSITIVO E MÉTODO PARA CODIFICAÇÃO ESCALONÁVEL DE INFORMAÇÕES DE VÍDEO. Trata-se de um aparelho configurado para codificar informações de vídeo que inclui uma memória e um processador em comunicação com a memória. A memória é configurada para armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma gravura de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia, e a camada de melhoria compreende uma gravura de camada de melhoria (EL) que corresponde à gravura de RL. O processador é configurado para: gerar uma gravura de referência intercamada (ILRP) aumentando-se a resolução da gravura de RL, sendo que a ILRP tem uma única fatia associada à mesma, definir informações de fatia da única fatia da ILRP iguais às informações de fatia da primeira fatia; e usar a ILRP para codificar pelo menos uma porção da gravura de EL. O processador pode criptografar ou decodificar as informações de vídeo.

Description

CAMPO DA TÉCNICA
[0001] Esta revelação refere-se ao campo de codificação e compressão de vídeo, particularmente à codificação de vídeo escalonável (SVC) ou codificação de vídeo em múltiplas vistas (MVC, 3DV).
ANTECEDENTES
[0002] As capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores do tipo laptop ou do tipo desktop, câmeras digitais, dispositivos de gravação digitais, reprodutores de mídia digital, dispositivos de vídeo game, consoles de vídeo game, telefones celulares ou de rádio- satélite, dispositivos de teleconferência por vídeo e similares. Os dispositivos de vídeo digital implantam técnicas de compressão de vídeo, como as descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente sob desenvolvimento e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de modo mais eficaz implantando-se tais técnicas de codificação de vídeo.
[0003] As técnicas de compressão de vídeo podem realizar predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover a redundância inerente em sequências de vídeo. Para codificação de vídeo com base em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo, uma porção de um quadro de vídeo, etc.) pode ser particionada em blocos de vídeo, que também podem ser referidos como blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados com o uso de predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem usar predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal em relação a 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.
[0004] A predição espacial ou temporal resulta em um bloco de predição para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco de predição. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que formam o bloco de predição, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco de predição. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados a partir do domínio de pixel em um domínio de transformada, resultando em coeficientes de transformada residuais, que podem ser, então, quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em uma matriz bidimensional, podem ser submetidos à varredura a fim de produzir um vetor monodimensional de coeficientes de transformada, e pode ser aplicada codificação por entropia para conseguir ainda mais compressão.
SUMÁRIO
[0005] A codificação de vídeo escalonável (SVC) se refere à codificação de vídeo na qual uma camada-base (BL), às vezes, referidas como uma camada de referência (RL) e uma ou mais camadas de melhoria escalonável (ELs) são usadas. Em SVC, s camada-base pode portar dados de vídeo com um nível-base de qualidade. As uma ou mais camadas de melhoria podem portar dados de vídeo adicionais para suportar, por exemplo, níveis espacial, temporal e/ou de sinal para ruído (SNR) maiores. As camadas de melhoria podem ser definidas em relação a uma camada codificada anteriormente. Por exemplo, uma camada inferior pode servir como uma BL, enquanto uma camada de topo pode servir como uma EL. As camadas de meio podem servir ou como ELs ou RLs ou ambas. Por exemplo, uma camada no meio pode ser uma EL para as camadas abaixo de si, como a camada-base ou quaisquer camadas de melhoria que intervenham, e ao mesmo tempo servir como uma RL para uma ou mais camadas de melhoria acima de si. De modo similar, na extensão Em Múltiplas Vistas ou 3D do padrão HEVC, podem haver múltiplas vistas, e informações de uma vista podem ser utilizadas para codificar (por exemplo, codificar ou decodificar) as informações de outra vista (por exemplo, estimativa de movimento, predição de vetor de movimento e/ou outras redundâncias).
[0006] Em SVC, um bloco atual na camada de melhoria pode ser codificado (por exemplo, codificado ou decodificado) com o uso das informações derivadas de uma camada de referência. Por exemplo, um bloco atual na camada de melhoria pode ser codificado com o uso das informações (por exemplo, informações de textura ou informações de movimento) de um bloco colocalizado na camada de referência (o termo "colocalizado" conforme usado na presente revelação pode se referir a um bloco em outra camada que corresponde à mesma imagem que o bloco atual, por exemplo, o bloco que está atualmente em codificação). Entretanto, para certos esquemas de escalabilidade como escalabilidade espacial, as informações de camada de referência podem precisar ser modificadas antes de serem usadas para codificar a camada de melhoria. Por exemplo, as informações de camada de referência podem precisar ser amostradas novamente (por exemplo, de acordo com a razão de resolução entre a camada de referência e a camada de melhoria) antes de serem usadas para codificar a camada de melhoria. Por exemplo, em algumas implantações, uma imagem de camada de referência pode ser amostradas novamente e inserida na lista de imagens de referência de uma imagem de camada de melhoria e usada para codificar a imagem de camada de melhoria.
[0007] Entretanto, a reamostragem da imagem de camada de referência pode fazer com que a imagem amostrada novamente resultante viole uma ou mais restrições de conformação de fluxo de bits. Por exemplo, a imagem de camada de referência pode ser dividida em múltiplas fatias, e algumas implantações podem ditar que o limite de fatia coincide com os limites da maior unidade de codificação (LCU). Entretanto, após a imagem de camada de referência ser amostrada novamente, o limite de fatia da imagem de camada de referência pode não mais coincidir com os limites de LCU. Em tal caso, uma modificação do limite de fatia na imagem de camada de referência amostrada novamente pode ser desejada, ao custo de processamento adicional e potência de computação.
[0008] Dessa forma, usando-se um método mais simples para sobreamostrar (upsampling) as imagens de camada de referência que gerarão imagens que se conformam às restrições de conformação de fluxo de bits, a complexidade computacional pode ser reduzida.
[0009] Os sistemas, métodos e dispositivos dessa revelação, cada um, têm vários aspectos inovadores, nenhum único dos quais é independentemente responsável pelos atributos desejáveis revelados no presente documento.
[0010] Em um aspecto, um aparelho configurado para codificar informações de vídeo inclui uma memória e um processador em comunicação com a memória. A memória é configurada para armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma imagem de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia, e a camada de melhoria que compreende uma imagem de camada de melhoria (EL) que corresponde à imagem de RL. O processador é configurado para: gerar uma imagem de referência intercamada (ILRP) por sobreamostragem a imagem de RL, sendo que a ILRP tem uma única fatia associada à mesma; definir informações de fatia da única fatia da ILRP iguais às informações de fatia da primeira fatia; e usar a ILRP para codificar pelo menos uma porção da imagem de EL. O processador pode codificar ou decodificar as informações de vídeo.
[0011] Em um aspecto, um método de codificação de (por exemplo, codificação ou decodificação) informações de vídeo compreende gerar uma imagem de referência intercamada (ILRP) por sobreamostragem uma imagem de camada de referência (RL) em uma camada de referência que tem uma primeira fatia e uma segunda fatia, sendo que a ILRP tem uma única fatia associada entre as mesmas; definir informações de fatia da única fatia da ILRP iguais às informações de fatia da primeira fatia; e usar a ILRP para codificar pelo menos uma porção de uma imagem de camada de melhoria (EL) em uma camada de melhoria.
[0012] Em um aspecto, um meio legível por computador não transitório compreende um código que, quando executado, faz com que um aparelho realize um processo. O processo inclui armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma imagem de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia e sendo que a camada de melhoria compreende uma imagem de camada de melhoria (EL) que corresponde à imagem de RL; gerar uma imagem de referência intercamada (ILRP) por sobreamostragem a imagem de RL, sendo que a ILRP tem uma única fatia associada entre as mesmas; definir informações de fatia da única fatia da ILRP iguais às informações de fatia da primeira fatia; e usar a ILRP para codificar pelo menos uma porção da imagem de EL.
[0013] Em um aspecto, um dispositivo de codificação de vídeo configurado para codificar informações de vídeo compreende meios para armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma imagem de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia e sendo que a camada de melhoria compreende uma imagem de camada de melhoria (EL) que corresponde à imagem de RL; meios para gerar uma imagem de referência intercamada (ILRP) por sobreamostragem a imagem de RL, sendo que a ILRP tem uma única fatia associada entre as mesmas; meios para definir informações de fatia da única fatia da ILRP iguais às informações de fatia da primeira fatia; e meios para usar a ILRP para codificar pelo menos uma porção da imagem de EL.
[0014] Em um aspecto, um aparelho configurado para codificar informações de vídeo inclui uma memória e um processador em comunicação com a memória. A memória é configurada para armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma imagem de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia, e a camada de melhoria que compreende uma imagem de camada de melhoria (EL) que corresponde à imagem de RL. O processador é configurado para: determinar se as informações de primeira fatia da primeira fatia e as informações de segunda fatia da segunda fatia são idênticas; e em resposta à determinação de que as informações de primeira fatia e as informações de segunda fatia são idênticas, habilitar a predição de movimento intercamada para codificar pelo menos uma porção da imagem de EL.
[0015] Em um aspecto, um método de codificação (por exemplo, codificação ou decodificação) de informações de vídeo compreende determinar se as informações de primeira fatia de uma primeira fatia de uma imagem de camada de referência (RL) e as informações de segunda fatia de uma segunda fatia da imagem de RL são idênticas; e em resposta à determinação de que as informações de primeira fatia e as informações de segunda fatia são idênticas, habilitar a predição de movimento intercamada para codificar pelo menos uma porção de uma imagem de camada de melhoria (EL).
[0016] Em um aspecto, um aparelho configurado para codificar informações de vídeo inclui uma memória e um processador em comunicação com a memória. A memória é configurada para armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma imagem de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia, e a camada de melhoria que compreende uma imagem de camada de melhoria (EL) que corresponde à imagem de RL. O processador é configurado para: determinar se as informações de primeira fatia da primeira fatia e as informações de segunda fatia da segunda fatia são idênticas; e em resposta à determinação de que as informações de primeira fatia e as informações de segunda fatia não serem idênticas, desabilitar a predição de movimento intercamada para codificar a imagem de EL.
[0017] Em um aspecto, um método de codificação (por exemplo, codificação ou decodificação) de informações de vídeo compreende determinar se as informações de primeira fatia de uma primeira fatia de uma imagem de camada de referência (RL) e as informações de segunda fatia de uma segunda fatia da imagem de RL são idênticas; e em resposta à determinação de que as informações de primeira fatia e as informações de segunda fatia não serem idênticas, desabilitar a predição de movimento intercamada para uma imagem de camada de melhoria (EL) que corresponde à imagem de RL.
[0018] Em um aspecto, um aparelho configurado para codificar informações de vídeo inclui uma memória e um processador em comunicação com a memória. A memória é configurada para armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma imagem de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia, e a camada de melhoria que compreende uma imagem de camada de melhoria (EL) que corresponde à imagem de RL. O processador é configurado para: gerar uma imagem de referência intercamada (ILRP) por sobreamostragem da imagem de RL, sendo que a ILRP tem uma única fatia associada entre as mesmas; e determinar se um tipo de fatia da primeira fatia e um tipo de fatia da segunda fatia são diferentes. O processador, em resposta á determinação de que o tipo de fatia da primeira fatia e o tipo de fatia da segunda fatia são diferentes, pode ser configurado adicionalmente para: definir um tipo de fatia da única fatia da ILRP a ser igual à fatia B se pelo menos uma dentre a primeira e a segunda fatias é uma fatia B; definir o tipo de fatia da única fatia da ILRP a ser igual à fatia P se pelo menos uma dentre a primeira e a segunda fatias for uma fatia P e nenhuma dentre a primeira e a segunda fatias for uma fatia B; e definir o tipo de fatia da única fatia da ILRP a ser igual à fatia I se a primeira e a segunda fatias forem ambas fatias I.
[0019] Em um aspecto, um método de codificação (por exemplo, codificação ou decodificação) de informações de vídeo compreende gerar uma imagem de referência intercamada (ILRP) por sobreamostragem de uma imagem de camada de referência (RL) em uma camada de referência que tem uma primeira fatia e uma segunda fatia, sendo que a ILRP tem uma única fatia associada entre as mesmas; e determinar se um tipo de fatia da primeira fatia e um tipo de fatia da segunda fatia são diferentes. Adicionalmente, o método, em resposta à determinação de que o tipo de fatia da primeira fatia e o tipo de fatia da segunda fatia são diferentes, pode compreender adicionalmente: definir um tipo de fatia da única fatia da ILRP a ser igual à fatia B se pelo menos uma dentre a primeira e a segunda fatias é uma fatia B; definir o tipo de fatia da única fatia da ILRP a ser igual à fatia P se pelo menos uma dentre a primeira e a segunda fatias for uma fatia P e nenhuma dentre a primeira e a segunda fatias for uma fatia B; e definir o tipo de fatia da única fatia da ILRP a ser igual à fatia I se a primeira e a segunda fatias forem ambas fatias I.
[0020] Em um aspecto, um aparelho configurado para codificar informações de vídeo inclui uma memória e um processador em comunicação com a memória. A memória é configurada para armazenar informações de vídeo associadas a uma camada de referência e uma camada de melhoria, sendo que a camada de referência compreende uma imagem de camada de referência (RL) que tem uma primeira fatia e uma segunda fatia, e a camada de melhoria que compreende uma imagem de camada de melhoria (EL) que corresponde à imagem de RL. O processador é configurado para: gerar uma imagem de referência intercamada (ILRP) por sobreamostragem da imagem de RL, sendo que a ILRP tem uma única fatia associada à mesma; definir informações de fatia da única fatia da ILRP iguais às informações de fatia da primeira fatia; modificar as informações de movimento associadas a uma porção da ILRP que correspondem à segunda fatia da imagem de RL para corrigir imprecisões na mesma; e usar a ILRP para codificar pelo menos uma porção da imagem de EL.
[0021] Em um aspecto, um método de codificação (por exemplo, codificação ou decodificação) de informações de vídeo compreende gerar uma imagem de referência intercamada (ILRP) por sobreamostragem de uma imagem de camada de referência (RL) em uma camada de referência que tem uma primeira fatia e uma segunda fatia, sendo que a ILRP que tem uma única fatia associada às mesmas; definir informações de fatia da única fatia da ILRP iguais às informações de fatia da primeira fatia; modificar informações de movimento associadas a uma porção da ILRP que corresponde à segunda fatia da imagem de RL para corrigir imprecisões na mesma; e usar a ILRP para codificar pelo menos uma porção da imagem de EL.
BREVE DESCRIÇÃO DOS DESENHOS
[0022] A Figura 1A é um diagrama de blocos que ilustra um sistema exemplificativo de codificação e de decodificação de vídeo que pode utilizar técnicas de acordo com aspectos descritos nessa revelação.
[0023] A Figura 1B é um diagrama de blocos que ilustra outro sistema exemplificativo de codificação e de decodificação de vídeo que pode realizar técnicas de acordo com aspectos descritos nessa revelação.
[0024] A Figura 2A é um diagrama de blocos que ilustra um exemplo de um codificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nessa revelação.
[0025] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um codificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nessa revelação.
[0026] A Figura 3A é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nessa revelação.
[0027] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nessa revelação.
[0028] As Figuras 4A e 4B ilustram um método exemplificativo de geração de uma imagem de referência intercamada, de acordo com uma modalidade da presente revelação.
[0029] A Figura 5 ilustra um fluxograma que ilustra um método de codificação de informações de vídeo, de acordo com uma modalidade da presente revelação.
[0030] A Figura 6 ilustra um fluxograma que ilustra um método de codificação de informações de vídeo, de acordo com uma modalidade da presente revelação.
[0031] A Figura 7 ilustra um fluxograma que ilustra um método de codificação de informações de vídeo, de acordo com uma modalidade da presente revelação.
[0032] A Figura 8 ilustra um fluxograma que ilustra um método de codificação de informações de vídeo, de acordo com uma modalidade da presente revelação.
DESCRIÇÃO DETALHADA
[0033] Certas modalidades descritas no presente documento referem-se à predição intercamada para a codificação de vídeo escalonável no contexto de codecs de vídeo avançados, como HEVC (Codificação de Vídeo de Alta Eficiência). Mais especificamente, a presente revelação refere-se à mesmastemas e métodos para o desempenho melhorado de predição intercamada na extensão de codificação de vídeo escalonável (SVC) de HEVC.
[0034] Na descrição abaixo, são descritas técnicas H.264/AVC relacionadas a certas modalidades; o padrão HEVC e técnicas relacionadas também são discutidas. Embora certas modalidades sejam descritas no presente documento no contexto dos padrões HEVC e/ou H.264, uma pessoa de habilidade comum na técnica poderá observar que os sistemas e os métodos revelados no presente documento podem ser aplicáveis a qualquer padrão de codificação de vídeo adequado. Por exemplo, as modalidades reveladas no presente documento podem ser aplicáveis a um ou mais dos seguintes padrões: ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e de Codificação de Vídeo em Múltiplas Vistas (MVC).
[0035] O HEVC geralmente segue a estrutura de padrões anteriores de codificação de vídeo em vários aspectos. A unidade de predição em HEVC é diferente da presente em certos padrões anteriores de codificação de vídeo (por exemplo, macrobloco). De fato, o conceito de macrobloco não existe em HEVC conforme entendido em certos padrões anteriores de codificação de vídeo. O macrobloco é substituído por uma estrutura hierárquica com base em um esquema de árvore quadrática, que pode fornecer alta flexibilidade, entre outros benefícios possíveis. Por exemplo, dentro do esquema HEVC, três tipos de blocos, Unidade de Codificação (CU), Unidade de Predição (PU) e Unidade de Transformada (TU), são definidos. A CU pode se referir à unidade básica de divisão de região. A CU pode ser considerada análoga ao conceito de macrobloco, mas isso não restringe o tamanho máximo e pode permitir a divisão recursiva em quatro CUs de tamanho igual para melhorar a adaptatividade de conteúdo. A PU pode ser considerada a unidade básica de inter/intrapredição e pode conter múltiplas partições de formato arbitrário em uma única PU para codificar de modo efetivo os padrões de imagem irregulares. A TU pode ser considerada a unidade básica de transformada. A mesma pode ser definida independentemente da PU; entretanto, seu tamanho pode estar limitado à CU à qual a TU pertence. Essa separação da estrutura de bloco em três conceitos diferentes pode permitir a cada um deles ser otimizado de acordo com seu papel, o que pode resultar em uma eficácia de codificação melhorada.
[0036] Apenas para propósitos ilustrativos, certas modalidades reveladas no presente documento são descritas com exemplos que incluem apenas duas camadas (por exemplo, uma camada inferior como a camada-base, e uma camada superior como a camada de melhoria). Deve ser entendido que tais exemplos podem ser aplicáveis a configurações que incluem múltiplas bases e/ou camadas de melhoria. Adicionalmente, para facilidade de explicação, a revelação a seguir inclui os termos "quadros" ou "blocos" em relação a certas modalidades. Entretanto, esses termos não estão destinados a serem limitantes. Por exemplo, as técnicas descritas abaixo podem ser usadas com quaisquer unidades de vídeo adequadas, como blocos (por exemplo, CU, PU, TU, macroblocos, etc.), fatias, quadros, etc.
PADRÕES DE CODIFICAÇÃO DE VÍDEO
[0037] Uma imagem digital, como uma imagem de vídeo, uma imagem de TV, uma imagem parada ou uma imagem gerada por um gravador de vídeo ou um computador, podem consistir em pixels ou amostras dispostas em linhas horizontal e vertical. O número de pixels em uma única imagem está tipicamente nas dezenas de milhares. Cada pixel contém tipicamente informações de luminância e crominância. Sem compressão, a quantidade de informações a ser fornecida a partir de um codificador de imagem a um decodificador de imagem é tão imensa que torna a transmissão de imagens em tempo real impossível. Para reduzir a quantidade de informações a ser transmitida, um certo número de diferentes métodos de compressão, como os padrões JPEG, MPEG e H.263 foram desenvolvidos.
[0038] Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e de Codificação de Vídeo em Múltiplas Vistas (MVC).
[0039] Adicionalmente, um novo padrão de codificação de vídeo, a saber Equipe de Colaboração Conjunta) está em desenvolvimento pela Equipe de Colaboração Conjunta em Codificação Conjunta (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo (VCEG) do ITU-T e Grupo de Especialistas em Imagem em Movimento (MPEG) do ISO/IEC. A citação completa para o Rascunho 10 de HEVC é o documento JCTVC-L1003, Bross et al, "High Efficiency Video Coding (HEVC) Text Specification Draft 10", Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC) do ITU-T SGI 6 WP3 e ISO/IEC JTC1/SC29/WG11, 12o Encontro: Genebra, Suíça, de 14 de janeiro de 2013 a 23 de janeiro de 2013. A extensão em múltiplas vistas para HEVC, a saber MV-HEVC, e a extensão escalonável para HEVC, chamada de SHVC, também estão em desenvolvimento pela JCT-3V (ITU-T/ISO/IEC Equipe Colaborativa Conjunta em Desenvolvimento de Extensão de Codificação de Vídeo 3D) e JCT-VC, respectivamente.
[0040] Vários aspectos dos sistemas, aparelhos e métodos inovadores são descritos mais completamente a partir deste ponto no presente documento em relação aos desenhos anexo. Essa revelação pode, entretanto, ser incorporada em um certo número de formas diferentes e não deve ser interpretada como limitada a qualquer estrutura específica ou função apresentada ao longo de toda essa revelação. Em vez disso, esses aspectos são fornecidos de modo que essa revelação seja minuciosa e completa, e transmita plenamente o escopo da revelação para as pessoas versadas na técnica. Com base nos ensinamentos do presente documento, a pessoa versada na técnica deve observar que o escopo da revelação está destinado a cobri qualquer aspecto dos sistemas, aparelhos e métodos inovadores revelados no presente documento, seja implantado de modo independente ou em combinação com qualquer outro aspecto da presente revelação. Por exemplo, um aparelho pode ser implementado ou um método pode ser praticado através do uso de qualquer quantidade dos aspectos apresentados no presente documento. Adicionalmente, o escopo da presente revelação está destinado a cobrir tal aparelho ou método que seja praticado com o uso de outra estrutura, funcionalidade, ou estrutura e funcionalidade adicional ou que não sejam os vários aspectos da presente revelação estabelecidos no presente documento. Deve ser entendido que qualquer aspecto revelado no presente documento pode ser incorporado por um ou mais elementos de uma reivindicação.
[0041] Embora aspectos particulares sejam descritos no presente documento, muitas variações e permutações desses aspectos são englobados pelo escopo da revelação. Embora alguns benefícios e vantagens dos aspectos preferenciais sejam mencionados, o escopo da revelação não está destinado a ser limitado a benefícios, usos ou objetivos particulares. Ao invés disso, os aspectos da revelação estão destinados a serem amplamente aplicáveis a diferentes tecnologias sem fio, configurações de sistema, redes e protocolos de transmissão, alguns dos quais estão ilustrados a título de exemplo nas Figuras e na descrição a seguir dos aspectos preferenciais. A descrição detalhada e os desenhos são meramente ilustrativos da revelação ao invés de limitantes, sendo que o escopo da revelação é definido pelas reivindicações anexas e equivalentes das mesmas.
[0042] Os desenhos anexos ilustram exemplos. Os elementos indicados por números de referência nos desenhos anexos correspondem a elementos indicados por numerais de referência similares na descrição a seguir. Nessa revelação, os elementos que têm nomes que começam com palavras ordinais (por exemplo, "primeiro", "segundo", "terceiro" e assim por diante) não necessariamente implicam que os elementos têm uma ordem particular. Ao invés disso, tais palavras ordinais são meramente usadas para se referir a elementos diferentes de um tipo similar ou igual.
SISTEMA DE CODIFICAÇÃO DE VÍDEO
[0043] A Figura 1A é um diagrama de blocos que ilustra um sistema exemplificativo de codificação de vídeo 10 que pode utilizar técnicas de acordo com aspectos descritos nessa revelação. Conforme usado descrito no presente documento, o termo "codificador de vídeo" se refere de modo geral tanto a codificadores de vídeo e decodificadores de vídeo. Nessa revelação, os termos "codificação de vídeo" ou "codificação" podem se referir de modo geral à codificação de vídeo e à decodificação de vídeo.
[0044] Conforme mostrado na Figura 1A, o sistema de codificação de vídeo 10 inclui um módulo-fonte 12 que gera dados de vídeo codificado a serem decodificados em um momento posterior por um módulo de destino 14. No exemplo da Figura 1A, o módulo-fonte 12 e o módulo de destino 14 estão em dispositivos separados - especificamente, o módulo- fonte 12 é parte de um dispositivo-fonte, e o módulo de destino 14 é parte de um dispositivo de destinação. Deve ser notado, entretanto, que os módulos-fonte e de destinação 12, 14 pode estar em ou fazer parte do mesmo dispositivo, conforme mostrado no exemplo da Figura 1B.
[0045] Com referência novamente à Figura 1A, o módulo-fonte 12 e o módulo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (por exemplo, do tipo laptop), computadores do tipo tablet, conversores, fones de telefone como os conhecidos como os conhecidos por telefones "inteligentes", smartpads, televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de vídeo game, dispositivo de transmissão de vídeo ou similares. Em alguns casos, o módulo- fonte 12 e o módulo de destino 14 podem ser equipados para comunicação sem fio.
[0046] O módulo de destino 14 pode receber os dados de vídeo codificado para serem decodificados por meio de um enlace 16. O enlace 16 pode compreender qualquer tipo de meio ou dispositivo com a capacidade de mover os dados de vídeo codificado do módulo-fonte 12 para o módulo de destino 14. No exemplo da Figura 1A, o enlace 16 pode compreender um meio de comunicação para permitir que o módulo-fonte 12 transmita dados de vídeo codificado diretamente para o módulo de destino 14 em tempo real. Os dados de vídeo codificado podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidas para o módulo de destino 14. Os meio de comunicação pode compreender qualquer meio de comunicação com fio ou sem fio, como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode fazer parte de uma rede com base em pacote, como uma rede de área local, uma rede de área ampla ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações-base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do módulo-fonte 12 para o módulo de destino 14,
[0047] Alternativamente, os dados codificados podem ser emitidos da interface de saída 22 para um dispositivo de armazenamento opcional 31. De modo similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 31 por uma interface de entrada 28. O dispositivo de armazenamento 31 pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados distribuídos ou acessados localmente como um disco rígido, memória flash, memória volátil ou não volátil ou qualquer outro meios de armazenamento digital adequado para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 31 pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode manter o vídeo codificado gerado pelo módulo-fonte 12. O módulo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento 31 por meio de transmissão ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com a capacidade de armazenar dados de vídeo codificado e transmitir esses dados vídeo codificado para o módulo de destino 14. Os servidores de arquivos exemplificativos incluem um servidor da web (por exemplo, para um sítio da web), um servidor de FTP, dispositivos de armazenamento fixado a rede (NAS) ou uma unidade de disco local. O módulo de destino 14 pode acessar os dados de vídeo codificado através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem de cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificado armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificado a partir do dispositivo de armazenamento 31 pode ser uma transmissão por difusão, uma transmissão de transferência por download ou uma combinação de ambas.
[0048] As técnicas dessa revelação não estão limitadas a aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em apoio a qualquer uma dentre uma variedade de aplicações multimídia, como difusões sem fio para televisão, transmissões a cabo para televisão, transmissões por satélite para televisão, transmissões de vídeo por difusão, por exemplo, por meio da Internet (por exemplo, transmissão adaptativa dinâmica por HTTP (DASH), etc.), codificação de vídeo digital para o armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema de codificação de vídeo 10 pode ser configurado para sustentar transmissão de vídeo de uma via ou de duas vias para sustentar aplicações como difusão de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia por vídeo.
[0049] No exemplo da Figura 1A, o módulo-fonte 12 inclui uma fonte de vídeo 18, o 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/desmodulador (modem) e/ou um transmissor. No módulo-fonte 12, a fonte de vídeo 18 pode incluir uma fonte como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém vídeo capturado anteriormente, uma interface de alimentação de vídeo para receber vídeo a partir de um fornecedor de conteúdo de vídeo e/ou um sistema de gráficos para computador para gerar dados de gráficos para computador como o vídeo-fonte ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o módulo-fonte 12 e o módulo de destino 14 podem formar o que é conhecido por fones de câmera ou fones de vídeo, conforme ilustrado no exemplo da Figura 1B. Entretanto, as técnicas descritas nessa revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fio e/ou com fio.
[0050] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificado podem ser transmitidos diretamente para o módulo de destino 14 por meio da interface de saída 22 do módulo-fonte 12. Os dados de vídeo codificado também (ou alternativamente) podem ser armazenados no dispositivo de armazenamento 31 para acesso posterior pelo módulo de destino 14 ou outros dispositivos, para decodificação e/ou reprodução.
[0051] No exemplo da Figura 1A, o módulo 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 módulo de destino 14 pode receber os dados de vídeo codificado pelo enlace 16. Os dados de vídeo codificado comunicados pelo enlace 16, ou fornecido no dispositivo de armazenamento 31, pode incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 para uso por um decodificador de vídeo, como o decodificador de vídeo 30, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificado transmitidos em um meio de comunicação, armazenado em um meio de armazenamento ou armazenado em um servidor de arquivos.
[0052] O dispositivo de exibição 32 pode ser integrado, ou externo, ao módulo de destino 14. Em alguns exemplos, o módulo de destino 14 pode incluir um dispositivo de exibição integrado e também ser configurado para fazer interface com um dispositivo de exibição externo. Em outros exemplos, o módulo 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, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição como um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0053] Em aspectos relacionados, a Figura 1B mostra um sistema exemplificativo de codificação e de decodificação de vídeo 10' em que os módulos-fonte e de destinação 12, 14 estão em ou fazem parte de um dispositivo ou dispositivo de usuário 11. O dispositivo 11 pode ser um fone de telefone, como um telefone "inteligente" ou similares. O dispositivo 11 pode incluir um módulo controlador/processador opcional 13 em comunicação operacional com os módulos-fonte e de destinação 12, 14. O sistema 10' da Figura 1B pode incluir adicionalmente uma unidade de processamento de vídeo 21 entre o codificador de vídeo 20 e a interface de saída 22. em algumas implantações, a unidade de processamento de vídeo 21 é uma unidade separada, conforme ilustrado na Figura 1B; entretanto, em outras implantações, a unidade de processamento de vídeo 21 pode ser implantada como uma porção do codificador de vídeo 20 e/ou do módulo processador/controlador 13. O sistema 10' também pode incluir um rastreador opcional 29, que pode rastrear um objeto de interesse em uma sequência de vídeo. O objeto ou interesse a ser rastreado pode ser segmentado por uma técnica descrita em conexão com um ou mais aspectos da presente revelação. Em aspectos relacionados, o rastreamento pode ser realizado pelo dispositivo de exibição 32, sozinho ou em conjunto com o rastreador 29. O sistema 10' da Figura 1B, e componentes do mesmo, são similares de outro modo ao sistema 10 da Figura 1A, e componentes do mesmo.
[0054] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compressão de vídeo, como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento e podem se conformar a um Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de proprietário ou de indústria, como o padrão ITU- T H.264, referido de modo alternativo como MPEG-4, Part 10, Codificação de Vídeo Avançada (AVC), ou extensões de tais padrões. As técnicas dessa revelação, entretanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos padrões de compressão de vídeo incluem MPEG- 2 e ITU-T H.263.
[0055] Embora não mostrado nos exemplos das Figuras 1A e 1B, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados a um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para lidar com a codificação tanto de áudio quanto de vídeo em uma corrente de dados comum ou correntes de dados separadas. Caso aplicável, em alguns exemplos, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223 ou outros protocolos como o protocolo de datagrama de usuário (UDP).
[0056] O codificador de vídeo 20 e o decodificador de vídeo 30, cada um, podem ser implantados como qualquer um dentre uma variedade de conjunto de circuitos codificadores adequados, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjo de portas programável em campo (FPGAs), lógica distinta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas dessa revelação. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um dispositivo respectivo.
PROCESSO DE CODIFICAÇÃO DE VÍDEO
[0057] Conforme mencionado brevemente acima, o codificador de vídeo 20 codifica dados de vídeo. Os dados de vídeo podem compreender uma ou mais imagens. Cada uma das imagens é uma imagem parada que faz parte de um vídeo. Em algumas instâncias, uma imagem pode ser referida como um "quadro" de vídeo. Quando o codificador de vídeo 20 codifica os dados de vídeo, o codificador de vídeo 20 pode gerar um fluxo de bits. O fluxo de bits pode incluir uma sequência de bits que forma uma representação codificada dos dados de vídeo. O fluxo de bits pode incluir imagens codificadas e dados associados. Uma imagem codificada é uma representação codificada de uma imagem.
[0058] Para gerar o fluxo de bits, o codificador de vídeo 20 pode realizar operações de codificação em cada imagem nos dados de vídeo. Quando o codificador de vídeo 20 realiza operações de codificação nas imagens, o codificador de vídeo 20 pode gerar uma série de imagens codificadas e dados associados. Os dados associados podem incluir conjuntos de parâmetros de vídeo (VPS), conjuntos de parâmetros de sequência, conjuntos de parâmetros de imagem, conjuntos de parâmetros de adaptação e outras estruturas de sintaxe. Um conjunto de parâmetros de sequência (SPS) pode conter parâmetros aplicáveis a zero ou mais sequências de imagens. Um conjunto de parâmetros de imagem (PPS) pode conter parâmetros aplicáveis a zero ou mais imagens. Um conjunto de parâmetros de adaptação (APS) pode conter parâmetros aplicáveis a zero ou mais imagens. Os parâmetros em um APS podem ser parâmetros que são mais propensos à mudança que os parâmetros em um PPS.
[0059] Para gerar uma imagem codificada, o codificador de vídeo 20 pode particionar uma imagem em blocos de vídeo dimensionados de forma igual. Um bloco de vídeo pode ser uma matriz bidimensional de amostras. Cada um dos blocos de vídeo está associado a um bloco de árvore. Em algumas instâncias, um bloco de árvore pode ser referido como uma maior unidade de codificação (LCU). Os blocos de árvore de HEVC podem ser amplamente análogos aos macroblocos de padrões anteriores, como H.264/AVC. Entretanto, um bloco de árvore não está necessariamente limitado a um tamanho particular e pode incluir uma ou mais unidades de codificação (CUs). O codificador de vídeo 20 pode usar partição em árvore quadrática para particionar os blocos de vídeo de blocos de árvore em blocos de vídeo associados a CUs, por isso o nome "blocos de árvore".
[0060] Em alguns exemplos, o codificador de vídeo 20 pode particionar uma imagem em uma pluralidade de fatias. Cada uma das fatias pode incluir um número inteiro de CUs. Em algumas instâncias, uma fatia compreende um número inteiro de blocos de árvore. Em outras instâncias, um limite de uma fatia pode estar dentro de um bloco de árvore.
[0061] Como parte da realização de uma operação de codificação em uma imagem, o codificador de vídeo 20 pode realizar operações de codificação em cada fatia da imagem. Quando o codificador de vídeo 20 realiza uma operação de codificação em uma fatia, o codificador de vídeo 20 pode gerar dados codificados associados à fatia. Os dados codificados associados à fatia podem ser referidos como uma "fatia codificada".
[0062] Para gerar uma fatia codificada, o codificador de vídeo 20 pode realizar operações de codificação em cada bloco de árvore em uma fatia. Quando o codificador de vídeo 20 realiza uma operação de codificação em um bloco de árvore, o codificador de vídeo 20 pode gerar um bloco de árvore codificado. O bloco de árvore codificado pode compreender dados que representam uma versão codificada do bloco de árvore.
[0063] Quando o codificador de vídeo 20 gera uma fatia codificada, o codificador de vídeo 20 pode realizar operações de codificação (por exemplo, codificar) nos blocos de árvore na fatia de acordo com uma ordem de exame de varredura. Por exemplo, o codificador de vídeo 20 pode codificar os blocos de árvore da fatia em uma ordem que procede da esquerda para direita ao longo da fileira mais superior dos blocos de árvore na fatia, então, da esquerda para direita ao longo de uma próxima fileira inferior de blocos de árvore, e assim por diante até que o codificador de vídeo 20 tenha codificado cada um dos blocos de árvore na fatia.
[0064] Como resultado de codificar os blocos de árvore de acordo com a ordem de exame de varredura, os blocos de árvore acima e à esquerda de um bloco de árvore dado podem ter sido codificados, mas os blocos de árvore abaixo e á direita do bloco de árvore dado ainda não foram codificados. Consequentemente, o codificador de vídeo 20 pode ter a capacidade de acessar informações geradas codificando-se os blocos de árvore acima e à esquerda do bloco de árvore dado quando codifica o bloco de árvore dado. Entretanto, o codificador de vídeo 20 pode não ter a capacidade de acessar informações geradas codificando-se os blocos de árvore abaixo e à direita do bloco de árvore dado quando codifica o bloco de árvore dado.
[0065] Para gerar um bloco de árvore codificado, o codificador de vídeo 20 pode realizar a partição em árvore quadrática de modo recursivo no bloco de vídeo do bloco de árvore para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode estar associado a uma CU diferente. Por exemplo, o codificador de vídeo 100 pode particionar o bloco de vídeo de um bloco de árvore em quatro sub-blocos igualmente dimensionados, particionais um ou mais dos sub- blocos em quatro sub-blocos igualmente dimensionados e assim por diante. Uma CU particionada pode ser uma CU cujo bloco de vídeo é particionado em blocos de vídeo associados a outras CUs. Uma CU não particionada pode ser uma CU cujo bloco de vídeo não é particionado em blocos de vídeo associados a outras CUs.
[0066] Um ou mais elementos de sintaxe no fluxo de bits podem indicar um número máximo de vezes que o codificador de vídeo 20 pode particionar o bloco de vídeo de um bloco de árvore. Um bloco de vídeo de uma CU pode ser quadrado em formato. O tamanho do bloco de vídeo de uma CU (por exemplo, o tamanho da CU) pode variar de 8x8 pixels até o tamanho de um bloco de vídeo de um bloco de árvore (por exemplo, o tamanho do bloco de árvore) com um máximo de 64x64 pixels ou mais.
[0067] O codificador de vídeo 20 pode realizar operações de codificação (por exemplo, codificar) em cada CU de um bloco de árvore de acordo com uma ordem de varredura z. Em outras palavras, o codificador de vídeo 20 pode codificar uma CU topo-esquerda, uma CU topo-direita, uma CU fundo-esquerda e, então, uma CU fundo-direita, nessa ordem. Quando o codificador de vídeo 20 realiza uma operação de codificação em uma CU particionada, o codificador de vídeo 20 pode codificar CUs associadas a sub-blocos do bloco de vídeo da CU particionada de acordo com a ordem de varredura z. Em outras palavras, o codificador de vídeo 20 pode codificar uma CU associada a um sub-bloco topo-esquerda, uma CU associada a um sub-bloco topo-direita, uma CU associada a um sub-bloco fundo-esquerda, e, então, uma CU associada a um sub-bloco fundo-direita, nessa ordem.
[0068] Como resultado de codificar as CUs de um bloco de árvore de acordo com uma ordem de varredura z, as CUs acima, acima e à esquerda, acima e à direita, à esquerda, e abaixo e à esquerda de uma CU dada podem ter sido codificadas. As CUs abaixo e à direita da CU da ainda não foram codificadas. Consequentemente, o codificador de vídeo 20 pode ter a capacidade de acessar informações geradas codificando-se algumas CUs que são vizinhas à CU dada quando se codifica a CU dada. Entretanto, o codificador de vídeo 20 pode não ter a capacidade de acessar informações geradas codificando-se outras CUs que são vizinhas à CU dada quando se codifica a CU dada.
[0069] Quando o codificador de vídeo 20 codifica uma CU não particionada, o codificador de vídeo 20 pode gerar uma ou mais unidades de predição (PUs) para a CU. Cada uma das PUs da CU podem ser associadas a um bloco de vídeo diferente dentro do bloco de vídeo da CU. O codificador de vídeo 20 pode gerar um bloco de vídeo predito para cada PU da CU. O bloco de vídeo predito de uma PU podem ser um bloco de amostras. O codificador de vídeo 20 pode usar intrapredição ou interpredição para gerar o bloco de vídeo predito para uma PU.
[0070] Quando o codificador de vídeo 20 usar intrapredição para gerar o bloco de vídeo predito de uma PU, o codificador de vídeo 20 pode gerar o bloco de vídeo predito da PU com base em amostras de codificadas da imagem associada à PU. Se o codificador de vídeo 20 usar intrapredição para gerar blocos de vídeo preditos das PUs de uma CU, a CU é uma CU intrapredita. Quando o codificador de vídeo 20 usar interpredição para gerar o blocos de vídeo predito da PU, o codificador de vídeo 20 pode gerar o blocos de vídeo predito da PU com base em amostras decodificadas de uma ou mais imagens que não sejam a imagem associada à PU. Se o codificador de vídeo 20 usar interpredição para gerar blocos de vídeo preditos das PUs de uma CU, a CU é uma CU interpredita.
[0071] Além disso, quando o codificador de vídeo 20 usar interpredição para gerar um bloco de vídeo predito para uma PU, o codificador de vídeo 20 pode gerar informações de movimento para a PU. As informações de movimento para uma PU podem indicar um ou mais blocos de referência da PU. Cada bloco de referência da PU pode ser um bloco de vídeo dentro de uma imagem de referência. A imagem de referência pode ser uma imagem que não seja a imagem associada à PU. Em algumas instâncias, um bloco de referência de uma PU também pode ser referido como a "amostra de referência" da PU. O codificador de vídeo 20 pode gerar o bloco de vídeo predito para a PU com base nos blocos de referência da PU.
[0072] Após o codificador de vídeo 20 gerar os blocos de vídeo preditos para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar dados residuais para a CU com base nos blocos de vídeo preditos para as PUs da CU. Os dados residuais para a CU podem indicar diferenças entre amostras nos blocos de vídeo preditos para as PUs da CU e o bloco de vídeo original da CU.
[0073] Além disso, como parte da realização de uma operação de codificação em uma CU não particionada, o codificador de vídeo 20 pode realizar partição recursiva em árvore quadrática nos dados residuais da CU para particionar os dados residuais da CU em um ou mais blocos de dados residuais (por exemplo, blocos de vídeo residuais) associados a unidades de transformada (TUs) da CU. Cada TU de uma CU pode ser associada a um bloco de vídeo residual diferente.
[0074] O codificador de vídeo 20 pode aplicar uma ou mais transformadas a blocos de vídeo residuais associados às TUs para gerar blocos de coeficientes de transformada (por exemplo, blocos de coeficientes de transformada) associados às TUs. Conceitualmente, um bloco de coeficientes de transformada pode ser uma matriz bidimensional (2D) de coeficientes de transformada.
[0075] Após gerar um bloco de coeficientes de transformada, o codificador de vídeo 20 pode realizar um processo de quantização no bloco de coeficientes de transformada. A quantização geralmente se refere a um processo no qual coeficientes de transformada são quantizados para reduzir possivelmente a quantidade de dados usados para representar os coeficientes de transformada, fornecendo ainda mais compressão. O processo de quantização pode reduzir a profundidade de bit associada ao mesmo coeficiente de transformada ou a todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de w bits pode ser arredondado para baixo para um coeficiente de transformada de m bits durante quantização, em que n é maior que m.
[0076] O codificador de vídeo 20 pode associar cada CU com um valor de parâmetro de quantização (QP). O valor de QP associado a uma CU pode determinar como o codificador de vídeo 20 quantiza blocos de coeficientes de transformada associados à CU. O codificador de vídeo 20 pode ajustar o grau de quantização aplicado aos blocos de coeficientes de transformada associados a uma CU ajustando- se o valor de QP associado à CU.
[0077] Após o codificador de vídeo 20 quantizar um bloco de coeficientes de transformada, o codificador de vídeo 20 pode gerar conjuntos de elementos de sintaxe que representam os coeficientes de transformada no bloco de coeficientes de transformada quantizado. O codificador de vídeo 20 pode aplicar operações de codificação por entropia, como operações de Codificação Aritmética Binária Adaptativa a Contexto (CABAC) a alguns desses elementos de sintaxe. Outras técnicas de codificação por entropia como codificação de comprimento variável adaptativa a conteúdo (CAVLC), codificação por entropia de partição de intervalo de probabilidade (PIPE) ou outra codificação aritmética binária também pode ser usada.
[0078] O fluxo de bits gerado pelo codificador de vídeo 20 pode incluir uma série de unidades de Camada de Abstração de Rede (NAL). Cada uma das unidades NAL pode ser uma estrutura de sintaxe que contém uma indicação de um tipo de dados na unidade NAL e bytes que contêm os dados. Por exemplo, uma unidade NAL pode conter dados que representam um conjunto de parâmetros de vídeo, um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, uma fatia codificada, informações de melhoria suplementares (SEI), um delimitador de unidade de acesso, dados de preenchimento, ou outros tipos de dados. Os dados em uma unidade NAL podem incluir várias estruturas de sintaxe.
[0079] O decodificador de vídeo 30 pode receber o fluxo de bits gerado pelo codificador de vídeo 20. O fluxo de bits pode incluir uma representação codificada dos dados de vídeo codificados pelo codificador de vídeo 20. Quando o decodificador de vídeo 30 recebe o fluxo de bits, o decodificador de vídeo 30 pode realizar uma operação de análise no fluxo de bits. Quando o decodificador de vídeo 30 realiza a operação de análise, o decodificador de vídeo 30 pode extrair elementos de sintaxe do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base nos elementos de sintaxe extraídos do fluxo de bits. O processo para reconstruir os dados de vídeo com base nos elementos de sintaxe pode ser geralmente recíproco ao processo realizado pelo codificador de vídeo 20 para gerar os elementos de sintaxe.
[0080] Após o decodificador de vídeo 30 extrair os elementos de sintaxe associados a uma CU, o decodificador de vídeo 30 pode gerar blocos de vídeo preditos para as PUs da CU com base nos elementos de sintaxe. Adicionalmente, o decodificador de vídeo 30 pode quantizar inversamente os blocos de coeficientes de transformada associados às TUs da CU. O decodificador de vídeo 30 pode realizar transformadas inversas nos blocos de coeficientes de transformada para reconstruir blocos de vídeo residual associados às TUs da CU. Após gerar os blocos de vídeo preditos e reconstruir os blocos de vídeo residuais, o decodificador de vídeo 30 pode reconstruir o bloco de vídeo da CU com base nos blocos de vídeo preditos e nos blocos de vídeo residuais. Desse modo, o decodificador de vídeo 30 pode reconstruir os blocos de vídeo de CUs com base nos elementos de sintaxe no fluxo de bits.
CODIFICADOR DE VÍDEO
[0081] A Figura 2A é um diagrama de blocos que ilustra um exemplo de um codificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nessa revelação. O codificador de vídeo 20 pode ser configurado para processar uma única camada de um quadro de vídeo, como para HEVC. Adicionalmente, o codificador de vídeo 20 pode ser configurado para realizar qualquer ou todas as técnicas dessa revelação. Como um exemplo, a unidade de processamento de predição 100 pode ser configurada para realizar qualquer uma e todas as técnicas descritas nessa revelação. Em outra modalidade, o codificador de vídeo 20 inclui uma unidade intercamada de predição opcional 128 que é configurada para realizar qualquer uma e todas as técnicas descritas nessa revelação. Em outras modalidades, a predição intercamada pode ser realizada pela unidade de processamento de predição 100 (por exemplo, unidade de interpredição 121 e/ou unidade de intrapredição 126), nesse caso a unidade de predição intercamada 128 pode ser omitida. Entretanto, aspectos dessa revelação não são tão limitados. Em alguns exemplos, as técnicas descritas nessa revelação podem ser compartilhadas entre os vários componentes de codificador de vídeo 20. Em alguns exemplos, adicional ou alternativamente, um processador (não mostrado) pode ser configurado para realizar qualquer ou todas as técnicas descritas nessa revelação.
[0082] Para propósitos explicativos, essa revelação descreve o codificador de vídeo 20 no contexto de codificação de HEVC. No entanto, as técnicas dessa revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O exemplo retratado na Figura 2A é para um codec de camada única. Entretanto, conforme será descrito mais adiante em relação à Figura 2B, uma parte ou todo o codificador de vídeo 20 pode ser duplicado para o processamento de um codec em múltiplas camadas.
[0083] O codificador de vídeo 20 pode realizar intra- e intercodificação de blocos de vídeo dentro das fatias de vídeo. A intracodificação tem base na predição espacial para reduzir ou remover a redundância espacial no vídeo dentro de um quadro de vídeo ou imagem dados. A intercodificação tem base na predição temporal para reduzir ou remover a redundância temporal no vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O modo intra (modo I) pode se referir a qualquer um dentre vários modos de codificação com base em espaço. Os modos inter, como predição monodirecional (modo P) ou predição bidirecional (modo B), podem se referir a qualquer um dentre vários modos de codificação com base em tempo.
[0084] No exemplo da Figura 2A, o codificador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do codificador de vídeo 20 incluem uma unidade de processamento de predição 100, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de transformada inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 113, um armazenamento temporário de imagem decodificada 114 e uma unidade de codificação por entropia 116. A unidade de processamento de predição 100 inclui uma unidade de interpredição 121, uma unidade de estimativa de movimento 122, uma unidade de compensação de movimento 124, uma unidade de intrapredição 126 e uma unidade de predição intercamada 128. Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou componentes funcionais diferentes. Além disso, a unidade de estimativa de movimento 122 e a unidade de compensação de modo 124 podem ser altamente integradas, mas estão no exemplo da Figura 2A separadas para propósitos de explicação.
[0085] O codificador de vídeo 20 pode receber os dados de vídeo. O 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 (por exemplo, mostrado na Figura 1A ou 1B) ou outra fonte. Os dados de vídeo podem representar uma série de imagens. Para codificar os dados de vídeo, o codificador de vídeo 20 pode realizar uma operação de codificação em cada uma das imagens. Como parte da realização da operação de codificação em uma imagem, o codificador de vídeo 20 pode realizar operações de codificação em cada fatia da imagem. Como parte da realização de uma operação de codificação em uma fatia, o codificador de vídeo 20 pode realizar operações de codificação em blocos de árvore na fatia.
[0086] Como parte da realização de uma operação de codificação em um bloco de árvore, a unidade de processamento de predição 100 pode realizar a partição em árvore quadrática no bloco de vídeo do bloco de árvore para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode estar associado a uma CU diferente. Por exemplo, a unidade de processamento de predição 100 pode particionar um bloco de vídeo de um bloco de árvore em quatro sub-blocos igualmente dimensionados, particionais um ou mais dos sub-blocos em quatro sub-blocos igualmente dimensionados e assim por diante.
[0087] Os tamanhos dos blocos de vídeo associados às CUs podem variar de amostras 8x8 até o tamanho do bloco de árvore com um máximo de amostras 64x64 ou maior. Nessa revelação, "NxN" e "N por N" podem ser usados de forma intercambiável para se referir às dimensões de amostra de um bloco de vídeo em termos de dimensões vertical e horizontal, por exemplo, amostras 16x16 ou amostras 16 por 16. Em geral, um bloco de vídeo 16x16 tem dezesseis amostras em uma direção vertical (y = 16) e dezesseis amostras em uma direção horizontal (x = 16). De modo semelhante, um bloco NxN geralmente tem N amostras em uma direção vertical e N amostras em uma direção horizontal, em que N representa um valor de número inteiro não negativo.
[0088] Além disso, como parte da realização da operação de codificação em um bloco de árvore, a unidade de processamento de predição 100 pode gerar uma estrutura de dados de árvore quadrática hierárquica para o bloco de árvore. Por exemplo, um bloco de árvore ode corresponder a um nó-raiz da estrutura de dados de árvore quadrática. Se a unidade de processamento de predição 100 particionar o bloco de vídeo do bloco de árvore em quatro sub-blocos, o nó-raiz tem quatro nós-filho na estrutura de dados de árvore quadrática. Cada um dos nós-filho corresponde a uma CU associada a um dos sub-blocos. Se a unidade de processamento de predição 100 particionar um dos sub-blocos em quatro sub- sub-blocos, o nó que corresponde à CU associada ao sub-bloco pode ter quatro nós-filho, cada um dos quais corresponde a uma CU associada a um dos sub-sub-blocos.
[0089] Cada nó da estrutura de dados de árvore quadrática pode conter dados de sintaxe (por exemplo, elementos de sintaxe) para o bloco de árvore ou CU correspondente. Por exemplo, um nó na árvore quadrática pode incluir um sinalizador de divisão que indica se o bloco de vídeo da CU que corresponde ao nó é particionado (por exemplo, dividido) em quatro sub-blocos. Os elementos de sintaxe para uma CU podem ser definidos de modo recursivo, e podem depender de se o bloco de vídeo da CU está dividida em sub-blocos. Um CU cujo o bloco de vídeo não está particionado pode corresponder a um nó-folha na estrutura de dados de árvore quadrática. Um bloco de árvore codificado pode incluir dados com base na estrutura de dados de árvore quadrática para um bloco de árvore correspondente.
[0090] O codificador de vídeo 20 pode realizar operações de codificação em cada CU não particionada de um bloco de árvore. Quando o codificador de vídeo 20 realiza uma operação de codificação em um CU não particionada, o codificador de vídeo 20 gera dados que representam uma representação codificada da CU não particionada.
[0091] Como parte da realização de uma operação de codificação em uma CU, a unidade de processamento de predição 100 pode particionar 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 pode sustentar vários tamanhos de PU. Presumindo-se que o tamanho de uma CU particular seja 2Nx2N, o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar os tamanhos de PU 2Nx2xN ou NxN para interpredição em tamanhos simétricos de PU 2Nx2N, 2NxN, Nx2N, xN, 2NxnU, nLx2N, nRx2N ou similares. O codificador de vídeo 20 e o decodificador de vídeo 30 também podem suportar partição assimétrica para os tamanhos de PU 2xnU, 2NxnD, nLx2N e nRx2N. Em alguns exemplos, a unidade de processamento de predição 100 pode realizar partição geométrica para particionar 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.
[0092] A unidade de interpredição 121 pode realizar interpredição em cada PU da CU. A interpredição pode fornecer compressão temporal. Para realizar interpredição em uma PU, a unidade de estimativa de movimento 122 pode gerar informações de movimento para a PU. A unidade de compensação de movimento 124 pode gerar um bloco de vídeo predito para a PU com base nas informações de movimento e amostras decodificadas de imagens que não sejam a imagem associada à CU (por exemplo, imagens de referência). Nessa revelação, um bloco de vídeo predito gerado pela unidade de compensação de movimento 124 pode ser referido como um bloco de vídeo interpredito.
[0093] As fatias podem ser fatias I, fatias P ou fatias B. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem realizar diferentes operações para uma PU de uma CU que depende 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 intrapreditivas. Por conseguinte, se a PU estiver em uma fatia I, a unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 não realizam interpredição na PU.
[0094] Se a PU estiver em uma fatia P, a imagem que contém a PU fica associada a uma lista de imagens de referência referida como "lista 0". Cada uma das imagens de referência na lista 0 contém amostras que podem ser usadas para a interpredição de outras imagens. Quando a unidade de estimativa de movimento 122 realizar a operação de estimativa de movimento em relação a uma PU em uma fatia P, a unidade de estimativa de movimento 122 pode buscar as imagens de referência na lista 0 para 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 aproximadamente às amostras no bloco de vídeo da PU. A unidade de estimativa de movimento 122 pode usar uma variedade de métricas para determinar o quão próximo um conjunto de amostras em uma imagem de referência corresponde às amostras no bloco de vídeo de uma PU. Por exemplo, a unidade de estimativa de movimento 122 pode determinar o quão próximo um conjunto de amostras em uma imagem de referência corresponde às amostras no bloco de vídeo de uma PU pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD) ou outras métricas de diferença.
[0095] Após identificar um bloco de referência de uma PU em uma fatia P, a unidade de estimativa de movimento 122 pode gerar um índice de referência que indica a imagem de referência na lista 0 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. Em vários exemplos, a unidade de estimativa de movimento 122 pode gerar vetores de movimento para vários graus de precisão. Por exemplo, a unidade de estimativa de movimento 122 pode gerar vetores de movimento em precisão de um quarto de amostra, precisão de um oitavo de amostra ou outra precisão amostra fracionária. NO caso de precisão de amostra fracionária, os valores de bloco de referência podem ser interpolados a partir de valores de amostra de número inteiro de posição na imagem de referência. Uma unidade de estimativa de movimento 122 pode emitir o índice de referência e o vetor de movimento como as informações de movimento da PU. A unidade de compensação de movimento 124 pode gerar um bloco de vídeo predito da PU com base no bloco de referência identificado pelas informações de movimento da PU.
[0096] Se a PU estiver em uma fatia B, a imagem que contém a PU pode ser associada a duas listas de imagens de referência, referidas como "lista 0" e "lista 1". Em alguns exemplos, uma imagem que contém uma fatia B pode estar associada a uma combinação de listas que é uma combinação de lista 0 e de lista 1.
[0097] Além disso, se a PU estiver em uma fatia B, a unidade de estimativa de movimento 122 pode realizar predição monodirecional ou predição bidirecional para a PU. Quando a unidade de estimativa de movimento 122 realizar predição monodirecional para a PU, a unidade de estimativa de movimento 122 pode buscar as imagens de referência da lista 0 ou da lista 1 para um bloco de referência para a PU. A unidade de estimativa de movimento 122 pode, então, gerar um índice de referência que indica a imagem de referência na lista 0 ou na 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. Uma unidade de estimativa de movimento 122 pode emitir o índice de referência, um indicador de direção de predição e o vetor de movimento como as informações 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 na lista 1. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo predito da PU com base no bloco de referência indicado pelas informações de movimento da PU.
[0098] Quando a unidade de estima de movimento 122 realiza predição bidirecional para uma PU, a unidade de estima de movimento 122 pode buscar as imagens de referência na lista 0 para um bloco de referência para a PU e pode também buscar as imagens de referência na lista 1 para outro bloco de referência para a PU. A unidade de estimativa de movimento 122 pode então gerar índices de referência que indicam as imagens de referência na lista 0 e na lista 1 que contêm os blocos de referência e vetores de movimento que indicam deslocamentos espaciais entre os blocos de referência e a PU. A unidade de estimativa de movimento 122 pode emitir os índices de referência e os vetores de movimento da PU como as informações de movimento da PU. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo predito da PU com base nos blocos de referência indicados pelas informações de movimento da PU.
[0099] Em alguns casos, a unidade de estima de movimento 122 não emite um conjunto completo de informações de movimento para uma PU para a unidade de codificação por entropia 116. Ao invés disso, a unidade de estima de movimento 122 pode sinalizar as informações de movimento de uma PU com referência às informações de movimento de outra PU. Por exemplo, a unidade de estima de movimento 122 pode determinar que as informações de movimento da PU são suficientemente similares às informações de movimento de uma PU vizinha. Neste exemplo, a unidade de estima de movimento 122 pode indicar, em uma estrutura de sintaxe associada com a PU, um valor que indica ao decodificador de vídeo 30 que a PU tem as mesmas informações de movimento que a PU vizinha. Em outro exemplo, a unidade de estima de movimento 122 pode identificar, em uma estrutura de sintaxe associada com a PU, uma PU vizinha e uma diferença de vetor de movimento (MVD). A diferença de vetor de movimento indica uma diferença entre o vetor de movimento da PU e o vetor de movimento da PU vizinha indicada. O decodificador de vídeo 30 pode usar o vetor de movimento da PU vizinha indicada e a diferença de vetor de movimento para determinar o vetor de movimento da PU. Em referência às informações de movimento de uma primeira PU quando as informações de movimento de uma segunda PU são sinalizadas, o codificador de vídeo 20 pode ser capaz de sinalizar as informações de movimento da segunda PU com o uso de menos bits.
[00100] Conforme discutido adicionalmente abaixo com referência às Figuras 5 a 8, a unidade de processamento de predição 100 pode ser configurada para codificar (por exemplo, codificar ou decodificar) a PU (ou quaisquer outros blocos de camada de referência e/ou camada de melhoria ou unidades de vídeo) realizando-se os métodos ilustrados nas Figuras 5 a 8. Por exemplo, a unidade de interpredição 121 (por exemplo, por meio da unidade de estima de movimento 122 e/ou da unidade de compensação de movimento 124), a unidade de intrapredição 126, ou a unidade de predição intercamada 128 pode ser configurada para realizar os métodos ilustrados nas Figuras 5 a 8, tanto juntos quanto separados.
[00101] Como parte da realização de uma operação de codificação em uma CU, a unidade de intrapredição 126 pode realizar intrapredição em PUs da CU. A intrapredição pode fornecer compressão espacial. Quando a unidade de intrapredição 126 realiza intrapredição em uma PU, a unidade de intrapredição 126 pode gerar dados de predição para a PU com base em 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. A unidade de intrapredição 126 pode realizar intrapredição em PUs nas fatias I, fatias P e fatias B.
[00102] Para realizar intrapredição em uma PU, a unidade de intrapredição 126 pode usar múltiplos modos de intrapredição para gerar múltiplos conjuntos de dados de predição para a PU. Quando a unidade de intrapredição 126 usa um modo de intrepredição para gerar um conjunto de dados de predição para a PU, a unidade de intrapredição 126 pode estender amostras de blocos de vídeo de PUs vizinhas através do bloco de vídeo da PU em uma direção e/ou gradiente associado com o modo de intrepredição. As PUs vizinhas podem estar acima, acima e para a direita, acima e para a esquerda, ou para a esquerda da PU, assumindo uma ordem de codificação da esquerda para a direita, de cima para baixo para PUs, CUs e blocos de árvore. A unidade de intrapredição 126 pode usar vários números de modos de intrapredição, por exemplo, 33 modos de intrapredição direcional, dependendo do tamanho da PU.
[00103] A unidade de processamento de predição 100 pode selecionar os dados de predição para uma PU de dentre os dados de predição gerados pela unidade de compensação de movimento 124 para a PU ou os dados de predição gerados pela unidade de intrapredição 126 para a PU. Em alguns exemplos, a unidade de processamento de predição 100 seleciona os dados de predição para a PU com base em métricas de taxa/distorção dos conjuntos de dados de predição.
[00104] Se a unidade de processamento de predição 100 seleciona dados de predição gerados pela unidade de intrapredição 126, a unidade de processamento de predição 100 pode sinalizar o modo de intrepredição que foi usado para gerar os dados de predição para as PUs, por exemplo, o modo de intrepredição selecionado. A unidade de processamento de predição 100 pode sinalizar o modo de intrepredição selecionado de várias formas. Por exemplo, é provável que o modo de intrepredição selecionado seja o mesmo que o modo de intrepredição de uma PU vizinha. Em outras palavras, o modo de intrepredição da PU vizinha pode ser o modo mais provável para a PU atual. Desse modo, a unidade de processamento de predição 100 pode gerar um elemento de sintaxe para indicar que o modo de intrepredição selecionado é o mesmo que o modo de intrepredição da PU vizinha.
[00105] Conforme discutido acima, o codificador de vídeo 20 pode incluir uma unidade de predição intercamada 128. A unidade de predição intercamada 128 é configurada para predizer um bloco atual (por exemplo, um bloco atual na EL) com o uso de uma ou mais camadas diferentes que estão disponíveis em SVC (por exemplo, uma camada de base ou de referência). Tal predição pode ser denominada como predição intercamada. A unidade de predição intercamada 128 utiliza métodos de predição para reduzir redundância intercamada, que assim aprimora a eficiência de codificação e reduz as exigências de recurso computacional. Alguns exemplos de predição intercamada incluem intrapredição intercamada, predição de movimento intercamada e predição residual intercamada. A interpredição intercamada usa a reconstrução de blocos colocalizados na camada de base para predizer o bloco atual na camada de melhoria. A predição de movimento intercamada usa informações de movimento da camada de base para predizer o movimento na camada de melhoria. A predição residual intercamada usa o resíduo da camada de base para predizer o resíduo da camada de melhoria. Cada um dos esquemas de predição intercamada é discutido abaixo em maiores detalhes.
[00106] Após a unidade de processamento de predição 100 selecionar os dados de predição para PUs de uma CU, a unidade de geração residual 102 pode gerar dados residuais para a CU subtraindo-se (por exemplo, indicado pelo sinal de menos) os blocos de vídeo preditos das PUs da CU do bloco de vídeo da CU. Os dados residuais de uma CU podem incluir 2D blocos de vídeo residuais que correspondem a 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 a diferenças entre componentes de luminância de 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 componentes de crominância de 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.
[00107] A unidade de processamento de predição 100 pode realizar partição de árvore quadrática para particionar 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 TUs de uma CU podem ou podem não ser baseados nos tamanhos e posições de blocos de vídeo associados com as PUs da CU. Uma estrutura de árvore quadrática conhecida como uma "árvore quadrática residual" (QT) pode incluir nós associados com cada um dos blocos de vídeo residuais. As TUs de uma CU podem corresponder a nós folha da RQT.
[00108] A unidade de processamento de transformada 104 pode gerar um ou mais blocos de coeficiente de transformada para cada TU de uma CU aplicando-se uma ou mais transformações a um bloco de vídeo residual associado com a TU. Cada um dos blocos de coeficiente de transformada pode ser uma matriz em 2D de coeficientes de transformada. A unidade de processamento de transformada 104 pode aplicar várias transformações ao bloco de vídeo residual associado com uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional, ou uma transformada conceitualmente similar ao bloco de vídeo residual associado com uma TU.
[00109] Após a unidade de processamento de transformada 104 gerar um bloco de coeficiente de transformada associado com uma TU, a unidade de quantização 106 pode quantizar os coeficientes de transformada no bloco de coeficiente de transformada. A unidade de quantização 106 pode quantizar um bloco de coeficiente de transformada associado com uma TU de uma CU com base em um valor de QP associado com a CU.
[00110] O codificador de vídeo 20 pode associar um valor de QP com uma CU de várias formas. Por exemplo, o codificador de vídeo 20 pode realizar uma análise de distorção de taxa em um bloco de árvore 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 bloco de árvore realizando-se uma operação de codificação múltiplas vezes no bloco de árvore. O codificador de vídeo 20 pode associar diferentes valores de QP com a CU quando o codificador de vídeo 20 gerar diferentes representações codificadas do bloco de árvore. O codificador de vídeo 20 pode sinalizar que um dado valor de QP é associado com a CU quando o dado valor de QP é associado com a CU em uma representação codificada do bloco de árvore que tem uma taxa de bits e métrica de distorção mais baixas.
[00111] A unidade de quantização inversa 108 e a unidade de transformada inversa 110 podem aplicar quantização inversa e transformações inversas ao bloco de coeficiente de transformada, respectivamente, para reconstruir um bloco de vídeo residual a partir do bloco de coeficiente de transformada. A unidade de reconstrução 112 pode adicionar o bloco de vídeo residual reconstruído a amostras correspondentes de um ou mais blocos de vídeo preditos gerados pela unidade de processamento de predição 100 para produzir um bloco de vídeo reconstruído associado com uma TU. Reconstruindo-se blocos de vídeo para cada TU de uma CU dessa forma, o codificador de vídeo 20 pode reconectar o bloco de vídeo à CU.
[00112] Após a unidade de reconstrução 112 reconstruir o bloco de vídeo de uma CU, a unidade de filtro 113 pode realizar uma operação de remoção de bloco para reduzir os artefatos de bloqueio no bloco de vídeo associado com a CU. Após a realização das uma ou mais operações de remoção de bloco, a unidade de filtro 113 pode armazenar o bloco de vídeo reconstruído da CU no armazenamento temporário de imagem decodificada 1 14. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem usar uma imagem de referência que contém o bloco de vídeo reconstruído para realizar interpredição em PUs de imagens subsequentes. Além disso, a unidade de intrapredição 126 pode usar blocos de vídeo reconstruídos no armazenamento temporário de imagem decodificada 114 para realizar intrapredição em outras PUs na mesma imagem que a CU.
[00113] A unidade de codificação por entropia 116 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a unidade de codificação por entropia 116 pode receber blocos de coeficiente de transformada da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de predição 100. Quando a unidade de codificação por entropia 116 recebe os dados, a unidade de codificação por entropia 116 pode realizar uma ou mais operações de codificação por entropia para gerar dados codificados com entropia. Por exemplo, o codificador de vídeo 20 pode realizar uma operação de codificação de comprimento variável adaptativo ao contexto (CAVLC), uma operação com CABAC, uma operação de codificação de comprimento de variável para variável (V2V), uma operação de codificação aritmética binária adaptativa ao contexto com base em sintaxe (SBAC), uma operação de codificação de Entropia de Partição de Intervalo de Probabilidade (PIPE), ou outro tipo de operação de codificação por entropia nos dados. A unidade de codificação por entropia 116 pode emitir um fluxo de bits que inclui os dados codificados com entropia.
[00114] Como parte da realização de uma operação de codificação por entropia em dados, a unidade de codificação por entropia 116 pode selecionar um modelo de contexto. Se a unidade de codificação por entropia 116 realiza uma operação com CABAC, o modelo de contexto pode indicar estimativas de probabilidades de binários particulares que têm valores particulares. No contexto de CABAC, o termo "binário” é usado para se referir a um bit de uma versão binarizada de um elemento de sintaxe.
CODIFICADOR DE VÍDEO DE MÚLTIPLAS CAMADAS
[00115] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um codificador de vídeo de múltiplas camadas 23 que pode implantar técnicas de acordo com aspectos descritos nessa revelação. O codificador de vídeo 23 pode ser configurado para processar quadros de vídeo de múltiplas camadas, tal como para SHVC e codificação em múltiplas vistas. Adicionalmente, o codificador de vídeo 23 pode ser configurado para realizar qualquer ou todas as técnicas desta revelação.
[00116] O codificador de vídeo 23 inclui um codificador de vídeo 20A e um codificador de vídeo 20B, cada um dos quais pode ser configurado como o codificador de vídeo 20 e pode realizar as funções descritas acima em relação ao codificador de vídeo 20. Adicionalmente, conforme indicado pela reutilização de referências numéricas, os codificadores de vídeo 20A e 20B podem incluir pelo menos alguns dos sistemas e subsistemas como o codificador de vídeo 20. Embora o codificador de vídeo 23 seja ilustrado como incluindo dois codificadores de vídeo 20A e 20B, o codificador de vídeo 23 não é limitado a tal e pode incluir qualquer número de camadas de codificador de vídeo 20. Em algumas modalidades, o codificador de vídeo 23 pode incluir um codificador de vídeo 20 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou codificada por um codificador de vídeo que inclui cinco camadas de codificador. Em algumas modalidades, o codificador de vídeo 23 pode incluir mais camadas de codificador do que quadros na unidade de acesso. Em tais casos, algumas das camadas de codificador de vídeo podem ser inativas quando algumas unidades de acesso são processadas.
[00117] Além dos codificadores de vídeo 20A e 20B, o codificador de vídeo 23 pode incluir uma unidade de reamostragem 90. A unidade de reamostragem 90 pode, em alguns casos, sobreamostrar uma camada de base de um quadro de vídeo recebido para, por exemplo, criar uma camada de melhoria. A unidade de reamostragem 90 pode sobreamostrar informações particulares associadas com a camada de base recebida, mas não outras informações. Por exemplo, a unidade de reamostragem 90 pode sobreamostrar o tamanho espacial ou número de pixels da camada de base, mas o número de fatias ou a contagem de ordem de imagem podem permanecer constantes. Em alguns casos, a unidade de reamostragem 90 pode não processar o vídeo recebido e/ou pode ser opcional. Por exemplo, em alguns casos, a unidade de processamento de predição 100 pode realizar sobreamostragem. Em algumas modalidades, a unidade de reamostragem 90 é configurada para sobreamostrar de uma camada e reorganizar, redefinir, modificar, ou ajustar uma ou mais fatias para se sujeitar a um conjunto de regras de contorno de fatia e/ou regras de vídeo de varredura. Embora primariamente descrita como sobreamostrando uma camada de base, ou de uma camada inferior em uma unidade de acesso, em alguns casos, a unidade de reamostragem 90 pode subamostrar (downsampling) uma camada. Por exemplo, se durante transmissão contínua de um vídeo a largura de banda for reduzida, pode-se subamostrar de um quadro ao invés de sobreamostrar.
[00118] A unidade de reamostragem 90 pode ser configurada para receber uma imagem de quadro (ou informações de imagem associadas com a imagem) do armazenamento temporário de imagem decodificada 114 do codificador de camada inferior (por exemplo, o codificador de vídeo 20A) e para sobreamostrar a imagem (ou das informações de imagem recebidas). Essa imagem com sobreamostragem pode então ser fornecida para a unidade de processamento de predição 100 de um codificador de camada superior (por exemplo, o codificador de vídeo 20B) configurado para codificar uma imagem na mesma unidade de acesso que o codificador de camada inferior. Em alguns casos, o codificador de camada superior é uma camada removida do codificador de camada inferior. Em outros casos, pode haver um ou mais codificadores de camada superior entre o codificador de vídeo de camada 0 e o codificador de camada 1 da Figura 2B.
[00119] Em alguns casos, a unidade de reamostragem 90 pode ser omitida ou desviada. Em tais casos, a imagem do armazenamento temporário de imagem decodificada 114 do codificador de vídeo 20A pode ser fornecida diretamente, ou pelo menos sem ser fornecido para a unidade de reamostragem 90, para a unidade de processamento de predição 100 do codificador de vídeo 20B. Por exemplo, se os dados de vídeo fornecidos ao codificador de vídeo 20B e a imagem de referência do armazenamento temporário de imagem decodificada 114 do codificador de vídeo 20A forem do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida ao codificador de vídeo 20B sem qualquer reamostragem.
[00120] Em algumas modalidades, o codificador de vídeo 23 subamostra dados de vídeo a serem fornecidos ao codificador de camada inferior com o uso da unidade de subamostragem 94 fornecida antes de fornecer os dados de vídeo para o codificador de vídeo 20A. Alternativamente, a unidade de subamostragem 94 pode ser uma unidade de reamostragem 90 capaz de sobreamostrar ou subamostrar os dados de vídeo. Em ainda outras modalidades, a unidade de subamostragem 94 pode ser omitida.
[00121] Conforme ilustrado na Figura 2B, o codificador de vídeo 23 pode incluir adicionalmente um multiplexador 98, ou mux. O mux 98 pode emitir um fluxo de bits combinado a partir do codificador de vídeo 23. O fluxo de bits combinado pode ser criado tirando-se um fluxo de bits de cada um dos codificadores de vídeo 20A e 20B e alternando-se qual fluxo de bits é omitido em um dado momento. Enquanto em alguns casos os bits dos dois (ou mais no caso de mais do que duas camadas de codificador de vídeo) fluxos de bit podem ser alternados um bit por vez, em muitos casos os fluxos de bits são combinados diferentemente. Por exemplo, o fluxo de bits de saída pode ser criado alternando- se o fluxo de bits selecionado um bloco por vez. Em outro exemplo, o fluxo de bits emitido pode ser criado emitindo- se uma razão diferente de 1 : 1 de blocos de cada um dos codificadores de vídeo 20A e 20B. Por exemplo, dois blocos podem ser emitidos do codificador de vídeo 20B para cada bloco emitido do codificador de vídeo 20A. Em algumas modalidades, o fluxo de saída do mux 98 pode ser programado. Em outras modalidades, o mux 98 pode combinar os fluxos de bits dos codificadores de vídeo 20A, 20B com base em um sinal de controle recebido de um sistema externo com o codificador de vídeo 23, tal como de um processador em um dispositivo fonte que inclui o módulo de fonte 12. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo da fonte de vídeo 18, com base em uma largura de banda do enlace 16, com base em uma assinatura associada com um usuário (por exemplo, uma assinatura paga versus uma assinatura gratuita), ou com base em qualquer outro fator para determinar uma saída de resolução desejada do codificador de vídeo 23.
DECODIFICADOR DE VÍDEO
[00122] A Figura 3A é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nessa revelação. O decodificador de vídeo 30 pode ser configurado para processar uma única camada de um quadro de vídeo, tal como para HEVC. Adicionalmente, o decodificador de vídeo 30 pode ser configurado para realizar qualquer ou todas as técnicas desta revelação. Como um exemplo, a unidade de compensação de movimento 162 e/ou a unidade de intrapredição 164 podem ser configuradas para realizar qualquer uma ou todas as técnicas descritas nesta revelação. Em uma modalidade, o decodificador de vídeo 30 pode incluir opcionalmente a unidade de predição intercamada 166 que é configurada para realizar qualquer uma ou todas as técnicas descritas nesta revelação. Em outras modalidades, a predição intercamada pode ser realizada pela unidade de processamento de predição 152 (por exemplo, a unidade de compensação de movimento 162 e/ou a unidade de intrapredição 164), em cujo caso a unidade de predição intercamada 166 pode ser omitida. Entretanto, os aspectos desta revelação não são limitados. Em alguns exemplos, as técnicas descritas nesta revelação podem ser compartilhadas dentre os vários componentes do decodificador de vídeo 30. Em alguns exemplos, adicionalmente ou alternativamente, um processador (não mostrado) pode ser configurado para realizar qualquer uma ou todas as técnicas descritas nesta revelação.
[00123] Para propósitos de explicação, esta revelação descreve o decodificador de vídeo 30 no contexto de codificação HEVC. Entretanto, as técnicas desta revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O exemplo representado na Figura 3A é para um codec de camada única. Entretanto, conforme será descrito adicionalmente em relação à Figura 3B, alguns ou os decodificadores de vídeo 30 podem ser duplicados para processamento de um codec de múltiplas camadas.
[00124] No exemplo da Figura 3A, o decodificador de vídeo 30 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do decodificador de vídeo 30 incluem uma unidade de decodificação por entropia 150, a unidade de processamento de predição 152, uma unidade de quantização reversa 154, uma unidade de transformada inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 159 e um armazenamento temporário de imagem decodificada 160. A unidade de processamento de predição 152 inclui uma unidade de compensação de movimento 162, uma unidade de intrapredição 164 e uma unidade de predição intercamada 166. Em alguns exemplos, o decodificador de vídeo 30 pode realizar um passe de decodificação geralmente recíproco ao passe de codificação descrito em relação ao codificador de vídeo 20 da Figura 2A. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais, menos ou componentes funcionais diferentes.
[00125] O decodificador de vídeo 30 pode receber um fluxo de bits que compreende dados de vídeo codificados. O fluxo de bits pode incluir uma pluralidade de elementos de sintaxe. Quando o decodificador de vídeo 30 receber o fluxo de bits, a unidade de decodificação por entropia 150 pode realizar uma operação de análise no fluxo de bits. Como resultado da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode extrair elementos de sintaxe a partir do fluxo de bits. Como parte da realização da operação de análise, a unidade de decodificação por entropia 150 pode decodificar por entropia os elementos de sintaxe codificados por entropia no fluxo de bits. A unidade de processamento de predição 152, a unidade de quantização reversa 154, a unidade de transformada inversa 156, a unidade de reconstrução 158 e a unidade de filtro 159 podem realizar uma operação de reconstrução que gera dados de vídeo decodificados com base nos elementos de sintaxe extraídos do fluxo de bits.
[00126] Conforme discutido acima, o fluxo de bits pode compreender uma série de unidades de NAL. As unidades de NAL do fluxo de bits podem incluir unidades de NAL de conjunto de parâmetro de vídeo, unidades de NAL de conjunto de parâmetro de sequência, unidades de NAL de conjunto de parâmetro de imagem, unidades de NAL de SEI e assim por diante. Como parte da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode realizar operações de análise que extraem e decodificam por entropia conjuntos de parâmetro de sequência a partir de unidades de NAL de conjunto de parâmetro de sequência, conjuntos de parâmetro de imagem a partir de unidades de NAL de conjunto de parâmetro de imagem, dados de SEI de unidades de NAL de SEI e assim por diante.
[00127] Além disso, as unidades de NAL do fluxo de bits podem incluir unidades de NAL de fatia codificada. Como parte da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode realizar operações de análise que extraem e decodificam por entropia fatias codificadas das unidades de NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe relacionados a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um conjunto de parâmetro de imagem associado com uma imagem que contém a fatia. A unidade de decodificação por entropia 150 pode realizar operações de decodificação por entropia, tais como operações de decodificação por CABAC, em elementos de sintaxe no cabeçalho de fatia codificada para recuperar o cabeçalho de fatia.
[00128] Como parte da extração dos dados de fatia das unidades de NAL de fatia codificada, a unidade de decodificação por entropia 150 pode realizar operações de análise que extraem elementos de sintaxe de CUs codificadas nos dados de fatia. Os elementos de sintaxe extraídos podem incluir elementos de sintaxe associados com blocos de coeficiente de transformada. A unidade de decodificação de entropia 150 pode então realizar operações de decodificação por CABAC em alguns dos elementos de sintaxe.
[00129] Após a unidade de decodificação por entropia 150 realizar uma operação de análise em uma CU não particionada, o decodificador de vídeo 30 pode realizar uma operação de reconstrução na CU não particionada. Para realizar a operação de reconstrução em uma CU não particionada, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em cada TU da CU. Realizando-se a operação de reconstrução para cada TU da CU, o decodificador de vídeo 30 pode reconstruir um bloco de vídeo residual associado com a CU.
[00130] Como parte da realização de uma operação de reconstrução em uma TU, a unidade de quantização reversa 154 pode quantizar inversamente, por exemplo, de-quantizar, um bloco de coeficiente de transformada associado com a TU. A unidade de quantização inversa 154 pode quantizar inversamente o bloco de coeficiente de transformada de uma maneira similar ao processo de quantização inversa proposto por HEVC ou definido pelo padrão de codificação H.264. A unidade de quantização inversa 154 pode usar um parâmetro de quantização QP calculado pelo codificador de vídeo 20 para que uma CU do bloco de coeficiente de transformada determine um grau de quantização e, da mesma forma, um grau de quantização inversa para a unidade de quantização reversa 154 aplicar.
[00131] Após a unidade de quantização reversa 154 quantizar inversamente um bloco de coeficiente de transformada, a unidade de transformada inversa 156 pode gerar um bloco de vídeo residual para a TU associada com o bloco de coeficiente de transformada. A unidade de transformada inversa 156 pode aplicar uma transformada inversa ao bloco de coeficiente de transformada a fim de gerar o bloco de vídeo residual para a TU. Por exemplo, a unidade de transformada inversa 156 pode aplicar uma DCT inversa, uma transformada de número inteiro inversa, uma transformada Karhunen-Loeve inversa (KLT), uma transformada rotacional inversa, uma transformada direcional inversa, ou outra transformada inversa ao bloco de coeficiente de transformada. Em alguns exemplos, a unidade de transformada inversa 156 pode determinar que uma transformada inversa seja aplicada ao bloco de coeficiente de transformada com base na sinalização do codificador de vídeo 20. Em tais exemplos, a unidade de transformada inversa 156 pode determinar a transformada inversa com base em uma transformada sinalizada do nó-raiz de uma árvore quadrática para um bloco de árvore associado com o bloco de coeficiente de transformada. Em outros exemplos, a unidade de transformada inversa 156 pode inferir a transformada inversa de uma ou mais características de codificação, tal como tamanho de bloco, modo de codificação, ou similares. Em alguns exemplos, a unidade de transformada inversa 156 pode aplicar uma transformada inversa em cascata.
[00132] Em alguns exemplos, a unidade de compensação de movimento 162 pode refinar o bloco de vídeo predito de uma PU realizando-se uma interpolação com base em filtros de interpolação. Os identificadores para filtros de interpolação a serem usados para compensação de movimento com precisão de sobreamostragem podem ser incluídos nos elementos de sintaxe. A unidade de compensação de movimento 1672 pode usar os mesmos filtros de interpolação usados pelo codificador de vídeo 20 durante a geração do bloco de vídeo predito da PU para calcular valores interpolados para as amostras de número decimal de um bloco de referência. A unidade de compensação de movimento 162 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 de acordo com informações de sintaxe recebidas e usar os filtros de interpolação para produzir o bloco de vídeo predito.
[00133] Conforme discutido adicionalmente abaixo com referência às Figuras 5 a 8, a unidade de processamento de predição 152 pode codificar (por exemplo, codificar ou decodificar) a PU (ou quaisquer outros blocos de camada de referência e/ou camada de melhoria ou unidades de vídeo) realizando-se os métodos ilustrados nas Figuras 5 a 8. Por exemplo, a unidade de compensação de movimento 162, a unidade de intrapredição 164, ou a unidade de predição intercamada 166 pode ser configurada para realizar os métodos ilustrados nas Figuras 5 a 8, tanto juntos quanto separados.
[00134] Se uma PU é codificada com o uso de intrapredição, a unidade de intrapredição 164 pode realizar intrapredição para gerar um bloco de vídeo predito para a PU. Por exemplo, a unidade de intrapredição 164 pode determinar um modo de intrepredição para a PU com base em elementos de sintaxe no fluxo de bits. O fluxo de bits pode incluir elementos de sintaxe que a unidade de intrapredição 164 pode usar para determinar o modo de intrepredição da PU.
[00135] Em alguns casos, os elementos de sintaxe podem indicar que a unidade de intrapredição 164 deve usar o modo de intrepredição de outra PU para determinar o modo de intrepredição da PU atual. Por exemplo, pode ser provável que o modo de intrepredição da PU atual é o mesmo que o modo de intrepredição de uma PU vizinha. Em outras palavras, o modo de intrepredição da PU vizinha pode ser o modo mais provável para a PU atual. Consequentemente, neste exemplo, o fluxo de bits pode incluir um elemento de sintaxe pequeno que indica que o modo de intrepredição da PU é o mesmo que o modo de intrepredição da PU vizinha. A unidade de intrapredição 164 pode então usar o modo de intrepredição para gerar dados de predição (por exemplo, amostras preditas) para a PU com base nos blocos de vídeo de Pus espacialmente vizinhas.
[00136] Conforme discutido acima, o decodificador de vídeo 30 pode também incluir uma unidade de predição intercamada 166. A unidade de predição intercamada 166 é configurada para predizer um bloco atual (por exemplo, um bloco atual na EL) com o uso de uma ou mais camadas diferentes que estão disponíveis em SVC (por exemplo, uma camada de base ou de referência). Tal predição pode ser denominada como predição intercamada. A unidade de predição intercamada 166 utiliza métodos de predição para reduzir redundância intercamada, que assim aprimora a eficiência de codificação e reduz as exigências de recurso computacional. Alguns exemplos de predição intercamada incluem intrapredição intercamada, predição de movimento intercamada e predição residual intercamada. A interpredição intercamada usa a reconstrução de blocos colocalizados na camada de base para predizer o bloco atual na camada de melhoria. A predição de movimento intercamada usa informações de movimento da camada de base para predizer o movimento na camada de melhoria. A predição residual intercamada usa o resíduo da camada de base para predizer o resíduo da camada de melhoria. Cada um dos esquemas de predição intercamada é discutido abaixo em maiores detalhes.
[00137] A unidade de reconstrução 158 pode usar os blocos de vídeo residuais associados com TUs de uma CU e os blocos de vídeo preditos das PUs da CU, por exemplo, tanto dados de intrapredição quanto dados de interpredição, conforme aplicáveis, para reconstruir o bloco de vídeo da CU. Desse modo, o decodificador de vídeo 30 pode gerar um bloco de vídeo predito e um bloco de vídeo residual com base em elementos de sintaxe no fluxo de bits e pode gerar um bloco de vídeo com base no bloco de vídeo predito e no bloco de vídeo residual.
[00138] Após a unidade de reconstrução 158 reconstruir o bloco de vídeo da CU, a unidade de filtro 159 pode realizar uma operação de remoção de bloco para reduzir os artefatos de bloqueio associados com a CU. Após a unidade de filtro 159 realizar uma operação de remoção de bloco para reduzir artefatos de bloqueio associados com a CU, o decodificador de vídeo 30 pode armazenar o bloco de vídeo da CU em armazenamento temporário de imagem decodificada 160. O armazenamento temporário de imagem decodificada 160 pode fornecer imagens de referência para compensação de movimento subsequente, intrapredição e apresentação em um dispositivo de exibição, tal como o dispositivo de exibição 32 na Figura 1A ou IB. Por exemplo, o decodificador de vídeo 30 pode realizar, com base nos blocos de vídeo no armazenamento temporário de imagem decodificada 160, operações de intrapredição ou interpredição em PUs das outras CUs.
DECODIFICADOR DE MÚLTIPLAS CAMADAS
[00139] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo de múltiplas camadas 33 que pode implantar técnicas de acordo com aspectos descritos nessa revelação. O decodificador de vídeo 33 pode ser configurado para processar quadros de vídeo de múltiplas camadas, tal como para SHVC e codificação em múltiplas vistas. Adicionalmente, o decodificador de vídeo 33 pode ser configurado para realizar qualquer ou todas as técnicas desta revelação.
[00140] O decodificador de vídeo 33 inclui um decodificador de vídeo 30A e um decodificador de vídeo 30B, cada um dos quais pode ser configurado como o decodificador de vídeo 30 e pode realizar as funções descritas acima em relação ao decodificador de vídeo 30. Adicionalmente, conforme indicado pela reutilização de referências numéricas, os decodificadores de vídeo 30A e 30B podem incluir pelo menos alguns dos sistemas e subsistemas como o decodificador de vídeo 30. Embora o decodificador de vídeo 33 seja ilustrado como incluindo dois decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 não é limitado a tal e pode incluir qualquer número de camadas de decodificador de vídeo 30. Em algumas modalidades, o decodificador de vídeo 33 pode incluir um decodificador de vídeo 30 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou decodificada por um decodificador de vídeo que inclui cinco camadas de decodificador. Em algumas modalidades, o decodificador de vídeo 33 pode incluir mais camadas de decodificador do que quadros na unidade de acesso. Em tais casos, algumas das camadas de decodificador de vídeo podem ser inativas quando algumas unidades de acesso são processadas.
[00141] Além dos decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 pode incluir uma unidade de sobreamostragem 92. Em algumas modalidades, a unidade de sobreamostragem 92 pode sobreamostrar uma camada de base de um quadro de vídeo recebido para criar uma camada melhorada a ser adicionada à lista de imagem de referência para o quadro ou a unidade de acesso. Essa camada melhorada pode ser armazenada no armazenamento temporário de imagem decodificada 160. Em algumas modalidades, a unidade de sobreamostragem 92 pode incluir algumas ou todas as modalidades descritas em relação à unidade de reamostragem 90 da Figura 2A. Em algumas modalidades, a © 92 é configurada para sobreamostrar uma camada e reorganizar, redefinir, modificar, ou ajustar uma ou mais fatias para se sujeitar a um conjunto de regras de contorno de fatia e/ou regras de vídeo de varredura. Em alguns casos, a unidade de sobreamostragem 92 pode ser uma unidade de reamostragem configurada para sobreamostrar e/ou subamostrar uma camada de um quadro de vídeo recebido
[00142] A unidade de sobreamostragem 92 pode ser configurada para receber uma imagem de quadro (ou informações de imagem associadas com a imagem) do armazenamento temporário de imagem decodificada 160 do decodificador de camada inferior (por exemplo, o decodificador de vídeo 30A) e para sobreamostrar a imagem (ou das informações de imagem recebidas). Essa imagem com sobreamostragem pode então ser fornecida para a unidade de processamento de predição 152 de um decodificador de camada superior (por exemplo, o decodificador de vídeo 30B) configurado para decodificar uma imagem na mesma unidade de acesso que o decodificador de camada inferior. Em alguns casos, o decodificador de camada superior é uma camada removida do decodificador de camada inferior. Em outros casos, pode haver um ou mais decodificadores de camada superior entre o decodificador de vídeo de camada 0 e o decodificador de camada 1 da Figura 3B.
[00143] Em alguns casos, a unidade de sobreamostragem 92 pode ser omitida ou desviada. Em tais casos, a imagem do armazenamento temporário de imagem decodificada 160 do decodificador de vídeo 30A pode ser fornecida diretamente, ou pelo menos sem ser fornecido para a unidade de sobreamostragem 92, para a unidade de processamento de predição 152 do decodificador de vídeo 30B. Por exemplo, se os dados de vídeo fornecidos ao decodificador de vídeo 30B e a imagem de referência do armazenamento temporário de imagem decodificada 160 do decodificador de vídeo 30A forem do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida ao decodificador de vídeo 30B sem qualquer sobreamostragem. Adicionalmente, em algumas modalidades, a unidade de sobreamostragem 92 pode ser uma unidade de reamostragem 90 configurada para ou subamostrar uma imagem de referência recebida do armazenamento temporário de imagem decodificada 160 do decodificador de vídeo 30A.
[00144] Conforme ilustrado na Figura 3B, o decodificador de vídeo 33 pode incluir adicionalmente um demultiplexador 99, ou demux. O demux 99 pode dividir um fluxo de bits de vídeo codificado em múltiplos fluxos de bits com cada fluxo de bits emitido pelo demux 99 que é fornecido a um decodificador de vídeo 30A e 30B diferente. Os múltiplos fluxos de bits podem ser criados recebendo-se um fluxo de bits e cada um dos decodificadores de vídeo 30A e 30B recebe uma porção do fluxo de bits em um dado momento. Embora em alguns casos os bits do fluxo de bits recebidos no demux 99 possam ser alternados um bit por vez entre cada um dos decodificadores de vídeo (por exemplo, os decodificadores de vídeo 30A e 30B no exemplo da Figura 3B), em muitos casos o fluxo de bits é dividido diferentemente. Por exemplo, o fluxo de bits pode ser dividido alternando- se qual decodificador de vídeo recebe o fluxo de bits um bloco por vez. Em outro exemplo, o fluxo de bits pode ser dividido por uma razão diferente de 1 : 1 de blocos para cada um dos decodificadores de vídeo 30A e 30B. Por exemplo, dois blocos podem ser fornecidos ao decodificador de vídeo 30B para cada bloco fornecido ao decodificador de vídeo 30A. Em algumas modalidades, a divisão do fluxo de bits pelo demux 99 pode ser previamente programada. Em outras modalidades, o demux 99 pode dividir o fluxo de bits com base em um sinal de controle recebido de um sistema externo ao decodificador de vídeo 33, tal como a partir de um processador em um dispositivo de destino que inclui o módulo de destino 14. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo da interface de entrada 28, com base em uma largura de banda do enlace 16, com base em uma assinatura associada com um usuário (por exemplo, uma assinatura paga versus uma assinatura gratuita), ou com base em qualquer outro fator para determinar uma resolução obtenível pelo decodificador de vídeo 33.
CODIFICAÇÃO DE VÍDEO ESCALONÁVEL COM BASE EM HEVC APENAS DE HLS
[00145] Em algumas implantações (por exemplo, a extensão escalonável para HEVC), uma codificação de vídeo apenas de (HLS) de sintaxe de nível alto pode ser desejada. Por exemplo, a codificação de vídeo apenas de HLS pode significar que nenhuma mudança em nível de bloco ou nível de unidade de codificação foi introduzida em tais implantações. Os nós de codificação tal como IntraBL não podem ser usados em combinação com tais implantações devido ao fato de que tais nós de codificação podem envolver mudanças em nível de bloco à estrutura de HEVC. Por exemplo, IntraBL envolve acessar diretamente as informações de textura do bloco na camada de referência que está colocalizada em relação ao bloco atual na camada de melhoria que é codificada.
[00146] Entretanto, a codificação de vídeo apenas com HLS pode ser alcançada tirando-se a imagem de camada de referência (por exemplo, após qualquer processamento aplicável tal como reamostragem) e inserindose a mesma na lista de imagem de referência da imagem de camada de melhoria. Neste caso, a imagem de referência inserida na lista de imagem de referência pode simplesmente ser tratada como outra imagem na camada de melhoria e pode ser usada para interpredição, sem exigir quaisquer mudanças em nível de bloco à estrutura de HEVC. Se a camada de referência e a camada de melhoria têm a mesma resolução espacial, uma abordagem descrita em "MV-HEVC Working Draft 4(JCT3V-D1004)" pode ser usada, que está disponível em http://phenix.it-sudparis.eu/ict2/doc_end_user/documents/ 4_Incheon/wgl 1/ JCT3V-D1004-v3.zip. Em tal abordagem, a imagem inserida na lista de imagem de referência da camada de melhoria pode ser usada como a imagem colocalizada (por exemplo, a imagem na mesma camada da qual informações de movimento são derivadas) para derivação de TMVP sem processamento de nível de bloco adicional.
INTERPREDIÇÃO E TMVP
[00147] Na interpredição, um bloco atual em uma imagem de camada de melhoria (EL) pode ser predito com o uso das informações de movimento de uma imagem temporalmente vizinha na mesma camada. Por exemplo, um preditor de vetor de movimento temporal (TMVP) pode ser derivado de um bloco colocalizado (por exemplo, um bloco localizado na mesma posição na imagem temporalmente vizinha enquanto o bloco atual está na imagem atual) em uma imagem colocalizada (por exemplo, a imagem temporalmente vizinha na mesma camada) e adicionado à lista de candidatos de vetor de movimento (MV) do bloco atual na EL.
[00148] O uso de TMVPs pode aprimorar a eficiência de codificação. Por exemplo, um TMVP pode ser usado como um preditor para o vetor de movimento do bloco que é codificado atualmente (por exemplo, o bloco atual) e uma diferença de vetor de movimento (MVD) entre o vetor de movimento do bloco atual e o TMVP pode ser codificada ao invés de codificar o vetor de movimento inteiro do bloco atual.
ESBALABILIDADE ESPACIAL
[00149] Em um caso de escalabilidade espacial, a imagem de EL tem uma resolução espacial diferente da imagem de camada de referência (RL). Por exemplo, a taxa de proporção espacial entre EL e RL pode ser 1,5, 2, ou outras razões. Neste caso, a imagem de RL pode ser amostrada novamente de tal modo que a imagem de RL amostrada novamente corresponda à imagem de EL antes de inserir a imagem de RL amostrada novamente nas listas de referência de EL conforme descrito em "SHVC Working Draft 2," que está disponível em http://phenix.int-eyry.fr/ict/doc end user/documents/13 Incheon/wgl l/JCTVC-M1008-v3.zip.
[00150] A fim de permitir tanto a predição de textura quanto a predição de movimento, ambas as informações de pixel e as sem ser de pixel (sintaxe, modos, parâmetros de modo) associadas com a imagem de RL podem ser amostradas novamente. Por exemplo, o modo de predição e as informações de movimento tais como vetores de movimento, índices de referência, direções internas podem ser amostrados novamente, de modo que o uso de TMVPs possa ser permitido. Além das informações de nível de bloco mencionadas acima, o processo de derivação de TMVP pode também usar informações de nível alto da imagem colocalizada (por exemplo, a imagem de RL amostrada novamente inserida na lista de imagem de referência da EL), tal como tipo de imagem e informações de lista de imagem de referência da mesma.
GERANDO-SE UMA IMAGEM DE REFERÊNCIA INTERCAMADA (TLRP)
[00151] As Figuras 4A e 4B ilustram um método exemplificativo de gerar uma imagem de referência intercamada com o uso de uma imagem de camada de referência. Conforme discutido acima, em algumas implantações, a imagem de referência intercamada gerada é adicionada à lista de imagem de referência da camada de melhoria e usada para codificar a imagem de camada de melhoria. A Figura 4A ilustra uma imagem de camada de referência 402, que inclui um número de fatias 404A e 404B. Embora apenas duas fatias sejam mostradas na Figura 4A, o número de fatias não é limitado a tal e pode ser qualquer número arbitrário. Conforme ilustrado na Figura 4A, a divisão entre as duas fatias 404A e 404B é identificada pela borda de fatia 406. A borda de fatia 406 é distinta das linhas de grade que dividem a imagem de camada de referência 402 em unidades de codificação pela espessura aumentada da borda de fatia 406 comparada às linhas de grade.
[00152] Cada uma das fatias pode ser associada com informações específicas de fatia e/ou informações de sintaxe específicas à fatia. Essas informações de fatia podem ser incluídas em um cabeçalho de fatia para cada fatia 404A e 404B ou podem ser armazenadas em outro lugar e associadas com a fatia, tal como por meio de uma tabela de mapeamento ou outra estrutura de dados. As informações de fatia podem incluir qualquer tipo de informações que podem ser associadas com uma fatia, tal como valor de contagem de ordem de imagem (POC), plano de cor, endereço do primeiro bloco de árvore de codificação na fatia, informações de lista de imagem de referência, etc. Essas informações de fatia podem ser definidas pelo padrão de HEVC. Entretanto, as informações de fatia não são limitadas como tais e podem incluir outras informações com base em padrões e/ou informações específicas de aplicação, que podem ou podem não estar associadas com um padrão particular.
[00153] A imagem de camada de referência 402 pode ser dividida em um número de unidades de codificação 408 ou blocos de árvore de codificação (CTBs) conforme indicado pelas linhas de grade. As unidades de codificação podem ser de tamanhos de pixel variados. Por exemplo, as unidades de codificação podem ser pixels de 16x16 ou pixels de 64x64. Em alguns casos, as unidades de codificação podem ser denominadas unidades de codificação maiores (LCUs). As fatias 404A e 404B podem incluir um número de LCUs. No exemplo representado, a fatia 404A inclui 5 LCUs e a fatia 404B inclui 11 LCUs. Embora cada bloco ou CTB da imagem de camada de referência 402 seja representado como dimensionado de modo equivalente, em algumas modalidades os CTBs da camada 402 podem variar em tamanho. Embora a imagem de camada de referência 402 seja ilustrada na Figura 4A, a imagem de camada de referência 402 pode ser qualquer imagem de camada de base ou uma imagem de qualquer outra camada.
[00154] A Figura 4B ilustra uma imagem de camada de referência amostrada novamente 412, que é uma versão amostrada novamente da imagem de camada de referência 402. A imagem de camada de referência amostrada novamente 412 pode também ser denominada como uma imagem de referência intercamada 412. A imagem de camada de referência amostrada novamente 412 pode representar uma imagem que pode ser incluída na lista de imagem de referência da camada de melhoria (ou qualquer outra camada que tem uma resolução mais alta do que a camada de referência). Essa imagem de camada de referência amostrada novamente 412 pode, em alguns casos, ser usada para codificar (por exemplo, codificar ou decodificar) uma imagem de camada de melhoria. Conforme ilustrado na Figura 4B, a imagem de camada de referência amostrada novamente 412 representa uma sobreamostragem da imagem de camada de referência 402 por 2x, ou uma sobreamostragem diádica. No exemplo da Figura 4B, a imagem de camada de referência amostrada novamente 412 compreende unidades de codificação 418 que têm o mesmo tamanho que aquelas da imagem de camada de referência 402, mas a imagem de camada de referência amostrada novamente 412 compreende quatro vezes a quantidade de unidades de codificação 418 do que a imagem de camada de referência 402. Em outras modalidades, a sobreamostragem pode incluir alteração de escala. Por exemplo, cada unidade de codificação dentro da imagem de camada de referência amostrada novamente 412 pode ser 2x mais longa e 2x mais larga do que cada unidade de codificação na imagem de camada de referência 402 quando sobreamostragem de 2x é aplicado. Em outros casos, cada unidade de codificação da imagem de camada de referência amostrada novamente 412 pode ser do mesmo tamanho das unidades de codificação na imagem de camada de referência 402. Em alguns casos, a sobreamostragem é restrita a uma escala específica, tal como uma escala de número inteiro (por exemplo, 2x, 3x, 5x, etc.). Em outros casos, a sobreamostragem pode ser irrestrita e pode incluir sobreamostragem com base em número decimal (por exemplo, 1,5x, 3,3x, etc.). Adicionalmente, modalidades adicionais no presente documento são primariamente descritas com o uso de sobreamostragem, algumas modalidades podem incluir uma subamostragem (por exemplo, 0,5x).
[00155] Conforme ilustrado na Figura 4B, a imagem de camada de referência amostrada novamente 412 inclui uma única fatia 414. Conforme discutido no presente documento, as informações de fatia da fatia 414 podem ser derivadas da fatia 404A, da fatia 404B, ou de ambas. Em uma modalidade, o processo de “derivar” informações de fatia de outra fatia compreende copiar as informações de fatia de tal fatia. Por exemplo, a fatia 414 pode ter as mesmas informações de fatia da fatia 404A. Em outro exemplo, a fatia 414 pode ter as mesmas informações de fatia da fatia 404B. Em ainda outro exemplo, a fatia 404 pode ter algumas informações derivadas da fatia 404A e outras informações derivadas da fatia 404B. Uma vez que a imagem de camada de referência amostrada novamente 412 tem uma fatia 414, não há borda de fatia ilustrada na Figura 4B. Conforme discutido acima, devido ao fato de que a imagem de camada de referência amostrada novamente 412 tem uma fatia e nenhuma borda de fatia, a necessidade de realizar processamento adicional para garantir conformidade de fluxo de bits de múltiplas fatias (por exemplo, processamento de ordem de vídeo de varredura) é eliminada.
DADOS INCLUSOS EM IMAGEM DE REFERÊNCIA INTERCAMADA
[00156] Por exemplo, em algumas modalidades, gerar uma imagem de referência intercamada (por exemplo, uma imagem de referência gerada com base em uma imagem de RL, que é usada para interpredição da EL) que não envolve mudanças em processo de nível baixo (por exemplo, nível de bloco) no HEVC-SVC apenas de HLS no caso de escalabilidade espacial: (A) sobreamostrar dados de YUV da imagem de RL; (B) sobreamostrar parâmetros de movimento (por exemplo, vetores de movimento e índices de referência) da imagem de RL; e (C) derivar informações de nível alto (por exemplo, nível de imagem ou de fatia) da imagem de RL. Por exemplo, a imagem de referência intercamada gerada (ILRP) pode incluir os seguintes dados que são derivados da imagem de RL: (A) imagem de textura de sobreamostragem que tem a mesma resolução espacial da imagem de EL; (B) parâmetros de movimento para cada unidade básica (por exemplo, unidade de codificação ou unidade de predição); e (C) informações de nível alto (por exemplo, nível de imagem ou de fatia).
[00157] As informações de nível alto (por exemplo, o item (C) acima) da imagem de referência intercamada gerada podem incluir um valor de POC de imagem, um esboço de partição de fatia, tipos de fatia, informações de lista de imagem de referência e quaisquer outras informações de nível alto que podem ser usadas no processo de derivação de TMVP. As informações de lista de imagem de referência podem incluir um número de imagem de referência em cada lista de imagem de referência, um tipo de imagem de referência (por exemplo, de curto prazo ou de longo prazo) de todas as imagens de referência, valores de POC de imagem de referência de todas as imagens de referência. Em algumas implantações, as informações de lista de imagem de referência podem incluir qualquer uma dentre (1) o número de imagens de referência na lista de imagem de referência 0, (2) a imagem de referência que corresponde a cada índice de imagem de referência da lista de imagem de referência 0 (por exemplo, a imagem de referência associada com um índice de referência de 0, a imagem de referência associada com um índice de referência de 1, etc.), (3) o número de imagens de referência na lista de imagem de referência 1, e/ou (4) a imagem de referência que corresponde a cada índice de imagem de referência da lista de imagem de referência 1. Algumas informações de nível alto da imagem de referência intercamada gerada podem ser simplesmente copiadas a partir das da imagem de RL. Alternativamente, algumas informações de nível alto da imagem de referência intercamada gerada podem ser definidas como um valor predefinido. Para as informações de nível de imagem tal como o POC de imagem um valor pode ser diretamente copiado da imagem de BL relacionada. Entretanto, algumas outras informações, tais como informações de imagem de lista de referência e tipo de fatia, são associadas com fatias individuais (por exemplo, cada fatia contém seu próprio tipo de fatia e lista de imagem de referência). Tais informações da imagem de referência intercamada gerada precisariam ser derivadas no nível de fatia.
[00158] Em algumas implantações, a modificação do contorno de fatia e/ou da definição de fatia da imagem de RL amostrada novamente quando são geradas as informações de nível alto da imagem de referência intercamada em um caso de múltiplas fatias é feito com base na segmentação de fatia na imagem de RL correspondente. Por exemplo, dependendo de como a imagem de RL correspondente é dividida em múltiplas fatias e onde os contornos de fatia estão localizados, é em alguns casos desejado modificar os contornos de fatia da imagem de RL amostrada novamente de modo que a imagem de RL amostrada novamente esteja em conformidade com os padrões e restrições que podem ser aplicados.
[00159] No caso de MV-HEVC (múltiplas vistas) ou SVC escalonável de razão de sinal para ruído (SNR), as informações de fatia da imagem de referência gerada podem ser copiadas diretamente da camada de referência correspondente ou da imagem de vista de referência uma vez que a imagem de referência gerada pode ter o mesmo esboço de fatia com imagem de camada de base/vista de base (por exemplo, se a reamostragem espacial não é realizada). Por outro lado, no caso de escalabilidade espacial, a derivação de esboço de partição de fatia pode ser feita amostrando-se novamente primeiro o esboço de partição de fatia da imagem de RL correspondente de modo que a imagem de referência resultante esteja em conformidade com quaisquer padrões ou restrições aplicáveis (por exemplo, regras de partição de fatia de HEVC, tais como fatias que precisam conter um conjunto de LCUs contínuas em ordem de vídeo de varredura).
ILRP DE ÚNICA FATIA
[00160] Em algumas modalidades, quando uma imagem de camada de referência é amostrada novamente com base na razão de capacidade de escalonamento para gerar uma imagem de referência intercamada, uma única fatia é gerada para a imagem de camada de referência amostrada novamente até mesmo se a imagem de camada de referência tiver múltiplas fatias definidas na mesma. Por exemplo, todos os blocos de árvores de codificação (CTBs) na imagem de camada de referência amostrada novamente são associados à única fatia. As informações de fatia da única fatia da imagem de camada de referência amostrada novamente são geradas com o uso das informações de fatia de uma ou mais fatias da imagem de camada de referência. Por exemplo, as informações de fatia da única fatia da imagem de camada de referência amostrada novamente são definidas iguais às informações de fatia de uma das fatias da imagem de camada de referência. Em uma modalidade, as informações de fatia incluem um tipo de fatia e uma lista de imagem de referência. Entretanto, as informações de fatia não são limitadas àquelas descritas no presente documento, mas podem incluir quaisquer parâmetros ou variáveis que podem ser sinalizadas ou recebidas no nível de fatia (por exemplo, no cabeçalho de fatia).
FATIAS QUE TÊM LISTAS DE IMAGEM DE REFERÊNCIA DIFERENTES
[00161] Se uma imagem de camada de referência tiver múltiplas fatias (por exemplo, fatia n° 1 e fatia n° 2) e as mesmas tiverem listas de imagem de referência diferentes, pode haver um problema. Por exemplo, se a imagem de camada de referência for amostrada novamente e uma única fatia for gerada para a imagem de camada de referência amostrada novamente, e as informações de fatia da única fatia forem geradas com base nas informações de fatia da fatia n° 1 da imagem de camada de referência, os blocos na imagem de camada de referência amostrada novamente que correspondem à fatia n° 2 da imagem de camada de referência podem ter índice de referência (por exemplo, um valor que é usado para identificar uma imagem na lista de imagem de referência) que já não é válido porque a lista de imagem de referência da única fatia da imagem de camada de referência amostrada novamente é diferente da lista de imagem de referência da fatia n° 2 da imagem de camada de referência. Nesse exemplo, a lista de imagem de referência da imagem de camada de referência amostrada novamente seria a mesma que aquela da fatia n° 1 da imagem de camada de referência, que é diferente da lista de imagem de referência da fatia n° 2.
[00162] Em um exemplo, a fatia n° 1 tem três imagens de referência e a fatia n° 2 tem cinco imagens de referência, e as informações de fatia da única fatia da imagem de camada de referência amostrada novamente são derivadas das informações de fatia da fatia n° 1 (por exemplo, a lista de imagem de referência da única fatia é a mesma que a lista de imagem de referência da fatia n° 1). Entretanto, alguns blocos da imagem de camada de referência amostrada novamente que correspondem à fatia n° 2 podem ter valores de índice de referência de 3 ou 4, embora a lista de imagem de referência da única fatia tenha três imagens de referência.
[00163] Conforme descrito acima, o processo de geração ou derivação das informações de nível alto da imagem de referência intercamada gerada (por exemplo, o padrão de partição de fatia e outras informações associadas a cada fatia) pode ser bem complexo. Várias modalidades do presente pedido podem fornecer um processo simplificado para gerar ou derivar informações de nível de fatia (por exemplo, abstendo- se de gerar múltiplas fatias para a imagem de referência intercamada amostrada novamente ou gerar uma única fatia para a imagem de referência intercamada amostrada novamente).
ABORDAGEM N° 1; RESTRIÇÃO DE PREDIÇÃO DE MOVIMENTO INTERCAMADA
[00164] Uma solução para o problema que surge quando as fatias da imagem de camada de referência têm informações de fatia diferentes (por exemplo, a lista de imagem de referência) é restringir a predição de movimento intercamada para o caso em que as múltiplas fatias da imagem de camada de referência têm listas de imagem de referência idênticas. Por exemplo, quando uma imagem de camada de referência amostrada novamente é usada como a imagem colocalizada para derivação de TMVP, a predição de movimento intercamada é desabilitada a menos que todas as fatias na imagem de camada de referência tenham lista de imagem de referência idêntica 0 e imagem de referência idêntica 1. Adicionalmente, essa restrição também pode ser aplicada a casos de escalabilidade de razão de sinal-ruído (SNR), ou especificamente ao caso de escalabilidade de SNR com tamanhos de CTB diferentes na camada de melhoria e na camada de referência, conforme descrito posteriormente no pedido.
[00165] A Figura 5 é um fluxograma que ilustra um método 500 para codificar informações de vídeo, de acordo com uma modalidade da presente revelação. As etapas ilustradas na Figura 5 podem ser realizadas por um codificador (por exemplo, o codificador de vídeo conforme mostrado na Figura 2A ou Figura 2B) ou outro componente descrito no presente documento. Para conveniência, o método 500 é descrito conforme realizado por um codificador, que pode ser, por exemplo, um codificador de vídeo.
[00166] O método 500 começa no bloco 501. No bloco 505, o codificador determina se as fatias da imagem de camada de referência têm informações de fatia idênticas. Em uma modalidade, as informações de fatia incluem a lista de imagem de referência associada à fatia correspondente. Se o codificador determinar que as fatias da imagem de camada de referência têm informações de fatia idênticas, o codificador habilita a predição de movimento intercamada no bloco 510. Por exemplo, o termo "que habilita" pode significar, além de seu significado original, permitir a predição de movimento intercamada seja considerada pelo codificador como uma das opções de codificação para codificar o bloco atual ou a imagem atual. Em outro exemplo, o termo "que habilita" pode significa meramente abster-se de restringir (ou desabilitar) o uso de predição de movimento intercamada e não significa necessariamente que o bloco atual ou a imagem atual é codificado com o uso da predição de movimento intercamada. Pode simplesmente significar que se o codificador determinar que a predição de movimento intercamada é o método desejado de codificação do bloco atual ou da imagem atual, o mesmo pode realizar o mesmo.
[00167] Por outro lado, se o codificador determinar que as fatias da imagem de camada de referência têm informações de fatia idênticas, o codificador desabilita a predição de movimento intercamada no bloco 515. Restringindo-se a predição de movimento intercamada para aquelas situações em que as fatias da imagem de camada de referência têm informações de fatia idênticas (por exemplo, tipo de fatia, lista de imagem de referência, etc.), a geração de imagens de referência intercamada de única fatia pode ser implantada de forma mais suave e a complexidade computacional associada ao gerenciamento de múltiplas fatias em imagens de referência intercamada pode ser reduzida ou eliminada. O método 500 termina no bloco 520.
[00168] Conforme discutido acima, um ou mais componentes do codificador de vídeo 20 da Figura 2A ou codificador de vídeo 23 da Figura 2B (por exemplo, a unidade de predição intercamada 128) podem ser usados para implantar qualquer uma das técnicas discutidas na presente revelação, como determinar se as fatias da imagem de camada de referência têm informações de fatia idênticas e habilitar/desabilitar a predição de movimento intercamada.
[00169] A Figura 6 é um fluxograma que ilustra um método 600 para codificar informações de vídeo, de acordo com outra modalidade da presente revelação. Uma restrição semelhante àquela da Figura 5 é aplicada no exemplo da Figura 6, mas nesse exemplo, a predição de movimento intercamada é, na verdade, realizada pelo codificador. Uma ou mais etapas ilustradas na Figura 6 podem ser realizadas por um codificador (por exemplo, o codificador de vídeo conforme mostrado na Figura 2A ou Figura 2B), um decodificador (por exemplo, o decodificador de vídeo conforme mostrado na Figura 3A ou Figura 3B), ou qualquer outro componente. Para conveniência, o método 700 é descrito conforme realizado por um codificador, que pode ser o codificador, o decodificador, ou outro componente.
[00170] O método 600 começa no bloco 601. No bloco 605, o codificador determina se as fatias da imagem de camada de referência têm informações de fatia idênticas. Em uma modalidade, as informações de fatia incluem a lista de imagem de referência associada à fatia correspondente. Se o codificador determinar que as fatias da imagem de camada de referência têm informações de fatia idênticas, o codificador gera uma imagem de referência intercamada que tem uma única fatia por sobreamostragem da imagem de camada de referência no bloco 610. No bloco 615, o codificador define as informações de fatia da imagem de referência intercamada iguais às informações de fatia de uma das fatias da imagem de camada de referência. Por exemplo, as informações de fatia da primeira fatia da imagem de camada de referência são copiadas para a única fatia da imagem de referência intercamada. No bloco 620, o codificador usa a imagem de referência intercamada para codificar (por exemplo, codificar ou decodificar) pelo menos uma porção da imagem de camada de melhoria (por exemplo, a imagem atual na camada de melhoria que está sendo codificada). Por exemplo, conforme discutido acima, as informações de movimento associadas a um bloco na camada de referência intercamada (por exemplo, uma versão amostrada novamente da imagem de camada de referência) que está colocalizada em relação a um bloco atual na camada de melhoria pode ser usada por um preditor de vetor de movimento temporal (TMVP). Por outro lado, se o codificador determinar que as fatias da imagem de camada de referência não têm informações de fatia idênticas, o método 600 termina no bloco 620.
[00171] Conforme discutido acima, um ou mais componentes de codificador de vídeo 20 da Figura 2A, o codificador de vídeo 23 da Figura 2B, o decodificador de vídeo 30 da Figura 3A, ou o decodificador de vídeo 33 da Figura 3B (por exemplo, a unidade de predição intercamada 128 e/ou a unidade de predição intercamada 166) podem ser usados para implantar quaisquer das técnicas discutidas na presente revelação, como determinar se as fatias da imagem de camada de referência têm informações de fatia idênticas, gerar uma imagem de referência intercamada, definir as informações de fatia da única fatia na imagem de camada de referência amostrada novamente iguais a uma das fatias nas imagens de camada de referência, e usar a imagem de referência intercamada gerada para codificar a camada de melhoria.
ABORDAGEM N° 2; MODIFICAÇÃO DE INFORMAÇÕES DE FATIA
[00172] Alternativamente, em uma modalidade, a fim de evitar que os valores de índice fiquem foram dos limites, os valores de índice de referência podem ser cortados para a faixa de -1 para o valor de índice de referência máximo da lista de imagem de referência da imagem de camada de referência amostrada novamente. Em uma modalidade, o valor de -1 indica que não há predição nessa direção de referência particular (por exemplo, lista 0 ou lista 1). Por exemplo, um bloco monopredito tem um vetor de movimento apontando para uma única direção, não ambas. Portanto, se houver duas listas de imagem de referência, o índice de referência para uma das duas direções pode ser -1 para blocos monopreditos.
[00173] Em outra modalidade, após gerar a imagem de camada de referência amostrada novamente, os valores de índice de referência dos blocos que correspondem a uma fatia da imagem de camada de referência que tem uma lista de imagem de referência que é diferente daquela da única fatia da imagem de camada de referência amostrada novamente são modificados de modo que os mesmos identifiquem as imagens de referência corretas. Por exemplo, a lista de imagem de referência da fatia n° 1 pode ser [imagem n° 1, imagem n° 2] e a lista de imagem de referência da fatia n° 2 pode ser [imagem n° 2, imagem n° 1]. Em tal caso, as listas de imagem de referência das duas fatias são diferentes. Entretanto, após definir a lista de imagem de referência da única fatia da imagem de camada de referência amostrada novamente para, por exemplo, a lista de imagem de referência da fatia n° 1, para quaisquer blocos correspondentes à fatia n° 2 da imagem de camada de referência, o valor de índice de referência de 0 pode ser alterado para 1, e o valor de índice de referência de 1 pode ser alterado para 0 a fim de corrigir a imprecisão resultante da geração de única fatia.
[00174] Em ainda outra modalidade, a alteração na lista de imagem de referência é abordada escalonando-se temporariamente os vetores de movimento daqueles blocos de modo que os vetores de movimento apontem para as porções relevantes da nova imagem de referência identificada pelos valores de índice de referência e a nova lista de imagem de referência. Em um exemplo, os vetores de movimento podem ser escalonados por um fator determinado com base na distância temporal entre a imagem atual e a imagem de referência original e a distância temporal entre a imagem atual e a nova imagem de referência . Em outro exemplo, os vetores de movimento podem ser escalonados com base nos valores de contagem de ordem de imagem (POC) das imagens de referência.
[00175] Com referência às Figuras 7 e 8, os métodos de codificação exemplificativos que podem ser realizados no caso em que as fatias da imagem de camada de referência não têm informações de fatia idênticas são descritos. A Figura 7 é um fluxograma que ilustra um método 700 para codificar informações de vídeo, de acordo com uma modalidade da presente revelação. Uma ou mais etapas ilustradas na Figura 7 podem ser realizadas por um codificador (por exemplo, o codificador de vídeo conforme mostrado na Figura 2A ou Figura 2B), um decodificador (por exemplo, o decodificador de vídeo conforme mostrado na Figura 3A ou Figura 3B), ou qualquer outro componente. Para conveniência, o método 700 é descrito conforme realizado por um codificador, que pode ser o codificador, o decodificador, ou outro componente.
[00176] O método 700 começa no bloco 701. No bloco 705, o codificador determina se as fatias da imagem de camada de referência têm informações de fatia idênticas. Em uma modalidade, as informações de fatia incluem a lista de imagem de referência associada à fatia correspondente. Se o codificador determinar que as fatias da imagem de camada de referência têm informações de fatia idênticas, o codificador gera uma imagem de referência intercamada que tem uma única fatia por sobreamostragem da imagem de camada de referência no bloco 710. No bloco 715, o codificador define as informações de fatia da imagem de referência intercamada iguais às informações de fatia de uma das fatias da imagem de camada de referência que tem a lista de imagem de referência mais longa. Por exemplo, as informações de fatia podem incluir as informações de lista de imagem de referência, e a primeira fatia da imagem de camada de referência é associada a uma lista de imagem de referência que tem um comprimento de 5 (por exemplo, cinco imagens), e a segunda fatia da imagem de camada de referência é associada a uma lista de imagem de referência que tem um comprimento de 7 (por exemplo, sete imagens), as informações de fatia da segunda fatia podem ser copiadas para a única fatia da imagem de referência intercamada. No bloco 720, o codificador usa a imagem de referência intercamada para codificar (por exemplo, codificar ou decodificar) pelo menos uma porção da imagem de camada de melhoria (por exemplo, a imagem atual na camada de melhoria que está sendo codificada). Por exemplo, conforme discutido acima, as informações de movimento associadas a um bloco na camada de referência intercamada (por exemplo, uma versão amostrada novamente da imagem de camada de referência) que está colocalizada em relação a um bloco atual na camada de melhoria pode ser usada por um preditor de vetor de movimento temporal (TMVP). Por outro lado, se o codificador determinar que as fatias da imagem de camada de referência não tem informações de fatia idênticas, o método 700 termina no bloco 720.
[00177] Conforme discutido acima, um ou mais componentes de codificador de vídeo 20 da Figura 2A, o codificador de vídeo 23 da Figura 2B, o decodificador de vídeo 30 da Figura 3A, ou o decodificador de vídeo 33 da Figura 3B (por exemplo, a unidade de predição intercamada 128 e/ou a unidade de predição intercamada 166) podem ser usados para implantar quaisquer das técnicas discutidas na presente revelação, como determinar se as fatias da imagem de camada de referência têm informações de fatia idênticas, gerar uma imagem de referência intercamada, definir as informações de fatia da única fatia na imagem de camada de referência amostrada novamente iguais a uma das fatias nas imagens de camada de referência que tem uma lista de imagem de referência mais longa, e usar a imagem de referência intercamada gerada para codificar a camada de melhoria.
[00178] A Figura 8 é um fluxograma que ilustra um método 800 para codificar informações de vídeo, de acordo com outra modalidade da presente revelação. Embora o exemplo da Figura 7 tenha como objetivo fornecer uma camada de referência intercamada em conformidade de restrição de fluxo de bits, o exemplo da Figura 8 tem como objetivo aprimorar adicionalmente a eficácia de codificação resultante da mesma. Uma ou mais etapas ilustradas na Figura 8 podem ser realizadas por um codificador (por exemplo, o codificador de vídeo conforme mostrado na Figura 2A ou Figura 2B), um decodificador (por exemplo, o decodificador de vídeo conforme mostrado na Figura 3A ou Figura 3B), ou qualquer outro componente. Para conveniência, o método 700 é descrito conforme realizado por um codificador, que pode ser o codificador, o decodificador, ou outro componente.
[00179] O método 800 começa no bloco 801. No bloco 805, o codificador determina se as fatias da imagem de camada de referência têm informações de fatia idênticas. Em uma modalidade, as informações de fatia incluem a lista de imagem de referência associada à fatia correspondente. Se o codificador determinar que as fatias da imagem de camada de referência têm informações de fatia idênticas, o codificador gera uma imagem de referência intercamada que tem uma única fatia por sobreamostragem da imagem de camada de referência no bloco 810. No bloco 815, o codificador define as informações de fatia da imagem de referência intercamada iguais às informações de fatia de uma das fatias da imagem de camada de referência. Por exemplo, as informações de fatia da primeira fatia da imagem de camada de referência são copiadas para a única fatia da imagem de referência intercamada. No bloco 820, o codificador modifica as informações de movimento associadas a uma porção da imagem de referência intercamada correspondente a fatias não selecionadas da imagem de referência para corrigir quaisquer imprecisões na mesma. Por exemplo, nesse exemplo, visto que as informações de fatia da única fatia da camada de referência intercamada foram copiadas a partir da primeira fatia da imagem de camada de referência, a porção da imagem de referência intercamada que corresponde a qualquer outra fatia na camada de imagem de referência pode passar por um processo de modificação. Conforme descrito no presente documento, o processo de modificação pode incluir escalonamento temporal dos vetores de movimento em tal porção ou novo mapeamento do índice de referência de modo que os índices de referência usados em tal porção correspondam à imagem de referência correta na lista de imagem de referência.
[00180] Restringindo-se a predição de movimento intercamada para aquelas situações em que as fatias da imagem de camada de referência têm informações de fatia idênticas (por exemplo, tipo de fatia, lista de imagem de referência, etc.), a geração de imagens de referência intercamada de única fatia pode ser implantada de forma mais suave e a complexidade computacional associada ao gerenciamento de múltiplas fatias em imagens de referência intercamada pode ser reduzida ou eliminada. O método 800 termina no bloco 820.
[00181] Conforme discutido acima, um ou mais componentes de codificador de vídeo 20 da Figura 2A, o codificador de vídeo 23 da Figura 2B, o decodificador de vídeo 30 da Figura 3A, ou o decodificador de vídeo 33 da Figura 3B (por exemplo, a unidade de predição intercamada 128 e/ou a unidade de predição intercamada 166) podem ser usados para implantar quaisquer das técnicas discutidas na presente revelação, como determinar se as fatias da imagem de camada de referência têm informações de fatia idênticas, gerar uma imagem de referência intercamada, definir as informações de fatia da única fatia na imagem de camada de referência amostrada novamente iguais a uma das fatias nas imagens de camada de referência que tem uma lista de imagem de referência mais longa, modificar as informações de movimento associadas à imagem de referência intercamada, e usar a imagem de referência intercamada gerada para codificar a camada de melhoria.
DERIVAÇÃO DE INFORMAÇÕES DE NÍVEL DE FATIA
[00182] Em uma modalidade, todos os blocos de árvores de codificação (CTBs) da imagem de camada de referência amostrada novamente (também chamada de imagem de referência intercamada) são associados à única fatia que é gerada para a imagem de camada de referência amostrada novamente. As informações de fatia da única fatia podem ser derivadas a partir de qualquer fatia na imagem de camada de referência correspondente. Em uma modalidade, as informações de lista de imagem de referência e tipo de fatia da fatia gerada são definidas iguais àquelas de uma particular fatia na imagem de camada de referência. Por exemplo, a fatia particular pode ser a primeira fatia na imagem de camada de referência. O texto a seguir pode ser usado em esboço de trabalho de SHVC como a implantação detalhada desse método:
[00183] O slice_type, num_ref_idx_10_active_minus1 e num_ref_idx_11_active_minus1 de rsSlice são definidos iguais ao valor de slice_type, num_ref_idx_10_active_minus1 e num_ref_idx_11_active_minus1 da primeira fatia de rlPic, respectivamente. Quando rsSlice é uma fatia P ou B, para i na faixa de 0 para num_ref_idx_10_active_minus1 de rsSlice, inclusive, a imagem de referência com índice i na lista de imagem de referência 0 de rsSlice é definida igual à imagem de referência com índice i na lista de imagem de referência 0 da primeira fatia de rlPic. Quando rsSlice é uma fatia B, para i na faixa de 0 para num_ref_idx_11_active_minus1 de rsSlice, inclusive, a imagem de referência com índice i na lista de imagem de referência 1 de rsSlice é definida igual à imagem de referência com índice i na lista de imagem de referência 1 da primeira fatia de rlPic.
[00184] Em que, rsPic é a referência intercamada amostrada novamente, rsSlice é a fatia de rsPic; rlPic é a imagem de camada de referência correspondente.
MODALIDADES ALTERNATIVAS
[00185] Em outras modalidades, a geração de camada de referência intercamada de única fatia ainda pode ser realizar até mesmo se nem todas as fatias da imagem de camada de referência correspondente tiverem informações de fatia idênticas (por exemplo, listas de imagem de referência). Em tais modalidades, o tipo de fatia, por exemplo, da única fatia pode ser derivado conforme a seguir: (1) se houver pelo menos uma fatia B na imagem de camada de referência correspondente, o tipo de fatia da fatia gerada da imagem de camada de referência amostrada novamente é definido igual à fatia B; (2) se não houver fatia B na imagem de camada de referência, e se houver pelo menos uma fatia P na imagem de camada de referência correspondente, o tipo de fatia da fatia gerada da imagem de camada de referência amostrada novamente é definido igual à fatia P; e (3) se nem uma fatia B nem uma fatia P estiverem presentes na imagem de camada de referência correspondente, o tipo de fatia da fatia gerada da imagem de camada de referência amostrada novamente é definido igual à fatia I.
[00186] Além disso, em tais modalidades, as informações de lista de imagem de referência podem ser derivadas conforme a seguir: (1) num_ref_idx_10_active_minus1, que indica o número de imagens de referência na lista de imagem de referência, da fatia gerada da imagem de camada de referência amostrada novamente é definido igual àquele da fatia que tem o maior valor de num_ref_idx_10_active_minus1 dentre todas as fatias na imagem de camada de referência correspondente; a lista de imagem de referência 0 da fatia gerada é definida igual àquela da mesma fatia que tem o maior valor de num_ref_idx_10_active_minus1. Por exemplo, o armazenamento temporário de imagem decodificada pode ter cinco imagens, e a fatia n° 1 pode ter duas imagens de referência em sua lista de imagem de referência e a fatia n° 2 pode ter quatro imagens de referência em sua lista de imagem de referência. Nesse caso, num_ref_idx_10_active_minus1 da fatia n° 2 é maior, então a lista de imagem de referência da única fatia gerada para a imagem de camada de referência amostrada novamente é definida igual à lista de imagem de referência da fatia n° 2 da imagem de camada de referência.
[00187] Em um caso quando múltiplas fatias têm o mesmo valor de num_ref_idx_10_active_minus1, a lista de imagem de referência 0 da fatia gerada da imagem de camada de referência amostrada novamente é definida igual àquela da fatia com o menor slice_segment_address dentre todas as fatias que têm o maior valor de num_ref_idx_10_active_minus1; (2) num_ref_idx_11_active_minus1 da fatia gerada da imagem de camada de referência amostrada novamente é definido igual àquele da fatia que tem o maior valor de num_ref_idx_11_active_minus1 dentre todas as fatias na imagem de camada de referência correspondente; a lista de imagem de referência 1 da fatia gerada da imagem de camada de referência amostrada novamente é definida igual àquela da mesma fatia que tem o maior valor de num_ref_idx_11_active_minus1. Em um caso quando múltiplas fatias têm o mesmo valor de num_ref_idx_11_active_minus1, a lista de imagem de referência 1 da fatia gerada é definida igual àquela da fatia com o menor slice_segment_address dentre todas as fatias que têm o maior valor de num_ref_idx_11_active_minus1.
RESTRIÇÃO NORMATIVA DE CODIFICADOR
[00188] Conforme descrito acima, em algumas implantações, o tipo de fatia e a lista de imagem de referência de uma fatia da imagem de referência intercamada são usados quando se deriva um TMVP para um bloco na camada atual (por exemplo, camada de melhoria). Portanto, se os tipos de fatia e as listas de imagem de referência de todas as fatias na imagem de camada de referência correspondente forem idênticos, uma única fatia pode ser gerada para a imagem de camada de referência amostrada novamente e as informações de fatia da única fatia podem ser derivadas de quaisquer das fatias na camada de referência correspondente porque as informações de fatia daquelas fatias são idênticas.
[00189] Consequentemente, pode ser desejável ter as informações de fatia das fatias na imagem de camada de referência idênticas entre si quando se deriva um TMVP a partir da imagem de camada de referência amostrada novamente. Portanto, em uma modalidade, uma restrição pode ser imposta sobre o elemento de sintaxe collocated_ref_idx usado para identificar uma imagem colocalizada. Por exemplo, quando a imagem de referência intercamada amostrada novamente é usada como uma imagem colocalizada para a derivação de TMVP, todas as fatias na imagem de camada de referência correspondente deverão ter tipo de fatia idêntico, lista de imagem de referência 0 idêntica e lista de imagem de referência 1 idêntica. Se qualquer uma daquelas condições não for satisfeita, a restrição pode ditar que tal imagem de referência intercamada não seja usada como uma imagem colocalizada para a derivação de TMVP.
[00190] Em outra modalidade, a restrição pode ser aquela para a derivação de TMVP, todas as na imagem de camada de referência correspondente deverão ter lista de imagem de referência 0 idêntica e lista de imagem de referência 1 idêntica (se presente). Nesse exemplo, o tipo de fatia pode ser diferente dentre as fatias, e o tipo de fatia da única fatia da imagem de camada de referência amostrada novamente pode ser determinado conforme descrito acima. Se essas condições não forem satisfeitas, a restrição pode ditar que tal imagem de referência intercamada não seja usada como uma imagem colocalizada para a derivação de TMVP.
ESCALABILIDADE DE RAZÃO DE SINAL-RUÍDO (SNR)
[00191] No caso de escalabilidade de SNR, as informações de formato de imagem da camada de referência e a camada de melhoria podem ser idênticas, e portanto o processo de reamostragem de imagem pode não ser necessário ou pode não ser realizado. Em tal caso, a imagem de camada de referência reconstruída ou decodificada pode ser usada diretamente como uma imagem de referência da camada de melhoria. Quando os tamanhos de CTB da imagem de camada de referência e a imagem de camada de melhoria são diferentes, e a imagem de camada de referência tem múltiplas fatias, o limiar de partição de fatia da imagem de referência intercamada pode não coincidir com as margens de CTB. Portanto, um problema semelhante pode surgir quando a imagem de camada de referência reconstruída ou decodificada é usada como uma imagem colocalizada para a derivação de TMVP. Portanto, em algumas modalidades, a restrição que requer informações de fatia idênticas dentre múltiplas fatias da imagem de camada de referência antes da predição de movimento intercamada é habilitada (ou permitida que seja realizada) e também é aplicada ao caso de escalabilidade de SNR.
[00192] Conforme descrito acima, uma restrição pode ser imposta sobre o elemento de sintaxe collocated_ref_idx usado para identificar a imagem colocalizada, que quando a imagem de referência intercamada (amostrada novamente ou não) é usada como uma imagem colocalizada para a derivação de TMVP, todas as fatias na imagem de camada de referência correspondente deverão ter tipo de fatia idêntico, lista de imagem de referência idêntica 0 e lista de imagem de referência 1 idêntica. Se essas condições não forem satisfeitas, a restrição pode ditar que tal imagem de referência intercamada não seja usada como uma imagem colocalizada para a derivação de TMVP. Em outra modalidade, a restrição é aplicada no caso de escalabilidade de SNR somente quando há múltiplas fatias na imagem de camada de referência e o tipo de fatia ou as listas de imagem de referência das múltiplas fatias não são idênticas, e os tamanhos de CTB da camada de melhoria e da camada de referência são diferentes. Em ainda outra modalidade, a restrição é aplicada no caso de escalabilidade de SNR somente quando há múltiplas fatias na imagem de camada de referência e o tipo de fatia ou as listas de imagem de referência das múltiplas fatias não são idênticas, e o tamanho de CTB da camada de referência é menor do que aquele da camada de melhoria.
OUTRAS CONSIDERAÇÕES
[00193] As informações e os sinais revelados no presente documento podem ser representados com o uso de qualquer um dentre uma variedade de tecnologias e conjunto de procedimentos diferentes. Por exemplo, dados, instruções, comandos, informações, sinais, bits, símbolos, e circuitos integrados que podem ser referenciados por toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, partículas ou campos magnéticos, partículas ou campos ópticos ou qualquer combinação dos mesmos.
[00194] Os vários blocos, módulos, circuito e etapas de algoritmo lógicas ilustrativas descritas em conexão com as modalidades reveladas no presente documento podem ser implantadas como hardware eletrônico, software de computador, ou combinações de ambos. Para ilustrar claramente essa intercambialidade de hardware e software, vários componentes, blocos, módulos, circuitos, e etapas ilustrativas têm sido descritas acima de modo geral no que se refere à sua funcionalidade. Se tal funcionalidade é implantada como hardware ou software, depende das restrições de projeto e pedido particular impostas no sistema geral. Os técnicos versados na técnica podem implantar a funcionalidade descrita em modos variáveis para cada aplicação em particular, porém tais decisões de implantação não deveriam ser interpretadas como que por se afastar do escopo da presente invenção.
[00195] As técnicas descritas no presente documento podem ser implantados em hardwares, softwares, firmwares, ou qualquer combinação dos mesmos. Tais conjuntos de procedimentos podem ser implantados em qualquer um dentre uma variedade de dispositivos, como computadores de propósito geral, aparelhos telefônicos de dispositivo de comunicação sem fio ou dispositivos de circuito integrado que têm múltiplos usos, incluindo aplicativo em aparelhos telefônicos de dispositivo de comunicação sem fio e outros dispositivos. Quaisquer recursos descritos como módulos ou componentes podem ser implantados juntos em um dispositivo de lógica integrado ou separadamente como dispositivos de lógica distintos, mas interoperáveis. Se implantados em software, as técnicas ser realizadas pelo menos em parte através de um meio de armazenamento de dados legível por computador que compreende código de programa, incluindo instruções que, quando executadas, realizam um ou mais dentre os métodos descritos acima. O meio de armazenamento de dados legível por computador pode fazer parte de um produto de programa de computador, que pode incluir materiais de embalagem. O meio legível por computador pode compreender meio de armazenamento de dados ou memória, como memória de acesso aleatório (RAM) como memória de acesso aleatório dinâmica síncrona (SDRAM), memória de somente leitura (ROM), memória não volátil de acesso aleatório (NVRAM), memória de somente leitura programável apagável eletricamente (EEPROM), memória FLASH, meio de armazenamento de dados magnética ou óptica e similares. As técnicas, de modo adicional ou alternativo, podem ser realizados pelo menos em parte através de um meio de comunicação legível por computador que porta ou comunica código de programa na forma de instruções ou estruturas de dados e que pode ser acessado, lido e/ou executado por um computador, como sinais ou ondas propagados.
[00196] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados específicos de aplicação (ASICs), arranjo de portas programável em campo (FPGAs) ou outro conjunto de circuitos lógicos equivalentes integrados ou discretos. Tal processador pode ser configurado para realizar qualquer uma das técnicas descritas nesta revelação. Um processador de propósito geral pode ser um microprocessador, porém na alternativa, o processador pode ser qualquer processador, controlador, microcontrolador ou máquina de estado convencional. Um processador também pode ser implantado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um DSP núcleo ou qualquer outra tal configuração. Em conformidade, o termo "processador", conforme usado no presente documento pode se referir a qualquer uma dentre a estrutura anterior, qualquer combinação da estrutura anterior ou qualquer outra estrutura ou aparelho adequado para implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos de software dedicado ou módulos de hardware configurados para codificar e decodificar ou incorporada em um codificador-decodificador de vídeo combinado (CODEC). Além disso, as técnicas podem ser totalmente implantadas em um ou mais circuitos ou elementos lógicos.
[00197] As técnicas dessa revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um monofone, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nessa revelação para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas reveladas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativos, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[00198] Várias modalidades da invenção foram descritas. Essas e outras modalidades estão abrangidas no escopo das reivindicações a seguir

Claims (11)

1. Aparelho configurado para codificar ou decodificar informações de vídeo, o aparelho caracterizado pelo fato de que compreende: uma memória configurada para armazenar informações de vídeo associadas a uma camada de referência e uma camada de aperfeiçoamento, a camada de referência compreendendo uma imagem de camada de referência, RL, possuindo múltiplas fatias e a camada de aperfeiçoamento compreendendo uma imagem de camada de aperfeiçoamento, EL, correspondente à imagem RL; e um processador em comunicação com a memória, o processador sendo configurado para: gerar uma imagem de referência intercamada, ILRP, por sobreamostragem da imagem RL, a ILRP tendo uma única fatia associada à mesma; definir informações de tipo de fatia e de lista de imagens de referência da única fatia da ILRP iguais às informações de tipo de fatia e de lista de imagens de referência correspondentes de uma dentre as múltiplas fatias da imagem de RL; e utilizar a ILRP para codificar pelo menos uma porção da imagem EL.
2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que a imagem EL e a imagem RL estão localizadas na mesma unidade de acesso.
3. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de tipo fatia e de lista de imagens de referência da única fatia compreendem um tipo de fatia da única fatia, uma ou mais listas de imagens de referência e um número de índices de referência para cada lista de imagens de referência da única fatia.
4. Aparelho, de acordo com a reivindicação 3, caracterizado pelo fato de que as informações de lista de imagens de referência compreendem: um primeiro número de imagens de referência na lista de imagem de referência 0; uma primeira associação entre as imagens de referência na lista de imagem de referência 0 e um primeiro conjunto de índices de imagem de referência; um segundo número de imagens de referência na lista de imagem de referência 1; e uma segunda associação entre as imagens de referência na lista de imagens de referência 1 e um segundo conjunto de índices de imagem de referência.
5. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o aparelho compreende um codificador, e em que o processador é adicionalmente configurado para codificar as informações de vídeo em um fluxo de bits de vídeo.
6. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o aparelho compreende um decodificador, e em que o processador é adicionalmente configurado para decodificar as informações de vídeo em um fluxo de bits de vídeo.
7. Método para codificar ou decodificar informações de vídeo, o método caracterizado pelo fato de que compreende: gerar uma imagem de referência intercamada, ILRP, por sobreamostragem de uma imagem de camada de referência, RL, em uma camada de referência possuindo múltiplas fatias, a ILRP possuindo uma única fatia associada à mesma; definir informações de tipo de fatia e de lista de imagens de referência da única fatia da ILRP iguais às informações de tipo de fatia e de lista de imagens de referência correspondentes de uma dentre as múltiplas fatias da imagem RL; e utilizar a ILRP para codificar pelo menos uma porção de uma imagem de camada de aperfeiçoamento, EL, em uma camada de aperfeiçoamento.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que a imagem EL e a imagem RL estão localizadas na mesma unidade de acesso.
9. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que as informações de tipo de fatia e de lista de imagens de referência da única fatia compreendem um tipo de fatia da única fatia, uma ou mais listas de imagens de referência da única imagem e um número de índices de referência para cada lista de imagens de referência da única fatia.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que as informações de lista de imagem de referência compreendem: um primeiro número de imagens de referência na lista de imagens de referência 0; uma primeira associação entre as imagens de referência na lista de imagens de referência 0 e um primeiro conjunto de índices de imagem de referência; e um segundo número de imagens de referência na lista de imagens de referência 1; e uma segunda associação entre as imagens de referência na lista de imagem de referência 1 e um segundo conjunto de índices de imagem de referência.
11. Memória legível por computador, caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 7 a 10.
BR112016001223-2A 2013-07-22 2014-07-18 Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador BR112016001223B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361857165P 2013-07-22 2013-07-22
US61/857,165 2013-07-22
US201361886997P 2013-10-04 2013-10-04
US61/886,997 2013-10-04
US14/334,417 2014-07-17
US14/334,417 US9560358B2 (en) 2013-07-22 2014-07-17 Device and method for scalable coding of video information
PCT/US2014/047250 WO2015013137A1 (en) 2013-07-22 2014-07-18 Device and method for scalable coding of video information

Publications (2)

Publication Number Publication Date
BR112016001223A2 BR112016001223A2 (pt) 2017-09-05
BR112016001223B1 true BR112016001223B1 (pt) 2023-05-16

Family

ID=52343559

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016001223-2A BR112016001223B1 (pt) 2013-07-22 2014-07-18 Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador

Country Status (10)

Country Link
US (1) US9560358B2 (pt)
EP (1) EP3025499B1 (pt)
JP (1) JP6193494B2 (pt)
KR (1) KR102140359B1 (pt)
CN (1) CN105556967B (pt)
BR (1) BR112016001223B1 (pt)
CA (1) CA2917200C (pt)
ES (1) ES2795682T3 (pt)
HU (1) HUE049817T2 (pt)
WO (1) WO2015013137A1 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012087034A2 (ko) * 2010-12-22 2012-06-28 엘지전자 주식회사 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
SG11201500129UA (en) * 2012-07-09 2015-02-27 Vid Scale Inc Codec architecture for multiple layer video coding
US9510001B2 (en) 2013-07-09 2016-11-29 Electronics And Telecommunications Research Institute Video decoding method and apparatus using the same
EP3831064B1 (en) * 2018-08-17 2024-02-07 Huawei Technologies Co., Ltd. Reference picture management in video coding
US20200186795A1 (en) * 2018-12-07 2020-06-11 Beijing Dajia Internet Information Technology Co., Ltd. Video coding using multi-resolution reference picture management
CN113383543A (zh) 2019-02-02 2021-09-10 北京字节跳动网络技术有限公司 使用用于视频编解码中的帧内块复制的额外缓冲区样点的预测
CN113366844B (zh) 2019-02-02 2023-10-03 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区中的数据存储
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
JP7203658B2 (ja) * 2019-03-27 2023-01-13 古河電気工業株式会社 レーザ装置
AU2020309663C1 (en) 2019-07-06 2023-12-14 Beijing Bytedance Network Technology Co., Ltd. Virtual prediction buffer for intra block copy in video coding
WO2021004495A1 (en) * 2019-07-10 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
MX2022000110A (es) 2019-07-10 2022-02-10 Beijing Bytedance Network Tech Co Ltd Identificacion de muestras para la copia intra-bloque en codificacion de video.
JP2022539887A (ja) 2019-07-11 2022-09-13 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのビットストリーム適合性の制約
CN115191119A (zh) 2020-02-14 2022-10-14 抖音视界有限公司 视频比特流中的并置参考索引指示
BR112022018960A2 (pt) 2020-03-21 2022-11-16 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeo, aparelho para processamento de dados de vídeo, meios de armazenamento e de gravação não transitórios legíveis por computador
CN113641298A (zh) * 2020-04-27 2021-11-12 伊姆西Ip控股有限责任公司 数据存储方法、设备和计算机程序产品
CN115668934A (zh) * 2020-05-21 2023-01-31 Lg电子株式会社 具有基于层间预测确定的运动信息的图像编码/解码方法和设备及发送比特流的方法
EP4154533A4 (en) * 2020-06-20 2023-11-01 Beijing Bytedance Network Technology Co., Ltd. CROSS-LAYER PREDICTION WITH DIFFERENT CODING BLOCK SIZE

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5017825B2 (ja) * 2005-09-15 2012-09-05 ソニー株式会社 復号装置および復号方法
EP1980107A4 (en) * 2006-11-17 2010-01-13 Lg Electronics Inc METHOD AND APPARATUS FOR DECODING / ENCODING A VIDEO SIGNAL
KR101345287B1 (ko) * 2007-10-12 2013-12-27 삼성전자주식회사 스케일러블 영상 부호화 방법 및 장치와 그 영상 복호화방법 및 장치
US20100278232A1 (en) * 2009-05-04 2010-11-04 Sehoon Yea Method Coding Multi-Layered Depth Images
WO2010127692A1 (en) * 2009-05-05 2010-11-11 Telefonaktiebolaget Lm Ericsson (Publ) Scalable video coding method, encoder and computer program
CN101572817B (zh) * 2009-05-26 2011-01-05 北京邮电大学 一种用于空间可分级视频编码的编码模式选择方法
CN115243046A (zh) * 2012-08-29 2022-10-25 Vid拓展公司 用于可分级视频编码的运动矢量预测的方法和装置
US9270991B2 (en) 2013-01-07 2016-02-23 Qualcomm Incorporated Inter-layer reference picture generation for HLS-only scalable video coding

Also Published As

Publication number Publication date
CN105556967B (zh) 2019-03-08
BR112016001223A2 (pt) 2017-09-05
KR102140359B1 (ko) 2020-07-31
ES2795682T3 (es) 2020-11-24
KR20160034933A (ko) 2016-03-30
EP3025499B1 (en) 2020-03-04
CA2917200C (en) 2018-06-19
WO2015013137A1 (en) 2015-01-29
HUE049817T2 (hu) 2020-10-28
JP2016531488A (ja) 2016-10-06
US9560358B2 (en) 2017-01-31
CA2917200A1 (en) 2015-01-29
EP3025499A1 (en) 2016-06-01
US20150023419A1 (en) 2015-01-22
CN105556967A (zh) 2016-05-04
JP6193494B2 (ja) 2017-09-06

Similar Documents

Publication Publication Date Title
BR112016001223B1 (pt) Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador
ES2879635T3 (es) Vaciado de imágenes e inferencia de parámetros de búfer de imágenes decodificadas para flujos de bits multicapa
EP3132604B1 (en) Conformance window information in multi-layer coding
BR112016008235B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
EP3090551B1 (en) Support of base layer of a different codec in multi-layer video coding
BR112016014227B1 (pt) Dispositivo e método para codificação escalável de informação de vídeo
BR112016029751B1 (pt) Método e dispositivo para codificar um fluxo de bits de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc, e método e dispositivo para decodificar dados de vídeo de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc
ES2905124T3 (es) Dispositivo y método para procesar datos de video
BR112016008337B1 (pt) Aparelho configurado para codificar informações de vídeo, método para codificar informações de vídeo e memória legível por computador
BR112016030377B1 (pt) Método e aparelho para converter informações de vídeo em código em um fluxo de bits, assim como memória legível por computador
KR102314587B1 (ko) 비디오 정보의 스케일러블 코딩을 위한 디바이스 및 방법
BR112016015455B1 (pt) Inferência aperfeiçoada de nooutputofpriorpicsflag em codificação de vídeo
BR112016021473B1 (pt) Método e aparelho para codificar informação de vídeo usando extensão escalável para codificação de vídeo de alta eficiência, shvc, ou codificação de vídeo de alta eficiência de múltiplas vistas, mv-hevc, assim como memória legível por computador
BR112015023800B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
BR112016015893B1 (pt) Método de decodificação de informações de vídeo, aparelho configurado para decodificar informações de vídeo e memória legível por computador
BR112016008241B1 (pt) Indicação de processamento paralelo em codificação de vídeo
BR112016029611B1 (pt) Aparelho e método para codificar informações de vídeo em codificação de vídeo de alta eficiência, e, memória legível por computador
BR112016000865B1 (pt) Aparelho e método para codificar informações de vídeo multicamadas, aparelho e método para decodificar informações de vídeo multicamadas, e memória legível por computador
BR112021012632A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
ES2887369T3 (es) Método y dispositivo para decodificar un conjunto de instantáneas de referencia inter capa (RPS) en decodificación multicapa
BR112016021475B1 (pt) Dispositivo e método para codificação escalável de informação de vídeo
CN105850122B (zh) 在多层译码中用于对参考图片集(rps)进行译码的方法
BR112021003946A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112016015931B1 (pt) Suporte de camada-base de não hevc em extensões de muticamadas de hevc
BR112016015918B1 (pt) Suporte de camada base não-hevc em extensões de muticamada de hevc

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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