BR112014002932B1 - Método e dispositivo para codificar uma sequência de imagens e método e dispositivo para decodificar uma sequência de imagens - Google Patents
Método e dispositivo para codificar uma sequência de imagens e método e dispositivo para decodificar uma sequência de imagens Download PDFInfo
- Publication number
- BR112014002932B1 BR112014002932B1 BR112014002932-6A BR112014002932A BR112014002932B1 BR 112014002932 B1 BR112014002932 B1 BR 112014002932B1 BR 112014002932 A BR112014002932 A BR 112014002932A BR 112014002932 B1 BR112014002932 B1 BR 112014002932B1
- Authority
- BR
- Brazil
- Prior art keywords
- motion information
- predictors
- processing
- predictor candidates
- information predictor
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/127—Prioritisation of hardware or computational resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
MÉTODO E DISPOSITIVO PARA CODIFICAR UMA SEQUÊNCIA DE IMAGENS E MÉTODO E DISPOSITIVO PARA DECODIFICAR UMA SEQUÊNCIA DE IMAGENS A descrição refere-se a um método e dispositivo para derivar ao menos um preditor de informação de movimento para codificar uma parte de imagem através de compensação de movimento. Ao menos dois primeiro e segundo subconjuntos distintos de preditores de informação de movimento de um primeiro conjunto de preditores de informação de movimento são fornecidos. O processamento do primeiro subconjunto de preditores de informação de movimento e o processamento do segundo subconjunto de preditores de informação de movimento são executados para obter um conjunto final de preditores de informação de movimento úteis na predição da dita parte de imagem a partir da parte de imagem de referência. O processamento do segundo subconjunto pode compreender remover duplicatas dentre os preditores de informação de movimento do dito segundo subconjunto, e pode ser executado de tal forma a excluir os preditores temporais. Ao menos parte do processamento do segundo subconjunto de preditores de informação de movimento pode ser executada simultaneamente com ao menos parte do processamento do primeiro subconjunto de preditores de informação de movimento.
Description
[0001] A presente invenção refere-se a um método e dispositivo para codificar uma sequência de imagens digitais e um método e dispositivo para decodificar um fluxo de bits correspondente. A invenção refere-se ainda a um método e dispositivo para derivar a informação de movimento, incluindo pelo menos um preditor de informação de movimento para predição de uma parte de imagem de uma imagem predita por compensação de movimento com relação a pelo menos uma parte de imagem de referência.
[0002] A invenção pode ser aplicada no campo de processamento de sinal digital, e em particular, no campo de compressão de vídeo usando a compensação de movimento para reduzir as redundâncias espaciais e temporais em fluxos de vídeo.
[0003] Muitos formatos de compressão de vídeo, tais como, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, usam a transformada discreta de cosseno baseada em bloco (DCT) e a compensação de movimento para remover as redundâncias especiais e discretas. Eles podem ser chamados de formatos de vídeo preditivos. Cada quadro ou imagem do sinal digital é dividido em fatias que são codificadas e podem ser decodificadas independentemente. Uma fatia é tipicamente uma parte retangular do quadro, ou mais geralmente, uma parte de um quadro ou um quadro inteiro. Ademais, cada fatia é dividida em macroblocos (MBs), e cada macrobloco é dividido ainda em blocos, tipicamente blocos de 8x8 pixels. Os quadros codificados são de dois tipos: quadros preditos temporais (ou preditos a partir de um quadro de referência chamado de quadro P ou preditos a partir de dois quadros de referência chamados de quadros B) e os quadros preditos atemporais (chamados de Intra- quadros ou quadros I).
[0004] A predição temporal consiste em encontrar, em um quadro de referência, ou um quadro anterior ou um quadro futuro da sequência de video, uma parte de imagem ou área de referência que está mais próxima do bloco a codificar. Essa eta- pa é conhecida tipicamente como estimativa de movimento. Em seguida, o bloco é predito usando a área de referência em uma etapa tipicamente chamada de compensação de movimento - a diferença entre o bloco a codificar e a parte de referência que é codificada, junto com um item de informação de movimento relativo ao vetor de movimento que indica a área de referência a ser usada para compensação de movimento. Na predição INTRA, uma direção de predição é codificada.
[0005] De modo a reduzir mais o custo de codificar a informação de movimento, um vetor de movimento pode ser codificado em função de uma diferença entre o vetor de movimento e um preditor de vetor de movimento, computado tipicamente a partir de um ou mais vetores de movimento dos blocos que envolvem o bloco a ser codificado.
[0006] Em H.264, os vetores de movimento são codificados com relação e um preditor mediano computado a partir dos vetores de movimento situados em uma vizinhança causal do bloco a codificar, por exemplo, a partir dos blocos situados acima e à esquerda do bloco a codificar. A diferença, também chamada de um vetor de movimento residual, entre o preditor mediano e o vetor de movimento de bloco atual é codificada para reduzir o custo de codificação.
[0007] A codificação usando vetores de movimento residuais economiza algumas taxas de bits, mas precisa que o decodificador execute alguma computação do preditor de vetor de movimento de modo a decodificar o valor do dito vetor de movimento de um bloco a decodificar.
[0008] Recentemente, foram propostas melhorias adicionais na eficiência de co-dificação, tal como usando vários preditores de vetor de movimento possíveis. Esse método, chamado frequentemente de competição do vetor de movimento (MVCOMP), consiste em determinar, dentre os vários preditores de vetor de movi-mento ou candidatos que o preditor de vetor de movimento minimiza o custo de codificação, tipicamente um custo de taxa de distorção, da informação de movimento residual. A informação de movimento residual compreende o vetor de movimento residual, isto é, a diferença entre o vetor de movimento real do bloco a ser codificado e o preditor de vetor de movimento selecionado, e um item de informação que indica o dito preditor de vetor de movimento selecionado, tal como, por exemplo, um valor codificado do índice do preditor de vetor de movimento selecionado. O índice do preditor de vetor de movimento selecionado é codificado no fluxo de bits em um código unário máximo baseado em um tamanho de lista fixo.
[0009] Na Codificação de Vídeo de Alta Eficiência (HEVC), uma nova implemen-tação do mesmo conceito para possibilitar a seleção do melhor preditor, a partir de um dado conjunto de preditores compostos de vetores de movimento espacial e vetores de movimento temporal, foi proposta. Essa técnica é chamada de uma Predição de Vetor de Movimento Avançada (AMVP). Se alguns preditores, dentre esses preditores do dado conjunto, são duplicatas de outros preditores no conjunto, as duplicatas podem ser removidas e preditores adicionais podem ser adicionados ao conjunto para criar um novo segundo conjunto de preditores. Os preditores adicionados podem ser uma combinação dos preditores espaciais e temporais já no conjunto, outros preditores derivados desses preditores espaciais e temporais, ou preditores com valores fixos. Finalmente, os preditores duplicados do segundo conjunto de preditores são removidos de modo a obter candidatos não redundantes no segundo conjunto de preditores.
[0010] O segundo conjunto gerado de preditores aumenta significativamente a complexidade computacional do processo de derivação. O aumento da complexidade computacional resulta da geração de preditores em cascata.
[0011] A implementação HEVC atual usa um conjunto de preditores de vetor de movimento contendo no máximo 2 preditores no modo Inter e no máximo 5 preditores no modo "Merge Skip" e no modo “Merge”.
[0012] No modelo HEVC atual, a predição inter pode ser unidirecional ou bidire-cional. A unidirecional refere-se a um bloco preditor usado para prever o bloco atual. O bloco preditor é definido por um índice de lista, um índice de quadro de referência e um vetor de movimento. O índice de lista corresponde a uma lista de quadros de referência. Pode-se considerar, por exemplo, que duas listas sejam usadas: L0 e L1. Uma lista contém pelo menos um quadro de referência e um quadro de referência pode ser incluído em ambas as listas. Um vetor de movimento tem dois componen- tes: horizontal e vertical. O vetor de movimento corresponde ao deslocamento espacial em termos de pixels entre o bloco atual e o bloco de preditor temporal no quadro de referência. Assim, o preditor de bloco para a predição unidirecional é o bloco a partir do quadro de referência (índice de referência) da lista, apontado pelo vetor de movimento.
[0013] Para a predição inter bidirecional, dois preditores de bloco são considera-dos. Um para cada lista (LO e L1). Consequentemente, 2 índices de quadro de referência são considerados, bem como 2 vetores de movimento. O preditor interblocos para a predição bidirecional é a média, pixel por pixel, dos dois blocos apontados por esses dois vetores de movimento.
[0014] A informação de movimento dedicada ao preditor interblocos pode ser definida pelos seguintes parâmetros: - Tipo de direção: uni ou bi - Uma lista (unidirecional) ou duas listas (bidirecional): LO, L1, LO e L1. - Um (unidirecional) ou dois índices de quadro de referência (bidirecional): RefLO, RefL1, (RefLO, RefL1). - Um (unidirecional) ou dois vetores de movimento (bidirecional): cada vetor de movimento tem dois componentes (mvx horizontal e mny vertical).
[0015] Pode-se notar que o preditor inter bidirecional pode somente ser usado para um tipo de fatia tipo B. A predição inter em fatias B pode ser uni ou bidirecional. Em fatias P, a predição inter é somente unidirecional.
[0016] O modelo atual de HEVC usa 3 modos Inter diferentes: um modo Inter, um modo Merge e um modo Merge Skip. A diferença principal entre esses modos é a sinalização de dados no fluxo de bits.
[0017] No modo Inter, todos os dados são explicitamente sinalizados. Isso signi-fica que a textura residual é codificada e inserida no fluxo de bits (a textura residual é a diferença entre o bloco atual e o bloco de predição Inter). Para a informação de movimento, todos os dados são codificados. Assim, o tipo de direção é codificado (uni ou bidirecional). O índice de lista, se necessário, é também codificado e inserido no fluxo de bits. Os índices de quadro de referência relacionados são explicitamente codificados e inseridos no fluxo de bits. O valor do vetor de movimento é predito pelo preditor de vetor de movimento selecionado. O residual de vetor de movimento para cada componente é então codificado e inserido no fluxo de bits seguido pelo índice de preditor.
[0018] No modo Merge, a textura residual e o índice de preditor são codificados e inseridos no fluxo de bits. Um residual de vetor de movimento, tipo de direção, lista ou índice de quadro de referência não são codificados. Esses parâmetros de movimento são derivados do índice de preditor. Assim, o preditor é o preditor de todos os dados da informação de movimento.
[0019] No modo Merge Skip, nenhuma informação é transmitida para o decodifi- cador, exceto pelo “modo” e o índice de preditor. Nesse modo, o processamento é similar ao modo Merge, exceto que nenhuma textura residual é codificada ou transmitida. Os valores de pixel de um bloco Merge Skip são os valores de pixel do preditor de bloco.
[0020] No conjunto de preditores de informação de movimento representado na FIG. 1, dois vetores de movimento espacial do modo Inter são escolhidos dentre esses blocos, no Quadro N, que estão acima e à esquerda do bloco a ser codificado, incluindo os blocos de canto acima e à esquerda.
[0021] O preditor esquerdo é selecionado dentre os blocos “Esquerdo Abaixo” e “Esquerdo”. As seguintes condições são avaliadas na ordem especificada até que um valor de vetor de movimento é encontrado: a. O vetor de movimento da mesma lista de referência e da mesma imagem de referência. b. O vetor de movimento da outra lista de referência e a mesma imagem de referência. c. O vetor de movimento escalonado da mesma lista de referência e uma imagem de referência diferente. d. O vetor de movimento escalonado da outra lista de referência e uma imagem de referência diferente.
[0022] Se nenhum valor for encontrado, o preditor esquerdo é considerado como estando indisponível. Nesse caso, ele indica que os blocos relacionados forma intra- codificados ou esses blocos não existem. O preditor acima é selecionado dentre “Direito Acima”, “Acima” e “Esquerdo Acima” nessa ordem específica, com as mesmas condições descritas acima.
[0023] O preditor de movimento temporal vem do quadro de referência mais pró-ximo em configuração de baixo atraso. No caso de quadros B, 2 vetores de movi-mento são considerados para o bloco colocalizado no quadro N-1. Um está na primeira lista “LO” e um está na segunda lista “L1”. Se ambos os vetores de movimento existem, o vetor de movimento que tem a distância temporal mais curta é selecionado. Se ambos os preditores de vetor de movimento têm a mesma distância temporal, o movimento a partir da primeira lista “LO” é selecionado. O vetor de movimento colocalizado selecionado é então escalonado, se necessário, de acordo com sua distância temporal e com a distância temporal do vetor de movimento codificado. Se nenhum preditor colocalizado existe, o preditor é considerado como indisponível.
[0024] Para codificação de quadros B hierárquicos, 2 vetores de movimento co- localizados podem ser considerados. Ambos vêm do quadro de referência futuro. O vetor de movimento que cruza o quadro atual é selecionado. Se ambos os preditores cruzam o quadro atual, o vetor de movimento que tem a distância temporal mais curta é selecionado. Se ambos os preditores têm a mesma distância temporal, o movimento a partir da primeira lista “LO” é então selecionado. O vetor de movimento colocalizado selecionado é então escalonado, se necessário, de acordo com sua distância temporal e com a distância temporal do vetor de movimento codificado. Se nenhum preditor colocalizado existe, o preditor é considerado como indisponível.
[0025] Para o caso de baixo atraso e o caso hierárquico, quando o bloco coloca-lizado é dividido em uma pluralidade de partições (potencialmente, o bloco colocalizado contém uma pluralidade de vetores de movimento), a partição selecionada é a partição central superior esquerda. Ademais, o preditor temporal é o vetor de movimento do bloco na posição inferior direita do bloco colocalizado (posição H na FIG. 1). Se esse bloco não existe ou se ele é intracodificado, o bloco na posição central do bloco colocalizado é selecionado como o vetor de movimento que será derivado.
[0026] O valor do preditor de movimento é então adicionado ao conjunto de pre- ditores.
[0027] Finalmente, o processo de supressão é aplicado. Esse consiste em remo-ver os preditores duplicados do conjunto de preditores de vetor de movimento selecionados. No fim desse processo, o conjunto contém preditores de vetor de movimento não duplicados. Esse conjunto pode conter 1, 2, 3 ou 4 preditores. No modelo atual, a lista de preditores é fixa de modo a limitar seu tamanho a 2. Consequentemente, o preditor selecionado é codificado com um bit. Assim, se o número de preditores na lista é 3 ou 4, o último preditor ou respectivamente os 2 últimos preditores são removidos.
[0028] Um preditor de modo Merge (“clássico” ou Skip) representa toda a infor-mação de movimento: direção, lista, índice de quadro de referência e vetores de movimento. O índice de preditor é codificado com um código unário máximo como representado na Tabela 1. Tabela 1
[0029] O tamanho da lista é fixado em 5 para todos os blocos Merge ou blocos Merge Skip no modelo HEVC atual.
[0030] A FIG. 2 é um fluxograma de um exemplo de um processo de derivação de vetor de movimento para modos Merge de Interpredição (Merge Skip e Merge têm o mesmo processo de derivação de preditor de vetor de movimento). O método é aplicado para obter um conjunto de potenciais preditores de informação de movi-mento para codificação de uma parte de imagem de uma imagem com relação a uma parte de imagem de referência. Na primeira etapa da derivação, 7 posições de bloco são consideradas (601 a 607). Essas posições são as posições espaciais e temporais representadas na FIG. 1 (cada posição é rotulada a mesma em ambas as figuras). 0 módulo 608 verifica a disponibilidade desses vetores de movimento e seleciona no máximo 5 vetores de movimento. Esse módulo implementado a etapa 608 determina que um preditor está disponível se ele existe e se o bloco não é intracodi- ficado. A seleção e a verificação dos 5 vetores de movimento selecionados são executadas de acordo com as seguintes condições: - Se o vetor de movimento “esquerdo” (601) está disponível (isto é, se ele existe e se esse bloco não é intracodificado), o vetor de movimento do bloco “es-querdo” é selecionado e usado como o preditor 1 (610). - Se o vetor de movimento “Acima" (602) está disponível, o vetor de movimento do bloco “Acima” é selecionado e usado como o preditor 2 (611). - Se o vetor de movimento “Direito Acima” (603) está disponível, o vetor de movimento do bloco “Direito Acima” é selecionado e usado como o preditor 3 (612). - Se o vetor de movimento “Esquerdo Abaixo” (604) está disponível, o vetor de movimento do bloco “Esquerdo Abaixo” é selecionado e usado como o preditor 4 (613). - Se um (ou mais) dos preditores precedentes não está disponível e se o vetor de movimento “Esquerdo Acima” (605) está disponível, o vetor de movimento do bloco “Esquerdo Acima” é adicionado ao conjunto de preditores de vetor de movimento após o preditor espacial adicionado. - Se o vetor de movimento “H” está disponível, o vetor de movimento do bloco “H” é selecionado e usado como o preditor 5 (614). Se o bloco “H” não está disponível, a disponibilidade do vetor de movimento “colocalizado” (isto é, o vetor de movimento do bloco na mesma posição no quadro de referência do bloco atual no quadro atual) é verificado e, se ele existir, é usado como o preditor temporal. A verificação de disponibilidade executada pelo módulo 608 exige 1 ciclo.
[0031] O preditor temporal deveria ser escalonado se necessário. De fato, para o vetor de movimento temporal, a direção e o índice de quadro de referência não dependem de H ou do bloco colocalizado, mas dos dados da fatia atual. Se o bloco atual está em uma fatia B, o preditor temporal é sempre bidirecional e sempre unidi- recional para fatias P. Os índices de quadro de referência para cada lista de quadros de referência (LO, L1) são derivados do preditor Esquerdo e do preditor Acima. Se, para uma lista, ambos os blocos Esquerdo e Acima não têm índice de quadro de referência, o índice de quadro de referência para o preditor temporal é configurado em zero.
[0032] Como o índice de quadro de referência para o preditor temporal não de-pende do índice de quadro de referência do bloco “H” ou “colocalizado”, mas do quadro de referência do preditor Esquerdo e Acima, seu valor de movimento deveria ser escalonado. Isso significa que se a distância temporal coberta pelo vetor de movimento temporal é diferente da diferença entre o quadro atual e o quadro de referência do preditor, o vetor de movimento temporal é escalonado para cobrir a distância temporal correta.
[0033] No fim dos módulos 608 e 609, o conjunto de preditores contém no máxi-mo 5 preditores (610 a 614). Em seguida, um processo de supressão 615 é aplicado de modo a remover os candidatos duplicados do conjunto de preditores. Esse processo consiste em comparar cada preditor do conjunto de todos os outros preditores no mesmo conjunto e em remover esses preditores que são iguais a outro preditor no conjunto (enquanto mantendo o outro preditor cujo candidato duplicado é uma duplicata no conjunto), de modo que não haja duplicatas dentre os preditores no conjunto. O processo de supressão para fatias P leva em conta os valores dos vetores de movimento e seus índices de quadro de referência. Consequentemente, os dois componentes de um vetor de movimento e seu índice de referência são comparados a todos os outros e somente se esses três valores forem iguais, o preditor é removido do conjunto. Para um quadro B, esse critério é estendido para a direção e as listas. Assim, um preditor é considerado como um preditor duplicado se ele usar a mesma direção, as mesmas listas (L0, L1 ou L0 e L1), os índices de quadro de referência e o mesmo valor dos vetores de movimento (MV_L0 e MV L1 para predição bidirecional). O processo de supressão dura 1 ciclo quando 5 preditores no máximo precisam ser comparados. De fato, pode-se considerar que 12 comparações podem ser computadas em 1 ciclo. O número de comparações para o processo de supressão no caso mais complexo é igual à Soma de 0 a N-1. Consequentemente, para 5 preditores, 10 comparações são necessárias (isto é, 4 + 3 + 2 + 1 =10).
[0034] No fim desse processo de supressão 615, um conjunto de preditores re-duzido é gerado 616.
[0035] Em seguida, um módulo de geração de vetor de movimento 617 gera no-vos candidatos com base no conjunto de preditores de vetor de movimento reduzido. Esse processamento pode durar tipicamente pelo menos um ciclo. Pode-se notar que no modelo HEVC atual, o esquema usado pode produzir um máximo de 20 preditores no caso mais complexo. Esse módulo 617 produz um segundo conjunto de preditores 618.
[0036] O segundo conjunto de preditores 618 é adicionado ao conjunto reduzido de preditores 616 e o processo de supressão é aplicado para remover os candidatos duplicados desse segundo conjunto de preditores comparado com tanto o conjunto reduzido quando o segundo conjunto. Esse processo de supressão é similar ao processo de supressão do módulo 615. Ainda no fim, se a lista contém mais de 5 preditores, a lista de preditores é truncada em 5 que é o tamanho da lista atual definido no modelo HEVC. Pode-se notar que esse processo pode durar pelo menos 1 ciclo. Entretanto, a duração do ciclo depende do número de preditores gerados no segundo conjunto de preditores 618. Na implementação atual de HEVC, esse processo dura 3 ciclos por causa da quantidade de preditores gerados (caso mais complexo: 32 comparações para o modelo atual).
[0037] Finalmente, o processo de supressão 619 produz uma lista final de predi-tores 620 a partir da qual o preditor para o bloco atual será extraído.
[0038] Uma desvantagem do processo é que a derivação do preditor de vetor de movimento atual para o modo Merge pode alcançar 11 ciclos no caso mais complexo, enquanto pelo menos 5 ciclos são necessários no caso menos complexo. A derivação do vetor de movimento tem assim um impacto significativo na complexidade da codificação e da decodificação.
[0039] A presente invenção foi formulada para abordar uma ou mais das consi-derações anteriores.
[0040] Pode ser fornecido, independentemente, em um primeiro aspecto da in-venção, um método de derivar pelo menos um preditor de informação de movimento para codificação ou decodificação de uma parte de imagem de uma imagem por compensação de movimento com relação a pelo menos uma parte de imagem de referência, onde para a dita parte de imagem a ser codificada ou decodificada, o método compreende fornecer, para processamento, pelo menos dois primeiro e segundo subconjuntos distintos de preditores de informação de movimento de um primeiro conjunto de preditores de informação de movimento (801 a 807), o primeiro subconjunto compreendendo pelo menos um preditor de informação de movimento temporal, e o segundo subconjunto compreendendo pelo menos um preditor de informação de movimento espacial e excluindo qualquer preditor de informação de movimento temporal; processar (808, 809) o primeiro subconjunto de preditores de informação de movimento; e processar (808, 815, 817) o segundo subconjunto de preditores de informação de movimento; e obter (819), com base nos preditores de informação de movimento (818, 814) resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento, um conjunto final (820) de preditores de informação de movimento úteis para prever a dita parte de imagem a partir da parte de imagem de referência; onde o processamento do segundo subconjunto compreende remover duplicatas dentre os preditores de informação de movimento do dito segundo subconjunto somente, caso no qual o segundo subconjunto contém um ou mais preditores de informação de movimento que são os mesmos, para fornecer um subconjunto reduzido de preditores de informação de movimento (816),
[0041] Como os preditores temporais são excluídos da seleção para o segundo subconjunto, entende-se que o processo de remover ou suprimir as duplicatas dentre os preditores selecionados do segundo subconjunto pode ser aplicado a preditores espaciais somente, e dessa forma, não envolve o processamento de preditores de informação de movimento temporais.
[0042] Ao excluir os preditores temporais do processo de supressão dessa for-ma, o número total de comparações é reduzido, reduzindo assim a complexidade computacional.
[0043] Ao contrário, em certas modalidades, os preditores espaciais são excluí-dos da seleção para o primeiro subconjunto. O processamento do primeiro conjunto (isto é, os preditores de informação de movimento) pode não envolver a remoção de duplicatas em algumas modalidades, embora, como explicado em mais detalhes abaixo, as modalidades possam combinar vantajosamente os primeiro e segundo subconjuntos de modo a excluir duplicatas no estágio de obter o conjunto final. Determinado de forma diferente, o processamento do primeiro conjunto pode então não envolver a remoção de duplicatas antes de obter o conjunto final.
[0044] Em uma modalidade, o escalonamento do preditor de informação de mo-vimento temporal do primeiro subconjunto é executado simultaneamente com as etapas de remover duplicatas e gerar preditores de informação de movimento adicionais do segundo subconjunto.
[0045] Em uma modalidade, o método inclui: remover duplicatas dentre os predi-tores de informação de movimento resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento, caso no qual um ou mais preditores de informação de movimento resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento são os mesmos, para fornecer o conjunto final de preditores de informação de movimento úteis para codificar a dita parte de imagem tal que não haja duplicatas dentre o conjunto final de preditores de informação de movimento.
[0046] Em uma modalidade, o processamento do segundo subconjunto de predi-tores de informação de movimento compreende ainda remover duplicatas dentre os preditores de informação de movimento do segundo subconjunto adicional de preditores de informação de movimento no caso em que o segundo subconjunto adicional contém um ou mais preditores de informação de movimento que são os mesmos, para fornecer um segundo subconjunto reduzido de preditores de informação de movimento.
[0047] Em uma modalidade, a etapa de remover duplicatas dentre os preditores de informação de movimento do segundo subconjunto adicional é executada simultaneamente com o escalonamento do preditor de informação de movimento temporal do primeiro subconjunto.
[0048] Em uma modalidade, o método inclui adicionar, ao segundo subconjunto reduzido de preditores de informação de movimento, um preditor de informação de movimento, resultante do processamento do primeiro subconjunto de preditores de informação de movimento, que não é uma duplicata de quaisquer dos preditores de informação de movimento do segundo subconjunto reduzido de preditores de informação de movimento para obter o conjunto final de preditores de informação de movimento.
[0049] Em uma modalidade, o método inclui adicionar, ao subconjunto reduzido de preditores de informação de movimento, um preditor de informação de movimento resultante do processamento do primeiro subconjunto de preditores de informação de movimento que não é uma duplicata de qualquer um dos preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento; e onde o conjunto final de preditores de informação de movimento não compreende vetores de movimento duplicados dentre os preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento e o segundo subconjunto adicional de preditores de informação de movimento.
[0050] Em uma modalidade, o processamento do segundo subconjunto executa-do simultaneamente com o processamento do primeiro subconjunto é baseado em uma estimativa da duração do processamento do primeiro subconjunto.
[0051] Em uma modalidade, os preditores de informação de movimento resultan-tes do processamento do segundo subconjunto que são adicionados aos preditores de informação de movimento resultantes do processamento do primeiro subconjunto para obter o conjunto final de preditores de informação de movimento são baseados na duração do processamento do primeiro subconjunto.
[0052] Em uma modalidade, o método inclui uma etapa de determinar, com base na distância temporal entre a imagem da parte de imagem e a imagem da parte de imagem de referência, se ou não um processo de escalonamento temporal será aplicado ao primeiro subconjunto de preditores de informação de movimento; e onde, no caso em que determina-se que um processo de escalonamento temporal será aplicado, o processamento do primeiro subconjunto de preditores de informação de movimento compreende uma etapa de escalonamento temporal de preditores de informação de movimento do primeiro subconjunto de preditores de informação de movimento com base na diferença temporal entre a imagem da parte de imagem e a imagem da parte de imagem de referência; de outra forma, no caso em que determina-se que um processamento de escalonamento temporal não será aplicado, o processamento do primeiro subconjunto de preditores de informação de movimento compreende uma etapa de remover as duplicatas dentre os preditores de informação de movimento do primeiro subconjunto de preditores de informação de movimento de modo que um subconjunto reduzido compreendendo preditores de informação de movimento não duplicados dentre os preditores de informação de movimento do primeiro subconjunto de preditores de informação de movimento e do segundo subconjunto de preditores de informação de movimento seja fornecido pelo processamento do primeiro subconjunto de preditores de informação de movimento e pelo processamento do segundo subconjunto de preditores de informação de movimento.
[0053] Em uma modalidade, no caso em que determina-se que um processo de escalonamento temporal será aplicado, o conjunto final de preditores é obtido removendo-se as duplicatas dentre os preditores de informação de movimento resultantes do processamento simultâneo do primeiro subconjunto de preditores de informação de movimento e do segundo subconjunto de preditores de informação de movimento; de outra forma, no caso em que determina-se que um processo de escalonamento temporal não será aplicado, o conjunto final de preditores é obtido através da geração de preditores de informação de movimento adicionais, com base no subconjunto reduzido para fornecer um segundo subconjunto adicional de preditores de informação de movimento e remover duplicatas dentre o segundo subconjunto adicional de preditores de informação de movimento.
[0054] Em uma modalidade, o método inclui determinar a complexidade do pro-cesso de escalonamento temporal do primeiro subconjunto de preditores de informação de movimento e onde, no caso em que é determinado que o processo de escalonamento temporal terá uma duração mais longa do que um limite de duração predeterminado, o conjunto final de preditores de informação de movimento é obtido removendo-se as duplicatas dentre os preditores de informação de movimento resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento; de outra forma, no caso em que é determinado que o processo de escalonamento temporal terá uma duração mais curta do que o limite de duração predeterminado, o conjunto final de preditores é obtido adicionando-se, ao subconjunto reduzido de preditores de informação de movimento obtido a partir do segundo subconjunto de preditores de informação de movimento, um preditor de informação de movimento resultante do processamento do primeiro subconjunto de preditores de informação de movimento que não é uma duplicata de qualquer um dos preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento; onde o conjunto final de preditores de informação de movimento compreende preditores de informação de movimento não duplicados dentre os preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento e do segundo subconjunto adicional de preditores de informação de movimento.
[0055] Em uma modalidade, o processamento do segundo subconjunto do pri-meiro conjunto de preditores de informação de movimento compreende remover as duplicatas dentre os preditores de informação de movimento do dito segundo subconjunto para fornecer um subconjunto reduzido de preditores de informação de movimento; e gerar um conjunto adicional de preditores de informação de movimento com base em um dos preditores de informação de movimento do dito segundo subconjunto e incluindo o dito um dos preditores de informação de movimento do dito segundo subconjunto, onde não há duplicatas dentre o conjunto adicional de preditores de informação de movimento, o método adicionalmente compreende remover as duplicatas dentre o subconjunto reduzido de preditores de informação de movimento e o conjunto adicional de preditores de informação de movimento para fornecer um conjunto não duplicado de preditores de informação de movimento.
[0056] Em uma modalidade, o processamento do segundo subconjunto do pri-meiro conjunto de preditores de informação de movimento adicionalmente compreende: gerar preditores de informação de movimento adicionais com base no subconjunto reduzido de preditores de informação de movimento para fornecer um segundo subconjunto adicional de preditores de informação de movimento; e remover as duplicatas dentre os preditores de informação de movimento do segundo subconjunto adicional de preditores de informação de movimento e o conjunto não duplicado de preditores de informação de movimento para fornecer um segundo conjunto não duplicado de preditores de informação de movimento.
[0057] Em uma modalidade, o método inclui adicionar, ao segundo conjunto não duplicado de preditores de informação de movimento, um preditor de informação de movimento resultante do processamento do primeiro subconjunto de preditores de informação de movimento que não é uma duplicata de qualquer um dos preditores de informação de movimento do segundo conjunto não duplicado de preditores de informação de movimento para obter o conjunto final de preditores de informação de movimento.
[0058] Em um segundo aspecto da invenção, pode ser independentemente for-necido um dispositivo para derivar pelo menos um preditor de informação de movimento para codificação ou decodificação de uma parte de imagem de uma imagem por compensação de movimento com relação a pelo menos uma parte de imagem de referência, o dispositivo compreendendo: dispositivo para obter, pelo menos dois primeiro e segundo subconjuntos distintos de preditores de informação de movimento de um primeiro conjunto de preditores de informação de movimento (801 a 807), o primeiro subconjunto compreendendo pelo menos um preditor de informação de movimento temporal, e o segundo subconjunto compreendendo pelo menos um preditor de informação de movimento espacial e excluindo qualquer preditor de informação de movimento temporal; primeiro dispositivo de processamento (808, 809) para pro- cessar o primeiro subconjunto de preditores de informação de movimento; e segundo dispositivo de processamento (808, 815, 817) para processar o segundo subconjunto de preditores de informação de movimento; e dispositivo para obter (819), com base nos preditores de informação de movimento (818, 814) resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento, um conjunto final (820) de preditores de informação de movimento úteis para prever a dita parte de imagem a partir da parte de imagem de referência; onde o segundo processamento é operável para remover duplicatas dentre os preditores de informação de movimento do dito segundo subconjunto somente, caso no qual o segundo subconjunto contém um ou mais preditores de informação de movimento que são os mesmos, para fornecer um subconjunto reduzido de preditores de informação de movimento (816).
[0059] Em uma modalidade, o primeiro dispositivo de processamento é operável para executar escalonamento do preditores de informação de movimento temporal do primeiro subconjunto simultaneamente com as operações de remover duplicatas e gerar preditores de informação de movimento adicionais do segundo subconjunto executadas pelo segundo dispositivo de processamento.
[0060] Em uma modalidade, o dispositivo inclui dispositivo de supressão para remover duplicatas dentre os preditores de informação de movimento resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento, no caso em que um ou mais preditores de informação de movimento resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento são os mesmos, para fornecer o conjunto final de preditores de informação de movimento úteis para codificar a dita parte de imagem tal que não haja duplicatas dentre o conjunto final de preditores de informação de movimento.
[0061] Em uma modalidade, o segundo dispositivo de processamento é operável para remover duplicatas dentre os preditores de informação de movimento do se- gundo subconjunto adicional de preditores de informação de movimento no caso em que o segundo subconjunto adicional contém um ou mais preditores de informação de movimento que são os mesmos, para fornecer um segundo subconjunto reduzido de preditores de informação de movimento.
[0062] Em uma modalidade, o segundo dispositivo de processamento é operável para remover duplicatas dentre os preditores de informação de movimento do se-gundo subconjunto adicional simultaneamente com o escalonamento do preditor de informação de movimento temporal do primeiro subconjunto executado pelo primeiro dispositivo de processamento.
[0063] Em uma modalidade, o dispositivo inclui dispositivo operável para adicio-nar, ao segundo subconjunto reduzido de preditores de informação de movimento, um preditor de informação de movimento, resultante do processamento do primeiro subconjunto de preditores de informação de movimento, que não é uma duplicata de qualquer um dos preditores de informação de movimento do segundo subconjunto reduzido de preditores de informação de movimento para obter o conjunto final de preditores de informação de movimento.
[0064] Em uma modalidade, o dispositivo inclui dispositivo para adicionar, ao subconjunto reduzido de preditores de informação de movimento, um preditor de informação de movimento resultante do processamento do primeiro subconjunto de preditores de informação de movimento que não é uma duplicata de qualquer um dos preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento; e onde o conjunto final de preditores de informação de movimento compreende vetores de movimento não duplicados dentre os preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento e o segundo subconjunto adicional de preditores de informação de movimento.
[0065] Em uma modalidade, o dispositivo inclui dispositivo para estimar a dura-ção do processamento do primeiro subconjunto, onde o processamento do segundo subconjunto executado pelo segundo dispositivo de processamento simultaneamente com o processamento do primeiro subconjunto executado pelo primeiro dispositi- vo de processamento é baseado na estimativa da duração do processamento do primeiro subconjunto.
[0066] Em uma modalidade, o dispositivo inclui dispositivo para estimar a dura-ção do processamento do primeiro subconjunto onde os preditores de informação de movimento resultantes do processamento do segundo subconjunto que são adicionados aos preditores de informação de movimento resultantes do processamento do primeiro subconjunto para obter o conjunto final de preditores de informação de movimento são baseados na duração do processamento do primeiro subconjunto.
[0067] Em uma modalidade, o dispositivo inclui dispositivo para determinar, com base na diferença temporal entre a imagem da parte de imagem e a imagem da parte de imagem de referência, se ou não um processo de escalonamento temporal será aplicado ao primeiro subconjunto de preditores de informação de movimento; e onde no caso em que é determinado que um processo de escalonamento temporal será aplicado, o primeiro dispositivo de processamento é operável para executar o escalonamento temporal dos preditores de informação de movimento do primeiro subconjunto de preditores de informação de movimento com base na diferença temporal entre a imagem da parte de imagem e a imagem da parte de imagem de referência; de outra forma, no caso em que é determinado que um processo de escalonamento temporal não será aplicado, o primeiro dispositivo de processamento é operável para remover duplicatas dentre os preditores de informação de movimento do primeiro subconjunto de preditores de informação de movimento tal que um subconjunto reduzido compreendendo preditores de informação de movimento não du-plicados dentre os preditores de informação de movimento do primeiro subconjunto de preditores de informação de movimento e do segundo subconjunto de preditores de informação de movimento é fornecido através do processamento executado pelo primeiro dispositivo de processamento e pelo segundo dispositivo de processamento.
[0068] Em uma modalidade, o dispositivo inclui dispositivo de supressão para obter o conjunto final de preditores de informação de movimento onde, no caso em que é determinado que um processo de escalonamento temporal será aplicado, o dispositivo de supressão é operável para obter o conjunto final de preditores removendo-se as duplicatas dentre os preditores de informação de movimento resultantes do processamento simultâneo do primeiro subconjunto de preditores de informação de movimento e do segundo subconjunto de preditores de informação de movimento; de outra forma, no caso em que é determinado que um processo de escalonamento temporal não será aplicado, o primeiro ou segundo dispositivo de processamento é operável para obter preditores de informação de movimento adicionais, com base no subconjunto reduzido para fornecer um segundo subconjunto adicional de preditores de informação de movimento e o dispositivo de supressão é operável para remover duplicatas dentre o segundo subconjunto adicional de preditores de informação de movimento.
[0069] Em uma modalidade, o dispositivo inclui dispositivo para determinar a complexidade do processo de escalonamento temporal do primeiro subconjunto de preditores de informação de movimento e dispositivo de supressão para obter o conjunto final de preditores de informação de movimento que não são duplicados; onde, no caso em que é determinado que o processo de escalonamento temporal terá uma duração mais longa do que um limite de duração predeterminado, o dispositivo de supressão é operável para remover as duplicatas dentre os preditores de informação de movimento resultantes do processamento do primeiro subconjunto de preditores de informação de movimento e do processamento do segundo subconjunto de preditores de informação de movimento; de outra forma, no caso em que é determinado que o processo de escalonamento temporal terá uma duração mais curta do que um limite de duração predeterminado, o dispositivo de supressão é operável para adicionar ao subconjunto reduzido de preditores de informação de movimento obtido a partir do segundo subconjunto de preditores de informação de movimento, um preditor de informação de movimento resultante do processamento do primeiro subconjunto de preditores de informação de movimento que não é uma duplicata de qualquer um dos preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento; onde o conjunto final de preditores de informação de movimento compreende preditores de informação de movimento não duplicados dentre os preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento e do segundo subconjunto de preditores de informação de movimento.
[0070] Em uma modalidade, o segundo dispositivo de processamento compre-ende dispositivo para remover duplicatas dentre os preditores de informação de movimento do dito segundo subconjunto para fornecer um subconjunto reduzido de preditores de informação de movimento; e dispositivo para gerar um conjunto adicional de preditores de informação de movimento com base em um dos preditores de informação de movimento do dito segundo subconjunto e incluindo o dito um dos preditores de informação de movimento do dito segundo subconjunto, onde não há duplicatas dentre o conjunto adicional de preditores de informação de movimento, o dispositivo adicionalmente compreende dispositivo de supressão para remover duplicatas dentre o subconjunto reduzido de preditores de informação de movimento e o conjunto adicional de preditores de informação de movimento para fornecer um conjunto não duplicado de preditores de informação de movimento.
[0071] Em uma modalidade, o segundo dispositivo de processamento adicional-mente compreende dispositivo para gerar preditores de informação de movimento adicionais com base no subconjunto reduzido de preditores de informação de movimento para fornecer um segundo subconjunto adicional de preditores de informação de movimento; e dispositivo para remover duplicatas dentre os preditores de informação de movimento do segundo subconjunto adicional de preditores de informação de movimento e do conjunto não duplicado de preditores de informação de movimento para fornecer um segundo conjunto não duplicado de preditores de informação de movimento.
[0072] Em uma modalidade, os dispositivos de supressão são operáveis para adicionar, ao segundo conjunto não duplicado de preditores de informação de movimento, um preditor de informação de movimento resultante do processamento do primeiro subconjunto de preditores de informação de movimento que não é uma duplicata de qualquer um dos preditores de informação de movimento do segundo conjunto não duplicado de preditores de informação de movimento para obter o conjunto final de preditores de informação de movimento.
[0073] Na sequência de imagens digitais em um fluxo de bits, pelo menos uma parte de uma imagem sendo codificada por compensação de movimento com relação a uma parte de imagem de referência, onde, para pelo menos uma parte de imagem a ser codificada, o método compreende: obter um conjunto de preditores de informação de movimento úteis para predição de movimento da parte de imagem com relação a pelo menos uma parte de imagem de referência de acordo com o método de qualquer uma das modalidades do primeiro aspecto da invenção; selecionar pelo menos um preditor de informação de movimento a partir do conjunto de preditores de informação de movimento para codificar a parte de imagem; e codificar a parte de imagem usando pelo menos um preditor de informação de movimento selecionado.
[0074] Na sequência de imagens digitais em um fluxo de bits, pelo menos uma parte de uma imagem sendo codificada por compensação de movimento com relação a uma parte de imagem de referência, onde, para pelo menos uma parte de imagem a ser codificada, o método compreende: obter um conjunto de preditores de informação de movimento úteis para predição de movimento da parte de imagem com relação a pelo menos uma parte de imagem de referência de acordo com o método de qualquer uma das modalidades do primeiro aspecto da invenção; selecionar pelo menos um preditor de informação de movimento a partir do conjunto de preditores de informação de movimento para codificar a parte de imagem; e codificar a parte de imagem usando pelo menos um preditor de informação de movimento selecionado.
[0075] Um terceiro aspecto da invenção fornece um método para codificar uma sequência de imagens digitais em um fluxo de bits, pelo menos uma parte de uma imagem sendo codificada por compensação de movimento com relação a uma parte de imagem de referência, onde, para pelo menos uma parte da imagem a ser codificada, o método compreende: obter um conjunto de preditores de informação de movimento úteis para predição de movimento da parte de imagem com relação a pelo menos uma parte de imagem de referência de acordo com o método de qualquer uma das modalidades do primeiro aspecto da invenção; selecionar pelo menos um preditor de informação de movimento a partir do conjunto de preditores de informação de movimento para codificar a parte de imagem; e codificar a parte de imagem usando pelo menos um preditor de informação de movimento selecionado.
[0076] O método pode incluir codificar um item de informação identificando o preditor de informação de movimento selecionado.
[0077] Um quarto aspecto da invenção fornece um dispositivo de codificação pa-ra codificar uma sequência de imagens em um fluxo de bits, pelo menos uma parte de uma imagem sendo codificada por compensação de movimento com relação a uma parte de imagem de referência, o dispositivo de codificação compreendendo: um dispositivo para derivar pelo menos um preditor de informação de movimento de acordo com qualquer uma das modalidades do segundo aspecto da invenção; dispositivo de seleção selecionando pelo menos um preditor de informação de movimento a partir do conjunto de preditores de informação de movimento para codificar a parte de imagem; e dispositivo de codificação para codificar a parte de imagem usando pelo menos um preditor de informação de movimento selecionado.
[0078] Um quinto aspecto da invenção fornece um método para decodificar um fluxo de bits compreendendo uma sequência codificada de imagens, pelo menos uma parte de uma imagem codificada por compensação de movimento com relação a uma parte de imagem de referência, o método compreendendo, para pelo menos uma parte de imagem a ser decodificada: obter um conjunto de preditores de informação de movimento úteis para predição de movimento da parte de imagem com relação a pelo menos uma parte de imagem de referência de acordo com o método de qualquer uma das modalidades do primeiro aspecto da invenção; selecionar pelo menos um preditor de informação de movimento a partir do conjunto de preditores de informação de movimento para decodificar a parte de imagem; e decodificar a parte de imagem usando pelo menos um preditor de informação de movimento selecionado.
[0079] Um sexto aspecto da invenção fornece um dispositivo de decodificação para decodificar um fluxo de bits compreendendo uma sequência codificada de ima- gens, pelo menos uma parte de uma imagem codificada por compensação de movimento com relação a uma parte de imagem de referência, o dispositivo de decodifi- cação compreendendo:
[0080] um dispositivo para derivar pelo menos um preditor de informação de mo-vimento de acordo com o dispositivo de qualquer uma das modalidades do segundo aspecto da invenção; dispositivo de seleção para selecionar pelo menos um preditor de informação de movimento a partir do conjunto de preditores de informação de movimento para decodificar a parte de imagem; e dispositivo de decodificação para decodificar a parte de imagem usando pelo menos um preditor de informação de movimento selecionado.
[0081] Aprecia-se que as modalidades dos diferentes aspectos da invenção po-dem ser usadas para fatias P e B e tanto para predições inter uni e bidirecionais.
[0082] Pelo menos partes dos métodos de acordo com a invenção podem ser implementadas por computador. Consequentemente, s presente invenção pode tomar a forma de uma modalidade inteiramente de hardware, uma modalidade inteiramente de software (incluindo suporte lógico inalterável, software residente, micro- código, etc.) ou uma modalidade combinando aspectos de software e hardware que podem ser todos geralmente chamados aqui de um “circuito”, “módulo” ou “sistema”. Ademais, a presente invenção pode tomar a forma de um produto de programa de computador incorporado em qualquer meio tangível de expressão tendo código de programa utilizado por computador incorporado no meio.
[0083] Como a presente invenção pode ser implementada em software, a pre-sente invenção pode ser incorporada como código legível por computador para fornecimento a um aparelho programável em qualquer meio carreador adequado. Um meio carreador tangível pode compreender um meio de armazenamento tal como um disco flexível, um CD-ROM, uma unidade de disco rígido, um dispositivo de fita magnética ou um dispositivo de memória de estado sólido e similares. Um meio carreador transiente pode incluir um sinal tal como um sinal elétrico, um sinal eletrônico, um sinal óptico, um sinal acústico, um sinal magnético ou um sinal eletromagnético, por exemplo, um sinal de micro-ondas ou RF.
[0084] As modalidades da invenção serão agora descritas, por meio de exemplo somente, e com relação aos seguintes desenhos nos quais:
[0085] A FIG. 1 é um diagrama esquemático de um conjunto de preditores de vetor de movimento usados em um processo de predição de vetor de movimento no contexto das modalidades da presente invenção.
[0086] A FIG. 2 é um fluxograma que ilustra as etapas de um processo da técnica anterior para derivar um conjunto de preditores de vetor de movimento.
[0087] A FIG. 3 é um diagrama de blocos que ilustra os componentes de um dis-positivo de processamento no qual as modalidades da invenção podem ser implementadas.
[0088] A FIG. 4 é um diagrama de blocos que ilustra os componentes de um dis-positivo de codificação de acordo com as modalidades da invenção.
[0089] A FIG. 5 é um diagrama de blocos que ilustra os componentes de um dis-positivo de decodificação de acordo com as modalidades da invenção.
[0090] A FIG. 6 é um fluxograma que ilustra as etapas de um método para obter um conjunto de preditores de informação de movimento, de acordo com uma primeira modalidade da invenção.
[0091] A FIG. 7 é um fluxograma que ilustra as etapas de um método para obter um conjunto de preditores de informação de movimento, de acordo com uma segunda modalidade da invenção.
[0092] A FIG. 8 é um fluxograma que ilustra as etapas de um método para obter um conjunto de preditores de informação de movimento, de acordo com uma terceira modalidade da invenção.
[0093] A FIG. 9 é um fluxograma que ilustra as etapas de um método para obter um conjunto de preditores de informação de movimento, de acordo com uma quarta modalidade da invenção.
[0094] As FIGs. 10(a) a 10(c) ilustram esquematicamente os esquemas para a geração de preditores de vetor de movimento, de acordo com uma ou mais modalidades da invenção.
[0095] A FIG. 11 é um diagrama esquemático para ilustrar um processo de esca-lonamento de um preditor temporal usado nas modalidades da invenção.
[0096] Descrição Detalhada da Invenção
[0097] A FIG. 3 ilustra esquematicamente um dispositivo de processamento 200 configurado para implementar pelo menos uma modalidade da presente invenção. O dispositivo de processamento 200 pode ser um dispositivo, tal como um microcomputador, uma estação de trabalho ou um dispositivo portátil leve. O dispositivo 200 compreende um barramento de comunicação 213 ao qual são conectados preferencialmente: - uma unidade de processamento central 211, tal como um microprocessador, denotada CPU; - uma memória somente de leitura 207, denotada ROM, para armazenar programas de computador para implementar a invenção; - uma memória de acesso aleatório 212, 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 de necessários para implementar o método de codificação de uma sequência de imagens digitais e/ou o método de decodificação de um fluxo de bits, de acordo com as modalidades da invenção; e - uma interface de comunicação 202 conectada a uma rede de comunicação 203 ao longo da qual os dados digitais a serem processados são transmitidos.
[0098] Opcionalmente, o aparelho 200 pode incluir também os seguintes compo-nentes: - um dispositivo de armazenamento de dados 204, tal como, um disco rígido, para armazenar os programas de computador para implementar os métodos de uma ou mais modalidades da invenção e os dados usados ou produzidos durante a implementação de uma ou mais modalidades da invenção; - uma unidade de disco 205 para um disco 206, sendo a unidade de disco adaptada para ler os dados a partir do disco 206 ou para escrever os dados no dito disco; - uma tela 209 para exibir os dados e/ou que serve como uma interface gráfi ca ao usuário, por meio de um teclado 210 ou qualquer outro dispositivo de apontamento.
[0099] O aparelho 200 pode ser conectado a vários periféricos, tal como, por exemplo, uma câmera digital 200 ou um microfone 208, sendo cada um conectado a um cartão de entrada/saída (não mostrado), de modo a fornecer os dados de multimídia ao aparelho 200.
[00100] O barramento de comunicação fornece comunicação e a interoperabilida-de entre os vários elementos incluídos no aparelho 200 e conectados a ele. A representação do barramento não está limitada, e em particular, a unidade de processamento central é operável para comunicar as instruções a qualquer elemento do aparelho 200 diretamente ou por meio de outro elemento do aparelho 200.
[00101] O disco 206 pode ser substituído por qualquer meio de informação, tal como, por exemplo, um disco compacto (CD-ROM), regravável ou não, um disco ZIP ou um cartão de memória, e em termos gerais, por um meio de armazenamento de informação que pode ser lido por um microcomputador ou por um microprocessador, integrado ou não ao aparelho, possivelmente removível e adaptado para armazenar um ou mais programas cuja execução possibilita que o método de codificar uma sequência de imagens digitais e/ou o método de decodificar um fluxo de bits de acordo com a invenção seja implementado.
[00102] O código executável pode ser armazenado ou na memória somente de leitura 207, no disco rígido 204, ou em um meio digital removível, tal como, por exemplo, um disco 206 como descrito anteriormente. De acordo com uma variante, o código executável dos programas pode ser recebido por meio da rede de comunicação 203, via a interface 202, de modo a ser armazenado em um dos meios de armazenamento do aparelho 200 antes de ser executado, tal como o disco rígido 204.
[00103] A unidade de processamento central 211 é adaptada para controlar e di-recionar a execução das instruções ou partes do código de software do programa ou programas de acordo com a invenção, instruções que são armazenadas em um dos meios de armazenamento mencionados anteriormente. Na inicialização, o programa ou programas que são armazenados em uma memória não volátil, por exemplo, no disco rígido 204 ou na memória somente de leitura 207, são transferidos para a memória de acesso aleatório 212, que então contém o código executável do programa ou programas, bem como os registros para armazenar as variáveis e parâmetros necessários para implementar a invenção.
[00104] Nesta modalidade, o aparelho é um aparelho programável que usa sof-tware para implementar a invenção. Entretanto, alternativamente, a presente invenção pode ser implementada em hardware (por exemplo, na forma de um Circuito Integrado de Aplicativo Específico ou ASIC).
[00105] A FIG. 4 ilustra um diagrama de bloco de um codificador, de acordo com pelo menos uma modalidade da invenção. O codificador é representado por módulos conectados, sendo cada módulo adaptado para implementar, por exemplo, na forma de instruções programáveis a serem executadas pela CPU 211 do dispositivo 200, pelo menos uma etapa correspondente de um método para implementar pelo menos uma modalidade de codificar uma imagem de uma sequência de imagens, de acordo com uma ou mais modalidades da invenção.
[00106] Uma sequência original de imagens digitais i0 a in 301 é recebida como uma entrada pelo codificador 30. Cada imagem digital é representada por um conjunto de amostras conhecidas como pixels.
[00107] Um fluxo de bits 310 é emitido pelo codificador 30 após a implementação do processo de codificação.
[00108] O fluxo de bits 310 compreende uma pluralidade de unidades ou fatias de codificação, sendo que cada fatia compreende um cabeçalho de fatia para transmitir os valores de codificação de parâmetros de codificação usados para codificar a fatia e um corpo de fatia, compreendendo os dados de vídeo codificados.
[00109] As imagens digitais de entrada i0 a in 301 são divididas em blocos de pixels pelo módulo 302. Os blocos correspondem às partes de imagem e podem ser de tamanhos variados (por exemplo, 4x4, 8x8, 16x16, 32x32 pixels). Um modo de codificação é selecionado para cada bloco de entrada. São fornecidas duas famílias de modos de codificação: os modos de codificação baseados na codificação de predição espacial (predição INTRA) e os modos de codificação baseados na predição temporal (Inter codificação, Bidir, SKIP). Os possíveis modos de codificação são testados.
[00110] O módulo 303 implementa a predição INTRA, na qual o dado bloco a ser codificado é predito por um preditor computado a partir dos pixels do dito bloco vizinho a ser codificado. Uma indicação do preditor INTRA selecionado e a diferença entre o dado bloco e seu preditor é codificada para fornecer um residual, se a codificação INTRA for selecionada.
[00111] A predição temporal é implementada pelo módulo de estimativa de movi-mento 304 e pelo módulo de compensação de movimento 305. Primeiramente, uma imagem de referência dentre um conjunto de imagens de referência 316 é selecionada, e uma parte da imagem de referência, também chamada de área ou parte de imagem de referência, que é a área mais próxima do dado bloco a ser codificado, é selecionada pelo módulo de estimativa de movimento 304. O módulo de compensação de movimento 305 prevê então o bloco a ser codificado usando a área selecionada. A diferença entre a área de referência selecionada e o dado bloco, também chamado de um bloco residual, é computada pelo módulo de compensação de movimento 305. A área de referência selecionada é indicada por um vetor de movimento.
[00112] Assim, em ambos os casos (predição espacial e temporal), um residual é computado subtraindo-se a predição do bloco predito original.
[00113] Na predição INTRA implementada pelo módulo 303, uma direção de pre-dição é codificada. Na predição temporal, pelo menos um vetor de movimento é codificado.
[00114] A informação com relação ao vetor de movimento e o bloco residual é co-dificada se a predição INTER for selecionada. Para reduzir mais a taxa de bits, o vetor de movimento é codificado pela diferença com relação a um preditor de vetor de movimento. Os preditores de vetor de movimento de um conjunto de preditores de informação de movimento são obtidos a partir do campo de vetores de movimento 318 por um módulo de predição e codificação de vetor de movimento 317.
[00115] O conjunto de preditores de vetor de movimento, a partir do qual um pre- ditor do vetor de movimento é selecionado para codificar um vetor de movimento atual, é gerado como será explicado em mais detalhes em seguida com relação a qualquer uma das FIGs. 7 a 10. Para um dado bloco atual a ser codificado, em al-gumas modalidades da invenção, um número N de preditores de vetor de movimento é determinado, e consequentemente, o índice do preditor de vetor de movimento selecionado, que é um item de informação representativo do dito preditor de vetor de movimento selecionado, que pode ser codificado usando um número predeterminado de bits de acordo com o número N de preditores de vetor de movimento. Esse número predeterminado de bits pode também ser recuperado pelo decodificador, mesmo em casos de perdas, então pode-se garantir que o decodificador seja capaz de analisar a taxa de bits, mesmo no caso de erros ou de perdas. Os N preditores de vetor de movimento são selecionados de acordo com as várias modalidades da invenção como sendo todos diferentes entre si, de tal forma a melhorar a eficiência de compressão.
[00116] O codificador 30 compreende ainda um módulo de seleção 306 para sele-cionar o modo de codificação. O módulo de seleção 306 aplica um critério de custo de codificação, tal como um critério de taxa de distorção, para determinar qual é o melhor modo dentre o modo de predição espacial e o modo de predição temporal. De modo a reduzir mais as redundâncias, uma transformada é aplicada pelo módulo de transformação 307 ao bloco residual, os dados transformados obtidos são então quantizados pelo módulo de quantização 308 e a entropia codificada pelo módulo de codificação de entropia 309. Finalmente, o bloco residual codificado do bloco atual sendo codificado é inserido na taxa de fluxo 310, junto com a informação relativa ao preditor usado, tal como o índice do preditor de vetor de movimento selecionado. Para os blocos codificados no modo ‘SKIP’, somente uma referência ao preditor é codificada no fluxo de bits, sem qualquer bloco residual.
[00117] O codificador 30 também executa a decodificação da imagem codificada de modo a produzir uma imagem de referência para a estimativa de movimento das imagens subsequentes. Isso possibilita que o codificador e o decodificador recebam o fluxo de bits como tendo os mesmos quadros de referência. O módulo de quanti- zação inversa 311 executa a quantização inversa dos dados quantizados, seguido por uma transformada inversa pelo módulo de transformada inversa 312. O módulo de predição intra inversa 313 usa a informação de predição para determinar qual preditor usar para um dado bloco e o módulo de compensação de movimento inverso 314 realmente adiciona o residual obtido pelo módulo 312 à área de referência obtida a partir do conjunto de imagens de referência 316. Opcionalmente, um filtro de desbloqueio 315 é aplicado para remover os efeitos de bloqueio e melhorar a qualidade visual da imagem decodificada. O mesmo filtro de desbloqueio é aplicado no decodificador, de tal forma que se não existir perda de transmissão, o codificador e o decodificador aplicarão o mesmo processamento.
[00118] A FIG. 5 ilustra um diagrama de bloco de um decodificador 40, de acordo com pelo menos uma modalidade da invenção. O decodificador é representado pelos módulos conectados, sendo cada módulo adaptado para implementar, por exemplo na forma de instruções de programação a serem executadas pela CPU 211 do dispositivo 200, uma etapa correspondente de um método implementando uma modalidade da invenção.
[00119] O decodificador 40 recebe um fluxo de bits 401 compreendendo as uni-dades de codificação, sendo cada uma composta de um cabeçalho contendo informação sobre os parâmetros de codificação e um corpo contendo os dados de vídeo codificados. Como explicado com relação à FIG. 4, os dados de vídeo codificados são codificados por entropia, e os índices dos preditores do vetor de movimento são codificados, para um dado bloco, em um número predeterminado de bits. Os dados de vídeo codificados recebidos são decodificados por entropia pelo módulo 402. Os dados residuais são então desquantizados pelo módulo 403 e então uma transformada inversa é aplicada pelo módulo 404 para obter os valores de pixels.
[00120] Os dados de modo também são decodificados por entropia e baseados no modo, uma decodificação do tipo INTRA ou do tipo INTER é executada.
[00121] No caso do modo INTRA, um preditor INTRA é determinado pelo módulo de predição inversa INTRA 405 com base no dito modo de predição INTRA especificado no fluxo de bits.
[00122] Se o modo for INTER, a informação de predição de movimento é extraída do fluxo de bits, de tal forma a encontrar a área de referência usada pelo codificador. A informação de predição de movimento é composta pelo índice de quadro de referência e o residual do vetor de movimento. O preditor de vetor de movimento é adicionado ao residual de vetor de movimento de modo a obter o vetor de movimento pelo módulo de decodificação de vetor de movimento 410.
[00123] O módulo de decodificação de vetor de movimento 410 aplica a decodifi-cação de vetor de movimento para cada bloco atual codificado por predição de movimento. Uma vez que um índice do preditor de vetor de movimento para o bloco atual foi obtido, o valor real do vetor de movimento associado com o bloco atual pode ser decodificado e usado para aplicar a compensação de movimento inversa pelo módulo 406. A área de referência indicada pelo vetor de movimento decodificado é extraída de uma imagem de referência 408 para aplicar a compensação de movimento inversa 406. Os dados do campo de vetor de movimento 411 são atualizados com o vetor de movimento decodificado, de modo a serem usados para a predição inversa dos próximos vetores de movimento decodificados.
[00124] Finalmente, um bloco decodificado é obtido. Um filtro de desbloqueio 407 é aplicado; similarmente ao filtro de desbloqueio 315 aplicado no codificador. Um sinal de vídeo decodificado 409 é finalmente fornecido pelo decodificador 40.
[00125] A FIG. 6 é um fluxograma que ilustra as etapas de um método de acordo com uma primeira modalidade da invenção para derivar um conjunto de potenciais preditores de informação de movimento adequados para a codificação de uma parte de imagem de uma imagem com relação a uma parte de imagem de referência. Na primeira etapa do método, 7 posições e bloco são consideradas (701 a 707). Essas posições correspondem às posições espacial e temporal descritas na FIG. 1. O módulo 708 verifica a disponibilidade dos vetores de movimento das 7 posições de bloco e seleciona os 4 vetores de movimento como os preditores de vetor de movimento. Nesse módulo, um vetor de movimento está disponível como um preditor, se ele existir e se o bloco de vetor de movimento não for INTRA codificado. A seleção e a verificação dos 4 preditores de vetor de movimento são descritas sob as seguintes condições:
[00126] Visto que o conjunto de preditores de vetor de movimento selecionados no início do processo contém somente os preditores espaciais 1, 2, 3, 4, a complexidade do processo de seleção 715 é reduzida comparado ao processo de seleção da técnica anterior na FIG. 2 compreendendo 4 preditores espaciais e 1 preditor temporal.
[00127] O processo de supressão consiste em comparar cada preditor seleciona-do com todos os outros preditores selecionados e em remover aqueles preditores selecionados que são iguais a outro preditor selecionado (enquanto retendo o outro preditor selecionado do qual o preditor removido é uma duplicata) para fornecer um conjunto de preditores nos qual nenhum dos preditores é duplicado. O processo de supressão para fatias P leva em consideração os valores dos vetores de movimento e seus índices de quadro de referência. Consequentemente, os dois componentes de um vetor de movimento e seu índice de quadro de referência são comparados a todos os componentes correspondentes dos outros vetores de movimento e somente se esses três valores forem iguais, o preditor será removido (não adicionado ao) do conjunto. Para um quadro B, esse critério pode ser estendido à direção e às listas. Assim, um preditor é considerado como um preditor duplicado se ele usar a mesma direção, as mesmas listas (LO, L1, ou LO e L1), os mesmos índices de quadro de referência e o mesmo valor dos vetores de movimento (MV_L0 e MV_L1 para predição bidirecional) no conjunto de vetores de movimento selecionados. O processo de supressão dura 1 ciclo quando 5 preditores no máximo precisam ser comparados. De fato, pode-se se considerar que 12 comparações podem ser computadas em 1 ciclo. O número máximo de comparações para o processo de supressão, no caso mais complexo, é igual à Soma de 0 a N-1. Visto que o número máximo de preditores no início do processo de supressão é igual a 4 ao invés de 5, o número máximo de comparações a serem executadas é 6 (isto é, 3 + 2 + 1 = 6) comparado a 10 como para os 5 preditores selecionados da técnica anterior da FIG. 2. No fim desse processo de supressão 715, um conjunto reduzido de preditores 716 é gerado. O conjunto reduzido de preditores de vetor de movimento 716 contém no máxi- mo 4 preditores comparados aos 5 da técnica anterior.
[00128] O módulo de geração do preditor de vetor de movimento 717 gera novos candidatos a preditores com base nos preditores do conjunto reduzido de preditores de vetor de movimento. Vários esquemas para criar tais preditores podem ser usados e um tal esquema será descrito posteriormente com relação às FIGs. 10(a) a (c). Pode-se considerar que o processo executado pelo módulo de geração de preditor de vetor de movimento dure pelo menos 1 ciclo e produza um segundo conjunto de preditores 718. Como o conjunto reduzido de preditores 716 geralmente contém menos preditores do que o conjunto reduzido de preditores 616 da técnica anterior ilustrada na FIG. 2, em média menos preditores combinados e preditores escalonados são gerados no conjunto reduzido de preditores de vetor de movimento 717 comparado com o da técnica anterior e a complexidade do processo é reduzida.
[00129] Em seguida, o módulo de processamento de supressão 721 que opera de uma maneira similar ao módulo de processo de supressão 715, remove os candidatos duplicados do segundo conjunto de preditores 718 e do conjunto reduzido de preditores 716 comparando os respectivos componentes de vetor de movimento e os parâmetros de informação de movimento associados. Na técnica anterior ilustrada na FIG. 2, a duração desse processo particular pode alcançar 3 ciclos dependendo do número de preditores gerados no segundo conjunto de preditores 718, particularmente no caso em que a geração de preditor de vetor de movimento do modelo HEVC atual é aplicada. O processo de supressão 721 produz um segundo conjunto reduzido de preditores de vetor de movimento 722.
[00130] Finalmente, o preditor temporal 714 é comparado com o segundo conjun-to reduzido de preditores de vetor de movimento 722 no módulo 719. No processamento de supressão e reordenamento executado pelo módulo 719, o preditor temporal é comparado a, no máximo, 5 preditores de modo a determinar se o preditor temporal é um preditor duplicado. Se ele não é um preditor duplicado, o preditor temporal é inserido na lista de preditores logo antes do último preditor espacial não duplicado. A posição temporal foi determinada pelo módulo de processamento de supressão 715 e transmitida ao módulo de processamento 719, e corresponde ao nú mero de preditores em 715. A lista de preditores é truncada se ela contém mais de 5 preditores de modo a produzir o conjunto final de preditores 720. Pode-se notar que o número máximo de comparações executadas pelo módulo 719 é 5 no caso mais complexo que é uma redução comparada a do módulo de supressão 619 da técnica anterior ilustrada na FIG. 2.
[00131] Em uma modalidade alternativa, o módulo de processamento de supres-são 719 pode operar da mesma maneira que o módulo de processamento de su-pressão 619 da técnica anterior. Em um tal caso, o preditor temporal é somente adicionado ao conjunto de preditores se o conjunto reduzido de preditores 722 contém no máximo 4 preditores. De outra forma, ele é adicionado ao fim da lista de preditores.
[00132] A FIG. 7 ilustra uma segunda modalidade da invenção. A principal dife-rença com relação á modalidade da FIG. 6 é que o processo de geração de preditor de vetor de movimento executado pelo módulo 817 tem uma duração de 2 ciclos ao invés de 1 ciclo como no caso do módulo 717 da FIG. 6. No caso da FIG. 7, o processo de supressão para remover os preditores duplicados do segundo conjunto de preditores 818 não é executado em paralelo ao processo de escalonamento temporal 809. Consequentemente, na FIG. 7, no módulo de supressão 819, o preditor temporal 814 é comparado com ambos os preditores do conjunto reduzido de preditores de vetor de movimento 816 e os preditores do segundo conjunto de preditores 818. Nesse processo, se o preditor temporal 814 não é um preditor duplicado dos preditores de vetor de movimento do conjunto reduzido de preditores de vetor de movimento 816, o preditor temporal 814 é adicionado ao conjunto reduzido de preditores de vetor de movimento após os preditores espaciais. Em seguida, os preditores do segundo conjunto de preditores 818 são comparados com os preditores do conjunto reduzido de preditores de vetor de movimento 816, com o preditor temporal 814 se adicionado, e aos outros preditores do segundo conjunto de preditores 818.
[00133] A vantagem do processamento das modalidades da FIG. 6 ou da FIG. 7 resulta da execução completa do processo de escalonamento 709 em paralelo com o primeiro processo de supressão 715 ou 815 e com o processo de geração de pre- ditores de vetor de movimento 717 ou 817. De acordo com a complexidade de cada processo, os processos de supressão adicionais 721 podem ser incluídos no método para predeterminar um conjunto não duplicado de modo a reduzir a complexidade do processo de supressão final 719. Assim, na primeira modalidade da invenção, pode- se considerar que o processo de supressão geral é dividido em dois processos de supressão implementados pelos módulos 721 e 719.
[00134] O processo de escalonamento paralelo tem um impacto benéfico na efici-ência de codificação. De fato, como o preditor temporal 714 ou 814 não é usado para gerar o segundo conjunto de preditores 718 ou 818, esse tem um impacto na geração dos preditores de vetor de movimento.
[00135] As etapas de um método de gerar um conjunto de preditores de vetor de movimento de acordo com uma terceira modalidade da invenção são ilustradas no fluxograma da FIG. 8. O método de acordo com a terceira modalidade da invenção reduz mais o impacto na eficiência da codificação.
[00136] O módulo de seleção 908 opera de uma maneira similar aos módulos de seleção correspondentes 708 e 808 da primeira e da segunda modalidade da invenção para selecionar 4 vetores de movimento 910 a 913, com base em sua disponibilidade, a partir das posições de bloco espacial e temporal 901 a 907.
[00137] A principal diferença é o uso de um módulo de decisão de escalonamento 923. No módulo de decisão de escalonamento 923, a distância temporal do vetor de movimento temporal e a distância temporal do preditor temporal (número de preditor 5) são comparadas. Pra um tipo unidirecional de predição INTER, isso significa que a diferença de Contagem de Ordem de Imagem (POC) entre o quadro temporal (o quadro de blocos H e blocos colocalizados) e o quadro de referência apontado pelo vetor de movimento temporal (H ou colocalizado) é comparada com a distância temporal entre o quadro atual e o quadro de referência do preditor temporal. Se essas distâncias temporais são iguais, o módulo de decisão de escalonamento 923 retorna o valor “Não”. De outra forma, isso significa que um processo de escalonamento é necessário, e o módulo de decisão de escalonamento 923 compara as distâncias temporais para cada lista e a decisão retornada depende das decisões para ambas as listas. Assim, se para ambas as listas nenhum escalonamento é necessário, o módulo de decisão de escalonamento 923 retorna o valor “Não” e se pelo menos um processo de escalonamento for necessário para uma lista, o módulo de decisão de escalonamento 923 retorna o valor “Sim”.
[00138] Se o módulo de decisão de escalonamento 923 retorna o valor “Não”, o preditor temporal 5 (924) é usado no processo de supressão 915. Consequentemente, a geração de preditores de vetor de movimento 917 usa o valor do preditor temporal 5 para gerar o segundo conjunto de preditores 918. Então, o processo de supressão 921 é aplicado ao conjunto reduzido de preditores 916 e o conjunto de segundos preditores 918. Em seguida, um módulo de decisão 925 toma uma decisão sobre o fornecimento do conjunto final de preditores de vetor de movimento com base na decisão do módulo de decisão de escalonamento 923 - isto é, a decisão tomada pelo módulo de decisão de escalonamento 923 é usada para determinar se ou não o conjunto reduzido de preditores produzido pelo processo de supressão 921 é o conjunto de preditores final - quando um “Não” é retornado pelo módulo de decisão 923, é determinado que o conjunto reduzido de preditores produzido pelo processo de supressão 921 é o conjunto de preditores final. Assim, quando o módulo de decisão de escalonamento 923 retorna um “Não” indicando que o escalonamento não é exigido, a derivação do conjunto de preditores opera de uma maneira similar à derivação do conjunto de preditores como ilustrado na FIG. 2.
[00139] De outra forma, se o módulo de decisão de escalonamento 923 retorna o valor “Sim”, indicando que o preditor temporal é escalonado no módulo 909 para produzir um número de preditor temporal 5 (914), é determinado que o conjunto reduzido de preditores produzido pelo processo de supressão 921 não é o conjunto de preditores final. Nesse caso, o módulo de processo de supressão 915 não usou o preditor temporal para o processo de supressão e o módulo de geração de preditor de vetor de movimento 917 não usou o preditor temporal para criar novos preditores. Consequentemente, de uma maneira similar ao processo ilustrado no fluxograma da FIG. 6, o processo de escalonamento 909 do preditor temporal 5 é executado em paralelo á geração de preditores de vetor de movimento 917. O módulo de decisão de escalonamento 925, após o segundo processo de supressão, retorna o valor “Sim”. Assim, o preditor temporal escalonado 914 é comparado com os preditores do segundo conjunto reduzido de preditores 922 no processo de supressão 919. Como no caso do módulo de processo de supressão 719 da FIG. 6, se o preditor temporal 914 é um preditor não duplicado dos preditores no segundo conjunto reduzido de preditores, o módulo de supressão e reordenamento 919 insere o preditor temporal no conjunto de preditores após o primeiro conjunto reduzido de preditores 916 fornecer o conjunto final de preditores 920.
[00140] Para resumir essa modalidade, o processo de escalonamento 909 é exe-cutado em paralelo ao processo de geração 917 do segundo conjunto 918 somente se o preditor temporal precisar ser escalonado.
[00141] Se considerar-se que a geração dos preditores de vetor de movimento 917 dura 1 ciclo, e se o preditor temporal não precisa de um processo de escalonamento, 4 ciclos são necessários para produzir o conjunto de preditores Merge, de outra forma 5 ciclos são necessários. Consequentemente, o processo é reduzido por 2 ciclos no caso mais complexo como na primeira modalidade. As principais vantagens dessa modalidade comparada com a anterior são o uso do preditor temporal para a geração do segundo conjunto dos preditores somente quando o preditor temporal não precisa de escalonamento. Consequentemente, a eficiência de codificação pode ser melhorada comparada com a primeira modalidade.
[00142] Em uma modalidade adicional, é possível considerar a complexidade do processo de escalonamento. Por exemplo, pode ser possível saber se o processo de escalonamento exige somente um ciclo. Um ciclo é somente necessário se o sinal do preditor de vetor de movimento precisa ser alterado. Nesse caso, o preditor temporal está disponível ao mesmo tempo que o conjunto reduzido de preditores 916. Assim, o preditor temporal pode ser usado para o processo de supressão 921. Nesse caso, o módulo de decisão de escalonamento 925 retorna o valor “Sim” e os módulos 922 e 919 não são necessários para fornecer o conjunto final de preditores. Consequentemente, a duração do processo de derivação é reduzida por um ciclo porque o processo de supressão 919 dura 1 ciclo.
[00143] A FIG. 9 é um fluxograma que ilustra um método para derivar um conjunto de preditores de vetor de movimento de acordo com uma quarta modalidade da invenção. O fluxograma da FIG. 9 é baseado nesse da FIG. 6. Como uma consequência, os módulos 1001 a 1020 e 1022 da FIG. 9 são respectivamente os mesmos dos módulos 701 a 720 e 720 da FIG. 6. As diferenças são o uso em paralelo dos preditores não duplicados através da adição de compensações como será descrito na geração de preditores de vetor de movimento com relação às FIGs. 10(a)-(c). Quando o primeiro preditor 1 1010 é definido, o módulo 1023 gera uma lista de preditores não duplicados. Como explicado com relação à FIG. 10(c), esse processo consiste em adicionar compensações a um ou ambos os componentes de vetor do primeiro preditor 1010. O conjunto de preditores não duplicados 1024 contém 4 preditores que são todos diferentes entre si e diferentes do primeiro preditor 1010 disponível após a verificação de disponibilidade implementada pelo módulo de processamento de seleção 1008. Como uma consequência, nesta modalidade, o conjunto de preditores não duplicados 1024, quando adicionado ao primeiro preditor 1010, contém 5 preditores não duplicados como fixados para o modo Merge. A geração de preditores não duplicados é executada em paralelo ao processo de supressão 1015. O módulo de processamento de supressão 1025 compara o conjunto de preditores não duplicados 1024 com o conjunto reduzido de preditores 1016 de modo a obter somente 5 preditores. O conjunto de preditores não duplicados 1026 contém o conjunto reduzido de preditores 1016 seguido pelo conjunto de preditores não duplicados gerados em 1024. Pode-se notar que o processo de supressão 1025 geralmente exige um máximo de 6 comparações. O caso mais complexo acontece quando o conjunto reduzido de preditores de vetor de movimento 1016 contém 4 preditores. O conjunto de preditores não duplicados 1024 contém 4 preditores. Teoricamente, o processo de supressão exige 16 comparações no caso mais complexo (4 preditores do conjunto reduzido de preditores de vetor de movimento 1016 por 4 preditores do conjunto de preditores não duplicados 1024). Entretanto, os preditores de vetor de movimento no conjunto de preditores não duplicados 1024 são diferentes do primeiro preditor, então somente o segundo, o terceiro e o quarto preditor do conjunto re- duzido de preditores de vetor de movimento 1016 precisam ser comparados com o conjunto de preditores de vetor de movimento não duplicados 1024. Como uma consequência, 12 (4 por 3) comparações são necessárias. Os preditores são todos diferentes entre si no conjunto de preditores não duplicados 1024, então no caso mais complexo, se os 3 primeiros preditores dos preditores não duplicados 1024 são iguais aos 3 últimos preditores do conjunto reduzido de preditores de vetor de movimento 1016, pode-se assumir que o último preditor em 1024 é diferente do preditor do conjunto reduzido de preditores de vetor de movimento 1016. Assim, somente 9 (3 por 3) comparações são necessárias.
[00144] Em seguida, um segundo conjunto de preditores de vetor de movimento 1018 é gerado pelo módulo de geração de preditores de vetor de movimento 1017. O processo de supressão e reordenamento 1021 verifica se os preditores de vetor de movimento do segundo conjunto de preditores 1018 não são duplicados comparados com o conjunto não duplicado 1026 que já contém 5 preditores. Se um preditor do segundo conjunto de preditores 1018 é diferente de todos os outros, ele é inserido na posição do número de preditores no conjunto reduzido de preditores 1016 (após os preditores do conjunto reduzido de preditores de vetor de movimento 1016 na lista). As etapas subsequentes 1022, 1019 e 1020 operam da mesma maneira dos módulos de processamento 722, 719 e 720 da FIG. 6.
[00145] Pode-se notar que a geração de preditores não duplicados 1023 pode ser adicionada no fim do processo de derivação, após o processo de supressão 1019. Isso exigiria um processo de supressão adicional que precisa de um ciclo mais e não resultaria no mesmo ordenamento de conjunto de preditores.
[00146] A quarta modalidade tem várias vantagens. Primeiramente, nessa moda-lidade, cada posição de preditor em um valor. Consequentemente, o método fornece um processo mais robusto do que o modelo atual de HEVC. De fato, um codificador pode usar um índice de preditor sem valor no decodificador que pode causar uma pane no decodificador. Isso pode ocorrer, por exemplo, quando erros de rede ocorrem.
[00147] Essa modalidade compensa a perda de eficiência de codificação do esca lonamento paralelo. Ademais, essa modificação também compensa a perda de eficiência de codificação de uma redução do número de candidatos gerados no módulo de geração de preditores de vetor de movimento 1017. Com esses preditores não duplicados, somente 2 preditores precisam ser gerados em 1021. Consequentemente, o processo de supressão 1021 precisa somente de 10 comparações no caso mais complexo. Assim, somente um ciclo é necessário ao invés de 3 para o caso mais complexo do modelo HEVC atual apresentado na FIG. 2. Com essa simplificação, somente 5 ciclos no caso mais complexo são necessários para derivar o conjunto de preditores Merge ao invés de 11 para o modelo HEVC atual.
[00148] Será apreciado que a quarta modalidade da FIG. 9 pode ser facilmente combinada com a terceira modalidade apresentada na FIG. 8.
[00149] Exemplos de processos para a geração de vetores de movimento adicio-nais como preditores implementados pelos módulos de geração de preditores de vetor de movimento 717, 817, 917, e 1017 das FIGs. 6, 7, 8 e 9 respectivamente se-rão agora descritos com relação às FIGs. 10(a)-(c). O modelo atual HEVC usa 3 es-quemas para adicionar novos preditores com base na geração de conjunto atual. O primeiro esquema é usado para fatias B. A geração de preditores de vetor de movimento envolve combinar os preditores do conjunto reduzido de preditores 716, 816, 916, 1016 das FIGs. 6, 7, 8, e 9 respectivamente. Um preditor combinado é gerado através da seleção do vetor de movimento da lista L0 de um primeiro preditor e através da seleção do vetor de movimento da lista L1 de outro preditor. Por exemplo, o primeiro preditor combinado possível tem o vetor de movimento (e índice de referência) de LO do primeiro preditor de 716 e o vetor de movimento (e índice de referência) de L1 do segundo preditor de 716. No modelo HEVC atual, 12 possíveis preditores combinados podem ser gerados. A FIG. 10(a) mostra um exemplo desse processo.
[00150] O segundo esquema pode somente ser usado para fatias B. O preditor escalonado compreende alterar os preditores unidirecionais com preditores bidirecionais. Se um preditor de 716 é unidirecional, o vetor de movimento é criado na lista oposta com base no vetor de movimento inicial. Por exemplo, se o primeiro preditor de 716 é unidirecional e se ele aponta para LO com o índice de referência 0, o valor de seu vetor de movimento é escalonado para apontar para o índice de referência 0 de L1. O preditor construído contém o índice de referência 0 e o valor do vetor de movimento para LO e o índice de referência 0 e o vetor escalonado para a lista L1. Esse novo preditor bidirecional é adicionado ao segundo conjunto de preditores (718). Esse tipo de geração de preditor é muito complexa porque ela precisa escalonar vetores de movimento, assim isso aumenta o número de ciclos para o módulo 717 (3 ciclos). Assim, o processo de escalonamento pode ser limitado a inverter o sinal do componente de valor do vetor de movimento que pode ser executado em um ciclo, ao invés de 3 para o processo de escalonamento clássico. A FIG. 10(b) mostra um exemplo dessa geração.
[00151] Outro método de gerar novos preditores de vetor de movimento é alterar os preditores bidirecionais para preditores unidirecionais. Nesse caso, quando um preditor é bidirecional, 2 novos preditores podem ser gerados (um para cada lista). Esse é um processo de baixa complexidade comparado com o processo de vetor de movimento escalonado da FIG. 10(a).
[00152] No modelo de HEVC atual, no fim da lista, um valor de “vetor de movi-mento zero” é adicionado. Para o Merge, o valor zero é configurado para ambos os vetores de movimento de L0 e L1. E se possível, o índice de quadro de referência de cada lista é aumentado para criar outros preditores zero. Assim, somente o índice de referência é alterado. Se N índices de referência são usados em ambas as listas, N vetores zero podem ser adicionados ao conjunto de preditores. A FIG. 10(c) ilustra um exemplo de tal processo de geração de preditores de vetor de movimento.
[00153] Ademais, é possível usar preditores não duplicados através da adição de uma ou mais compensações aos componentes ou vários componentes de um preditor disponível do conjunto inicial de preditores. Por exemplo, se somente um preditor está no conjunto inicial de preditores, é possível gerar 4 preditores que são todos diferentes. Por exemplo, considera-se que o preditor na lista é unidirecional, o primeiro preditor é gerado através da adição de um valor de compensação em um componente do primeiro vetor de movimento. O segundo preditor é gerado através da adição da compensação inversa ao primeiro componente. O terceiro é obtido através da adição da compensação ao segundo componente e o quarto através da adição da compensação inversa ao segundo componente. Pode-se notar que esse processo pode ser aplicado ao primeiro candidato, de modo que o preditor possa ser derivado antes do processo de supressão 715.
[00154] A FIG. 11 mostra um exemplo de um escalonamento para o preditor tem-poral como aplicado em módulos de escalonamento 709, 809, 909 e 1009 das FIGs. 6, 7, 8 e 9 respectivamente. Nessa figura, o vetor de movimento colocalizado MVcol no quadro de referência RefO apontou para Ref2 com o POC (Contagem de Ordem de Imagem) igual a N-3. O quadro de referência do preditor temporal MVt foi determinado e é igual a RefO (Número POC igual a N-1). A distância temporal iDiffPocD do vetor de movimento colocalizado é igual ao POC de Ref2 menos o POC de RefO. Assim, sua distância temporal é igual a: iDiffPocD = (N-3) -(N-1) = 2
[00155] Da mesma forma, a distância temporal iDiffPocB que precisa ser coberta pelo preditor temporal é igual ao POC do quadro atual N menos o POC de RefO: iDiffPocB = (N) — (N-1) = 1
[00156] Teoricamente, o vetor de movimento escalonado para o preditor temporal é igual a: MVt = (iDiffPocB * MVcol)/iDiffPocD
[00157] Assim, no exemplo, cada componente (horizontal e vertical) é dividido por 2. Entretanto, no modelo HEVC atual, o escalonamento de um vetor de movimento é dado pelo seguinte processo: - O fator escalonado é determinado pela seguinte fórmula: iScale = (iDiffPocB * iX + 32) > > 6; - com iX iX = (0x4000 + abs(iDiffPocD/2) / iDiffPocD; - O MVt é então dado por: MVt = (iScale * MVcol + 127 + (iScale * MVcol < 0)) > > 8
[00158] Nessas fórmulas:
[00159] "> >” representa o operador de deslocamento
[00160] “abs” representa uma função que retorna o valor absoluto
[00161] “0x4000’’ representa o valor 16384
[00162] As modalidades da invenção fornecem assim um processo de derivação paralelo cujo objetivo de reduzir o número de ciclos necessários para derivar um conjunto de preditores de vetor de movimento com um impacto menor na eficiência de codificação.
[00163] 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 específicas, e modificações estarão claras a um versado na técnica que estão dentro do escopo da presente invenção. Muitas modificações e variações adicionais se sugerem aos versados na técnica fazendo referência às modalidades ilustrativas anteriores, que são dadas por meio de exemplo somente e que não são destinadas a limitar o escopo da invenção, que são determinadas unicamente pelas reivindicações em anexo. Em particular, as diferentes características de modalidades diferentes podem ser intercambiadas, onde apropriado.
[00164] 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 mero fato de que as diferentes características são citadas em reivindicações dependentes mutuamente diferentes não indica que uma combinação dessas características não pode ser vantajosamente usada.
Claims (28)
1. Método de derivar pelo menos um preditor de informação de movimento para codificação ou decodificação de uma parte de imagem de uma imagem por compensação de movimento com relação a pelo menos uma parte de imagem de referência, em que para a dita parte de imagem a ser codificada ou decodificada, o método caracterizado pelo fato de que compreende: fornecer para processamento, um ou mais candidatos de preditor de informação de movimento temporal, e um ou mais candidatos de preditor de informação de movimento espacial distintos dos um ou mais candidatos de preditor de informação de movimento temporal; realizar um primeiro processamento (808, 809) dos um ou mais candidatos de preditor de informação de movimento temporal; realizar um segundo processamento (808, 815, 817) dos um ou mais candidatos de preditor de informação de movimento espacial; e obter (819), com base nos candidatos de preditor de informação de movimento (818, 814) resultantes do primeiro processamento e do segundo processamento, um conjunto (820) de candidatos preditor de informação de movimento úteis para prever a dita parte de imagem a partir da parte de imagem de referência; em que o processo compreende excluir uma ou mais duplicatas dentre os candidatos de preditor de informação de movimento espacial, no caso em que um ou mais candidatos de preditor de informação de movimento espacial são duplicados, para fornecer um subconjunto reduzido de candidatos de preditor de informação de movimento espacial (816), e o primeiro processo compreende escalonar temporalmente (809) o ou cada preditor de informação de movimento temporal com base em uma diferença temporal entre a imagem da parte de imagem a ser codificada ou decodificada e a imagem da parte de imagem de referência.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que pelo menos parte do processamento dos segundos candidatos de preditor de informação de movimento é executada simultaneamente com pelo menos parte do processamento dos um ou mais candidatos de preditor de informação de movimento temporal.
3. Método, de acordo com qualquer uma das reivindicações 1 ou 2, caracterizado pelo fato de que processar o segundo subconjunto compreende gerar (817) um ou mais preditores de informação de movimento adicionais com base nos predito- res de informação de movimento do segundo subconjunto.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a etapa de gerar um ou mais candidatos de preditor de informação de movimento adicionais compreende combinar um ou mais candidatos de preditor de informação de movimento espaciais, e/ou adicionar um desvio a um ou mais de candidatos de preditores de informação de movimento espaciais.
5. Método, de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de que processar o subconjunto espacial do primeiro conjunto de preditores de informação de movimento compreende: gerar (717, 817) um ou mais candidatos de preditor de informação de movimento adicionais com base no subconjunto reduzido de preditores de informação de movimento para fornecer um ou mais candidatos de preditor de informação de movimento espacial.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que escalonar o candidato de preditor de informação de movimento temporal é executado simultaneamente com as etapas de excluir as duplicatas e gerar um ou mais candidatos de preditor de informação de movimento adicionais.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado adicionalmente pelo fato de que compreende: excluir as duplicatas dentre os candidatos de preditor de informação de movimento resultantes do primeiro processamento e do segundo processamento, no caso em que um ou mais candidatos de preditor de informação de movimento resultantes do primeiro processamento e do segundo processamento são os mesmos, para fornecer o conjunto de preditores de informação de movimento úteis para codificar a dita parte de imagem, de tal forma que não haja duplicatas entre o conjunto de candidatos de preditor de informação de movimento.
8. Método, de acordo com qualquer uma das reivindicações 5 a 7, caracterizado pelo fato de que o segundo processamento adicionalmente compreende: excluir (721) as duplicatas dentre os candidatos de preditor de informação de movimento espacial e dos um ou mais candidatos de preditor de informação de movimento adicionais no caso em que os candidatos de preditor de informação de movimento espacial e os candidatos de preditor de informação de movimento adicionais que contém os um ou mais candidatos de preditor de informação movimento são duplicados.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que excluir as duplicatas dentre os candidatos de preditor de informação de movimento espacial e os um ou mais candidatos de preditor de informação de movimento adicionais é executada simultaneamente com o escalonamento do candidato de preditor de informação de movimento temporal.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que o segundo processamento é executado simultaneamente com o primeiro processamento com base em uma estimativa da duração do primeiro processamento.
11. Método, de acordo com qualquer uma das reivindicações 1 a 10, caracterizado pelo fato de que os um ou mais candidatos de preditor de informação de movimento resultantes do processamento dos um ou mais segundos candidatos de preditor de informação de movimento são adicionados aos candidatos de preditor de informação de movimento resultantes do processamento dos primeiros candidatos de preditor de informação de movimento para obter o conjunto de candidatos de preditor de informação de movimento com base na duração do processamento dos primeiros candidatos de preditor de informação de movimento.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que compreende adicionalmente determinar a complexidade do processo de escalonamento temporal e em que, no caso em que se determina que o processo de escalonamento temporal terá uma duração mais longa do que um limite de duração predeterminado, o conjunto final de preditores de informação de movimento é obtido removendo-se as duplicatas dentre os preditores de informação de movimento resultantes do primeiro processamento e do segundo processamento; de outra forma, no caso em que se determina que o processo de escalonamento temporal terá uma duração mais curta do que um limite de duração predeterminado, o conjunto final de preditores é obtido adicionando-se, ao subconjunto reduzido de preditores de informação de movimento obtido a partir do segundo subconjunto de preditores de vetor de movimento, um preditor de informação de movimento resultante do primeiro processamento que não é uma duplicata de qualquer um dos preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento; em que o conjunto final de preditores de informação de movimento compreende preditores de informação de movimento não duplicados dentre os preditores de informação de movimento do subconjunto reduzido de preditores de informação de movimento e do segundo subconjunto adicional de preditores de informação de movimento.
13. Dispositivo para derivar pelo menos um candidato de preditor de informação de movimento para codificação ou decodificação de uma parte de imagem de uma imagem por compensação de movimento com relação a pelo menos uma parte da imagem de referência, o dispositivo caracterizado pelo fato de que compreende: meio para obter um ou mais candidatos de preditor de informação de movimento temporal e um ou mais candidatos de preditor de informação de movimento espacial; primeiro meio de processamento (808, 809) para processar os candidatos de preditor de informação de movimento temporal; e segundo meio de processamento (808, 815, 817) para processar os candidatos de preditor de informação de movimento espacial; e meio para obter (819), com base nos candidatos de preditor de informação de movimento (818, 814) resultantes do processamento dos um ou mais preditores de movimento temporal e do processamento dos um ou mais preditores de movimento espacial, um conjunto (820) de candidatos de preditor de informação de movimento úteis para prever a dita parte de imagem a partir da parte de imagem de referência; em que o segundo meio de processamento é operável para excluir uma ou mais duplicatas dentre os candidatos de preditor de informação de movimento espacial, no caso em que os um ou mais candidatos de preditor de informação de movimento espacial são duplicados, para fornecer um subconjunto reduzido de preditores de informação de movimento (816), e o primeiro meio de processamento é operável para escalonar temporalmente o ou cada preditor de informação de movimento temporal com base em uma diferença temporal entre a imagem da parte de imagem a ser codificada ou decodificada e a imagem da parte de imagem de referência.
14. Dispositivo, de acordo com a reivindicação 13, caracterizado pelo fato de que o segundo meio de processamento é operável para executar pelo menos parte de seu processamento simultaneamente com pelo menos parte do processamento executado pelo primeiro meio de processamento.
15. Dispositivo, de acordo com qualquer uma das reivindicações 13 ou 14, caracterizado pelo fato de que o segundo meio de processamento é operável para gerar um ou mais candidatos de preditores de informação de movimento adicionais com base nos candidatos de preditor de informação de movimento espacial do segundo subconjunto.
16. Dispositivo, de acordo com a reivindicação 13, caracterizado pelo fato de que o segundo meio de processamento é operável para combinar um ou mais candidatos de preditor de informação de movimento espacial, e/ou adicionar um desvio a um ou mais candidatos de preditor de informação de movimento espacial.
17. Dispositivo, de acordo com qualquer uma das reivindicações 13 a 16, caracterizado pelo fato de que o primeiro meio de processamento é operável para executar escalonamento do candidato de preditor de informação de movimento temporal simultaneamente com a exclusão de duplicatas e a geração de um ou mais candidatos de preditor de informação de movimento adicionais executada pelo segundo meio de processamento.
18. Dispositivo, de acordo com qualquer uma das reivindicações 13 a 17, caracterizado pelo fato de que compreende adicionalmente: meio de supressão para excluir duplicatas dentre os candidatos de preditor de informação de movimento resultantes do processamento dos primeiros candidatos de preditor de informação de movimento e do processamento dos segundos candidatos de preditor de informação de movimento, no caso em que um ou mais candidatos de preditor de informação de movimento resultantes do processamento dos candidatos de preditor de informação de movimento temporal e do processamento dos candidatos de preditor de informação de movimento espacial são duplicados, para fornecer os candidatos de preditor de informação de movimento úteis para codificar a dita parte de imagem tal que não haja duplicatas entre o conjunto final dos candidatos de predi- tor de informação de movimento.
19. Dispositivo, de acordo com a reivindicação 18, caracterizado pelo fato de que o segundo meio de processamento é operável para: excluir duplicatas dos um ou mais candidatos de preditor de informação de movimento espacial no caso em que os um ou mais candidatos de preditor de informação de movimento espacial e os um ou mais candidatos de preditor de informação de movimento adicionais incluem um ou mais candidatos de preditor de informação de movimento duplicados.
20. Dispositivo, de acordo com a reivindicação 19, caracterizado pelo fato de que o segundo meio de processamento é operável para excluir duplicatas dos um ou mais segundos candidatos de preditor de informação de movimento e os um ou mais candidatos de preditor de informação de movimento adicionais simultaneamente com o escalonamento do candidato de preditor de informação de movimento temporal dos um ou mais primeiros candidatos de preditor de informação de movimento executado pelo primeiro meio de processamento.
21. Dispositivo, de acordo com qualquer uma das reivindicações 13 a 20, caracterizado pelo fato de que compreende adicionalmente meio para estimar a dura ção do processamento dos um ou mais candidatos de preditor de informação de movimento temporal, em que o processamento dos candidatos de preditor de informação de movimento espacial é executado pelo segundo meio de processamento simultaneamente com o processamento dos um ou mais candidatos de preditor de informação de movimento temporal executado pelo primeiro meio de processamento é baseado na estimativa da duração do processamento dos um ou mais candidatos de preditor de informação de movimento temporal.
22. Dispositivo, de acordo com qualquer uma das reivindicações 13 a 21, caracterizado pelo fato de que compreende adicionalmente meio para estimar a duração do processamento dos um ou mais candidatos de preditor de informação de movimento temporal em que os preditor de informação de movimento resultantes do processamento dos candidatos de preditor de informação de movimento espacial são adicionados aos um ou mais candidatos de preditor de informação de movimento resultantes do processamento dos candidatos de preditor de informação de movimento temporal para obter os candidatos de preditor de informação de movimento de movimento para prever a dita parte de imagem com base na duração do processamento dos candidatos de preditor de informação de movimento temporal.
23. Método para codificar uma sequência de imagens digitais em um fluxo de bits, pelo menos uma parte de uma imagem sendo codificada por compensação de movimento com relação a uma parte de imagem de referência, em que, para pelo menos uma parte da imagem a ser codificada, o método caracterizado pelo fato de que compreende: obter um conjunto de candidatos de preditor de informação de movimento úteis para predição de movimento da parte de imagem com relação a pelo menos uma parte de imagem de referência de acordo com o método definido em qualquer uma das reivindicações 1 a 12; selecionar um preditor de informação de movimento a partir do conjunto de candidatos de preditor de informação de movimento para codificar a parte de imagem; e codificar a parte de imagem usando um preditor de informação de movimento selecionado.
24. Método, de acordo com a reivindicação 23, caracterizado pelo fato de que compreende adicionalmente codificar um item de informação identificando o pre- ditor de informação de movimento selecionado.
25. Dispositivo de codificação para codificar uma sequência de imagens em um fluxo de bits, pelo menos uma parte de uma imagem sendo codificada por compensação de movimento com relação a uma parte de imagem de referência, o dispositivo de codificação caracterizado pelo fato de que compreende: um dispositivo definido em qualquer uma das reivindicações 13 a 22 para derivar um candidato de preditor de informação; meio de seleção para selecionar um candidato de preditor de informação de movimento a partir do conjunto de candidatos de preditor de informação de movimento para codificar a parte de imagem; e meio de codificação para codificar a parte de imagem usando pelo menos o preditor de informação de movimento selecionado.
26. Método para decodificar um fluxo de bits compreendendo uma sequência codificada de imagens, pelo menos uma parte de uma imagem tendo sido codificada por compensação de movimento com relação a uma parte de imagem de referência, o método caracterizado pelo fato de que compreende, para pelo menos uma parte de imagem a ser decodificada: obter um conjunto de candidatos de preditor de informação de movimento úteis para predição de movimento da parte de imagem com relação a pelo menos uma parte de imagem de referência de acordo com o método definido em qualquer uma das reivindicações 1 a 12; selecionar um candidato de preditor de informação de movimento a partir do conjunto de candidatos de preditor de informação de movimento para decodificar a parte de imagem; e decodificar a parte de imagem usando o preditor de informação de movimento selecionado.
27. Dispositivo de decodificação para decodificar um fluxo de bits compreendendo uma sequência codificada de imagens, pelo menos uma parte de uma imagem tendo sido codificada por compensação de movimento com relação a uma parte de imagem de referência, o dispositivo de decodificação caracterizado pelo fato de que compreende: um dispositivo para derivar pelo menos um candidato de preditor de informação de movimento de acordo com o dispositivo definido em qualquer uma das reivindicações 13 a 22; meio de seleção para selecionar um candidato de preditor de informação de movimento a partir do conjunto de candidatos de preditor de informação para decodificar a parte de imagem; e meio de decodificação para decodificar a parte de imagem usando pelo menos o preditor de informação de movimento selecionado.
28. Meio legível por computador caracterizado pelo fato de que compreende uma sequência de instruções para implementar o método definido em qualquer uma das reivindicações 1 a 12 ou 23 a 24.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
BR122020002131A BR122020002131B8 (pt) | 2011-08-17 | 2012-08-16 | Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1114184.3A GB2493755B (en) | 2011-08-17 | 2011-08-17 | Method and device for encoding a sequence of images and method and device for decoding a sequence of images |
GB1114184.3 | 2011-08-17 | ||
PCT/EP2012/003490 WO2013023785A2 (en) | 2011-08-17 | 2012-08-16 | Method and device for encoding a sequence of images and method and device for decoding a sequence of images |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112014002932A2 BR112014002932A2 (pt) | 2017-03-28 |
BR112014002932B1 true BR112014002932B1 (pt) | 2022-06-07 |
Family
ID=44800466
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122020002131A BR122020002131B8 (pt) | 2011-08-17 | 2012-08-16 | Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador |
BR112014002932-6A BR112014002932B1 (pt) | 2011-08-17 | 2012-08-16 | Método e dispositivo para codificar uma sequência de imagens e método e dispositivo para decodificar uma sequência de imagens |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122020002131A BR122020002131B8 (pt) | 2011-08-17 | 2012-08-16 | Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador |
Country Status (16)
Country | Link |
---|---|
US (7) | US10306256B2 (pt) |
EP (5) | EP3806468B1 (pt) |
JP (5) | JP6109170B2 (pt) |
KR (6) | KR101617740B1 (pt) |
CN (7) | CN103748880B (pt) |
BR (2) | BR122020002131B8 (pt) |
ES (5) | ES2954263T3 (pt) |
GB (1) | GB2493755B (pt) |
HR (3) | HRP20231726T1 (pt) |
HU (5) | HUE054992T2 (pt) |
PL (5) | PL3806470T3 (pt) |
PT (3) | PT3806469T (pt) |
RS (3) | RS64982B1 (pt) |
RU (5) | RU2589402C2 (pt) |
TR (1) | TR201908328T4 (pt) |
WO (1) | WO2013023785A2 (pt) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2487197B (en) * | 2011-01-11 | 2015-06-17 | Canon Kk | Video encoding and decoding with improved error resilience |
GB2493755B (en) | 2011-08-17 | 2016-10-19 | Canon Kk | Method and device for encoding a sequence of images and method and device for decoding a sequence of images |
US9571833B2 (en) | 2011-11-04 | 2017-02-14 | Nokia Technologies Oy | Method for coding and an apparatus |
TWI511530B (zh) * | 2014-12-09 | 2015-12-01 | Univ Nat Kaohsiung 1St Univ Sc | Distributed video coding system and decoder for distributed video coding system |
US10368083B2 (en) * | 2016-02-15 | 2019-07-30 | Qualcomm Incorporated | Picture order count based motion vector pruning |
US11172203B2 (en) * | 2017-08-08 | 2021-11-09 | Mediatek Inc. | Intra merge prediction |
CN109996081B (zh) | 2017-12-31 | 2023-09-12 | 华为技术有限公司 | 图像预测方法、装置以及编解码器 |
EP3811613A2 (en) | 2018-06-21 | 2021-04-28 | Telefonaktiebolaget LM Ericsson (publ) | Flexible tile partitions |
US11711530B2 (en) | 2018-06-21 | 2023-07-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Tile shuffling for 360 degree video decoding |
EP3791588A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Checking order of motion candidates in lut |
CN110662052B (zh) | 2018-06-29 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 更新查找表(lut)的条件 |
AU2019293670B2 (en) | 2018-06-29 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Update of look up table: FIFO, constrained FIFO |
EP3791585A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Partial/full pruning when adding a hmvp candidate to merge/amvp |
CN114900694A (zh) | 2018-06-29 | 2022-08-12 | 抖音视界(北京)有限公司 | 哪个查找表需要更新或不更新 |
CN110662043B (zh) | 2018-06-29 | 2021-12-21 | 北京字节跳动网络技术有限公司 | 一种用于处理视频数据的方法、装置和计算机可读介质 |
WO2020003270A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Number of motion candidates in a look up table to be checked according to mode |
JP7137008B2 (ja) | 2018-06-29 | 2022-09-13 | 北京字節跳動網絡技術有限公司 | 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念 |
CN110677667B (zh) | 2018-07-02 | 2022-06-07 | 北京字节跳动网络技术有限公司 | 查找表的使用 |
US10958932B2 (en) | 2018-09-12 | 2021-03-23 | Qualcomm Incorporated | Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks |
WO2020053800A1 (en) | 2018-09-12 | 2020-03-19 | Beijing Bytedance Network Technology Co., Ltd. | How many hmvp candidates to be checked |
CN109274966A (zh) * | 2018-09-21 | 2019-01-25 | 华中科技大学 | 一种基于运动矢量的监控视频内容去重方法和*** |
TWI829386B (zh) * | 2018-12-28 | 2024-01-11 | 日商Jvc建伍股份有限公司 | 影像編碼裝置、影像編碼方法、影像編碼程式、影像解碼裝置、影像解碼方法及影像解碼程式 |
JP7275286B2 (ja) | 2019-01-10 | 2023-05-17 | 北京字節跳動網絡技術有限公司 | Lut更新の起動 |
CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
CN113330739A (zh) | 2019-01-16 | 2021-08-31 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的***顺序 |
CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
WO2020247761A1 (en) * | 2019-06-07 | 2020-12-10 | Beijing Dajia Internet Information Technology Co., Ltd. | Sub-block temporal motion vector prediction for video coding |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08129646A (ja) * | 1994-11-02 | 1996-05-21 | Matsushita Electric Ind Co Ltd | 画像符号化方法、画像復号化方法、画像処理方法及びその装置 |
JPH1079949A (ja) | 1996-09-04 | 1998-03-24 | Oki Electric Ind Co Ltd | 画像符号化装置、画像復号化装置及び画像伝送システム |
WO1998042137A1 (en) * | 1997-03-14 | 1998-09-24 | Cselt-Centro Studi E Laboratori Telecomunicazioni S.P.A. | Circuit for motion estimation in digitised video sequence encoders |
KR100571687B1 (ko) | 1999-02-09 | 2006-04-18 | 소니 가부시끼 가이샤 | 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법 |
US7206448B2 (en) | 2002-02-28 | 2007-04-17 | At&T Corp. | System and method for using pattern vectors for video and image coding and decoding |
US20040190615A1 (en) * | 2002-05-22 | 2004-09-30 | Kiyofumi Abe | Moving image encoding method, moving image decoding method, and data recording medium |
US20040001546A1 (en) * | 2002-06-03 | 2004-01-01 | Alexandros Tourapis | Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation |
JP2004023458A (ja) * | 2002-06-17 | 2004-01-22 | Toshiba Corp | 動画像符号化/復号化方法及び装置 |
JP4724351B2 (ja) * | 2002-07-15 | 2011-07-13 | 三菱電機株式会社 | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置 |
EP1562385B1 (en) * | 2002-11-01 | 2014-07-02 | Panasonic Corporation | Motion picture encoding method and motion picture decoding method |
US7450642B2 (en) * | 2002-11-13 | 2008-11-11 | Sony Corporation | Fast motion vector prediction method |
CN1736108A (zh) * | 2003-01-10 | 2006-02-15 | 皇家飞利浦电子股份有限公司 | 有效的预测图像参数估计 |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US8000392B1 (en) * | 2004-02-27 | 2011-08-16 | Vbrick Systems, Inc. | Phase correlation based motion estimation in hybrid video compression |
KR100587561B1 (ko) * | 2004-04-08 | 2006-06-08 | 삼성전자주식회사 | 모션 스케일러빌리티를 구현하는 방법 및 장치 |
KR100631768B1 (ko) * | 2004-04-14 | 2006-10-09 | 삼성전자주식회사 | 비디오 코딩에서 프레임간 예측방법 및 비디오 인코더와,비디오 디코딩방법 및 비디오 디코더 |
CN1914915A (zh) | 2004-04-23 | 2007-02-14 | 住友电气工业株式会社 | 活动图像数据的编码方法、解码方法及实施这些方法的终端装置、以及双向对话型*** |
CN101005620B (zh) * | 2004-09-03 | 2011-08-10 | 微软公司 | 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新 |
DE102004061906A1 (de) * | 2004-12-22 | 2006-07-13 | Siemens Ag | Bildencodierverfahren, sowie dazugehöriges Bilddecodierverfahren, Encodiervorrichtung und Decodiervorrichtung |
CN101156451A (zh) * | 2005-04-12 | 2008-04-02 | 皇家飞利浦电子股份有限公司 | 使用基于区域的多次通过运动估计和时间运动矢量候选更新的视频处理 |
EP1965589A1 (en) | 2005-11-30 | 2008-09-03 | Kabushiki Kaisha Toshiba | Image encoding/image decoding method and image encoding/image decoding apparatus |
CN101422047B (zh) * | 2006-04-14 | 2011-01-12 | Nxp股份有限公司 | 图像边界处的运动估计方法及显示设备 |
RU2426267C2 (ru) * | 2007-01-08 | 2011-08-10 | Нокиа Корпорейшн | Усовершенствованное межуровневое предсказание для расширенной пространственной масштабируемости при кодировании видеосигнала |
EP2210421A4 (en) * | 2007-10-16 | 2013-12-04 | Lg Electronics Inc | METHOD AND APPARATUS FOR PROCESSING A VIDEO SIGNAL |
US8908765B2 (en) * | 2007-11-15 | 2014-12-09 | General Instrument Corporation | Method and apparatus for performing motion estimation |
WO2009115901A2 (en) * | 2008-03-19 | 2009-09-24 | Nokia Corporation | Combined motion vector and reference index prediction for video coding |
JP4697275B2 (ja) * | 2008-07-30 | 2011-06-08 | ソニー株式会社 | 動きベクトル検出装置、動きベクトル検出方法及びプログラム |
US8675736B2 (en) * | 2009-05-14 | 2014-03-18 | Qualcomm Incorporated | Motion vector processing |
CN102450016A (zh) * | 2009-05-26 | 2012-05-09 | 松下电器产业株式会社 | 运动图像处理装置和运动图像处理方法 |
CN101931803B (zh) * | 2009-06-26 | 2013-01-09 | 华为技术有限公司 | 视频图像运动信息获取方法、装置及设备、模板构造方法 |
CN101605262B (zh) | 2009-07-09 | 2011-11-09 | 杭州士兰微电子股份有限公司 | 可变块尺寸运动预测方法和装置 |
US9060176B2 (en) | 2009-10-01 | 2015-06-16 | Ntt Docomo, Inc. | Motion vector prediction in video coding |
WO2011048903A1 (ja) * | 2009-10-20 | 2011-04-28 | シャープ株式会社 | 動画像符号化装置、動画像復号装置、および、データ構造 |
TWI566586B (zh) * | 2009-10-20 | 2017-01-11 | 湯姆生特許公司 | 一序列形象的現時區塊之寫碼方法和重建方法 |
EP2942960A1 (en) * | 2009-12-01 | 2015-11-11 | HUMAX Holdings Co., Ltd. | Apparatus for decoding high-resolution images |
CN101860754B (zh) * | 2009-12-16 | 2013-11-13 | 香港应用科技研究院有限公司 | 运动矢量编码和解码的方法和装置 |
KR101327636B1 (ko) | 2010-02-03 | 2013-11-12 | 주식회사 팬택 | 무선통신 시스템에서 시스템 프레임 번호를 관리하는 장치 및 방법 |
US8824558B2 (en) * | 2010-11-23 | 2014-09-02 | Mediatek Inc. | Method and apparatus of spatial motion vector prediction |
GB2487200A (en) | 2011-01-12 | 2012-07-18 | Canon Kk | Video encoding and decoding with improved error resilience |
EP2664146A1 (en) * | 2011-01-14 | 2013-11-20 | Motorola Mobility LLC | Joint spatial and temporal block merge mode for hevc |
US9319716B2 (en) * | 2011-01-27 | 2016-04-19 | Qualcomm Incorporated | Performing motion vector prediction for video coding |
US9282338B2 (en) * | 2011-06-20 | 2016-03-08 | Qualcomm Incorporated | Unified merge mode and adaptive motion vector prediction mode candidates selection |
GB2493755B (en) | 2011-08-17 | 2016-10-19 | Canon Kk | Method and device for encoding a sequence of images and method and device for decoding a sequence of images |
-
2011
- 2011-08-17 GB GB1114184.3A patent/GB2493755B/en active Active
-
2012
- 2012-08-16 CN CN201280040143.4A patent/CN103748880B/zh active Active
- 2012-08-16 HR HRP20231726TT patent/HRP20231726T1/hr unknown
- 2012-08-16 KR KR1020147006243A patent/KR101617740B1/ko active IP Right Grant
- 2012-08-16 CN CN201710349362.5A patent/CN107181960B/zh active Active
- 2012-08-16 CN CN201710349361.0A patent/CN107277545B/zh active Active
- 2012-08-16 ES ES20205749T patent/ES2954263T3/es active Active
- 2012-08-16 HU HUE18201066A patent/HUE054992T2/hu unknown
- 2012-08-16 US US14/238,821 patent/US10306256B2/en active Active
- 2012-08-16 PL PL20205753.5T patent/PL3806470T3/pl unknown
- 2012-08-16 CN CN201710349649.8A patent/CN107277546B/zh active Active
- 2012-08-16 PL PL20205750.1T patent/PL3806469T3/pl unknown
- 2012-08-16 HR HRP20231270TT patent/HRP20231270T1/hr unknown
- 2012-08-16 KR KR1020197032529A patent/KR102085498B1/ko active IP Right Grant
- 2012-08-16 BR BR122020002131A patent/BR122020002131B8/pt active Search and Examination
- 2012-08-16 EP EP20205749.3A patent/EP3806468B1/en active Active
- 2012-08-16 CN CN201710348275.8A patent/CN107277543B/zh active Active
- 2012-08-16 RU RU2014110037/08A patent/RU2589402C2/ru active
- 2012-08-16 PT PT202057501T patent/PT3806469T/pt unknown
- 2012-08-16 RU RU2016121861A patent/RU2643450C1/ru active
- 2012-08-16 RS RS20231242A patent/RS64982B1/sr unknown
- 2012-08-16 ES ES20205753T patent/ES2964571T3/es active Active
- 2012-08-16 CN CN201710349647.9A patent/CN107197306B/zh active Active
- 2012-08-16 PL PL20205749.3T patent/PL3806468T3/pl unknown
- 2012-08-16 KR KR1020167011114A patent/KR101904404B1/ko active Application Filing
- 2012-08-16 TR TR2019/08328T patent/TR201908328T4/tr unknown
- 2012-08-16 HR HRP20240008TT patent/HRP20240008T1/hr unknown
- 2012-08-16 RS RS20240016A patent/RS65035B1/sr unknown
- 2012-08-16 KR KR1020187027913A patent/KR102038791B1/ko active IP Right Grant
- 2012-08-16 EP EP20205750.1A patent/EP3806469B1/en active Active
- 2012-08-16 KR KR1020187027915A patent/KR102042374B1/ko active IP Right Grant
- 2012-08-16 BR BR112014002932-6A patent/BR112014002932B1/pt active IP Right Grant
- 2012-08-16 ES ES12751267T patent/ES2727629T3/es active Active
- 2012-08-16 PT PT202057493T patent/PT3806468T/pt unknown
- 2012-08-16 JP JP2014525345A patent/JP6109170B2/ja active Active
- 2012-08-16 HU HUE12751267A patent/HUE043598T2/hu unknown
- 2012-08-16 WO PCT/EP2012/003490 patent/WO2013023785A2/en active Application Filing
- 2012-08-16 ES ES20205750T patent/ES2962876T3/es active Active
- 2012-08-16 EP EP12751267.1A patent/EP2745515B1/en active Active
- 2012-08-16 HU HUE20205749A patent/HUE063247T2/hu unknown
- 2012-08-16 HU HUE20205753A patent/HUE064679T2/hu unknown
- 2012-08-16 EP EP18201066.0A patent/EP3474552B1/en active Active
- 2012-08-16 KR KR1020187027914A patent/KR102027721B1/ko active IP Right Grant
- 2012-08-16 RS RS20230919A patent/RS64675B1/sr unknown
- 2012-08-16 ES ES18201066T patent/ES2875926T3/es active Active
- 2012-08-16 HU HUE20205750A patent/HUE064678T2/hu unknown
- 2012-08-16 PT PT202057535T patent/PT3806470T/pt unknown
- 2012-08-16 PL PL18201066T patent/PL3474552T3/pl unknown
- 2012-08-16 EP EP20205753.5A patent/EP3806470B1/en active Active
- 2012-08-16 CN CN201710348687.1A patent/CN107277544B/zh active Active
- 2012-08-16 PL PL12751267T patent/PL2745515T3/pl unknown
-
2017
- 2017-03-02 JP JP2017039886A patent/JP6494675B2/ja active Active
-
2018
- 2018-01-09 RU RU2018100102A patent/RU2684753C1/ru active
-
2019
- 2019-03-06 JP JP2019040359A patent/JP6679781B2/ja active Active
- 2019-03-06 JP JP2019040360A patent/JP6679782B2/ja active Active
- 2019-03-06 JP JP2019040361A patent/JP6821730B2/ja active Active
- 2019-03-13 US US16/352,625 patent/US10771806B2/en active Active
- 2019-04-02 RU RU2019109653A patent/RU2708440C1/ru active
- 2019-11-25 RU RU2019137982A patent/RU2720560C1/ru active
-
2020
- 2020-08-04 US US16/985,078 patent/US11134264B2/en active Active
- 2020-08-04 US US16/985,089 patent/US11134266B2/en active Active
- 2020-08-04 US US16/985,082 patent/US11134265B2/en active Active
-
2021
- 2021-08-30 US US17/461,543 patent/US11729415B2/en active Active
-
2022
- 2022-11-03 US US18/052,359 patent/US11968390B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112014002932B1 (pt) | Método e dispositivo para codificar uma sequência de imagens e método e dispositivo para decodificar uma sequência de imagens | |
BR112013016702B1 (pt) | Método e dispositivo para codificação e decodificação de vídeo com resiliência de erro aprimorada | |
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 | |
BR112013022774B1 (pt) | Método e aparelho de decodificação de um fluxo de bits e meio legível por computador | |
US9648341B2 (en) | Video encoding and decoding with improved error resilience | |
BR122020002129B1 (pt) | Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador | |
BR122020002130B1 (pt) | Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador | |
BR122020002128B1 (pt) | Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B15K | Others concerning applications: alteration of classification |
Ipc: H04N 19/107 (2014.01), H04N 19/43 (2014.01), H04N |
|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
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 16/08/2012, OBSERVADAS AS CONDICOES LEGAIS |