BR112013021612B1 - Método e dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, método e dispositivo para codificar dados de vídeo de acordo com um modo de fusão e memória legível por computador - Google Patents

Método e dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, método e dispositivo para codificar dados de vídeo de acordo com um modo de fusão e memória legível por computador Download PDF

Info

Publication number
BR112013021612B1
BR112013021612B1 BR112013021612-3A BR112013021612A BR112013021612B1 BR 112013021612 B1 BR112013021612 B1 BR 112013021612B1 BR 112013021612 A BR112013021612 A BR 112013021612A BR 112013021612 B1 BR112013021612 B1 BR 112013021612B1
Authority
BR
Brazil
Prior art keywords
video block
video
block
adjacent
blocks
Prior art date
Application number
BR112013021612-3A
Other languages
English (en)
Other versions
BR112013021612A2 (pt
Inventor
Yunfei Zheng
Wei-Jung Chien
Marta Karczewicz
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112013021612A2 publication Critical patent/BR112013021612A2/pt
Publication of BR112013021612B1 publication Critical patent/BR112013021612B1/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
    • 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
    • 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/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

HIERARQUIA DE BLOCOS DE VÍDEO DE PREDIÇÃO DE MOVIMENTO Um decodificador de vídeo é configurado para obter um valor de índice para o bloco de vídeo atual. O decodificador de vídeo obtém um tipo de partição para o bloco de vídeo atual. O decodificador de vídeo seleciona um de uma pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no tipo de partição do bloco de vídeo atual. Um decodificador de vídeo seleciona um bloco de vídeo preditivo de um conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base em um valor de índice. Um decodificador de vídeo gera um vetor de movimento para o bloco de vídeo atual com base nas informações de movimento do bloco de vídeo preditivo.

Description

Este pedido reivindica o benefício: do pedido provisório U.S. No. 61/446.392, depositado a 24 de fevereiro de 2011; do pedido provisório U.S. No. 61/447.017, depositado a 26 de fevereiro de 2011; do pedido provisório U.S. No. 61/451.493, depositado a 10 de março de 2011; do pedido provisório U.S. No. 61/529.110, depositado a 30 de agosto de 2011; do pedido provisório U.S. No. 61/531.526, depositado a 6 de setembro de 2011; e do pedido provisório U.S. No. 61/531.514, depositado a 6 de setembro de 2011, cada um dos quais sendo por este incorporado em sua respectiva totalidade à guisa de referência.
Campo da Invenção
[0001] Esta revelação refere-se à codificação de vídeo.
Descrição da Técnica Anterior
[0002] Capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de dispositivos, que inclui televisões digitais, sistemas de difusão direto digitais, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou de mesa, computadores tablet, leitoras de livros eletrônicos, câmeras digitais, dispositivos de gravação digitais, tocadores de meios digitais, dispositivos para jogos de vídeo, consoles para jogos de vídeo, telefones celulares ou de satélite de rádio, os chamados “telefones inteligentes”, dispositivos de teleconferência de vídeo, dispositivos de fluxo contínuo de vídeo e semelhantes. Os dispositivos de vídeo digitais implementam técnicas de compactação de vídeo, tais como as descritas nos padrões definidos pelo MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de maneira mais eficaz pela implementação de tais técnicas de compactação de vídeo.
Sumário da Invenção
[0003] Em geral, esta revelação descreve técnicas para codificar dados de vídeo. Em um exemplo, um método para decodificar dados de vídeo compreende obter um valor de índice para o bloco de vídeo atual, obter um tipo de partição para o bloco de vídeo atual, selecionar um de uma pluralidade de conjuntos definidos blocos de vídeo preditivos candidatos ordenados com base no tipo de partição, selecionar um bloco de vídeo preditivo de um conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no valor de índice e gerar um vetor de movimento para o bloco de vídeo atual com base nas informações sobre movimento do bloco de vídeo preditivo.
[0004] Em outro exemplo, um dispositivo inclui um decodificador de vídeo configurado para obter um valor de índice para o bloco de vídeo atual, obter um tipo de partição para o bloco de vídeo atual, selecionar um de uma pluralidade de conjuntos definidos blocos de vídeo preditivos candidatos ordenados com base no tipo de partição, selecionar um bloco de vídeo preditivo de um conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no valor de índice e gerar um vetor de movimento para o bloco de vídeo atual com base nas informações sobre movimento do bloco de vídeo preditivo.
[0005] Em outro exemplo, um meio de armazenamento legível por computador compreende instruções que, quando executadas, fazem com que um processador obtenha um valor de índice para o bloco de vídeo atual, obtenha um tipo de partição para o bloco de vídeo atual, selecione um de uma pluralidade de conjuntos definidos blocos de vídeo preditivos candidatos ordenados com base no tipo de partição, selecione um bloco de vídeo preditivo de um conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no valor de índice e gere um vetor de movimento para o bloco de vídeo atual com base nas informações de movimento do bloco de vídeo preditivo.
[0006] Esta revelação descreve também técnicas para codificar dados de vídeo. Em um exemplo, um método compreende obter um vetor de movimento para o bloco de vídeo atual, obter um tipo de partição para o bloco de vídeo atual, selecionar um de uma pluralidade de conjuntos definidos blocos de vídeo preditivos candidatos ordenados com base no tipo de partição, selecionar um bloco de vídeo preditivo de um conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no vetor de movimento e gerar um valor de índice que identifica o bloco de vídeo preditivo selecionado.
[0007] Em outro exemplo, um dispositivo inclui um decodificador de vídeo configurado para obter um vetor de movimento para o bloco de vídeo atual, obter um tipo de partição para o bloco de vídeo atual, selecionar um de uma pluralidade de conjuntos definidos blocos de vídeo preditivos candidatos ordenados com base no tipo de partição, selecionar um bloco de vídeo preditivo de um conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no vetor de movimento e gerar um valor de índice que identifica o bloco de vídeo preditivo selecionado.
[0008] Em outro exemplo, um meio de armazenamento legível por computador compreende instruções que, quando executadas, fazem com que um processador obtenha um vetor de movimento para o bloco de vídeo atual, obtenha um tipo de partição para o bloco de vídeo atual, selecione um de uma pluralidade de conjuntos definidos blocos de vídeo preditivos candidatos ordenados com base no tipo de partição, selecione um bloco de vídeo preditivo de um conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no vetor de movimento e gere um valor de índice que identifica o bloco de vídeo preditivo selecionado.
[0009] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição que se segue. Outras feições, objetos e vantagens serão evidentes com a descrição e os desenhos, e com as reivindicações.
Breve Descrição dos Desenhos
[0010] A Figura 1 é um diagrama de blocos que mostra um exemplo de um sistema de codificação e decodificação de vídeo que pode implementar as técnicas desta revelação.
[0011] A Figura 2 é um diagrama de blocos que mostra um exemplo de um codificador de vídeo que pode implementar as técnicas desta revelação.
[0012] A Figura 3A é um diagrama conceitual que mostra o bloco de vídeo atual e um conjunto exemplar de blocos de vídeo de predição de movimento.
[0013] A Figura 3B é um diagrama conceitual que mostra o bloco de vídeo atual e um conjunto exemplar de blocos de vídeo de predição de movimento.
[0014] A Figura 3C é um diagrama conceitual que mostra o bloco de vídeo atual e um conjunto exemplar de blocos de vídeo de predição de movimento.
[0015] A Figura 4 é um diagrama conceitual que mostra a relação temporal entre o quadro de vídeo atual e quadros de vídeo de referência.
[0016] A Figura 5 é um diagrama conceitual que mostra o ordenamento de um conjunto de blocos de vídeo de predição de movimento com base na relação temporal com o bloco de vídeo atual.
[0017] A Figura 6 é um diagrama conceitual que mostra exemplos de blocos de vídeo candidatos que podem ser utilizados para gerar um conjunto de blocos de vídeo de predição de movimento.
[0018] A Figura 7 é um diagrama conceitual que mostra um exemplo de um método para buscar blocos de vídeo candidatos com base em critérios para gerar um conjunto de blocos de vídeo de predição de movimento.
[0019] A Figura 8 é um diagrama conceitual que mostra exemplos de partições de blocos de vídeo.
[0020] As Figuras 9A-9K são diagramas conceptuais que mostram exemplos que criam uma hierarquia ordenada com base na partição de blocos de vídeo atual para um conjunto de blocos de vídeo de predição de movimento.
[0021] A Figura 10 é um fluxograma que mostra uma técnica para codificar dados de vídeo.
[0022] A Figura 11 é um diagrama de blocos que mostra um exemplo de uma unidade de decodificador de vídeo que pode implementar as técnicas desta técnica.
[0023] A Figura 12 é um fluxograma que mostra uma técnica para decodificar dados de vídeo.
Descrição Detalhada da Invenção
[0024] Esta revelação descreve técnicas para gerar conjuntos de blocos de vídeo de predição de movimento a partir de blocos de vídeo candidatos e criar uma hierarquia ordenada dos blocos de vídeo de predição de movimento dentro de um conjunto. Um codificador de vídeo pode codificar informações sobre movimento para o bloco de vídeo atual utilizando a hierarquia ordenada. Por exemplo, um conjunto de blocos de vídeo candidatos pode incluir blocos de vídeo adjacentes ao bloco de vídeo atual. Um conjunto ordenado de blocos de vídeo de predição de movimento pode ser um subconjunto dos blocos de vídeo adjacentes. As informações sobre movimento para o bloco de vídeo atual podem ser obtidas utilizando-se o conjunto ordenado de blocos de vídeo de predição de movimento, inclusive a utilização de uma das técnicas seguintes: herdar um vetor de movimento de um bloco de vídeo de predição de movimento no conjunto ordenado, calcular um vetor de movimento pela adição ou subtração de informações sobre vetor de movimento residuais do vetor de movimento de um bloco de vídeo de predição de movimento no conjunto ordenado, ou calcular um vetor de movimento com a utilização as informações sobre vetor de movimento de um ou mais blocos de vídeo de predição de movimento no conjunto ordenado. A utilização de uma hierarquia ordenada pode permitir a obtenção de economia de bits.
[0025] Em uma técnica, um conjunto de blocos de vídeo de predição de movimento é gerado analisando-se se os blocos de vídeo candidatos incluem critérios especificados. Por exemplo, vários blocos de vídeo dentro de uma distância temporal ou espacial com relação ao bloco de vídeo atual podem ser analisados para determinar se algum dos seus valores de identificação de referência está dentro de uma faixa especificada. Neste exemplo, os blocos de vídeo candidatos com um valor de identificação de referência igual ao valor especificado podem ser incluídos em um conjunto de blocos de vídeo de predição de movimento.
[0026] Em uma técnica descrita por esta revelação, um conjunto de blocos de vídeo de predição de movimento é organizado em uma hierarquia ordenada com base na distância temporal de um bloco de referência associado a cada um dos blocos de predição de movimento e de um bloco de referência associado ao bloco de vídeo atual que é codificado. Em outras palavras, aos vetores de movimento dos blocos de predição de movimento que apontam para blocos preditivos temporalmente mais próximos do bloco de vídeo atual pode ser dada prioridade em detrimento dos vetores de movimento dos blocos de predição de movimento que apontam para blocos preditivos temporalmente mais afastados do bloco de vídeo atual.
[0027] Em uma técnica descrita por esta revelação, uma hierarquia ordenada de blocos de vídeo de predição de movimento é criada com base no tipo de partição do bloco de vídeo atual. Um subconjunto de três blocos de predição de movimento pode ser gerado a partir de um conjunto de cinco blocos de vídeo adjacentes com base no tipo de partição do bloco de vídeo atual. O tipo de partição pode corresponder à forma de partição de uma PU em conformidade com o padrão de codificação de vídeo de alta eficácia (HEVC) emergente.
[0028] A Figura 1 é um diagrama de blocos que mostra um exemplo de um sistema de codificação e decodificação de vídeo 10, que pode implementar as técnicas desta revelação. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de origem 12, que transmite vídeo codificado para um dispositivo de destino 16 por meio de um canal de comunicação 15. O dispositivo de origem 12 e o dispositivo de destino 16 podem compreender qualquer um de uma ampla faixa de dispositivos. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 16 podem compreender dispositivos telefônicos de dispositivos de comunicação sem fio, tais como os chamados telefones celulares ou de satélite de rádio. As técnicas desta revelação, contudo, que se aplicam geralmente à codificação e à decodificação, podem ser aplicadas a dispositivos não sem fio que incluem capacidades de codificação e/ou decodificação de vídeo. O dispositivo de origem 12 e o dispositivo de destino 16 são meramente exemplos de dispositivos de codificação que podem suportar as técnicas aqui descritas.
[0029] No exemplo da Figura 1, o dispositivo de origem 12 inclui uma fonte de vídeo 20, um codificador de vídeo 22, um modulador/demodulador (modem) 23 e um transmissor 24. O dispositivo de destino 16 pode incluir um receptor 26, um modem 27, um decodificador de vídeo 28 e um dispositivo de exibição 30. Elementos de sintaxe podem ser gerados no codificador de vídeo 22 como parte de um fluxo de bits codificado, e os elementos de sintaxe podem ser utilizados pelo decodificador de vídeo 28 na decodificação do fluxo de bits.
[0030] A fonte de vídeo 20 pode compreender um dispositivo de captação de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo que contém vídeo captado anteriormente, uma alimentação de vídeo de um provedor de conteúdo de vídeo ou outra fonte de vídeo. Como outra alternativa, a fonte de vídeo 20 pode gerar dados baseados em gráficos de computador como o vídeo de origem ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos, se a fonte vídeo 20 for uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 16 podem formar os chamados telefones com câmera ou telefones com vídeo. Em cada caso, o vídeo captado, pré- captado ou gerado por computador pode ser codificado pelo codificador de vídeo 22.
[0031] Em alguns exemplos (mas não em todos os casos), uma vez que os dados de vídeo são codificados pelo codificador de vídeo 22, as informações de vídeo codificadas podem ser em seguida moduladas pelo modem 23 de acordo com um padrão de comunicação, como, por exemplo, o acesso múltiplo por divisão de código (CDMA), a multiplexação por divisão de frequência ortogonal (OFDM) ou qualquer outro padrão ou técnica de comunicação. Os dados codificados e modulados podem ser então transmitidos para o dispositivo de destino 16 através do transmissor 24. O modem 23 pode incluir diversos misturadores, filtros, amplificadores ou outros componentes projetados para modulação de sinais. O transmissor 24 pode incluir circuitos projetados para transmitir dados, inclusive amplificadores, filtros e uma ou mais antenas. O receptor 26 do dispositivo de destino 16 recebe informações através do canal 15, e o modem 27 demodula as informações. O processo de decodificação de vídeo executado pelo decodificador de vídeo 28 pode incluir técnicas correspondentes às técnicas de codificação executadas pelo codificador de vídeo 22.
[0032] O canal de comunicação 15 pode compreender qualquer meio de comunicação sem fio ou cabeado, tal como um espectro de rádio frequência (RF) ou uma ou mais linhas de transmissão físicas ou qualquer combinação de meios sem fio e cabeados. O canal de comunicação 15 pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área estendida ou uma rede global como a Internet. O canal de comunicação 15 representa geralmente qualquer meio de comunicação adequado, ou coleção de meios de comunicação diferentes, para transmitir dados de vídeo do dispositivo de origem 12 para o dispositivo de destino 16. Mais uma vez, a Figura 1 é meramente exemplar e as técnicas desta revelação podem aplicar-se a configurações de codificação de vídeo (codificação de vídeo ou decodificação de vídeo, por exemplo) que não incluem necessariamente comunicação de dados entre os dispositivos de codificação e decodificação. Em outros exemplos, os dados podem ser recuperados de uma memória local, postos em fluxo contínuo através de uma rede ou semelhante. Um dispositivo de codificação pode codificar e armazenar dados na memória e/ou um dispositivo de decodificação pode recuperar e decodificar dados da memória. Em muitos casos, a codificação e a decodificação são executadas por dispositivos não relacionados que não se comunicam entre si, mas simplesmente codificam dados na memória e/ou recuperam e decodificam dados da memória.
[0033] Em alguns casos, o codificador de vídeo 22 e o decodificador de vídeo 28 podem funcionar substancialmente de acordo com um padrão de compactação de vídeo, tal como o padrão HEVC emergente. Entretanto, as técnicas desta revelação podem ser também aplicadas no contexto de diversos outros padrões de codificação de vídeo, inclusive alguns padrões antigos ou padrões novos ou emergentes. Embora não mostrado na Figura 1, em alguns casos o codificador de vídeo 22 e o decodificador de vídeo 28 podem ser, cada um, integrados com um codificador e decodificador de áudio e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para processar a codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou em fluxos de dados separados. Se aplicável, as unidades MUX- DEMUX podem conformar-se ao protocolo de multiplexador ITU H.223 ou a outros protocolos tais como o protocolo de datagrama de usuário (UDP).
[0034] O codificador de vídeo 22 e o decodificador de vídeo 28 podem ser, cada um, implementados como um ou mais microprocessadores, processadores de sinais digitais, circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou combinações deles. Cada um dentre o codificador de vídeo 22 e decodificador de vídeo 28 pode ser incluído em um ou mais codificadores ou decodificadores, um ou outro dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo móvel, dispositivo de assinante, dispositivo de difusão, servidor ou semelhante. Nesta revelação, o termo codificador refere- se a um codificador, um decodificador ou CODEC, e os termos codificador, codificador, decodificador e CODEC referem-se todos a máquinas específicas projetadas para a codificação (codificação e/ou decodificação) de dados de vídeo em conformidade com esta revelação.
[0035] Em alguns casos, os dispositivos 12, 16 podem funcionar de maneira substancialmente simétrica. Por exemplo, cada um dos dispositivos 12, 16 pode incluir componentes de codificação e decodificação de vídeo. Consequentemente, o sistema 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre os dispositivos de vídeo 12, 16, como, por exemplo, para fluxo contínuo de vídeo, repetição de vídeo, execução de difusões de vídeo ou telefonia com vídeo.
[0036] Durante o processo de codificação, o codificador de vídeo 22 pode executar várias técnicas ou operações de codificação. Em geral, o codificador de vídeo 22 funciona em blocos de dados de vídeo em conformidade com o padrão HEVC. A HEVC refere-se a unidades de codificação (CUs), que podem ser particionadas de acordo com um esquema de particionamento de transformada em árvore quaternária. Uma “LCU” refere-se à unidade de codificação de maior tamanho (a “maior unidade de codificação”, por exemplo) suportada em uma dada situação. O tamanho da LCU pode ser ele mesmo sinalizado como parte do fluxo de bits, como, por exemplo, como sintaxe ao nível de sequência. A LCU pode ser particionada em CUs menores. As CUs podem ser particionadas em unidades de predição (PUs) para fins de predição. As PUs podem ter formas quadradas ou retangulares. Transformadas não são fixadas no padrão HEVC emergente, mas são definidas de acordo com tamanhos de unidade de transformada (TU), que podem ser o mesmo tamanho de uma dada CU, ou possivelmente menores. As amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores com a utilização de uma estrutura de transformada em árvore quaternária conhecida como “transformada árvore quaternária residual” (RQT). Os nós-folha da RQT podem ser referidos como unidades de transformada (TUs). As TUs podem ser transformadas e quantizadas. Os elementos de sintaxe podem ser definidos ao nível de LCU, ao nível de CU, ao nível de PU e ao nível de TU. Elementos chamados “indicadores de divisão” podem ser incluídos como sintaxe ao nível de CU para indicar se qualquer dada CU é ela mesma subdividida em quatro mais CUs. Por exemplo, a CU0 pode referir-se à LCU, e a CU1 à CU4 podem compreender sub-CUs da LCU.
[0037] Em conformidade com a HEVC, os blocos de vídeo são referidos como unidades de codificação (CUs) e muitas CUs existem dentro de quadros de vídeo individuais (ou outras unidades de vídeo definidas de maneira independente, tais como fatias). Quadros, fatias, partes de quadros, grupos de imagens ou outras estruturas de dados podem ser definidos como unidades de informações de vídeo que incluem uma pluralidade de CUs. As CUs podem ter tamanhos variáveis em conformidade com o padrão HEVC, e o fluxo de bits pode definir as maiores unidades de codificação (LCUs) como o maior tamanho de CU. Com o padrão HEVC, as LCUs podem ser divididas em CUs menores e menores de acordo com um esquema de particionamento de transformada em árvore quaternária, e as diferentes CUs que são definidas no esquema podem ser também particionadas nas chamadas unidades de predição (PUs). As LCUs, CUs e PUs são todos blocos de vídeo dentro do significado desta revelação.
[0038] O codificador de vídeo 22 pode efetuar codificação preditiva, na qual o bloco de vídeo que é codificado (uma PU de uma CU dentro de uma LCU, por exemplo) é comparado com um ou mais candidatos preditivos para identificar um bloco preditivo. Este processo de codificação preditiva pode ser intra (e neste caso os dados preditivos são gerados com base em intra-dados vizinhos dentro do mesmo quadro ou fatia de vídeo) ou inter (e neste caso os dados preditivos são gerados com base em dados de vídeo de quadros ou fatias anteriores ou subsequente). Muitos modos de codificação diferentes podem ser suportados, e o codificador de vídeo 22 pode selecionar um modo de codificação de vídeo desejável. De acordo com esta revelação, pelo menos alguns blocos de vídeo podem ser codificados utilizando-se os processos aqui descritos. As técnicas de compactação de vídeo incluem predição espacial (intra-imagem) e/ou predição temporal (inter-imagem) para reduzir ou remover a redundância inerente às sequências de vídeo. Para codificação de vídeo baseada em blocos, uma fatia de vídeo (um quadro de vídeo ou uma parte de um quadro de vídeo, por exemplo) pode ser particionada em blocos de vídeo, que podem ser também referidos com blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intra-codificada (I) de uma imagem são codificados utilizando-se predição espacial com relação a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia inter-codificada (P ou B) de uma imagem são codificados utilizando-se predição espacial com relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com 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.
[0039] Quando o codificador de vídeo 22 utiliza estimação de movimento e compensação de movimento para reduzir a redundância temporal em uma sequência de vídeo, um vetor de movimento pode ser gerado para identificar um bloco preditivo de dados de vídeo. O decodificador de vídeo 28 pode utilizar o vetor de movimento para predizer os valores do bloco de vídeo atual que é codificado. Por exemplo, os valores do bloco de vídeo preditivo podem ser subtraídos dos valores do bloco de vídeo atual para produzir um bloco de dados residuais. O vetor de movimento, juntamente com os dados residuais, pode ser comunicado do codificador de vídeo 22 ao decodificador de vídeo através do canal de comunicação 15. O decodificador de vídeo 28 pode localizar o mesmo bloco preditivo (com base no vetor de movimento) e reconstruir o bloco de vídeo codificado pela combinação dos dados residuais com os dados do bloco preditivo.
[0040] O codificador de vídeo 22 pode utilizar o modo de fusão para codificar as informações de movimento do bloco de vídeo atual. O modo de fusão é um modo de codificação de vídeo no qual as informações de movimento (tais como vetores de movimento, índices de quadro de referência, direções de predição ou outras informações) de um bloco de vídeo vizinho são herdadas para o bloco de vídeo atual que é codificado. Um valor de índice pode ser utilizado para identificar o vizinho do qual o bloco de vídeo atual herda as suas informações de movimento (topo, direita de topo, esquerda, base de esquerda ou colocalizado de um quadro temporalmente adjacente, por exemplo). Outro caso em que o vetor de movimento de um bloco de vídeo vizinho é utilizado na codificação do bloco de vídeo atual é a chamada predição de vetor de movimento. Neste caso, a codificação preditiva de vetores de movimento é aplicada para reduzir a quantidade de dados necessários para comunicar o vetor de movimento. Por exemplo, em vez de codificar e comunicar o vetor de movimento propriamente dito, o codificador de vídeo 22 pode codificar e comunicar a diferença de vetor de movimento (MVD) relativa a um vetor de movimento conhecido (ou conhecível). No H.264/AVC, o vetor de movimento conhecido, que pode ser utilizado com a MVD para definir o vetor de movimento atual, pode ser definido pelo chamado preditor de vetor de movimento (MVP), que é derivado como o número médio dos vetores de movimento associados a blocos vizinhos.
[0041] O codificador de vídeo 22 pode utilizar predição de vetor de movimento adaptativa (AMVP) para codificar as informações de movimento do bloco de vídeo atual. A AMVP constrói um conjunto de candidatos a vetor de movimento incluindo vários blocos vizinhos nas direções espacial e temporal como candidatos para o MVP. Na AMVP, o codificador de vídeo 22 seleciona o bloco de predição mais preciso a partir do conjunto de candidatos com base na análise da taxa de distorção de codificação (utilizando-se a chamada análise de custo de distorção de taxa, por exemplo). Um índice de preditor de vetor de movimento (idx_mvp) pode ser transmitido para o decodificador de vídeo 28 para informar ao decodificador de vídeo 28 onde localizar o MVP. Uma MVD pode ser também transmitida para o decodificador de vídeo 28. O decodificador de vídeo 28 pode combinar a MVD com o MVP (definido pelo índice de preditor de vetor de movimento) para gerar o vetor de movimento para o bloco de vídeo atual.
[0042] Após a geração do bloco preditivo, as diferenças entre o bloco de vídeo atual que é codificado e o bloco preditivo são codificadas como um bloco residual, e a sintaxe de predição (tal como um vetor de movimento no caso de inter-codificação, ou um modo preditivo no caso de intra-codificação) é utilizada para identificar o bloco preditivo. Além do mais, com a AMVP ou o modo de fusão, o bloco vizinho utilizado para identificar o bloco preditivo pode ser codificado, como, por exemplo, através de um valor de índice que identifica um vizinho específico de acordo com a hierarquia ordenada aqui descrita.
[0043] Em alguns casos, o bloco residual pode ser transformado e quantizado. As técnicas de transformada podem compreender um processo de DCT ou um processo conceitualmente semelhante, transformadas de inteiro, transformadas de ondas curtas (wavelet) ou outros tipos de transformada. Em um processo de DCT, como exemplo, o processo de transformada converte um conjunto de valores de pixel (valores de pixel residuais, por exemplo) em coeficientes de transformada, que podem representar a energia dos valores de pixel no domínio da frequência. Os coeficientes de transformada podem ser quantizados. Em particular, a quantização pode ser aplicada aos coeficientes de transformada e envolve geralmente um processo que limita o número de bits associados a qualquer dado coeficiente de transformada. Mais especificamente, a quantização pode ser aplicada de acordo com um parâmetro de quantização (QP) definido ao nível de LCU. Por conseguinte, o mesmo nível de quantização pode ser aplicado a todos os coeficientes de transformada nas TUs associadas a diferentes PUs de CUs dentro de uma LCU. Entretanto, em vez de se sinalizar o QP propriamente dito, uma alteração ou diferença (isto é, um delta) no QP pode ser sinalizada com a LCU para indicar a alteração no QP com relação ao de uma LCU anterior.
[0044] Em seguida à transformada e à quantização, a codificação por entropia pode ser efetuada nos blocos de vídeo residuais quantizados e transformados. Elementos de sintaxe podem ser também incluídos no fluxo de bits codificado por entropia. Em geral, a codificação por entropia compreende um ou mais processos que compactam coletivamente uma sequência de coeficientes de transformada quantizados e/outras informações de sintaxe. Técnicas de varredura podem ser executadas nos coeficientes de transformada quantizados para definir um ou mais vetores dimensionais serializados de coeficientes de dois blocos de vídeo dimensionais. Os coeficientes de varredura são então codificados por entropia juntamente com qualquer informação de sintaxe, como, por exemplo, através de codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC) ou outro processo de codificação por entropia. Como parte do processo de codificação, os blocos de vídeo codificados podem ser decodificados em ordem para gerarem os dados de vídeo que são utilizados para codificação subsequente baseada em predição de blocos de vídeo subsequentes. Isto é frequentemente referido como um loop de decodificação do processo de codificação e geralmente imita a decodificação que é efetuada por um dispositivo de decodificação. No loop de decodificação de um codificador ou um decodificador, técnicas de filtragem podem ser utilizadas para aperfeiçoar a qualidade de vídeo e, por exemplo, suavizar as fronteiras entre pixels e possivelmente remover artefatos do vídeo decodificado. Esta filtragem pode ser em loop ou pós-loop. Com a filtragem em loop, a filtragem de dados de vídeo reconstruídos ocorre em loop de codificação, o que significa que os dados filtrados são armazenados por um codificador ou um decodificador para utilização subsequente na predição de dados de imagem subsequentes. Em contraste, com a filtragem pós-loop, a filtragem de dados de vídeo reconstruídos ocorre fora do loop de codificação, o que significa que versões não filtradas dos dados são armazenadas por um codificador ou um decodificador para utilização subsequente na predição de dados de imagem subsequentes. A filtragem em loop segue frequentemente um processo de filtragem por desbloqueio separado, que aplica tipicamente filtragem a pixels que estão nas ou perto das fronteiras de blocos de vídeo adjacentes para removerem os artefatos de blocagem que se manifestam nas fronteiras entre blocos de vídeo.
[0045] A Figura 2 é um diagrama de blocos que mostra um codificador de vídeo 50 compatível com esta revelação. O codificador de vídeo 50 pode corresponder ao codificador de vídeo 22 do dispositivo 12 ou ao codificador de vídeo de um dispositivo diferente. Conforme mostrado na Figura 2, o codificador de vídeo 50 inclui uma unidade de partição de transformada em árvore quaternária 31, uma unidade de codificação por predição 32, uma memória 34, um módulo de transformada 38, uma unidade de quantização 40, uma unidade de quantização inversa 42, um módulo de transformada inversa 44, uma unidade de codificação por entropia 46, uma unidade de filtro 47, que pode incluir filtros de desbloqueio e filtros pós-loop e/ou em loop, um adicionador 48 e um adicionador 51. Os dados de vídeo e as informações de sintaxe codificadas que definem a maneira da codificação podem ser comunicados à unidade de codificação por entropia 46, que efetua codificação por entropia no fluxo de bits.
[0046] Conforme mostrado na Figura 2, a unidade de codificação por predição 32 pode suportar uma pluralidade de modos de codificação 35 diferentes na codificação de blocos de vídeo. Os modos 35 podem incluir modos de inter- codificação que definem dados preditivos a partir de quadros (ou fatias) de vídeo diferentes. Os modos de inter- codificação podem ser bi-preditivos, o que significa que duas listas diferentes (a Lista 0 e a Lista 1, por exemplo) de dados preditivos (e tipicamente dois vetores de movimento diferentes) são utilizadas para identificar os dados preditivos. Os modos de inter-codificação podem ser alternativamente uni-preditivos, o que significa que uma lista (a Lista 0, por exemplo) de dados preditivos (e tipicamente um vetor de movimento) é utilizada para identificar os dados preditivos. Interpolações, deslocamentos ou outras técnicas podem ser executadas em conjunto com a geração de dados preditivos. Podem ser também suportados os chamados modos de PULO e os modos DIRETOS, que herdam informações de movimento associadas a um bloco colocalizado de outro quadro (ou fatia). Os blocos do modo de PULO não incluem informações residuais, enquanto os blocos do modo DIRETO incluem informações residuais.
[0047] Além disso, os modos 35 podem incluir modos de inter-codificação, que definem dados preditivos com base em dados dentro do mesmo quadro (ou fatia) de vídeo que é codificado. Os modos de intra-codificação podem incluir modos diferenciais que definem dados preditivos com base em dados em uma direção específica dentro do mesmo quadro, assim como modos DC e/ou planares que definem dados preditivos com base na média ou média ponderada de dados vizinhos. A unidade de codificação por predição 32 pode selecionar o modo para um dado bloco com base em alguns critérios, tal como com base em uma análise de distorção de taxa ou em algumas características do bloco, tais como tamanho, textura ou outras características do bloco.
[0048] De acordo com esta revelação, a unidade de codificação por predição 32 suporta um ou mais modos que executam a predição de vetor de movimento adaptativa (AMVP) descrita acima ou o modo de fusão descrito acima. Nestes ou outros casos, informações de movimento podem ser herdadas de um bloco da maneira aqui descrita e a sinalização do bloco do qual tal herança ocorre pode ser efetuada da maneira aqui descrita.
[0049] Geralmente, durante o processo de codificação, o codificador de vídeo 50 recebe dados de vídeo de entrada. A unidade de codificação por predição 32 executa técnicas de codificação preditiva em blocos de vídeo (CUs e PUs, por exemplo). A unidade de partição de transformada em árvore quaternária 31 pode fragmentar uma LCU em CUs e PUs menores de acordo com o particionamento HEVC. Para inter- codificação, a unidade de codificação por predição 32 compara as CUs ou PUs com diversos candidatos preditivos em um ou mais quadros ou fatias de referência (uma ou mais “listas” de dados de referência, por exemplo) para definir um bloco preditivo. Para intra-codificação, a unidade de codificação por predição 32 gera um bloco preditivo com base em dados vizinhos dentro do mesmo quadro ou fatia de vídeo. A unidade de codificação por predição 32 transmite o bloco de predição e o adicionador 48 subtrai o bloco de predição da CU ou PU que é codificada para gerar um bloco residual. Mais uma vez, pelo menos alguns blocos de vídeo podem ser codificados utilizando-se a AMVP aqui descrita.
[0050] Em alguns casos, a unidade de codificação por predição 32 pode incluir uma unidade de distorção de taxa (R-D), que compara os resultados de codificação de blocos de vídeo (CUs ou PUs, por exemplo) em modos diferentes. Neste caso, a unidade de codificação por predição 32 pode incluir também uma unidade de seleção de modo para analisar os resultados de codificação em termos de taxa de codificação (isto é, os bits de codificação necessários para o bloco) e distorção (que representa a qualidade de vídeo do bloco codificado com relação ao bloco original, por exemplo) para fazerem seleções de modo para blocos de vídeo. Desta maneira, a unidade R-D pode prover análise dos resultados de modos diferentes para permitir que a unidade de seleção de modo selecione o modo desejado para blocos de vídeo diferentes. Em conformidade com esta revelação, pode ser selecionado um modo que execute AMVP quando uma unidade R-D o identifique como o modo desejado para um dado bloco de vídeo, como, por exemplo, devido a ganhos de codificação ou à eficácia de codificação. Alternativamente, em conformidade com esta revelação, pode ser selecionado um modo de fusão no qual informações de movimento são herdadas de um bloco vizinho. Nestes ou em outros exemplos, um conjunto ordenado de vizinhos pode ser definido e utilizado na codificação compatível com esta revelação.
[0051] Novamente com referência à Figura 2, depois que a unidade de codificação por predição 32 transmite o bloco de predição, e depois que o adicionador 48 subtrai o bloco de predição do bloco de vídeo que é codificado para gerar um bloco residual de valores de pixel residuais, a unidade de transformada 38 aplica uma transformada ao bloco residual. A transformada pode compreender uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente semelhante, tal como a definida pelo padrão ITU H.264 ou pelo padrão HEVC. As chamadas estruturas “borboleta” podem ser definidas como executando as transformadas, ou pode ser também utilizada uma multiplicação baseada em matriz. Em alguns exemplos, em conformidade com o padrão HEVC, o tamanho da transformada pode variar para CUs diferentes, dependendo do nível de particionamento que ocorre com relação a uma dada LCU. Unidades de transformada (TUs) podem ser definidas para fixar o tamanho de transformada aplicado pela unidade de transformada 38. Podem ser também utilizadas transformadas de ondas curtas, transformadas de inteiro, transformadas de sub-banda ou outros tipos de transformada. Seja como for, a unidade de transformada aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residuais. A transformada, em geral, pode converter as informações residuais do domínio de pixels no domínio da frequência.
[0052] A unidade de quantização 40 em seguida quantiza os coeficientes de transformada residuais para reduzir ainda mais a taxa de bits. A unidade de quantização 40, por exemplo, pode limitar o número de bits utilizados para cada codificar cada um dos coeficientes. Em particular, a unidade de quantização 40 pode aplicar o QP delta definido para a LCU para definir o nível de quantização a ser aplicado (tal como pela combinação do QP delta com o QP da LCU anterior ou algum outro QP conhecido). Depois quantização é efetuada em amostras residuais, a unidade de codificação por entropia 46 pode varrer e codificar por entropia os dados.
[0053] A CAVLC é um tipo de técnica de codificação por entropia suportado pelo padrão ITU H.264 e pelo padrão HEVC emergente, que pode ser aplicado em uma base vetorizada pela unidade de codificação por entropia 46. A CAVLC utiliza tabelas de codificação de comprimento variável (VLC) de uma maneira que compacta de maneira eficaz “cursos” serializados de coeficientes e/ou elementos de sintaxe. A CABAC é outro tipo de técnica de codificação por entropia suportado pelo padrão H.264 ou pelo padrão HEVC, que pode ser aplicado em uma base vetorizada pela unidade de codificação por entropia 46. A CABAC pode envolver vários estágios, inclusive a binarização, a seleção de modelo de contexto e a codificação aritmética binária. Neste caso, a unidade de codificação por entropia 46 codifica coeficientes e elementos de sintaxe de acordo com a CABAC. Muitos outros tipos de técnica de codificação por entropia também existem, e novas técnicas de codificação por entropia provavelmente emergirão no futuro. Esta revelação não está limitada a qualquer técnica de codificação por entropia específica.
[0054] Em seguida à codificação por entropia pela unidade de codificação por entropia 46, o vídeo codificado pode ser transmitido para outro dispositivo ou arquivado para transmissão posterior ou recuperação. O vídeo codificado pode compreender os vetores codificados por entropia e diversas informações de sintaxe. Tais informações podem ser utilizadas pelo decodificador para configurar apropriadamente o processo de decodificação. A unidade de quantização inversa 42 e a unidade de transformada inversa 44 aplicam quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixels. O somador 51 adiciona o bloco residual reconstruído ao bloco de predição produzido pela unidade de codificação por predição 32 para produzir um bloco de vídeo reconstruído para armazenamento na memória 34. Antes de tal armazenamento, contudo, a unidade de filtro 46 pode aplicar filtragem ao bloco de vídeo para aperfeiçoar a qualidade de vídeo. A filtragem aplicada pela unidade de filtro 47 pode reduzir os artefatos e suavizar as fronteiras entre pixels. Além do mais, a filtragem pode aperfeiçoar a compactação ao gerar blocos de vídeo preditivos que correspondem de perto aos blocos de vídeo que são codificados.
[0055] De acordo com as técnicas aqui descritas, a unidade de codificação por predição 32 pode utilizar hierarquias ordenadas para identificar um bloco preditivo para codificação do bloco atual e/ou pode gerar um valor de índice que identifica um bloco preditivo específico de acordo com uma hierarquia ordenada. A Figura 3A é um diagrama conceitual que mostra o bloco de vídeo atual e blocos de vídeo de movimento preditivos candidatos (isto é, de topo (T), à direita de topo (TR), esquerdo (L), de base à esquerda (BL) ou colocalizados com um quadro temporalmente adjacente (Temp)) do qual o bloco de vídeo atual pode derivar informações de movimento. A Figura 3B é um diagrama conceitual que mostra o bloco de vídeo atual e um de uma pluralidade de conjuntos de blocos de vídeo de movimento preditivos que podem ser derivados do conjunto de blocos de vídeo de movimento preditivos candidatos da Figura 3A. A Figura 3C é um diagrama conceitual que mostra o bloco de vídeo atual e blocos de vídeo de movimento preditivos candidatos (isto é, de topo (T), de topo à esquerda (TL), de topo à direita (TR), à esquerda (L) ou de base à esquerda (BL)) dos quais o bloco de vídeo atual pode derivar informações de movimento.
[0056] As Figuras 4 e 5 são diagramas conceptuais que mostram a utilização de uma hierarquia ordenada de blocos de vídeo de predição de movimentos para identificar um bloco de vídeo preditivo para codificação do bloco de vídeo atual. No exemplo, é mostrada nas Figuras 4 e 5 a distância corporal entre o bloco de vídeo atual e cada um dos blocos de vídeo de predição de movimento que é utilizada para criar uma hierarquia ordenada. A hierarquia ordenada pode ser criada pelo codificador de vídeo 50 com base em dados de vídeo de entrada ou criada de antemão e armazenada na memória 34. A criação de uma hierarquia ordenada com base na distância temporal pode explorar o fato de que é mais provável que os blocos de vídeo de predição de movimento que têm distâncias temporais mais curtas com relação ao bloco de vídeo atual sejam melhores preditores do que os blocos de vídeo que têm distâncias temporais maiores. No exemplo mostrado nas Figuras 4 e 5, o conjunto de blocos de predição de movimento pode incluir os cinco blocos mostrados na Figura 3A. Em outros exemplos, o conjunto de blocos de vídeo de predição de movimento pode incluir mais ou menos blocos de vídeo de predição de movimento. O tamanho do conjunto e dos blocos de vídeo de predição de movimento incluídos no conjunto pode variar para cada bloco de vídeo atual. Por exemplo, um conjunto de três blocos de vídeo de predição de movimento pode ser gerado utilizando-se os cinco blocos de vídeo mostrados na Figura 5.
[0057] Uma contagem de ordens de imagens (POC) associada às informações de movimento de um bloco de vídeo de predição de movimento pode ser utilizada para definir a distância temporal entre cada um dos blocos de vídeo de predição de movimento e o bloco de vídeo atual. No exemplo mostrado nas Figuras 4 e 5, o bloco de vídeo atual que é codificado é localizado no quadro 5 (POC=5). As informações de movimento dos blocos de vídeo de predição de movimento apontam para o quadro 0 para o bloco L, para o quadro 1 para o bloco BL, para o quadro 2 para o bloco T, para o quadro 3 para o bloco Temp e para o quadro 4 para o bloco TR. Por conseguinte, a hierarquia dos blocos de predição de movimento pode ser definida assim: bloco TR seguido do bloco Temp, seguido do bloco T, seguido do bloco BL, seguido do bloco L.
[0058] Conforme descrito acima, a unidade de codificação por predição 32 pode utilizar a hierarquia ordenada exemplar mostrada na Figura 5 para codificar as informações de movimento para o bloco de vídeo atual. Em um exemplo, uma hierarquia ordenada pode ser programada de antemão e armazenada na memória 34. Em outro exemplo, o codificador de vídeo 50 pode gerar de maneira adaptativa hierarquias pela análise dos dados de vídeo. Uma vez que uma hierarquia é determinada, a cada um dos blocos de vídeo de predição de movimento podem ser atribuídas palavras de código variáveis como valores de índice. Ao bloco de vídeo de predição que tem a mais alta probabilidade de ser o bloco de vídeo de predição de movimento com a classificação mais elevada para um dado bloco de vídeo atual pode ser atribuída a palavra de código mais curta. No exemplo mostrado na Figura 5, o bloco de vídeo TR pode ter a palavra de código mais curta. Pela atribuição de valores de índice de maneira diferente, dependendo da hierarquia ordenada (distância temporal das informações de movimento, por exemplo), pode ser obtida economia de bits. Em alguns casos, códigos de comprimento variável podem ser utilizados para atribuir códigos mais curtos a blocos de vídeo de predição de movimento com melhor correlação (em termos da distância temporal das informações de movimento, por exemplo). Em outros casos, podem ser utilizados códigos fixos, mas alguns blocos de vídeo de predição de movimento podem ser excluídos, obtendo-se assim códigos fixos mais curtos devido à utilização de menos blocos de vídeo de predição de movimento.
[0059] A unidade de codificação por predição 32 pode comparar as informações de movimento do bloco de vídeo atual com as informações de movimento dos blocos de predição de movimento em um conjunto e selecionar um valor de índice para o vídeo atual, onde o valor de índice identifica um dos blocos de vídeo de predição de movimento. Com base no modo de codificação, as informações de movimento do bloco de vídeo atual podem ser geradas utilizando-se o valor de índice para: herdar um vetor de movimento do bloco de vídeo de predição de movimento identificado ou calcular um vetor de movimento pela adição ou subtração de informações de vetor de movimento residuais do vetor de movimento do bloco de vídeo de predição de movimento identificado.
[0060] O método exemplar mostrado nas Figuras 4 e 5 pode ser baseado em um cenário no qual o bloco de vídeo atual e o bloco de vídeo de predição de movimento utilizam um modo direcional uni-preditivo. Entretanto, o método das Figuras 4 e 5 pode ser também estendido a cenários bi- preditivos, onde cada bloco de vídeo tem dois vetores de movimento, considerando-se a distância combinada dos dois blocos preditivos diferentes de blocos de vídeo de predição de movimento codificados no modo bi-preditivo, com relação ao bloco de vídeo atual. Em alguns exemplos, se qualquer um dos blocos de vídeo de predição de movimento tiver a mesma POC, então uma ordem pré-definida pode ser utilizada ou outros critérios podem ser utilizados para ordenar os blocos de vídeo de predição de movimento. Em um exemplo, a ordem pré-definida pode ser bloco T, seguido do bloco L, seguido do bloco Temp, seguido do bloco TR, seguido do bloco BL. Para um conjunto de cinco blocos, qualquer uma das 120 ordens possíveis pode ser utilizada como a ordem pré-definida. Outros critérios que podem ser utilizados para determinar a ordem podem incluir: lista de referência, índice de referência, direção de predição, tamanho de bloco, tamanho de unidade de predição, tipo de partição de predição, índice de transformada, tamanho de transformada ou outras informações relacionadas com os blocos de vídeo. Por exemplo, o ordenamento pode ser baseado em se o tamanho ou forma do bloco de vídeo que é codificado é o tamanho ou forma dos blocos de vídeo de predição de movimento. Se um ou mais blocos de vídeo de predição de movimento não puderem ser ordenados unicamente em uma característica temporal especificada (cada bloco de vídeo de predição de movimento refere o mesmo bloco preditivo, por exemplo), um segundo critério pode ser baseado em outras técnicas de ordenamento aqui descritas. Em outra técnica descrita por esta revelação, um conjunto de blocos de vídeo de predição de movimento pode ser organizado em uma hierarquia ordenada com base na forma de partição do bloco de vídeo atual.
[0061] De acordo com a revelação, a unidade de codificação por predição 32 pode utilizar outras técnicas para codificar as informações de movimento do bloco de vídeo atual. A Figura 6 é um diagrama conceitual que mostra um exemplo de blocos de vídeo possíveis que podem ser analisados com a finalidade de determinar como codificar as informações de movimento do bloco de vídeo atual. Na Figura 6, os blocos de vídeo são localizados no mesmo quadro do bloco de vídeo atual. Em outro exemplo, os blocos de vídeo candidatos podem ser também localizados em quadros diferentes (já codificados/decodificados) do bloco de vídeo atual. Por exemplo, o bloco colocalizado com o bloco de vídeo atual de um ou mais quadros codificados anteriormente pode ser também um bloco de vídeo candidato. A unidade de codificação por predição 32 pode analisar as informações de movimento dos blocos de vídeo candidatos mostrados na Figura 6.
[0062] A Figura 7 é um diagrama conceitual que mostra um exemplo de um método para analisar blocos de vídeo com base em critérios para codificação de informações de movimento para o bloco de vídeo atual. Essencialmente, o exemplo mostrado na Figura 7 mostra uma maneira eficaz de comparar as informações de movimento do bloco de vídeo atual com blocos de vídeo que podem ser utilizados para codificar as informações de movimento do bloco de vídeo atual. O exemplo descrito de acordo com a Figura 7 pode ser utilizado para buscar um conjunto de blocos de vídeo de predição de movimento de diversos tamanhos.
[0063] No exemplo mostrado na Figura 7, há onze blocos de vídeo de predição de movimento. Cada um dos blocos de vídeo inclui um valor de modo de direção (isto é, uni- predição ou bi-predição), um valor de lista de referência e um valor de índice de referência. Antes da comparação das informações de movimento do bloco de vídeo atual com as informações de movimento de cada um dos onze blocos de vídeo de predição de movimento mostrados na Figura 7, pode ocorrer uma primeira comparação do valor de modo de direção, do valor de lista de referência e do valor de índice de referência. Isto pode provocar a ocorrência de menos comparações entre informações de movimento. Desta maneira, a unidade de codificação por predição 32 pode buscar de maneira eficaz um bloco de vídeo de predição de movimento para o bloco de vídeo atual. De acordo com o exemplo mostrado na Figura 7, o valor de lista de referência e o valor de índice de referência de um bloco de vídeo de predição de movimento podem ser comparados com o bloco de vídeo atual. No exemplo mostrado na Figura 7, pode-se determinar se o vetor de movimento de um bloco de vídeo de predição de movimento prediz a partir da mesma lista de referência e do mesmo índice de referência do vetor de movimento do bloco de vídeo atual. Conforme mostrado no exemplo mostrado na Figura 7, supondo-se que o bloco de vídeo atual esteja sendo codificado no modo de bi- predição, os dois vetores de movimento utilizados neste modo de bi-predição apontam para a lista de referência L1 e para o índice de referência 0. Uma busca pode ser feita nos blocos de vídeo de predição de movimento para encontrar blocos de vídeo codificados no modo de bi-predição, e os dois vetores de movimento utilizados neste modo de bi-predição apontam para a lista de referência L1 e para o índice de referência 0.
[0064] No método de busca exemplar mostrado na Figura 7, a busca começa da esquerda ao longo da direção de busca esquerda (dos blocos de vídeo de 0 a 4), se uma correspondência for encontrada (neste exemplo, o bloco de vídeo candidato 2 é uma correspondência), a busca esquerda pode ser interrompida e uma busca de topo é iniciada dos blocos de vídeo candidatos de 5 a 10 ao longo da direção de busca de topo. Uma vez que a primeira correspondência de candidatos de bloco de vídeo de topo é encontrada (neste exemplo, o bloco de vídeo 6 é uma correspondência), a busca de topo pode ser interrompida. As informações de movimento do bloco de vídeo atual podem ser comparadas com as do bloco de vídeo 2 e com as do bloco de vídeo 6. Este processo pode ser repetido uma vez que as informações de movimento unitárias necessárias de um bloco de vídeo preditivo estejam dentro de um limite de informações de movimento do bloco de vídeo atual.
[0065] Deve-se observar que, no exemplo mostrado na Figura 7, se a direção de predição não fosse levada em consideração, o conjunto de blocos de predição de movimento pode incluir o bloco de vídeo 0 (primeira correspondência na busca esquerda) e o bloco de vídeo 6 (primeira correspondência na busca de topo). O bloco de vídeo candidato 0 pode finalmente não ser útil para predizer as informações de vetor de movimento do bloco de vídeo atual, uma vez que ele é codificado no modo de uni-predição.
[0066] Em conformidade com os exemplos desta revelação, critérios adicionais podem ser acrescentados para analisar blocos de vídeo candidatos. Além da lista de referência, do índice de referência e da direção de predição, critérios adicionais podem incluir um ou mais de tamanho de bloco, tamanho da unidade de predição, tipo de partição de predição, índice de transformada, tamanho de transformada ou outras informações relacionadas com o bloco de vídeo.
[0067] A unidade de codificação por predição 32 pode gerar um valor de índice para informar a um decodificador onde localizar um bloco de predição de movimento (de topo, à esquerda ou colocalizado, por exemplo). Um decodificador pode executar um processo de busca correspondente para determinar um bloco de vídeo de predição movimento. Desta maneira, um decodificador pode gerar um vetor de movimento para o bloco de vídeo atual efetuando a busca de um subconjunto de blocos de vídeo. Com referência à Figura 7, um valor de índice pode indicar um subconjunto de blocos de vídeo de predição de movimento (isto é, os blocos de vídeo de 0 a 4 ou os blocos de vídeo de 5 a 10) de um conjunto conhecido. Utilizando o valor de índice, um decodificador pode comparar informações tais como valor de modo de direção, valor de lista de referência e valor de índice de referência dos blocos de vídeo de predição de movimento com o bloco de vídeo atual. Se houver uma “correspondência”, informações de movimento para o bloco de vídeo atual podem ser geradas a partir do primeiro bloco de vídeo preditivo que produz uma “correspondência”. Desta maneira, as informações de movimento para o bloco de vídeo atual podem ser codificadas com a utilização de um valor de índice que identifica esse subconjunto. Isto pode obter uma economia de bits significativa quando se compara com a geração de um valor de índice que identifica um bloco de vídeo preditivo.
[0068] De acordo com a revelação, a unidade de codificação por predição 32 pode codificar as informações de movimento do bloco de vídeo atual utilizando uma hierarquia ordenada, em que a hierarquia ordenada é baseada em informações de partição. A Figura 8 é um diagrama conceitual que mostra exemplos de partições de blocos de vídeo. As formações de partição de predição mostradas na Figura 8 são alguns exemplos de forma de partição de predição, que podem ser definidos por uma unidade de predição (PU) e um índice de PU em conformidade com o padrão de codificação de vídeo de alta eficácia (HEVC) emergente. Quando se codificam as informações de movimento do bloco de vídeo atual com a utilização de uma forma de partição (que pode ser definida por uma forma de PU e um índice que define um tamanho da PU), os cinco blocos candidatos podem ser ordenados com probabilidade mais alta para probabilidade mais baixa. Neste caso, a probabilidade corresponde à probabilidade de que o vetor de movimento de um dos cinco blocos de vídeo candidatos “corresponda” ao vetor de movimento do bloco de vídeo atual. Os conjuntos ordenados podem ser programados de antemão e armazenados tanto em um codificador quanto em um decodificador.
[0069] As Figuras 9A-9K são diagramas conceptuais que mostram exemplos de criação de uma hierarquia ordenada baseada em um tipo de partição para um conjunto de blocos de vídeo de predição de movimento. Nos exemplos mostrados nas Figuras 9A-9K, o conjunto de blocos de predição de movimento inclui os cinco blocos mostrados na Figura 1A. Em outros exemplos, o conjunto de blocos de vídeo de predição de movimento pode incluir mais ou menos blocos de vídeo de predição de movimento. Por exemplo, um conjunto pode incluir três blocos de vídeo de predição de movimento. A inclusão de menos blocos de vídeo de predição de movimento em um conjunto pode reduzir a complexidade de codificação.
[0070] Nos exemplos mostrados nas Figuras 9A- 9K, os números no interior dos blocos de vídeo de predição de movimento representam a ordem hierárquica dos blocos de vídeo de predição de movimento. Para cada forma de partição de predição (que pode ser definida por uma forma de PU e um índice que define um tamanho da PU), o ordenamento pode ser programado de antemão e armazenado tanto no codificador quanto no decodificador.
[0071] Na Figura 9A, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é 2Nx2N pode ser definida como: bloco I, bloco T, bloco BL, bloco TR, Temp.
[0072] Na Figura 9B, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é 2NxN_0 pode ser definida como: bloco T, bloco I, bloco TR, bloco BL, Temp.
[0073] Na Figura 9C, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é Nx2N_1 pode ser definida como: bloco L, bloco BL, bloco BL, bloco Temp, bloco TR, bloco T.
[0074] Na Figura 9D, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é Nx2N_0 pode ser definida como: bloco L, bloco T, bloco BL, Temp, bloco TR.
[0075] Na Figura 9E, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é Nx2N_1 pode ser definida como: bloco T, bloco TR, Temp, bloco BL, bloco L.
[0076] Na Figura 9F, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é NxN_0 pode ser definida como: bloco L, bloco T, bloco BL, bloco TR, Temp.
[0077] Na Figura 9G, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é NxN_2 pode ser definida como: bloco L, bloco BL, bloco T, bloco TR, Temp.
[0078] Na Figura 9H, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é NxN_1 pode ser definida como: bloco T, bloco TR, bloco L, Temp, bloco BL.
[0079] Na Figura 91, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é NxN_3 pode ser definida como: bloco L, bloco T, Temp, bloco TR, bloco BL.
[0080] Na Figura 9J, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é Nx2N_0 pode ser definida como: bloco TL, bloco T, bloco BL, Temp, bloco TR, bloco L.
[0081] Na Figura 9K, por exemplo, uma hierarquia de blocos de vídeo de predição de movimento quando a forma de partição é Nx2N_1 pode ser definida como: bloco T, bloco TR, Temp, bloco BL, bloco TL, bloco L.
[0082] A unidade de codificação por predição 32 pode codificar as informações de movimento do bloco de vídeo atual utilizando o ordenamento hierárquico exemplar mostrado nas Figuras 9A-9I. O ordenamento hierárquico exemplar pode ser armazenado na memória 34. A Figura 10 é um exemplo de fluxograma que mostra uma técnica para codificar dados de vídeo utilizando o ordenamento hierárquico exemplar das Figuras 9A-9I. Deve-se observar que, embora a Figura 10 seja descrita em conjunto com o codificador de vídeo 50, as etapas descritas na Figura 10 podem ser executadas por outros dispositivos e componentes. Na etapa 250, a unidade de codificação por predição 32 obtém um vetor de movimento para o bloco de vídeo atual. Conforme descrito acima, um vetor de movimento indica um bloco de vídeo preditivo que pode ser utilizado para codificar o bloco de vídeo atual. Na etapa 252, a unidade de codificação por predição 32 obtém um tipo de partição para o bloco de vídeo atual. A unidade de codificação por predição 32 pode receber um valor de tipo de partição da unidade de partição de transformada em árvore quaternária 31. Em um exemplo, o tipo de partição corresponde a um dos tipos de partição descritos nas Figuras 9A-9I.
[0083] Na etapa 254, a unidade de codificação por predição 32 seleciona um de uma pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no tipo de partição. Por exemplo, se o tipo de partição for Nx2N_1, o conjunto de blocos de vídeo preditivos candidatos ordenados pode ser definido como: bloco T, bloco TR, Temp, bloco BL, bloco L. Na etapa 256, a unidade de codificação por predição 32 seleciona um bloco de vídeo preditivo do conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no vetor de movimento do bloco de vídeo atual. Na etapa 256, o vetor de movimento do bloco de vídeo atual pode ser comparado com cada um dos vetores de movimento dos blocos de vídeo candidatos dentro do conjunto. A comparação pode ser feita de maneira semelhante à busca descrita de acordo com a Figura 7, onde o número mínimo de comparações entre vetores de movimento é efetuado e, se um vetor de movimento for encontrado dentro de um limite do vetor de movimento do bloco de vídeo atual, a busca está completa. Na etapa 258, a unidade de codificação por predição 32 gera um valor de índice que identifica o bloco de vídeo preditivo selecionado. Os valores de índice para cada um dos blocos de vídeo preditivos podem ser armazenados na memória 34.
[0084] Palavras de código de comprimento variável podem ser utilizadas como valores de índice para cada um dos blocos de vídeo de predição de movimento. Ao bloco de vídeo de predição de movimento que tem a mais alta probabilidade de ser o bloco de vídeo de predição de movimento com a classificação mais elevada para um dado bloco de vídeo atual pode ser atribuída a palavra de código mais curta. Pela atribuição de valores de índice de comprimento variável, pode ser obtida economia de bits. Um decodificador pode ser programado para conhecer a mesma hierarquia e, portanto, pode interpretar apropriadamente a palavra de código recebida para fazer a mesma seleção utilizada como codificador. Em um exemplo, ao bloco de vídeo preditivo de classificação mais elevada em cada um dos conjuntos definidos nas Figuras 9A-9I pode ser atribuído um valor de índice de um bit. Em outros exemplos, apenas um subconjunto (o topo 3 de 5, por exemplo) pode ser considerado em qualquer dado cenário, o que pode reduzir a complexidade de codificação. Desta maneira, se vários blocos de vídeo em um grupo forem codificados utilizando-se apenas um subconjunto dos blocos de vídeo, o número de valores de índice utilizados para codificar o grupo pode ser também reduzido. Neste caso, um codificador de vídeo 50 pode sinalizar um conjunto reduzido de valores de índice para um grupo de blocos de vídeo codificados.
[0085] Os exemplos de criação de uma hierarquia ordenada de blocos de vídeo de predição de movimento baseada na forma de partição aqui descrita podem ser utilizados em conjunto com métodos para gerar informações de movimento para o bloco de vídeo atual. Por exemplo, um codificador pode gerar o bloco de vídeo atual utilizando qualquer uma das técnicas seguintes: herdar um vetor de movimento do bloco de vídeo de predição de movimento identificado, calcular um vetor de movimento pela adição ou subtração de informações de vetor de movimento residuais de um vetor de movimento de um bloco de vídeo de predição de movimento identificado, ou calcular um vetor de movimento utilizando as informações de vetor de movimento de um ou mais blocos de vídeo de predição de movimento de classificação elevada pela seleção de um vetor de movimento mediano ou pela divisão proporcional dos vetores de movimento.
[0086] A Figura 11 é um diagrama de blocos que mostra um exemplo de decodificador de vídeo 60, que decodifica uma sequência de vídeo que é codificada da maneira aqui descrita. As técnicas desta revelação podem ser executadas pelo decodificador de vídeo 60 em alguns exemplos. Em particular, o decodificador de vídeo 60 pode executar uma ou mais das técnicas de determinação de informações de movimento para o bloco de vídeo atual aqui descritas como parte do processo de decodificação.
[0087] O decodificador de vídeo 60 inclui uma unidade de decodificação por entropia 52, que desempenha a função de decodificação correspondente da codificação executada pela unidade de codificação por entropia 46 da Figura 2. Em particular, a unidade de decodificação por entropia 52 pode efetuar decodificação CAVLC ou CABAC ou qualquer outro tipo de decodificação por entropia utilizado pelo codificador de vídeo 50. O decodificador de vídeo 60 inclui também uma unidade de decodificação por predição 54, uma unidade de quantização inversa 56, uma unidade de transformada inversa 58, uma memória 62 e um somador 64. Em particular, à semelhança do codificador de vídeo 50, o decodificador de vídeo 60 inclui uma unidade de decodificação por predição 54 e uma unidade de filtro 57. A unidade de decodificação por predição 54 do decodificador de vídeo 60 pode incluir uma unidade de compensação de movimento 86, que decodifica blocos inter-codificados e inclui possivelmente um ou mais filtros de interpolação para interpolação de subpixels no processo de compensação de movimento. A unidade de decodificação por predição 54 pode suportar uma pluralidade de modos 35, que inclui um ou mais modos que suportam AMVP e/ou um ou mais modos de fusão. A unidade de filtro 57 pode filtrar a saída do somador 64 e pode receber informações de filtro decodificadas por entropia para definir os coeficientes de filtro aplicados na filtragem de loop.
[0088] Ao receber dados de vídeo codificados, a unidade de decodificação por entropia 52 efetua decodificação correspondente à codificação efetuada pela unidade de codificação por entropia 46 (do codificador 50 da Figura 2). No decodificador, a unidade de decodificação por entropia 52 efetua parse no fluxo de bits para determinar LCUs e o particionamento correspondente associado às LCUs. Em alguns exemplos, uma LCU ou as CUs da LCU podem definir os modos de codificação que foram utilizados, e estes modos de codificação podem incluir o modo de fusão bi-preditivo. Por conseguinte, a unidade de decodificação por entropia 52 pode emitir as informações de sintaxe para a unidade de predição que identifica o modo de fusão bi-preditivo.
[0089] A Figura 12 é um exemplo de um fluxograma que mostra uma técnica para decodificar dados de vídeo utilizando o ordenamento hierárquico exemplar das Figuras 9A-9I. Deve-se observar que, embora a Figura 12 seja descrita em conjunto com o codificador de vídeo 60, as etapas descritas na Figura 12 podem ser executadas por outros dispositivos e componentes. Na etapa 350, a unidade de decodificação preditiva 54 obtém um valor de índice para o bloco de vídeo atual. Conforme descrito acima de acordo com a Figura 10, um valor de índice indica um bloco de vídeo preditivo que pode ser utilizado para gerar um vetor de movimento para o bloco de vídeo atual. Na etapa 352, a unidade de decodificação preditiva 54 obtém um tipo de partição para o bloco de vídeo atual. Em um exemplo, o tipo de partição corresponde a um dos tipos de partição descritos nas Figuras 9A-9I. Na etapa 354, a unidade de decodificação preditiva 54 seleciona um de uma pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no tipo de partição. Por exemplo, se o tipo de partição for Nx2N_1, o conjunto de blocos de vídeo preditivos candidatos ordenados pode ser definido como: bloco T, bloco TR, Temp, bloco BL, bloco L. Na etapa 356, a unidade de decodificação preditiva 54 seleciona um bloco de vídeo preditivo do conjunto selecionado da pluralidade de conjuntos definidos de blocos de vídeo preditivos candidatos ordenados com base no valor de índice. Na etapa 358, a unidade de decodificação preditiva 54 gera um vetor de movimento. Por exemplo, a unidade de decodificação preditiva 54 pode gerar um vetor de movimento utilizando qualquer uma das técnicas seguintes: herdar um vetor de movimento do bloco de vídeo de predição de movimento identificado, calcular um vetor de movimento pela adição ou subtração de informações de vetor de movimento residuais de um vetor de movimento de um bloco de vídeo de predição de movimento identificado, ou calcular um vetor de movimento utilizando as informações de vetor de movimento de um ou mais blocos de vídeo de predição de movimento de classificação elevada pela seleção de um vetor de movimento mediano ou pela divisão proporcional dos vetores de movimento.
[0090] No exemplo descrito na Figura 12, o decodificador 60 pode ser programado para conhecer as hierarquias de forma de partição descritas nas Figuras 9A- 9I e, portanto, pode interpretar apropriadamente o valor de índice recebido para fazer a mesma seleção de blocos de vídeo de predição como codificador 50. Em um exemplo, ao bloco de vídeo preditivo de classificação mais elevada em cada um dos conjuntos definidos nas Figuras 9A-9I pode ser atribuído um valor de índice de um bit. Em outros exemplos, apenas um subconjunto (o topo 3 de 5, por exemplo) pode ser considerado em qualquer dado cenário, o que pode reduzir a complexidade de codificação. Para uma partição Nx2N_1, por exemplo, ao conjunto de blocos de vídeo preditivos candidatos ordenados bloco T, bloco TR e Temp podem ser atribuídos os valores de índice seguintes: 1,01 e 00. Desta maneira, se vários blocos de vídeo forem codificados utilizando-se apenas os valores de índice dos blocos de vídeo de topo 3, pode-se obter mais economia de bits. Neste caso, um codificador de vídeo 50 pode sinalizar o número de blocos de vídeo de predição de movimento para um grupo de blocos de vídeo codificados. Isto pode ser conseguido de maneira semelhante à maneira pela qual o conjunto esquerdo de blocos é sinalizado no exemplo descrito de acordo com a Figura 7.
[0091] Deve-se reconhecer que, dependendo do exemplo, determinados atos ou eventos de qualquer uma das técnicas aqui descritas podem ser executados em uma sequência diferente, podem ser adicionados, fundidos ou deixados de fora completamente (nem todos os atos ou eventos descritos são necessários para a prática das técnicas). Além do mais, em determinados exemplos, os atos ou eventos podem ser executados concomitantemente, como, por exemplo, processamento com vários fluxos de execução, processamento com interrupções ou múltiplos processadores, e não sequencialmente.
[0092] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação deles. Se implementadas em software, as funções podem ser armazenadas ou transmitidas através de uma ou mais instruções ou códigos em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Os meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, que correspondem a meios tangíveis, tais como meios de armazenamento de dados ou meios de comunicação que incluem qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, de acordo com um protocolo de comunicação, por exemplo. Desta maneira, os meios legíveis por computador podem corresponder geralmente a (1) meios de armazenamento legíveis por computador tangíveis que são não transitórios ou (2) um meio de comunicação, tal como um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que possam ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta revelação.
[0093] A título de exemplo, e não de limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro armazenamento em disco óptico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser utilizado para armazenar códigos de programa desejados sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disto, qualquer conexão é apropriadamente denominada de meio legível por computador. Por exemplo, se as instruções forem transmitidas de um site da Web, servidor ou outra fonte remota utilizando-se um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e microonda, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou tecnologias sem fio tais como infravermelho, rádio e microonda são incluídos na definição de meio. Deve ficar entendido, contudo, que os meios de armazenamento legíveis por computador e os meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, mas são em vez disso direcionados para meios de armazenamento tangíveis não transitórios. O termo disco (disk e disc), conforme aqui utilizado, inclui disco compacto (CD), disco de laser, disco óptico, disco versátil digital (DVD), disco flexível e disco blu-ray, em que usualmente discos (disks) reproduzem dados magneticamente, enquanto discos (discs) reproduzem dados opticamente com lasers. Combinações deles devem ser também incluídas dentro do alcance dos meios legíveis por computador.
[0094] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis em campo (FPGAs) ou outros circuitos de lógica integrada ou discreta equivalentes. Por conseguinte, o termo “processador” conforme aqui utilizado pode referir-se a qualquer uma das estruturas precedentes ou a qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disto, sob alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de software dedicados ou módulos de hardware configurados para codificar e decodificar, ou incorporados a um codec combinado. Além disto, as técnicas podem ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[0095] As técnicas desta revelação podem ser executadas em uma ampla variedade de dispositivos ou aparelhos, que incluem um dispositivo telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (um conjunto de chips, por exemplo). Diversos componentes, módulos ou unidades são descritos para enfatizar aspectos funcionais de dispositivos configurados para executar as técnicas reveladas, mas não exigem necessariamente a execução por unidades de hardware diferentes. Em vez disso, conforme descrito acima, diversas unidades podem ser combinadas em uma unidade de hardware de codec ou providas por uma coleção de unidades de hardware interoperacionais, que incluem um ou mais processadores descritos acima, em conjunto com software e/ou firmware adequados.
[0096] Foram descritos diversos exemplos. Estes e outros exemplos estão dentro do alcance das reivindicações seguintes.

Claims (15)

1. Método para decodificar dados de vídeo de acordo com um modo de fusão, o método caracterizado pelo fato de que compreende: obter (350) um valor de índice para o bloco de vídeo atual codificado no modo de fusão, o valor de índice identificando, em um subconjunto de blocos de vídeo preditivos candidatos, um bloco de vídeo preditivo selecionado; obter um formato de unidade de predição e índice de unidade de predição para o bloco de vídeo atual, em que o índice de unidade de predição especifica a localização relativa da unidade de predição dentro do bloco de vídeo atual; gerar um conjunto ordenado de blocos de vídeo preditivos candidatos com base nos vizinhos temporais e espaciais ao bloco de vídeo atual, em que a ordem dos blocos de vídeo preditivos candidatos é baseada no formato de unidade de predição e no índice de unidade de predição; limitar o conjunto ordenado de blocos preditivos candidatos a um subconjunto dos blocos de vídeo preditivos candidatos; selecionar um bloco de vídeo preditivo a partir do subconjunto com base no valor de índice; e gerar (358) informação de movimento para o bloco de vídeo atual de acordo com o modo de fusão baseado na informação de movimento do bloco de vídeo preditivo, em que gerar a informação de movimento para o bloco de vídeo atual compreende herdar informação de movimento do bloco de vídeo preditivo.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o subconjunto inclui três blocos preditivos candidatos selecionados a partir de cinco blocos de vídeo possíveis.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o conjunto de blocos de vídeo preditivos candidatos incluem: um bloco de vídeo esquerdo adjacente (L) ao bloco de vídeo atual, um bloco de vídeo superior adjacente (T) ao bloco de vídeo atual, um bloco de vídeo superior direito adjacente (TR) ao bloco de vídeo atual, um bloco de vídeo inferior esquerdo adjacente (BL) ao bloco de vídeo atual, e um bloco de vídeo temporal adjacente ao bloco de vídeo atual (Temp).
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que herdar a informação de movimento inclui herdar um vetor de movimento e um índice de quadro de referência do bloco de vídeo preditivo.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o conjunto inclui: um bloco de vídeo esquerdo superior adjacente ao bloco de vídeo atual (TL), um bloco de vídeo superior adjacente ao bloco de vídeo atual (T), um bloco de vídeo superior direito adjacente ao bloco de vídeo atual (TR), um bloco de vídeo esquerdo adjacente ao bloco de vídeo atual (L), um bloco de vídeo esquerdo inferior adjacente ao bloco de vídeo atual (BL), e um bloco de vídeo temporal adjacente ao bloco de vídeo atual (Temp), em que o bloco de vídeo superior adjacente (T) está localizado na esquerda do bloco de vídeo superior direito adjacente (TR) e em que o bloco de vídeo esquerdo adjacente (L) está localizado na parte superior do bloco de vídeo esquerdo inferior adjacente (BL).
6. Dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, o dispositivo caracterizado pelo fato de que compreende: mecanismos para obter um valor de índice para o bloco de vídeo atual, o valor de índice identificando, em um subconjunto de blocos de vídeo preditivos candidatos, um bloco de vídeo preditivo selecionado; mecanismos para obter um formato de unidade de predição e índice de unidade de predição para o bloco de vídeo atual, em que o índice de unidade de predição especifica a localização relativa da unidade de predição dentro do bloco de vídeo atual; mecanismos para gerar um conjunto ordenado de blocos de vídeo preditivos candidatos com base nos vizinhos temporal e espacial para o bloco de vídeo atual, em que a ordem dos blocos de vídeo preditivos candidatos é baseada no formato de unidade de predição e no índice de unidade de predição; mecanismos configurados para limitar o conjunto ordenado de blocos preditivos candidatos a um subconjunto dos blocos de vídeo preditivos candidatos; mecanismos para selecionar um bloco de vídeo preditivo a partir do subconjunto com base no valor de índice; e mecanismos para gerar informação de movimento para o bloco de vídeo atual de acordo com o modo de fusão baseado na informação de movimento do bloco de vídeo preditivo, em que gerar a informação de movimento para o bloco de vídeo atual compreende herdar informação de movimento do bloco de vídeo preditivo.
7. Método para codificar dados de vídeo de acordo com um modo de fusão, o método caracterizado pelo fato de que compreende: obter (250) um vetor de movimento para um bloco de vídeo atual; obter um formato de unidade de predição e índice de unidade de predição para o bloco de vídeo atual, em que o índice de unidade de predição especifica a localização relativa da unidade de predição dentro do bloco de vídeo atual; gerar um conjunto ordenado de blocos de vídeo preditivos candidatos com base nos vizinhos temporais e espaciais ao bloco de vídeo atual, em que a ordem dos blocos de vídeo preditivos candidatos é baseada no formato de unidade de predição e no índice de unidade de predição; limitar o conjunto ordenado de blocos de vídeo preditivos candidatos a um subconjunto dos blocos de vídeo preditivos candidatos; selecionar um bloco de vídeo preditivo a partir do subconjunto com base no vetor de movimento; e gerar (258) um valor de índice identificando, no subconjunto de blocos de vídeo preditivos candidatos, o bloco de vídeo preditivo selecionado.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o subconjunto inclui três blocos de vídeo preditivos candidatos selecionados a partir de cinco blocos de vídeo possíveis.
9. Método, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que os blocos de vídeo preditivos candidatos incluem: um bloco de vídeo esquerdo adjacente (L) ao bloco de vídeo atual, um bloco de vídeo superior adjacente (T) ao bloco de vídeo atual, um bloco de vídeo superior direito adjacente (TR) ao bloco de vídeo atual, um bloco de vídeo inferior esquerdo adjacente (BL) ao bloco de vídeo atual, e um bloco de vídeo temporal adjacente ao bloco de vídeo atual (Temp).
10. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o conjunto inclui: um bloco de vídeo esquerdo superior adjacente (TL) ao bloco de vídeo atual, um bloco de vídeo superior adjacente (T) ao bloco de vídeo atual, um bloco de vídeo superior direito adjacente (TR) ao bloco de vídeo atual, um bloco de vídeo esquerdo adjacente (L) ao bloco de vídeo atual, um bloco de vídeo esquerdo inferior adjacente (BL) ao bloco de vídeo atual, e um bloco de vídeo temporal adjacente ao bloco de vídeo atual (Temp), em que o bloco de vídeo superior adjacente (T) está localizado na esquerda do bloco de vídeo superior direito adjacente (TR) e em que o bloco de vídeo esquerdo adjacente (L) está localizado na parte superior do bloco de vídeo esquerdo inferior adjacente (BL).
11. Dispositivo para codificar dados de vídeo de acordo com um modo de fusão, o dispositivo caracterizado pelo fato de que compreende: mecanismos para obter um vetor de movimento para um bloco de vídeo atual; mecanismos para obter um formato de unidade de predição e índice de unidade de predição para o bloco de vídeo atual, em que o índice de unidade de predição especifica a localização relativa da unidade de predição dentro do bloco de vídeo atual; mecanismos para gerar um conjunto de blocos de vídeo preditivos candidatos com base nos vizinhos temporal e espacial ao bloco de vídeo atual, em que a ordem dos blocos de vídeo preditivos candidatos é baseada no formato de unidade de predição e no índice de unidade de predição; mecanismos configurados para limitar o conjunto ordenado de blocos de vídeo preditivos candidatos a um subconjunto dos blocos de vídeo preditivos candidatos; mecanismos para selecionar um bloco de vídeo preditivo a partir do subconjunto com base no vetor de movimento; e mecanismos para gerar um valor de índice identificando, no subconjunto de blocos de vídeo preditivos candidatos, o bloco de vídeo preditivo selecionado.
12. Dispositivo, de acordo com a reivindicação 11, caracterizado pelo fato de que o subconjunto inclui três blocos de vídeo preditivos candidatos selecionados a partir de cinco blocos de vídeo possíveis.
13. Dispositivo, de acordo com a reivindicação 11 ou 12, caracterizado pelo fato de que os blocos de vídeo preditivos candidatos incluem: um bloco de vídeo esquerdo adjacente (L) ao bloco de vídeo atual, um bloco de vídeo superior adjacente (T) ao bloco de vídeo atual, um bloco de vídeo superior direito adjacente (TR) ao bloco de vídeo atual, um bloco de vídeo inferior esquerdo adjacente (BL) ao bloco de vídeo atual, e um bloco de vídeo temporal adjacente ao bloco de vídeo atual (Temp).
14. Dispositivo, de acordo com a reivindicação 11, caracterizado pelo fato de que o conjunto inclui: um bloco de vídeo esquerdo superior adjacente (TL) ao bloco de vídeo atual, um bloco de vídeo superior adjacente (T) ao bloco de vídeo atual, um bloco de vídeo superior direito adjacente (TR) ao bloco de vídeo atual, um bloco de vídeo esquerdo adjacente (L) ao bloco de vídeo atual, um bloco de vídeo esquerdo inferior (BL) adjacente ao bloco de vídeo atual, e um bloco de vídeo temporal adjacente ao bloco de vídeo atual (Temp), em que o bloco de vídeo superior adjacente (T) está localizado na esquerda do bloco de vídeo superior direito adjacente (TR) e em que o bloco de vídeo esquerdo adjacente (L) está localizado na parte superior do bloco de vídeo esquerdo inferior adjacente (BL).
15. Memória legível por computador caracterizada pelo fato de que compreende instruções armazenadas na mesma que, quando executadas, fazem com que o processador execute o método tal como definido em qualquer uma reivindicações 1 a 5 ou 7 a 10.
BR112013021612-3A 2011-02-24 2012-02-23 Método e dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, método e dispositivo para codificar dados de vídeo de acordo com um modo de fusão e memória legível por computador BR112013021612B1 (pt)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201161446392P 2011-02-24 2011-02-24
US61/446,392 2011-02-24
US201161447017P 2011-02-26 2011-02-26
US61/447,017 2011-02-26
US201161451493P 2011-03-10 2011-03-10
US61/451,493 2011-03-10
US201161529110P 2011-08-30 2011-08-30
US61/529,110 2011-08-30
US201161531514P 2011-09-06 2011-09-06
US201161531526P 2011-09-06 2011-09-06
US61/531,526 2011-09-06
US61/531,514 2011-09-06
US13/402,719 US10171813B2 (en) 2011-02-24 2012-02-22 Hierarchy of motion prediction video blocks
US13/402,719 2012-02-22
PCT/US2012/026368 WO2012116212A1 (en) 2011-02-24 2012-02-23 Hierarchy of motion prediction video blocks

Publications (2)

Publication Number Publication Date
BR112013021612A2 BR112013021612A2 (pt) 2020-12-01
BR112013021612B1 true BR112013021612B1 (pt) 2022-12-06

Family

ID=46718984

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013021612-3A BR112013021612B1 (pt) 2011-02-24 2012-02-23 Método e dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, método e dispositivo para codificar dados de vídeo de acordo com um modo de fusão e memória legível por computador

Country Status (17)

Country Link
US (2) US10171813B2 (pt)
EP (1) EP2679011B1 (pt)
JP (1) JP2014511618A (pt)
KR (2) KR20160124242A (pt)
CN (1) CN103404143B (pt)
AU (1) AU2012220567B2 (pt)
BR (1) BR112013021612B1 (pt)
CA (1) CA2828217C (pt)
DK (1) DK2679011T3 (pt)
ES (1) ES2912367T3 (pt)
IL (1) IL227925A (pt)
MY (1) MY169658A (pt)
PL (1) PL2679011T3 (pt)
RU (1) RU2562379C2 (pt)
SG (1) SG192739A1 (pt)
SI (1) SI2679011T1 (pt)
WO (1) WO2012116212A1 (pt)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101791078B1 (ko) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
US8755437B2 (en) * 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
US10171813B2 (en) 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks
JP5982734B2 (ja) * 2011-03-11 2016-08-31 ソニー株式会社 画像処理装置および方法
WO2012122927A1 (en) * 2011-03-14 2012-09-20 Mediatek Inc. Method and apparatus for derivation of motion vector candidate and motion vector prediction candidate
EP3139611A1 (en) * 2011-03-14 2017-03-08 HFI Innovation Inc. Method and apparatus for deriving temporal motion vector prediction
KR102232113B1 (ko) * 2011-03-21 2021-03-25 엘지전자 주식회사 움직임 벡터 예측자 선택 방법 및 이를 이용하는 장치
US9247266B2 (en) 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
JP2013005077A (ja) * 2011-06-14 2013-01-07 Sony Corp 画像処理装置および方法
KR20130050406A (ko) * 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
HUE055993T2 (hu) 2011-12-16 2022-01-28 Jvc Kenwood Corp Dinamikus képkódoló készülék, dinamikus képkódoló eljárás, dinamikus képkódoló program, dinamikus képdekódoló készülék, dinamikus képdekódoló eljárás és dinamikus képdekódoló program
JP5900308B2 (ja) * 2011-12-16 2016-04-06 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP5561348B2 (ja) * 2011-12-16 2014-07-30 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
TWI658724B (zh) 2011-12-28 2019-05-01 日商Jvc建伍股份有限公司 動態影像解碼裝置、動態影像解碼方法及動態影像解碼程式
CN104521236B (zh) * 2012-07-27 2017-10-20 寰发股份有限公司 三维视频编码或解码方法
JP2014082639A (ja) * 2012-10-16 2014-05-08 Canon Inc 画像符号化装置およびその方法
US9544566B2 (en) 2012-12-14 2017-01-10 Qualcomm Incorporated Disparity vector derivation
US8976220B2 (en) * 2013-07-05 2015-03-10 Sorenson Communications, Inc. Devices and methods for hosting a video call between a plurality of endpoints
KR101967398B1 (ko) * 2013-07-09 2019-04-09 노키아 테크놀로지스 오와이 모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치
US9479788B2 (en) * 2014-03-17 2016-10-25 Qualcomm Incorporated Systems and methods for low complexity encoding and background detection
WO2017008255A1 (en) * 2015-07-14 2017-01-19 Mediatek Singapore Pte. Ltd. Advanced intra prediction mode signaling in video coding
JP6036976B2 (ja) * 2015-12-08 2016-11-30 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036977B2 (ja) * 2015-12-08 2016-11-30 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036975B2 (ja) * 2015-12-08 2016-11-30 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036974B2 (ja) * 2015-12-08 2016-11-30 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
US10602174B2 (en) 2016-08-04 2020-03-24 Intel Corporation Lossless pixel compression for random video memory access
JP6288209B2 (ja) * 2016-10-24 2018-03-07 株式会社Jvcケンウッド 画像符号化装置
US20180184107A1 (en) * 2016-12-28 2018-06-28 Novatek Microelectronics Corp. Motion estimation method and motion estimation apparatus
CN106878728B (zh) * 2017-01-19 2019-06-07 西安万像电子科技有限公司 图像的压缩方法和装置
EP3399754A1 (en) 2017-05-04 2018-11-07 Thomson Licensing Method and apparatus for most probable mode (mpm) reordering for intra prediction
US10291925B2 (en) * 2017-07-28 2019-05-14 Intel Corporation Techniques for hardware video encoding
JP7210568B2 (ja) 2017-10-13 2023-01-23 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ブロック単位の画像符号化のためのイントラ予測モード概念
US20190116374A1 (en) * 2017-10-17 2019-04-18 Qualcomm Incorporated Coding motion information of video data using coding structure-based candidate list construction
US11146796B2 (en) * 2018-04-06 2021-10-12 Arris Enterprises Llc Reducing motion vector information transmission in bi-directional temporal prediction
WO2020003284A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
WO2020003270A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
KR20210024502A (ko) 2018-06-29 2021-03-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝
CN115134599A (zh) 2018-06-29 2022-09-30 抖音视界有限公司 更新查找表(lut)的条件
WO2020003261A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Selection from multiple luts
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
CN110662072B (zh) * 2018-06-29 2022-04-26 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法、装置及可读存储介质
JP7181395B2 (ja) 2018-07-02 2022-11-30 北京字節跳動網絡技術有限公司 イントラ予測モードを有するルックアップテーブルおよび非隣接ブロックからのイントラモード予測
US11336914B2 (en) 2018-08-16 2022-05-17 Qualcomm Incorporated History-based candidate list with classification
HUE066408T2 (hu) 2018-09-03 2024-07-28 Huawei Tech Co Ltd Eljárás és berendezés az intra predikcióra
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
WO2020086317A1 (en) * 2018-10-23 2020-04-30 Tencent America Llc. Method and apparatus for video coding
CN111107354A (zh) 2018-10-29 2020-05-05 华为技术有限公司 一种视频图像预测方法及装置
US11032574B2 (en) 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
WO2020143741A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Invoke of lut updating
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
US11025913B2 (en) 2019-03-01 2021-06-01 Intel Corporation Encoding video using palette prediction and intra-block copy
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
US11581022B2 (en) * 2019-05-29 2023-02-14 Nokia Technologies Oy Method and apparatus for storage and signaling of compressed point clouds
US10855983B2 (en) 2019-06-13 2020-12-01 Intel Corporation Encoding video using two-stage intra search
CN113079420B (zh) * 2020-01-03 2024-10-18 北京三星通信技术研究有限公司 视频生成方法、装置、电子设备及计算机可读存储介质

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6522693B1 (en) 2000-02-23 2003-02-18 International Business Machines Corporation System and method for reencoding segments of buffer constrained video streams
EP1277365A1 (en) 2000-03-23 2003-01-22 Siemens Mobile Communications S.p.A. Access channel scheduling in a radio communication system
FR2831016A1 (fr) 2001-10-11 2003-04-18 Thomson Licensing Sa Procede et dispositif de decodage de donnees video codees selon la norme mpeg
JP2003299103A (ja) 2002-03-29 2003-10-17 Toshiba Corp 動画像符号化方法と装置及び動画像復号化方法と装置
KR100931750B1 (ko) 2002-04-19 2009-12-14 파나소닉 주식회사 움직임 벡터 계산방법
US20040190615A1 (en) 2002-05-22 2004-09-30 Kiyofumi Abe Moving image encoding method, moving image decoding method, and data recording medium
KR100506864B1 (ko) 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
KR20050041293A (ko) 2003-10-30 2005-05-04 삼성전자주식회사 움직임 예측 장치 및 방법
US8036271B2 (en) 2004-02-24 2011-10-11 Lsi Corporation Method and apparatus for determining a second picture for temporal direct-mode block prediction
US8085846B2 (en) 2004-08-24 2011-12-27 Thomson Licensing Method and apparatus for decoding hybrid intra-inter coded blocks
US8446954B2 (en) 2005-09-27 2013-05-21 Qualcomm Incorporated Mode selection techniques for multimedia coding
KR20080025246A (ko) 2006-09-15 2008-03-20 삼성전자주식회사 비디오 스트림을 gop 단위로 분할하여 기록하는 비디오기록방법 및 이를 적용한 비디오 장치
WO2008082762A1 (en) 2006-12-29 2008-07-10 Motorola, Inc. Method and system for processing encoded video data
KR101383540B1 (ko) 2007-01-03 2014-04-09 삼성전자주식회사 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법
US8335261B2 (en) 2007-01-08 2012-12-18 Qualcomm Incorporated Variable length coding techniques for coded block patterns
US8199812B2 (en) 2007-01-09 2012-06-12 Qualcomm Incorporated Adaptive upsampling for scalable video coding
US20100215101A1 (en) * 2007-04-09 2010-08-26 Yong Joon Jeon Method and an apparatus for processing a video signal
BRPI0809512A2 (pt) 2007-04-12 2016-03-15 Thomson Licensing método e aparelho para mesclagem dependente de contexto para modos salto-direto para codificação e decodificação de vídeo
GB2461464B (en) 2007-04-27 2011-11-16 Lg Electronics Inc Transmitting a downlink control channel in a mobile communication system and mapping the control channel to a physical resource using a block interleaver
JP4325708B2 (ja) 2007-07-05 2009-09-02 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
US8605786B2 (en) * 2007-09-04 2013-12-10 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
EP2215844A2 (en) 2007-10-15 2010-08-11 Nokia Corporation Motion skip and single-loop encoding for multi-view video content
US8908765B2 (en) 2007-11-15 2014-12-09 General Instrument Corporation Method and apparatus for performing motion estimation
US8660175B2 (en) 2007-12-10 2014-02-25 Qualcomm Incorporated Selective display of interpolated or extrapolated video units
GB2457546B (en) 2008-02-25 2012-09-19 A1 Envirosciences Ltd Laboratory containment system
EP2266318B1 (en) 2008-03-19 2020-04-22 Nokia Technologies Oy Combined motion vector and reference index prediction for video coding
JP4990927B2 (ja) 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
WO2010021700A1 (en) 2008-08-19 2010-02-25 Thomson Licensing A propagation map
US8634456B2 (en) 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
EP3678374A1 (fr) 2009-07-03 2020-07-08 Orange Prédiction d'un vecteur mouvement d'une partition d'image courante de forme géometrique ou de taille différente de celle d'au moins une partition d'image de référence voisine, codage et decodage utilisant une telle prediction
KR20110008653A (ko) 2009-07-20 2011-01-27 삼성전자주식회사 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
US9060176B2 (en) 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
KR20110050283A (ko) 2009-11-06 2011-05-13 삼성전자주식회사 다중 참조 영상을 이용한 고속 움직임 추정 방법
WO2011125211A1 (ja) 2010-04-08 2011-10-13 株式会社 東芝 画像符号化方法及び画像復号化方法
KR102219985B1 (ko) * 2010-05-04 2021-02-25 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
KR101484281B1 (ko) 2010-07-09 2015-01-21 삼성전자주식회사 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치
PL2924995T3 (pl) 2010-07-09 2018-11-30 Samsung Electronics Co., Ltd Sposób dekodowania wideo wykorzystujący łączenie bloków
EP3907999B1 (en) * 2010-09-02 2023-11-22 LG Electronics, Inc. Inter prediction
WO2012097376A1 (en) * 2011-01-14 2012-07-19 General Instrument Corporation Spatial block merge mode
US10171813B2 (en) 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks

Also Published As

Publication number Publication date
PL2679011T3 (pl) 2023-06-12
AU2012220567A1 (en) 2013-09-12
US20120219064A1 (en) 2012-08-30
CN103404143B (zh) 2017-02-15
AU2012220567B2 (en) 2015-12-24
CN103404143A (zh) 2013-11-20
WO2012116212A1 (en) 2012-08-30
KR20130129445A (ko) 2013-11-28
RU2562379C2 (ru) 2015-09-10
JP2014511618A (ja) 2014-05-15
BR112013021612A2 (pt) 2020-12-01
CA2828217A1 (en) 2012-08-30
KR101918318B1 (ko) 2018-11-13
CA2828217C (en) 2016-09-20
RU2013143126A (ru) 2015-03-27
IL227925A0 (en) 2013-09-30
EP2679011B1 (en) 2022-03-23
SI2679011T1 (sl) 2022-05-31
EP2679011A1 (en) 2014-01-01
SG192739A1 (en) 2013-09-30
MY169658A (en) 2019-04-26
IL227925A (en) 2016-04-21
US10171813B2 (en) 2019-01-01
KR20160124242A (ko) 2016-10-26
US10659791B2 (en) 2020-05-19
ES2912367T3 (es) 2022-05-25
DK2679011T3 (da) 2022-05-09
US20190166371A1 (en) 2019-05-30

Similar Documents

Publication Publication Date Title
US10652571B2 (en) Advanced motion vector prediction speedups for video coding
US12088819B2 (en) Method and apparatus for predicting motion information of picture block, encoder, and decoder
US10659791B2 (en) Hierarchy of motion prediction video blocks
US9432685B2 (en) Scalable implementation for parallel motion estimation regions
JP5778299B2 (ja) 動きベクトル予測
US9451277B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
US9736489B2 (en) Motion vector determination for video coding
JP5893729B2 (ja) 一体化されたマージモードおよび適応動きベクトル予測モード候補選択
US9729873B2 (en) Video coding using parallel motion estimation
BR112013032141B1 (pt) Método e aparelho para codificar dados de vídeo e memória legível por comutador
CN110868587B (zh) 一种视频图像预测方法及装置
BR112014010326B1 (pt) Codificação de vídeo intramodo
BR112013024187B1 (pt) Modo de fusão bi-preditivo com base em vizinhos uni-preditivos em codificação de vídeo
US11936861B2 (en) Encoding method and apparatus, and decoding method and apparatus
WO2019052330A1 (zh) 一种运动信息的编解码方法和装置

Legal Events

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

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04N 7/26 , H04N 7/36

Ipc: H04N 19/105 (2014.01), H04N 19/157 (2014.01), H04N

B350 Update of information on the portal [chapter 15.35 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 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 23/02/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.