BR122017024393B1 - Método e aparelho para codificar ou decodificar uma imagem com predição de informação de movimento inter-camada de acordo com esquema de compressão de informação de movimento - Google Patents

Método e aparelho para codificar ou decodificar uma imagem com predição de informação de movimento inter-camada de acordo com esquema de compressão de informação de movimento Download PDF

Info

Publication number
BR122017024393B1
BR122017024393B1 BR122017024393-4A BR122017024393A BR122017024393B1 BR 122017024393 B1 BR122017024393 B1 BR 122017024393B1 BR 122017024393 A BR122017024393 A BR 122017024393A BR 122017024393 B1 BR122017024393 B1 BR 122017024393B1
Authority
BR
Brazil
Prior art keywords
motion information
reference layer
layer
motion
image
Prior art date
Application number
BR122017024393-4A
Other languages
English (en)
Inventor
Christophe Gisquet
Patrice Onno
Guillaume Laroche
Edouard François
Original Assignee
Canon Kabushiki Kaisha
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 Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Publication of BR122017024393B1 publication Critical patent/BR122017024393B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/615Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding using motion compensated temporal filtering [MCTF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A invenção se refere a um método, dispositivo e programa de computador para predição de vetor de movimento em codificador e decodificador de vídeo escalonável. Refere-se ao processo para determinar preditor de informação de movimento na camada de aumento de um esquema de codificação escalonável também conhecido como processo de derivação de movimento. Ele compreende uma correção da posição na camada de referência usada para escolher a informação de movimento mais relevante disponível devido ao esquema de compressão. Consequentemente, predição de informação de movimento é aperfeiçoada.

Description

CAMPO DA INVENÇÃO
[0001] A invenção refere-se geralmente ao campo da codificação e decodifica- ção de vídeo escalonável, em particular, à codificação e decodificação de vídeo es- calonável que estenderia o padrão de Codificação de Vídeo de Alta Eficiência (HEVC). Mais particularmente, a invenção refere-se a um método, dispositivo ou programa de computador para a predição do vetor de movimento no codificador e decodificador de vídeo escalonável.
FUNDAMENTOS DA INVENÇÃO
[0002] A codificação de vídeo é uma forma de transformar uma série de imagens de vídeo em um fluxo de bits digitalizado compacto, de modo que as imagens de vídeo possam ser transmitidas ou armazenadas. Um dispositivo de codificação é usado para codificar as imagens de vídeo, com um dispositivo de decodificação associado disponível para reconstruir o fluxo de bits para exibição e visualização. Um objetivo geral é formar o fluxo de bits de modo a ter um tamanho menor do que a informação de vídeo original. Isso reduz vantajosamente a capacidade exigida de uma rede de transferência, ou dispositivo de armazenamento, para transmitir ou armazenar o código de fluxo de bits.
[0003] Abordagens padronizadas comuns foram adotadas para o formato e método do processo de codificação, especialmente com relação à parte de decodifica- ção. A grande maioria dos padrões de vídeo antigos divide as imagens de vídeo em seções menores (chamadas de macroblocos ou blocos). No novo padrão de compressão de vídeo de Codificação de Vídeo de Alta Eficiência (HEVC) sendo finalizado, os macroblocos são substituídos pelas chamadas Grandes Unidades de Codificação (LCU) (também chamadas de Blocos de Árvore de Codificação (CTB)) e são particionadas e ajustadas em blocos agora chamados de unidades de codificação (CU), de acordo com as características do segmento de imagem original em questão. Isso permite uma codificação mais detalhada de áreas da imagem de vídeo que contêm relativamente mais informação e menos esforço de codificação para aquelas áreas com menos características. Nota-se que uma área de imagem também é co-nhecida sob as seguintes diferentes terminologias na literatura de compressão de vídeo: bloco de pixels, bloco de pixels, bloco, Unidade de Codificação (CU) e macro- bloco.
[0004] A extensão escalonável de HEVC agora está sendo definida. Nessa ex-tensão, as imagens são consideradas como constituídas de uma pluralidade de ca-madas hierárquicas. As camadas hierárquicas incluem uma camada base, equiva-lente a um conjunto de versões de imagens de baixa qualidade (ou quadros) da se-quência de vídeo original, e uma ou mais camadas de aumento (também conhecidas como camadas de refinamento).
[0005] As imagens de vídeo foram processadas originalmente pela codificação de cada macrobloco individualmente, de modo a remontar a codificação digital de imagens ou figuras estacionárias. Os modelos de codificação posteriores permitem a predição dos recursos em um quadro, ou de macroblocos vizinhos (predição espacial ou INTRA), ou pela associação com um macrobloco similar em um quadro vizinho (predição temporal). Isso permite o uso de informação codificada já disponível, redu-zindo assim a quantidade de codificação da taxa de bits necessária. As diferenças entre o bloco original para codificar e o bloco usado para predição são capturadas em um conjunto residual de valores. O bloco original é então codificado na forma de um identificador do bloco usado para predição e um residual. São possíveis muitos diferentes tipos de predições. A codificação eficaz escolhe o melhor modo de predi-ção que forneça a melhor qualidade para o bloco codificar mediante a decodificação, levando em consideração o tamanho de fluxo de bits induzido por cada modo de predição para representar o dito bloco no fluxo de bits. Uma compensação entre a qualidade de imagem decodificada e a redução na taxa de bits necessária, também conhecida como compensação da taxa/distorção, é o objetivo geral.
[0006] No caso de predição temporal, vários tipos de predição são possíveis e podem ser reunidos sob dois tipos principais: predição monodirecional e predição bidirecional. No caso da predição monodirecional, o bloco a predizer está associado a um preditor. A localização do preditor é codificada como uma informação de mo-vimento. Essa informação de movimento é constituída por um índice do quadro de referência que contém o preditor, chamado ref_idx no padrão, e um vetor definido por um deslocamento vertical e um deslocamento horizontal que fornecem a localização do bloco preditor no dito quadro. No caso de predição bidirecional, o bloco a codificar está associado a dois preditores levados a dois quadros de referência diferentes. Como uma consequência, a informação de movimento compreende dois índices de quadros de referência e dois vetores.
[0007] A própria informação de movimento pode ser codificada de uma forma preditiva. A informação de movimento obtida para a unidade de codificação vizinha no mesmo quadro pode ser usada como preditores de informação de movimento espacial. A informação de movimento obtida a partir da unidade de codificação co- localizada em outros quadros pode ser usada como preditor de informação de mo-vimento temporal. A informação de movimento a ser codificada para o bloco a codifi-car é então codificada com um índice no preditor de informação de movimento usado e a informação residual representa a diferença entre o preditor de informação de movimento escolhido e a informação de movimento a ser codificada.
[0008] A predição de informação de movimento a partir da informação de movimento correspondente às imagens anteriores exige que o codificador e o decodifica- dor armazenem o campo de movimento das imagens previamente codificadas. Esse campo de movimento pode representar uma quantidade enorme de dados para ar-mazenar para os vídeos que mostram grande resolução como vídeos 4k2k ou 8k4k. De modo a limitar as exigências de armazenamento de codecs HEVC, o padrão HEVC adotou uma estratégia que consiste no uso de campos de movimento com-primidos para a predição de informação de movimento, em vez do campo de movi-mento completo.
[0009] O armazenamento de um campo de movimento é exigido somente quan- do a informação de movimento de imagens anteriores é usada. No HEVC, o uso dos preditores de informação de movimento temporal pode ser desativado. Neste caso, uma maior redução das exigências de armazenamento do codec HEVC pode ser obtida através da prevenção de qualquer armazenamento de informação de movimento.
[0010] Uma das ideias principais em um codec escalonável é reutilizar a informação de uma Camada de Referência (RL) codificada, usando um dado codec (por exemplo, HEVC), de modo a codificar a informação da Camada de Aumento.
[0011] Seria desejável usar a informação de movimento determinada na camada de referência para a codificação preditiva da informação de movimento na camada de aumento. Em particular, se o uso dos preditores de informação de movimento temporal está desativado na camada de referência, pode acontecer de nenhuma informação de movimento estar disponível para ser usada na predição de informação de movimento na camada de aumento.
SUMÁRIO DA INVENÇÃO
[0012] A presente invenção foi concebida para abordar uma ou mais questões anteriores. Trata-se de um processo que determina o preditor de informação de mo-vimento na camada de aumento de um esquema de codificação escalonável também conhecido como processo de derivação de movimento. Compreende uma correção da posição na camada de referência usada para escolher a informação de movimento mais relevante disponível devido ao esquema de compressão.
[0013] De acordo com um primeiro aspecto da invenção, é fornecido um método de codificação de uma imagem de acordo com um formato de codificação escaloná- vel, sendo que o dito formato de codificação compreende pelo menos uma camada de referência e uma camada de aumento, sendo que pelo menos uma parte da imagem é codificada de forma preditiva com base na informação de movimento, sendo que a dita própria informação de movimento é codificada de forma preditiva com base em um conjunto de preditores de informação de movimento, onde o método compreende pelo menos uma área de imagem da camada de aumento determinando um conjunto de preditores de informação de movimento com base na informação de movimento da outra parte de imagens pertencentes à camada de referência; deter-minar uma posição co-localizada na camada de referência da área de imagem para codificar na camada de aumento de modo a selecionar a informação de movimento associada à dita posição que será parte do dito conjunto de preditores de informação de movimento, e corrigir pelo menos uma coordenada X da dita posição co- localizada para um novo valor X’ dado por X' = [((X + 4)/16)J * 16, onde [((X + 4)/ 16)] é um truncamento de ((X + 4)/16) para um valor inteiro.
[0014] De acordo com um aspecto adicional da invenção, é fornecido um método para decodificar uma imagem de acordo com um formato de codificação escaloná- vel, o dito formato de codificação compreendendo pelo menos uma camada de refe-rência e uma camada de aumento, pelo menos parte da imagem sendo codificada de forma preditiva com base na informação de movimento, a dita própria informação de movimento sendo codificada de forma preditiva com base em pelo menos uma área de imagem da camada de aumento determinando um conjunto de preditores de informação de movimento com base na informação de movimento de outra parte de imagens pertencentes à camada de referência; determinar uma posição co- localizada na camada de referência da área da imagem para codificar na camada de aumento de modo a selecionar a informação de movimento associada à dita posição para ser parte do dito conjunto de preditores de informação de movimento e corrigir pelo menos uma coordenada X da dita posição co-localizada para um novo valor X’ dado por X' = [((X + 4)/16)] * 16, onde [((X + 4)/16)] é um truncamento de ((X + 4)/16) para um valor inteiro.
[0015] De acordo com outro aspecto da invenção, é fornecido um dispositivo para codificar uma imagem de acordo com um formato de codificação escalonável, onde o dito formato de codificação compreende pelo menos uma camada de referência e uma camada de aumento, pelo menos parte da imagem é codificada de forma preditiva com base na informação de movimento, a dita própria informação de mo-vimento pode ser codificada de forma preditiva com base em um conjunto de predi- tores de informação de movimento, onde o dispositivo compreende para pelo menos uma área de imagem da camada de aumento, um módulo de determinação de predi- tor para determinar um conjunto de preditores de informação de movimento com base na informação de movimento de outra parte das imagens pertencentes à camada de referência; um módulo de determinação de posição para determinar uma posição co-localizada na camada de referência da área de imagem para codificar na camada de aumento, de modo a selecionar a informação de movimento associada à dita posição que será parte do dito conjunto de preditores de informação de movimento e um módulo de correção de posição para corrigir pelo menos uma coordenada X da dita posição co-localizada para um novo valor X’ dado por X' = [((X + 4}/16)J * 16, onde [((X + 4)/16)J é um truncamento de ((X + 4)/16) para um valor inteiro.
[0016] De acordo com outro aspecto da invenção, é fornecido um dispositivo para decodificar uma imagem de acordo com um formato de codificação escalonável, onde o dito formato de codificação compreende pelo menos uma camada de refe-rência e uma camada de aumento, pelo menos parte da imagem é codificada de forma preditiva com base na informação de movimento, a dita própria informação de movimento pode ser codificada de forma preditiva com base em um conjunto de preditores de informação de movimento, onde o dispositivo compreende pelo menos uma área de imagem da camada de aumento, um módulo de determinação de predi- tor para determinar um conjunto de preditores de informação de movimento com base na informação de movimento de outra parte das imagens pertencentes à camada de referência; um módulo de determinação de posição para determinar uma posição co-localizada na camada de referência da área de imagem para codificar na camada de aumento, de modo a selecionar a informação de movimento associada à dita posição que será parte do dito conjunto de preditores de informação de movimento e um módulo de correção de posição para corrigir pelo menos uma coordenada X da dita posição co-localizada para um novo valor X’ dado por X' = [((X + 4}/16)J * 16, onde [((X + 4)/16)J é um truncamento de ((X + 4)/16) para um valor inteiro.
[0017] De acordo com outro aspecto da invenção, é fornecido um produto de programa de computador para um aparelho programável, o produto de programa de computador compreende uma sequência de instruções para implementar um método de acordo com a invenção, quando carregado e executado pelo aparelho programá- vel.
[0018] De acordo com outro aspecto da invenção, é fornecido um meio de arma-zenamento legível por computador armazenando instruções de um programa de computador para implementar um método de acordo com a invenção.
[0019] Pelo menos partes dos métodos de acordo com a invenção podem ser implementadas por computador. Consequentemente, a presente invenção pode as-sumir a forma de uma modalidade inteiramente de hardware, uma modalidade de software (incluindo suporte lógico inalterável, software residente, microcódigo, etc.) ou uma modalidade combinando aspectos de software e de hardware que podem ser geralmente ditos aqui como um “circuito”, “módulo” ou “sistema”. Ademais, a presente invenção pode assumir a forma de um produto de programa de computador incorporado em qualquer meio tangível de expressão tendo o código de programa utilizável por computador no meio.
[0020] Como a presente invenção pode ser implementada em software, a presente invenção pode ser incorporada como código legível por computador para fornecer um aparelho programável em qualquer meio portador adequado. Um meio portador tangível pode compreender um meio de armazenamento tal como um disquete, um CD-ROM, uma unidade de disco rígido, um dispositivo de fita magnética ou um dispositivo de memória em estado sólido e similares. Um meio portador transiente pode incluir um sinal tal como um sinal elétrico, um sinal eletrônico, um sinal óptico, um sinal acústico, sinal magnético ou um sinal eletromagnético, por exemplo, um sinal de micro-ondas ou RF.
BREVE DESCRIÇÃO DOS DESENHOS
[0021] As modalidades da invenção serão descritas agora somente a título de exemplo, e com relação aos seguintes desenhos, nos quais:
[0022] A Figura 1 ilustra um diagrama de blocos de um codificador de vídeo es- calonável clássico.
[0023] A Figura 2 ilustra as posições espaciais e temporais para preditores de informação de movimento em uma modalidade da invenção.
[0024] A Figura 3 ilustra a predição de informação de movimento na camada de aumento usando a informação de movimento da camada de referência em uma mo-dalidade da invenção.
[0025] A Figura 4 ilustra o fluxograma para o processo de decodificação em uma modalidade da invenção.
[0026] A Figura 5 ilustra a granularidade da informação de movimento em uma modalidade da invenção.
[0027] A Figura 6 ilustra esquematicamente os princípios da abordagem Textu- reRL em uma modalidade da invenção.
[0028] A Figura 7 ilustra o processo de derivação de preditor de informação de movimento adaptado no contexto da abordagem TextureRL, tanto no modo AMVP quanto no modo Merge na camada de aumento em uma modalidade da invenção.
[0029] A Figura 8 ilustra o processo adaptado no contexto da abordagem de índice de quadro de referência em uma modalidade da invenção.
[0030] A Figura 9 é o fluxograma do processo de derivação de informação de movimento nos modos Merge em uma modalidade da invenção.
[0031] A Figura 10 apresenta um diagrama de blocos de um decodificador esca- lonável em uma modalidade da invenção.
[0032] A Figura 11 é um diagrama de blocos esquemático de um dispositivo de computação para a implementação de uma ou mais modalidades da invenção.
[0033] A Figura 12 mostra a derivação de conjunto de preditores de informação de movimento AMVP em uma modalidade da invenção.
[0034] A Figura 13 ilustra os detalhes de uma área de memória em uma modalidade da invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
[0035] A Figura 1 ilustra um diagrama de blocos de um codificador de vídeo es- calonável clássico, que pode compreender um número de subpartes ou estágios e que é representativo de uma extensão escalonável de HEVC. São ilustradas aqui duas subpartes ou estágios A10 e B10 que produzem os dados correspondentes a uma camada de base 1.13 e os dados correspondentes a uma camada de aumento 1.14. Cada uma das subpartes A10 e B10 segue os princípios de um codificador de vídeo padrão, com as etapas de transformação, quantização e codificação por en-tropia aplicadas em dois caminhos separados, cada um correspondente a cada ca-mada.
[0036] O primeiro estágio B10 visa codificar a camada de base compatível com HEVC ou H.264/AVC do fluxo escalonável de saída. A entrada para esse codificador não escalonável consiste na sequência original de imagens de quadro obtidas atra-vés da aplicação de uma redução de resolução 1.17 para imagens 1.1. Esse codifi-cador executa sucessivamente as seguintes etapas para codificar um fluxo de bits de vídeo padrão. Um quadro ou imagem a ser codificada (comprimida) é dividida em blocos de pixels na etapa 1.2, chamada de unidade de codificação (CU) no padrão HEVC. Cada bloco primeiro passa por a uma operação de estimativa de movimento 1.3, que compreende uma busca, dentre as imagens de referência armazenadas em um armazenador temporário de memória dedicada 1.4, para os blocos de referência que forneceriam uma boa predição do bloco. Essa etapa de estimativa de movimento fornece um ou mais índices de imagem de referência que contêm os blocos de referência disponíveis, bem como os vetores de movimento correspondentes. Uma etapa de compensação de movimento 1.5 então aplica os vetores de movimento es-timados nos blocos de referência encontrados para obter um bloco residual temporal que é a diferença entre o bloco de predição compensado de movimento e o bloco original para predição. Além disso, uma etapa de predição Intra 1.6 determina o modo de predição espacial que forneceria o melhor desempenho para predizer o bloco atual. Novamente, um bloco residual espacial é computado, mas aqui como a dife-rença entre o preditor espacial e o bloco original para predição.
[0037] Depois disso, um mecanismo de seleção de modo de codificação 1.7 escolhe o modo de codificação, dentre as predições espaciais e temporais, que forneça a melhor compensação de distorção de taxa na codificação do bloco atual. De-pendendo do modo de predição selecionado, o bloco de predição residual então passa por uma transformação (DCT) e uma quantização 1.8. A codificação por en-tropia 1.10 dos coeficientes QTC assim quantizados (e dados de movimento MD as-sociados) é executada. Os dados de textura comprimidos 1.13 associados ao bloco atual codificado 1.2 são enviados para a saída.
[0038] De modo a aprimorar mais a eficiência da codificação, a informação de movimento associada aos blocos inter, que estão executando uma etapa de com-pensação de movimento, é codificada de forma preditiva usando informação de mo-vimento de blocos vizinhos. Os blocos vizinhos, nesse caso, compreendem espaci-almente e opcionalmente, blocos temporalmente vizinhos. Como uma consequência, se os blocos temporalmente vizinhos são usados, a informação de movimento de imagens previamente codificadas precisa ser armazenada para permitir uma predi-ção. Na versão atual do padrão, essa informação é armazenada em uma forma comprimida pelo codificador e pelo decodificador para limitar o uso de memória do processo de codificação e decodificação. No entanto, como mencionado anterior-mente, quando o preditor temporal não é usado na predição de informação de mo-vimento, o armazenamento do campo de movimento de imagens anteriores não é necessário.
[0039] O bloco atual é então reconstruído por quantização inversa (também chamado escalonamento) e pela transformada inversa 1.11. Essa etapa é seguida, se necessário, por uma soma entre o residual transformado inverso e o bloco de predição do bloco atual, de modo a formar o bloco reconstruído. Os blocos recons-truídos são adicionados ao armazenador temporário, de modo a formar o quadro reconstruído. Então esse quadro reconstruído é pós-filtrado em 1.12. O quadro re-construído após essa pós-filtragem é armazenado em um armazenador temporário de memória 1.4 chamado de DPB (Armazenador Temporário de Imagem Decodificada), de modo que ele esteja disponível para uso como uma imagem de referência para predizer quaisquer imagens subsequentes a serem codificadas.
[0040] Finalmente, uma última etapa de codificação por entropia fornece o modo de codificação e, no caso de um bloco inter, os dados de movimento, bem como os coeficientes DCT quantizados previamente calculados. Esse codificador por entropia codifica cada um desses pedaços de dados em sua forma binária e encapsula o blo-co assim codificado em um recipiente chamado de unidade NAL (Camada Abstrata de Rede). A unidade NAL contém todas as unidades de codificação codificadas a partir de uma dada fatia. Um fluxo de bits HEVC codificado consiste em uma série de unidades NAL.
[0041] Em seguida, o segundo estágio A10 ilustra a codificação de uma camada de aumento usando a camada base como a camada de referência. Aqui, esta camada de aumento traz um refinamento da resolução espacial para a camada base su- peramostrada. Como ilustrado na Figura 1, o esquema de codificação desta camada de aumento é similar ao da camada base, exceto que para cada unidade de codifi-cação de uma imagem atual a partir do fluxo 1.10 sendo comprimido, modos adicio-nais baseados na predição inter camadas são considerados. As seguintes modifica-ções são incluídas tipicamente.
[0042] Um modo adicional chamado de IntraBL 1.90, que consiste na predição de um bloco da camada de aumento usando o bloco co-localizado superamostrado da camada de referência, é adicionado à lista de modos considerados para um bloco de camada de aumento.
[0043] A predição de informação de movimento usada nos modos INTER pode ser modificada para levar em consideração a informação de movimento a partir de uma camada de referência. Em adição, a codificação por entropia específica da in-formação de movimento pode ser aplicada durante a etapa de codificação por entro-pia 1.20.
[0044] Para essas novas ferramentas, um módulo intercamadas intermediário 1.18 pode fornecer a informação (informação de movimento, amostras), possivelmente superamostradas de acordo com a alteração de resolução espacial, a partir da camada de referência para os diferentes módulos da codificação da camada de aumento, tais como o módulo de estimativa de movimento 1.23, o modo IntraBL 1.90 ou o módulo de predição intra 1.26. Em particular, na abordagem do quadro de refe-rência, o módulo 1.18 superamostras tanto os dados de amostra quanto os dados de movimento do quadro resultante no DPB 1.4 para combinar as dimensões da cama-da de aumento, e inserirá os dados resultantes (imagem e seu movimento) no DPB 1.24, que, por sua vez, afeta as operações de 1.25 e 1.23.
[0045] A Figura 10 apresenta um diagrama de blocos de um decodificador esca- lonável que seria aplicado em um fluxo de bits escalonável feito de duas camadas de escalabilidade, por exemplo, compreendendo uma camada base e uma camada de aumento. Este processo de decodificação é, portanto, o processamento recíproco do processo de codificação escalonável da Figura 1. O fluxo escalonável sendo de-codificado 10.10 é feito de uma camada base e uma camada de aumento espacial no topo da camada base, que são demultiplexados na etapa 10.20 em suas respectivas camadas.
[0046] O primeiro estágio da Figura 10 refere-se ao processo de decodificação da camada base B12. Esse processo de decodificação é iniciado pela decodificação por entropia 10.30 de cada unidade de codificação ou bloco de cada imagem codificada na camada base. Essa decodificação por entropia 10.30 fornece o modo de codificação, a informação de movimento (índices de imagens de referência e vetores de movimento dos blocos INTER codificados), a direção de predição para a predição intra e dados residuais. Esses dados residuais consistem de coeficientes DCT trans-formados e quantizados. Em seguida, esses coeficientes DCT quantizados passam por operações de quantização inversa e de transformada inversa 10.31. Dados de compensação de movimento 10.32 ou de predição intra 10.33 podem ser adiciona-dos a esse residual através da operação 10.34.
[0047] A etapa de filtro de desblocagem 10.35 é então aplicada. A imagem assim reconstruída é então armazenada no armazenador temporário de quadros 10.40.
[0048] Em seguida, a informação de movimento decodificada para os blocos INTER, e os blocos reconstruídos são armazenados em um armazenador temporário de quadros no primeiro dos decodificadores escalonáveis da Figura 10 (B12). Tais quadros contêm os dados que podem ser usados como dados de referência para predizer uma camada de escalabilidade superior.
[0049] Em seguida, o segundo estágio da Figura 10 executa a decodificação de uma camada de aumento espacial A12 sobre a camada base decodificada pelo primeiro estágio. Essa decodificação da camada de aumento espacial envolve a deco- dificação por entropia da segunda camada, que fornece os modos de codificação, a informação de movimento e a informação de predição intra, bem como a informação residual transformada e quantizada de blocos da segunda camada.
[0050] A etapa seguinte consiste na predição de blocos na imagem de aumento. A escolha 10.51 entre diferentes tipos de predição de bloco (INTRA, INTER ou no caso da abordagem TextureRL, intercamadas) depende do modo de predição obtido a partir da etapa de decodificação por entropia 10.50.
[0051] No que diz respeito aos blocos INTRA, seu tratamento depende do tipo de unidade de codificação INTRA. No caso do bloco INTRA predito intercamadas (modo de codificação IntraBL) 10.57, se os dados residuais foram codificados para o bloco, o resultado da decodificação por entropia 10.50 passa por quantização inversa e transformada inversa 10.52, e então, é adicionado pela operação 10.53 ao bloco co-localizado do bloco atual na imagem base, em sua versão decodificada, pós- filtrada e superamostrada (em caso de escalabilidade espacial). No caso de um bloco INTRA, tal bloco é totalmente reconstruído, através da quantização inversa, trans-formada inversa para obter os dados residuais no domínio espacial, e então a predi-ção INTRA 10.54 obtém o bloco totalmente reconstruído.
[0052] No que diz respeito aos blocos INTER, suas reconstruções envolvem suas compensações de movimento 10.55 computadas a partir da memória de quadro 10.60, decodificação de dados residuais e então, a adição de sua informação resi-dual decodificada ao seu bloco preditor temporal. Neste processo de decodificação de bloco INTER, a informação de movimento associada ao bloco considerado pode ser decodificada de uma forma preditiva, como um refinamento da informação de movimento do bloco co-localizado na imagem base. Este aspecto será detalhado abaixo.
[0053] Como na camada base, a etapa de filtro de desblocagem 10.56 pode ser aplicada à saída de imagens a partir de 10.53, e armazenada na memória de quadro 10.60 antes de retornar pelos decodificados como quadros completamente decodifi-cados 10.70. Nota-se que em uma modalidade da invenção, a compensação de mo-vimento 10.55 na verdade usa dados a partir do armazenador temporário de Imagem de Camada de Aumento 10.60 e do armazenador temporário de Imagem de Camada Base 10.40. Junto com os dados de amostragem, o módulo 10.80 pode estar en- carregado de fornecer tais dados a partir da camada de referência através de sua superamostragem.
[0054] Duas abordagens para predição de imagem podem ser consideradas. Mais particularmente, a predição de imagem compreende a informação de predição de movimento. Em ambas as abordagens, a predição de informação de movimento é impactada, mas de formas diferentes. As duas abordagens da predição de imagem são descritas abaixo. Uma característica dessas abordagens é permitir o uso da in-formação de movimento da camada de referência para a predição da informação de movimento na camada de aumento. Esse recurso será descrito em mais detalhes com relação à Figura 3, e afeta o modo como a memória de quadro 1.4 na Figura 1 da camada de referência é acessada.
[0055] Então, o caso da predição de informação de movimento, que é o ponto- chave da presente invenção, é explicado em detalhes para ambas as abordagens.
[0056] A primeira abordagem é geralmente chamada de TextureRL, visto que o uso do modo IntraBL é permitido. Esta abordagem usa uma sintaxe de nível baixo no nível de bloco para sinalizar o uso do modo IntraBL. Esta abordagem é às vezes chamada por alguns especialistas de “abordagem IntraBL”.
[0057] A segunda abordagem chamada de inserção de quadro de referência usa principalmente alterações de alto nível. Em particular, nenhuma alteração de sintaxe é feita no nível de bloco. A principal característica da abordagem do índice de quadro de referência é introduzir imagens (possivelmente aumentadas quando a resolução é diferente) da camada de referência, chamada de imagens ILR (esperando por imagens de Referência Intercamadas), para o armazenador temporário de imagens decodificadas da camada de aumento. Estas imagens são então inseridas no fim das listas de imagens de referência específicas (L0 e L1) usadas como imagens de referência no DPB (Armazenador Temporário de Imagem Decodificada). A inserção depende do tipo de fatia atual da camada de aumento. Em uma fatia P, a imagem ILR é inserida no final da lista L0. Em uma fatia B, a imagem ILR é inserida no fim de ambas as listas L0 e L1. Esta abordagem é às vezes chamada por alguns especia-listas de “abordagem ref_idx”. Com esta abordagem, a informação de movimento de um dado bloco pode ser codificada de forma preditiva usando um preditor de infor-mação de movimento temporal de camada de referência co-localizado na camada de referência.
[0058] Vale à pena notar que a IntraBL na abordagem TextureRL e o uso do quadro de referência inserido na abordagem de índice de quadro de referência são duas formas de usar a informação de camada base para predizer a camada de aumento. Na descrição da presente invenção e por uma questão de simplicidade, considera-se uma destas abordagens por vez, mas não ambas juntas.
[0059] Descrever-se-á agora a informação geral com relação à informação de movimento que é válida para ambas as abordagens.
[0060] Um codec de vídeo típico explora ambas as correlações espaciais e temporais entre os pixels nos respectivos modos intra e inter. Foca-se aqui nos modos Inter, que exploram a correlação temporal entre os pixels do quadro atual e os quadros previamente codificados/decodificados.
[0061] Em HEVC (e SHVC por extensão), o modo “Inter” é um modo de predição que define uma direção de predição temporal. São definidos de 0 a 2 conjuntos de informação de movimento de acordo com essa direção temporal. Se a direção de predição “Inter” é igual a 0, o bloco é codificado com o modo Intra, e não contém ne-nhuma informação de movimento. Se a direção de predição “Inter” é igual a 1, o blo-co contém a informação de movimento a partir de uma lista de quadros de referência chamada de L0. Se a direção de predição “Inter” é igual a 2, o bloco contém infor-mação de movimento a partir de outra lista de quadros de referência chamada de L1. Se a direção de predição “Inter” é igual a 3, o bloco contém a informação de mo-vimento a partir de ambas as listas L0 e L1.
[0062] A informação de movimento consiste na seguinte informação, um índice (ref_idx) em uma lista de quadros de referência e um vetor de movimento que tem dois componentes: valores de movimento horizontal e vertical. Estes valores corres-pondem a um deslocamento espacial em termos de pixels entre a posição do bloco atual e o bloco preditor temporal no quadro de referência. Este deslocamento pode ter uma precisão de subpixels (0, 1, 2 ou 3 quartos de um pixel).
[0063] As direções de predição “Inter” 1 e 2, mencionadas acima, correspondem a predições unidirecionais, e não podem ser usadas em fatias I (= fatia intracodifica- da), mas em fatias P (fatia predita) e em fatias B (bipreditas). Uma imagem de tipo particular (I, P ou B) é feita de pelo menos uma fatia do mesmo tipo. A direção de predição “Inter” 3 é chamada de predição bidirecional, e só pode ser usada em fatias B. Neste caso, dois preditores de bloco são considerados, um para cada lista L0 e L1. Consequentemente, dois índices de quadro de referência são considerados, bem como dois vetores de movimento. O preditor do bloco Inter para bipredição é a média, pixel a pixel, destes dois blocos apontados por estes dois vetores de movimento. O preditor de bloco aqui corresponde à noção da Unidade de Predição ou Bloco de Predição em HEVC ou SHVC.
[0064] Como descrito acima, a informação de movimento em HEVC é codificada por codificação preditiva, usando uma pluralidade de preditores de informação de movimento, dentre os quais a informação de movimento co-localizada temporalmen-te. Portanto, é necessário para cada quadro que é usado como quadro de referência, armazenar, nos lados do decodificador e do codificador, sua informação de mo-vimento relacionada. Esta informação de movimento é comprimida de modo a reduzir o seu tamanho na memória dedicada de informação de movimento.
[0065] HEVC, portanto, usa uma granularidade particular para representar o mo-vimento. Isto é representado na Figura 5. Para cada bloco 5.0 de 16x16 pixels, a granularidade mínima usada por HEVC é 4x4 pixels, resultando em 16 potenciais pedaços de informação de movimento, um para cada bloco 4x4. A compressão de informação de movimento consiste em manter somente a informação de movimento correspondente ao bloco superior esquerdo 4x4 5.2 para um dado bloco 5.0.
[0066] O processo de compressão da informação de movimento pode ocorrer assim que a escolha final for feita para um bloco 16x16 e que tenha sido codificada, mas é mais simples visualizá-la como terminada uma vez que toda a imagem tenha sido codificada.
[0067] Para simplificar, considera-se como executado após o processo de filtragem de malha adaptativa, e antes da imagem decodificada ser colocada no armaze- nador temporário de imagem decodificada (DPB). Este processo de compressão pode ser descrito como uma consulta particular: para as dadas coordenadas de pixel X e Y, a informação de movimento é obtida a partir da posição X’ = (X >> 4) << 4 e Y’ = (Y >> 4) << 4, onde os operadores ‘>>’ e ‘<<’ são descritos da seguinte forma.
[0068] x >> y representa o deslocamento aritmético para a direita de uma repre-sentação inteira de dois complementos de x por y dígitos binários. Esta função é de-finida somente para valores inteiros não negativos de y. Os bits deslocados nos MSBs como resultado do deslocamento para a direita têm um valor igual ao MSB de x antes da operação de deslocamento.
[0069] x << y representa o deslocamento aritmético para a esquerda de uma re-presentação inteira de dois complementos de x por y dígitos binários. Esta função é definida somente para valores inteiros não negativos de y. Os bits deslocados para os LSBs como um resultado do deslocamento para a esquerda têm um valor igual a 0.
[0070] Pode-se notar que algumas implementações podem usar um armazena- dor temporário para armazenar o movimento comprimido correspondente.
[0071] No projeto de HEVC, os vetores de movimento são codificados por codificação preditiva, usando uma pluralidade de preditores de informação de movimento. Para um bloco INTER-codificado, existem 3 submodos de codificação de bloco chamados de Skip, Inter e Merge. O submodo Inter usa um método de predição de movimento particular chamado de AMVP, e usa dados de textura residuais. Os submo- dos Skip e Merge usam o mesmo método de predição de movimento (mas o primeiro não usa dados residuais). Este método de predição permite a seleção do melhor preditor de informação de movimento a partir de um dado conjunto, onde o conjunto é composto de informação de movimento espacial e temporal.
[0072] Descrever-se-á o modo de predição de informação de movimento chamado de modo Merge, e como ele se aplica a ambas as abordagens mencionadas acima: TextureRL e índice de quadro de referência. Este é usado para 2 submodos de codificação INTER, os submodos Skip e Merge. Em seguida, detalha-se um esque-ma equivalente que pode ser usado em modo AMVP.
[0073] A Figura 3 mostra um fluxograma genérico para o esquema de preditor de informação de movimento Merge para os submodos Merge e Skip no lado do codifi-cador chamado, abreviadamente, de “o modo Merge”. O princípio do modo Merge é usar a predição de vetor de movimento para a compensação de movimento sem co-dificar qualquer refinamento de movimento. O módulo de geração de preditor de in-formação de movimento 3.3 gera o conjunto de preditores de informação de movi-mento 3.4 com base no campo de informação de movimento 3.1 como descrito em detalhes abaixo. A seleção de Taxa/Distorção 3.7 do melhor preditor de informação de movimento é aplicada dentre o conjunto de preditores de informação de movi-mento 3.4. Isso gera um índice de preditor de vetor de movimento 3.8 que será codi-ficado.
[0074] O módulo de conversão 3.14 converte o dito índice para um código unário truncado 3.15: para um valor N a codificar, uma palavra de código de comprimento N + 1 é gerada, exceto pelo valor máximo de N, que em vez disso, precisa de N bits. Este código consiste de N bits configurados para 1, e um bit final configurado para 0. Se o valor de N for igual ao número máximo de candidatos, então esse bit terminal não é necessário, e o comprimento de palavra de código é assim N. Devido a esse valor máximo, o número de candidatos Merge (normalmente 5 para HEVC) pode ser selecionado no nível de fatia {elemento de sintaxe fi- ve_minus_max_num_Merge_cand em HEVC), etapa 3.14 leva em consideração o número máximo do preditor 3.16.
[0075] A palavra de código gerada 3.15 é então codificada por entropia pela etapa de codificação por entropia 3.12: - O primeiro bit usa a codificação aritmética com um contexto específico; - Os bits restantes usam a codificação de derivação, ou seja, um bit real é gerado.
[0076] A Figura 4 mostra o fluxograma para o processo de decodificação corres-pondente. Na primeira etapa, o módulo 4.2 gera o conjunto de preditores de infor-mação de movimento 4.8 com base no campo de informação de movimento 4.1 do quadro atual e dos quadros anteriores. O número máximo 4.16 de preditores de mo- vimento foi decodificado a partir do elemento de sintaxe fi- ve_minus_max_num_Merge_cand localizado no cabeçalho de fatia. Então ele é usado em 4.6 para extrair a palavra de código de preditor de informação de movi-mento 4.14. Essa palavra de código é convertida pela etapa 4.15 em um índice de preditor 4.9. O preditor de informação de movimento 4.10 a usar é então extraído do conjunto 4.8 de acordo com este valor de índice de preditor 4.9. Esse preditor é então usado como a informação de movimento real durante a compensação de movimento.
[0077] Um preditor de informação de movimento ou candidato contém todas as informações de movimento: direção (ou seja, a disponibilidade de um vetor de mo-vimento e o índice de referência dentro de uma lista), o índice de quadro de referên-cia e vetores de movimento. Vários candidatos são gerados pelo processo de deri-vação Merge descrito em seguida, cada um tendo um índice. Em HEVC, o número máximo de candidatos Max_Cand é por padrão igual a 5, mas pode ser reduzido para 1. Descreve-se aqui a determinação do preditor de informação de movimento Merge, com partes específicas para abordagens TextureRL e de índice de quadro de referência.
[0078] A Figura 9 é o fluxograma do processo de derivação de informação de movimento dos modos Merge. Na primeira etapa da derivação em ambas as abor-dagens de núcleo de HEVC, TextureRL e de índice de quadro de referência, 7 posi-ções de bloco são consideradas, 9.1 a 9.7.
[0079] Em adição, no caso de abordagem TextureRL, outro candidato, o SMVP 9.0 (onde SMVP espera o Preditor de Vetor de Movimento Espacial), tal como descrito anteriormente, é considerado. Essas posições são as posições espaciais e temporais apresentadas na Figura 2. Cada posição tem o mesmo nome em ambas as Figuras. Esse SMVP não existe na abordagem do índice de quadro de referência.
[0080] O módulo 9.8 verifica a disponibilidade da informação de movimento es-pacial, e na abordagem TextureRL, o SMVP também para uma camada de aumento. Ele seleciona no máximo 4 preditores de informação de movimento. Neste módulo, um preditor está disponível se ele existir na camada de referência e, se este bloco não for INTRA codificado. Em adição, em seguida, dentro da abordagem TextureRL, qualquer candidato será adicionado é também comparado ao SMVP em adição a qualquer outra informação de movimento, e é realmente adicionado, se ele for dife-rente. Por exemplo, o candidato “Left”, chamado de A1 ou 9.1, também é comparado com o SMVP e adicionado como segundo, se o movimento existir na posição X2 ou primeira, caso contrário. Essa comparação, bem como a seguir, é executada verifi-cando que: • A informação de movimento de dois candidatos tem a mesma direção de predição; • Se esse é o caso, para cada pedaço de informação de movimento asso-ciada à direção de predição: • que o mesmo quadro é referenciado (ou seja, o mesmo valor do índice ref_idx); • que os vetores de movimento são idênticos em ambas as suas coorde-nadas vertical e horizontal.
[0081] A seleção e a verificação desses 5 vetores de movimento são descritas nas seguintes condições: • Na abordagem TextureRL, se a informação de movimento 9.0 a partir da posição co-localizada X2 da posição central X1 do PU estiver disponível 9.8, ela é escalonada e usada como o primeiro candidato na lista 9.10. • Se a informação de movimento A1 “Left” 9.1 estiver disponível 9.8, signi-ficando que se ela existe e se esse bloco não é Intra codificado, a informação de movimento do bloco “Left” é selecionada e usada como o primeiro candidato na lista 9.10. • Se a informação de movimento “Above” B1 9.2 estiver disponível 9.8, o bloco candidato “Above” é comparado 9.9 com A1 (se ele existir). Se B1 for igual a A1, B1 não é adicionado na lista de candidatos espaciais 9.10, caso contrário ele é adicionado. • Se a informação de movimento B0 “Above Right” 9.3 estiver disponível 9.8, o vetor de movimento de “Above Right” é comparado 9.9 com B1. Se B0 é igual a B1, B0 não é adicionado na lista de candidatos espaciais (9.10), caso contrário ele é adicionado. • Se o vetor de movimento A0 “Below Left” 9.4 estiver disponível 9.8, a in-formação de movimento “Below Left” é comparado 9.9 com A1. Se A0 for igual a A1, A0 não é adicionado na lista de candidatos espaciais 9.10, caso contrário ele é adi-cionado. • Se a lista de candidatos espaciais não contém 4 candidatos, a disponibi-lidade de informação de movimento B2 “Above Left” 9.5 é testada 9.8, se estiver dis-ponível; o vetor de movimento “Above Left” B2 for comparado 9.9 com A1 e com B1. Se B2 for igual a A1 ou a B1, B2 não é adicionado na lista de candidatos espaciais 9.10, caso contrário ele é adicionado.
[0082] No final desse estágio, a lista 9.10 contém de 0 até 4 candidatos.
[0083] Para o candidato temporal, duas posições podem ser usadas: H 9.6 cor-respondente à posição inferior direita BR1 do bloco co-localizado ou o centro C 9.7 do bloco co-localizado (co-localizado indica o bloco na mesma posição em um qua-dro temporalmente diferente) correspondente à posição central X1 do bloco atual. Estas posições estão representadas na Figura 2.
[0084] Primeiro, a disponibilidade do bloco na posição H 9.6 é verificada H 9.11. Se não estiver disponível, então o bloco na posição central 9.7 é verificado 9.11. Se pelo menos uma informação de movimento destas posições estiver disponível, esta informação de movimento temporal pode ser escalonada se necessário 9.12 para ser homogênea com a informação de movimento proveniente do quadro de referência com um índice 0, para ambas as listas L0 e L1, se necessário, de modo a criar o candidato temporal 9.13; e, portanto, o candidato temporal é então inserido na lista de candidatos Merge logo após os candidatos espaciais.
[0085] Ademais, a posição final para o candidato temporal, H ou central, depen-dendo da disponibilidade, é restrito para permanecer dentro do mesmo CTB (Bloco de Árvore de Codificação) ou seu vizinho direito, de modo a reduzir acessos de me-mória.
[0086] É importante notar que, para todas as camadas e todas as abordagens, mas principalmente na Camada de Referência, este preditor de informação de mo-vimento é determinado condicionalmente e adicionado dependendo: • Se o dito preditor de informação de movimento temporal (TMVP) é de-sativado no nível de sequência, por exemplo, usando o sinalizador sps_temporal_mvp_enable_flag localizado no SPS (Conjunto de Parâmetros de Se-quência) - isto é particularmente relevante para uma modalidade da invenção; • Se ele estiver habilitado no nível de sequência, se ele estiver desativado no nível de fatia, por exemplo, usando o sinalizador enable_temporal_mvp_flag localizado no cabeçalho de fatia.
[0087] O fato de que este preditor de informação de movimento pode ser desativado, em conjunto com como é afetado pela compressão de memória de vetor de movimento, desempenha um papel importante no processo descrito e como o predi- tor SMVP 9.0 é derivado.
[0088] Em segundo lugar, a abordagem de índice de quadro de referência, este preditor de informação de movimento temporal pode vir a partir do quadro inserido. Como será descrito abaixo, a dita informação de movimento é realmente derivada do campo de movimento comprimido do quadro de Camada de Referência.
[0089] Se a quantidade de candidatos (Nb_Cand) 9.14 é estritamente inferior ao número máximo de candidatos Max_Cand, 5 por padrão e no máximo, os candidatos combinados são gerados em uma etapa 9.15, caso contrário, a lista final de candida-tos Merge é construída em uma etapa 9.18. O módulo 9.15 é usado somente quando o quadro atual é um quadro B, e ele gera vários candidatos com base nos candidatos disponíveis nas duas listas Merge em uma etapa 9.15. Esta geração consiste em combinar uma informação de movimento de um candidato da lista L0 a outra in-formação de movimento de um candidato diferente da lista L1.
[0090] Se a quantidade de candidatos (Nb_Cand 9.16) for estritamente inferior ao número máximo de candidatos Max_Cand, os candidatos a informação de movi-mento nulos sem deslocamento (0,0) (isto é, os valores de vetor de movimento são todos iguais a zero) são adicionados, etapa 9.17, incrementando o Nb_Cand, até que o Nb_Cand seja igual a Max_Cand.
[0091] No fim deste processo, a lista final de candidatos Merge é construída em uma etapa 9.18.
[0092] A especificação atual para SHVC (extensão escalonável de HEVC) não usa um preditor de informação de movimento obtido a partir da Camada de Referência no modo AMVP, mas este pode ser introduzido como segue.
[0093] A Figura 12 mostra a derivação do conjunto de preditores de informação de movimento AMVP. Este processo é usado para codificar de forma preditiva a in-formação de movimento. Em comparação com o modo Merge, a informação adicional deve ser transmitida: uma direção de predição, e para cada pedaço de informação de movimento para transmitir um índice de quadro de referência, um índice de preditor e um residual de informação de movimento são também transmitidos.
[0094] O índice de preditor depende do número de candidatos: HEVC precisa gerar no máximo 2 preditores de informação de movimento. Nesse caso o Max_Cand nessa figura é configurado para ser igual a 2, mas é possível configurá-lo para ser igual a 3 para uma camada de aumento. O primeiro candidato espacial é selecionado dentre os blocos esquerdos A0 12.1 e A1 12.2, para posições similares às do modo Merge.
[0095] Os dois preditores de informação de movimento espacial do modo AMVP são escolhidos dentre aqueles acima e dentre os blocos esquerdos, incluindo os blocos de canto acima e blocos de canto esquerdos, novamente como para o modo Merge. Esse preditor esquerdo Cand1 12.9 é selecionado 12.8 dentre os blocos “Below Left” A0 e “Left” A1. Nesta ordem específica, as seguintes condições são avaliadas até que um valor de informação de movimento é encontrado para a informação de movimento a partir da mesma lista de referência e da mesma imagem de referência ou a informação de movimento da outra lista de referência e da mesma imagem de referência.
[0096] O preditor de informação de movimento descrito acima Cand2 12.11 é selecionado em uma etapa 12.10 dentre “Above Right” B0 12.3, “Above” B1 12.4 e “Above Left” B2 12.5 nesta ordem específica, com as mesmas condições descritas abaixo. Os próximos Cand1 e Cand2 são comparados de modo a remover um des ses preditores de informação de movimento, se eles forem iguais 12.15. Após esse corte, o número de candidatos é comparado com Max_Cand em uma etapa 12.16: se forem iguais, então a lista de candidatos de informação de movimento AMVP é determinada completamente, e o processo termina na etapa 12.23.
[0097] Caso contrário, se o número de candidatos estiver abaixo de Max_Cand, o preditor de movimento temporal Cand3 12.14 é derivado como no modo Merge e adicionado se ele existir em uma etapa 12.17. Para fazer isso, a posição inferior di-reita (H) 12.6 é primeiro considerada no módulo de verificação de disponibilidade 12.12. Se ela não existir, o centro do bloco co-localizado 12.7 é selecionado.
[0098] Em seguida, o número de candidatos adicionados é comparado novamente com o número máximo de candidatos em uma etapa 12.18. Se esse número máximo for alcançado, a lista final do preditor AMVP é construída na etapa 12.23. Caso contrário, a etapa 12.19 verifica se estamos construindo uma lista para uma Camada de Aumento. Senão, a construção da lista clássica recomeça na etapa 12.22, onde o máximo possível de candidatos nulos necessários para alcançar o máximo é adicio-nado à lista e, portanto, a completa e finaliza na etapa 12.23. Caso contrário, ocorre um processamento específico, onde o candidato SMVP é obtido a partir da Camada de Referência após a computação descrita abaixa. Quando isso é feito, o processa-mento normal será retomado na etapa 12.22.
[0099] Foi escolhido ilustrar o uso deste candidato após Cand3. É óbvio imaginar o uso dele antes de Cand3, entre Cand1 e Cand2 ou entre Cand2 e Cand3. Em todos os casos, uma comparação adicional pode ser executada no processo de corte levando em consideração os novos candidatos SMVP.
[00100] Quando considerando a aplicação do modo Merge para a abordagem TextureRL, o modo Merge adiciona um novo preditor de informação de movimento, o SMVP, na Camada de Aumento obtida a partir de sua Camada de Referência. O dito preditor de informação de movimento vem da informação de movimento usada na determinação do candidato temporal na Camada de Referência, a qual é comprimi-da. A Figura 6 ilustra esquematicamente os princípios da abordagem TextureRL. A descrição refere-se aqui ao componente de cor Luma da imagem, mas o processo aplica-se aos componentes de cor croma também.
[00101] Na Figura 6 é representada uma imagem de camada de aumento 6.1 e sua imagem da camada de referência 6.2, com uma razão espacial de R (tipicamente 1, 1,5 ou 2) entre 6.1 e 6.2. Seja qual for o valor de R, usa-se a palavra “aumento de escala” como o processo de reamostragem aplicado a uma camada de referência para corresponder às dimensões da camada de aumento. Se R for igual a 1, a supe- ramostragem produz uma saída idêntica à entrada. A reamostragem inversa é cha-mada de “diminuição de escala”. A imagem da camada de aumento é subdividida em uma grade que representa a granularidade da imagem. Cada um dos quadrados menores é chamado de uma amostra no seguinte texto.
[00102] Agora, para uma dada unidade de preditor 6.3, representada com um quadrado de contorno espesso, o processo consiste em: A. Computar a localização central 6.4 (xPCtr, yPCtr) do bloco de predição luma considerado 6.3, que é derivado da seguinte forma
Figure img0001
- xP, yP especificando a amostra superior esquerda 6.6 do bloco de predição luma atual 6.7 da imagem atual - nPbW e nPbH especificando a largura e a altura do bloco de predi-ção luma B. Diminuir a escala de suas coordenadas de acordo com o fator de esca-lonamento R (1, 1,5 e 2,0) para encontrar a posição co-localizada 6.5 na imagem da camada de referência 6.2;
Figure img0002
- As variáveis PicWRL e PicHRL são configuradas iguais à largura e à altura da imagem de camada de referência. - O valor de ScaledH ontém o valor de R * PicHRL e o valor de Sca- ledW é igual ao valor de R * PicWRL. C. Recuperar a informação de movimento nessa localização a partir da imagem de camada de referência 6.2 identificando um bloco de predição luma bIPb 6.8, numerado por 1, abrangendo a localização modificada dada por ((xPCtrRL >> 4) << 4, (yPCtrRL >> 4) << 4) dentro da imagem de camada de referência. Isto corresponde à etapa de resumo de movimento da Camada de Referência. - A localização luma (xPRL, yPRL) é então definida igual à da amostra superior esquerda 6.8 do bloco de predição luma co-localizado especificado pelo bIPb em relação à amostra luma superior esquerda da imagem da camada de refe-rência. D. Se a informação correspondente não for intra, extrair os vetores de movimento MVRL e aumentar a escala deles de acordo com a razão R. A operação, basicamente, gera o vetor de movimento espacial, cujo valor SMVP é igual a: SMVP = md (R * MVRL (rnd (xPRL/R), rnd (yPRL/R), onde rnd (.) representa um processo de arredondamento). Em conjunto com os índices de quadro de referência associados a este vetor de movimento espacial, isso constitui o preditor de vetor de movimento espacial inserido no início do conjunto.
[00103] O modelo SHVC atual para TextureRL instrui que os vetores de movimento para os valores da camada de referência MVRL sejam obtidos a partir do armaze- nador temporário de compressão de movimento da Camada de Referência, como visto na etapa C anterior. Isso é necessário porque a informação de movimento cor-respondente ao bloco 4x4 6.8 é a única que mantida por todo o bloco 16x16 pelo processo de compressão de informação de movimento.
[00104] Considerando agora a abordagem do índice de quadro de referência, neste caso, a informação de movimento do novo quadro, o qual é inserido na lista de referência da Camada de Aumento, vem do dito campo de informação de movimento comprimida também. Essa informação de movimento pode então ser usada para determinar o preditor temporal como descrito acima.
[00105] Em seguida é detalhado como esse movimento é derivado. Para um dado bloco 16x16, o centro desse bloco é selecionado, e essa posição é usada de forma equivalente ao que está descrito acima para encontrar a informação de movimento correspondente. Detalhar-se-á as etapas correspondentes para o componente luma. Nota-se que a maioria das peças são essencialmente idênticas ao do processo des-crito em relação à Figura 6, e as definições permanecem as mesmas para variáveis idênticas. Essas são: A. A localização central (xPCtr, yPCtr) do bloco de predição luma é deri-vada da seguinte forma (os nomes das variáveis são definidos na seção anterior):
Figure img0003
B. Diminuir a escala de suas coordenadas de acordo com o fator de esca-lonamento R (1, 1,5 e 2,0) para encontrar a posição co-localizada na imagem de camada de referência;
Figure img0004
As variáveis PicWRL e PicHRL são definidas iguais à largura e à altura da imagem da camada de referência. O valor de ScaledH obtém o valor de R * PicHRL e o valor de ScaledW é igual ao valor de R * PicWRL. C. A posição co-localizada (xRL, yRL) é derivada da seguinte forma:
Figure img0005
D. O vetor de movimento da camada de referência é obtido da seguinte forma. A operação, basicamente, gera os vetores de movimento do valor da cada de referência RL_MV da seguinte forma: RL_MV = rnd (R * MV (rnd (xPRL/R), rnd (yPRL/R)).
[00106] Esta informação é então usada como se fosse a saída da compressão de informação de movimento. Isto permite usar a informação de movimento a partir da camada de referência para predizer a informação de movimento na camada de au-mento. Ao contrário da abordagem TextureRL, a informação de movimento tem gra- nularidade mais grossa, mas pode ser usada como um preditor de informação de movimento temporal, tanto no processo de determinação da lista Merge quanto o AMVP usado para a inter blocos.
[00107] Nota-se que foi apresentada a arquitetura geral de um codec escalonável, as duas abordagens e como eles usam a informação de movimento para predição pode-se resumir o seguinte.
[00108] Na abordagem TextureRL, um novo preditor de informação de movimento na Camada de Aumento é obtido a partir de sua Camada de Referência. O dito pre- ditor de informação de movimento tipicamente vem da informação de movimento usada na determinação do candidato temporal na Camada de Referência, a qual é comprimida. Então, a compressão impacta sua derivação, e assim, o modo Merge. No modo AMVP, se um candidato escalonável está presente, então a compressão também teria um impacto nele. O AMVP e os modos Merge na abordagem do índice de quadro de referência são sempre impactados, porque eles também usam preditor de vetor de informação de movimento temporal e, se o quadro de referência é um inserido, então este preditor viria do movimento do quadro da Camada de Referên-cia.
[00109] Na abordagem de índice de quadro de referência, a informação de movi-mento do novo quadro, que é inserida na lista de referência da Camada de Aumento, vem da dita informação de movimento comprimida também.
[00110] Como explicado em relação à Figura 6, a informação de movimento ar-mazenada para a camada de referência é comprimida. Isso significa que, para um bloco de 16x16 completo, onde inicialmente até 16 pedaços de informação de mo-vimento existem, uma para cada bloco 4x4 contido dentro do bloco 16x16, somente um é mantido, tipicamente, um em relação ao bloco 4x4 superior esquerdo.
[00111] No processo de derivação de preditores de informação de movimento quando a informação de movimento da camada de referência é necessária, devido a essa compressão, a informação de movimento usada é a disponível, isto é, a infor-mação de movimento associada com o bloco 4x4 superior esquerdo. Com relação novamente à Figura 6, quando se olha para a informação de movimento associada com o ponto co-localizado 6.5 correspondente ao centro 6.4 a unidade de codifica-ção para codificar, a informação de movimento associada com o bloco 4x4 superior esquerdo 6.8 numerado com 1 é usada. Pode-se notar que a informação de movi- mento associada com o bloco 4x4 superior esquerdo numerado com 3, que corres-ponde à informação de movimento mantida após a compressão para o bloco 16x16 situado abaixo, está mais próxima da posição do ponto co-localizado 6.5 e é, portan-to, susceptível de ser mais relevante do que a informação de movimento do bloco 4x4 6.8.
[00112] Esta escolha não otimizada da informação de movimento devido ao pro-cesso de compressão aplicada à informação de movimento na camada de referência pode ser medida para induzir uma perda de eficiência de codificação. Em uma mo-dalidade da invenção, o processo de derivação do preditor de informação de movi-mento é adaptado para superar este problema de posição.
[00113] A Figura 7 detalha o processo adaptado no contexto da abordagem Tex- tureRL. Ele pode ser aplicado em ambos os processos AMVP e de derivação Merge em uma camada de aumento. Esse processo de derivação Merge modificado pode estar localizado no módulo de estimativa de movimento 1.23 da Figura 1 do codifi-cador, e no módulo de estimativa de movimento 10.55 na Figura 10 do decodifica- dor. Essencialmente, tudo isso ocorre quando determinando o candidato SMVP 9.0 na Figura 9.
[00114] A etapa 7.1 inicia o processo computando a posição para a qual se de-termina o movimento na camada de referência, por exemplo, configurando a infor-mação da unidade de preditor atual (dimensões/posição) e derivando o centro da dita unidade de preditor. A adaptação principal está na etapa 7.3, que corrige a posição. Isso é produzido primeiro através das 2 seguintes possibilidades.
[00115] Em uma primeira modalidade, para uma dada coordenada X obtida para a posição na camada de referência, por exemplo, ou xPCtrRL ou yPCtrRL descritos acima, computa-se o novo valor para executar uma operação de arredondamento, de acordo com dois parâmetros r e M.
[00116] Por exemplo, o novo valor X’ pode ser computado da seguinte forma:
Figure img0006
onde [%] representa o truncamento de x, ou seja, levando em considera ção sua parte inteira. M pode ser uma potência de 2 nesta modalidade, M = 16 para combinar a granularidade de movimento comprimido de HEVC. Nesta modalidade, r = 4, e não a escolha mais natural r = 8, e é usado uma vez que fornece melhor eficiência de codificação.
[00117] O mesmo pode ser aplicado à outra coordenada. Como um exemplo comparativo somente, é possível escolher diferentes valores dos parâmetros r e M.
[00118] Em um exemplo comparativo, a correção da posição pode se basear em uma tabela de pesquisa. Nesse caso, dadas as coordenadas (X, Y), uma tabela de correções F [X, Y] pode ser definida por pelo menos uma das coordenadas. Esta tabela pode ser diferente para cada coordenada. A tabela pode também ser indexada somente por uma das coordenadas, ou seja, X ou Y. A tabela também pode ser reduzida usando como um índice um valor relativo à coordenada, em vez da própria coordenada, por exemplo, a correção pode ser obtida por F [X módulo M], em vez de F [X], onde M = 2N como um valor típico. Em um exemplo, M = 16,
[00119] Em todos os casos, o valor de correção (se um valor de r ou uma tabela para pelo menos um componente) pode ser transmitido e recuperado a partir da in-formação de sintaxe de alto nível, por exemplo, no Conjunto de Parâmetros de Vídeo, Conjunto de Parâmetros de Sequência, Conjunto de Parâmetros de Imagem ou cabeçalho de fatia. No caso de transmitir pelo menos um valor de r: - Um sinalizador de bit pode indicar se o valor de r é um primeiro valor ou um segundo valor, por exemplo, 0 e 4 (no caso em que ele pode ser visto como um indicador on/off para a correção); - Um código pode indicar o valor explícito de r, por exemplo, um código unário truncado que representa o valor de r menos 4, por exemplo, sequências biná-rias ‘0’ para r = 4, ‘10’ para R = 5, ‘110’, ‘1000’ e ‘1111’ para os outros valores.
[00120] É importante notar no dito acima que somente uma coordenada pode ser afetada, em particular, a abcissa, à medida que modificar a ordenada poderia levar a recuperar a informação de movimento a partir da área de memória diferente e, por-tanto, causar acessos da memória adicionais.
[00121] Seguindo esta exigência de reduzir os acessos à memória, pelo menos um valor corrigido pode ser alterado para outro valor, esse outro valor possivelmente será o valor original, se o dito valor corrigido não corresponder a um critério, tal como satisfazendo um limite. Tal limite pode ser a dimensão da imagem ao longo dessa coordenada, de modo que nenhuma consulta possa ocorrer fora da imagem. Al-ternativamente, o dito limite pode ser o limite de uma área de memória ao longo dessa coordenada. A área de memória tipicamente corresponde a um conjunto pre-determinado da maior unidade de codificação na camada de referência. Esta área de memória será ilustrada em mais detalhes com a Figura 13.
[00122] Então, a determinação do preditor normal reinicia na etapa 7.4. A informação de movimento é recuperada a partir do armazenador temporário de movimento comprimido usando a posição de saída da etapa 7.3. Se for intra (ou seja, não existir movimento), o candidato é marcado como tal na etapa 7.8, em particular, não computando nem adicionando qualquer preditor à lista de candidatos Merge, portanto, finalizando o processo de derivação na etapa 7.9. Caso contrário, o movi-mento correspondente tem sua escala aumentada para corresponder às dimensões da camada de aumento.
[00123] A Figura 8 ilustra o processo adaptado no contexto da abordagem do índice de quadro de referência. Ele pode ser aplicado tanto em AMVP quanto no processo de derivação Merge em uma camada de aumento. Esse processo adaptado está localizado ou no armazenador temporário de quadro 1.24 ou no módulo de es-timativa de movimento 1.23 no codificador da Figura 1, e no armazenador temporário de quadro 10.60 ou no módulo de estimativa de movimento 10.55 do decodifica- dor na Figura 10. De fato, ele afeta o conteúdo da memória de quadro em relação à informação de movimento comprimida.
[00124] Portanto, a etapa 8.1 inicia o processo de derivação do preditor de infor-mação de movimento, configurando o bloco atual 16x16 para o primeiro na imagem da camada de aumento. Na etapa 8.2, a posição do centro da unidade de codificação 16x16 é determinada, e a posição co-localizada correspondente na camada de referência é encontrada na etapa 8.3. A nova etapa 8.4 onde a posição encontrada é corrigida. Uma pode se referir à etapa 7.1 acima para ver os detalhes dessa corre- ção, o mesmo se aplica aqui.
[00125] Na etapa 8.5, verifica-se se o movimento nessa posição é intra. Se sim, então o bloco de movimento 16x16 é definido como intra na etapa 8.7, de outro mo-do, os vetores de movimento são obtidos e suas escalas são aumentadas para cor-responder às dimensões da camada de aumento, e os vetores de movimento com escala aumentada, os índices de referência e as disponibilidades são configurados como preditores de informação de movimento do bloco atual 16x16 na etapa 8.8.
[00126] A etapa 8.9 se prepara para a próxima iteração, verificando se o bloco atual é o último na imagem. Se este for o caso, então a informação de movimento para o novo quadro é completamente determinada, e o processo termina na etapa 8.11. Caso contrário, o bloco atual é configurado para o próximo bloco 16x16 na etapa 8.10, e a iteração volta à etapa 8.2.
[00127] A Figura 13 ilustra os detalhes do que se define como uma área de memória. Dada uma imagem da Camada de Referência 13.4 e sua imagem da Camada de Aumento associada 13.5, pode-se definir uma área 13.6 para a qual aplica-se o processo de determinação de movimento, por exemplo, um CTB. A restrição de acesso de memória pode aplicar (por exemplo, no caso codificador ou decodificador, onde os CTBs da Camada de Aumento são processados logo após os CTBs da Camada de Referência co-localizada), e assim pode-se definir em um primeiro as-pecto da invenção, uma área co-localizada 13.1 dentro do quadro da Camada de Referência 13.4. A área de memória mencionada nas etapas 7.1 e 8.4 corresponde a um primeiro aspecto da área 13,2 contendo 13.1, aqui feita de 2 CTBs da Camada de Referência: as posições corrigidas encontradas para qualquer parte de 13.6 deve permanecer dentro da área 13.2. De uma forma menos restritiva, pode-se reforçar que a área de memória pode compreender uma coluna adicional de CTBs à direita da área 13.2, resultando na área 13.3. Pode-se entender que a restrição aqui é ba-seada em 13.6, mas qualquer tamanho de área na Camada de Aumento, ou a área de memória aumentada na Camada de Referência pode ser usada.
[00128] A Figura 11 é um diagrama de blocos esquemático de um dispositivo de computação 11.0 para implementar uma ou mais modalidades da invenção. O dis- positivo de computação 11.0 pode ser um dispositivo tal como um microcomputador, uma estação de trabalho ou a um dispositivo portátil leve. O dispositivo de computa-ção 11.0 compreende um barramento de comunicação conectado a: - Uma unidade de processamento central 11.1, tal como um microproces-sador, denotado CPU; - Uma memória de acesso aleatório 11.2, denotada RAM, para armazenar o código executável do método das modalidades da invenção, bem como os registros adaptados para registrar variáveis e parâmetros necessários para implementar o método para codificação ou decodificação de pelo menos parte de uma imagem de acordo com as modalidades da invenção, onde a capacidade de memória deste pode ser expandida por uma RAM opcional conectada a uma porta de expansão, por exemplo; - Uma memória somente de leitura 11.3, denotada ROM, para armazenar programas de computador para implementar as modalidades da invenção; - Uma interface de rede 11.4 é tipicamente conectada a uma rede de co-municação na qual os dados digitais a serem processados são transmitidos ou rece-bidos. A interface de rede 11.4 pode ser uma única interface de rede, ou composta por um conjunto de diferentes interfaces de rede (por exemplo, interfaces com e sem fio, ou diferentes tipos de interfaces com fio ou sem fio). Os pacotes de dados são gravados na interface de rede para a transmissão ou são lidos a partir da interface de rede para a recepção sob o controle do aplicativo de software operando na CPU 11.1; - Uma interface de usuário 11.5 pode ser usada para receber as entradas a partir de um usuário ou para exibir a informação para um usuário; - Um disco rígido 11.6, denotado HD, pode ser fornecido como um dispo-sitivo de armazenamento em massa; - Um módulo I/O 11.7 pode ser usado para receber/enviar dados de/para dispositivos externos, tais como uma fonte de vídeo ou tela.
[00129] O código executável pode ser armazenado ou na memória somente de leitura 11.3, no disco rígido 11.6 ou em um meio digital removível, tal como, por exemplo, um disco. De acordo com uma variante, o código executável dos programas pode ser recebido por meio de uma rede de comunicação, via a interface de rede 11.4, de modo de ser armazenado em um meio de armazenamento do dispositivo de comunicação 11.0, tal como o disco rígido 11.6, antes de ser executado.
[00130] A unidade de processamento central 11.1 é adaptada para controlar e direcionar a execução das instruções ou partes do código de software do programa ou programas, de acordo com as modalidades da invenção, instruções que são ar-mazenadas em um dos meios de armazenamento mencionados acima. Depois de ligada, a CPU 11.1 é capaz de executar as instruções a partir da memória RAM prin-cipal 11.2 em relação a um aplicativo de software após essas instruções terem sido carregadas a partir da ROM de programa 11.3 ou o disco rígido (HD) 11.6, por exemplo. Tal aplicativo de software, quando executado pela CPU 11.1, faz com que as etapas dos fluxogramas apresentados nas Figuras 1 a 4 sejam executadas.
[00131] Qualquer etapa do algoritmo mostrado na Figura 7 pode ser implementada em software pela execução de um conjunto de instruções ou programas por uma máquina de computação programável, tal como um PC (“Computador Pessoal”), um DSP (“Processador de Sinal Digital”) ou um microcontrolador; ou então implementa-das em hardware por uma máquina ou um componente dedicado, tal como um FPGA (“Arranjo de Portas Programáveis em Campo”) ou um ASIC (“Circuito Integrado de Aplicação Específica”).
[00132] Embora a presente invenção tenha sido descrita acima com relação às modalidades específicas, a presente invenção não está limitada às modalidades es-pecíficas, e as modificações estarão evidentes para um versado na técnica que se encontre dentro do escopo da presente invenção.
[00133] Muitas outras modificações e variações estarão evidentes para os versados na técnica após fazer referência às modalidades ilustrativas anteriores, as quais são dadas somente a título de exemplo e que não pretendem limitar o escopo da invenção, que é exclusivamente determinado pelas reivindicações em anexo. Em particular, as diferentes características de diferentes modalidades podem ser inter- cambiadas, se isso for apropriado.
[00134] Nas reivindicações, a palavra “compreendendo” não exclui outros elementos ou etapas, e o artigo indefinido “um"” ou “uma” não exclui uma pluralidade. O simples fato de que diferentes características são citadas em reivindicações depen-dentes mutuamente diferentes não indica que uma combinação dessas característi-cas não pode ser usada vantajosamente.

Claims (4)

1. Método de codificar uma imagem de acordo com um formato de codificação escalonável, o dito formato de codificação compreendendo pelo menos uma camada de referência e uma camada de aumento, pelo menos parte da imagem sendo codificada preditivamente com base em informação de movimento, a dita informação de movimento sendo ela mesma codificada preditivamente com base em um preditor de informação de movimento de um conjunto de candidatos a preditor de informação de movimento, em que o método compreende, para pelo menos uma área de imagem da camada de aumento: determinar um conjunto de candidatos a preditor de informação de movimento incluindo um candidato a preditor de informação de movimento com base em informação de movimento associada com uma porção de uma imagem pertencendo à camada de referência; e determinar uma posição co-localizada na camada de referência da área de imagem para codificar na camada de aumento, em que o método é caracterizado por corrigir pelo menos uma coordenada X da dita posição co-localizada para um novo valor de X’ dado por X’=[(X+4)>>4]<<4; e selecionar, se disponível, informação de movimento associada com a posição corrigida na camada de referência a ser incluída como o candidato a preditor de informação de movimento a ser incluído no dito conjunto de candidatos a preditor de informação de movimento.
2. Método de decodificar uma imagem codificada de acordo com um formato de codificação escalonável, o dito formato de codificação compreendendo pelo menos uma camada de referência e uma camada de aumento, pelo menos parte da imagem sendo codificada preditivamente com base em informação de movimento, a dita informação de movimento sendo ela mesma codificada preditivamente com base em um preditor de informação de movimento de um conjunto de candidatos a preditor de informação de movimento, em que o método compreende, para pelo menos uma área de imagem da camada de aumento: determinar um conjunto de candidatos a preditor de informação de movimento incluindo um candidato a preditor de informação de movimento com base em informação de movimento associada com uma porção de uma imagem pertencendo à camada de referência; e determinar uma posição co-localizada na camada de referência da área de imagem para decodificar na camada de aumento; em que o método é caracterizado por: corrigir pelo menos uma coordenada X da dita posição co-localizada para um novo valor de X’ dado por X’=[(X+4)>>4]<<4; e selecionar, se disponível, informação de movimento associada com a posição corrigida na camada de referência como o candidato a preditor de informação de movimento a ser incluído no dito conjunto de candidatos a preditor de informação de movimento.
3. Dispositivo de codificar uma imagem de acordo com um formato de codificação escalonável, o dito formato de codificação compreendendo pelo menos uma camada de referência e uma camada de aumento, pelo menos parte da imagem sendo codificada preditivamente com base em informação de movimento, a dita informação de movimento sendo ela mesma codificada preditivamente com base em um preditor de informação de movimento de um conjunto de candidatos a preditor de informação de movimento, em que o dispositivo compreende, para pelo menos uma área de imagem da camada de aumento: uma unidade determinação de preditor configurada para determinar um conjunto de candidatos a preditor de informação de movimento incluindo um candidato a preditor de informação de movimento com base em informação de movimento associada com uma porção de uma imagem pertencendo à camada de referência; uma unidade de determinação de posição configurada para determinar uma posição co-localizada na camada de referência da área de imagem para codificar na camada de aumento; em que o dispositivo é caracterizado por compreender uma unidade de correção de posição configurada para corrigir pelo menos uma coordenada X da dita posição co-localizada para um novo valor de X’ dado por X’=[(X+4)>>4]<<4; e uma unidade de seleção configurada para selecionar, se disponível, informação de movimento associada com a dita posição corrigida na camada de referência como o candidato a preditor de informação de movimento a ser incluído no dito conjunto de candidatos a preditor de informação de movimento.
4. Dispositivo de decodificar uma imagem de acordo com um formato de codificação escalonável, o dito formato de codificação compreendendo pelo menos uma camada de referência e uma camada de aumento, pelo menos parte da imagem sendo codificada preditivamente com base em informação de movimento, a dita informação de movimento sendo ela mesma codificada preditivamente com base em um preditor de informação de movimento de um conjunto de candidatos a preditor de informação de movimento, em que o dispositivo compreende, para pelo menos uma área de imagem da camada de aumento: uma unidade de determinação de preditor configurada para determinar um conjunto de candidatos a preditor de informação de movimento incluindo um candidato a preditor de informação de movimento com base em informação de movimento associada com uma porção de uma imagem pertencendo à camada de referência; e uma unidade de determinação de posição configurada para determinar uma posição co-localizada na camada de referência da área de imagem para decodificar na camada de aumento; em que o dispositivo é caracterizado por compreender uma unidade de correção de posição configurada para corrigir pelo menos uma coordenada X da dita posição co-localizada para um novo valor de X’ dado por X’=[(X+4)>>4]<<4; e uma unidade de seleção configurada para selecionar, se disponível, informação de movimento associada com a posição corrigida na camada de referência como o candidato a preditor de informação de movimento a ser incluído no dito conjunto de candidatos a preditor de informação de movimento.
BR122017024393-4A 2013-04-05 2014-03-24 Método e aparelho para codificar ou decodificar uma imagem com predição de informação de movimento inter-camada de acordo com esquema de compressão de informação de movimento BR122017024393B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1306221.1A GB2512829B (en) 2013-04-05 2013-04-05 Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
GB1306221.1 2013-04-05
PCT/EP2014/055862 WO2014161740A1 (en) 2013-04-05 2014-03-24 Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme

Publications (1)

Publication Number Publication Date
BR122017024393B1 true BR122017024393B1 (pt) 2022-12-27

Family

ID=48483436

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112015025322A BR112015025322A8 (pt) 2013-04-05 2014-03-24 método e aparelho para codificar ou decodificar uma imagem com predição de informação de movimento inter-camada de acordo com esquema de compressão de informação de movimento
BR122017024393-4A BR122017024393B1 (pt) 2013-04-05 2014-03-24 Método e aparelho para codificar ou decodificar uma imagem com predição de informação de movimento inter-camada de acordo com esquema de compressão de informação de movimento

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112015025322A BR112015025322A8 (pt) 2013-04-05 2014-03-24 método e aparelho para codificar ou decodificar uma imagem com predição de informação de movimento inter-camada de acordo com esquema de compressão de informação de movimento

Country Status (13)

Country Link
US (3) US10027975B2 (pt)
EP (3) EP3700213B1 (pt)
JP (4) JP6355714B2 (pt)
KR (5) KR102038243B1 (pt)
CN (5) CN105284117B (pt)
BR (2) BR112015025322A8 (pt)
ES (2) ES2733110T3 (pt)
GB (1) GB2512829B (pt)
HU (1) HUE045318T2 (pt)
PL (2) PL2982115T3 (pt)
RU (5) RU2639675C2 (pt)
TR (1) TR201908304T4 (pt)
WO (1) WO2014161740A1 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2512829B (en) * 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
WO2016143972A1 (ko) * 2015-03-11 2016-09-15 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format
WO2018071054A1 (en) * 2016-10-11 2018-04-19 Genomsys Sa Method and system for selective access of stored or transmitted bioinformatics data
US20200413040A1 (en) * 2018-03-14 2020-12-31 Electronics And Telecommunications Research Institute Method and device for encoding/decoding image and recording medium having bitstream stored thereon
US10638161B2 (en) * 2018-07-13 2020-04-28 Tencent America LLC Methods and apparatus for most probable mode derivation
EP4325849A3 (en) 2018-11-22 2024-04-17 Beijing Bytedance Network Technology Co., Ltd. Coordination method for sub-block based inter prediction
JP7516389B2 (ja) * 2019-01-09 2024-07-16 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオエンコーダ、ビデオデコーダ、および対応する方法
KR20220046005A (ko) * 2019-02-08 2022-04-13 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 코딩을 위한 양방향 광학 흐름 및 디코더측 움직임 벡터 보정을 선택적으로 적용하기 위한 방법 및 장치
CN118433411A (zh) * 2019-06-07 2024-08-02 北京达佳互联信息技术有限公司 用于视频解码的方法、计算设备、非暂态计算机可读存储介质、计算机程序产品和存储比特流的方法
CN117440170A (zh) * 2019-06-21 2024-01-23 华为技术有限公司 编码器、解码器及对应方法
CN114208184A (zh) 2019-08-13 2022-03-18 北京字节跳动网络技术有限公司 基于子块的帧间预测中的运动精度
CN114467308B (zh) 2019-09-22 2024-04-12 北京字节跳动网络技术有限公司 视频处理中的参考图片重采样
CN116506610B (zh) * 2019-12-24 2024-06-18 北京达佳互联信息技术有限公司 对视频信号编码的方法、计算设备、存储介质、程序产品
CN111147787B (zh) * 2019-12-27 2021-05-04 Oppo广东移动通信有限公司 插帧处理方法及相关设备
CN113395521A (zh) * 2020-03-13 2021-09-14 华为技术有限公司 图像编码和解码方法及装置
CN111770332B (zh) * 2020-06-04 2022-08-09 Oppo广东移动通信有限公司 插帧处理方法、插帧处理装置、存储介质与电子设备
CN112702604B (zh) * 2021-03-25 2021-06-29 北京达佳互联信息技术有限公司 用于分层视频的编码方法和装置以及解码方法和装置
CN113822147B (zh) * 2021-08-04 2023-12-15 北京交通大学 一种协同机器语义任务的深度压缩方法

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3031152B2 (ja) 1993-12-24 2000-04-10 日本電気株式会社 動き予測プロセッサ及び動き予測装置
US6173013B1 (en) 1996-11-08 2001-01-09 Sony Corporation Method and apparatus for encoding enhancement and base layer image signals using a predicted image signal
AU6441398A (en) 1998-03-20 1999-10-18 Mitsubishi Electric Corporation Lossy/lossless region-of-interest image coding
KR100962759B1 (ko) * 2002-01-24 2010-06-09 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
US20030215011A1 (en) 2002-05-17 2003-11-20 General Instrument Corporation Method and apparatus for transcoding compressed video bitstreams
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
KR100703770B1 (ko) 2005-03-25 2007-04-06 삼성전자주식회사 가중 예측을 이용한 비디오 코딩 및 디코딩 방법, 이를위한 장치
KR100763179B1 (ko) * 2005-04-01 2007-10-04 삼성전자주식회사 비동기 픽쳐의 모션 벡터를 압축/복원하는 방법 및 그방법을 이용한 장치
RU2378790C1 (ru) 2005-09-27 2010-01-10 Квэлкомм Инкорпорейтед Методики масштабируемости на основе информации содержимого
JP4534935B2 (ja) * 2005-10-04 2010-09-01 株式会社日立製作所 トランスコーダ、記録装置及びトランスコード方法
JP2006304350A (ja) * 2006-06-19 2006-11-02 Toshiba Corp 動画像復号化方法及び装置
CN101523923B (zh) 2006-10-10 2013-10-30 日本电信电话株式会社 影像编码方法和解码方法及其装置
TWI355204B (en) * 2006-11-17 2011-12-21 Lg Electronics Inc Method and apparatus for decoding/encoding a vide
EP2106666B1 (en) * 2007-01-08 2019-06-12 Nokia Technologies Oy Improved inter-layer prediction for extended spatial scalability in video coding
CN100562114C (zh) * 2007-08-30 2009-11-18 上海交通大学 视频解码方法与解码装置
TWI408965B (zh) 2007-10-15 2013-09-11 Qualcomm Inc 可調節視訊編碼之改良加強層編碼之方法、設備及電腦可讀媒體
CN101198064A (zh) * 2007-12-10 2008-06-11 武汉大学 一种分辨率分层技术中的运动矢量预测方法
WO2009123248A1 (en) * 2008-04-01 2009-10-08 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method
FR2939593B1 (fr) 2008-12-09 2010-12-31 Canon Kk Procede et dispositif de codage video
EP2257073A1 (en) * 2009-05-25 2010-12-01 Canon Kabushiki Kaisha Method and device for transmitting video data
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
JP2009290889A (ja) * 2009-08-07 2009-12-10 Ntt Docomo Inc 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
US9078009B2 (en) * 2010-02-19 2015-07-07 Skype Data compression for video utilizing non-translational motion information
TWI416961B (zh) * 2010-04-02 2013-11-21 Univ Nat Chiao Tung 用於可調式視訊編碼系統之選擇性移動向量預測方法、移動估測方法及其裝置
EP2947884B1 (en) 2010-04-13 2019-07-24 GE Video Compression, LLC Video coding using multi-tree sub-divisions of images
KR102233820B1 (ko) * 2010-05-26 2021-03-29 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
WO2012047496A1 (en) 2010-10-08 2012-04-12 Dolby Laboratories Licensing Corporation Scalable frame compatible multiview encoding and decoding methods
GB2487200A (en) 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
CN102611887B (zh) * 2011-01-21 2015-08-05 华为技术有限公司 非整像素位置运动矢量的坐标值取整方法和装置
US9749657B2 (en) * 2011-01-21 2017-08-29 Sharp Kabushiki Kaisha Buffer compression for motion vector competition
CN107277541B (zh) * 2011-02-09 2020-05-08 Lg 电子株式会社 编码和解码图像的方法及使用该方法的设备
KR101954006B1 (ko) * 2011-06-30 2019-03-04 소니 주식회사 화상 처리 장치 및 방법
JP5830993B2 (ja) * 2011-07-14 2015-12-09 ソニー株式会社 画像処理装置及び画像処理方法
JP5950541B2 (ja) * 2011-11-07 2016-07-13 キヤノン株式会社 動きベクトル符号化装置、動きベクトル符号化方法及びプログラム、動きベクトル復号装置、動きベクトル復号方法及びプログラム
GB2499865B (en) * 2012-03-02 2016-07-06 Canon Kk Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
CA2807919C (en) * 2012-08-31 2016-06-14 Research In Motion Limited Methods and devices for entropy coding in scalable video compression
GB2506592B (en) * 2012-09-28 2017-06-14 Canon Kk Method, device, and computer program for motion vector prediction in scalable video encoder and decoder
GB2509702B (en) * 2013-01-04 2015-04-22 Canon Kk Video coding
US9743097B2 (en) * 2013-03-01 2017-08-22 Qualcomm Incorporated Spatial motion vector scaling for scalable video coding
CN105052144B (zh) * 2013-03-12 2019-01-01 寰发股份有限公司 用于可伸缩视频编码的层间预测方法
GB2512829B (en) * 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme

Also Published As

Publication number Publication date
EP3700213B1 (en) 2022-01-12
CN105284117B (zh) 2018-11-06
EP2982115B1 (en) 2019-05-08
RU2639675C2 (ru) 2017-12-21
RU2015147403A (ru) 2017-05-12
GB2512829B (en) 2015-05-27
BR112015025322A8 (pt) 2019-07-30
KR20180110241A (ko) 2018-10-08
BR112015025322A2 (pt) 2017-07-18
JP2019146255A (ja) 2019-08-29
KR20170110178A (ko) 2017-10-10
EP2982115A1 (en) 2016-02-10
KR102078097B1 (ko) 2020-02-17
CN105284117A (zh) 2016-01-27
US20200107042A1 (en) 2020-04-02
KR20150140315A (ko) 2015-12-15
ES2803426T3 (es) 2021-01-26
ES2733110T3 (es) 2019-11-27
KR102078103B1 (ko) 2020-02-17
RU2720648C1 (ru) 2020-05-12
HUE045318T2 (hu) 2019-12-30
RU2693649C1 (ru) 2019-07-03
EP3534608B1 (en) 2020-05-13
KR20190122883A (ko) 2019-10-30
JP6701409B2 (ja) 2020-05-27
JP6355714B2 (ja) 2018-07-11
EP3534608A1 (en) 2019-09-04
GB2512829A (en) 2014-10-15
US10027975B2 (en) 2018-07-17
US11089324B2 (en) 2021-08-10
JP6526292B2 (ja) 2019-06-05
PL3534608T3 (pl) 2020-09-21
US20180302644A1 (en) 2018-10-18
EP3700213A1 (en) 2020-08-26
JP2016519499A (ja) 2016-06-30
US20160057444A1 (en) 2016-02-25
KR20190122884A (ko) 2019-10-30
CN109246436A (zh) 2019-01-18
JP2018174547A (ja) 2018-11-08
TR201908304T4 (tr) 2019-06-21
RU2673277C1 (ru) 2018-11-23
KR102038243B1 (ko) 2019-10-29
CN109348231A (zh) 2019-02-15
JP2020114013A (ja) 2020-07-27
KR101906753B1 (ko) 2018-10-10
CN109246436B (zh) 2022-04-05
US10582214B2 (en) 2020-03-03
CN109547799A (zh) 2019-03-29
KR101814890B1 (ko) 2018-01-30
PL2982115T3 (pl) 2019-11-29
RU2714364C1 (ru) 2020-02-14
GB201306221D0 (en) 2013-05-22
CN109510993A (zh) 2019-03-22
WO2014161740A1 (en) 2014-10-09

Similar Documents

Publication Publication Date Title
BR122017024393B1 (pt) Método e aparelho para codificar ou decodificar uma imagem com predição de informação de movimento inter-camada de acordo com esquema de compressão de informação de movimento
BR122020002124B1 (pt) Método e dispositivo de derivação de valores de modo de predição de referência e codificação e decodificação de informação representando modos de predição, e meio de armazenamento
GB2512828A (en) Method and apparatus for encoding or decoding an image with inter layer motion information prediction

Legal Events

Date Code Title Description
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 19/31 , H04N 19/463 , H04N 19/51

Ipc: H04N 19/31 (2006.01)

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 24/03/2014, OBSERVADAS AS CONDICOES LEGAIS