BR112013033818B1 - dispositivo de decodificação de imagem - Google Patents

dispositivo de decodificação de imagem Download PDF

Info

Publication number
BR112013033818B1
BR112013033818B1 BR112013033818A BR112013033818A BR112013033818B1 BR 112013033818 B1 BR112013033818 B1 BR 112013033818B1 BR 112013033818 A BR112013033818 A BR 112013033818A BR 112013033818 A BR112013033818 A BR 112013033818A BR 112013033818 B1 BR112013033818 B1 BR 112013033818B1
Authority
BR
Brazil
Prior art keywords
block
neighboring
unit
prediction
motion vector
Prior art date
Application number
BR112013033818A
Other languages
English (en)
Other versions
BR112013033818A2 (pt
Inventor
Takehara Hideki
Nakamura Hiroya
Nishitani Masayoshi
Fukushima Shigeru
Original Assignee
Jvc Kenwood Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2011146770A external-priority patent/JP5246303B2/ja
Priority claimed from JP2011146769A external-priority patent/JP5644701B2/ja
Application filed by Jvc Kenwood Corp filed Critical Jvc Kenwood Corp
Publication of BR112013033818A2 publication Critical patent/BR112013033818A2/pt
Publication of BR112013033818B1 publication Critical patent/BR112013033818B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream

Landscapes

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

Abstract

dispositivo de codificação de imagem, método de codificação de imagem, programa de codificação de imagem, dispositivo de decodificação de imagem, método de decodificação de imagem e programa de decodificação de imagem em um primeiro modo de predição interimagem em que se usam informações sobre um vetor de movimento, uma unidade de detecção de primeiro modo constrói uma primeira lista de candidato a partir de uma pluralidade de candidatos de bloco de referência com base em uma primeira ordem predeterminada, atribui índices para designar candidatos de bloco de referência adicionados na primeira lista de candidato, e emite os índices da pluralidade de blocos de candidato de referência. em um segundo modo de predição interimagem em que se usa uma diferença de vetor de movimento entre um preditor de vetor de movimento com base nas informações sobre um vetor de movimento, e um vetor de movimento de um bloco alvo de codificação, uma unidade de detecção de segundo modo constrói uma segunda lista de candidato a partir de uma pluralidade de candidatos de bloco de referência com base em uma segunda ordem predeterminada, atribui índices para designar candidatos de bloco de referência adicionados na segunda lista de candidato, e emite os índices da pluralidade de candidatos de bloco de referência e das diferenças de vetor de movimento.

Description

Relatório Descritivo da Patente de Invenção para DISPOSITIVO DE DECODIFICAÇÃO DE IMAGEM.
CAMPO DA TÉCNICA [001] A presente invenção refere-se a uma tecnologia para codificar imagens em movimento, e, mais particularmente, a um dispositivo de codificação de imagem, método de codificação de imagem, programa de codificação de imagem, dispositivo de decodificação de imagem, método de decodificação de imagem, e programa de decodificação de imagem configurados para particionar uma imagem em blocos retangulares e estimar e compensar o movimento entre imagens de unidades de blocos.
TÉCNICA ANTECEDENTE [002] Em um sistema de codificação de imagem em movimento como exemplificado por Moving Picture Coding Experts Group (MPEG), em que uma imagem é dividida em blocos retangulares, e o movimento entre as imagens é estimado e compensado em unidades de blocos, um vetor de movimento é previsto para reduzir o tamanho de código de vetores de movimento gerados nos blocos.
[003] Em MPEG-2, o tamanho do código é reduzido ao derivar uma diferença entre um vetor de movimento detectado em um determinado macrobloco e um vetor de movimento em um macrobloco imediatamente anteriormente codificado, e ao codificar a diferença. Em MPEG-4AVC/H.264, uma forte correlação de um determinado vetor de movimento com um vetor de movimento de um bloco imediatamente vizinho tira vantagem disso, pois o tamanho do código é reduzido ao realizar a predição de um bloco imediatamente vizinho e ao codificar o vetor diferencial resultante. De modo mais específico, um vetor de movimento é previsto ao derivar um valor médio de vetores de movimento de blocos vizinhos para a esquerda, acima, e para a parte superior direita de um bloco alvo submetido a um processo de predição, e ao dePetição 870190017641, de 21/02/2019, pág. 5/264
2/190 rivar uma diferença do valor médio.
[004] Nesses métodos de predição, apenas um vetor de movimento está disponível para predição. Portanto, se a predição falhar, a diferença entre vetores de movimento, consequentemente, irá aumentar, resultando em um aumento no tamanho do código. Ademais, com exceção do fato que o tamanho do código de um vetor de movimento é reduzido, outras informações de movimento são codificadas em unidades de blocos alvo. Portanto, mesmo que um determinado bloco possua as mesmas informações de movimento que um bloco imediatamente vizinho, as informações são codificadas de maneira duplicada, resultando em codificação menos eficiente.
[005] Para solucionar esses problemas, duas novas tecnologias estão sendo estudadas para desenvolver o padrão de codificação de imagem em movimento em ISO/IEC e ITU-T. Uma abordagem se refere à predição de um vetor de movimento. O uso de um vetor de movimento para um bloco imediatamente vizinho codificado como um candidato preditor de vetor de movimento, e o uso de um vetor de movimento para um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, são avaliados quanto ao tamanho do código gerado.
[006] As Figuras 1A e 1B mostram exemplos de blocos vizinhos que poderiam ser candidatos preditores de vetor de movimento. A Figura 1A mostra exemplos de blocos vizinhos na mesma imagem. A Figura 1B mostra um exemplo de um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. Os vetores de movimento desses blocos são definidos como candidatos preditores de vetor de movimento. A diferença entre o vetor de movimento do bloco alvo e o candidato preditor de vetor de movimento que produz o tama
Petição 870190017641, de 21/02/2019, pág. 6/264
3/190 nho do código mínimo é identificada, e o candidato associado é selecionado como o preditor de vetor de movimento. A diferença do preditor de vetor de movimento e, se necessário, as informações adicionais relacionadas ao bloco vizinho onde o preditor de vetor de movimento é selecionado são codificadas e transmitidas.
[007] Em outra abordagem, se as informações de movimento em um bloco alvo e as informações de movimento em um bloco vizinho já codificadas forem idênticas, as informações de movimento do bloco alvo não são codificadas e as informações de movimento do bloco vizinho são usadas para codificação. De modo mais específico, essa abordagem se refere à redução do tamanho do código de informações de movimento ao codificar as informações adicionais que designam um bloco vizinho que possui informações de movimento de referência (informações de movimento que devem ser referidas) (veja, por exemplo, o documento de patente 1). Esse método é denominado intercalação e atrai a atenção como um método para reduzir o tamanho do código de informações de movimento.
Documento de patente 1 JP10-276439
PROBLEMA A SER SOLUCIONADO PELA INVENÇÃO [008] Nos métodos acima de predição e intercalação de vetor de movimento são utilizadas informações de codificação que incluem um vetor de movimento, um número de imagens de referência (indicando a imagem que deve ser referida), uma lista de referência, etc. de um bloco imediatamente vizinho já codificado ou de um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. No entanto, visto que as posições de blocos vizinhos referidos se diferem de acordo com as técnicas, o número de acessos às informações de codificação de memória já codificadas será desvantajosamente aumentado.
Petição 870190017641, de 21/02/2019, pág. 7/264
4/190 [009] Ademais, para selecionar o alvo de referência mais adequado em um processo de codificação convencional, a compensação de movimento é realizada utilizando as informações de codificação de um bloco vizinho de referência, e a decisão é tomada utilizando o tamanho do código gerado e a distorção de codificação como índices. No entanto, o uso de blocos vizinhos diferentes para referência resulta em um aumento no número de blocos com o resultado que a carga de processamento é aumentada. Outro problema é que restrições podem ser impostas sobre o tempo para ler as informações de codificação decodificadas no momento da decodificação, ou a capacidade de uma memória temporária exigida para armazenar as informações de codificação decodificadas é aumentada.
[0010] A presente invenção refere-se ao problema anteriormente mencionado, e um propósito dessa é proporcionar uma tecnologia capaz de reduzir a carga exigida para processar as informações de movimento e melhorar a eficiência de informações de movimento de codificação.
MEIOS PARA SOLUCIONAR O PROBLEMA [0011] Nesse fundamento, o dispositivo de codificação de imagem de acordo com uma modalidade da presente invenção é adaptado para codificar cada bloco obtido ao dividir cada imagem de imagens em movimento, utilizando vetores de movimento, e compreende: uma unidade de aquisição 104 configurada para adquirir informações de codificação em uma pluralidade de candidatos de bloco para o bloco submetido à codificação; uma primeira unidade de detecção de modo 106 configurada para construir, em um primeiro modo de interpredição que usa informações em um vetor de movimento fornecido nas informações de codificação de um bloco de referência identificado por um índice, uma primeira lista de candidato da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predetermina
Petição 870190017641, de 21/02/2019, pág. 8/264
5/190 da, para atribuir índices de modo a identificar os candidatos de bloco de referência adicionados na primeira lista de candidatos, e para emitir os índices da pluralidade de candidatos de bloco de referência; uma segunda unidade de detecção de modo 103 configurada para construir, em um segundo modo de interpredição que usa uma diferença de preditor de vetor de movimento entre um preditor de vetor de movimento com base em informações em um vetor de movimento fornecido nas informações de codificação de um bloco de referência identificado por um índice e um vetor de movimento do bloco submetido à codificação, uma segunda lista de candidatos da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, para atribuir índices de modo a identificar candidatos de bloco de referência adicionados na segunda lista de candidatos, e para emitir os índices da pluralidade de candidatos de bloco de referência e a diferença de vetor de movimento; uma unidade de decisão de método de predição 107 configurada para a decisão de um bloco de referência e um modo de interpredição para cada bloco submetido à codificação, com base nas unidades de detecção de saída de primeiro e segundo modo 106, 103; e uma unidade de geração de fluxo de bits 109 configurado para codificar o índice do bloco de referência determinado pela unidade de decisão de método de predição 107, informações de modo de predição que indicam o modo de interpredição decidido pela unidade de decisão de método de predição, e a diferença de vetor de movimento correspondente ao bloco de referência, a diferença de vetor de movimento é codificada quando a unidade de decisão de método de predição tomar a decisão no segundo modo de interpredição. As unidades de detecção de primeiro e segundo modo 103, 106 usam uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
[0012] Quanto maior for a primeira ordem predeterminada, menor
Petição 870190017641, de 21/02/2019, pág. 9/264
6/190 será o tamanho de uma palavra-código do índice atribuído pela primeira unidade de detecção de modo 106 ao bloco de referência candidato.
[0013] A primeira ordem predeterminada de disposição da pluralidade de candidatos de bloco de referência na primeira lista de candidatos construída pela primeira unidade de detecção de modo 106 pode se diferir da segunda ordem predeterminada de disposição da pluralidade de candidatos de bloco de referência na segunda lista de candidatos construída pela segunda unidade de detecção de modo 103.
[0014] A primeira unidade de detecção de modo 106 pode construir a primeira lista de candidatos da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado. A segunda unidade de detecção de modo 103 pode construir a segunda lista de candidatos da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado.
[0015] A pluralidade de candidatos de bloco de referência pode incluir blocos codificados espacialmente vizinhos ao bloco submetido à codificação e blocos incluídos em uma imagem em um ponto de tempo diferente de uma imagem que inclui o bloco submetido à codificação. As unidades de detecção de primeiro e segundo modo 103, 106 podem dispor a pluralidade de candidatos de bloco de referência de modo que uma posição de um bloco incluído em uma imagem em um ponto de tempo diferente nas primeira e segunda ordens predeterminadas seja inferior a uma posição de um bloco espacialmente vizinho nas primeira e segunda ordens predeterminadas.
[0016] A primeira unidade de detecção de modo 106 pode construir a primeira lista de candidatos de acordo com a primeira ordem predeterminada ao fornecer um limite superior predeterminado ao número
Petição 870190017641, de 21/02/2019, pág. 10/264
7/190 de blocos codificados espacialmente vizinhos dispostos na primeira lista de candidatos, e ao utilizar o maior número de blocos de referência como definido pelo limite superior na primeira ordem predeterminada.
[0017] A segunda unidade de detecção de modo 103 pode construir a segunda lista de candidatos, ao definir aqueles entre a pluralidade de blocos codificados espacialmente vizinhos dispostos à esquerda do bloco submetido à codificação como pertencendo a um grupo de blocos à esquerda, definir aqueles blocos dispostos sobre o bloco submetido à codificação como pertencendo a um grupo de blocos acima, derivar um candidato que representa cada grupo de blocos, e construir a segunda lista de candidatos ao definir a segunda ordem predeterminada de modo que o candidato do grupo de blocos à esquerda e o candidato do grupo de blocos acima sejam dispostos na ordem estabelecida.
[0018] A primeira unidade de detecção de modo 106 pode definir um número máximo de candidatos de bloco de referência dispostos na primeira lista de candidatos, e construir a primeira lista de candidatos com base no número máximo de candidatos de bloco de referência. A unidade de geração de fluxo de bits 109 pode codificar informações que indicam o número máximo de candidatos de bloco de referência e incluir as informações no fluxo de bits.
[0019] Outra modalidade da presente invenção se refere a um método de codificação de imagem. O método é adaptado para codificar cada bloco obtido ao dividir cada imagem em movimento, utilizando vetores de movimento, e compreende: adquirir informações de codificação em uma pluralidade de candidatos de bloco de referência para o bloco submetido à codificação; construir, em um primeiro modo de interpredição que usa informações sobre um vetor de movimento fornecidas nas informações de codificação de um bloco de referência identi
Petição 870190017641, de 21/02/2019, pág. 11/264
8/190 ficado por um índice, uma primeira lista de candidatos da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, para atribuir índices para identificar os candidatos de bloco de referência adicionados na primeira lista de candidatos, e emitir os índices da pluralidade de candidatos de bloco de referência; construir, em um segundo modo de interpredição que usa uma diferença de preditor de vetor de movimento entre um preditor de vetor de movimento com base nas informações sobre um vetor de movimento fornecidas nas informações de codificação de um bloco de referência identificado por um índice e um vetor de movimento do bloco submetido à codificação, uma segunda lista de candidatos da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, para atribuir índices para identificar os candidatos de bloco de referência adicionados na segunda lista de candidatos, e emitir os índices da pluralidade de candidatos de bloco de referência e a diferença de vetor de movimento; decidir um bloco de referência e um modo de interpredição para cada bloco submetido à codificação, com base em saídas a partir da construção das primeira e segunda listas de candidatos; e codificar o índice do bloco de referência decidido pela decisão de um bloco de referência, informações de modo de predição que indicam a modo de interpredição decidido pela decisão de um bloco de referência, e a diferença de vetor de movimento correspondente ao bloco de referência, sendo que a diferença de vetor de movimento é codificada quando o segundo modo de interpredição for decidido. A construção das primeira e segunda listas de candidatos usa uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
[0020] O dispositivo de decodificação de imagem de acordo com uma modalidade da presente invenção é adaptado para decodificar um fluxo de bits codificado em unidades de blocos obtidos ao dividir cada
Petição 870190017641, de 21/02/2019, pág. 12/264
9/190 imagem de imagens em movimento, utilizando os vetores de movimento, e compreende: uma unidade de decodificação de fluxo de bits 202 configurada para decodificar o fluxo de bits para derivar, para cada bloco submetido à decodificação, as informações de modo de predição que indicam uma modo de interpredição e um índice que indica um bloco de referência ao qual o bloco submetido à decodificação se refere, ou derivar as informações de modo de predição que indicam uma modo de interpredição, um índice que indica um bloco de referência ao qual o bloco submetido à decodificação se refere, e uma diferença de vetor de movimento associada ao bloco de referência; um armazenamento de informações de codificação 210 para armazenar as informações de codificação de cada bloco; uma unidade de aquisição 205 configurada para adquirir a partir do armazenamento de informações de codificação 210 as informações de codificação sobre uma pluralidade de candidatos de bloco de referência do bloco submetido à decodificação; uma primeira unidade de saída de modo 206 configurada para construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits 202 indicar um primeiro modo do interpredição que usa informações sobre um vetor de movimento fornecidas nas informações de codificação do bloco de referência identificado pelo índice, uma primeira lista de candidatos da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, para identificar um bloco de referência referido pelo bloco submetido à decodificação na primeira lista de candidatos ao se referir ao índice do bloco de referência decodificado pela unidade de decodificação de fluxo de bits 202, e para emitir as informações de codificação; uma segunda unidade de saída de modo 204 configuradas para construir quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de
Petição 870190017641, de 21/02/2019, pág. 13/264
10/190 bits 202 indicar um segundo modo de interpredição que usa uma diferença de vetor de movimento associada ao bloco de referência identificado pelo índice, uma segunda lista de candidatos da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, para identificar um bloco de referência referido pelo bloco submetido à decodificação na segunda lista de candidatos ao se referir ao índice do bloco de referência decodificado pela unidade de decodificação de fluxo de bits 202, e para derivar e emitir um vetor de movimento para o bloco submetido à decodificação a partir do preditor de vetor de movimento com base nas informações sobre o vetor de movimento fornecidas nas informações de codificação do bloco de referência e a partir da diferença de vetor de movimento decodificada pela unidade de decodificação de fluxo de bits; e uma unidade de predição de compensação de movimento 207 configurada para realizar a compensação de movimento utilizando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits 202, ao se referir às informações emitidas a partir da primeira unidade de saída de modo 206 ou da segunda unidade de saída de modo 204, para gerar uma imagem de predição do bloco submetido à decodificação. As unidades de saída de primeiro e segundo modo 206, 204 usam uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
[0021] Quanto maior for a primeira ordem predeterminada, menor será o tamanho de uma palavra-código do índice atribuído pela primeira unidade de saída de modo 206)ao bloco de referência candidato.
[0022] A primeira ordem predeterminada de dispor a pluralidade de candidatos de bloco de referência na primeira lista de candidatos construída pela primeira unidade de saída de modo 206 pode se diferir da segunda ordem predeterminada de disposição dos candidatos de bloco de referência na segunda lista de candidatos construída pela sePetição 870190017641, de 21/02/2019, pág. 14/264
11/190 gunda unidade de saída de modo 204.
[0023] A primeira unidade de saída de modo 206 pode construir a primeira lista de candidatos da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado. A segunda unidade de saída de modo 204 pode construir a segunda lista de candidatos da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado.
[0024] A pluralidade de candidatos de bloco de referência pode incluir blocos decodificados espacialmente vizinhos ao bloco submetido à decodificação e blocos incluídos em uma imagem em um ponto de tempo diferente de uma imagem que inclui o bloco submetido à decodificação. As unidades de saída de primeiro e segundo modo 206, 204 podem dispor a pluralidade de candidatos de bloco de referência de modo que uma posição de um bloco incluído em uma imagem em um ponto de tempo diferente nas primeira e segunda ordens predeterminadas seja inferior a uma posição de um bloco espacialmente vizinho nas primeira e segunda ordens predeterminadas.
[0025] A primeira unidade de saída de modo 206 pode construir a primeira lista de candidatos de acordo com a primeira ordem predeterminada ao fornecer um limite superior predeterminado ao número de blocos decodificados espacialmente vizinhos dispostos na primeira lista de candidatos, e ao utilizar o maior número de blocos de referência como definido pelo limite superior na primeira ordem predeterminada.
[0026] A segunda unidade de saída de modo 204 pode construir a segunda lista de candidatos, ao definir aqueles entre a pluralidade de blocos decodificados espacialmente vizinhos dispostos à esquerda do bloco submetido à decodificação como pertencendo a um grupo de blocos à esquerda, definir aqueles blocos dispostos sobre o bloco
Petição 870190017641, de 21/02/2019, pág. 15/264
12/190 submetido à decodificação como pertencendo a um grupo de blocos acima, derivar um candidato que representa cada grupo de blocos, e construir a segunda lista de candidatos ao definir a segunda ordem predeterminada de modo que o candidato do grupo de blocos à esquerda e o candidato do grupo de blocos acima sejam dispostos na ordem estabelecida.
[0027] A primeira unidade de saída de modo 206 pode construir a primeira lista de candidatos com base no número máximo de candidatos de bloco de referência dispostos na primeira lista de candidatos, sendo que o número máximo é derivado do fluxo de bits pela unidade de decodificação de fluxo de bits.
[0028] Outra modalidade da presente invenção se refere a um método de decodificação de imagem. O método é adaptado para decodificar um fluxo de bits codificado em unidades de blocos obtidos ao dividir cada imagem de imagens em movimento, utilizando vetores de movimento, e compreende: decodificar o fluxo de bits para derivar, para cada bloco submetido à decodificação, as informações de modo de predição que indicam um modo de interpredição e um índice que indica um bloco de referência ao qual o bloco submetido à decodificação se refere, ou derivar as informações de modo de predição que indicam um modo de interpredição, um índice que indica um bloco de referência ao qual o bloco submetido à decodificação se refere, e uma diferença de vetor de movimento associada ao bloco de referência; adquirir informações de codificação sobre uma pluralidade de candidatos de bloco de referência do bloco submetido à decodificação; construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela decodificação indicar um primeiro modo de interpredição que usa informações sobre um vetor de movimento fornecidas nas informações de codificação do bloco de referência identificado pelo índice, uma primeira lista de candidatos da pluralida
Petição 870190017641, de 21/02/2019, pág. 16/264
13/190 de de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, identificar um bloco de referência referido pelo bloco submetido à decodificação na primeira lista de candidatos ao se referir ao índice do bloco de referência decodificado pela decodificação, e emitir as informações de codificação; construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela decodificação indicar um segundo modo de interpredição que usa uma diferença de vetor de movimento associada ao bloco de referência identificado pelo índice, uma segunda lista de candidatos da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, identificar um bloco de referência referido pelo bloco submetido à decodificação na segunda lista de candidatos ao se referir ao índice do bloco de referência decodificado pela decodificação, e derivar e emitir um vetor de movimento do bloco submetido à decodificação a partir do preditor de vetor de movimento com base nas informações sobre o vetor de movimento fornecidas nas informações de codificação do bloco de referência e a partir da diferença de vetor de movimento decodificada pela decodificação; e realizar a compensação de movimento utilizando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela decodificação, ao se referir a informações emitidas a partir da construção das primeira e segunda listas de candidatos, para gerar uma imagem prevista do bloco submetido à decodificação. A construção das primeira e segunda listas de candidatos usa uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
[0029] Combinações opcionais dos elementos constituintes anteriormente mencionados, e implementações da invenção sob a forma de métodos, aparelhos, sistemas, meios de gravação, e programas de computador também podem ser praticadas como modos adicionais da
Petição 870190017641, de 21/02/2019, pág. 17/264
14/190 presente invenção.
VANTAGEM DA PRESENTE INVENÇÃO [0030] De acordo com as modalidades, a carga adquirida no processamento de informações de movimento é reduzida e a eficiência de informações de movimento de codificação é aprimorada.
BREVE DESCRIÇÃO DOS DESENHOS [0031] As Figuras 1A e 1B mostram blocos de predição exemplificadores próximos ao bloco de predição alvo na mesma imagem, e em uma imagem em um ponto de tempo diferente, respectivamente;
a Figura 2 é um diagrama de bloco que mostra a configuração de um dispositivo de codificação de imagem em movimento de acordo com as modalidades da presente invenção;
as Figuras 3A e 3B mostram a classificação de modos de predição de acordo com as modalidades;
a Figura 4 é um diagrama de bloco que mostra a configuração de um dispositivo de decodificação de imagem em movimento de acordo com as modalidades;
a Figura 5 ilustra com os blocos de codificação são definidos de acordo com as modalidades;
a Figura 6 mostra um padrão de sintaxe de um fluxo de bits gravado para cada bloco de predição e relacionado a um método de selecionar um bloco de referência vizinho de acordo com as modalidades;
as Figuras 7A-7D ilustram tipos do formato dos blocos de predição de acordo com as modalidades;
a Figura 8 mostra um formato de armazenamento de informações de codificação na memória de armazenamento de informações de codificação de acordo com as modalidades;
as Figuras 9A e 9B ilustram a disposição de blocos vizinhos referidos pelo bloco de predição alvo de acordo com as modalidades;
Petição 870190017641, de 21/02/2019, pág. 18/264
15/190 a Figura 10 mostra a configuração detalhada da unidade de detecção de informações de interpredição de acordo com as modalidades;
a Figura 11 é um diagrama de bloco que mostra a configuração detalhada da unidade de detecção de intercalação de acordo com a primeira modalidade;
a Figura 12 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação da unidade de detecção de intercalação de acordo com a primeira modalidade;
a Figura 13 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a primeira modalidade para selecionar um bloco imediatamente vizinho na mesma imagem;
as Figuras 14A-14C mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a primeira modalidade para selecionar números de imagem de referência de candidato de imagens referidas pelo bloco de predição alvo;
a Figura 15 lista os padrões de seleção, na unidade de derivação de informações de codificação de acordo com a primeira modalidade, de um número de imagens de referência de números de imagem de referência de candidato de imagens referidas pelo bloco de predição alvo;
a Figura 16 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a primeira modalidade para selecionar informações de codificação de um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo;
a Figura 17 é um fluxograma que mostra a operação detalhada realizada na unidade de derivação de informações de codifica
Petição 870190017641, de 21/02/2019, pág. 19/264
16/190 ção de acordo com a primeira modalidade para derivar informações de codificação de um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo;
a Figura 18 ilustra um processo de escalonamento por meio do qual um vetor de movimento é escalonado ao adaptar a distância entre uma imagem col e uma imagem referida a partir da imagem col à distância entre uma imagem que contém o bloco de predição alvo e uma imagem referida a partir da imagem que contém o bloco alvo;
a Figura 19 é um fluxograma que mostra a operação realizada na unidade de construção de lista de candidato de referência de acordo com a primeira modalidade para adicionar as informações de codificação do bloco de referência vizinho selecionado pela unidade de derivação de informações de codificação na lista de candidatos de referência;
a Figura 20 mostra uma lista de candidatos de referência exemplificadora construída pela unidade de construção de lista de candidato de referência de acordo com a primeira modalidade;
a Figura 21 é um fluxograma que mostra a operação realizada na unidade de detecção de informações idênticas de acordo com a primeira modalidade para atualizar a lista de candidatos de referência ao detectar e deletar as informações de codificação idêntica adicionadas na lista de candidatos de referência;
a Figura 22 é um diagrama de bloco que mostra a configuração detalhada da unidade de decisão de intercalação de acordo com a primeira modalidade;
a Figura 23 é um diagrama de bloco que mostra a configuração detalhada da unidade de predição de vetor de movimento de acordo com a primeira modalidade;
a Figura 24 é um fluxograma que mostra a operação da
Petição 870190017641, de 21/02/2019, pág. 20/264
17/190 unidade de derivação de informações de codificação da unidade de predição de vetor de movimento de acordo com a primeira modalidade;
a Figura 25 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a primeira modalidade para selecionar um bloco imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo;
a Figura 26 é um fluxograma que mostra um método alternativo realizado na unidade de derivação de informações de codificação de acordo com a primeira modalidade para selecionar um bloco imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo;
a Figura 27 ilustra o escalonamento de um vetor de movimento;
a Figura 28 mostra uma lista de candidatos de referência exemplificadora construída pela unidade de construção de lista de candidato de referência de acordo com a primeira modalidade;
a Figura 29 é um fluxograma que mostra a operação realizada na unidade de detecção de informações idênticas de acordo com a primeira modalidade para atualizar a lista de candidatos de referência ao detectar e deletar as informações de codificação adicionadas na lista de candidatos de referência e que possuem o mesmo vetor de movimento;
a Figura 30 é um diagrama de bloco que mostra a configuração detalhada da unidade de derivação de vetor de movimento de acordo com a primeira modalidade;
as Figuras 31A e 31B mostram as disposições de blocos de referência vizinhos referidos pelo bloco de predição alvo de acordo com a segunda modalidade;
a Figura 32 é um fluxograma que mostra a operação da
Petição 870190017641, de 21/02/2019, pág. 21/264
18/190 unidade de derivação de informações de codificação da unidade de detecção de intercalação de acordo com a segunda modalidade;
a Figura 33 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a segunda modalidade para selecionar um bloco imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo;
as Figuras 34A e 34B mostram a operação realizada na unidade de derivação de informações de codificação de acordo com a segunda modalidade para selecionar os números de imagem de referência de candidato de imagens referidas pelo bloco de predição alvo;
a Figura 35 mostra os padrões de seleção, na unidade de derivação de informações de codificação de acordo com a segunda modalidade, de um número de imagens de referência a partir de números de imagem de referência de candidato de imagens referidas pelo bloco de predição alvo;
a Figura 36 mostra uma lista de candidatos de referência exemplificadora construída pela unidade de construção de lista de candidato de referência da unidade de detecção de intercalação de acordo com a segunda modalidade;
a Figura 37 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação da unidade de predição de vetor de movimento de acordo com a segunda modalidade;
a Figura 38 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a segunda modalidade para selecionar um bloco imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo;
a Figura 39 é um fluxograma que mostra uma operação alternativa realizada na unidade de derivação de informações de codificação de acordo com a segunda modalidade para selecionar um bloco
Petição 870190017641, de 21/02/2019, pág. 22/264
19/190 imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo;
a Figura 40 mostra uma lista de candidatos de referência exemplificadora construída pela unidade de construção de lista de candidato de referência da unidade de predição de vetor de movimento de acordo com a segunda modalidade;
a Figura 41 mostra uma lista de candidatos de referência exemplificadora construída utilizando métodos de seleção diferentes dependendo do modo de intercalação ou do modo de estimação de movimento de acordo com a terceira modalidade;
a Figura 42 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação da unidade de detecção de intercalação de acordo com a quarta modalidade;
a Figura 43 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a quarta modalidade para selecionar um bloco imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo;
a Figura 44 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação da unidade de predição de vetor de movimento de acordo com a quarta modalidade;
a Figura 45 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a quarta modalidade para selecionar o bloco imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo;
a Figura 46 é um fluxograma que mostra a operação realizada na unidade de construção de lista de candidato de referência de acordo com a quinta modalidade para adicionar as informações de codificação do bloco de referência vizinho selecionado pela unidade de derivação de informações de codificação na lista de candidatos de referência;
Petição 870190017641, de 21/02/2019, pág. 23/264
20/190 a Figura 47 mostra uma lista de candidatos de referência exemplificadora construída pela unidade de construção de lista de candidato de referência de acordo com a sexta modalidade;
a Figura 48 é um diagrama de bloco que mostra a configuração detalhada da unidade de detecção de intercalação de acordo com a sétima modalidade;
a Figura 49 é um fluxograma que mostra a operação realizada na unidade de detecção de informações idênticas de acordo com a sétima modalidade para atualizar a lista de candidatos de referência ao restringir as informações de codificação adicionadas na lista de candidatos de referência;
a Figura 50 é um diagrama de bloco que mostra a configuração detalhada da unidade de detecção de intercalação de acordo com a sétima modalidade;
a Figura 51 é um fluxograma que mostra a operação realizada na unidade de construção de lista de candidato de referência de acordo com a sétima modalidade para atualizar a lista de candidatos de referência ao restringir as informações de codificação adicionadas na lista de candidatos de referência;
a Figura 52 é um diagrama de bloco que mostra a configuração detalhada da unidade de predição de vetor de movimento de acordo com a sétima modalidade;
a Figura 53 é um fluxograma que mostra a operação realizada na unidade de derivação de informações de codificação de acordo com a sétima modalidade para selecionar um bloco imediatamente vizinho;
a Figura 54 é um fluxograma que mostra a operação detalhada da unidade de derivação de informações de codificação de acordo com a sétima modalidade para derivar um vetor de movimento;
a Figura 55 é um fluxograma que mostra a operação reali
Petição 870190017641, de 21/02/2019, pág. 24/264
21/190 zada na unidade de construção de lista de candidato de referência de acordo com a sétima modalidade para adicionar as informações de codificação do bloco de referência vizinho selecionadas pela unidade de derivação de informações de codificação na lista de candidatos de referência;
a Figura 56 é um fluxograma que mostra a operação realizada na unidade de detecção de informações idênticas de acordo com a sétima modalidade para atualizar a lista de candidatos de referência ao restringir as informações de codificação adicionadas na lista de candidatos de referência;
a Figura 57 é um diagrama de bloco que mostra a configuração detalhada da unidade de predição de vetor de movimento de acordo com a sétima modalidade;
a Figura 58 é um fluxograma que mostra a operação realizada na unidade de construção de lista de candidato de referência de acordo com a oitava modalidade para adicionar as informações de codificação do bloco de referência vizinho selecionadas pela unidade de derivação de informações de codificação na lista de candidatos de referência;
a Figura 59 mostra uma lista de candidatos de referência exemplificadora construída de acordo com a oitava modalidade do modo de intercalação e do modo de estimação de movimento;
a Figura 60 é um fluxograma que mostra a operação realizada na unidade de construção de lista de candidato de referência de acordo com a nona modalidade para adicionar as informações de codificação do bloco de referência vizinho selecionadas pela unidade de derivação de informações de codificação na lista de candidatos de referência;
a Figura 61 é um fluxograma que mostra a operação realizada na unidade de construção de lista de candidato de referência de
Petição 870190017641, de 21/02/2019, pág. 25/264
22/190 acordo com a nona modalidade para construir e atualizar uma tabela de conversão;
a Figura 62 mostra uma correspondência exemplificadora na unidade de construção de lista de candidato de referência entre os índices na lista de candidatos de referência e os índices na tabela de conversão;
a Figura 63 mostra uma lista de candidatos de referência exemplificadora construída pela unidade de construção de lista de candidato de referência de acordo com a nona modalidade;
a Figura 64 é um diagrama de bloco que mostra a configuração detalhada da unidade de predição de vetor de movimento de acordo com a décima segunda modalidade; e a Figura 65 é um fluxograma que mostra a operação realizada na unidade de controle de candidato de referência para substituir as informações de codificação adicionadas na lista de candidatos de referência.
MELHOR MODO PARA REALIZAR A INVENÇÃO [0032] Será fornecida uma descrição de um dispositivo de codificação de imagem em movimento e um dispositivo de decodificação de imagem em movimento adequados para implementar uma modalidade da invenção. A Figura 2 é um diagrama de bloco que mostra a configuração de um dispositivo de codificação de imagem em movimento de acordo com uma modalidade. O dispositivo de codificação de imagem em movimento 100 inclui uma memória de imagem 101, uma unidade de estimação de vetor de movimento 102, uma unidade de predição de vetor de movimento 103, uma unidade de detecção de informações de interpredição 104, uma unidade de predição de compensação de movimento 105, uma unidade de detecção de intercalação 106, uma unidade de decisão de método de predição 107, um comutador 108, uma primeira unidade de geração de fluxo de bits 109, uma unidade de ge
Petição 870190017641, de 21/02/2019, pág. 26/264
23/190 ração de sinal residual 110, uma unidade de transformada ortogonal/quantização 111, uma unidade de quantização inversa/transformada ortogonal inversa 112, uma unidade de sobreposição de sinal de imagem decodificada 113, uma memória de armazenamento de informações de codificação 114, uma memória de imagem decodificada 115, uma segunda unidade de geração de fluxo de bits 116, e uma unidade de multiplexação de fluxo de bits 117. As setas em linhas grossas que conectam os blocos indicam os sinais de imagem de imagens, e as setas em linhas finas indicam o fluxo de sinais de parâmetro que controlam a codificação.
[0033] A memória de imagem 101 armazena temporariamente um sinal de imagem submetido à codificação fornecido na ordem de tempo de disparo/exibido. A memória de imagem 101 fornece, em unidades predeterminadas de blocos de pixel, o sinal de imagem armazenado submetido à codificação a uma unidade de estimação de vetor de movimento 102, a unidade de decisão de método de predição 107, e a unidade de geração de sinal residual 110. Nesse processo, as imagens armazenadas na ordem de tempo de disparo/exibido são dispostas novamente na ordem de codificação e saída da memória de imagem 101 em unidades de blocos de pixels.
[0034] A unidade de estimação de vetor de movimento 102 estima os vetores de movimento dos respectivos blocos de predição, organizando os vetores de acordo com o tamanho de bloco de predição e modo de predição, ao submeter o sinal de imagem fornecido a partir da memória de imagem 101 e uma imagem decodificada (imagem de referência) fornecida a partir da memória de imagem decodificada 115 ao bloco correspondente. A unidade de estimação de vetor de movimento 102 fornece os vetores de movimento estimados à unidade de predição de compensação de movimento 105, á unidade de predição de vetor de movimento 103, e à unidade de decisão de método de
Petição 870190017641, de 21/02/2019, pág. 27/264
24/190 predição 107. Os modos de predição são geralmente organizados conforme mostrado na Figura 3A. Os vetores de movimento no modo de predição unidirecional ou no modo de predição bidirecional mostrado nas Figuras 3A e 3B são detectados. Uma descrição de modos de predição será fornecida posteriormente mediante a definição de uma sintaxe.
[0035] Quando o modo de predição for o modo de estimação de movimento, a unidade de predição de vetor de movimento 103 usa o vetor de movimento incluído nas informações de codificação emitidas a partir da unidade de detecção de informações de interpredição 104 como um preditor de vetor de movimento. A unidade de predição de vetor de movimento 103 deriva uma diferença de vetor de movimento a partir do vetor de movimento estimado pela unidade de estimação de vetor de movimento 102 e o preditor de vetor de movimento. A unidade de predição de vetor de movimento 103 fornece a diferença de vetor de movimento derivada à unidade de decisão de método de predição 107. Ademais, a unidade de predição de vetor de movimento 103 fornece um índice que identifica o preditor de vetor de movimento selecionado à unidade de decisão de método de predição 107. A configuração detalhada e a operação da unidade de predição de vetor de movimento 103 serão descritas posteriormente.
[0036] A unidade de detecção de informações de interpredição
104 adquire, a partir da memória de armazenamento de informações de codificação 114, as informações de codificação de um bloco de predição codificado localizado na mesma imagem referida por um bloco de predição alvo e imediatamente próximo ao bloco de predição alvo, e as informações de codificação de um bloco de predição próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. A unidade de detecção de informações de interpredição 104 se
Petição 870190017641, de 21/02/2019, pág. 28/264
25/190 refere às informações de codificação de um bloco codificado imediatamente vizinho e sobre um bloco imediatamente vizinho em outra imagem em um ponto de tempo diferente, que são armazenadas na memória de armazenamento de informações de codificação 114. A unidade de detecção de informações de interpredição 104 detecta as informações de codificação de uma pluralidade de blocos vizinhos que são candidatos de destinos de referência, com base nas informações de localização no bloco de predição alvo. A unidade de detecção de informações de interpredição 104 fornece as informações de codificação do bloco vizinho selecionado como o alvo de referência e um índice que identifica o bloco vizinho, mudando o destino de fornecimento de acordo com o modo de predição inserido no comutador 108 e controlado pelo dispositivo de codificação de imagem em movimento 100. A configuração detalhada e operação da unidade de detecção de informações de interpredição 104 serão descritas posteriormente.
[0037] A unidade de predição de compensação de movimento 105 usa o vetor de movimento estimado pela unidade de estimação de vetor de movimento 102 ou as informações de codificação do bloco vizinho detectadas pela unidade de detecção de informações de interpredição 104 e selecionadas como o alvo de referência, para gerar um sinal de imagem previsto da imagem de referência por predição de compensação de movimento. A unidade de predição de compensação de movimento 105 fornece o sinal de imagem previsto à unidade de decisão de método de predição 107. No caso de predição bidirecional, a unidade de predição de compensação de movimento 105 multiplexa de forma adaptável dois sinais de imagem previstos compensados de movimento a partir da predição L0 e predição L1 por fatores de peso, a predição L0 é principalmente usada para predição anterior, e a predição L1 é principalmente usada para predição posterior. A unidade de predição de compensação de movimento 105 sobrepõe os sinais rePetição 870190017641, de 21/02/2019, pág. 29/264
26/190 sultantes para gerar um sinal de imagem previsto final. Os fatores de peso são definidos para cada porção ou para cada bloco de predição. [0038] No caso onde o modo de predição é o modo de intercalação, a unidade de detecção de intercalação 106 dispõe novamente as informações de codificação na ordem de seleção priorizada, para usar, como as informações de codificação do bloco de predição alvo, as informações de codificação do bloco vizinho (mais adiante, bloco de referência vizinho) adquiridas pela unidade de detecção de informações de interpredição 104 e referidas pelo bloco de predição alvo. A unidade de detecção de intercalação 106 adiciona as informações de codificação dispostas novamente em uma lista de candidatos de referência. A unidade de detecção de intercalação 106 detecta as informações de codificação adicionadas na lista de candidatos de referência como as informações de codificação do bloco de predição alvo. A unidade de detecção de intercalação 106 fornece o vetor de movimento, o número de imagens de referência, a lista de referência, etc. incluídos nas informações de codificação detectadas à unidade de predição de compensação de movimento 105. Ademais, a unidade de detecção de intercalação 106 fornece um índice que identifica o bloco de referência vizinho fornecido com as informações de codificação detectadas à unidade de decisão de método de predição 107. A configuração detalhada e a operação da unidade de detecção de intercalação 106 serão descritas posteriormente.
[0039] A unidade de decisão de método de predição 107 decide um método de predição de uma pluralidade de métodos de predição ao avaliar o tamanho do código das informações de codificação do bloco de referência vizinho e o índice que identifica o bloco vizinho, a quantidade de distorção entre o sinal de predição compensado de movimento e o sinal de imagem, etc. O método de predição inclui parâmetros como um tamanho de bloco de predição ótimo, modo de parti
Petição 870190017641, de 21/02/2019, pág. 30/264
27/190 ção (PartMode), modo de predição (PredMode). A unidade de decisão de método de predição 107 fornece as informações de codificação que incluem informações que indicam o método de predição decidido e incluem uma diferença de vetor de movimento dependente do método de predição decidido para a primeira unidade de geração de fluxo de bits 109. Detalhes do tamanho, modo de partição, e modelo de predição de bloco de predição serão descritos posteriormente.
[0040] O comutador 108 fornece de maneira comutável as informações de codificação do bloco vizinho detectadas pela unidade de detecção de informações de interpredição 104 e selecionadas como o alvo de referência à unidade de predição de vetor de movimento 103 ou à unidade de detecção de intercalação 106 de acordo com o modo de predição controlado pelo dispositivo de codificação de imagem em movimento 100. Ademais, o comutador 108 armazena as informações de codificação que incluem informações que indicam o método de predição decidido, um vetor de movimento dependente do método de predição decidido, etc. para a memória de armazenamento de informações de codificação 114. O comutador 108 fornece um sinal de imagem previsto compensado de movimento dependente do modo de predição decidido à unidade de geração de sinal residual 110 e à unidade de sobreposição de sinal de imagem decodificada 113.
[0041] A unidade de geração de sinal residual 110 subtrai o sinal de predição do sinal de imagem submetido à codificação para gerar um sinal residual, e fornece o sinal residual à unidade de transformada ortogonal/quantização 111. A unidade de transformada ortogonal/quantização 111 submete o sinal residual à transformada ortogonal e quantização para gerar um sinal residual ortogonalmente transformado, quantizado. A unidade de transformada ortogonal/quantização 111 fornece o sinal residual à segunda unidade de geração de fluxo de bits 116 e à unidade de quantização inversa/transformada ortogonal
Petição 870190017641, de 21/02/2019, pág. 31/264
28/190 inversa 112.
[0042] A primeira unidade de geração de fluxo de bits 109 codifica as informações de método de predição decididas pela unidade de decisão de método de predição 107 e as informações sobre a diferença de vetor de movimento decididas pelas informações de método de predição, de acordo com uma regra de sintaxe predefinida para gerar o primeiro fluxo e fornecer o primeiro fluxo de bits à unidade de multiplexação de fluxo de bits 117.
[0043] A diferença entre o valor previsto das informações de codificação e o valor realmente usado é fornecida à primeira unidade de geração de fluxo de bits 109 como necessário e codificada nessa. A diferença inclui um parâmetro de ponderação para ponderar a predição fornecida a partir da unidade de decisão de método de predição 107, um flag que discrimina entre a predição de quadro/campo realizada para codificação entrelaçada, um parâmetro de quantização para quantização, um flag que indica se o sinal residual foi codificado, um flag que discrimina um método de transformada ortogonal, um flag que discrimina a ordem de codificação do sinal residual, informações sobre um pós-filtro como um filtro de deblocagem, etc. Ademais, as informações de codificação previstas como um flag que discrimina a ordem de codificação do sinal residual são armazenadas na memória de armazenamento de informações de codificação 114.
[0044] A segunda unidade de geração de fluxo de bits 116 submete o sinal residual ortogonalmente transformado e quantizado para codificação por entropia de acordo com uma regra de sintaxe predefinida para gerar o segundo fluxo de bits e fornecer o segundo fluxo de bits à unidade de multiplexação de fluxo de bits 117. A unidade de multiplexação de fluxo de bits 117 multiplexa o primeiro fluxo de bits e o segundo fluxo de bits de acordo com a regra de sintaxe predefinida e emite o fluxo de bits resultante.
Petição 870190017641, de 21/02/2019, pág. 32/264
29/190 [0045] A unidade de quantização inversa/transformada ortogonal inversa 112 submete o sinal residual ortogonalmente transformado e quantizado fornecido a partir da unidade de transformada ortogonal/quantização 111 para a quantização inversa e transformada ortogonal inversa de modo a derivar o sinal residual e fornecer o sinal residual à unidade de sobreposição de sinal de imagem decodificada 113. A unidade de sobreposição de sinal de imagem decodificada 113 sobrepõe o sinal de predição dependente da decisão pela unidade de decisão de método de predição 107 e o sinal residual submetido à quantização inversa e transformada ortogonal inversa pela unidade de quantização inversa/transformada ortogonal inversa 112 um sobre o outro para gerar uma imagem decodificada. A unidade de sobreposição de sinal de imagem decodificada 113 armazena a imagem decodificada na memória de imagem decodificada 115. A imagem decodificada pode ser submetida à filtragem para reduzir a distorção como a distorção de bloco resultante da codificação antes de ser armazenada na memória de imagem decodificada 115. Nesse caso, as informações de codificação previstas como um flag para discriminar as informações em um pós-filtro como um filtro de deblocagem são armazenadas na memória de armazenamento de informações de codificação 114 como necessário.
[0046] A Figura 4 é um diagrama de bloco que mostra a configuração de um dispositivo de decodificação de imagem em movimento 200 de acordo com as modalidades correspondentes ao dispositivo de codificação de imagem em movimento 100 da Figura 2. O dispositivo de decodificação de imagem em movimento 200 inclui uma unidade de demutiplexação de fluxo de bits 201, uma primeira unidade de decodificação de fluxo de bits 202, uma segunda unidade de decodificação de fluxo de bits 203, uma unidade de derivação de vetor de movimento 204, uma unidade de detecção de informações de interpredição 205,
Petição 870190017641, de 21/02/2019, pág. 33/264
30/190 uma unidade de decisão de intercalação 206, uma unidade de predição de compensação de movimento 207, uma unidade de quantização inversa/transformada ortogonal inversa 208, uma unidade de sobreposição de sinal de imagem decodificada 209, uma memória de armazenamento de informações de codificação 210, uma memória de imagem decodificada 211, e um comutador 212. Conforme no dispositivo de codificação de imagem em movimento 100 da Figura 2, as setas em linhas grossas que conectam os blocos indicam os sinais de imagem de imagens, e as setas em linhas finas indicam o fluxo de sinais de parâmetro que controlam a codificação.
[0047] O processo de decodificação do dispositivo de decodificação de imagem em movimento 200 da Figura 4 corresponde ao processo de decodificação fornecido no dispositivo de codificação de imagem em movimento 100 da Figura 2. Portanto, a unidade de predição de compensação de movimento 207, a unidade de quantização inversa/transformada ortogonal inversa 208, a unidade de sobreposição de sinal de imagem decodificada 209, a memória de armazenamento de informações de codificação 210, e a memória de imagem decodificada 211 da Figura 4 possuem as mesmas funções que a unidade de predição de compensação de movimento 105, a unidade de quantização inversa/transformada ortogonal inversa 112, a unidade de sobreposição de sinal de imagem decodificada 113, a memória de armazenamento de informações de codificação 114, e a memória de imagem decodificada 115 do dispositivo de codificação de imagem em movimento 100 da Figura 2, respectivamente.
[0048] O fluxo de bits fornecido ao fluxo de bits de unidade de demutiplexação 201 é demultiplexado de acordo com a regra de sintaxe predefinida. Os fluxos de bits resultantes da demultiplexação são fornecidos à primeira unidade de decodificação de fluxo de bits 202 e à segunda unidade de decodificação de fluxo de bits 203.
Petição 870190017641, de 21/02/2019, pág. 34/264
31/190 [0049] A primeira unidade de decodificação de fluxo de bits 202 decodifica o fluxo de bits fornecido para emitir as informações de codificação relacionadas ao modo de predição, vetor de movimento, etc. A primeira unidade de decodificação de fluxo de bits 202 fornece as informações de codificação à unidade de derivação de vetor de movimento 204 ou à unidade de detecção de informações de interpredição 205, e à unidade de predição de compensação de movimento 207. A primeira unidade de decodificação de fluxo de bits 202 também armazena as informações de codificação na memória de armazenamento de informações de codificação 210.
[0050] A segunda unidade de decodificação de fluxo de bits 203 decodifica o fluxo de bits fornecido e deriva o residual ortogonalmente transformado e quantizado. A segunda unidade de decodificação de fluxo de bits 203 fornece o sinal residual ortogonalmente transformado e quantizado à unidade de quantização inversa/transformada ortogonal inversa 208.
[0051] No caso onde o modo de predição é o modo de estimação de movimento, a unidade de derivação de vetor de movimento 204 usa o vetor de movimento incluído nas informações de codificação decididas e emite pela unidade de detecção de informações de interpredição 205 como um preditor de vetor de movimento. A unidade de derivação de vetor de movimento 204 deriva um vetor de movimento a partir da diferença de vetor de movimento derivada pela decodificação na primeira unidade de decodificação de fluxo de bits 202 e a partir do preditor de vetor de movimento. A unidade de derivação de vetor de movimento 204 fornece o vetor de movimento derivado à unidade de predição de compensação de movimento 207 e à memória de armazenamento de informações de codificação 210.
[0052] A unidade de detecção de informações de interpredição
205 adquire, a partir da memória de armazenamento de informações
Petição 870190017641, de 21/02/2019, pág. 35/264
32/190 de codificação 210, as informações de codificação de um bloco de predição codificado localizado na mesma imagem referida por um bloco de predição alvo e imediatamente próxima ao bloco de predição alvo, e as informações de codificação de um bloco de predição próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. A unidade de detecção de informações de interpredição 205 se refere às informações de codificação de um bloco codificado imediatamente vizinho e de um bloco imediatamente vizinho em outra imagem em um ponto de tempo diferente, que são armazenadas na memória de armazenamento de informações de codificação 210. A unidade de detecção de informações de interpredição 205 detecta as informações de codificação de uma pluralidade de blocos vizinhos que são candidatos de destinos de referência, com base em informações posicionais no bloco de predição alvo. A unidade de detecção de informações de interpredição 205 fornece as informações de codificação do bloco vizinho selecionadas como o alvo de referência e um índice que identifica o bloco vizinho, comuta o destino de fornecimento de acordo com o modo de predição inserido no comutador 212 e decodificado pelo dispositivo de decodificação de imagem em movimento 200. A configuração detalhada e a operação da unidade de detecção de informações de interpredição 205 serão descritas posteriormente.
[0053] No caso onde o modo de predição é o modo de intercalação, a unidade de decisão de intercalação 206 dispõe novamente as informações de codificação de modo que o bloco vizinho tenha prioridade, para usar as informações de codificação do bloco vizinho adquiridas pela unidade de detecção de informações de interpredição 205 e referidas pelo bloco de predição alvo como as informações de codificação do bloco de predição alvo. A unidade de decisão de intercalação 206 adiciona as informações de codificação dispostas novamente em
Petição 870190017641, de 21/02/2019, pág. 36/264
33/190 uma lista de candidatos de referência. A unidade de detecção de intercalação 206 detecta, a partir da lista de candidatos de referência, o bloco vizinho designado pelo índice decodificado primeira unidade de decodificação de fluxo de bits 202 como identificando o bloco de referência vizinho. A unidade de decisão de intercalação 206 fornece as informações de codificação à unidade de predição de compensação de movimento 207 e à memória de armazenamento de informações de codificação 210. A configuração detalhada e a operação da unidade de decisão de intercalação 206 serão descritas posteriormente.
[0054] A unidade de predição de compensação de movimento 207 usa o vetor de movimento derivado pela unidade de derivação de vetor de movimento 204 ou as informações de codificação do bloco vizinho detectadas pela unidade de decisão de intercalação 206 e selecionadas como o alvo de referência, para gerar um sinal de imagem previsto a partir da imagem de referência pela predição de compensação de movimento. A unidade de predição de compensação de movimento 207 fornece o sinal de imagem previsto à unidade de sobreposição de sinal de imagem decodificada 209. No caso de predição bidirecional, a unidade de predição de compensação de movimento 207 multiplexa de forma adaptável dois sinais de imagem previstos compensados de movimento a partir da predição L0 e predição L1 por fatores de peso. A unidade de predição de compensação de movimento 207 sobrepõe os sinais resultantes para gerar um sinal de imagem previsto final.
[0055] A unidade de quantização inversa/transformada ortogonal inversa 208 submete o sinal residual ortogonalmente transformado e quantizado decodificado pela primeira unidade de decodificação de fluxo de bits 202 à quantização inversa e transformada ortogonal inversa para obter o sinal residual transformado ortogonalmente inverso e quantizado inverso.
[0056] A unidade de sobreposição de sinal de imagem decodifica
Petição 870190017641, de 21/02/2019, pág. 37/264
34/190 da 209 sobrepõe o sinal de imagem previsto submetido à predição de compensação de movimento pela unidade de predição de compensação de movimento 207 e o sinal residual submetido à quantização inversa e transformada ortogonal inversa pela unidade de quantização inversa/transformada ortogonal inversa 208 um sobre o outro para derivar um sinal de imagem decodificada. A unidade de sobreposição de sinal de imagem decodificada 209 armazena o sinal de imagem decodificada na memória de imagem decodificada 211. A imagem decodificada pode ser submetida à filtragem para reduzir, por exemplo, a distorção de bloco resultante da codificação antes de ser armazenada na memória de imagem decodificada 211.
[0057] O comutador 212 fornece de maneira comutável as informações de codificação do bloco vizinho detectadas pela unidade de detecção de informações de interpredição 205 e selecionadas como o alvo de referência à unidade de predição de vetor de movimento 204 ou à unidade de detecção de intercalação 206 de acordo com o modo de predição decodificado primeira unidade de decodificação de fluxo de bits 202.
[0058] Na seguinte descrição das modalidades, os detalhes de um método que utiliza uma disposição comum de blocos imediatamente vizinhos serão descritos, a mesma é referida no vetor de movimento método de predição e no método de intercalação, na unidade de detecção de informações de interpredição 104 do dispositivo de codificação de imagem em movimento 100 e na unidade de detecção de informações de interpredição 205 do dispositivo de decodificação de imagem em movimento 200, e para selecionar um bloco de referência vizinho a partir da disposição, consequentemente.
[0059] Antes de descrever o método de selecionar um bloco de referência vizinho de acordo com a modalidade da presente invenção, os termos usados na modalidade serão definidos.
Petição 870190017641, de 21/02/2019, pág. 38/264
35/190
Definição de termos usados na presente invenção
Definição de um bloco de codificação [0060] Na modalidade, uma tela é uniformemente dividida em blocos quadrados de tamanhos iguais conforme mostrado na Figura 5. O bloco será referido como um bloco de codificação, que é definido como um bloco básico na codificação e decodificação. Dependendo da textura na tela, um bloco de codificação pode ser dividido em quatro para produzir blocos de codificação de tamanhos de bloco menores para otimizar um processo de codificação. Os blocos de codificação resultantes da partição da tela mostrados na Figura 5 em tamanhos iguais serão definidos como blocos de codificação máximos. Os blocos produzidos ao dividir em quatro o bloco máximo dependendo da condição de codificação serão genericamente referidos como blocos de codificação. Os blocos de codificação do tamanho máximo além do qual a divisão em quatro adicional é impedida serão referidos como blocos de codificação máximos.
Definição de bloco de predição [0061] Quando uma tela for dividida para o propósito de compensação de movimento, tamanhos de bloco menores para a compensação de movimento irão resultar em predição mais sofisticada. Nesse aspecto, um esquema para a compensação de movimento é adotado em que o tamanho de bloco ótimo para a compensação de movimento é selecionado a partir de múltiplos tamanhos de bloco. Um bloco em que a compensação de movimento é realizada será referido como bloco de predição. Um bloco de predição é usado como uma unidade de partição da parte interna de um bloco de codificação. O bloco de predição máximo é originado quando a parte interna de um interior bloco de codificação não for dividida e em vez disso é definido como um bloco. Um bloco de codificação pode ser divido ao meio de maneira horizontal ou vertical para produzir dois blocos de predição ou dividido em
Petição 870190017641, de 21/02/2019, pág. 39/264
36/190 quatro uniformemente nas direções horizontal e vertical para produzir quatro blocos de predição. Modos de partição diferentes (PartMode) são definidos dependendo do método de partição (horizontal ou vertical) e do tipo de partição (número de partições) e são mostrados nas Figuras 7A-7D. Os numerais dentro dos retângulos das Figuras 7A-7D denotam Nos. ID para os blocos de predição resultantes da partição. Os numerais começando com 0 são atribuídos aos blocos de predição no bloco de codificação mínimo e em uma ordem predefinida, isto é, de cima para baixo e da esquerda para a direita, para o propósito de gerenciar os blocos de predição.
[0062] Quando a estimação e compensação de movimento forem realizadas em um bloco de codificação, uma unidade de campo de estimação e compensação de movimento pode ser o próprio bloco de codificação, ou um bloco recursivamente obtido ao dividir o bloco de codificação, isto é, um bloco individual obtido ao dividir o bloco de codificação em dois ou em quatro, ou um bloco de predição do tamanho mínimo obtido ao definir o quarto de bloco individual como o bloco de codificação e ai dividir similarmente esse bloco de codificação. Na descrição a seguir, uma unidade de campo de estimação e compensação de movimento será referida como um bloco de predição exceto onde especificado em contrário, independente do formato e tamanho. Lista de Referência [0063] Uma descrição será fornecida de uma lista de referência.
No processo de codificação ou decodificação, um número de imagens de referência é designado a partir de índices de referência em cada lista de referência LX e a imagem de referência identificada à qual esse se refere. L0 e L1 são fornecidos de modo que 0 ou 1 possa ser substituído por X. A interpredição à qual uma imagem de referência adicionada na lista de referência L0 se refere será referida como predição L0 (Pred_L0). A predição de compensação de movimento à qual
Petição 870190017641, de 21/02/2019, pág. 40/264
37/190 uma imagem de referência adicionada na lista de referência L1 se refere será referida como predição L1 (Pred_L1). A predição L0 [e principalmente usada para predição anterior, e a predição L1 é principalmente usada para predição posterior. Apenas a predição L0 está disponível para as porções P. Para as porções B, a predição L0, predição L1, e a predição bidirecional em que a média de predição L0 e a predição L1 é calculada ou são adicionadas com ponderação estão disponíveis. Será adotado nos processos descritos abaixo que os valores com um sufixo LX são emitidos para cada predição L0 e predição L1. Registro de informações de codificação [0064] Uma descrição será fornecida agora do registro de informações de codificação como um vetor de movimento estimado por estimação e compensação de movimento. As informações de codificação são compreendidas de informações usadas para codificação como um vetor de movimento, uma lista de referência, um número de imagens de referência que indica uma imagem de referência adicionada na lista de referência, um modo de predição, etc. A estimação e compensação de movimento são realizadas em unidades de blocos de predição. As informações de codificação como um vetor de movimento estimado não são registradas em unidades de blocos de predição, porém registradas em unidades de blocos de predição mínimos. Em outras palavras, as mesmas informações de codificação são registradas em uma pluralidade de blocos de predição mínimos que constroem um bloco de predição.
[0065] O tamanho de um bloco de predição varia dependendo da condição de codificação. Portanto, o registro das informações de codificação na memória de armazenamento de informações de codificação 114, 210 em unidades de unidades de predição exige informações adicionais como a posição de um bloco de predição na imagem, o formato do bloco de predição, etc. além do vetor de movimento estimado
Petição 870190017641, de 21/02/2019, pág. 41/264
38/190 e obtém acesso para adquirir as informações de codificação complicadas. Portanto, independente da redundância causada por registro duplicado de informações, o acesso é facilmente realizado ao dividir uma imagem em blocos de predição mínimos de tamanhos iguais e registrar as informações em unidades dos blocos de predição mínimos. [0066] A Figura 8 mostra um exemplo em que uma imagem é dividida em blocos de predição mínimos. O formato de armazenamento de informações de codificação registradas na memória de armazenamento de informações de codificação 114, 210 será descrito com referência à Figura 8. Com referência à Figura 8, w indica uma largura de uma imagem, e h indica uma altura de uma imagem. Supondo que a largura e altura de um bloco de predição mínimo é p, a imagem é compreendida de um total de w/p blocos de predição mínimos horizontalmente e um total de h/p blocos de predição mínimos verticalmente. As informações de codificação correspondentes a cada um desses blocos de predição mínimos são armazenadas na memória de armazenamento de informações de codificação 114, 210 na ordem de varredura rastreada indicada pelas linhas grossas na Figura 8.
[0067] A área retangular limitada por linhas grosas na Figura 8 será definida como um bloco de predição (área hachurada na Figura 8). Em um bloco de predição, as informações de codificação como um vetor de movimento são estimadas por estimação de movimento estimação de movimento. As informações de codificação detectadas são registradas naquelas áreas na memória de armazenamento de informações de codificação 114, 210 que correspondem aos blocos de predição mínimos que constroem o bloco de predição. Supondo que o endereço anterior da área de armazenamento na memória de armazenamento de informações de codificação 114, 210 para registrar as informações de codificação é representado pela origem localizada na parte superior esquerda da Figura 8, a posição anterior do bloco de
Petição 870190017641, de 21/02/2019, pág. 42/264
39/190 predição é representada pelo círculo sólido na Figura 8. Supondo que a posição anterior do bloco de predição fica localizada em uma posição deslocada da origem por x blocos de predição mínimos voltada para a direita e y blocos de predição mínimos voltada para a parte inferior, o endereço anterior do bloco de predição é denotado por w/pxy+x. Começando no bloco de predição mínimo localizado na posição anterior, as informações de codificação do bloco de predição são armazenadas na área de armazenamentos na memória de armazenamento de informações de codificação 114, 121 que correspondem aos blocos de predição mínimos dentro do bloco de predição hachurado. Desse modo, as mesmas informações de codificação são registradas a área de armazenamentos na memória de armazenamento de informações de codificação 114, 121 que correspondem aos blocos de predição mínimos no bloco de predição.
[0068] Uma descrição será fornecida agora de uma sintaxe de um fluxo de bits de imagens em movimento codificadas pelo dispositivo de codificação de imagem em movimento fornecido com o método de seleção de um bloco de referência vizinho de acordo com as modalidades.
Definição de sintaxe [0069] A Figura 3A mostra a classificação de codificação de acordo com o modo de predição. A codificação de acordo com o modo Inter é adicionalmente classificada no modo de intercalação e no modo de não intercalação dependendo se uma intercalação for usada. O modo de não intercalação é um modo em que um vetor de movimento é realmente estimado por combinação de bloco, etc. e então também pode ser referido como o modo de estimação de movimento. O modo de intercalação é adicionalmente classificado no modo skip e no modo não skip. No modo skip, o sinal de imagem previsto esperado de acordo com as informações de codificação do bloco de referência vizinho é
Petição 870190017641, de 21/02/2019, pág. 43/264
40/190 definido como a imagem decodificada de modo que o sinal residual de imagem esteja em 0. Com isso, o modo skip exige a codificação e transmissão de apenas um índice que indica o alvo de referência das informações de codificação e não exige a codificação e transmissão de outras informações. As informações de codificação referidas no modo skip são iguais àquelas do modo de intercalação. Nesse relatório descritivo, o modo de intercalação é definido como um modo no qual o sinal residual de imagem é codificado e transmitido. Os sinais submetidos à codificação no modo Inter são classificados conforme mostrado na Figura 3B. Diferente dos outros modos, o modo skip não exige codificação e transmissão de um sinal residual de imagem. Portanto, o tamanho do código de um flag usado na decisão de modo pode ser reduzido ao tomar uma decisão para o modo skip do que tomar a decisão na ordem que ocorrem ramificações de modos de predição na Figura 3A.
[0070] A Figura 6, mencionada acima, mostra um padrão de sintaxe gravado para cada bloco de predição em uma porção. Primeiro, um flag skip_flag que indica se o modo skip é usado é ajustado. Se skip_flag for verdadeiro (1), e se o número total de candidatos de blocos de referência vizinhos NumMergeCand exceder 1, o modo skip é aplicado, e um elemento de sintaxe merge_idx, que é um índice em uma lista de intercalação, isto é, uma lista de candidatos de blocos de referência vizinhos a partir da qual as informações de codificação são adquiridas, é ajustado. Se NumMergeCand for 1, um bloco será o bloco de referência vizinho de modo que o candidato do bloco de referência vizinho seja identificado sem transmitir merge_idx.
[0071] De modo subsequente, se o modo de predição no bloco de predição estiver no modo Inter, um flag merge_flag que indica se o modo de intercalação foi usado é ajustado. Se merge_flag for verdadeiro (1), e se o número total de candidatos de blocos de referência
Petição 870190017641, de 21/02/2019, pág. 44/264
41/190 vizinhos NumMergeCand exceder 1, o modo de intercalação é aplicado, e um elemento de sintaxe merge_idx, que é um índice em uma lista de intercalação, isto é, uma lista de candidatos de blocos de referência vizinhos a partir da qual as informações de codificação são adquiridas, é ajustado. Se NumMergeCand for 1, um bloco será o bloco de referência vizinho de modo que o candidato do bloco de referência vizinho seja identificado sem transmitir merge_idx.
[0072] Se merge_flag for falso (0), o modo de intercalação não é aplicado. A estimação de vetor de movimento normal é realizada e as informações de codificação como um vetor de movimento, número de imagens de referência, etc. são transmitidas (correspondentes ao modo de estimação de movimento). Para cada bloco de predição uma lista de referência usada na codificação e decodificação é selecionada de acordo com o tipo de porção de uma porção à qual o bloco de predição pertence é selecionada. Se o tipo de porção slice_type for B, inter_pred_flag, que indica predição unidirecional ou predição bidirecional, é ajustado.
[0073] inter_pred_flag é ajustado para Pred_L0 (predição L0),
Pred_L1 (predição L1), ou Pred_BI (predição bidirecional). A lista de referência LX (X=0 ou 1) é ajustada de acordo com inter_pred_flag. Para cada lista de referência ajustada, um elemento de sintaxe ref_idx_lX, que indica um número de imagens de referência, e um elemento de sintaxe mvc_lX[i], que indica uma diferença de vetor de movimento que representa uma diferença entre um vetor de movimento e um preditor de vetor de movimento em um bloco vizinho imediatamente próximo ao bloco de predição, são ajustados. X é 0 ou 1 e denota uma lista de referência, i denota um componente da diferença de vetor de movimento; i=0 significa o componente x e i=1 significa o componente y.
[0074] Se o número total de candidatos de preditores de vetor de
Petição 870190017641, de 21/02/2019, pág. 45/264
42/190 movimento NumMvpCand (LX) exceder 1, um elemento de sintaxe mvp_idx_lX, que é um índice em uma lista MVP que lista os candidatos de preditores de vetor de movimento referidos, é ajustado. NumMvpCand (LX) é uma função para derivar o número total de candidatos de preditores de vetor de movimento do bloco de predição identificado na lista de referência LX (X é 0 ou 1). Se o método de predição de um vetor de movimento identificar o número total de candidatos de preditores de vetor de movimento NumMvpCand (LX) como 1, o índice mvp_idx_lX não é ajustado ou codificado. Isso se deve, se o número total de preditores de vetor de movimento for 1, ao fato de que um candidato será um preditor de vetor de movimento de modo que o candidato de um preditor de vetor de movimento ao qual deve se referir seja identificado sem transmitir mvp_idx_lX. A codificação e decodificação de um fluxo de bits de imagens em movimento são permitidas de acordo com a sintaxe descrita acima.
[0075] As Figuras 9A e 9B mostram blocos imediatamente vizinhos exemplificadores fornecidos com um preditor de vetor de movimento referido no modo de estimação de movimento ou blocos imediatamente vizinhos referidos para informações de codificação no modo de intercalação. As Figuras 9A e 9B mostram blocos próximos a um bloco de predição alvo como blocos de predição mínimos.
[0076] Esse esquema é vantajoso para acessar as informações de codificação já codificadas e registradas na memória de armazenamento de informações de codificação 114, 210, utilizando-se a posição e o tamanho do bloco de predição alvo (largura e altura do bloco) como uma chave. Esses blocos próximos ao bloco de predição alvo mostrado nas Figuras 9A e 9B à esquerda são denotados por A, e esses blocos vizinhos acima são denotados por B. Os numerais de sufixo indicam a posição.
[0077] Bloco T representa um bloco exemplificador próximo a um
Petição 870190017641, de 21/02/2019, pág. 46/264
43/190 bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. Nessa modalidade, será suposto que o bloco T é definido para estar próximo ao bloco de predição alvo na direção inferior direita em outra imagem. Se a posição do bloco de predição alvo resultar no bloco T localizado fora da imagem, o bloco T é definido na posição de um bloco de predição mínimo em outra imagem próxima ao centro do bloco de predição alvo. A Figura 9A mostra que cinco blocos vizinhos no espaço da mesma imagem são definidos como candidatos. Um total de seis candidatos, inclusive o candidato localizado em outra imagem em um ponto de tempo diferente, forma o conjunto. a Figura 9B mostra que quatro blocos vizinhos no espaço da mesma imagem são definidos como candidatos. Um total de cinco candidatos, inclusive o candidato localizado em outra imagem em um ponto de tempo diferente, forma o conjunto.
[0078] Todos os blocos vizinhos podem ser definidos como candidatos conforme na Figura 1. Supondo que um bloco de predição alvo possua um tamanho de 64x64 pixels e o tamanho de um bloco onde as informações de codificação são armazenadas na memória de armazenamento de informações de codificação 114, 210 possuem 4x4 pixels, um total de dezesseis blocos próximos ao bloco de predição alvo à esquerda, um total de dezesseis blocos acima, e três blocos nos respectivos cantos irão representar os blocos vizinhos que são referidos. Para implementação de hardware, fatores como a frequência máxima de acessos de memória esperados, tamanho de memória, e volume de processamento (tempo de processamento) devem ser considerados.
[0079] Nessa modalidade, o número de candidatos para referência é reduzido ao definir apenas um bloco próximo ao bloco alvo à esquerda e um bloco vizinho acima, conforme mostrado na Figura 9A.
Petição 870190017641, de 21/02/2019, pág. 47/264
44/190
Os blocos próximos ao bloco alvo na direção inferior esquerda, direção superior direita, e direção superior esquerda são adicionalmente definidos como candidatos. Na Figura 9B, o número de candidatos para referência é reduzido ao definir apenas um bloco próximo ao bloco alvo à esquerda e um bloco vizinho acima, os blocos definidos são diferentes daqueles na Figura 9A. Os blocos próximos ao bloco vizinho na direção inferior esquerda e direção superior direita são adicionalmente definidos como candidatos.
[0080] Ao limitar os candidatos previamente como descritos acima, a frequência de acessos de memória, tamanho de memória, e volume de processamento (tempo de processamento) podem ser vantajosamente reduzidos sem reduzir substancialmente a eficiência de codificação. A terceira modalidade e modalidades subsequentes descritas posteriormente são capazes de reduzir a frequência de acessos de memória, tamanho de memória, e volume de processamento (tempo de processamento) e, ainda, reduzir o tamanho do código dos índices de intercalação e índices MVP e assim podem reduzir vantajosamente o tamanho de códigos gerados. Outro aspecto das modalidades é que os candidatos comumente posicionados são usados no modo de intercalação e no modo de estimação de movimento de modo que a frequência de acessos de memória, tamanho de memória, e volume de processamento (tempo de processamento) sejam adicionalmente reduzidos.
[0081] Será suposto que a seguinte descrição irá se referir à disposição exemplificadora da Figura 9A. Para usar a disposição exemplificadora da Figura 9B, as mesmas etapas são realizadas para a disposição exemplificadora da Figura 9A podem ser realizadas sem considerar C0 na descrição a seguir. Qualquer disposição de blocos de referência vizinhos pode ser usada desde que não ocorra inconsistência no dispositivo de codificação de imagem em movimento 100 e no dis
Petição 870190017641, de 21/02/2019, pág. 48/264
45/190 positivo de decodificação de imagem em movimento 200. Também será suposto que as informações de codificação dos blocos de referência vizinhos já estão codificadas no dispositivo de codificação de imagem em movimento 100 e já decodificadas no dispositivo de decodificação de imagem em movimento 200. Quaisquer informações podem ser suficientes desde que essas possam ser registradas na memória de armazenamento de informações de codificação 114, 210.
[0082] A Figura 10 mostra os detalhes da unidade de detecção de informações de interpredição 104, 205, de acordo com a primeira modalidade, respectivamente mostrados na Figura 2, essa ilustra a configuração do dispositivo de codificação de imagem em movimento 100, e na Figura 4, essa ilustra a configuração do dispositivo de decodificação de imagem em movimento 200. A parte limitada pela linha pontilhada grossa na Figura 10 representa a unidade de detecção de informações de interpredição 104, 205, a mesma será descrita com referência a esse desenho. A unidade de detecção de informações de interpredição 104, 205 inclui uma unidade de detecção de posição de bloco alvo 301, uma unidade de designação de bloco vizinho 302, e uma memória temporária 303. Uma descrição será fornecida agora das etapas em que os candidatos posicionados conforme mostrado na Figura 9A são comumente usados no modo de intercalação e na estimação de movimento, e as informações de codificação dos blocos vizinhos na disposição da Figura 9A são adquiridas a partir da memória de armazenamento de informações de codificação 114, 210.
[0083] Inicialmente, as informações sobre a posição intra-imagem e o tamanho de um bloco de predição alvo são inseridas na unidade de detecção de posição de bloco alvo 301. Ao definir o pixel superior esquerdo na imagem como a origem, a posição de um bloco de predição alvo é representada pelas distâncias horizontais e verticais baseadas em pixel do bloco de predição alvo em relação ao pixel superior
Petição 870190017641, de 21/02/2019, pág. 49/264
46/190 esquerdo. A largura e altura do bloco de predição alvo são derivadas com base em PartMode, isso indica o modo de partição de um bloco de codificação alvo, e no número de vezes que o bloco de codificação é recursivamente dividido. As posições dos blocos de referência vizinhos referidas pelo bloco de predição alvo são então derivadas.
[0084] A unidade de designação de bloco vizinho 302 acessa a memória de armazenamento de informações de codificação 114, 210, utilizando as posições derivadas do bloco vizinho. A unidade de designação de bloco vizinho 302 lê as informações de codificação associadas às posições de blocos vizinhos mostradas na Figura 9A na memória temporária 303. A memória temporária 303 é uma memória fornecida dentro da unidade de detecção de informações de interpredição 104, 205 para registrar as informações de codificação de blocos de referência vizinhos referidos pelo bloco de predição alvo. Se a posição do bloco vizinho derivada estiver fora da tela, o bloco é não existente de tal modo que 0 é registrado na memória temporária 303.
[0085] Utilizando-se os candidatos comumente posicionados no modo de intercalação e no modo de estimação de movimento, o volume de informações de codificação de blocos vizinhos processados para armazenamento na memória temporária 303 no lado de codificação é reduzido. Também será desnecessário mudar o método de predição para cada modo de predição e acessar a memória de armazenamento de informações de codificação 114 toda vez que se adquire as informações de codificação necessárias do bloco vizinho. O benefício no lado de decodificação é que é possível iniciar o processo de armazenar as informações de codificação do bloco vizinho na memória temporária 303 antes de tomar uma decisão se o modo de intercalação ou o modo de estimação de movimento será usado de maneira que a velocidade do processo de decodificação seja aumentada.
[0086] No dispositivo de codificação de imagem em movimento
Petição 870190017641, de 21/02/2019, pág. 50/264
47/190
100 e no dispositivo de decodificação de imagem em movimento 200 fornecidos com o método de seleção de informações de codificação de acordo com as modalidades, as informações de codificação como um vetor de movimento e um número de imagens de referência do bloco de predição alvo não são diretamente codificadas, porém as informações de codificação do bloco imediatamente vizinho já codificadas/decodificadas e armazenadas na memória de armazenamento de informações de codificação 114, 210 são referidas e usadas. Ao codificar o índice que indica a posição do bloco de referência vizinho ou o índice que indica o preditor de vetor de movimento para prever o vetor de movimento, o tamanho do código das informações de codificação é reduzido. Uma descrição será fornecida abaixo, a título de exemplos específicos, de um método de se referir, no processo de codificação, a informações de codificação do bloco vizinho adquiridas pela unidade de detecção de informações de interpredição 104, 205 para derivar um índice que indica a posição do bloco de referência vizinho e um índice que indica o preditor de vetor de movimento para prever o vetor de movimento, e um método para adquirir, no processo de decodificação correspondente ao processo de codificação, as informações de codificação baseadas no índice que indica a posição do bloco de referência vizinho e no índice que indica o preditor de vetor de movimento para prever o vetor de movimento.
Primeira modalidade [0087] Primeiramente, será fornecida uma descrição da unidade de detecção de intercalação 106 de acordo com a primeira modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A Figura 11 mostra a configuração detalhada da unidade de detecção de intercalação 106. A parte limitada pela linha pontilhada grossa na Figura 11 representa a unidade de detecção de intercalação 106 e será fornecida uma descrição
Petição 870190017641, de 21/02/2019, pág. 51/264
48/190 com referência a esse desenho. A unidade de detecção de intercalação 106 inclui uma unidade de derivação de informações de codificação 310, uma unidade de construção de lista de candidato de referência 311, uma unidade de detecção de informações idênticas 312, uma unidade de saída 313, e uma memória de armazenamento de lista de candidato de referência 314.
[0088] Inicialmente, a destinação da saída da unidade de detecção de informações de interpredição 104 é comutada para a unidade de detecção de intercalação 106 de acordo com o modo de predição inserido no comutador 108 e controlada pelo dispositivo de codificação de imagem em movimento 100. As informações de codificação dos blocos de referência vizinhos referidas pelo bloco de predição alvo e armazenadas na memória temporária 303 na unidade de detecção de informações de interpredição 104 são inseridas na unidade de derivação de informações de codificação 310.
[0089] A operação da unidade de derivação de informações de codificação 310 será descrita utilizando o fluxograma da Figura 12. As informações de codificação inicialmente inseridas dos blocos vizinhos são examinadas para decidir se as informações de codificação do bloco vizinho localizadas na mesma imagem que o bloco de predição alvo estão disponíveis e as informações de codificação são derivadas, consequentemente (S100).
[0090] A Figura 13 mostra o fluxo de decisão detalhado de cada bloco vizinho localizado na mesma imagem que o bloco de predição alvo. Primeiro, uma variável N é inicializada (S200). Os blocos vizinhos A1, B1, B0, A0, e C0 mostrados na Figura 9A como localizados na mesma imagem são substituídos pela variável N. Será suposto que a variável é inicialmente ajustada de modo que N=A1 e atualizada na ordem B1, B0, A0, e C0.
[0091] De modo subsequente, as variáveis para armazenar as in
Petição 870190017641, de 21/02/2019, pág. 52/264
49/190 formações de codificação do bloco vizinho usadas na decisão subsequente são inicializadas. As variáveis incluem: um flag availableFlagN que indica se o bloco vizinho está disponível; um vetor de movimento mvLXN; um número de imagens de referência refIdxLXN; e um flag predFlagLXN que indica a disponibilidade de uma lista de referência. As variáveis são inicializadas da seguinte maneira (S201).
availableFlagN=0 mvLXN=(0,0) refIdxLXN=0 predFlagLXN=0 onde 0 ou 1, que indica uma lista de referência, é substituído pelo sufixo X. As informações de posição e codificação do bloco vizinho com a variável N (mais adiante, referido como o bloco vizinho N) são adquiridas (S202).
[0092] Uma decisão é tomada para determinar se o bloco vizinho
N está disponível com base na posição adquirida do bloco vizinho N (S203). Por exemplo, se o bloco de predição alvo estiver localizado na borda esquerda da imagem, não haverá blocos vizinhos à esquerda do bloco de predição alvo de tal modo que não haja informações de codificação correspondentes na memória de armazenamento de informações de codificação 114. Nesse caso, uma decisão de indisponibilidade é tomada. Se o bloco vizinho N estiver indisponível (Não em S203), availableFlagN é ajustado para 0 (S207). Se o bloco vizinho N estiver disponível (Sim em S203), uma decisão é tomada para determinar se o modo de predição no modo vizinho N é o modo de codificação (Intra) intra-imagem (S204).
[0093] Se o modo de predição do bloco vizinho N for Intra (Sim em
S204), availableFlagN é ajustado para 0 (S207). Se o modo de predição do bloco vizinho N não for Intra (Não em S204), availableFlagN é ajustado para 1 (S205). De modo subsequente, as informações de
Petição 870190017641, de 21/02/2019, pág. 53/264
50/190 codificação do bloco vizinho N são substituídas por refIdxLXN, mvLXN, e predFlagLXN (S206).
[0094] Quando a etapa de decisão for concluída para o bloco vizinho N, uma decisão é tomada para determinar se a variável N indica o último bloco vizinho (S208). Visto que a variável N é atualizada na ordem A1, B1, B0, A1, e C0, uma decisão é tomada para determinar se N é C0. Se N for C0 (Sim em S208), significa que todos os blocos vizinhos foram submetidos à decisão de modo que o processo seja encerrado. Se N não for C0 (Não em S208), N é atualizado (S209). N é atualizado na ordem anteriormente mencionada de blocos vizinhos de modo que a etapa S201 e as etapas subsequentes sejam repetidas para o bloco vizinho N. Como descrito acima, os blocos imediatamente vizinhos localizados na mesma imagem que o bloco de predição alvo são definidos como os blocos de referência e as informações de codificação desses são derivadas.
[0095] Novamente com referência à Figura 12, o número de imagens de referência de outra imagem que ocorrem em um ponto de tempo diferente e referidas pelo bloco de predição alvo como um candidato de intercalação é decidido (S101). Essa etapa é realizada para decidir uma imagem de referência referida para interpredição no bloco de predição alvo, que é realizada ao se referir ao vetor de movimento do bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. Nesse processo, o número de imagens de referência da imagem referido pelo bloco de predição alvo é decidido ao se referir às informações de codificação dos blocos vizinhos já codificadas. Uma descrição será fornecida aqui de um método com base nas informações de codificação dos blocos vizinhos na mesma imagem derivadas na etapa anterior (S100) com referência à Figura 14.
[0096] Primeiro, os quatro blocos vizinhos derivados na etapa
Petição 870190017641, de 21/02/2019, pág. 54/264
51/190
S100 são categorizados em três grupos. Os blocos próximos ao bloco de predição alvo à esquerda são definidos como blocos do Grupo A, os blocos vizinhos acima são definidos como blocos do Grupo B, e os blocos vizinhos no canto são definidos como blocos do Grupo C, de modo que a decisão seja tomada em cada um dos grupos.
[0097] As etapas no Grupo A serão explicadas com referência à
Figura 14A. Visto que o bloco vizinho pertencente ao Grupo A é A1, o flag availableFlagA1, que indica se A1 derivado na etapa S100 está disponível, é examinado (S300). Se availableFlagA1 for 1 (Sim em S300), refIdxLXA, isto é, o número de imagens de referência refIdxLXA do Grupo A é definido como o número de imagens de referência de
A1. De outro modo (Não em S300), refIdxLXA é ajustado para -1 indicando a ausência de número de imagens de referência.
[0098] Similarmente, as etapas no Grupo B serão explicadas com referência à Figura 14B. Visto que o bloco vizinho pertencente ao Grupo B é B1, o flag availableFlagB1, que indica se B1 derivado na etapa S100 está disponível, é examinado (S301). Se availableFlagB1 for 1 (Sim em S301), refIdxLXB, isto é, o número de imagens de referência refIdxLXB do Grupo B é definido como o número de imagens de referência de B1. De outro modo (Não em S301), refIdxLXB é ajustado para -1.
[0099] Os blocos vizinhos pertencentes ao Grupo C incluem B0 e
C0. Conforme mostrado na Figura 14C, uma decisão é tomada na ordem B0, A0, e C0. Como no caso de A1, B1, o flag availableFlagB0 de B0 é examinado (S302). Se availableFlagB0 for 1 (Sim em S302), refIdxLXC, isto é, o número de imagens de referência refIdxLXC do Grupo C é definido como o número de imagens de referência de B0. De outro modo, (Não em S302), o flag availableFlagA0 de A0 é examinado (S303). Se availableFlagA0 for 1 (Sim em S303), o número de imagens de referência refIdxLXC do Grupo C é definido como o número
Petição 870190017641, de 21/02/2019, pág. 55/264
52/190 de imagens de referência de B0. De outro modo, (Não em S303), o flag availableFlagC0 de C0 é examinado (S304). Se availableFlagC0 for 1 (Sim em S304), refIdxLXC, isto é, o número de imagens de referência refIdxLXC do Grupo C é definido como o número de imagens de referência de C0. De outro modo, (Não em S304), refIdxLXC é ajustado para -1.
[00100] Na ausência do bloco na posição de C0 como no caso dos blocos vizinhos na mesma imagem mostrada na Figura 9B, uma decisão é tomada em dois blocos vizinhos inclusive B0 e A0. Por voto majoritário ou ao selecionar o valor mínimo a partir dos números de imagem de referência refIdxLXN (N é A, B, ou C) dos respectivos grupos, o número de imagens de referência do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é decidido.
[00101] A Figura 15 mostra a decisão com base no número de imagens de referência refIdxLXN. A descrição será fornecida de cima para baixo na Figura 15. As linhas 1-4 indicam casos onde refIdxLXN de blocos diferentes contém o mesmo valor. Nesse caso, a seleção é realizada por voto majoritário. A linha 1 indica um caso onde refIdxLXN de todos os blocos contém o mesmo valor. Se refIdxLXN for ajustado para -1, 0 é selecionado. De outro modo, o valor de refIdxLXA é selecionado. As linhas 2-4 indicam casos onde refIdxLXN de dois entre três blocos contém o mesmo valor. Se o mesmo valor for -1, o valor no refIdxLXN restante é usado. De outro modo, o mesmo valor contido em refIdxLXN dos dois blocos é usado.
[00102] As linhas 5-8 indicam casos onde refIdxLXN dos blocos não contém o mesmo valor. O mínimo dos valores contidos é selecionado. Entre os três blocos, o bloco em que refIdxLXN é ajustado para -1 é excluído de modo que o menor número de imagens de referência seja selecionado. O número de imagens de referência da imagem que deve
Petição 870190017641, de 21/02/2019, pág. 56/264
53/190 ser referido pelo bloco de predição alvo é decidido como descrito acima. Outros métodos podem ser usados.
[00103] Novamente com referência à Figura 12, uma decisão é tomada quanto à disponibilidade das informações de codificação do bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, e as informações de codificação são derivadas, consequentemente (S102). A Figura 16 mostra o fluxo de decisão detalhado de um bloco vizinho localizado em uma imagem diferente daquele do bloco de predição alvo. Primeiro, outra imagem em um ponto de tempo diferente da imagem que inclui o bloco de predição alvo é designada (S400). Se a porção que inclui o bloco de predição alvo for uma porção P, apenas a predição L0 está disponível de modo que a imagem indicada pelo número de imagens de referência 0 na lista de referência para L0 seja designada. No caso de uma porção B, um entre a predição L0 e a predição L1 ou a predição bidirecional L0 e L1 está disponível. A imagem indicada pelo número de imagens de referência 0 na lista de referência para um entre L0 e L1 é designada. A designação de outra imagem em um ponto de tempo diferente no caso de uma porção B não é discutida aqui. Por exemplo, um parâmetro que designa essa lista de referência deve ser referido de modo a ser inserido na porção B.
[00104] De modo subsequente, a posição de um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é designada (S401). Na primeira modalidade, o bloco de referência vizinho T mostrado na Figura 9A é definido como um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. Portanto, a largura e altura do bloco de predição alvo são derivadas com base na
Petição 870190017641, de 21/02/2019, pág. 57/264
54/190 posição do modo de predição alvo, PartMode, que indica o modo de partição, e o número de vezes de partição, e a posição do bloco vizinho T é derivada, consequentemente. Se a posição derivada do bloco vizinho estiver fora da imagem, a posição é definida em uma posição em outra imagem em um ponto de tempo diferente próximo ao centro do bloco identicamente localizado como o bloco de predição alvo. Na descrição a seguir, outra imagem em um ponto de tempo diferente é definida como uma imagem col, e o bloco próximo ao bloco localizado nessa imagem para corresponder ao bloco de predição alvo é definido como um bloco col. O vetor de movimento e número de imagens de referência associados são indicados com o sufixo Col.
[00105] A memória de armazenamento de informações de codificação 114 é acessada para ler as informações de codificação de um bloco col, utilizando, como chaves, uma imagem col e a posição de um bloco col localizado nessa para limitar o bloco correspondente ao bloco de predição alvo. Uma decisão é tomada para determinar se as informações de codificação estão disponíveis e o vetor de movimento é derivado, consequentemente (S402).
[00106] A Figura 17 mostra etapas detalhadas de derivação, as mesmas serão descritas com referência a esse desenho. Uma decisão é tomada para determinar se um bloco col está disponível ao se referir às informações de codificação e posição de um bloco col lidas a partir da memória de armazenamento de informações de codificação 114 (S500). Se um bloco col for não existente, ou se o modo de predição de um bloco col for Intra (Sim em S500), o vetor de movimento de base mvCol de um bloco col é ajustado para (0,0), o flag de disponibilidade de base availableFlagCol é ajustado para 0 (S501), e o controle procede para a etapa S509. De outro modo, (Não em S500), predFlagL0, que indica a disponibilidade da lista de referência L0 de um bloco col é examinado (S502).
Petição 870190017641, de 21/02/2019, pág. 58/264
55/190 [00107] Se predFlagLO for 0 (Sim em S502), a predição L0 está indisponível de tal modo que as informações de codificação de predição L1 são selecionadas, mvCol é ajustado para mvL1, o número de imagens de referência de base refIdxCol é ajustado para refIdxL1 (S503), e o controle procede para a etapa S507. De outro modo, (Não em S502), isto é, se a predição L0 estiver disponível, o flag predFlagL1, que indica a disponibilidade da lista de referência L1 de um bloco col é examinado (S504).
[00108] Se predFlagL1 for 0 (Sim em S504), a predição L1 está indisponível de tal modo que as informações de codificação da predição L0 são selecionadas, mvCol é ajustado para mvL0, refIdxCol é ajustado para refIdxL0 (S505), e o controle procede para a etapa S507. De outro modo, (Não em S504), isto é, se a predição L0 e a predição L1 estiverem disponíveis, o controle procede para a derivação no caso de modo Pred_BI (S506). Para a derivação no caso de modo Pred_BI, uma entre a predição L0 e a predição L1 é selecionada.
[00109] L0 ou L1 podem ser selecionadas ao selecionar a lista de referência contendo uma imagem col selecionada na etapa S500; ou ao selecionar a imagem de referência referida na predição L0 em um bloco col ou a imagem de referência referida na predição L1 em um bloco col, qualquer que esteja em uma distância inter-imagem menor de uma imagem col; ou ao encontrar a interseção de um vetor de movimento de predição L0 ou predição L1 em um bloco col com a imagem contendo o bloco alvo (mais adiante, imagem alvo) e ao selecionar um tipo de predição que resulta na interseção.
[00110] A Figura 18 mostra um exemplo do terceiro critério. Nesse exemplo, se a imagem alvo cruzar o vetor de movimento de um bloco col, a imagem de referência referida a partir de uma imagem col, a imagem alvo, e uma imagem col são exibidas na ordem temporal estabelecida. O bloco correspondente a um bloco col será localizado
Petição 870190017641, de 21/02/2019, pág. 59/264
56/190 dentro da imagem alvo sem exceção. Portanto, para o propósito de avaliar o movimento nas proximidades ocorrente em um curto período de tempo, a seleção de um tipo de predição que resulta na interseção como ilustrado, poderia produzir maior confiabilidade em predição de vetor de movimento. Assim, a lista de referência referida pelo vetor de movimento que cruza a imagem alvo é selecionada e mvCol e refIdxCol são ajustados, consequentemente.
[00111] Com referência à Figura 17, o flag de disponibilidade de base availableFlagCol é ajustado para 1 visto que o vetor de movimento está disponível (S507). A variável X que indica uma lista de referência é ajustada para 0 (S508), e os vetores de movimento L0 e L1 de um bloco col são derivados. O vetor de movimento de base mvCol e o número de imagens de referência de base refIdxCol decididos nas etapas acima são referidos para designar a posição da imagem de referência e derivar a distância inter-imagem colDist até uma imagem col.
[00112] Ademais, a posição da imagem de referência referida pelo bloco de predição alvo é designada ao se referir ao número de imagens de referência refIdxLX decidido na etapa S401 como referido no bloco de predição alvo, e a distância inter-imagem currDist até a imagem alvo é derivada. currDist e colDist são comparados (S509). Se currDist e colDist forem iguais (OK em S509), o vetor de movimento de base mvCol é diretamente substituído por mvLXCol (S510).
[00113] Se currDist e colDist não forem iguais (NG em S509), o escalonamento da distância é realizado. O escalonamento é um processo por meio do qual o vetor de movimento do bloco vizinho é submetido a uma conversão baseada em distância ao adaptar a distância inter-imagem até a imagem referida pelo bloco vizinho à distância interimagem até a imagem referida pelo bloco de predição alvo, antes de usar o vetor de movimento do bloco vizinho como o vetor de movimen
Petição 870190017641, de 21/02/2019, pág. 60/264
57/190 to do bloco de predição alvo. A Figura 18 mostra um exemplo de escalonamento. Visto que a distância inter-imagem até a imagem referida por um bloco col em uma imagem col e a imagem referida pelo bloco de predição alvo é denotada por colDist e currDist, respectivamente, o vetor de movimento mvCol de um bloco col é submetido à conversão indicada pela seguinte expressão de acordo com a distância interimagem até o bloco de predição alvo, derivando assim o vetor de movimento desejado (S511).
mvColLX - mvCol x ™rrDlsi ... (1) colDist [00114] Uma decisão é tomada para determinar se X é 1 (S512). Se X não for 1, isto é, 0 (Não em S512), as mesmas etapas acima são realizadas na direção de predição L1. Para esse propósito, X é atualizado para 1 (S513) de modo que a etapa S509 e as etapas subsequentes sejam repetidas. Se X for 1 (Sim em S512), o processo é encerrado.
[00115] As informações de codificação do bloco vizinho obtidas desse modo são inseridas na unidade de construção de lista de candidato de referência 311. Na primeira modalidade, a memória de armazenamento de lista de candidato de referência 314 é fornecida com uma lista de candidatos de referência como uma área de armazenamento em que os candidatos de informações de codificação dos blocos de referência vizinhos são adicionados. Os candidatos de informações de codificação dos blocos de referência vizinhos são dispostos na ordem de prioridade. Os candidatos de informações de codificação dos blocos de referência vizinhos são adicionados na lista de candidatos de referência na ordem de prioridade. Isso reduz o tamanho do código dos índices mergejdx na lista de candidatos de referência.
[00116] O tamanho do código é reduzido ao posicionar os elementos com maior frequência de ocorrência em direção à parte superior da
Petição 870190017641, de 21/02/2019, pág. 61/264
58/190 lista de candidatos de referência. O índice merge_idx que indica a ordem de prioridade é atribuído na ordem ascendente, começando com 0. Por exemplo, se o número de elementos na lista de candidatos de referência for 3, o tamanho do código exigido para definir um índice 0 será 1 bit ao definir o índice 0 na lista de candidatos de referência como 0 (notação binária), um índice 1 como 10 (notação binária), e um índice 2 como 11 (notação binária). Ao adicionar um elemento com a maior frequência de ocorrência no índice 0, o tamanho do código é reduzido.
[00117] A lista de candidatos de referência fornecida na memória de armazenamento de lista de candidato de referência 314 é construída como uma lista. A lista de candidatos de referência é fornecida com uma área de matriz para armazenar, como elementos, um índice que indica a localização dentro da lista de candidatos de referência e um candidato, correspondente ao índice, de informações de codificação do bloco de referência vizinho. A área de matriz é denotada por candList. Os índices começam com 0. A área de armazenamento da lista de candidatos de referência candList armazena o candidato de informações de codificação do bloco de referência vizinho. Na seguinte descrição das etapas, as informações de codificação atribuídas a um índice i adicionado na lista de candidatos de referência candList serão denotadas por candList [i] para distinguir as mesmas da lista de candidatos de referência candList utilizando a notação de matriz. Exceto onde especificado em contrário, as informações de codificação armazenadas na área de armazenamento da lista de candidatos de referência serão denotadas pelos nomes das posições (A0, A1, B0, B1, C0, T) dos blocos de referência vizinhos.
[00118] A operação da unidade de construção de lista de candidato de referência 311 será descrita utilizando o fluxograma da Figura 19. Primeiro, a variável N e um índice k na lista de candidatos de referên
Petição 870190017641, de 21/02/2019, pág. 62/264
59/190 cia serão inicializados (S600). A variável N é inicializada para conter o bloco vizinho A1 mostrado na Figura 9A, e k é ajustado para 0. O índice k indica a ordem de prioridade de uma área para armazenar o candidato de informações de codificação definido na área de armazenamento da lista de candidatos de referência.
[00119] O flag availableFlagN que indica a disponibilidade do bloco de referência vizinho N é examinado (S601). Se availableFlagN for 1 (Sim em S601), as informações de codificação do bloco vizinho N são adicionadas na lista de candidatos de referência candList[k] (S602), e k é atualizado (S603). Se availableFlagN for 0 (Não em S601), as informações de codificação não são adicionadas na lista de candidatos de referência, e o controle procede para a próxima etapa.
[00120] Uma decisão é tomada para determinar se o bloco vizinho N é o último bloco de referência (S604). Se o bloco N for o último bloco (Sim em S604), o valor do índice é substituído pelo número total de candidatos listados NumListCand (S605), e o processo é encerrado. Se o bloco N não for o último bloco (Não em S604), a variável N é atualizada (S606), e a etapa S601 e as etapas subsequentes são repetidas.
[00121] A ordem de blocos vizinhos de acordo com a qual a variável N é atualizada é configurada para ser idêntica à ordem de prioridade de armazenamento na lista de candidatos de referência. Será suposto que a ordem (A1, B1, B0, A0, C0, T) é ajustada no caso do modo de intercalação. Quanto maior na ordem de prioridade, mais em direção à parte superior o bloco será adicionado na lista de candidatos de referência de modo que o índice de intercalação que identifica um candidato de intercalação na lista de candidatos de referência tenha um código atribuído de um tamanho menor do código.
[00122] No caso do modo de intercalação, os blocos vizinhos A1 e B1 são adicionados em direção à parte superior da lista de candidatos
Petição 870190017641, de 21/02/2019, pág. 63/264
60/190 de referência de preferência para os outros blocos. Isso se deve ao fato de ser mais provável que as informações de codificação dos blocos A1 e B1 sejam iguais àquelas do bloco de predição alvo e devido ao fato de os blocos A1 e B1 serem contíguos com o bloco de predição alvo nos lados. Isso reduz o tamanho do código de índices de intercalação e aumenta a eficiência de codificação.
[00123] Ficando estabelecido que todos os blocos de referência vizinhos adicionados na lista de candidatos de referência estão disponíveis, as etapas acima irão produzir uma lista de candidatos de referência na ordem mostrada na Figura 20. A ordem de prioridade é indicada pelos índices. As palavras-código são listadas na coluna mais à direita da lista de candidatos de referência. O tamanho de palavra-código máximo é NumListCand-1. No caso da Figura 20, NumListCand é 6 de modo que a palavra-código seja representada por 5 bits no máximo. Ficando estabelecido que apenas um bloco de referência vizinho está disponível, o tamanho de palavra-código máximo será 0 de modo que não haverá necessidade de índices. O candidato de informações de codificação do bloco vizinho exclusivamente decidido como disponível é unicamente identificado como o alvo de referência.
[00124] A lista de candidatos de referência construída desse modo é inserida na unidade de detecção de informações idênticas 312. A unidade de detecção de informações idênticas 312 compara os candidatos de informações de codificação armazenados na lista de candidatos de referência e, se houver uma pluralidade de conjuntos idênticos de informações de codificação, todas as informações exceto o candidato de informações de codificação que possui o menor índice na lista de candidatos de referência são deletadas. A operação será descrita utilizando o fluxograma mostrado na Figura 211.
[00125] As variáveis n e m que indicam o índice na lista de candidatos de referência são ajustadas para 0 e 1, respectivamente (S700). As
Petição 870190017641, de 21/02/2019, pág. 64/264
61/190 informações de codificação armazenadas na lista de candidatos de referência com o índice n são comparadas com as informações de codificação com o índice m (S701). As informações de codificação submetidas à comparação incluem o modo de predição, a lista de referência usada, os números de imagem de referência de cada lista de referência usados, e o vetor de movimento de cada lista de referência usada. Se as informações de codificação não forem consideradas compatíveis (Não em S701), o controle procede para a etapa S704. Se as informações de codificação forem consideradas compatíveis (Sim em S701), uma decisão é tomada para determinar qual dos índices n e m é maior, isto é, se m já foi adicionado em uma lista de deleção (S702).
[00126] Se m já estiver adicionado na lista de deleção (Sim em S702), o controle procede para a etapa S704. Se m ainda não estiver sido adicionado (Não em S702), m é adicionado na lista de deleção (S703). A lista de deleção é uma memória fornecida na unidade de detecção de informações idênticas 312 para armazenamento temporário. [00127] De modo subsequente, m é atualizado ao ser incrementado por 1 (S704). m é comparado com o número total de candidatos listados NumListCand (S705). Se m não for igual a NumListCand (Não em S705), a comparação entre as informações de codificação com o índice m e as informações de codificação com o índice n na etapa S701 e nas etapas subsequentes é repetida. Quando m atingir NumListCand (Sim em S705), n é atualizado ao ser incrementado por 1 (S706). [00128] De modo subsequente, n é comparado com (NumListCand-
1) (S707). Se n não for igual a (NumListCand-1) (Não em S707), m é ajustado para (n+1) (S709), e a comparação das informações de codificação na etapa S701 e as etapas subsequentes é repetida. Quando n atingir (NumListCand-1) (Sim em S707), as informações de codificação em uma área de armazenamento da lista correspondente ao índice
Petição 870190017641, de 21/02/2019, pág. 65/264
62/190 adicionado na lista de deleção são deletadas. Permite-se que entrada com o índice 0 seja deixada intacta e a vacância seja preenchida pelos candidatos subsequentes na ordem ascendente do índice. As palavras-código e o número total de candidatos listados NumListCand são atualizados (S708), com isso o processo é encerrado.
[00129] Por fim, a unidade de saída 313 emite os índices e as informações de codificação na lista de candidatos de referência construídas desse modo. A unidade de saída 313 emite a lista de candidatos de referência como uma lista de intercalação e emite os índices na lista como índices de intercalação. A saída é fornecida à unidade de predição de compensação de movimento 105 e à unidade de decisão de método de predição 107 no dispositivo de codificação de imagem em movimento 100.
[00130] Uma descrição será fornecida agora da unidade de decisão de intercalação 206 de acordo com a primeira modalidade fornecida no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de detecção de intercalação 106 de acordo com a primeira modalidade fornecida no dispositivo de codificação de imagem em movimento 100. A Figura 22 mostra a configuração detalhada da unidade de decisão de intercalação 206. A parte limitada pela linha pontilhada grossa na Figura 22 representa a unidade de decisão de intercalação 206. A unidade de decisão de intercalação 206 inclui uma unidade de derivação de informações de codificação 310, uma unidade de construção de lista de candidato de referência 311, uma unidade de detecção de informações idênticas 312, uma memória de armazenamento de lista de candidato de referência 314, e uma unidade de seleção 315.
[00131] A unidade de decisão de intercalação 206 corresponde à unidade de detecção de intercalação 106 do dispositivo de codificação de imagem em movimento 100. Internamente, a unidade de decisão
Petição 870190017641, de 21/02/2019, pág. 66/264
63/190 de intercalação 206 se difere da unidade de detecção de intercalação 106 apenas na unidade de seleção 315 e na unidade de saída 313. Os outros componentes, inclusive a unidade de derivação de informações de codificação 310, a unidade de construção de lista de candidato de referência 311, a unidade de detecção de informações idênticas 312, e a memória de armazenamento de lista de candidato de referência 314 possuem as mesmas funções que aquelas do dispositivo de codificação de imagem em movimento 100. Assim, a mesma lista de candidatos de referência construída nas etapas de codificação é construída nas etapas através da unidade de detecção de informações idênticas 312.
[00132] Uma descrição será fornecida da unidade de seleção 315, essa adquire as informações de codificação do bloco de referência vizinho no modo de intercalação da lista de candidatos de referência construída. A unidade de seleção 315 seleciona o bloco vizinho na lista de candidatos de referência designado pelo índice para identificar o bloco de referência vizinho decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 315 fornece as informações de codificação selecionadas à unidade de predição de compensação de movimento 207 e à memória de armazenamento de informações de codificação 210.
[00133] Primeiro, será fornecida uma descrição da unidade de predição de vetor de movimento 103 de acordo com a primeira modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A Figura 23 mostra a configuração detalhada da unidade de predição de vetor de movimento 103. A parte limitada pela linha pontilhada grossa na Figura 23 representa a unidade de predição de vetor de movimento 103 e uma descrição será fornecida com referência a esse desenho. A unidade de predição de vetor de movimento 103 inclui uma unidade de derivação de
Petição 870190017641, de 21/02/2019, pág. 67/264
64/190 informações de codificação 320, uma unidade de construção de lista de candidato de referência 321, uma unidade de detecção de informações idênticas 322, uma unidade de saída 323, uma memória de armazenamento de lista de candidato de referência 324, e uma unidade de derivação de diferença de vetor de movimento 326.
[00134] As informações de codificação dos blocos de referência vizinhos referidas pelo bloco de predição alvo e armazenadas na memória temporária 303 na unidade de detecção de informações de interpredição 104 são inseridas na unidade de derivação de informações de codificação 320. A operação da unidade de derivação de informações de codificação 320 será descrita utilizando o fluxograma da Figura 24.
[00135] As informações de codificação inicialmente inseridas dos blocos vizinhos são examinadas para decidir se as informações de codificação do bloco vizinho localizado na mesma imagem que o bloco de predição alvo estão disponíveis e as informações de codificação são derivadas, consequentemente (S800). A Figura 25 mostra o fluxo de decisão detalhado de cada bloco vizinho localizado na mesma imagem que o bloco de predição alvo. A decisão na Figura 25 é realizada em cada lista L0 e L1, independentemente uma da outra.
[00136] A decisão é realizada de acordo com o modo de predição no bloco de predição alvo. De modo mais específico, no caso de predição unidirecional L0, apenas as informações de codificação adicionadas na lista de referência L0 são submetidas à decisão. No caso de predição unidirecional L1, apenas as informações de codificação adicionadas na lista de referência L1 são submetidas à decisão. No caso de predição bidirecional, as informações de codificação em cada lista de referências L0 e L1 são submetidas à decisão. Nesse relatório descritivo, uma das listas de candidatos de referência é referida como LX para descrever as etapas de decisão no modo de estimação de movi
Petição 870190017641, de 21/02/2019, pág. 68/264
65/190 mento, exceto onde especificado em contrário. Apenas uma lista de candidatos de referência será ilustrada nos desenhos associados. [00137] Primeiro, uma variável N é inicializada (S900). Os blocos vizinhos A1, B1, B0, A0, e C0 mostrados na Figura 9A como localizados na mesma imagem são substituídos pela variável N. Será suposto que a variável é inicialmente ajustada de modo que N=A1 e atualizado na ordem B1, B0, A0, e C0.
[00138] De modo subsequente, as variáveis para armazenar as informações de codificação do bloco vizinho usadas na decisão subsequente são inicializadas. As variáveis incluem: um flag availableFlagLXN que indica se o bloco vizinho está disponível; um vetor de movimento mvLXN; um número de imagens de referência refIdxLXN; e um flag predFlagLXN que indica a disponibilidade de uma lista de referência. As variáveis são inicializadas da seguinte maneira (S901).
availableFlagLXN=0 mvLXN=(0,0) refIdxLXN=0 predFlagLXN=0 onde 0 ou 1, que indica uma lista de referência, é substituído pelo sufixo X. As informações de posição e codificação do bloco vizinho com a variável N (mais adiante, referido como o bloco vizinho N) são adquiridas (S902).
[00139] Uma decisão é tomada para determinar se o bloco vizinho N está disponível com base na posição adquirida do bloco vizinho N (S903). Por exemplo, se o bloco de predição alvo estiver localizado na borda esquerda da imagem, não haverá blocos vizinhos à esquerda do bloco de predição alvo de tal modo que não haja informações de codificação correspondentes na memória de armazenamento de informações de codificação 114. Nesse caso, uma decisão de indisponibilidade é tomada.
Petição 870190017641, de 21/02/2019, pág. 69/264
66/190 [00140] Se o bloco vizinho N estiver indisponível (Não em S903), availableFlagLXN é ajustado para 0 (S908). Se o bloco vizinho N estiver disponível (Sim em S903), uma decisão é tomada para determinar se o modo de predição no modo vizinho N é Intra (S904).
[00141] Se o modo de predição do bloco vizinho N for Intra (Sim em S904), availableFlagLXN é ajustado para 0 (S908). Se o modo de predição do bloco vizinho N não for Intra (Não em S904), uma decisão é tomada para determinar se a predição que utiliza a mesma lista de referência e o mesmo número de imagens de referência usado na predição no bloco de predição alvo é realizada no bloco vizinho N (S905). [00142] Se a predição não for realizada (Não em S905), availableFlagLXN é ajustado para 0 (S908). Se a predição for realizada (Sim em S905), availableFlagLXN é ajustado para 1 (S906). De modo subsequente, o valor do vetor de movimento do N vizinho é substituído por mvLXN (S907).
[00143] Quando a etapa de decisão for concluída para o bloco vizinho N, como descrito acima, uma decisão é tomada para determinar se a variável N indica o último bloco vizinho (S909). Visto que a variável N é atualizada na ordem A1, B1, B0, A1, e C0, uma decisão é tomada para determinar se N é C0. Se N for C0 (Sim em S909), significa que todos os blocos vizinhos foram submetidos à decisão de modo que o processo seja encerrado. Se N não for C0 (Não em S909), N é atualizado (S910). N é atualizado na ordem anteriormente mencionada de blocos vizinhos de modo que a etapa S901 e as etapas subsequentes sejam repetidas para o bloco vizinho N.
[00144] Na etapa S905 da primeira modalidade, uma decisão é tomada para determinar se a predição que utiliza a mesma lista de referência e o mesmo número de imagens de referência usado na predição no bloco de predição alvo é realizada no bloco vizinho N. Isso porque, se o mesmo número de imagens de referência e a mesma lista de
Petição 870190017641, de 21/02/2019, pág. 70/264
67/190 referência forem usados, é muito provável que o vetor de movimento do bloco de predição alvo e do bloco vizinho N sejam idênticos ou próximos um ao outro de modo que a diferença nos vetores de movimento seja pequena e a eficiência de codificação é aumentada, consequentemente.
[00145] No entanto, o bloco vizinho em que a predição é realizada utilizando o mesmo número de imagens de referência e a mesma lista de referência não é necessariamente encontrado na mesma imagem. Se esse bloco não estiver disponível, a diferença nos vetores de movimento não pode ser derivada de tal modo que a eficiência de codificação será reduzida. Isso é resolvido não exigindo a condição da mesma lista de referência e a o mesmo número de imagens de referência para a decisão em S905. O flag que indica a disponibilidade do bloco vizinho availableFlagLXN é ajustado para 1 (disponível) se a predição realizada no bloco vizinho cumprir qualquer uma das seguintes condições, e o bloco associado é identificado como um candidato de bloco de referência vizinho e as informações de codificação associadas são derivadas, consequentemente.
Condição 1: mesma lista de referência e mesmo número de imagens de referência
Condição 2: lista de referência diferente e mesmo número de imagens de referência
Condição 3: mesma lista de referência e número de imagens de referência diferente
Condição 4: lista de referência diferente e número de imagem diferente [00146] O fluxo do processo nesse caso será mostrado na Figura 26. A Figura 26 se difere da Figura 25 pelo fato que a etapa S905 da Figura 25, que examina apenas a Condição 1, é deletada. Uma decisão para determinar se qualquer uma das Condições 1-4 foi cumprida
Petição 870190017641, de 21/02/2019, pág. 71/264
68/190 é tomada na etapa S911. A Etapa S902 é adicionada para escalonar o vetor de movimento se nenhuma das Condições 1 e 2 for cumprida. As outras etapas S900 à etapa S910 são iguais àquelas da Figura 25 de tal modo que a seguinte descrição se refere apenas a alterações e adições.
[00147] Se o modo de predição do bloco vizinho N não for Intra (Não em S904), availableFlagLXN é ajustado para 1 (S906). De modo subsequente, uma decisão é tomada para determinar se qualquer uma das Condições 1-4 foi cumprida ao comparar as informações de codificação da predição no bloco de predição alvo e as informações de codificação do bloco vizinho N (S911). Se a Condição 1 ou Condição 2 for cumprida, o valor do vetor de movimento do bloco vizinho N que utiliza a mesma lista de referência (no caso a Condição 1 é cumprida) ou o valor do vetor de movimento que utiliza a lista de referência diferente (no caso a Condição 2 é cumprida) é substituído por mvLXN (S907).
[00148] Se a Condição 3 ou a Condição 4 for cumprida, o vetor de movimento do bloco vizinho N que utiliza a mesma lista de referência (no caso a Condição 3 é cumprida) ou o vetor de movimento que utiliza a lista de referência diferente (no caso a Condição 4 é cumprida) é escalonado (S912). No modo de estimação de movimento, o vetor de movimento predição é realizado para transmitir o vetor de movimento do bloco de predição alvo utilizando um tamanho do código menor. O vetor de movimento predição é um processo para encontrar uma diferença entre o vetor de movimento do bloco de predição alvo e o vetor de movimento do bloco vizinho e para codificar a diferença. Se as imagens forem referidas para se diferirem, isso irá afetar a magnitude do vetor de movimento até o ponto que a diferença deve ser maior que o vetor de movimento para o bloco de predição alvo real.
[00149] Isso é resolvido por escalonamento em que o vetor de mo
Petição 870190017641, de 21/02/2019, pág. 72/264
69/190 vimento do bloco vizinho é submetido à conversão baseada em distância ao adaptar a distância inter-imagem até a imagem referida pelo bloco vizinho à distância inter-imagem até a imagem referida pelo bloco de predição alvo. A Figura 27 mostra um exemplo de escalonamento. A unidade de estimação de vetor de movimento 102 realiza a estimação de vetor de movimento no bloco de predição alvo. O vetor de movimento, o número de imagens de referência, e a lista de referência do bloco de predição alvo são detectadas.
[00150] Entretanto, as informações de codificação do bloco próximas ao bloco de predição alvo na imagem alvo já são conhecidas de modo que a imagem de referência seja selecionada a partir do número de imagens de referência do bloco vizinho. A distância inter-imagem td entre o bloco vizinho na imagem alvo e a imagem de referência, e a distância inter-imagem tb entre o bloco de predição alvo e a imagem de referência são derivadas. O vetor de movimento mvLX do bloco vi zinho N que utiliza a mesma lista de referência LX (no caso a Condi ção 3 é cumprida) ou o vetor de movimento mvLY que utiliza a lista de referência diferente LY (Y=1 quando X=0, Y=0 quando X=1) é submetido à conversão baseada em distância representada pela seguinte expressão de acordo com a distância inter-imagem até o bloco de predição alvo.
mvLX = mvLX x — mvLY - mvLYx — td , td
... (2) [00151] Novamente com referência à Figura 26, o vetor de movi mento mvLX ou mvLY convertido desse modo é substituído por mvLXN (S907). Ao escalonar o vetor de movimento, um preditor de vetor de movimento mais próximo àquele do bloco de predição alvo pode ser derivado de modo que a precisão seja aumentada, consequentemente. Como descrito acima, o bloco imediatamente vizinho localizado na mesma imagem que o bloco de predição alvo é usado
Petição 870190017641, de 21/02/2019, pág. 73/264
70/190 como um bloco de referência e as informações de codificação são derivadas, consequentemente.
[00152] Novamente com referência à Figura 24, uma decisão é tomada em relação à disponibilidade das informações de codificação do bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, e as informações de codificação são derivadas, consequentemente (S801). O processo é substancialmente idêntico ao processo na etapa S103 na unidade de derivação de informações de codificação 310 da unidade de detecção de intercalação 106. No caso do modo de intercalação, a unidade de derivação de informações de codificação 310 na unidade de detecção de intercalação 106 deriva o número de imagens de referência referido pelo bloco de predição alvo (S102) antes de realizar a etapa S103.
[00153] Em contrapartida, no caso do modo de estimação de movimento, a unidade de estimação de vetor de movimento 102 estima o vetor de movimento do bloco de predição alvo para estimar o vetor de movimento, o número de imagens de referência, e a lista de referência do bloco de predição alvo. As informações de codificação detectadas do bloco de predição alvo e as informações de codificação conhecidas do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo são examinadas. As imagens de referência são derivadas dos respectivos números de imagem de referência. O vetor de movimento do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é convertido de acordo com a distância interimagem entre o bloco de predição alvo e a imagem de referência.
[00154] As informações de codificação do bloco vizinho obtidas desse modo são inseridas na unidade de construção de lista de candi
Petição 870190017641, de 21/02/2019, pág. 74/264
71/190 dato de referência 321. Se o modo Inter for designado no bloco de predição alvo, a unidade de construção de lista de candidato de referência 321 constrói listas de candidatos de referência para as 2 listas de referência, isto é, a lista de referência L0 e a lista de referência L1. No modo Inter, a predição L0 e a predição L1 são definidas como predição unidirecional, e a predição Bi-pred é definida como predição bidirecional. Em predição Bi-pred, duas listas de referência de predição L0 e predição L1 são usadas. Portanto, um ou duas listas de candidatos de referência podem ser fornecidas na memória de armazenamento de candidato de referência 314 dependendo do modo de predição no momento da codificação. Alternativamente, duas listas de candidatos de referência podem ser previamente fornecidas para a predição L0 e predição L1. Nesse relatório descritivo, apenas uma lista de candidatos de referência será referida para descrever o modo de estimação de movimento, exceto onde especificado em contrário, e apenas uma lista de candidatos de referência será ilustrada nos desenhos associados.
[00155] Na primeira modalidade, a memória de armazenamento de lista de candidato de referência 324 é fornecida com uma lista de candidatos de referência como uma área de armazenamento para adicionar os candidatos de informações de codificação dos blocos de referência vizinhos. Os candidatos de informações de codificação dos blocos vizinhos são dispostos na ordem de prioridade. Os candidatos de informações de codificação dos blocos vizinhos são adicionados na memória de armazenamento de lista de candidato de referência 324 na ordem de prioridade. Isso reduz o tamanho do código dos índices mvp_idx_l0 e mvp_idx_l1 na lista de candidatos de referência.
[00156] O tamanho do código é reduzido ao posicionar os elementos com maior ordem de prioridade em direção à parte superior da lista de candidatos de referência. O índice que indica a posição de cada elemento na lista de candidatos de referência é atribuído na ordem as
Petição 870190017641, de 21/02/2019, pág. 75/264
72/190 cendente, começando com 0. A lista de candidatos de referência fornecida na memória de armazenamento de lista de candidato de referência 324 é construída como uma lista. A lista de candidatos de referência é fornecida com uma área de matriz para armazenar, como elementos, um índice que indica a localização dentro da lista de candidatos de referência e um candidato, correspondente ao índice, de informações de codificação do bloco de referência vizinho.
[00157] A área de matriz é denotada por candListLX. Os índices começam com 0. A área de armazenamento da lista de candidatos de referência candListLX armazena o candidato de informações de codificação do bloco de referência vizinho. Na seguinte descrição das etapas, as informações de codificação que atribuem um índice i adicionado na lista de candidatos de referência candListLX serão denotadas por candListLX [i] para distinguir a mesma da lista de candidatos de referência candListLX utilizando a notação de matriz. Exceto onde especificado em contrário, as informações de codificação armazenadas na área de armazenamento da lista de candidatos de referência serão denotadas pelos nomes das posições (A0, A1, B0, B1, C0, T) dos blocos de referência vizinhos.
[00158] A operação da unidade de construção de lista de candidato de referência 321 é a mesma que aquela da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106. O flag availableFlagLXN obtido na unidade de derivação de informações de codificação 320 e que indica se o bloco vizinho está disponível é examinado na ordem A1, B1, A0, B0, C0, T definida no modo de estimação de movimento. Se o flag for 1 (disponível), o bloco vizinho é adicionado na lista de candidatos de referência fornecida na memória de armazenamento de lista de candidato de referência 324.
[00159] Desde que todos os blocos de referência vizinhos adicionados na lista de candidatos de referência estejam disponíveis, as eta
Petição 870190017641, de 21/02/2019, pág. 76/264
73/190 pas acima irão produzir uma lista de candidatos de referência na ordem mostrada na Figura 20. A ordem de prioridade é indicada pelos índices. As palavras-código são listadas na coluna mais à direita da lista de candidatos de referência. O tamanho de palavra-código máximo é NumListCand-1. No caso da Figura 20, NumListCand é 6 de modo que a palavra-código seja representada por 5 bits no máximo. Ficando estabelecido que apenas um bloco de referência vizinho está disponível, o tamanho de palavra-código máximo será 0 de modo que não haverá necessidade de índices. O candidato de informações de codificação do bloco vizinho exclusivamente decidido como disponível é unicamente identificado como o alvo de referência.
[00160] A lista de candidatos de referência construída desse modo é inserida na unidade de detecção de informações idênticas 322. A unidade de detecção de informações idênticas 322 compara os vetores de movimento armazenados na lista de candidatos de referência e, se houver candidatos fornecidos com o mesmo vetor de movimento, todas as informações exceto as do candidato que possuem o menor índice na lista de candidatos de referência são deletadas. A operação será descrita utilizando o fluxograma mostrado na Figura 29.
[00161] As variáveis n e m que indicam o índice na lista de candidatos de referência são ajustadas para 0 e 1, respectivamente (S1000). O vetor de movimento armazenado na lista de candidatos de referência com o índice n é comparado com o vetor de movimento com o índice m (S1001). Se o vetor de movimento não for considerado compatível (Não em S1001), o controle procede para a etapa S1004. Se o vetor de movimento for considerado compatível (Sim em S1001), uma decisão é tomada para determinar qual dos índices n e m é maior, isto é, se m já foi adicionado em uma lista de deleção (S1002).
[00162] Se m já estiver adicionado na lista de deleção (Sim em S1002), o controle procede para a etapa S1004. Se m ainda não esti
Petição 870190017641, de 21/02/2019, pág. 77/264
74/190 ver adicionado (Não em S1002), m é adicionado na lista de deleção (S1003). A lista de deleção é uma memória fornecida na unidade de detecção de informações idênticas 322 para armazenamento temporário.
[00163] De modo subsequente, m é atualizado ao ser incrementado por 1 (S1004). m é comparado com o número total de candidatos listados NumListCand (S1005). Se m não for igual a NumListCand (Não em S1005), uma comparação entre o vetor de movimento com o índice m e o vetor de movimento com o índice n na etapa S1001 e nas etapas subsequentes é repetida. Quando m atingir NumListCand (Sim em S1005), n é atualizado ao ser incrementado por 1 (S1006).
[00164] De modo subsequente, n é comparado com (NumListCand-
1) (S1007). Se n não for igual a (NumListCand-1) (Não em S1007), m é ajustado para (n+1) (S1009), e uma comparação do vetor de movimento na etapa S1001 e nas etapas subsequentes é repetida. Quando n atingir (NumListCand-1) (Sim em S1007), as informações de codificação em uma área de armazenamento da lista correspondente ao índice adicionado na lista de deleção são deletadas. Permite-se que entrada com o índice 0 seja deixada intacta e a vacância seja preenchida pelos candidatos subsequentes na ordem ascendente do índice. As palavras-código e o número total de candidatos listados NumListCand são atualizados (S1008), com isso o processo é encerrado.
[00165] A unidade de derivação de diferença de vetor de movimento 326 usa o vetor de movimento incluído nas informações de codificação na lista de candidatos de referência construída desse modo como um preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 deriva uma diferença de vetor de movimento do vetor de movimento estimado pela unidade de estimação de vetor de movimento 102 e do preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 fornece
Petição 870190017641, de 21/02/2019, pág. 78/264
75/190 a diferença de vetor de movimento derivada à unidade de saída 323. [00166] Por fim, a unidade de saída 323 emite os índices e as diferenças de vetor de movimento na lista de candidatos de referência construída. A lista de candidatos de referência é emitida como uma lista MVP e o índice na lista é emitido como um índice MVP. A saída é fornecida à unidade de decisão de método de predição 107 no dispositivo de codificação de imagem em movimento 100.
[00167] Uma descrição será fornecida agora da unidade de derivação de vetor de movimento 204 de acordo com a primeira modalidade mostrada n Figura 2 fornecida no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de predição de vetor de movimento 103 de acordo com a primeira modalidade fornecida no dispositivo de codificação de imagem em movimento 100. A Figura 30 mostra a configuração detalhada da unidade de derivação de vetor de movimento 204. A parte limitada pela linha pontilhada grossa na Figura 30 representa a unidade de derivação de vetor de movimento 204. A unidade de derivação de vetor de movimento 204 inclui uma unidade de derivação de informações de codificação 320, uma unidade de construção de lista de candidato de referência 321, uma unidade de detecção de informações idênticas 322, uma memória de armazenamento de lista de candidato de referência 324, uma unidade de seleção 325, e uma unidade de adição de vetor de movimento 327.
[00168] A unidade de derivação de vetor de movimento 204 corresponde à unidade de predição de vetor de movimento 103 do dispositivo de codificação de imagem em movimento 100. Internamente, a unidade de derivação de vetor de movimento 204 se difere da unidade de predição de vetor de movimento 103 apenas na unidade de seleção 315, na unidade de saída 323, e na unidade de adição de vetor de movimento 327. Os outros componentes, inclusive a unidade de deri
Petição 870190017641, de 21/02/2019, pág. 79/264
76/190 vação de informações de codificação 320, a unidade de construção de lista de candidato de referência 321, a unidade de detecção de informações idênticas 322, e a memória de armazenamento de lista de candidato de referência 324 possuem as mesmas funções que aquelas do dispositivo de codificação de imagem em movimento 100. Assim, a mesma lista de candidatos de referência como construída nas etapas de codificação é construída nas etapas através da unidade de detecção de informações idênticas 322.
[00169] Uma descrição será fornecida da unidade de seleção 325, essa adquire as informações de codificação do bloco de referência vizinho no modo de estimação de movimento a partir da lista de candidatos de referência construída. A unidade de seleção 325 seleciona o bloco vizinho na lista de candidatos de referência designado pelo índice para identificar o bloco de referência vizinho decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 325 emite o vetor de movimento a partir das informações de codificação do bloco vizinho na lista selecionada como o preditor de vetor de movimento. A unidade de adição de vetor de movimento 327 adiciona o preditor de vetor de movimento à diferença de vetor de movimento decodificada na primeira unidade de decodificação de fluxo de bits 202 para derivar o vetor de movimento. A unidade de adição de vetor de movimento 327 fornece o vetor de movimento à unidade de predição de compensação de movimento 207 e fornece as informações de codificação do bloco vizinho na lista de candidatos de referência selecionada à memória de armazenamento de informações de codificação 210.
Segunda modalidade [00170] As Figuras 31A e 31B mostram as disposições de blocos de referência vizinhos referidas pelo bloco de predição alvo de acordo com a segunda modalidade. Os blocos vizinhos são denotados por
Petição 870190017641, de 21/02/2019, pág. 80/264
77/190 símbolos similares como nas Figuras 9A e 9B. A disposição exemplificadora da Figura 31A é usada na descrição a seguir. De acordo com a segunda modalidade, os blocos vizinhos localizados na mesma imagem que o bloco de predição alvo são organizados em um grupo de blocos próximo ao bloco de predição alvo à esquerda (A0 e A1 na Figura 31A) e um grupo de blocos vizinho acima (B0, B1, e C0 na Figura 31A). Um bloco de referência vizinho é selecionado para representar cada grupo de blocos.
[00171] Como na primeira modalidade, uma decisão é tomada para determinar se o bloco vizinho está disponível ao se referir ao modo de predição das informações de codificação do bloco vizinho e à posição do bloco vizinho. A segunda modalidade se difere pelo fato de que um bloco vizinho representativo é selecionado a partir de cada grupo de blocos. A seleção de um bloco vizinho representativo a partir de um grupo de blocos que consiste em uma pluralidade de blocos vizinhos será referida como varredura. Como resultado de uma varredura, três blocos vizinhos inclusive: um bloco vizinho que representa um grupo de blocos próximo ao bloco de predição alvo à esquerda: um bloco vizinho que representa um grupo de blocos vizinho acima: e um bloco próximo a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, são adicionados na lista de candidatos de referência.
[00172] Consequentemente, o número total de blocos vizinhos adicionado na lista de candidatos de referência pode ser reduzido como comparado com a primeira modalidade. Adicionalmente, o número de vezes de comparação entre as informações de codificação na unidade de detecção de informações idênticas 312 e o número de vezes de comparação entre os vetores de movimento na unidade de detecção de informações idênticas 322 podem ser reduzidos consequentemente. Ademais, o tamanho de palavras-código atribuído a índices na lista
Petição 870190017641, de 21/02/2019, pág. 81/264
78/190 de candidatos de referência é reduzido de modo que p tamanho do código de índices na lista de candidatos de referência possa ser reduzido. Ademais, ao mudar a ordem de processamento dos blocos vizinhos nos respectivos grupos de blocos próximos à esquerda e acima, dependendo do modo de predição, o bloco vizinho adequado para o modo de predição é selecionado e espera-se que a eficiência de codificação seja aprimorada.
[00173] Se o modo de predição for o modo de intercalação, a unidade de detecção de intercalação 106 e a unidade de decisão de intercalação 206 processam os blocos como indicado por setas pontilhadas finas nas Figuras 31A e 31B, isto é, de cima para baixo no caso do grupo de blocos próximo à esquerda, e na ordem B1, B0, C0 no caso do grupo de bloco vizinho acima para terminar com o bloco vizinho superior esquerdo C0. No caso do modo de estimação de movimento, a unidade de predição de vetor de movimento 103 e a unidade de derivação de vetor de movimento 204 processam os blocos como indicado por setas sólidas finas nas Figuras 31A e 31B, isto é, de baixo para cima no caso do grupo de blocos próximo à esquerda, e da direita para a esquerda no caso do grupo de bloco vizinho acima.
[00174] No modo de intercalação, a eficiência de codificação é aprimorada ao selecionar os blocos vizinhos A1 e B1 que são prováveis de possuírem as mesmas informações de codificação que o bloco de predição alvo de preferência para os outros blocos. Entretanto, no modo de estimação de movimento, o bloco vizinho A0 à esquerda e o bloco vizinho B0 acima que são distanciados um do outro são selecionados para produzir uma diferença em informações de codificação entre o candidato bloco vizinho à esquerda e o bloco acima, e, consequentemente, para ampliar o escopo de seleção do preditor de vetor de movimento. Essas medidas irão reduzir o tamanho do código do preditor de vetor de movimento e aprimorar a eficiência de codificação.
Petição 870190017641, de 21/02/2019, pág. 82/264
79/190 [00175] Apenas a operação de acordo com a segunda modalidade diferente daquela da primeira modalidade será descrita abaixo em detalhes. Primeiramente será fornecida uma descrição da unidade de detecção de intercalação 106 no dispositivo de codificação de imagem em movimento 100. A unidade de detecção de intercalação 106 é configurada como ilustrado na Figura 11 descrita na primeira modalidade. O processo na unidade de derivação de informações de codificação 310 é diferente daquele da primeira modalidade de tal modo que a operação da unidade de derivação de informações de codificação 310 de acordo com a segunda modalidade será descrita. A Figura 32 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação 310 de acordo com a segunda modalidade.
[00176] Inicialmente, o destino da saída da unidade de detecção de informações de interpredição 104 é comutado para a unidade de detecção de intercalação 106 de acordo com o modo de predição inserido no comutador 108 e controlado pelo dispositivo de codificação de imagem em movimento 100. As informações de codificação dos blocos de referência vizinhos referidas pelo bloco de predição alvo e armazenadas na memória temporária 303 na unidade de detecção de informações de interpredição 104 são inseridas na unidade de derivação de informações de codificação 310.
[00177] As informações de codificação inicialmente inseridas dos blocos vizinhos são examinadas para decidir se as informações de codificação do bloco vizinho localizadas na mesma imagem que o bloco de predição alvo estão disponíveis e as informações de codificação são derivadas, consequentemente (S103). A Figura 33 mostra o fluxo de decisão detalhado de cada bloco vizinho localizado na mesma imagem que o bloco de predição alvo. Comparado com o fluxograma mostrado na Figura 13 da primeira modalidade, as etapas S210, S211, S212, S213, e S214 são adicionadas. As outras etapas são idênticas
Petição 870190017641, de 21/02/2019, pág. 83/264
80/190 àquelas na primeira modalidade de modo que apenas as etapas adicionadas sejam descritas em detalhes.
[00178] Primeiro, o grupo de blocos M é inicializado (S210). Será suposto que o grupo de blocos próximo à esquerda é definido como um grupo inicial. A variável M é ajustada para A, que é um valor que indica o grupo de blocos à esquerda. De modo subsequente, a variável N que indica o bloco no grupo de blocos é inicializada (S200). A variável N é definida na ordem de processamento no grupo de blocos anteriormente mencionado. N é atualizado na ordem A1, A0 no grupo de blocos à esquerda e na ordem B1, B0, C0 no grupo acima.
[00179] As etapas S201 à S209 na Figura 33 são basicamente idênticas àquelas na Figura 13 da primeira modalidade. Uma decisão é tomada para determinar se o modo de predição no modo vizinho N é Intra (S204). As etapas realizadas se o modo de predição no bloco vizinho N não for Intra (Não em S204) são diferentes daquelas da primeira modalidade.
[00180] Uma decisão é tomada para determinar se o modo de predição no bloco vizinho N é Intra (S204). Se o modo de predição no bloco vizinho não for Intra (Não em S204), uma decisão é então tomada para determinar se M é o grupo de blocos à esquerda (S211). Se M for o grupo de blocos à esquerda (Sim em S211), availableFlagM é ajustado para 1 (S205), e as informações de codificação do bloco vizinho N são substituídas por refIdxLXM, mvLXM, e predFlagLXM (S206). Apenas quando M for o grupo de blocos acima (Não em S211), uma decisão é tomada para determinar se as informações de codificação do bloco vizinho selecionadas no grupo de blocos à esquerda são idênticas às informações de codificação do bloco vizinho N (S212).
[00181] Visto que o bloco vizinho que representa o grupo de blocos à esquerda é inicialmente selecionado, as informações de codificação
Petição 870190017641, de 21/02/2019, pág. 84/264
81/190 desse são armazenadas e usadas para a decisão sobre o grupo de blocos acima. Essas etapas impedem que as informações de codificação subsequentes sejam uma duplicata das informações de codificação do bloco vizinho que representam o grupo de blocos à esquerda de modo que o escopo de seleção do alvo de referência seja expandido. Para a redução do volume de processamento, o controle pode proceder diretamente para a etapa S205, evitando as etapas S211 e S212.
[00182] Se as informações de codificação do bloco vizinho selecionadas no grupo de blocos à esquerda e as informações de codificação do bloco vizinho N se diferirem, ou se as informações de codificação do bloco vizinho selecionadas no grupo de blocos à esquerda não estiverem disponíveis (Não em S212), availableFlagM é ajustado para 1 (S205), e as informações de codificação do bloco vizinho N são substituídas por refIdxLXM, mvLXM, e predFlagLXM (S206).
[00183] Uma vez que as informações de codificação do grupo de blocos M são definidas, uma decisão é então tomada para determinar se a variável M é B, essa é um valor que indica o grupo de blocos acima, para processar o próximo grupo de blocos, isto é, o grupo de blocos próximo ao bloco alvo acima (S213). Se M não for B (acima) (Não em S213), M é atualizado para B (acima) (S214), e a etapa S200 e as etapas subsequentes são repetidas. Se M indicar o grupo acima (Sim em S213), o processo é encerrado.
[00184] Se o bloco vizinho N não estiver disponível (Não em S203), ou se o modo de predição no bloco vizinho N for Intra (Sim em S204), ou se as informações de codificação do bloco vizinho selecionadas no grupo de blocos à esquerda forem idênticas às informações de codificação do bloco vizinho N (Sim em S212), availableFlagM é ajustado para 0 (S207), e uma decisão é tomada para determinar se o bloco vizinho N é o último bloco vizinho no grupo de blocos M (S208).
Petição 870190017641, de 21/02/2019, pág. 85/264
82/190 [00185] A variável N é atualizada na ordem de processamento no grupo de blocos anteriormente mencionado. Uma decisão é tomada para determinar se N é A0 (no caso do grupo de blocos à esquerda) ou C0 (no caso do grupo de blocos acima). Se o bloco vizinho N for o último bloco (Sim em S208), o controle procede para uma decisão no grupo de blocos M (S213). De outro modo (Não em S208), a variável N é atualizada de acordo com a ordem de processamento no grupo de blocos (S209), com isso a etapa S201 e as etapas subsequentes são repetidas. Como descrito acima, os blocos vizinhos nos grupo de blocos localizados na mesma imagem que o bloco de predição alvo são definidos como blocos de referência representativos e as informações de codificação desses são derivadas.
[00186] Novamente com referência à Figura 32, o número de imagens de referência de outra imagem ocorrente em um ponto de tempo diferente e referido pelo bloco de predição alvo como um candidato de intercalação é decidido (S104). O processo da etapa S101 de acordo com a primeira modalidade pode ser realizado sem modificação, porém um método baseado nas informações de codificação dos grupos de blocos próximos à esquerda e acima na mesma imagem e derivadas na etapa anterior (S103) será descrito a seguir com referência às Figuras 34A e 34B.
[00187] Primeiro, o flag availableFlagM que indica se o bloco vizinho em cada grupo de blocos A próximo à esquerda e o grupo de blocos B vizinho acima, que são derivados na etapa S103, está ou não disponível, e o número de imagens de referência refIdxLXM é inserido, onde M é A ou b.
[00188] Primeiro, o grupo de blocos A próximo à esquerda será discutido com referência às Figuras 34A. O flag availableFlagA que indica se o bloco vizinho no grupo de blocos próximo à esquerda está disponível (S1100) é examinado. Se availableFlagA for 1 (Sim em S1100),
Petição 870190017641, de 21/02/2019, pág. 86/264
83/190 refIdxLXA, isto é, o número de imagens de referência do bloco vizinho no grupo de blocos próximo à esquerda é definido como o número de imagens de referência. De outro modo (Não em S1100), refIdxLXA é ajustado para -1.
[00189] Similarmente, o grupo B vizinho acima será discutido com referência à Figura 34B. O flag availableFlagB que indica se o bloco vizinho no grupo de blocos vizinho acima está disponível (S1101) é examinado. Se availableFlagB for 1 (Sim em S1101), refIdxLXB, isto é, o número de imagens de referência do bloco vizinho no grupo de blocos vizinho acima é definido como o número de imagens de referência. De outro modo (Não em S1101), refIdxLXB é ajustado para -1.
[00190] O número de imagens de referência refIdxLXCol do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é decidido de acordo com a imagem de referência números refIdxLXM (M é A, B) dos respectivos grupos de blocos derivados desse modo. A Figura 35 mostra a decisão baseada no número de imagens de referência refIdxLXM. A primeira fileira da Figura 35 mostra um caso onde refIdxLXA e refIdxLXB possuem o mesmo valor que não é -1. Nesse caso, refIdxLXA é selecionado. A segunda fileira mostra um caso onde refIdxLXA e refIdxLXB possuem valores diferentes e nenhum desses é -1. Nesse caso, o número de imagens de referência mínimo é selecionado. As terceira e quarta fileiras mostram casos onde um entre refIdxLXA e refIdxLXB possui um valor -1. Nesse caso, um que não possui um valor -1 é selecionado. A quinta fileira mostra um caso onde ambos possuem um valor -1. Nesse caso, refIdxCol é ajustado para 0. O número de imagens de referência do bloco de predição alvo é decidido como descrito acima, porém outros métodos podem ser usados.
[00191] Novamente com referência à Figura 32, uma decisão é to
Petição 870190017641, de 21/02/2019, pág. 87/264
84/190 mada quanto à disponibilidade das informações de codificação do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, e as informações de codificação são derivadas consequentemente (S102). A etapa é igual à etapa S102 da primeira modalidade de tal modo que a descrição é omitida. As informações de codificação do bloco vizinho obtidas desse modo são inseridas na unidade de construção de lista de candidato de referência 311.
[00192] Na segunda modalidade, conforme na primeira modalidade, a memória de armazenamento de lista de candidato de referência 314 é fornecida com uma lista de candidatos de referência como uma área de armazenamento para adicionar os candidatos de informações de codificação dos blocos de referência vizinhos. Os candidatos de informações de codificação dos blocos vizinhos são dispostos na ordem de prioridade. Os candidatos de informações de codificação dos blocos vizinhos são adicionados na lista de candidatos de referência na ordem de prioridade. Isso reduz o tamanho do código dos índices merge_idx na lista de candidatos de referência.
[00193] A unidade de construção de lista de candidato de referência 311 opera da mesma maneira que na primeira modalidade ao tomar a decisão no flag availableFlagM (M é A, B, T) que indica a disponibilidade do grupo de blocos de referência próximo à esquerda e os grupos de blocos acima e do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. A unidade de construção de lista de candidato de referência 311 adiciona as informações de codificação do bloco vizinho na lista de candidatos de referência candList. A ordem de blocos vizinhos de acordo com a qual a variável N é atualizada é configurada para ser idêntica à ordem de prioridade de armazenamento na lista de candidatos de referência. Será suposto na segunda modali
Petição 870190017641, de 21/02/2019, pág. 88/264
85/190 dade que os candidatos são armazenados na ordem esquerda, superior, e o candidato em um tempo diferente (A, B, T).
[00194] Desde que todos os blocos de referência vizinhos adicionados na lista de candidatos de referência estejam disponíveis, as etapas acima irão produzir uma lista de candidatos de referência na ordem mostrada na Figura 36. A ordem de prioridade é indicada pelos índices. As palavras-código são listadas na coluna mais à direita da lista de candidatos de referência. O tamanho de palavra-código máximo é 2 bits. O parêntese na lista de candidatos de referência representa um dos blocos vizinhos no grupo de blocos vizinhos à esquerda ou o bloco acima selecionado através do processo realizado na unidade de derivação de informações de codificação 310 na ordem da esquerda para a direita.
[00195] As informações de codificação armazenadas na lista de candidatos de referência e decididas pela unidade de detecção de informações idênticas 312 como idênticas são deletadas. Os índices e informações de codificação na lista de candidatos de referência construídos pela unidade de construção de lista de candidato de referência 311 são emitidos. A lista de candidatos de referência é emitida como uma lista de intercalação e os índices na lista são emitidos como índices de intercalação. A saída é fornecida à unidade de predição de compensação de movimento 105 e à unidade de decisão de método de predição 107 no dispositivo de codificação de imagem em movimento 100.
[00196] Uma descrição será fornecida agora da unidade de decisão de intercalação 206 de acordo com a segunda modalidade fornecida no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de detecção de intercalação 106 de acordo com a segunda modalidade fornecida no dispositivo de codificação de imagem em movimento 100. A unidade de decisão de intercalação 206
Petição 870190017641, de 21/02/2019, pág. 89/264
86/190 é configurada como ilustrado na Figura 22 descrita na primeira modalidade. O processo na unidade de derivação de informações de codificação 310 se difere da operação de acordo com a primeira modalidade. Os outros componentes, inclusive a unidade de construção de lista de candidato de referência 311, a unidade de detecção de informações idênticas 312, a memória de armazenamento de lista de candidato de referência 314, e a unidade de seleção 315 possuem as mesmas funções que aquelas na primeira modalidade.
[00197] A unidade de derivação de informações de codificação 310 da unidade de decisão de intercalação 206 de acordo com a segunda modalidade possui a mesma função que a unidade de derivação de informações de codificação 310 da unidade de detecção de intercalação 106 de acordo com a segunda modalidade. Assim, a mesma lista de candidatos de referência como construída na unidade de detecção de intercalação 106 de acordo com a segunda modalidade é construída nas etapas através da unidade de detecção de informações idênticas 312 da unidade de decisão de intercalação 206 de acordo com a segunda modalidade. Uma descrição será fornecida da unidade de seleção 315, essa adquire as informações de codificação do bloco de referência vizinho a partir da lista de candidatos de referência construída no modo de intercalação. A unidade de seleção 315 seleciona o bloco vizinho na lista de candidatos de referência designado pelo índice para identificar o bloco de referência vizinho decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 315 fornece as informações de codificação selecionadas à unidade de predição de compensação de movimento 207 e à memória de armazenamento de informações de codificação 210.
[00198] Uma descrição será fornecida da unidade de predição de vetor de movimento 103 de acordo com a segunda modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codifica
Petição 870190017641, de 21/02/2019, pág. 90/264
87/190 ção de imagem em movimento 100. A unidade de predição de vetor de movimento 103 de acordo com a segunda modalidade é configurada conforme mostrado na Figura 23 descrita na primeira modalidade. O processo na unidade de derivação de informações de codificação 320 é diferente daquele da primeira modalidade de tal modo que a operação da unidade de derivação de informações de codificação 320 de acordo com a segunda modalidade será destacada abaixo. A Figura 37 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação 330.
[00199] Inicialmente, o destino da saída da unidade de detecção de informações de interpredição 104 é comutado para a unidade de predição de vetor de movimento 103 de acordo com o modo de predição inserido no comutador 108 e controlado pelo dispositivo de codificação de imagem em movimento 100. As informações de codificação dos blocos de referência vizinhos referidas pelo bloco de predição alvo e armazenadas na memória temporária 303 na unidade de detecção de informações de interpredição 104 são inseridas na unidade de derivação de informações de codificação 320. As informações de codificação inicialmente inseridas dos blocos vizinhos são examinadas para decidir se as informações de codificação do bloco vizinho localizado na mesma imagem que o bloco de predição alvo estão disponíveis e as informações de codificação são derivadas, consequentemente (S802). A Figura 38 mostra o fluxo de decisão detalhado de cada bloco vizinho localizado na mesma imagem que o bloco de predição alvo.
[00200] Comparado com o fluxograma mostrado na Figura 25 da primeira modalidade, as etapas S913, S914, S915, S916, e S917 são adicionadas. As outras etapas são idênticas àquelas na primeira modalidade de modo que apenas as etapas adicionadas sejam descritas em detalhes.
[00201] Primeiro, a variável M que indica o grupo de blocos é inicia
Petição 870190017641, de 21/02/2019, pág. 91/264
88/190 lizada (S913). Será suposto que os grupos de blocos próximos à esquerda são definidos como um grupo inicial. A variável M é ajustada para A, que é um valor que indica o grupo de blocos à esquerda. De modo subsequente, a variável N que indica o bloco no grupo de blocos é inicializada (S900). A variável N é definida na ordem de processamento no grupo de blocos anteriormente mencionado. N é atualizado na ordem A0, A1 no grupo de blocos à esquerda e na ordem B0, B1, C0 no grupo acima. As etapas subsequentes S901 à S910 são basicamente idênticas àquelas da primeira modalidade. Uma decisão é tomada para determinar se o modo de predição no modo vizinho N é Intra (S904). As etapas realizadas se o modo de predição no bloco vizinho N não for Intra (Não em S904) são diferentes daquelas da primeira modalidade.
[00202] Uma decisão é tomada para determinar se o modo de predição no bloco vizinho N é Intra (S904). Se o modo de predição no bloco vizinho não for Intra (Não em S904), uma decisão é então tomada para determinar se M é o grupo de blocos à esquerda (S914). Se M for o grupo de blocos à esquerda (Sim em S914), o controle procede para a etapa S905. Apenas quando M for o grupo de blocos acima (Não em S914), uma decisão é tomada para determinar se o vetor de movimento mvLXA do bloco vizinho selecionado no grupo de blocos à esquerda é idêntico ao vetor de movimento do bloco vizinho N (S915). [00203] Visto que o bloco vizinho que representa o grupo de blocos à esquerda é selecionado inicialmente, o vetor de movimento desse é armazenado e usado para a decisão no grupo de blocos acima. Essas etapas impedem que o vetor de movimento subsequente seja uma duplicata do vetor de movimento do bloco vizinho que representa o grupo de blocos à esquerda de modo que o escopo de seleção do alvo de referência seja expandido. Para a redução do volume de processamento, o controle pode proceder diretamente para a etapa S905, eviPetição 870190017641, de 21/02/2019, pág. 92/264
89/190 tando as etapas S914 e S915.
[00204] Se o vetor de movimento mvLXA do bloco vizinho selecionado no grupo de blocos à esquerda for idêntico ao vetor de movimento do bloco vizinho N (Sim em S915), o controle procede para a etapa S908. Se os vetores de movimento forem diferentes (Não em S915), uma decisão é tomada para determinar se a predição utilizando a mesma lista de referência e o mesmo número de imagens de referência usado na predição no bloco de predição alvo é realizada no bloco vizinho N (S905).
[00205] Se a predição baseada em vetor de movimento utilizando a mesma lista de referência e o mesmo número de imagens de referência usado na predição no bloco de predição alvo for realizada no bloco vizinho N (Sim em S905), availableFlagLXN é ajustado para 1 (S906) e o vetor de movimento do bloco vizinho N é substituído por mvLXN (S907). Uma vez que o vetor de movimento do grupo de blocos M é ajustado, uma decisão é tomada para determinar se a variável M é B, isso indica o grupo de blocos acima (S916), para processar o próximo grupo de blocos, isto é, o grupo de blocos próximo ao bloco alvo acima. Se M não for B (acima) (Não em S916), M é atualizado para B (acima) (S917), com isso a etapa S900 e as etapas subsequentes são repetidas. Se M for B (acima) (Sim em S916), o processo é encerrado.
[00206] Se o bloco vizinho N não estiver disponível (Não em S903), ou se o modo de predição no bloco vizinho N for Intra (Sim em S904), ou se o vetor de movimento mvLXA do bloco vizinho selecionado no grupo de blocos à esquerda for idêntico ao vetor de movimento do bloco vizinho N (Sim em S915), ou se a predição utilizando a mesma lista de referência e o mesmo número de imagens de referência não for realizada (Não em S905), availableFlagLXM é ajustado para 0 (S908), e uma decisão é tomada para determinar se o bloco vizinho N é o último dos blocos vizinhos no grupo de blocos M (S909). A variável N é
Petição 870190017641, de 21/02/2019, pág. 93/264
90/190 atualizada na ordem de processamento no grupo de blocos anteriormente mencionado. Uma decisão é tomada para determinar se N é A1 (no caso do grupo de blocos à esquerda) ou C0 (no case do grupo de blocos acima).
[00207] Se o bloco vizinho N for o último bloco (Sim em S909), o controle procede para uma decisão no grupo de blocos M (S916). De outro modo (Não em S909), a variável N é atualizada de acordo com a ordem de processamento no grupo de blocos (S910), com isso a etapa S901 e as etapas subsequentes são repetidas. Como descrito acima, os blocos vizinhos nos grupos de blocos localizados na mesma imagem que o bloco de predição alvo são definidos como blocos de referência representativos e as informações de codificação desses são derivadas.
[00208] Na segunda modalidade, como na primeira modalidade, o flag que indica a disponibilidade do bloco vizinho availableFlagLXM pode ser ajustado para 1 (disponível) se a predição realizada no bloco vizinho cumprir qualquer uma das seguintes condições, e o bloco associado é identificado como um candidato de bloco de referência vizinho e as informações de codificação associadas podem ser derivadas, consequentemente.
Condição 1: mesma lista de referência e mesmo número de imagens de referência
Condição 2: lista de referência diferente e mesmo número de imagens de referência
Condição 3: mesma lista de referência e número de imagens de referência diferentes
Condição 4: lista de referência diferente e número de imagens diferente [00209] O fluxo do processo nesse caso será mostrado na Figura 39. A Figura 39 se difere da Figura 38 pelo fato que a etapa S905 da
Petição 870190017641, de 21/02/2019, pág. 94/264
91/190
Figura 38, que examina apenas a Condição 1, é deletada. Uma decisão para determinar se qualquer uma das Condições 1-4 foi cumprida é tomada na etapa S911. A Etapa S912 é adicionada para escalonar o vetor de movimento se nenhuma das Condições 1 e 2 for cumprida.
[00210] Primeiro, a variável M que indica o grupo de blocos é inicializada (S913). Será suposto que o grupo de blocos próximo à esquerda é definido como um grupo inicial. A variável M é ajustada para A. De modo subsequente, a variável N que indica o bloco no grupo de blocos é inicializada (S900). A variável N é definida na ordem de processamento no grupo de blocos anteriormente mencionado. N é atualizado na ordem A0, A1 no grupo de blocos à esquerda e na ordem B0, B1, C0 no grupo acima. As etapas subsequentes S901 a S910 são basicamente idênticas àquelas na Figura 26 da primeira modalidade. Uma decisão é tomada para determinar se o modo de predição no modo vizinho N é Intra (S904). As etapas realizadas se o modo de predição no bloco vizinho N não for Intra (Não em S904) são diferentes daquelas na Figura 38 da segunda modalidade.
[00211] Se o modo de predição do bloco vizinho N não for Intra (Não em S904), isto é, se o modo for o modo Inter, uma decisão é tomada para determinar se qualquer uma das Condições 1-4 foi cumprida ao comparar as informações de codificação da predição no bloco de predição alvo e as informações de codificação do bloco vizinho N (S911). Se a Condição 1 ou Condição 2 for cumprida, o controle procede para uma decisão para determinar se M indica o grupo de blocos à esquerda (S914). Se a Condição 3 ou Condição 4 for cumprida, o vetor de movimento do bloco vizinho N é escalonado (S912) como em S912 na Figura 26 da primeira modalidade, e o controle procede para uma decisão para determinar se M indica o grupo de blocos à esquerda (S914).
[00212] Se M indicar o grupo de blocos à esquerda (Sim em S914),
Petição 870190017641, de 21/02/2019, pág. 95/264
92/190 availableFlagLXM é ajustado para 1 (S906). Se M indicar o grupo de blocos acima (Não em S914), uma decisão é tomada para determinar se o vetor de movimento mvLXA do bloco vizinho selecionado no grupo de blocos à esquerda é idêntico ao vetor de movimento do bloco vizinho N (S915). Para a redução do volume de processamento, o controle pode proceder diretamente para a etapa S905, evitando as etapas S914 e S915.
[00213] Se o vetor de movimento mvLXA do bloco vizinho selecionado no grupo de blocos à esquerda for idêntico às informações de codificação do bloco vizinho N (Sim em S915), availableFlagLXN é ajustado para 0 (S908). Se não (Não em S915), availableFlagLXM é ajustado para 1 (S906).
[00214] Como na etapa S970 na Figura 26 da primeira modalidade, o vetor de movimento mvLX do bloco vizinho N que utiliza a mesma lista de referência (no caso a Condição 1 é cumprida), ou o vetor de movimento mvLY que utiliza a lista de referência diferente (no caso a Condição 2 é cumprida), ou o vetor de movimento mvLX que utiliza a mesma lista de referência (no caso a Condição 3 é cumprida) e convertido por escalonamento, ou o vetor de movimento mvLY que utiliza a lista de referência diferente (no caso a Condição 4 é cumprida) e convertido por escalonamento é substituído por mvLXM (S907).
[00215] Uma vez que o vetor de movimento do grupo de blocos M é ajustado, uma decisão é tomada para determinar se a variável M indica o grupo de blocos acima (S916) para processar o próximo grupo de blocos, isto é, o grupo de blocos próximo ao bloco alvo acima. Se M não indicar o bloco acima (Não em S916), M é atualizado para B (acima) (S917), com isso a etapa S900 e as etapas subsequentes são repetidas. Se M indicar o bloco acima (Sim em S916), o processo é encerrado.
[00216] Se availableFlagLXM for ajustado para 0 (S908), uma de
Petição 870190017641, de 21/02/2019, pág. 96/264
93/190 cisão é tomada para determinar se o bloco vizinho N é o último bloco vizinho no grupo de blocos M (S909). A variável N é atualizada na ordem de processamento no grupo de blocos anteriormente mencionado. Uma decisão é tomada para determinar se N é A1 (no caso do grupo de blocos à esquerda) ou C0 (no caso do grupo de blocos acima). Se o bloco vizinho N for o último bloco (Sim em S909), o controle procede para uma decisão no grupo de blocos M (S916). De outro modo (Não em S909), a variável N é atualizada de acordo com a ordem de processamento no grupo de blocos (S910), com isso a etapa S901 e as etapas subsequentes são repetidas. Como descrito acima, os blocos vizinhos nos grupos de blocos localizados na mesma imagem que o bloco de predição alvo são definidos como blocos de referência representativos e o vetor de movimento desses é derivado.
[00217] Novamente com referência à Figura 37, uma decisão é tomada quanto à disponibilidade das informações de codificação do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, e as informações de codificação são derivadas, consequentemente (S801). A etapa é a mesma etapa S801 da primeira modalidade de tal modo que a descrição é omitida. As informações de codificação do bloco vizinho obtidas desse modo são inseridas na unidade de construção de lista de candidato de referência 321. A unidade de construção de lista de candidato de referência 321 constrói listas de candidatos de referência para as duas listas de referência, isto é, a lista de referência L0 e a lista de referência L1. Nesse relatório descritivo, apenas uma lista de candidatos de referência será referida para descrever o modo de estimação de movimento, exceto onde especificado em contrário. Apenas uma lista de candidatos de referência será ilustrada nos desenhos associados.
[00218] Na segunda modalidade, a memória de armazenamento de
Petição 870190017641, de 21/02/2019, pág. 97/264
94/190 lista de candidato de referência 324 é fornecida com uma lista de candidatos de referência como uma área de armazenamento para adicionar os candidatos de informações de codificação dos blocos de referência vizinhos. Os candidatos de informações de codificação dos blocos vizinhos são dispostos na ordem de prioridade. Os candidatos de informações de codificação dos blocos vizinhos são adicionados na memória de armazenamento de lista de candidato de referência 324 na ordem de prioridade. Isso reduz o tamanho do código dos índices merge_idx_l0 e mvp_idx_l1 na lista de candidatos de referência.
[00219] O tamanho do código é reduzido ao posicionar os elementos com maior ordem de prioridade em direção à parte superior da lista de candidatos de referência. O índice que indica a posição de cada elemento na lista de candidatos de referência é atribuído na ordem ascendente, começando com 0. A lista de candidatos de referência fornecida na memória de armazenamento de lista de candidato de referência 324 é construída como uma lista. A lista de candidatos de referência é fornecida com uma área de matriz para armazenar, como elementos, um índice que indica a localização dentro da lista de candidatos de referência e um candidato, correspondente ao índice, de informações de codificação do bloco de referência vizinho. A área de matriz é denotada por candListLX. Os índices começam com 0. A área de armazenamento da lista de candidatos de referência candListLX armazena o candidato de informações de codificação do bloco de referência vizinho. Na seguinte descrição das etapas, as informações de codificação que atribuem um índice i adicionado na lista de candidatos de referência candListLX serão denotadas por candListLX [i] para distinguir a mesma da lista de candidatos de referência candListLX utilizando a notação de matriz. Exceto onde especificado em contrário, as informações de codificação armazenadas na área de armazenamento da lista de candidatos de referência serão denotadas pelos nomes das
Petição 870190017641, de 21/02/2019, pág. 98/264
95/190 posições (A0, A1, B0, B1, C0, T) dos blocos de referência vizinhos. [00220] A unidade de construção de lista de candidato de referência 321 opera da mesma maneira que na primeira modalidade ao tomar a decisão no flag availableFlagM (M é A, B, T) que indica a disponibilidade do grupo de blocos de referência próximo à esquerda e os grupos de blocos acima e do bloco próximo ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. A unidade de construção de lista de candidato de referência 321 adiciona as informações de codificação do bloco vizinho na lista de candidatos de referência candListLX. A ordem de blocos vizinhos de acordo com a qual a variável N é atualizada é configurada para ser idêntica à ordem de prioridade de armazenamento na lista de candidatos de referência. Será suposto na segunda modalidade que os candidatos são armazenados na ordem esquerda, superior, e o candidato em um tempo diferente (A, B, T). Desde que todos os blocos de referência vizinhos adicionados na lista de candidatos de referência estejam disponíveis, as etapas acima irão produzir uma lista de candidatos de referência na ordem mostrada na Figura 40.
[00221] A ordem de prioridade é indicada pelos índices. As palavras-código são listadas na coluna mais à direita da lista de candidatos de referência. O tamanho de palavra-código máximo é 2 bits. O parêntese na lista de candidatos de referência representa um dos blocos vizinhos no grupo de blocos vizinhos à esquerda ou o bloco acima selecionado através do processo realizado na unidade de derivação de informações de codificação 320 na ordem da esquerda para a direita. Desde que apenas um bloco de referência vizinho esteja disponível, o tamanho de palavra-código máximo será 0 de modo que não há necessidade de palavras-código. O candidato de informações de codificação do bloco vizinho exclusivamente decidido como disponível é
Petição 870190017641, de 21/02/2019, pág. 99/264
96/190 unicamente identificado como o alvo de referência.
[00222] As informações de codificação armazenadas na lista de candidatos de referência e decididas pela unidade de detecção de informações idênticas 322 como idênticas são deletadas. A unidade de derivação de diferença de vetor de movimento 326 usa o vetor de movimento incluído nas informações de codificação na lista de candidatos de referência construída desse modo como um preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 deriva uma diferença de vetor de movimento a partir do vetor de movimento estimado pela unidade de estimação de vetor de movimento 102 e o preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 fornece a diferença de vetor de movimento derivada à unidade de saída 323.
[00223] Por fim, a unidade de saída 323 emite os índices e as diferenças de vetor de movimento na lista de candidatos de referência construída. A lista de candidatos de referência é emitida como uma lista MVP e o índice na lista é emitido como um índice MVP. A saída é fornecida à unidade de decisão de método de predição 107 no dispositivo de codificação de imagem em movimento 100.
[00224] Uma descrição será fornecida agora da unidade de derivação de vetor de movimento 204 de acordo com a segunda modalidade fornecida no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de predição de vetor de movimento 103 de acordo com a segunda modalidade fornecida no dispositivo de codificação de imagem em movimento 100. A unidade de derivação de vetor de movimento 204 é configurada como ilustrado na Figura 30. O processo na unidade de derivação de informações de codificação 320 se difere da operação de acordo com a primeira modalidade. Os outros componentes, inclusive a unidade de construção de lista de candidato de referência 321, a unidade de detecção de informações idên
Petição 870190017641, de 21/02/2019, pág. 100/264
97/190 ticas 322, a memória de armazenamento de lista de candidato de referência 324, a unidade de seleção 325, e a unidade de adição de vetor de movimento 327 possuem as mesmas funções que aquelas na primeira modalidade.
[00225] A unidade de derivação de informações de codificação 320 possui a mesma função que a unidade de derivação de informações de codificação 320 da unidade de predição de vetor de movimento 103 de acordo com a segunda modalidade. Assim, a mesma lista de candidatos de referência construída na unidade de predição de vetor de movimento 103 de acordo com a segunda modalidade é construída nas etapas através da unidade de detecção de informações idênticas 322 da unidade de derivação de vetor de movimento 204. Uma descrição será fornecida da unidade de seleção 325, essa adquire as informações de codificação do bloco de referência vizinho a partir da lista de candidatos de referência construída no modo de estimação de movimento. A unidade de seleção 325 seleciona o bloco vizinho na lista de candidatos de referência designado pelo índice para identificar o bloco de referência vizinho decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 325 emite o vetor de movimento das informações de codificação do bloco vizinho na lista de candidatos de referência selecionada como um preditor de vetor de movimento. A unidade de adição de vetor de movimento 327 adiciona o preditor de vetor de movimento à diferença de vetor de movimento decodificada na primeira unidade de decodificação de fluxo de bits 202 para derivar o vetor de movimento. A unidade de adição de vetor de movimento 327 fornece o vetor de movimento à unidade de predição de compensação de movimento 207 e fornece as informações de codificação do bloco vizinho na lista selecionada à memória de armazenamento de informações de codificação 210.
[00226] Na segunda modalidade, um bloco vizinho é selecionado a
Petição 870190017641, de 21/02/2019, pág. 101/264
98/190 partir de cada grupo de blocos como um representativo dos blocos de referência vizinhos. Alternativamente, uma pluralidade de blocos vizinhos pode ser selecionada como representativos. O número é ajustado para não exceder o número de blocos no grupo de blocos.
Terceira modalidade [00227] Na terceira modalidade, o método de selecionar o bloco de referência vizinho é alterado de acordo com o modo de predição. Uma descrição será realizada com referência à disposição de blocos vizinhos na Figura 31A. No modo de intercalação, as informações de codificação de um entre seis blocos vizinhos A0, A1, B0, B1, C0, T são selecionadas como o alvo de referência. No modo de estimação de movimento, os seis blocos vizinhos A0, A1, B0, B1, C0, e T, A0 e A1 são posicionados em um grupo de blocos próximo ao bloco de predição alvo à esquerda, e B0, B1, e C são posicionados em um grupo de blocos vizinho acima. Um bloco de referência vizinho é selecionado para representar cada grupo de blocos. Um dos três blocos vizinhos que inclui os blocos respectivamente que representam o grupo de blocos à esquerda e o grupo de blocos acima e o bloco T, as informações de codificação de um bloco vizinho são selecionadas como o alvo de referência. Em outras palavras, o método de acordo com a primeira modalidade é usado no modo de intercalação, e o método de acordo com a segunda modalidade é usado no modo de estimação de movimento.
[00228] Visto que as informações de codificação do candidato de bloco de referência vizinho são diretamente usadas para interpredição de modo que um número maior de candidatos seja adicionado na lista em vez de no modo de estimação de movimento para fornecer uma seleção ampla. Isso se deve ao fato de o modo de intercalação ser capaz de transmitir um volume maior de informações (vetor de movimento, índice de referência, lista de referência) utilizando um tamanho do código menor que o modo de estimação de movimento e devido ao
Petição 870190017641, de 21/02/2019, pág. 102/264
99/190 fato de a eficiência de codificação ser aprimorada ao manter os candidatos de blocos vizinhos suficientes para fornecer um amplo escopo de seleção em vez de reduzindo o tamanho do código de índices de intercalação. No modo de estimação de movimento, por outro lado, as informações de codificação que incluem uma diferença de vetor de movimento são codificadas em vez de utilizar diretamente as informações de codificação do candidato de bloco de referência vizinho. Portanto, uma varredura é realizada para reduzir o número de candidatos antes de adicionar os candidatos na lista. Isso se deve ao fato de que a redução do tamanho do código de índices MVP ao reduzir o número de candidatos aprimora a eficiência de codificação.
[00229] Desde que todos os blocos de referência vizinhos estejam disponíveis, a lista de candidatos de referência de acordo com a terceira modalidade é construída para cada modo de predição conforme mostrado na Figura 41. A unidade de detecção de intercalação 106 e a unidade de predição de vetor de movimento 103 constroem as respectivas listas de candidatos de referência. Visto que o número total de candidatos listados se difere entre as listas, as listas contêm palavrascódigo diferentes na terceira entrada e nas entradas subsequentes. As palavras-código são otimizadas de modo que o aprimoramento na eficiência de codificado seja esperado. A palavra-código 11 (notação binária) de acordo com o modo de estimação de movimento pode ser substituída por 110 (notação binária) de acordo com o modo de intercalação na mesma fileira para garantir que a palavra-código seja usada de maneira consistente ao custo de aumentar o tamanho do código.
Quarta modalidade [00230] A quarta modalidade se refere a um método de selecionar dois blocos vizinhos representativos a partir dos blocos vizinhos localizados na mesma imagem que o bloco de predição alvo (nas partes
Petição 870190017641, de 21/02/2019, pág. 103/264
100/190 que se seguem, referidos como blocos vizinhos no espaço). A quarta modalidade é similar à segunda modalidade em que dois blocos vizinhos são selecionados. Na segunda modalidade, os blocos vizinhos no espaço são organizados em dois grupos de bloco e um bloco vizinho representativo é selecionado a partir de cada grupo de bloco. A quarta modalidade difere pelo fato de que a totalidade dos blocos vizinhos no espaço é definida como um grupo de bloco e dois blocos vizinhos representativos são selecionados a partir do grupo.
[00231] Conforme na segunda modalidade, três blocos vizinhos incluindo: dois blocos vizinhos que representam os blocos vizinhos localizados na mesma imagem que o bloco de predição alvo: e um bloco vizinho a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, são adicionados na lista de candidato de referência. O número total de blocos vizinhos adicionados na lista de candidato de referência pode ser reduzido comparado à primeira modalidade. Portanto, o número de vezes da comparação entre as informações de codificação na unidade de detecção de informações idênticas 312 e o número de vezes da comparação entre os vetores de movimento na unidade de detecção de informações idênticas 322 podem ser reduzidos de modo correspondente. Ademais, o tamanho das palavras-código atribuídas a índices na lista de candidato de referência é reduzido de modo que o tamanho de código de índices na lista de candidato de referência possa ser reduzido. Ademais, alterando-se a ordem de processamento dos blocos vizinhos dependendo do modo de predição, o bloco vizinho adequado para o modo de predição é selecionado e espera-se que a eficiência de codificação seja aperfeiçoada.
[00232] Se o modo de predição for o modo de intercalação, a unidade de detecção de intercalação 106 e a unidade de decisão de intercalação 206 processam blocos na ordem A1, B1, B0, A0, C0 (ou B1,
Petição 870190017641, de 21/02/2019, pág. 104/264
101/190
A1, A0, B0, C0) na Figura 9A. No caso do modo de estimação de movimento, a unidade de predição de vetor de movimento 103 e a unidade de derivação de vetor de movimento 204 processam os blocos na ordem B0, A0, A1, B1, C0 (ou A0, B0, B1, A1, C0) na Figura 9A.
[00233] No modo de intercalação, os blocos vizinhos A1 e B1 são selecionados e adicionados na lista de candidato, de preferência, aos outros blocos. Isto ocorre porque os blocos vizinhos A1 e B1 são contíguos ao bloco de predição alvo nos lados e, logo, as informações de codificação dos blocos vizinhos A1 e B1 têm maior probabilidade de serem iguais àquelas do bloco de predição alvo do que os outros blocos vizinhos (A0, B0, C). A adição de candidatos prováveis aperfeiçoar a eficiência de codificação no modo de intercalação. Entretanto, no modo de estimação de movimento, os blocos vizinhos A0 e B0 são selecionados e adicionados na lista de candidato, de preferência, aos outros blocos. Devido ao fato de os blocos vizinhos A0 e B0 serem mais distanciados entre si nos pares de blocos vizinhos e a probabilidade de adicionar vetores de movimento de diferentes propriedades ser alta de modo correspondente, o escopo da seleção do preditor de vetor de movimento é ampliado. Essas medidas reduzirão o tamanho de código do preditor de movimento diferente conforme transmitido e aperfeiçoarão a eficiência de codificação no modo de estimação de movimento.
[00234] A configuração do dispositivo de codificação de imagem em movimento 100 e do dispositivo de decodificação de imagem em movimento 200 de acordo com a quarta modalidade é igual àquela da primeira e da segunda modalidades. A operação de acordo com a quarta modalidade é igual àquela da segunda modalidade exceto pela operação da unidade de derivação de informações de codificação 310 das Figuras 11 e 22, e da unidade de derivação de informações de codificação 320 das Figuras 23 e 30. Somente a operação de acordo
Petição 870190017641, de 21/02/2019, pág. 105/264
102/190 com a quarta modalidade diferente daquela da segunda modalidade será descrita abaixo em detalhes.
[00235] Primeiramente, fornece-se uma descrição da operação da unidade de detecção de intercalação 106 no dispositivo de codificação de imagem em movimento. A unidade de detecção de intercalação 106 é configurada conforme ilustrado na Figura 11 descrita na segunda modalidade. O processo na unidade de derivação de informações de codificação 310 é diferente daquele da segunda modalidade de modo que a operação da unidade de derivação de informações de codificação 310 de acordo com a quarta modalidade seja descrita. A Figura 42 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação 310 de acordo com a quarta modalidade.
[00236] Inicialmente, o destino da saída da unidade de detecção de informações de interpredição 104 é comutado à unidade de detecção de intercalação 106 de acordo com a entrada de modo de predição ao comutador 108 e controlado pelo dispositivo de codificação de imagem em movimento 100. As informações de codificação dos blocos vizinhos de referência referidas pelo bloco de predição alvo e armazenadas na memória temporária 303 na unidade de detecção de informações de interpredição 104 são inseridas à unidade de derivação de informações de codificação 310.
[00237] As informações de codificação inicialmente inseridas dos blocos vizinhos são examinadas para decidir se as informações de codificação do bloco vizinho localizado na mesma imagem que o bloco de predição alvo estão disponíveis e se dois blocos vizinhos são derivados de modo correspondente (S105). A Figura 43 mostra o fluxo detalhado da decisão para cada bloco vizinho localizado na mesma imagem que o bloco de predição alvo.
[00238] Uma variável F que indica o bloco vizinho selecionado é ajustada para S0, e um contador k é ajustado para 0 (S1600). S0 na
Petição 870190017641, de 21/02/2019, pág. 106/264
103/190 variável F que indica o bloco vizinho selecionado indica o primeiro candidato do bloco vizinho inicialmente selecionado, e S1 indica o segundo candidato do bloco vizinho selecionado em segundo lugar. [00239] De modo subsequente, a variável N que indica o bloco vizinho sendo processado é inicializada em A1 (S1601). A variável N que indica o bloco vizinho sendo processado é definida na ordem A1, B1, B0, A0, C0. N é atualizado nesta ordem.
[00240] De modo subsequente, as variáveis para armazenar as informações de codificação do bloco vizinho usado na decisão subsequente são inicializadas (S1602). As variáveis incluem: um flag availableFlagF que indica se o bloco vizinho está disponível; um vetor de movimento mvLXF, um número de imagem de referência refIdxLXF, e um flag predFlagLXF que indica a disponibilidade de uma direção de predição. As variáveis são inicializadas da seguinte forma.
availableFlagF=0 mvLXF=(0,0) refIdxLXF=0 predFlagLXF=0 onde 0 ou 1, que indicam uma direção de predição, é substituído no sufixo X. A posição e as informações de codificação do bloco vizinho com a variável N indicando o bloco vizinho sendo processado (nas partes que se seguem, referido como bloco vizinho N) são adquiridas (S1603).
[00241] Toma-se uma decisão quanto a se o bloco vizinho N está disponível com base na posição adquirida do bloco vizinho N (S1604). Por exemplo, se o bloco de predição alvo estiver localizado na borda esquerda da imagem, não existirão blocos vizinhos à esquerda do bloco de predição alvo de modo que não devam existir informações de codificação correspondentes na memória de armazenamento de informações de codificação 114. Neste caso, toma-se uma decisão de
Petição 870190017641, de 21/02/2019, pág. 107/264
104/190 indisponibilidade.
[00242] O bloco vizinho N está indisponível (Não em S1604), availableFlagF é ajustado para 0 (S1613). Se o bloco vizinho N estiver indisponível (Sim em S1604), toma-se uma decisão quanto a se o modo de predição no modo vizinho N é Intra (S1605). Se o modo de predição do bloco vizinho N for Intra (Sim em S1605), availableFlagF é ajustado para 0 (S1613).
[00243] O modo de predição do bloco vizinho N não é Intra (Não em S1605), isto é, se o modo for o modo Inter, o controle procede para uma decisão quanto a se F é S0 (S1606). Se F for S0 (Sim em S1606), availableFlagF (availableFlagS0) é ajustado para 1 (S1608).
[00244] F não é S0 (Não em S1606), toma-se uma decisão quanto a se as informações de codificação do bloco vizinho já selecionadas são idênticas às informações de codificação do bloco vizinho N (S1607). Se as informações de codificação do bloco vizinho já selecionadas forem idênticas às informações de codificação do bloco vizinho N (Sim em S1607), availableFlagF é ajustado para 0 (S1613).
[00245] De modo mais específico, dado que o número máximo de blocos vizinhos no espaço é 2, as informações de codificação selecionadas como o primeiro candidato são armazenadas e usadas para comparação e decisão para selecionar o segundo candidato. Essas etapas evitam que as informações de codificação do segundo candidato do bloco vizinho sejam uma duplicada das informações de codificação do primeiro candidato do bloco vizinho. Portanto, um número maior de candidatos se torna disponível para seleção. Para redução do volume de processamento, o controle pode proceder diretamente para a etapa S1608, contornando-se as etapas S1606 e S1607.
[00246] As informações de codificação do bloco vizinho selecionada como o primeiro candidato são diferentes das informações de codificação do bloco vizinho N (Sim em S1607), availableFlagF (available
Petição 870190017641, de 21/02/2019, pág. 108/264
105/190
FlagSI) é ajustado para 1 (S1608). De modo subsequente, as informações de codificação do bloco vizinho N são substituídas em refIdxLXF, mvLXF, e predFlagLXF (S1606).
[00247] De modo subsequente, o contador k é atualizado sendo incrementado por 1 (S1610), e toma-se uma decisão quanto a se o contador k é menor que 2, que é o número máximo de candidatos no espaço (S1611). Se o contador k for igual a 2, que é o número máximo de candidatos no espaço (Sim em S1611), k é substituído na variável NumListCand, indicando o número de candidatos selecionados no espaço (S1616), e, portanto, o processo é encerrado.
[00248] Se availableFlagF for ajustado para 0 (S1613), toma-se uma decisão quanto a se o bloco vizinho N é o último dos blocos vizinhos (S1614). Se k for menor que 2, indicando o número máximo de candidatos no espaço (Não em S1611), F é atualizado para S1 (S1612), e toma-se uma decisão quanto a se o bloco vizinho N é o último dos blocos vizinhos (S1614). A variável N é atualizada na ordem A1, B1, B0, A1, e C0. Toma-se uma decisão quanto a se N é C0.
[00249] Se o bloco vizinho N for o último bloco (Sim em S1614), k é substituído na variável NumListCand, indicando o número de candidatos selecionados no espaço (S1616), e, portanto, o processo é encerrado. Se o bloco vizinho N não for o último bloco (Não em S1614), a variável N é atualizada na ordem A1, B1, B0, A1, e C0 (S1615), e a etapa S1602 e as etapas subsequentes são repetidas. Conforme descrito anteriormente, dois blocos de referência que representam os blocos vizinhos no grupo de bloco localizado na mesma imagem que o bloco de predição alvo são identificados e as informações de codificação destes são derivadas.
[00250] Referindo-se novamente à Figura 42, toma-se uma decisão sobre o número de imagem de referência de outra imagem ocorrendo em um ponto de tempo diferente e referido pelo bloco de predição alvo
Petição 870190017641, de 21/02/2019, pág. 109/264
106/190 para deriva, como um candidato, as informações de codificação do bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo (S104). O processo na etapa S104 é o mesmo da etapa S104 da primeira e da segunda modalidades. De modo subsequente, toma-se uma decisão quanto à disponibilidade das informações de codificação do bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, e as informações de codificação são derivadas de modo correspondente (S102). O processo da etapa S102 de acordo com a quarta modalidade é igual ao da etapa S102 da primeira e da segunda modalidades.
[00251] As informações de codificação do bloco vizinho assim obtidas são inseridas na unidade de construção de lista de candidato de referência 311. Na quarta modalidade, conforme na segunda modalidade, a memória de armazenamento de lista de candidato de referência 314 é dotada de uma lista de candidato de referência como uma área de armazenamento para adicionar um candidato de informações de codificação do bloco vizinho de referência. Os candidatos de informações de codificação dos blocos vizinhos são dispostos na ordem de prioridade. Os candidatos de informações de codificação dos blocos vizinhos são adicionados na lista de candidato de referência na ordem de prioridade. Isto reduz o tamanho de código dos índices merge_idx na lista de candidato de referência.
[00252] A unidade de construção de lista de candidato de referência 311 opera da mesma forma que a primeira e a segunda modalidades e conforme mostrado no fluxograma da Figura 19 exceto pelo fato de que o valor da variável F de acordo com a quarta modalidade é definido como o valor da variável N da Figura 19 para operação. O flag availableFlagN (neste caso, N é S0, S1, T) indicando a disponibilidade do
Petição 870190017641, de 21/02/2019, pág. 110/264
107/190 primeiro candidato do bloco vizinho S0 no espaço, o segundo candidato do bloco vizinho S1 no espaço, e o bloco T vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é examinado. As informações de codificação do bloco vizinho são adicionadas na lista de candidato de referência candList. A ordem dos blocos vizinhos de acordo com qual variável N é atualizada é configurada para que seja idêntica à ordem de prioridade de armazenamento na lista de candidato de referência. Supõe-se na quarta modalidade que os candidatos são armazenados na ordem primeiro candidato concorrente, segundo candidato concorrente, e o candidato em um tempo diferente (S0, S1, T).
[00253] Conforme na primeira e na segunda modalidades, as informações de codificação armazenadas na lista de candidato de referência e decididas pela unidade de detecção de informações idênticas 312 como sendo idênticas são deletadas. A unidade de saída 313 emite índices e informações de codificação na lista de candidato de referência construída. A lista de candidato de referência é emitida como uma lista de intercalação e os índices na lista são emitidos como índices de intercalação. A saída é proporcionada à unidade de predição de compensação de movimento 105 e à unidade de decisão de método de predição 107 no dispositivo de codificação de imagem em movimento 100.
[00254] Fornece-se, agora, uma descrição da unidade de decisão de intercalação 206 de acordo com a quarta modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de detecção de intercalação 106 de acordo com a quarta modalidade proporcionada no dispositivo de codificação de imagem em movimento 100. A unidade de decisão de intercalação 206 é configurada conforme ilustrado na Figura 22 descrita na segun
Petição 870190017641, de 21/02/2019, pág. 111/264
108/190 da modalidade. O processo na unidade de derivação de informações de codificação 310 difere da operação de acordo com a segunda modalidade. Os outros componentes, incluindo a unidade de construção de lista de candidato de referência 311, a unidade de detecção de informações idênticas 312, a memória de armazenamento de lista de candidato de referência 314, e a unidade de seleção 315 têm as mesmas funções daquelas na segunda modalidade.
[00255] A unidade de derivação de informações de codificação 310 da unidade de decisão de intercalação 206 tem a mesma função da unidade de derivação de informações de codificação 310 da unidade de detecção de intercalação 106 de acordo com a quarta modalidade. A unidade de construção de lista de candidato de referência 311 da unidade de decisão de intercalação 206 tem a mesma função da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 de acordo com a quarta modalidade, e a unidade de detecção de informações idênticas 312 da unidade de decisão de intercalação 206 tem a mesma função da unidade de detecção de informações idênticas 312 da unidade de detecção de intercalação 106 de acordo com a quarta modalidade. Portanto, a mesma lista de candidato de referência construída na unidade de detecção de intercalação 106 de acordo com a quarta modalidade é construída nas etapas através da unidade de detecção de informações idênticas 312 da unidade de decisão de intercalação 206.
[00256] Conforme na segunda modalidade, a unidade de seleção 315 seleciona o bloco vizinho na lista de candidato de referência designada pelo índice para identificar o bloco vizinho de referência decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 315 fornece as informações de codificação selecionadas à unidade de predição de compensação de movimento 207 e à memória de armazenamento de informações de codificação 210.
Petição 870190017641, de 21/02/2019, pág. 112/264
109/190 [00257] Fornece-se, agora, uma descrição da unidade de predição de vetor de movimento 103 de acordo com a quarta modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A unidade de predição de vetor de movimento 103 é configurada conforme ilustrado na Figura 23 descrita na segunda modalidade. O processo na unidade de derivação de informações de codificação 320 é diferente daquele da segunda modalidade de modo que a operação da unidade de derivação de informações de codificação 320 de acordo com a quarta modalidade seja descrita. A Figura 44 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação 320 de acordo com a quarta modalidade.
[00258] Inicialmente, o destino da saída da unidade de detecção de informações de interpredição 104 é comutado à unidade de predição de vetor de movimento 103 de acordo com a entrada de modo de predição ao comutador 108 e controlado pelo dispositivo de codificação de imagem em movimento 100. As informações de codificação dos blocos vizinhos de referência referidas pelo bloco de predição alvo e armazenadas na memória temporária 303 na unidade de detecção de informações de interpredição 104 são inseridas à unidade de derivação de informações de codificação 320.
[00259] As informações de codificação inicialmente inseridas dos blocos vizinhos são examinadas para decidir se as informações de codificação do bloco vizinho localizadas na mesma imagem que o bloco de predição alvo estão disponíveis e dois se blocos vizinhos são derivados de modo correspondente (S803). A Figura 45 mostra o fluxo detalhado da decisão para cada bloco vizinho localizado na mesma imagem que o bloco de predição alvo. O processo mostrado na Figura 45 é realizado para predição L0, ou para predição L1, ou tanto para predição L0 como para predição L1, dependendo do modo de predição.
Petição 870190017641, de 21/02/2019, pág. 113/264
110/190 [00260] Uma variável de candidato espacial F é ajustada para S0, e um contador k é ajustado para 0 (S1700). S0 na variável de candidato espacial F indica o primeiro candidato do bloco vizinho inicialmente selecionado, e S1 indica o segundo candidato do bloco vizinho selecionado em segundo lugar.
[00261] De modo subsequente, a variável N que indica o bloco no grupo de bloco é inicializada (S1701). A variável N que indica o bloco vizinho sendo processado é definida na ordem B0, A0, A1, B1, C0. N é atualizado nesta ordem.
[00262] De modo subsequente, as variáveis para armazenar as informações de codificação do bloco vizinho usadas na decisão subsequente são inicializadas (S1702). As variáveis incluem: um flag availableFlagF que indica se o bloco vizinho está disponível; um vetor de movimento mvLXF, um número de imagem de referência refIdxLXF, e um flag predFlagLXF que indica a disponibilidade de uma direção de predição. As variáveis são inicializadas da seguinte forma.
availableFlagLXF=0 mvLXF=(0,0) refIdxLXF=0 predFlagLXF=0 onde 0 ou 1, que indica uma direção de predição, é substituído no sufixo X. A posição e as informações de codificação do bloco vizinho com a variável N que indicam o bloco vizinho sendo processado (nas partes que se seguem, referido como bloco vizinho N) são adquiridas (S1703).
[00263] Toma-se uma decisão quanto a se o bloco vizinho N está disponível com base na posição adquirida do bloco vizinho N (S1704). Por exemplo, se o bloco de predição alvo estiver localizado na borda esquerda da imagem, não existirão blocos vizinhos à esquerda do bloco de predição alvo de modo que não devam existir informações de
Petição 870190017641, de 21/02/2019, pág. 114/264
111/190 codificação correspondentes na memória de armazenamento de informações de codificação 114. Neste caso, toma-se uma decisão de indisponibilidade.
[00264] Se o bloco vizinho N estiver indisponível (Não em S1704), availableFlagLXF é ajustado para 0 (S1715). Se o bloco vizinho N estiver disponível (Sim em S1704), toma-se uma decisão quanto a se o modo de predição no modo vizinho N é Intra (S1705). Se o modo de predição do bloco vizinho N for Intra (Sim em S1705), availableFlagLXF é ajustado para 0 (S1715).
[00265] Se o modo de predição do bloco vizinho N não for Intra (Não em S1705), isto é, se o modo for o modo Inter, toma-se uma decisão quanto a se alguma das Condições 1 a 4 é satisfeita comparando-se as informações de codificação da predição no bloco de predição alvo e as informações de codificação do bloco vizinho N (S1709). Se a Condição 1 ou a Condição 2 for satisfeita, o controle procede para uma decisão quanto a se F é S0 (S1706). Se a Condição 3 ou a Condição 4 for satisfeita, o vetor de movimento para o bloco vizinho N é escalonado (S1710) como em S912 na Figura 39 da segunda modalidade, e o controle procede para uma decisão quando a se F é S0 (S1706).
[00266] Se F for S0, availableFlagLXF (availableFlagLXS0) é ajustado para 1 (S1708). Se F não for S0 (Não em S1706), toma-se uma decisão quanto a se o vetor de movimento do bloco vizinho já selecionado é idêntico ao vetor de movimento do bloco vizinho N ou ao vetor de movimento mvLXN produzido escalonando-se o vetor de movimento do bloco vizinho N (S1607).
[00267] Se o vetor de movimento do bloco vizinho já selecionado for idêntico ao vetor de movimento do bloco vizinho N (Sim em S1707), availableFlagLXF é ajustado para 0 (S1715). De modo mais específico, dado que o número máximo de blocos vizinhos no espaço é 2, o
Petição 870190017641, de 21/02/2019, pág. 115/264
112/190 vetor de movimento selecionado como os primeiros candidatos é armazenado e usado para comparação e decisão para selecionar o segundo candidato. Essas etapas evitam que as informações de codificação do segundo candidato do bloco vizinho sejam uma duplicata do vetor de movimento do primeiro candidato do bloco vizinho. Portanto, um número maior de candidatos se torna disponível para seleção. Para redução do volume de processamento, o controle pode proceder diretamente para a etapa S1708, contornando-se as etapas S1706 e S1707, e availableFlagLXF (availableFlagLXS1) pode ser ajustado para 1 (S1708).
[00268] Se o vetor de movimento do bloco vizinho selecionado como o primeiro candidato diferir do vetor de movimento mvLXN do bloco vizinho N (Sim em S1707), availableFlagLXF (availableFlagLXS1) é ajustado para 1 (S1708). O vetor de movimento mvLX para o bloco vizinho N que usa a mesma lista de referência (no caso a Condição 1 é satisfeita), ou o vetor de movimento mvLY que usa a lista de referência diferente (no caso a Condição 2 é satisfeita), ou o vetor de movimento mvLX que usa a mesma lista de referência (no caso a Condição 3 é satisfeita) e convertido por escalonamento, ou o vetor de movimento mvLY que usa a lista de referência diferente (no caso a Condição 4 é satisfeita) e convertido por escalonamento é substituído em mvLXM (S1711).
[00269] O contador k é atualizado sendo incrementado por 1 (S1712), e toma-se uma decisão quanto a se o contador k é menor que 2, que é o número máximo de candidatos no espaço (S1713). Se o contador k for igual a 2, que é o número máximo de candidatos no espaço (Não em S1713), k é substituído na variável NumListCand, indicando o número de candidatos selecionados no espaço (S1718), e, portanto, o processo é encerrado.
[00270] Se availableFlagLXF for ajustado para 0 (S1715), toma-se
Petição 870190017641, de 21/02/2019, pág. 116/264
113/190 uma decisão quanto a se o bloco vizinho N é o último dos blocos vizinhos (S1716). Se k for menor que 2, indicando o número máximo de candidatos no espaço (Sim em S1713), F é atualizado para S1 (S1714), e toma-se uma decisão quanto a se o bloco vizinho N é o último dos blocos vizinhos (S1716).
[00271] A variável N é atualizada na ordem B0, A0, A1, B1, e C0. Toma-se uma decisão quanto a se N é C0. Se o bloco vizinho N for o último bloco (Sim em S1716), k é substituído na variável NumListCand, indicando o número de candidatos selecionados no espaço (S1718), e, portanto, o processo é encerrado. Se o bloco vizinho N não for o último bloco (Não em S1716), a variável N é atualizada na ordem B0, A0, A1, B1, e C0 (S1717), e a etapa S1702 e as etapas subsequentes são repetidas. Conforme descrito anteriormente, os blocos vizinhos no grupo de blocos localizado na mesma imagem que o bloco de predição alvo são definidos como blocos de referência representativos e as informações de codificação destes são derivadas.
[00272] Referindo-se de volta à Figura 44, toma-se uma decisão quanto à disponibilidade das informações de codificação do bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquele do bloco de predição alvo, e as informações de codificação são derivadas de modo correspondente (S801). A etapa em S801 da quarta modalidade é igual à etapa S801 da primeira modalidade de modo que a descrição seja omitida.
[00273] As informações de codificação do bloco vizinho assim obtidas são inseridas na unidade de construção de lista de candidato de referência 321. A unidade de construção de lista de candidato de referência 321 constrói a lista de candidato de referência L0, ou a lista de candidato de referência L1, ou tanto a lista de candidato de referência L0 como a lista de candidato de referência L1, dependendo do modo de predição (predição L0, predição L1, predição bidirecional). Neste
Petição 870190017641, de 21/02/2019, pág. 117/264
114/190 relatório descritivo, somente uma lista de candidato de referência será referida ao descrever o modo de estimação de movimento, exceto onde especificado em contrário. Somente uma lista de candidato de referência será ilustrada nos desenhos associados.
[00274] Na quarta modalidade, a memória de armazenamento de lista de candidato de referência 344 é dotada de uma lista de candidato de referência como uma área de armazenamento para adicionar candidatos de informações de codificação dos blocos vizinhos de referência. Os candidatos de informações de codificação dos blocos vizinhos são dispostos em ordem de prioridade. Os candidatos de informações de codificação dos blocos vizinhos são adicionados na memória de armazenamento de lista de candidato de referência 324 na ordem de prioridade. Isto reduz o tamanho de código dos índices merge_idx_l0 e mvp_idx_l1 na lista de candidato de referência.
[00275] O tamanho de código é reduzido localizando-se elementos com ordem de prioridade maior em direção ao topo da lista de candidato de referência. O índice que indica a ordem de prioridade é atribuído em ordem ascendente, iniciando-se em 0. A lista de candidato de referência proporcionada na memória de armazenamento de lista de candidato de referência 324 é construída como uma lista. A lista de candidato de referência é dotada de uma área de matriz para armazenar, como elementos, um índice que indica a localização dentro da lista de candidato de referência e um candidato, correspondente ao índice, de informações de codificação do bloco vizinho de referência. A área de matriz é denotada por candListLX. Os índices começam com 0. A área de armazenamento para a lista de candidato de referência candListLX armazena o candidato de informações de codificação do bloco vizinho de referência.
[00276] Na descrição a seguir das etapas, as informações de codificação atribuídas a um índice i adicionado na lista de candidato de refe
Petição 870190017641, de 21/02/2019, pág. 118/264
115/190 rência candListLX serão denotadas por candListLX [i] a fim de distingui-las da lista de candidato de referência candListLX utilizando-se uma notação de matriz. Exceto onde especificado em contrário, as informações de codificação armazenadas na área de armazenamento para a lista de candidato de referência serão denotadas pelos nomes das posições (A0, A1, B0, B1, C0, T) dos blocos vizinhos de referência.
[00277] A unidade de construção de lista de candidato de referência 321 opera da mesma forma que na primeira e na segunda modalidades e conforme mostrado no fluxograma da Figura 19 exceto que o valor da variável F de acordo com a quarta modalidade é definido como o valor da variável N da Figura 19 para operação. Examina-se o flag availableFlagLXN (neste caso, N é S0, S1, T) indicando a disponibilidade do primeiro candidato do bloco vizinho S0 no espaço, do segundo candidato do bloco vizinho S1 no espaço, e do bloco T vizinho ao bloco localizado na outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo. As informações de codificação do bloco vizinho são adicionadas na lista de candidato de referência candListLX. A ordem dos blocos vizinhos de acordo com qual variável N é atualizada é configurada para que seja idêntica à ordem de prioridade de armazenamento na lista de candidato de referência. Supõe-se na quarta modalidade que os candidatos sejam armazenados na ordem primeiro candidato concorrente, segundo candidato concorrente, e o candidato no tempo diferente (S0, S1, T).
[00278] Conforme na primeira e na segunda modalidades, as informações de codificação armazenadas na lista de candidato de referência e decididas pela unidade de detecção de informações idênticas 312 como sendo idênticas são deletadas. A unidade de derivação de diferença de vetor de movimento 326 usa o vetor de movimento incluí
Petição 870190017641, de 21/02/2019, pág. 119/264
116/190 do nas informações de codificação na lista de candidato de referência assim construída como um preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 deriva uma diferença de vetor de movimento do vetor de movimento estimado pela unidade de estimação de vetor de movimento 102 e pelo preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 fornece a diferença de vetor de movimento derivado à unidade de saída 323.
[00279] Finalmente, a unidade de saída 323 emite os índices e as diferenças de vetor de movimento na lista de candidato de referência construída. A lista de candidato de referência é emitida como uma lista MVP e o índice na lista é emitido como um índice MVP. A saída é proporcionada à unidade de decisão de método de predição 107 no dispositivo de codificação de imagem em movimento 100.
[00280] Fornece-se uma descrição da unidade de derivação de vetor de movimento 204 de acordo com a quarta modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de predição de vetor de movimento 103 de acordo com a quarta modalidade proporcionada no dispositivo de codificação de imagem em movimento 100. A unidade de derivação de vetor de movimento 204 é configurada conforme ilustrado na Figura 30 da segunda modalidade. O processo na unidade de derivação de informações de codificação 320 difere da operação de acordo com a segunda modalidade. Os outros componentes, incluindo a unidade de construção de lista de candidato de referência 321, a unidade de detecção de informações idênticas 322, a memória de armazenamento de lista de candidato de referência 324, a unidade de seleção 325, e a unidade de adição de vetor de movimento 327 têm as mesmas funções que aquelas da segunda modalidade.
[00281] A unidade de derivação de informações de codificação 320
Petição 870190017641, de 21/02/2019, pág. 120/264
117/190 tem a mesma função da unidade de derivação de informações de codificação 320 da unidade de predição de vetor de movimento 103 de acordo com a segunda modalidade. A unidade de construção de lista de candidato de referência 311 da unidade de decisão de intercalação 206 tem a mesma função da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 de acordo com a quarta modalidade, e a unidade de detecção de informações idênticas 312 da unidade de decisão de intercalação 206 tem a mesma função da unidade de detecção de informações idênticas 312 da unidade de detecção de intercalação 106 de acordo com a quarta modalidade. Portanto, a mesma lista de candidato de referência construída na unidade de predição de vetor de movimento 103 de acordo com a quarta modalidade é construída nas etapas através da unidade de detecção de informações idênticas 322 da unidade de derivação de vetor de movimento 204.
[00282] Conforme na segunda modalidade, a unidade de seleção 325 seleciona o bloco vizinho na lista de candidato de referência designado pelo índice para identificar o bloco vizinho de referência decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 325 emite o vetor de movimento a partir das informações de codificação do bloco vizinho na lista de candidato de referência selecionada como um preditor de vetor de movimento. A unidade de adição de vetor de movimento 327 adiciona o preditor de vetor de movimento à diferença de vetor de movimento decodificado na primeira unidade de decodificação de fluxo de bits 202 a fim de derivar o vetor de movimento. A unidade de adição de vetor de movimento 327 fornece o vetor de movimento à unidade de predição de compensação de movimento 207 e fornece as informações de codificação do bloco vizinho na lista selecionada à memória de armazenamento de informações de codificação 210.
Petição 870190017641, de 21/02/2019, pág. 121/264
118/190 [00283] Na quarta modalidade, dois blocos vizinhos são selecionados como representativos dos blocos vizinhos de referência. Alternativamente, um ou pelo menos três blocos vizinhos podem ser selecionados como representativos no modo de intercalação e no modo de estimação de movimento. O número é ajustado a fim de não exceder o número de blocos no grupo de bloco. Deve-se notar que o número de representativos é 6 no máximo no caso da disposição da Figura 9 usada de modo ilustrativo na descrição das modalidades. No caso do modo de intercalação, que define o número de representativos como sendo 6 resultará em uma modalidade equivalente à primeira modalidade. Definindo-se um número maior de blocos vizinhos representativos no modo de intercalação do que no modo de estimação de movimento (por exemplo, definindo-se dois blocos vizinhos representativos no espaço no modo de estimação de movimento e definindo três ou mais blocos vizinhos no espaço no modo de intercalação), obtêm-se as vantagens a seguir.
[00284] Em outras palavras, as informações de codificação do candidato de bloco vizinho de referência são diretamente usadas para interpredição no modo de intercalação de modo que um número maior de candidatos seja adicionado na lista do que na estimação de movimento de modo que um escopo mais amplo de seleção seja mantido. Isto ocorre porque o modo de intercalação é capaz de transmitir um volume maior de informações (vetor de movimento, índice de referência, lista de referência) utilizando-se um tamanho de código menor que o modo de estimação de movimento e porque a eficiência de codificação é aperfeiçoada mantendo-se candidatos de blocos vizinhos suficientes para proporcionar um escopo de seleção mais amplo reduzindose o tamanho de código de índices de intercalação.
[00285] No modo de estimação de movimento, por outro lado, as informações de codificação incluindo uma diferença de vetor de movi
Petição 870190017641, de 21/02/2019, pág. 122/264
119/190 mento são codificadas ao invés de usar diretamente as informações de codificação do candidato de bloco vizinho de referência. Portanto, define-se um número menor de candidatos do que o modo de intercalação antes de adicionar os candidatos na lista. Isto ocorre porque a redução do tamanho de código de índices MVP reduzindo-se o número de candidatos aperfeiçoa a eficiência de codificação.
[00286] Se três ou mais blocos vizinhos representativos no espaço forem selecionados no modo de intercalação, toma-se uma decisão na etapa S1607 da Figura 43 quanto a se as informações de codificação de cada um dos blocos vizinhos já selecionados são iguais às informações de codificação do bloco vizinho N. Se três ou mais blocos vizinhos no espaço forem selecionados no modo de estimação de movimento, toma-se uma decisão na etapa S1707 da Figura 45 quanto a se o vetor de movimento de cada um dos blocos vizinhos já selecionados é igual ao vetor de movimento do bloco vizinho N ou ao vetor de movimento mvLXN produzido escalonando-se o vetor de movimento do bloco vizinho N.
[00287] O método de acordo com a quarta modalidade pode ser usado no modo de intercalação, e o método de acordo com outra modalidade pode ser usado no modo de estimação de movimento. De modo similar, o método de acordo com a quarta modalidade pode ser usado no modo de estimação de movimento, e o método de acordo com outra modalidade pode ser usado no modo de intercalação. Particularmente, utilizando-se o método de acordo com a primeira modalidade no modo de intercalação e o método de acordo com a quarta modalidade no modo de estimação de movimento, pode-se obter a mesma vantagem que a terceira modalidade.
[00288] Em outras palavras, as informações de codificação do candidato de bloco vizinho de referência são diretamente usadas para interpredição no modo de intercalação de modo que um número maior
Petição 870190017641, de 21/02/2019, pág. 123/264
120/190 de candidatos seja adicionado na lista do que a estimação de movimento de modo que um escopo mais amplo de seleção seja mantido. Isto ocorre porque o modo de intercalação é capaz de transmitir um volume maior de informações (vetor de movimento, índice de referência, lista de referência) usando um tamanho de código menor que o modo de estimação de movimento e porque a eficiência de codificação é aperfeiçoada mantendo-se o máximo de candidatos de blocos vizinhos possível e aumentando-se o número de candidatos de informações de movimento o máximo possível ao invés de reduzindo-se o tamanho de código de índices de intercalação.
[00289] No modo de estimação de movimento, por outro lado, as informações de codificação incluindo uma diferença de vetor de movimento são codificadas ao invés de usar diretamente as informações de codificação dos candidatos de bloco vizinho de referência. Portanto, realiza-se uma varredura para reduzir o número de candidatos antes de adicionar os candidatos na lista. Isto ocorre porque os candidatos no modo de estimação de movimento são meramente usados para derivar os vetores de predição de modo que um aumento no número de candidatos de blocos vizinhos ou adição de candidatos com vetores de movimento aproximando-se entre si não resultaria na redução do tamanho de código da diferença de vetor de movimento e resultaria meramente em um aumento no tamanho de código de índices MVP, e porque a redução do tamanho de código de índices MVP reduzindo-se o número de candidatos aperfeiçoa a eficiência de codificação.
[00290] No modo de intercalação e também no modo de estimação de movimento, os candidatos para adição na lista podem ser decididos utilizando-se somente as informações que indicam se o bloco vizinho está disponível como um candidato de referência. Portanto, não há necessidade por etapas complicadas para decisão, e candidatos apropriados podem ser adicionados na lista tanto no modo de intercalação
Petição 870190017641, de 21/02/2019, pág. 124/264
121/190 como no modo de estimação de movimento.
[00291] Ademais, a quarta modalidade garante que o bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo seja invariavelmente adicionado ao fim da lista de candidato de referência. Os blocos vizinhos localizados na mesma imagem são propensos a terem informações de codificação idênticas. O bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é propenso a ser informações de codificação diferentes. Portanto, será mais vantajoso adicionar o bloco na imagem diferente como um candidato independente. Por exemplo, mesmo quando o modo Intra for definido em todos os blocos vizinhos na mesma imagem, o bloco vizinho ao bloco localizado na outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é propenso a ter informações de codificação de Interpredição. No entanto, o bloco vizinho ao bloco localizado na outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é menos propenso a ter informações de codificação idênticas ou próximas às informações de codificação do bloco de predição alvo do que os blocos vizinhos na mesma imagem que o bloco de predição alvo. Portanto, fornece-se uma prioridade menor ao bloco na imagem diferente.
Quinta modalidade [00292] Primeiramente, fornece-se uma descrição da unidade de detecção de intercalação 106 de acordo com a quinta modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A unidade de detecção de intercalação 106 é configurada conforme ilustrado na Figura 11 descrita na primeira modalidade. O processo na unidade de construção de lista
Petição 870190017641, de 21/02/2019, pág. 125/264
122/190 de candidato de referência 311 é diferente daquele da primeira modalidade de modo que a operação da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 de acordo com a primeira modalidade seja descrita. A memória de armazenamento de lista de candidato de referência 314 é dotada de uma lista de candidato de referência como uma área de armazenamento para adicionar candidatos de informações de codificação do bloco vizinho de referência. A unidade de construção de lista de candidato de referência 311 dispõe os candidatos de informações de codificação dos blocos vizinhos em ordem de prioridade e adiciona os candidatos de informações de codificação dos blocos vizinhos na lista de candidato de referência em ordem de prioridade. Isto reduz o tamanho de código dos índices merge_idx na lista de candidato de referência. [00293] O tamanho de código é reduzido localizando-se os elementos com ordem de prioridade maior em direção ao topo da lista de candidato de referência. O índice que indica a ordem de prioridade é atribuído em ordem ascendente, iniciando-se em 0. Supõe-se que a ordem (A1, B1, B0, A0, C0, T) seja ajustada no caso do modo de intercalação. No caso do modo de intercalação, os blocos vizinhos A1 e B1 são adicionados em direção ao topo da lista de candidato de referência em preferência aos outros blocos. Isto ocorre porque as informações de codificação dos blocos A1 e B1 são mais propensas a serem iguais àquelas do bloco de predição alvo e por que os blocos A1 e B1 são contíguos ao bloco de predição alvo nos lados. Desse modo, o tamanho de código de índices de intercalação é reduzido e a eficiência de codificação é aperfeiçoada.
[00294] A lista de candidato de referência proporcionada na memória de armazenamento de lista de candidato de referência 314 é construída como uma lista. A lista de candidato de referência é dotada de uma área de matriz para armazenamento, como elementos, de um ín
Petição 870190017641, de 21/02/2019, pág. 126/264
123/190 dice que indica a localização dentro da lista de candidato de referência e um candidato, correspondente ao índice, d informações de codificação do bloco vizinho de referência. A área de matriz é denotada por candList. Os índices começam com 0. A área de armazenamento para a lista de candidato de referência candList armazena o candidato de informações de codificação do bloco vizinho de referência. Na descrição a seguir, a descrição das etapas, as informações de codificação atribuídas a um índice i adicionado na lista de candidato de referência candList serão denotadas por candList [i] a fim de distingui-las da lista de candidato de referência candList utilizando-se uma notação de matriz. Exceto onde especificado em contrário, as informações de codificação armazenadas na área de armazenamento para a lista de candidato de referência serão denotadas pelos nomes das posições (A0, A1, B0, B1, C0, T) dos blocos vizinhos de referência.
[00295] A Figura 46 é um fluxograma que mostra a operação da unidade de construção de lista de candidato de referência 311 de acordo com a quinta modalidade. Na quinta modalidade, os blocos vizinhos mostrados na Figura 31A são organizados no grupo de bloco vizinho ao bloco alvo à esquerda e no grupo de bloco vizinho acima. Define-se o número de blocos NA e blocos NB vizinhos nos respectivos grupos de bloco. O grupo de bloco à esquerda inclui os blocos vizinhos A0 e A1. O grupo de bloco acima inclui blocos vizinhos B0, B1, e C0. NA e NB são ambos ajustados para 1. Isto significa selecionar um bloco vizinho a partir de cada grupo de bloco. NA e NB não devem exceder o número de blocos vizinhos no respectivo grupo de bloco.
[00296] Primeiramente, a variável N e o índice k na lista de candidato de referência são inicializados (S1200). A variável N é inicializada a um bloco vizinho com a maior prioridade em cada modo de predição. No modo de intercalação, a variável N é ajustada para A1. No modo de estimação de movimento, a variável N é ajustada para A0. k é ajus
Petição 870190017641, de 21/02/2019, pág. 127/264
124/190 tado para 0. O índice k indica a ordem de prioridade de uma área para armazenar o candidato de informações de codificação definido na área de armazenamento para a lista de candidato de referência.
[00297] De modo subsequente, os contadores na e nb dos grupos de bloco à esquerda e acima são inicializados em 0 (S1201). Primeiramente, toma-se uma decisão quanto a se o bloco vizinho N pertence ao grupo de bloco à esquerda ou ao grupo de bloco acima (S1202). Se não pertencer a nenhum grupo de bloco (Não em S1202), o controle procede para a etapa S1206. Se pertencer a um dos grupos de bloco (Sim em S1202), toma-se uma decisão quanto a qual entre o grupo de bloco à esquerda ou o grupo de bloco acima o bloco vizinho N pertence (S1203).
[00298] Se o bloco vizinho N pertencer ao grupo de bloco à esquerda, o contador na é comparado a NA (S1204). Se na for menor que NA (Sim em S1204), o controle procede para a etapa S1206. De outro modo (Não em S1204), o controle procede para a etapa S1210. Se o bloco vizinho N pertencer ao grupo de bloco acima, o contador nb é comparado a NB (S1205). Se nb for menor que NB (Sim em S1205), o controle procede para a etapa S1206. De outro modo (Não em S1205), o controle procede para a etapa S1210.
[00299] Se na e nb forem iguais ou maiores que NA e NB, respectivamente, isto significa que o número de blocos vizinhos nos respectivos grupos de bloco que podem ser selecionados para adição na lista de candidato de referência é excedido. Neste caso, uma decisão quanto a se o bloco vizinho N é adicionado na lista de candidato de referência não é tomada e o bloco não é adicionado.
[00300] O flag availableFlagN que indica a disponibilidade do bloco vizinho de referência N é examinado (S1206). Se availableFlagN for 1 (Sim em S1206), as informações de codificação do bloco vizinho N são adicionadas na lista de candidato de referência candList[k] (S1207), e
Petição 870190017641, de 21/02/2019, pág. 128/264
125/190 k é atualizado (S1208). Ademais, se o bloco vizinho N pertencer ao grupo de bloco à esquerda ou ao grupo de bloco acima, o contador na ou nb é atualizado (S1209). Se availableFlagN for 0 (Não em S1206), as informações de codificação não são adicionadas na lista de candidato de referência, e o controle procede para a etapa S1210.
[00301] Toma-se uma decisão quanto a se o bloco vizinho N é o último bloco de referência (S1210). Se o bloco N for o último bloco (Sim em S1210), o valor do índice é substituído no número total de candidatos listados NumListCand (S1211), e o processo é encerrado. Se o bloco N não for o último bloco (Sim em S1210), a variável N é atualizada (S1212), e a etapa S1202 e as etapas subsequentes são repetidas.
[00302] Os candidatos são adicionados na lista de candidato de referência através das etapas anteriores. O número máximo de candidatos adicionados na lista de candidato de referência é denotado por NA+NB+1. O candidato em um ponto de tempo diferente é alistado, adicionando 1 a NA e NB, que são inicialmente definidos. Visto que NA e NB são definidos como sendo 1, tal número máximo será 3. Desde que somente um bloco vizinho de referência esteja disponível, o tamanho máximo de palavra-código será 0 de modo que não haja necessidade por palavras-código. O candidato de informações de codificação do bloco vizinho somente decidido como estando disponível é exclusivamente identificado como o alvo de referência.
[00303] Se o flag availableFlagA1 que indica a disponibilidade do bloco vizinho de referência A1 for 0, B1, A0, T são adicionados na lista de candidato de referência na ordem declarada visto que a ordem de prioridade é A1, B1, B0, A0, C0, T. As etapas de acordo com a segunda modalidade realizada sob a mesma condição resultarão em A0, B1,
T. A quinta modalidade é vantajosa pelo fato de que os blocos vizinhos aos quais as informações de codificação são mais propensas a serem
Petição 870190017641, de 21/02/2019, pág. 129/264
126/190 iguais àquelas do bloco de predição alvo são adicionados em direção ao topo da lista de candidato de referência, de preferência, aos outros blocos de modo que a ordem de prioridade original seja preservada. Desse modo, o tamanho de código de índices é reduzido e a eficiência de codificação é aperfeiçoada.
[00304] De acordo com a quinta modalidade, garante-se que três blocos vizinhos incluindo: um bloco vizinho que representa um grupo de bloco vizinho ao bloco de predição alvo à esquerda: um bloco vizinho que representa um grupo de bloco vizinho acima: e um bloco vizinho a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, sejam adicionados na lista de candidato de referência. Isto reduz o número total de blocos vizinhos de referência comparado à primeira modalidade. Portanto, o tamanho de palavras-código atribuídas é reduzido de modo que a eficiência de codificação seja aperfeiçoada.
[00305] Agora, fornece-se uma descrição da unidade de decisão de intercalação 206 de acordo com a quinta modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de detecção de intercalação 106 de acordo com a quinta modalidade proporcionada no dispositivo de codificação de imagem em movimento 100. A unidade de decisão de intercalação 206 é configurada conforme ilustrado na Figura 22 descrita na primeira modalidade. O processo na unidade de construção de lista de candidato de referência 311 difere da operação de acordo com a primeira modalidade. Os outros componentes, incluindo a unidade de derivação de informações de codificação 310, a unidade de detecção de informações idênticas 312, a memória de armazenamento de lista de candidato de referência 314, e a unidade de seleção 315 têm as mesmas funções que aqueles da primeira modalidade.
[00306] A unidade de construção de lista de candidato de referência
Petição 870190017641, de 21/02/2019, pág. 130/264
127/190
311 tem a mesma função da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 de acordo com a quinta modalidade. Portanto, a mesma lista de candidato de referência construída na unidade de detecção de intercalação 106 de acordo com a quinta modalidade é construída nas etapas através da unidade de detecção de informações idênticas 312 da unidade de decisão de intercalação 206.
[00307] Fornece-se uma descrição da unidade de seleção 315, que adquire as informações de codificação do bloco vizinho de referência a partir da lista de candidato de referência construída no modo de intercalação. A unidade de seleção 315 seleciona o bloco vizinho na lista de candidato de referência designado pelo índice para identificar o bloco vizinho de referência decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 315 fornece as informações de codificação selecionadas à unidade de predição de compensação de movimento 207 e à memória de armazenamento de informações de codificação 210.
[00308] Primeiramente, fornece-se uma descrição da unidade de predição de vetor de movimento 103 de acordo com a quinta modalidade mostrada na Figura 2 ilustrando a configuração do dispositivo de codificação de imagem em movimento 100. A unidade de predição de vetor de movimento 103 é configurada conforme mostrado na Figura 23 descrita na primeira modalidade. O processo na unidade de construção de lista de candidato de referência 321 é diferente daquele da primeira modalidade. A unidade de construção de lista de candidato de referência 321 tem basicamente a mesma função que a unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 e, logo, realiza a mesma operação de decidir se o candidato de informações de codificação do bloco vizinho de referência estão ou não disponíveis e adicionar o candidato na lista de
Petição 870190017641, de 21/02/2019, pág. 131/264
128/190 candidato de referência. Portanto, omite-se a descrição desta.
[00309] A diferença entre a unidade de construção de lista de candidato de referência 321 em relação à unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 reside na ordem de prioridade observada ao adicionar os candidatos de informações de codificação dos blocos vizinhos de referência na lista de candidato de referência proporcionados na memória de armazenamento de lista de candidato de referência 324. No caso do modo de estimação de movimento, a unidade de construção de lista de candidato de referência 321 lista os candidatos na ordem A0, B0, A1, B1, C0, T.
[00310] O modo de estimação de movimento é configurado para transmitir uma diferença de vetor de movimento. O tamanho de codificação da diferença de vetor de movimento é reduzido e a eficiência de codificação é aperfeiçoada adicionando-se candidatos de modo que o candidato à esquerda e o candidato acima sejam distanciados entre si para garantir uma grande diferença no vetor de movimento entre os candidatos e proporcionar um amplo escopo de seleção do preditor de vetor de movimento como resultado. O propósito do método de decidir a ordem de prioridade no modo de estimação de movimento difere daquele do modo de intercalação onde os blocos vizinhos mais propensos a terem as mesmas informações de codificação são adicionados, de preferência, aos outros blocos. Dispondo-se os candidatos de informações de codificação dos blocos vizinhos de referência em ordem de prioridade e adicionando-se os candidatos na lista de candidato de referência em ordem de prioridade, o tamanho de código dos índices mvp_idx_l0 e mvp_idx_l1 na lista de candidato de referência é reduzido.
[00311] A unidade de construção de lista de candidato de referência 321 da unidade de derivação de vetor de movimento 204 de acordo
Petição 870190017641, de 21/02/2019, pág. 132/264
129/190 com a quinta modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de predição de vetor de movimento 103 de acordo com a quinta modalidade proporcionada no dispositivo de codificação de imagem em movimento 100 tem a mesma função que a unidade de construção de lista de candidato de referência 321 correspondente da unidade de predição de vetor de movimento 103. Portanto, constrói-se a mesma lista de candidato de referência que na unidade de predição de vetor de movimento 103.
[00312] Fornece-se uma descrição da unidade de seleção 325, que adquire as informações de codificação do bloco vizinho de referência a partir da lista de candidato de referência construída no modo de estimação de movimento. A unidade de seleção 325 seleciona o bloco vizinho na lista de candidato de referência designado pelo índice para identificar o bloco vizinho de referência decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 325 emite o vetor de movimento a partir das informações de codificação do bloco vizinho na lista selecionada como o preditor de vetor de movimento. A unidade de adição de vetor de movimento 327 adiciona o preditor de vetor de movimento à diferença de vetor de movimento decodificado na primeira unidade de decodificação de fluxo de bits 202 a fim de derivar o vetor de movimento. A unidade de seleção 325 fornece o vetor de movimento à unidade de predição de compensação de movimento 207 e fornece as informações de codificação do bloco vizinho na lista selecionada à memória de armazenamento de informações de codificação 210.
[00313] Na quinta modalidade, tanto NA como NB são definidos como sendo 1, mas podem ser definidos como sendo qualquer número que não exceda o número de blocos vizinhos no respectivo grupo de blocos. Alternativamente, o número pode ser alterado dependendo do
Petição 870190017641, de 21/02/2019, pág. 133/264
130/190 modo de predição.
Sexta modalidade [00314] Na sexta modalidade, definem os grupos de bloco f de blocos vizinhos de referência diferentes dos grupos da segunda modalidade. A sexta modalidade usa um método diferente de selecionar um bloco vizinho que representa o grupo de bloco. Fornece-se uma descrição com referência à disposição de blocos vizinhos na Figura 31A. Os seis blocos vizinhos A0, A1, B0, B1, C0, T dispostos conforme mostrado na Figura 31A são organizados de modo que A1 represente um grupo de bloco vizinho ao bloco alvo à esquerda, B1 represente um grupo de bloco vizinho acima, T represente a um bloco vizinho a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, e A0, B0, e C0 localizado nos respectivos cantos do bloco de predição alvo represente um grupo de bloco vizinho nos cantos. Um bloco vizinho representativo é selecionado a partir de cada um desses grupos de bloco. As informações de codificação de um dos quatro blocos vizinhos à esquerda, acima, em um ponto de tempo diferente, e nos cantos são selecionadas como um alvo de referência.
[00315] Os blocos vizinhos A1 e B1 são adicionados em direção ao topo da lista de candidato de referência, de preferência, aos outros blocos. Isto ocorre porque as informações de codificação dos blocos A1 e B1 são mais propensas a serem iguais àquelas do bloco de predição alvo e porque os blocos A1 e B1 são contíguos ao bloco de predição alvo nos lados. Os três blocos vizinhos nos cantos tendo informações de codificação relativamente menos propensas a serem iguais são agrupados a fim de reduzir o tamanho de código de índices e aperfeiçoar a eficiência de codificação de modo correspondente. Portanto, a sexta modalidade é adequadamente usada particularmente no modo de intercalação.
Petição 870190017641, de 21/02/2019, pág. 134/264
131/190 [00316] Os blocos vizinhos A0, B0, e C0 são definidos como pertencentes a um grupo de bloco vizinho ao bloco alvo de predição nos cantos na unidade de detecção de intercalação 106 de acordo com a sexta modalidade proporcionada no dispositivo de codificação de imagem em movimento 100 e na unidade de construção de lista de candidato de referência 311 da unidade de decisão de intercalação 206 de acordo com a sexta modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 correspondente. Os blocos também são definidos como pertencentes a um grupo de bloco de canto na unidade de predição de vetor de movimento 103 de acordo com a sexta modalidade proporcionada no dispositivo de codificação de imagem em movimento 100 e na unidade de construção de lista de candidato de referência 321 da unidade de derivação de vetor de movimento 204 de acordo com a sexta modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 correspondente. Definindo-se a ordem de prioridade de modo que A1, B1, (B0, A0, C0), T e adicionando-se os candidatos de informações de codificação dos blocos vizinhos de referência na lista de candidato de referência em ordem de prioridade, o tamanho de código dos índices na lista de candidato de referência é reduzido. Os parênteses na lista de candidato de referência representam um dos blocos nos cantos selecionados em um processo que procede da esquerda para direita nos parênteses.
[00317] As unidades de construção de lista de candidato de referência 311 e 321 varrem os blocos vizinhos no grupo de bloco vizinhos nos cantos em uma sequência predefinida conforme descrito na segunda modalidade a fim de selecionar um bloco vizinho representativo a partir do grupo de bloco. Pode-se fazer uma confirmação que o bloco vizinho está disponível e que o modo Intra não é designado e que o primeiro bloco vizinho que satisfaz esta condição pode ser seleciona
Petição 870190017641, de 21/02/2019, pág. 135/264
132/190 do. Neste caso, supõe-se que os blocos sejam processados na ordem B0, A0, C0. No entanto, a ordem de processamento não é limitante. Alternativamente, as informações de codificação dos blocos vizinhos B0, A0, C0 no grupo de bloco vizinhos nos cantos podem ser submetidos à comparação para selecionar o bloco vizinho tendo as mesmas informações de codificação que o bloco alvo. Isto é, toma-se um voto majoritário no grupo de bloco e um dos blocos vizinhos dotados com as mesmas informações de codificação e aparecendo anteriormente na ordem de processamento B0, A0, C0 é selecionado como o bloco vizinho. Desde que todos os blocos vizinhos de referência estejam disponíveis, a lista de candidato de referência construída na sexta modalidade é conforme mostrado na Figura 47.
Sétima modalidade [00318] A sétima modalidade é projetada para restringir o número de blocos vizinhos de referência adicionados na lista de candidato de referência. No caso da disposição de blocos vizinhos na Figura 9A ou na Figura 31A, adiciona-se um máximo de seis blocos vizinhos de referência na lista de candidato de referência de acordo com a primeira e terceira modalidades (no caso do modo de intercalação). Um máximo de 5 bits será requerido para que o índice designe um bloco vizinho selecionado a partir da lista. Portanto, não pode-se dizer que a eficiência de codificação seja aperfeiçoada. Portanto, garante-se que somente as informações de codificação de blocos vizinhos em direção ao topo da lista de candidato de referência construída sejam usadas, conforme na segunda e quarta modalidades.
[00319] Fornece-se uma descrição da unidade de detecção de intercalação 106 de acordo com a sétima modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A Figura 48 mostra a configuração da unidade de detecção de intercalação 106 do dispositivo de codificação de
Petição 870190017641, de 21/02/2019, pág. 136/264
133/190 imagem em movimento 100 de acordo com a primeira modalidade mostrada na Figura 11 em que uma unidade de restrição de candidato de referência 318 é adicionada. Visto que os componentes mostrados na Figura 48 têm a mesma função que os componentes correspondentes mostrados na Figura 11 de modo que somente a função da unidade de restrição de candidato de referência 318 seja descrita abaixo.
[00320] A unidade de detecção de informações idênticas 312 deleta um bloco vizinho de referência na lista de candidato de referência tendo as mesmas informações de codificação como outro bloco. A lista de candidato de referência resultante é inserida à unidade de restrição de candidato de referência 318. A unidade de restrição de candidato de referência 318 permite tantos blocos vizinhos em direção ao topo da lista de candidato de referência indexada quanto o número que define a restrição. A unidade de restrição de candidato de referência 318 deleta ou anula a seleção de outros blocos. No caso de uma lista de candidato de referência exemplificadora mostrada na Figura 20 de acordo com a primeira modalidade em que não existem informações de codificação idênticas, restringir os candidatos a 3 no modo de intercalação resultará nos três blocos vizinhos superiores com os índices 0 a 3 sendo designados como candidatos de referência e os blocos restantes sendo inutilizados e removidos dos candidatos de referência.
[00321] Desta forma, os blocos vizinhos são adicionados na lista de candidato de referência como candidatos de referência com uma restrição sendo imposta ao número de candidatos na lista conforme descrito anteriormente. Isto reduz o número total de blocos vizinhos de referência comparado à primeira modalidade. Portanto, o tamanho de palavras-código atribuídas é reduzido de modo que a eficiência de codificação seja aperfeiçoada. Os candidatos são restringidos de modo que estes blocos vizinhos com prioridade maior na lista de candidato de referência sejam priorizados. Portanto, evita-se que a eficiência de
Petição 870190017641, de 21/02/2019, pág. 137/264
134/190 codificação seja reduzida. A restrição ao número de candidatos na lista de candidato de referência pode ser efetuada definindo-se o número para restrição nas informações de cabeçalho como SequenceParameterSet (SPS) ou SliceHeader. O número pode ser definido como uma condição implícita sobre o lado de codificação e sobre o lado de decodificação. O método de definição é não limitante contanto que uma inconsistência não seja criada no lado de codificação e no lado de decodificação. O número que define a restrição pode ser definido dependendo do modo de predição. Ademais, o número que define a restrição na lista de candidato de referência pode ser alterado dependendo das informações de codificação do bloco vizinho referidas pelo bloco de predição alvo já codificado ou decodificado.
[00322] Descreveu-se acima um método de restringir o número de candidatos de referência proporcionando-se a unidade de restrição de candidato de referência 318 imediatamente subsequente à unidade de detecção de informações idênticas 312. A mesma vantagem será obtida proporcionando-se a função da unidade de restrição de candidato de referência 318 na unidade de detecção de informações idênticas 312 ao invés de proporcionar a unidade de restrição de candidato de referência 318 na unidade de detecção de intercalação 106. Neste caso, a unidade de detecção de informações idênticas 312 compara os candidatos de informações de codificação armazenadas na lista de candidato de referência. Se um conjunto de informações idênticas for identificado, a unidade de detecção de informações idênticas 312 deleta todas as informações de codificação no conjunto exceto pelo candidato de informações de codificação tendo o menor índice na lista de candidato de referência. A unidade de detecção de informações idênticas 312 adiciona o candidato de informações de codificação tendo o menor índice na lista de candidato de referência novamente e, quando o número de candidatos adicionado alcançar o número definido para
Petição 870190017641, de 21/02/2019, pág. 138/264
135/190 restrição, encerra o processo.
[00323] A Figura 49 é um fluxograma que mostra a operação da unidade de detecção de informações idênticas 312 de acordo com a sétima modalidade. A função de restringir os candidatos de referência de acordo com a sétima modalidade é adicionada à unidade de detecção de informações idênticas 312 que realiza a operação mostrada na Figura 21 da primeira modalidade. As etapas S710 a S712 são adicionadas ao fluxograma da Figura 21 de modo que as etapas adicionadas sejam descritas.
[00324] Após definir as variáveis n e m que indicam os índices na lista de candidato de referência, um contador s que indica o número de candidatos na lista de candidato de referência adicionada em uma lista de deleção é ajustado para 0 (S710). Então, toma-se uma decisão na etapa S702 quanto a se m já é adicionado na lista de deleção. Se m não for adicionado na lista de deleção ainda (Não em S702), m é adicionado na lista de deleção, e o contador s é atualizado sendo incrementado por 1 (S711).
[00325] Então, toma-se uma decisão quanto a se s é igual a um valor limiar TH (S712), onde o valor limiar TH denota o número obtido subtraindo-se o número que define a restrição do número total de candidatos listados NumListCand. Isto é, o valor limiar TH indica o número máximo de candidatos adicionados na lista de deleção. Quando o valor limiar TH for alcançado, permite-se que tantos candidatos quanto o número que define a restrição permaneçam na lista de candidato de referência. Quando s for igual a TH (Sim em S712), tantos candidatos quanto o número que define restrição permanecem na lista de candidato de referência. A etapa para decisão sobre informações idênticas é encerrada, e o controle procede para a etapa S708. As informações de codificação em uma área de armazenamento na lista correspondente ao índice adicionado na lista de deleção são deletadas. Permite
Petição 870190017641, de 21/02/2019, pág. 139/264
136/190 se que a entrada com o índice 0 permaneça intacta e a vacância seja preenchida pelos candidatos sucessivos na ordem ascendente do índice. As palavras-código são atualizadas, e, portanto, o processo é encerrado. Deve-se notar que o número total de candidatos de referência listados NumListCand é atualizado ao número que define a restrição.
[00326] A unidade de restrição de candidato de referência 318 pode ser proporcionada para preceder imediatamente a unidade de detecção de informações idênticas 312. Neste caso, o número de candidatos de referência na lista de candidato de referência construídos na unidade de construção de lista de candidato de referência 311 é reduzido de modo que o número máximo de vezes que a unidade de detecção de informações idênticas 312 detecta informações idênticas seja reduzido. De modo correspondente, o volume de processamento é vantajosamente reduzido.
[00327] A Figura 50 mostra a configuração da unidade de detecção de intercalação 106 com base na unidade de detecção de intercalação 106 do dispositivo de codificação de imagem em movimento 100 de acordo com a primeira modalidade mostrada na Figura 11 e incluindo, ainda, a unidade de restrição de candidato de referência 318 de acordo com a sétima modalidade. Os componentes mostrados na Figura 50 têm a mesma função que os componentes correspondentes mostrados na Figura 11. A diferença da configuração na Figura 48 reside somente na posição da unidade de restrição de candidato de referência 318. A operação da unidade de restrição de candidato de referência 318 permanece a mesma. A unidade de restrição de candidato de referência 318 permite tantos blocos vizinhos em direção ao topo da lista de candidato de referência indexada construída pela unidade de construção de lista de candidato de referência 311 quanto o número que define restrição. A unidade de restrição de candidato de referência
Petição 870190017641, de 21/02/2019, pág. 140/264
137/190
318 deleta ou anula a seleção de outros blocos.
[00328] Descreveu-se acima um método de restringir o número de candidatos de referência proporcionando-se a unidade de restrição de candidato de referência 318 para preceder imediatamente a unidade de detecção de informações idênticas 312. A mesma vantagem será obtida proporcionando-se a função da unidade de restrição de candidato de referência 318 na unidade de construção de lista de candidato de referência 311 ao invés de proporcionar a unidade de restrição de candidato de referência 318 na unidade de detecção de intercalação 106. Neste caso, a unidade de construção de lista de candidato de referência 311 adiciona as informações de codificação do bloco vizinho de referência derivado pela unidade de derivação de informações de codificação 310 na lista de candidato de referência, e também conta o número de blocos vizinhos de referência adicionados na lista de candidato de referência. Quando o número contado alcançar o número que define a restrição, a unidade de construção de lista de candidato de referência 311 encerra o processo.
[00329] A Figura 51 é um fluxograma que mostra a operação da unidade de construção de lista de candidato de referência 311 de acordo com a sétima modalidade. A função de restringir os candidatos de referência de acordo com a sétima modalidade é adicionada à unidade de construção de lista de candidato de referência 311 que realiza a operação mostrada na Figura 19 da primeira modalidade. A etapa S607 é adicionada ao fluxograma da Figura 19 de modo que a etapa adicionada seja descrita.
[00330] Primeiramente, a variável N e um índice k na lista de candidato de referência são inicializados (S600). O índice k indica a ordem de prioridade de uma área para armazenar o candidato de informações de codificação definido na área de armazenamento para a lista de candidato de referência.
Petição 870190017641, de 21/02/2019, pág. 141/264
138/190 [00331] O flag availableFlagN que indica a disponibilidade do bloco vizinho de referência é examinado (S601). Se availableFlagN for 1 (Sim em S601), as informações de codificação do bloco vizinho N são adicionadas na lista de candidato de referência (S602), e k é atualizado (S603).
[00332] Toma-se uma decisão quanto a se k alcança o número que define a restrição (S607). Se k for menor que o número que define a restrição (Não em S607), isto significa que a lista de candidato de referência não contém tantos itens de informações de codificação quanto o número que define a restrição ainda de modo que o controle proceda para a etapa S604. Se k alcançar o número que define a restrição (Sim em S607), isto significa que a lista de candidato de referência contém tantos itens de informações de codificação quanto o número que define a restrição. Portanto, o valor do índice é substituído no número total de candidatos listados NumListCand (S605), e o processo é encerrado.
[00333] A descrição acima se refere a um exemplo onde a unidade de restrição de candidato de referência 318 é adicionada à unidade de detecção de intercalação 106 da primeira modalidade. Também é possível adicionar a unidade de restrição de candidato de referência 318 em outras modalidades. Também é possível adicionar a unidade de restrição de candidato de referência 318 à unidade de decisão de intercalação 206 de acordo com a sétima modalidade correspondente à unidade de detecção de intercalação 106 e proporcionada no dispositivo de decodificação de imagem em movimento 200. A mesma vantagem será obtida proporcionando-se a função da unidade de restrição de candidato de referência 318 na unidade de construção de lista de candidato de referência 311 ou da unidade de detecção de informações idênticas 312 na unidade de decisão de intercalação 206 ao invés de proporcionar a unidade de restrição de candidato de referência
Petição 870190017641, de 21/02/2019, pág. 142/264
139/190
318 na unidade de decisão de intercalação 206. Deve-se notar, no entanto, que a unidade de restrição de candidato de referência 318 deve ser proporcionada na mesma posição no lado de codificação e no lado de decodificação ou que a função da unidade de restrição de candidato de referência 318 deve ser proporcionada na mesma unidade de processamento.
[00334] Agora, fornece-se uma descrição da unidade de predição de vetor de movimento 103 de acordo com a segunda modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A Figura 52 mostra a configuração da unidade de predição de vetor de movimento 103 com base na unidade de predição de vetor de movimento 103 do dispositivo de codificação de imagem em movimento de acordo com a primeira modalidade mostrada na Figura 23 e inclui, ainda, uma unidade de restrição de candidato de referência 328 de acordo com a sétima modalidade. Os componentes mostrados na Figura 52 têm basicamente a mesma função que os componentes correspondentes mostrados na Figura 23, mas os processos na unidade de derivação de informações de codificação 320 e na unidade de construção de lista de candidato de referência 321 são diferentes daqueles da primeira modalidade. As funções da unidade de derivação de informações de codificação 320, da unidade de construção de lista de candidato de referência 321, e da unidade de restrição de candidato de referência 328 de acordo com a sétima modalidade serão descritas.
[00335] A Figura 53 é um fluxograma que mostra a operação da unidade de derivação de informações de codificação 320 de acordo com a sétima modalidade. A unidade de derivação de informações de codificação 320 de acordo com a primeira modalidade realiza uma decisão de acordo com o modo de predição no bloco de predição alvo. De modo mais específico, no caso de uma predição unidirecional L0,
Petição 870190017641, de 21/02/2019, pág. 143/264
140/190 somente as informações de codificação adicionadas na lista de referência L0 são submetidas à decisão. No caso de uma predição unidirecional L1, somente as informações de codificação adicionadas na lista de referência L1 são submetidas à decisão. No caso de predição bidirecional, as informações de codificação em cada uma das listas de referência L0 e L1 são submetidas à decisão independentemente uma da outra.
[00336] Na sétima modalidade, a disponibilidade do bloco vizinho é primeiramente decidida sem considerar o tipo de lista. As informações de codificação são, então, detectadas e adquiridas de acordo com o modo de predição no bloco de predição alvo. O processo supramencionado elimina a necessidade de tomar uma decisão quanto à disponibilidade do bloco vizinho em cada lista e , logo, reduz o número de etapas.
[00337] Primeiramente, uma variável N é inicializada (S900). Os blocos vizinhos B0, A0, A1, B1, e C0 mostrados na Figura 9A estando localizados na mesma imagem são substituídos na variável N. Supõese que a variável seja inicialmente ajustada de modo que N=B0 e atualizada na ordem A0, A1, B1, e C0.
[00338] O modo de estimação de movimento é configurado para transmitir uma diferença de vetor de movimento. O tamanho de codificação da diferença de vetor de movimento é reduzido e a eficiência de codificação é aperfeiçoada adicionando-se candidatos de modo que o candidato à esquerda e o candidato acima estejam distanciados entre si para garantir uma grande diferença no vetor de movimento entre os candidatos e proporcionar um amplo escopo de seleção do preditor de vetor de movimento como resultado. O propósito do método de decidir a ordem de prioridade no modo de estimação de movimento difere daquele do modo de intercalação onde os blocos vizinhos mais propensos a terem as mesmas informações de codificação são adicionados,
Petição 870190017641, de 21/02/2019, pág. 144/264
141/190 de preferência, aos outros blocos.
[00339] A posição e as informações de codificação do bloco vizinho com a variável N (nas partes que se seguem, referido como bloco vizinho N) são adquiridas (S902). Toma-se uma decisão quanto a se o bloco vizinho N está disponível com base na posição adquirida do bloco vizinho N (S903). Por exemplo, se o bloco de predição alvo estiver localizado na borda esquerda da imagem, não existirão blocos vizinhos à esquerda do bloco de predição alvo de modo que não devam existir informações de codificação correspondentes na memória de armazenamento de informações de codificação 114. Neste caso, toma-se uma decisão de indisponibilidade.
[00340] Se o bloco vizinho N estiver indisponível (Não em S903), availableFlagN é ajustado para 0 (S908). Se o bloco vizinho N estiver disponível (Sim em S903), toma-se uma decisão quanto a se o modo de predição no modo vizinho N é Intra (S904). Se o modo de predição do bloco vizinho N não for Intra (Não em S904), isto é, se o modo for o modo Inter, availableFlagN é ajustado para 1 (S906). De modo subsequente, o vetor de movimento é derivado (S916). Após o vetor de movimento ser derivado, as informações de codificação do bloco vizinho N são substituídas em refIdxLXN, mvLXN, e predFlagLXN (S907). [00341] Quando a etapa de decisão estiver completa para o bloco vizinho N conforme descrito anteriormente, toma-se uma decisão quanto a se a variável N indica o último bloco vizinho (S909). Visto que a variável N é atualizada na ordem B0, A0, A1, B1, e C0, toma-se uma decisão quanto a se N é C0. Se N for C0 (Sim em S909), isto significa que todos os blocos vizinhos foram submetidos à decisão de modo que o processo seja encerrado. Se N não for C0 (Não em S909), N é atualizado (S910). N é atualizado na ordem supramencionada de blocos vizinhos de modo que a etapa S902 e as etapas subsequentes sejam repetidas para o bloco vizinho N.
Petição 870190017641, de 21/02/2019, pág. 145/264
142/190 [00342] As etapas da derivação do vetor de movimento serão descritas usando o fluxograma da Figura 54. Primeiramente, as variáveis para armazenar as informações de codificação do bloco vizinho N de predição L0 são inicializadas. As variáveis incluem: um vetor de movimento mvL0N do bloco vizinho N; um número de imagem de referência refIdxL0N; e um flag predFlagL0N que indica a disponibilidade de uma lista de referência. As variáveis são inicializadas da seguinte forma (S920).
mvL0N=(0,0) refIdxL0N=0 predFlagL0N=0 [00343] De modo subsequente, toma-se uma decisão quanto a se o modo Inter no bloco de predição alvo é uma predição unidirecional L0 ou predição Bi-pred (bidirecional) (S921). Em predição Bi-pred, duas listas de referência para predição L0 e predição L1 são usadas. Se o modo no bloco alvo for predição unidirecional L0 ou predição Bi-pred (Sim em S921), o controle procede para uma derivação do vetor de movimento mvL0N do bloco vizinho N (S922).
[00344] Se o número de imagem de referência e a lista de referência do bloco de predição alvo forem idênticos àqueles do bloco vizinho N, o vetor de movimento do bloco vizinho N é substituído em mvL0N. Se o número de imagem de referência e a lista de referência do bloco de predição alvo não forem idênticos àqueles do bloco vizinho N, o vetor de movimento do bloco vizinho N é escalonado. O processo de escalonamento é descrito na primeira modalidade de modo que a descrição deste seja omitida. Escalonando-se o vetor de movimento, um vetor de movimento mais próximo àquele do bloco de predição alvo pode ser derivado de modo que a precisão seja aperfeiçoada de modo correspondente. O vetor de movimento escalonado é substituído em mvL0N, e as informações de codificação da predição L0 no bloco viziPetição 870190017641, de 21/02/2019, pág. 146/264
143/190 nho N são substituídas em refIdxLON e predFlagLON.
[00345] Se o modo não for uma predição unidirecional L0 nem uma predição Bi-pred (Não em S921), o controle procede para a uma decisão sobre o vetor de movimento L1. De modo subsequente, as variáveis para armazenar as informações de codificação do bloco vizinho N de predição L1 são inicializadas. As variáveis incluem: um vetor de movimento mvL1N do bloco vizinho N; um número de imagem de referência refIdxL1N; e um flag predFlagL1N indicando a disponibilidade de uma lista de referência. As variáveis são inicializadas da seguinte forma (S923).
mvL1N=(0,0) refIdxL1N=0 predFlagL1N=0 [00346] De modo subsequente, toma-se uma decisão quanto a se o modo Inter no bloco de predição alvo é predição unidirecional L1 ou uma predição Bi-pred (bidirecional) (S924). Em predição Bi-pred, duas listas de referência para predição L0 e predição L1 são usadas. Se o modo no bloco alvo for uma predição unidirecional L1 ou uma predição Bi-pred (Sim em S924), o controle procede para uma derivação do vetor de movimento mvL1N do bloco vizinho N (S925).
[00347] Se o número de imagem de referência e a lista de referência do bloco de predição alvo forem idênticos àqueles do bloco vizinho N, o vetor de movimento do bloco vizinho N é substituído em mvL1N. Se o número de imagem de referência e a lista de referência do bloco de predição alvo não forem idênticos àqueles do bloco vizinho N, o vetor de movimento do bloco vizinho N é escalonado. O processo de escalonamento é descrito na primeira modalidade de modo que a descrição deste seja omitida. O vetor de movimento escalonado é substituído em mvL1N, e as informações de codificação da predição L1 no bloco vizinho N são substituídas em refIdxL1N e predFlagL1N. Se o modo
Petição 870190017641, de 21/02/2019, pág. 147/264
144/190 não for uma predição unidirecional L1 nem uma predição B-pred (Não em S924), o processo é encerrado.
[00348] Conforme descrito anteriormente, o bloco vizinho imediatamente localizado na mesma imagem que o bloco de predição alvo é usado como um bloco de referência e as informações de codificação são derivadas de modo correspondente. A derivação das informações de codificação do bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é conforme descrito na primeira modalidade de modo que a descrição deste seja omitida.
[00349] As informações de codificação do bloco vizinho assim obtidas são inseridas na unidade de construção de lista de candidato de referência 321. Se o modo Inter for designado no bloco de predição alvo, a unidade de construção de lista de candidato de referência 321 constrói as listas de candidato de referência para as duas listas de referência, isto é, a lista de referência L0 e a lista de referência L1. Na primeira modalidade, a lista de candidato de referência é construída para cada lista de referência. Na sétima modalidade, um único flag availableFlagN é usado sem considerar a lista de referência para indicar a disponibilidade do bloco vizinho usado na decisão subsequente. Portanto, é possível construir a lista de candidato de referência L0 e a lista de candidato de referência L1 ao mesmo tempo de modo que o número de etapas possa ser reduzido.
[00350] A operação da unidade de construção de lista de candidato de referência 321 será descrita utilizando-se o fluxograma da Figura 55. Primeiramente, a variável N e um índice k na lista de candidato de referência são inicializados (S600). A variável N é inicializada para conter o bloco vizinho B0 mostrado na Figura 9A, e k é ajustado para 0. A variável N indica a ordem de prioridade B0, A0, A1, B1, C0 de armazenamento na lista de candidato de referência. O índice k indica um
Petição 870190017641, de 21/02/2019, pág. 148/264
145/190 número atribuído a uma área de armazenamento para armazenar o candidato de informações de codificação definido em uma área de armazenamento na lista de candidato de referência, e corresponde à ordem de prioridade.
[00351] O flag availableFlagN que indica a disponibilidade do bloco vizinho de referência N é examinado (S601). Se availableFlagN for 1 (Sim em S601), as informações de codificação do bloco vizinho N são adicionadas nas duas listas de candidato de referência candListLX[k] de L0 e predição L1 (S602), e k é atualizado (S603), onde o sufixo X denota 0 ou 1. Se availableFlagN for 0 (Não em S601), as informações de codificação não são adicionadas na lista de candidato de referência, e o controle procede para a próxima etapa. Toma-se uma decisão quanto a se o bloco vizinho N é o último bloco de referência (S604). Se o bloco N for o último bloco (Sim em S604), o valor do índice é substituído no número total de candidatos listados NumListCand (S605), e o processo é encerrado. Se o bloco N não for o último bloco (Não em S604), a variável N é atualizada (S606), e a etapa S601 e as etapas subsequentes são repetidas.
[00352] A unidade de restrição de candidato de referência 328 recebe uma lista de candidato de referência obtida deletando-se um bloco vizinho de referência na lista de candidato de referência tendo o mesmo vetor de movimento que outro bloco, usando a unidade de detecção de informações idênticas 322. A unidade de restrição de candidato de referência 328 mostra tantos blocos vizinhos em direção ao topo da lista de candidato de referência indexada quanto o número que define a restrição. A unidade de restrição de candidato de referência 328 deleta ou anula a seleção de outros blocos. Se, por exemplo, o número de candidatos for restringido a três na lista de candidato de referência exemplificadora de acordo com a primeira modalidade mostrada na Figura 28 em que nenhum vetor de movimento é idêntico a
Petição 870190017641, de 21/02/2019, pág. 149/264
146/190 outro, os três blocos vizinhos no topo da lista atribuída a índices 0 a 2 são permitidos permanecer como candidatos de referência de modo que os candidatos restantes sejam inutilizados e removidos da lista de candidatos de referência.
[00353] Desta forma, os blocos vizinhos são adicionados na lista de candidato de referência como candidatos de referência com uma restrição sendo imposta sobre o número de candidatos na lista conforme descrito anteriormente. isto reduz o número total de blocos vizinhos de referência comparado à primeira modalidade. Portanto, o tamanho de palavras-código atribuídas é reduzido de modo que a eficiência de codificação seja aperfeiçoada. Os candidatos são restringidos de modo que os blocos vizinhos com prioridade maior na lista de candidato de referência sejam priorizados. Portanto, evita-se que a eficiência de codificação seja reduzida. A restrição ao número de candidatos na lista de candidato de referência pode ser efetuada definindo-se o número para restrição nas informações de cabeçalho, como SequenceParameterSet (SPS) ou SliceHeader.
[00354] O número pode ser definido como uma condição implícita sobre o lado de codificação e sobre o lado de decodificação. O método de definição não é limitante contanto que não seja criada uma inconsistência no lado de codificação e no lado de decodificação. O número que define uma restrição pode ser definido dependendo do modo de predição. Ademais, o número que define uma restrição na lista de candidato de referência pode ser alterado dependendo das informações de codificação do bloco vizinho referidas pelo bloco de predição alvo já codificado ou decodificado.
[00355] Descreveu-se anteriormente um método de restringir o número de candidatos de referência proporcionando-se a unidade de restrição de candidato de referência 328 imediatamente subsequente à unidade de detecção de informações idênticas 312. A mesma vanta
Petição 870190017641, de 21/02/2019, pág. 150/264
147/190 gem será obtida proporcionando-se a função da unidade de restrição de candidato de referência 328 na unidade de detecção de informações idênticas 312 ao invés de proporcionar a unidade de restrição de candidato de referência 328 na unidade de predição de vetor de movimento 103. Neste caso, a unidade de detecção de informações idênticas 322 compara os candidatos de informações de codificação armazenadas na lista de candidato de referência. Se um conjunto de candidatos com os vetores de movimento idênticos forem identificados, a unidade de detecção de informações idênticas 322 deleta todos os candidatos no conjunto exceto pelo candidato de informações de codificação tendo o menor índice na lista de candidato de referência. A unidade de detecção de informações idênticas 322 adiciona o candidato de informações de codificação tendo o menor índice na lista de candidato de referência novamente e, quando o número de candidatos adicionado alcançar o número definido para restrição, encerra o processo.
[00356] A Figura 56 é um fluxograma que mostra a operação da unidade de detecção de informações idênticas 322 de acordo com a sétima modalidade. A função de restringir os candidatos de referência de acordo com a sétima modalidade é adicionada à unidade de detecção de informações idênticas 322 que realiza a operação mostrada na Figura 29 da primeira modalidade. As etapas S1010 a S1012 são adicionadas ao fluxograma da Figura 29 de modo que as etapas adicionadas sejam descritas.
[00357] Após definir as variáveis n e m que indicam os índices na lista de candidato de referência, um contador s que indica o número de candidatos na lista de candidato de referência adicionado em uma lista de deleção é ajustado para 0 (S1010). Então, toma-se uma decisão na etapa S1002 quanto a se m já é adicionado na lista de deleção. Se m não for adicionado na lista de deleção ainda (Não em S1002), m é adi
Petição 870190017641, de 21/02/2019, pág. 151/264
148/190 cionado na lista de deleção (S1003), e o contador s é atualizado sendo incrementado por 1 (S1011).
[00358] Então, toma-se uma decisão quanto a se s é igual a um valor limiar TH (S1012), onde o valor limiar TH denota o número obtido subtraindo-se o número que define uma restrição do número total de candidatos listados NumListCand. Isto é, o valor limiar TH indica o número máximo de candidatos adicionados na lista de deleção. Quando o valor limiar TH for alcançado, tantos candidatos quanto o número que define uma restrição são permitidos permanecer na lista de candidato de referência. Quando s for igual a TH (Sim em S1012), tantos candidatos quanto o número que define uma restrição permanecem na lista de candidato de referência. A etapa para decisão sobre informações idênticas é encerrada, e o controle procede para a etapa S1008. As informações de codificação em uma área de armazenamento na lista correspondente ao índice adicionado na lista de deleção são deletadas. A entrada com o índice 0 é permitida permanecer intacto e a vacância é preenchido pelos candidatos sucessivos na ordem ascendente do índice. As palavras-código são atualizadas, e, portanto, o processo é encerrado. Deve-se notar que o número total de candidatos de referência listados NumListCand é atualizado ao número que define uma restrição.
[00359] A unidade de restrição de candidato de referência 328 pode ser proporcionada para preceder imediatamente a unidade de detecção de informações idênticas 322. Neste caso, o número de candidatos de referência na lista de candidato de referência construído na unidade de construção de lista de candidato de referência 321 é reduzido de modo que o número máximo de vezes que a unidade de detecção de informações idênticas 322 detecta informações idênticas seja reduzido. De modo correspondente, o volume de processamento é vantajosamente reduzido.
Petição 870190017641, de 21/02/2019, pág. 152/264
149/190 [00360] A Figura 57 mostra a configuração da unidade de predição de vetor de movimento 103 com base na unidade de predição de vetor de movimento 103 do dispositivo de codificação de imagem em movimento de acordo com a primeira modalidade mostrada na Figura 23 e inclui, ainda, uma unidade de restrição de candidato de referência 328 de acordo com a sétima modalidade. Os componentes mostrados na Figura 57 têm basicamente a mesma função que os componentes correspondentes mostrados na Figura 23. A diferença da configuração na Figura 52 supramencionada reside somente na posição da unidade de restrição de candidato de referência 328. A operação da unidade de restrição de candidato de referência 328 permanece a mesma. A unidade de restrição de candidato de referência 328 permite tantos blocos vizinhos em direção ao topo da lista de candidato de referência indexada construída pela unidade de construção de lista de candidato de referência 321 quanto o número que define restrição. A unidade de restrição de candidato de referência 328 deleta ou anula a seleção de outros blocos.
[00361] Descreveu-se acima um método de restringir o número de candidatos de referência proporcionando-se a unidade de restrição de candidato de referência 328 para preceder imediatamente a unidade de detecção de informações idênticas 322. A mesma vantagem será obtida proporcionando-se a função da unidade de restrição de candidato de referência 328 na unidade de construção de lista de candidato de referência 321 ao invés de proporcionar a unidade de restrição de candidato de referência 328 na unidade de predição de vetor de movimento 103. Neste caso, a unidade de construção de lista de candidato de referência 321 adiciona as informações de codificação do bloco vizinho de referência derivadas pela unidade de derivação de informações de codificação 320 na lista de candidato de referência, e também conta o número de blocos vizinhos de referência adicionados na lista
Petição 870190017641, de 21/02/2019, pág. 153/264
150/190 de candidato de referência. Quando o número contado alcançar o número que define uma restrição, a unidade de construção de lista de candidato de referência 321 encerra o processo. A operação da unidade de construção de lista de candidato de referência 321 é conforme mostrado na Figura 51, que mostra a operação da unidade de construção de lista de candidato de referência 311 de acordo com a sétima modalidade exceto pelo fato de que a lista de candidato de referência L0 e a lista de candidato de referência L1 são construídas ao mesmo tempo de acordo com o modo de predição no bloco de predição alvo. Portanto, omite-se uma descrição da operação da unidade de construção de lista de candidato de referência 321.
Oitava modalidade [00362] Na oitava modalidade, definem-se os grupos de bloco de blocos vizinhos de referência diferentes dos grupos da segunda e quinta modalidades. Um total de K blocos vizinhos são selecionados para representar o grupo de bloco. Fornece-se uma descrição com referência à disposição dos blocos vizinhos na Figura 31A. Conforme na quarta modalidade, dos seis blocos vizinhos A0, A1, B0, B1, C0, e T, os blocos vizinhos A0, A1, B0, B1, C0 localizados na mesma imagem que o bloco de predição alvo são colocados em um grupo de bloco. Um total de K blocos vizinhos são selecionados para representar o grupo de bloco.
[00363] As informações de codificação de um total de K+1 blocos vizinhos incluindo K que representa blocos vizinhos selecionados na mesma imagem, e um bloco T vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, são adicionadas na lista de candidato de referência. Na quarta modalidade, a unidade de derivação de informações de codificação 310 e a unidade de derivação de informações de codificação 320 selecionam K (2) blocos vizinhos representa
Petição 870190017641, de 21/02/2019, pág. 154/264
151/190 tivos. Na oitava modalidade, conforme na primeira modalidade, a unidade de derivação de informações de codificação 310 e a unidade de derivação de informações de codificação 320 selecionam todos os blocos vizinhos e K (2) blocos vizinhos representativos são selecionados na etapa de construir a lista de candidato de referência e as etapas subsequentes.
[00364] A oitava modalidade é equivalente a um caso de aplicar a sétima modalidade, que restringe o número de blocos vizinhos selecionados como candidatos de referência, ao grupo de bloco localizado na mesma imagem que o bloco de predição alvo. A oitava modalidade difere da sétima modalidade em que somente o bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é definido como uma exceção e adicionado ao fim da lista de candidato de referência. Os blocos vizinhos localizados na mesma imagem são propensos a terem as informações de codificação idênticas. O bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é propenso a ter diferentes informações de codificação. Portanto, será mais vantajoso adicionar o bloco na imagem diferente como um candidato independente. Por exemplo, mesmo quando o modo Intra for definido em todos os blocos vizinhos na mesma imagem, o bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é propenso a ter informações de codificação de Interpredição. No entanto, o bloco vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é menos propenso a ter informações de codificação idênticas ou próximas às informações de codificação do bloco de predição alvo em relação aos blocos vizinhos na mesma imagem que o bloco de predição
Petição 870190017641, de 21/02/2019, pág. 155/264
152/190 alvo. Portanto, o bloco na imagem diferente é dado com uma prioridade menor.
[00365] Por esta razão, o bloco na imagem diferente é atribuído a uma prioridade menor que os blocos vizinhos selecionados a partir do grupo de bloco na mesma imagem e é adicionado no fundo da lista de candidato de referência. Na descrição a seguir, supõe-se que a configuração do dispositivo de codificação de imagem em movimento 100 e do dispositivo de decodificação de imagem em movimento 200 de acordo com a oitava modalidade seja igual àquela descrita na sétima modalidade. No entanto, as unidades de restrição de candidato de referência 318 e 328 de acordo com a sétima modalidade não são proporcionadas. A função da unidade de restrição de candidato de referência é proporcionada nas unidades de construção de lista de candidato de referência 311, 321, ou nas unidades de detecção de informações idênticas 312, 322. O grupo de bloco de blocos vizinhos localizado na mesma imagem que o bloco de predição alvo é submetido à restrição de candidato.
[00366] Os blocos vizinhos A0, A1, B0, B1, e C0 localizados na mesma imagem que o bloco de predição alvo são definidos como pertencentes a um grupo de bloco na mesma imagem na unidade de detecção de intercalação 106 proporcionada no dispositivo de codificação de imagem em movimento 100 e na unidade de construção de lista de candidato de referência 311 da unidade de decisão de intercalação 206 proporcionada no dispositivo de decodificação de imagem em movimento 200 correspondente. Os blocos também são definidos como pertencentes a um grupo de bloco na mesma imagem na unidade de predição de vetor de movimento 103 proporcionada no dispositivo de codificação de imagem em movimento 100 e na unidade de construção de lista de candidato de referência 321 da unidade de derivação de vetor de movimento 204 proporcionada no dispositivo de decodifi
Petição 870190017641, de 21/02/2019, pág. 156/264
153/190 cação de imagem em movimento 200 correspondente. Dando-se prioridade aos blocos vizinhos que representam o grupo de bloco na mesma imagem, seguido por T, e adicionando-se os candidatos de informações de codificação dos blocos vizinhos de referência na lista de candidato de referência em ordem de prioridade, o tamanho de código dos índices na lista de candidato de referência é reduzido.
[00367] Primeiramente, fornece-se uma descrição da unidade de detecção de intercalação 106 de acordo com a oitava modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A unidade de detecção de intercalação 106 é configurada conforme ilustrado na Figura 11 descrita na primeira modalidade. O processo na unidade de construção de lista de candidato de referência 311 difere da operação de acordo com a primeira modalidade. Fornece-se uma descrição da operação da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 de acordo com a oitava modalidade.
[00368] A Figura 58 é um fluxograma que mostra a operação da unidade de construção de lista de candidato de referência 311 de acordo com a oitava modalidade. Na oitava modalidade, o número K de blocos vizinhos de referência no grupo de bloco localizado na mesma imagem que são adicionados na lista de candidato de referência é definido antes de construir a lista de candidato de referência. Neste caso, K é ajustado para 2. K não deve exceder o número total de blocos vizinhos no grupo de bloco na mesma imagem.
[00369] Primeiramente, a variável N e o índice k na lista de candidato de referência são inicializados (S1300). A variável N é inicializada a um bloco vizinho com a maior prioridade em cada modo de predição. A ordem de prioridade no modo de intercalação é A1, B0, B0, A0, C0 de modo que N seja ajustado para A1 e atualizado nesta ordem. k é ajustado para 0. O índice k indica a ordem de prioridade de uma área para
Petição 870190017641, de 21/02/2019, pág. 157/264
154/190 armazenar o candidato de informações de codificação definido na área de armazenamento para a lista de candidato de referência.
[00370] O flag availableFlagN que indica a disponibilidade do bloco vizinho de referência N é examinado primeiramente (S1301). Se availableFlagN for 0 (Não em S1301), as informações de codificação não são adicionadas na lista de candidato de referência, e o controle procede para a etapa S1305. Se availableFlagN for 1 (Sim em S1301), as informações de codificação do bloco vizinho N são adicionadas na lista de candidato de referência (S1302), e k é atualizado (S1303).
[00371] Após k ser atualizado, o controle procede para uma comparação entre k e K (S1304). Se k for menor que K (Sim em S1304), isto é, se o número de blocos vizinhos adicionados na lista de candidato de referência não tiver alcançado K, o controle procede para a etapa S1305. Se k for igual ou maior que K (Não em S1304), isto significa que o número de blocos vizinhos adicionados na lista de candidato de referência alcançou K. O controle sai da decisão quanto a se adiciona o bloco na lista de candidato de referência e procede para a etapa S1307.
[00372] Toma-se uma decisão quanto a se o bloco vizinho N é o último bloco de referência (S1305). Se o bloco N não for o último bloco (Não em S1305), a variável N é atualizada (S1306), e a etapa S1301 e as etapas subsequentes são repetidas. Se o bloco vizinho N for o último bloco (Sim em S1305), o controle procede para a etapa S1307.
[00373] Quando uma decisão sobre adição de um grupo de bloco na mesma imagem for completa, o flag availableFlagT que indica a disponibilidade do bloco T vizinho ao bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo é examinado (S1307). Se availableFlagT for 1 (Sim em S1307), as informações de codificação do bloco vizinho T são adicionadas na lista de candidato de referência (S1308),
Petição 870190017641, de 21/02/2019, pág. 158/264
155/190 e k é atualizado (S1309). Se availableFlagT for 0 (Não em S1307), as informações de codificação não são adicionadas na lista de candidato de referência, e o controle procede para a etapa S1310. O número de candidatos adicionado na lista de candidato de referência é definido como o número total de candidatos listados NumListCand (S1310), e o processo é encerrado.
[00374] Os candidatos são adicionados na lista de candidato de referência através das etapas anteriores. O número máximo de candidatos adicionados na lista de candidato de referência é denotado por K+1. Desde que somente um bloco vizinho de referência esteja disponível, o tamanho máximo de palavra-código será 0 de modo que não haja necessidade por palavras-código. O candidato de informações de codificação do bloco vizinho decidido somente como estando disponível é exclusivamente identificado como o alvo de referência.
[00375] Agora, fornece-se uma descrição da unidade de decisão de intercalação 206 de acordo com a oitava modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de detecção de intercalação 106 proporcionada no dispositivo de codificação de imagem em movimento 100. A unidade de decisão de intercalação 206 é configurada conforme ilustrado na Figura 22 descrita na primeira modalidade. O processo na unidade de construção de lista de candidato de referência 311 difere da operação de acordo com a primeira modalidade. Os outros componentes, incluindo a unidade de derivação de informações de codificação 310, a unidade de detecção de informações idênticas 312, a memória de armazenamento de lista de candidato de referência 314, e a unidade de seleção 315 têm as mesmas funções da primeira modalidade.
[00376] A unidade de construção de lista de candidato de referência 311 tem a mesma função da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 de
Petição 870190017641, de 21/02/2019, pág. 159/264
156/190 acordo com a oitava modalidade. Portanto, a mesma lista de candidato de referência construída na unidade de detecção de intercalação 106 de acordo com a oitava modalidade é construída nas etapas através da unidade de detecção de informações idênticas 312 da unidade de decisão de intercalação 206. Fornece-se uma descrição da unidade de seleção 315, que adquire as informações de codificação do bloco vizinho de referência a partir da lista de candidato de referência construída no modo de intercalação. A unidade de seleção 315 seleciona o bloco vizinho na lista de candidato de referência designado pelo índice para identificar o bloco vizinho de referência decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 315 fornece as informações de codificação selecionadas à unidade de predição de compensação de movimento 207 e à memória de armazenamento de informações de codificação 210.
[00377] Agora, fornece-se uma descrição da unidade de predição de vetor de movimento 103 de acordo com a oitava modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A unidade de predição de vetor de movimento 103 é configurada conforme mostrado na Figura 23 descrita na primeira modalidade. O processo na unidade de construção de lista de candidato de referência 321 é diferente daquele da primeira modalidade. Fornece-se uma descrição da operação da unidade de construção de lista de candidato de referência 321 de acordo com a oitava modalidade.
[00378] Conforme na unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106, a unidade de construção de lista de candidato de referência 321 coloca os blocos vizinhos A0, A1, B0, B1, C0 localizados na mesma imagem que o bloco de predição alvo em um grupo de bloco e seleciona um total de K blocos vizinhos para representar cada grupo de bloco. A unidade
Petição 870190017641, de 21/02/2019, pág. 160/264
157/190 de construção de lista de candidato de referência 321 difere da unidade de construção de lista de candidato de referência 311 da unidade de detecção de intercalação 106 em que a lista de candidato de referência L0 e a lista de candidato de referência L1 são construídas ao mesmo tempo. No entanto, o fluxo de processo não difere significativamente de modo que a descrição seja omitida. A ordem de prioridade no modo de estimação de movimento é B0, A0, A1, B1, e C0.
[00379] A unidade de construção de lista de candidato de referência 321 da unidade de derivação de vetor de movimento 204 de acordo com a oitava modalidade proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de predição de vetor de movimento 103 proporcionada no dispositivo de codificação de imagem em movimento 100 tem a mesma função que a unidade de construção de lista de candidato de referência 321 correspondente da unidade de predição de vetor de movimento 103. Portanto, constrói-se a mesma lista de candidato de referência que na unidade de predição de vetor de movimento 103. Portanto, a descrição da unidade de construção de lista de candidato de referência 321 será omitida.
[00380] Desde que todos os blocos vizinhos de referência estejam disponíveis, a lista de candidato de acordo com a oitava modalidade é construída para cada modo de predição conforme mostrado na Figura 59. A Figura 59 mostra um exemplo no qual o número de blocos vizinhos de referência no grupo de bloco na mesma imagem é 2 tanto no modo de intercalação como no modo de estimação de movimento. Os blocos vizinhos que estão disponíveis e que têm prioridade relativamente maior são adicionados na lista de candidato de referência em cada predição.
[00381] Na oitava modalidade, supõe-se que a ordem de prioridade seja de modo que A1, B1, B0, A0, C0 no case do modo de intercala
Petição 870190017641, de 21/02/2019, pág. 161/264
158/190 ção, e B0, A0, A1, B1, C0 no caso do modo de estimação de movimento. No entanto, a ordem de prioridade não é limitante. No caso do modo de intercalação, no entanto, os blocos vizinhos A1 e B1 são adicionados em direção ao topo da lista de candidato de referência, de preferência, aos outros blocos. Isto porque as informações de codificação dos blocos A1 e B1 são mais propensas a serem iguais àquelas do bloco de predição alvo e porque os blocos A1 e B1 são contíguos ao bloco de predição alvo nos lados. Desse modo, o tamanho de código dos índices de intercalação é reduzido e a eficiência de codificação é aperfeiçoada.
[00382] O modo de estimação de movimento é configurado para transmitir uma diferença de vetor de movimento. O tamanho de codificação da diferença de vetor de movimento é reduzido e a eficiência de codificação é aperfeiçoada adicionando-se candidatos de modo que o candidato à esquerda e o candidate acima sejam distanciados entre si para garantir uma grande diferença no vetor de movimento entre os candidatos e proporcionar um escopo amplo de seleção do preditor de vetor de movimento como resultado. O propósito do método de decidir a ordem de prioridade no modo de estimação de movimento difere daquele do modo de intercalação em que os blocos vizinhos mais propensos a terem as mesmas informações de codificação são adicionados, de preferência, a outros blocos. Deve-se notar que a oitava modalidade pode ser usada no caso do modo de intercalação e a segunda ou qualquer outra modalidade pode ser usada no caso do modo de estimação de movimento. Pode-se usar uma variedade de combinações dependendo do modo de predição.
Nona modalidade [00383] Na nona modalidade, como na primeira modalidade, os blocos vizinhos localizados na mesma imagem que o bloco de predição alvo e um bloco vizinho a um bloco localizado em outra imagem em
Petição 870190017641, de 21/02/2019, pág. 162/264
159/190 um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo são adicionados na lista de candidato de referência desde que o bloco vizinho esteja disponível. As informações de codificação do bloco vizinho ótimo são selecionadas a partir da lista de candidato de referência e os índices na lista de candidato de referência indicando os blocos vizinhos são codificados e transmitidos.
[00384] Fornece-se uma descrição com referência à disposição dos blocos vizinhos na Figura 9A. Na primeira modalidade, a ordem de prioridade predefinida é atribuída à posição do bloco vizinho ao construir a lista de candidato de referência. Toma-se uma decisão quanto a se o bloco vizinho satisfaz uma condição predefinida em ordem de prioridade. Se a condição for satisfeita, o bloco vizinho é adicionado em direção ao topo da lista de candidato de referência, construindo, assim, a lista de candidato de referência. A ordem de prioridade mapeada à posição do bloco vizinho é diretamente refletida nos índices na lista de candidato de referência. Quanto maior a prioridade, menor o índice atribuído à área de armazenamento na lista de candidato de referência em que o bloco é armazenado.
[00385] Em geral, quanto maior a área do bloco vizinho contíguo ao bloco de predição alvo, mais provável será que o bloco vizinho tenha informações de codificação idênticas àquelas do bloco de predição alvo. Adicionando-se tal bloco vizinho em direção ao topo da lista de candidato de referência, de preferência, aos outros blocos, o tamanho de código de índices é reduzido e a eficiência de codificação é aperfeiçoada.
[00386] Neste sentido, a ordem de decidir a disponibilidade do bloco vizinho ao construir a lista de candidato de referência a partir da predição de vetor de movimento no modo de estimação de movimento e a ordem das palavras-código atribuídas aos blocos vizinhos de referência são definidas separadamente. A ordem de decidir a disponibiliPetição 870190017641, de 21/02/2019, pág. 163/264
160/190 dade do bloco vizinho ao construir a lista de candidato de referência é definida de modo que os blocos vizinhos sejam distanciados entre si para garantir uma grande diferença no vetor de movimento entre o candidato de bloco vizinho à esquerda e o candidato acima e proporcionar um escopo amplo de seleção do preditor de vetor de movimento como resultado.
[00387] Supõe-se que a ordem de decidir a disponibilidade do bloco vizinho ao construir a lista de candidato de referência a partir da predição de vetor de movimento seja B0, A1, A1, B1, C0, T. Entretanto, as palavras-código dos tamanhos em ordem ascendente A1, B1, B0, A1, C0, T são atribuídas aos blocos vizinhos de referência, dando, assim, prioridade a blocos vizinhos contíguos ao bloco de predição alvo em relação a uma área maior.
[00388] Agora, fornece-se uma descrição da unidade de predição de vetor de movimento 103 de acordo com a nona modalidade mostrada na Figura 2 que ilustra a configuração do dispositivo de codificação de imagem em movimento 100. A unidade de predição de vetor de movimento 103 é configurada conforme mostrado na Figura 23 descrita na primeira modalidade. A operação na unidade de construção de lista de candidato de referência 321 é diferente daquela da primeira modalidade. Fornece-se uma descrição da operação da unidade de construção de lista de candidato de referência 321 de acordo com a nona modalidade. A Figura 60 é um fluxograma que mostra a operação da unidade de construção de lista de candidato de referência 321 no modo de estimação de movimento de acordo com a nona modalidade.
[00389] A unidade de construção de lista de candidato de referência 321 realiza basicamente a mesma operação que a unidade de construção de lista de candidato de referência 321 na unidade de predição de vetor de movimento 103. No modo de estimação de movimento, é
Petição 870190017641, de 21/02/2019, pág. 164/264
161/190 necessário construir a lista de candidato de referência L0 e a lista de candidato de referência L1 a partir das respectivas listas de referência. Portanto, a etapa de construir a lista de candidato de referência no modo de estimação de movimento é realizada duas vezes para construir a lista L0 e a lista L1. Portanto, na etapa S601 para decidir a disponibilidade do bloco vizinho, o sufixo LX que indica a lista de referência é anexado ao flag availableFlagLXN (X é 0 ou 1; um símbolo que indica o bloco vizinho é substituído em N) indicando a disponibilidade do bloco vizinho. As etapas de decisão são as mesmas do modo de intercalação.
[00390] Referindo-se à Figura 60, a etapa de construir e atualizar uma tabela de conversão é adicionada ao fluxograma da Figura 19 que mostra a operação da unidade de construção de lista de candidato de referência 321 na unidade de predição de vetor de movimento 103. A operação da unidade de construção de lista de candidato de referência 321 bem como aquela de decisão serão descritas. A decisão em somente uma das listas de referência será discutida abaixo. A decisão na outra lista de referência é similar de modo que a descrição desta seja omitida.
[00391] Primeiramente, a variável N e um índice k na lista de candidato de referência são inicializados (S600). A variável N é inicializada para conter o bloco vizinho B0 mostrado na Figura 9A, e k é ajustado para 0. O índice k indica a ordem de prioridade de uma área para armazenar o candidato de informações de codificação definido na área de armazenamento para a lista de candidato de referência proporcionada na memória de armazenamento de lista de candidato de referência 324. A área de armazenamento tem uma estrutura de matriz e é denotada como candList. Os índices começam com 0. A área de armazenamento para a lista de candidato de referência candList armazena o candidato de informações de codificação do bloco vizinho de
Petição 870190017641, de 21/02/2019, pág. 165/264
162/190 referência. Na descrição a seguir das etapas, as informações de codificação atribuídas a um índice i adicionado na lista de candidato de referência candList serão denotadas por candList [i].
[00392] O flag availableFlagLXN que indica a disponibilidade do bloco vizinho de referência N é examinado (S601). 0 ou 1 pode ser substituído em X. Se availableFlagLXN for 0 (Não em S601), as informações de codificação não são adicionadas na lista de candidato de referência, e o controle procede para a próxima etapa. Toma-se uma decisão quanto a se o bloco vizinho N é o último bloco de referência (S604). Se o bloco N for o último bloco (Sim em S604), o valor do índice k e substituído no número total de candidatos listados NumListCand (S605), e o processo é encerrado. Se o bloco N não for o último bloco (Não em S604), a variável N é atualizada (S606), e a etapa S601 e as etapas subsequentes são repetidas. A ordem dos blocos vizinhos de acordo com qual variável N é atualizada é configurada para que seja idêntica à ordem de prioridade de armazenamento na lista de candidato de referência. Supõe-se que a ordem (B0, A0, A1, B1, C0, T) seja ajustada na nona modalidade.
[00393] Se availableFlagLXN for 1 (Sim em S601), as informações de codificação do bloco vizinho N são adicionadas na lista de candidato de referência candList[k] (S602), a tabela de conversão é construída e atualizada (S608), e k é atualizado (S603).
[00394] Fornece-se uma descrição dos detalhes da etapa de construir e atualizar a tabela de conversão (S608). Na etapa de construir e atualizar a tabela de conversão, uma tabela de conversão mapeia a ordem de decidir a disponibilidade do bloco vizinho ao construir a lista de candidato de referência a partir da predição de vetor de movimento à ordem de palavras-código atribuídas aos blocos vizinhos de referência. A tabela de conversão é uma área de armazenamento tendo uma estrutura de matriz e proporcionada na memória de armazenamento
Petição 870190017641, de 21/02/2019, pág. 166/264
163/190 de lista de candidato de referência 324 para armazenar os índices da tabela de conversão mapeada aos índices na lista de candidato de referência.
[00395] A etapa será descrita com referência à Figura 61. A variável N e o índice k da lista de candidato de referência são inseridos de modo que a etapa de construir e atualizar a tabela de conversão seja iniciada. Primeiramente, a variável M e o índice j da tabela de conversão são inicializados (S1400). A variável M é inicializada para conter o bloco vizinho A1 mostrado na Figura 9A, e j é ajustado para 0. A variável M é atualizada na ordem A1, B1, B0, A0, C0, T. Então, toma-se uma decisão quanto a se M é igual a N (S1401). Se M não for igual a N (Não em S1401), o índice não é adicionado na tabela de conversão e j é atualizado (S1403).
[00396] Toma-se uma decisão quanto a se a variável M indica o último bloco vizinho (S1404). O último bloco vizinho é T de modo que, se M for T (Sim em S1404), o processo seja encerrado. Se M não indicar o último bloco (Não em S1404), a variável M é atualizada (S1405), e a etapa S1401 e as etapas subsequentes são repetidas.
[00397] Se M for N (Sim em S1401), o índice k na lista de candidato de referência é adicionado na j-ésima área de armazenamento a partir do topo na tabela de conversão (S1402). Quando o índice k for adicionado, o processo é encerrado e o controle retorna à etapa de atualizar k na Figura 60 (S603). Os índices k na lista de candidato de referência são adicionados na tabela de conversão através das etapas descritas anteriormente. Desde que todos os blocos vizinhos de referência estejam disponíveis, os índices k são mapeados às palavras-código representadas pelos índices na tabela de conversão mostrada na Figura 62. [00398] Desde que todos os blocos vizinhos de referência estejam disponíveis, a tabela de conversão é usada para construir a lista de candidato de referência organizada na ordem mostrada na Figura 63
Petição 870190017641, de 21/02/2019, pág. 167/264
164/190 para listar os candidatos de referência na tabela de conversão, atribuir os candidatos às respectivas palavras-código. Desde que somente um bloco vizinho de referência esteja disponível, não haverá necessidade por palavras-código. O candidato de informações de codificação do bloco vizinho somente decidido como estando disponível é exclusivamente identificado como o alvo de referência.
[00399] A descrição acima refere-se a índices na lista de candidato de referência construídos pela unidade de construção de lista de candidato de referência 321 e deixados não modificados. De modo ideal, no entanto, é favorável mapear os índices na lista de candidato de referência e os índices na tabela de conversão após a unidade de detecção de informações idênticas 322 deletar da lista de candidato de referência aqueles blocos vizinhos de candidato de referência dotados de informações de codificação idênticas àquelas de outro bloco. A área de armazenamento para a tabela de conversão correspondente ao índice na lista de candidato de referência atribuída ao bloco vizinho de candidato de referência deletado pela unidade de detecção de informações idênticas 322 também é deletada e a vacância é preenchida em direção ao topo da tabela de conversão.
[00400] Se, por exemplo, o bloco vizinho atribuído ao índice 1 na lista de candidato de referência for deletado na Figura 62, a entrada com o índice 3 na tabela de conversão correspondente ao índice 1 na lista de candidato de referência é deletada. Os índices 4 e 5 na tabela de conversão são renumerados como 3 e 4, respectivamente e as palavras-código associadas são atualizadas a 1110 e 1111, respectivamente.
[00401] A unidade de derivação de diferença de vetor de movimento 326 usa o vetor de movimento na lista de candidato de referência assim construído como um preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 deriva uma dife
Petição 870190017641, de 21/02/2019, pág. 168/264
165/190 rença de vetor de movimento a partir do vetor de movimento estimado pela unidade de estimação de vetor de movimento 102 e pelo preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 fornece a diferença de vetor de movimento derivada à unidade de saída 323. A unidade de saída 323 emite os índices e a diferenças de vetor de movimento na lista de candidato de referência construída. A lista de candidato de referência é emitida como uma lista MVP e o índice na lista é emitido como um índice MVP.
[00402] A unidade de construção de lista de candidato de referência 321 ou a unidade de detecção de informações idênticas 322 tendo a mesma função que a unidade de predição de vetor de movimento 103 também é proporcionada na unidade de derivação de vetor de movimento 204 proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de predição de vetor de movimento 103 proporcionada no dispositivo de codificação de imagem em movimento 100. Portanto, constrói-se a mesma lista de candidato de referência é construída que na unidade de predição de vetor de movimento 103. A lista de candidato de referência assim construída é emitida à unidade de seleção 325.
[00403] A unidade de seleção 325 seleciona o bloco vizinho na lista de candidato de referência designado pelo índice para identificar o bloco vizinho de referência decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 325 emite o vetor de movimento a partir das informações de codificação do bloco vizinho na lista selecionada como o preditor de vetor de movimento. A unidade de adição de vetor de movimento 327 adiciona o preditor de vetor de movimento à diferença de vetor de movimento decodificado na primeira unidade de decodificação de fluxo de bits 202 a fim de derivar o vetor de movimento. A unidade de seleção 325 fornece o vetor de movimento à unidade de predição de compensação de movimento 207 e
Petição 870190017641, de 21/02/2019, pág. 169/264
166/190 fornece as informações de codificação do bloco vizinho na lista selecionada à memória de armazenamento de informações de codificação 210.
Décima modalidade [00404] Na décima modalidade, a ordem de decidir a disponibilidade do bloco vizinho ao construir a lista de candidato de referência é alterada dependendo se o primeiro está ou não disponível. Fornece-se uma descrição com referência à disposição de blocos vizinhos na Figura 9A. A ordem B0, A0, A1, C0, B1, T em que a disponibilidade do bloco vizinho é decidida ao construir a lista de candidato de referência, é usada a título de exemplo.
[00405] O primeiro bloco vizinho submetido à decisão é B0. Se B0 estiver disponível, a ordem subsequente de blocos vizinhos permanece inalterada. Se B0 não estiver disponível, a ordem subsequente dos blocos vizinhos é alterada para A0, B1, C0, A1. Se B0 não estiver disponível, A0 será o primeiro bloco vizinho submetido à decisão, seguido pelo bloco vizinho A1. Visto que a posição de A1 é próxima àquela de A0, o vetor de movimento de A1 é propenso a ter um valor próximo àquele de A0. A probabilidade de A1 ser selecionado para derivar o preditor de vetor de movimento é reduzida de modo correspondente.
[00406] O modo de estimação de movimento é um modo para transmitir uma diferença de vetor de movimento. Se o valor do vetor de movimento proporcionado no bloco vizinho de referência for próximo àquele do bloco alvo, o escopo de seleção do preditor de vetor de movimento é reduzido resultando em uma falha para estimar um preditor de vetor de movimento apropriado. Por esta razão, se for descoberto que B0 está indisponível, o bloco vizinho B1, distanciado de A0, é selecionado como o bloco vizinho submetido à decisão subsequente a A0 para garantir uma grande diferença no vetor de movimento a partir de A0 e proporcionar um amplo escopo de seleção do preditor de vetor
Petição 870190017641, de 21/02/2019, pág. 170/264
167/190 de movimento como resultado. Portanto, a ordem de decisão é alterada de modo que os blocos vizinhos para proporcionar os preditores de vetor de movimento candidatos sejam distanciados entre si o máximo possível.
Décima primeira modalidade [00407] A décima primeira modalidade proporciona um método de definir, no modo de estimação de movimento, os blocos vizinhos localizados na mesma imagem que o bloco de predição alvo como pertencentes a um grupo de bloco na mesma imagem e selecionar dois blocos vizinhos para representar o grupo de bloco. Fornece-se uma descrição com referência à disposição de blocos vizinhos na Figura 9A. A ordem de decidir a disponibilidade do bloco vizinho ao construir a lista de candidato de referência é definida como B0, B1, C0, A1, A0.
[00408] Primeiramente, a disponibilidade do bloco vizinho é decidida da esquerda para direita na ordem B0, B1, C0, A1, A0 (direção para frente). O bloco vizinho decidido primeiramente como estando disponível é adicionado na lista de candidato de referência como o primeiro bloco vizinho para representar o grupo de bloco. De modo subsequente, a disponibilidade do bloco vizinho é decidida para trás, isto é, da direita para a esquerda, na ordem A0, A1, C0, B1, B0 e o bloco decidido como estando disponível é adicionado na lista de candidato de referência como outro bloco vizinho para representar o grupo de bloco.
[00409] Invertendo-se a ordem de decidir a disponibilidade do bloco vizinho e adicionar os blocos para proporcionar uma distância entre os candidatos, proporcionando, assim, uma grande diferença entre o vetor de movimento do bloco vizinho candidato no canto superior direito do bloco de predição alvo e aquele do canto inferior esquerdo, o escopo de seleção do preditor de vetor de movimento é estendido, e o tamanho de código da diferença de vetor de movimento é reduzido de modo que a eficiência de codificação seja aperfeiçoada.
Petição 870190017641, de 21/02/2019, pág. 171/264
168/190 [00410] Ao decidir a disponibilidade do bloco vizinho na direção para frente e na direção para trás, a decisão sobre o último bloco vizinho na ordem (A0 no caso da direção para frente, e B0 no caso da direção para trás) pode ser omitida. A seleção do último bloco vizinho A0 na decisão para frente pode não ser apropriada porque este é o bloco vizinho que poderia ser identificado como estando disponível na primeira decisão na direção para trás.
[00411] O número de blocos sujeitos à decisão pode ser restrito de modo que somente os três blocos vizinhos até que C0 possa ser examinado na decisão para frente e na decisão para trás. Por exemplo, desde que A0 seja selecionado na decisão para frente e A1 seja selecionado na decisão para trás, os blocos selecionados são propensos a terem o mesmo vetor de movimento, o que estreita o escopo de seleção do preditor de vetor de movimento, com o resultado de que o preditor de vetor de movimento não possa ser derivado de maneira eficaz. A fim de evitar tal seleção de blocos vizinhos próximos entre si, encerra-se uma decisão quanto à disponibilidade em C0 no meio da ordem. A restrição sobre a decisão quanto à disponibilidade reduz o número de bloco vizinho sujeito à decisão e, logo, leva à redução no número de etapas.
Décima segunda modalidade [00412] A décima segunda modalidade proporciona um modo de estimação de movimento com base na nona modalidade em que os blocos vizinhos localizados na mesma imagem que o bloco de predição alvo são colocados meu m grupo de bloco na mesma imagem e um bloco vizinho que representa o grupo de bloco é selecionado. Na décima segunda modalidade, assim como na nona modalidade, a ordem de decidir a disponibilidade do bloco vizinho ao construir a lista de candidato de referência a partir da predição de vetor de movimento e a ordem de palavras-código atribuída aos blocos vizinhos de referência
Petição 870190017641, de 21/02/2019, pág. 172/264
169/190 são definidas separadamente.
[00413] A ordem observada ao construir uma lista de candidato de referência é definida de modo que os blocos vizinhos sejam distanciados entre si para garantir uma diferença grande no vetor de movimento entre o candidato de bloco vizinho à esquerda e o candidato acima, e proporcionar um escopo de seleção amplo do preditor de vetor de movimento como resultado. No caso de atribuir palavras-código, os blocos vizinhos aos quais as informações de codificação são mais propensas e serem iguais àquelas do bloco de predição alvo e que são contíguas ao bloco de predição alvo por uma área grande são palavras-código atribuídas de tamanhos menores em referência aos outros blocos.
[00414] A ordem de decidir a disponibilidade do bloco vizinho ao construir uma lista de candidato de referência a partir da predição de vetor de movimento é definida como B0, A0, A1, C0, B1, T. Entretanto, as palavras-código de tamanhos menores são atribuídas na ordem ascendente A1, B1, B0, A1, C0, T de blocos vizinhos de referência, dando prioridade a blocos vizinhos contíguos ao bloco de predição alvo por uma área maior.
[00415] Primeiramente, fornece-se uma descrição da unidade de predição de vetor de movimento 103 de acordo com a décima segunda modalidade mostrada na Figura 2 ilustrando a configuração do dispositivo de codificação de imagem em movimento 100. A unidade de predição de vetor de movimento 103 é configurada conforme mostrado na Figura 64. A diferença da configuração da Figura 23 descrita na nona modalidade é que uma unidade de controle de candidato de referência 329 é adicionada imediatamente subsequente à unidade de construção de lista de candidato de referência 321.
[00416] Na décima segunda modalidade, seleciona-se o bloco vizinho que representa o grupo de bloco na mesma imagem que o bloco
Petição 870190017641, de 21/02/2019, pág. 173/264
170/190 de predição alvo. A unidade de construção de lista de candidato de referência 321 realiza a mesma operação da oitava modalidade para seleção a partir do grupo de bloco na mesma imagem que o bloco de predição alvo. Neste caso, K blocos vizinhos representativos são selecionados a partir do grupo de bloco na mesma imagem. As informações de codificação de um total de K+1 blocos vizinhos incluindo os K blocos vizinhos selecionados para representar o grupo de bloco na mesma imagem, e um bloco T vizinho a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, é adicionado na lista de candidato de referência.
[00417] A descrição abaixo supõe que K seja 2, e a unidade de construção de lista de candidato de referência 321 adiciona dois blocos vizinhos que representam o grupo de bloco na mesma imagem e um bloco T vizinho a um bloco localizado em outra imagem em um ponto de tempo diferente em uma posição equivalente àquela do bloco de predição alvo, na lista de candidato de referência na ordem declarada.
[00418] A Figura 65 é um fluxograma que mostra a operação da unidade de controle de candidato de referência 329. A lista de candidato de referência construída na unidade de construção de lista de candidato de referência 321 e o número de candidatos de referência NumListCand são inseridos. Primeiramente, NumListCand é examinado (S1500). Se NumListCand for menor que 2 (Sim em S1500), isto é, se o número de candidatos de referência adicionados na lista de candidato de referência for 1, um candidato é exclusivamente identificado de modo que o processo seja encerrado.
[00419] Se NumListCand for igual ou maior que 2 (Não em S1500), o bloco vizinho tendo as informações de codificação CandListLX[1] adicionadas em segundo lugar na lista de candidato de referência é
Petição 870190017641, de 21/02/2019, pág. 174/264
171/190 definido como o bloco N. O primeiro índice na matriz CandListLX para uma lista de candidato de referência inicia com 0. Portanto, CandListLX[1] representa a área de armazenamento para armazenar as segundas informações de codificação a partir do topo da lista de candidato de referência. 0 (predição L0) ou 1 (predição L1), que indicam o tipo de lista de referência, é substituído no sufixo X.
[00420] Toma-se uma decisão quanto a se N é o bloco vizinho A1 ou o bloco vizinho B1 (S1502). Se N não for A1 nem B1 (Não em S1502), o processo é encerrado. Se N for A1 ou B1 (Sim em S1502), as informações de codificação na lista de candidato de referência são submetidas à comutação (S1503). As informações de codificação CandList LX[0] no topo da lista de candidato de referência e as segundas informações de codificação CandList LX[1] alteram seus locais na lista.
[00421] A ordem de construir a lista de candidato de referência é B0, A0, A1, C0, B1. Portanto, se A1 ou B1 for listado em segundo lugar na lista de candidato de referência, o bloco vizinho no topo é atribuído a uma palavra-código mais longa que aquela de A1 ou B1. Isto porque a ordem de atribuir palavras-código aos índices que identificam blocos vizinhos é definida como A1, B1, B0, A0, C0, T e os tamanhos de palavra-código são de modo que A1<B1<B0<A0<C0<T. Portanto, A1 ou B1 é induzido a substituir a entrada no topo da lista de candidato de referência a fim de fornecer uma prioridade maior ao índice com um tamanho de palavra-código menor na lista de candidato de referência de blocos vizinhos e reduzir o tamanho de código do índice como resultado.
[00422] A substituição também é realizada se a ordem de présubstituição for A1, B1 na lista de candidato de referência. Essa substituição coloca B1 com uma palavra-código maior no topo da lista de candidato de referência. No entanto, evita-se que a eficiência de codi
Petição 870190017641, de 21/02/2019, pág. 175/264
172/190 ficação seja deteriorada comparada ao caso onde outro bloco vizinho está no topo da lista de candidato de referência. As etapas descritas anteriormente substituem as entradas na lista de candidato de referência e permitem colocar os índices que identificam os blocos vizinhos com uma palavra-código menor em direção ao topo da lista de candidato de referência. Consequentemente, a eficiência de codificação é aperfeiçoada.
[00423] A unidade de derivação de diferença de vetor de movimento 326 proporcionada imediatamente subsequente à unidade de detecção de informações idênticas 322 usa o vetor de movimento na lista de candidato de referência construída como um preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 deriva uma diferença de vetor de movimento a partir do vetor de movimento estimado pela unidade de estimação de vetor de movimento 102 e pelo preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 fornece a diferença de vetor de movimento derivada à unidade de saída 323. A unidade de saída 323 emite os índices e as diferenças de vetor de movimento na lista de candidato de referência construída. A lista de candidato referenciada é emitida como uma lista MVP e o índice na lista é emitido como um índice MVP.
[00424] A unidade de controle de candidato de referência 329 de acordo com a décima segunda modalidade tendo a mesma função que a unidade de predição de vetor de movimento 103 também é proporcionada na unidade de derivação de vetor de movimento 204 proporcionada no dispositivo de decodificação de imagem em movimento 200 e correspondente à unidade de predição de vetor de movimento 103 proporcionada no dispositivo de codificação de imagem em movimento 100. Portanto, constrói-se a mesma lista de candidato de referência que na unidade de predição de vetor de movimento 103. A lista de
Petição 870190017641, de 21/02/2019, pág. 176/264
173/190 candidato de referência assim construída é emitida à unidade de seleção 325. A unidade de seleção 325 seleciona o bloco vizinho na lista de candidato de referência designado pelo índice para identificar o bloco vizinho de referência decodificado na primeira unidade de decodificação de fluxo de bits 202. A unidade de seleção 325 emite o vetor de movimento a partir das informações de codificação do bloco vizinho na lista selecionada como o preditor de vetor de movimento. A unidade de derivação de diferença de vetor de movimento 326 adiciona o preditor de vetor de movimento à diferença de vetor de movimento decodificada na primeira unidade de decodificação de fluxo de bits 202 a fim de derivar p vetor de movimento. A unidade de seleção 325 fornece o vetor de movimento à unidade de predição de compensação de movimento 207 e fornece as informações de codificação do bloco vizinho na lista selecionada à memória de armazenamento de informações de codificação 210.
[00425] De acordo com as modalidades conforme descrito anteriormente, a memória temporária que armazena as informações do bloco vizinho é reduzida em escala utilizando-se a disposição comum de blocos imediatamente vizinhos referidos no método de predição de vetor de movimento e no método de intercalação. Utilizando-se uma fonte comum de blocos vizinhos de referência para decidir a ordem de prioridade de candidatos dependendo do método de predição, a eficiência de codificação é aperfeiçoada e a redundância é reduzida no método de predição de vetor de movimento e no método de intercalação para interpredição, e a eficiência de decodificação também é aperfeiçoada. Referindo-se ao modo de predição e às informações posicionais do bloco vizinho imediatamente referenciado para decidir a disponibilidade de tal bloco como um alvo de referência, antes de realizar uma compensação de movimento, a frequência de processos para compensação de movimento pode ser reduzida.
Petição 870190017641, de 21/02/2019, pág. 177/264
174/190 [00426] Uma descrição mais específica será fornecida. Para o propósito de reduzir a frequência máxima de acessos de memória, tamanho de memória, e volume de processamento (tempo de processamento) que podem ser assumidos, o número de candidatos é reduzido definindo-se somente um bloco vizinho ao bloco alvo à esquerda e um bloco vizinho acima, conforme mostrado na Figura 9A. Limitando-se os candidatos antecipadamente conforme descrito anteriormente, a frequência de acessos de memória, tamanho de memória, e volume de processamento (tempo de processamento) podem ser vantajosamente reduzidos sem reduzir substancialmente a eficiência de codificação.
[00427] As modalidades são capazes de reduzir a frequência de acessos de memória, tamanho de memória, e volume de processamento (tempo de processamento) e, ademais, reduzir o tamanho de código dos índices de intercalação e índices MVP de modo vantajoso. Outro aspecto das modalidades é que os candidatos comumente posicionados são usados no modo de intercalação e na estimação de movimento de modo que a frequência de acessos de memória, tamanho de memória, e volume de processamento (tempo de processamento) sejam adicionalmente reduzidos. Ademais, o armazenamento de candidatos na lista de candidato em uma disposição adequada à natureza do modo de intercalação e do modo de estimação de movimento proporciona um benefício no modo de intercalação em que o tamanho de código de índices de intercalação é reduzido e um benefício no modo de estimação de movimento em que o tamanho de código de índices MVP e das diferenças de vetor de movimento é reduzido. Desse modo, aperfeiçoa-se a eficiência de codificação.
[00428] A presente invenção não se limita às modalidades descritas anteriormente e abrange, por exemplo, um programa de codificação/decodificação de imagem em movimento para implementar as funções dos dispositivos de codificação/decodificação de imagem em
Petição 870190017641, de 21/02/2019, pág. 178/264
175/190 movimento em um computador. O programa de codificação/decodificação de imagem em movimento pode ser lido a partir de um meio de gravação e importado em um computador. Alternativamente, o programa pode ser transmitido por uma rede de comunicação e importado em um computador.
[00429] O fluxo de bits de imagens em movimento emitido a partir do dispositivo de codificação de imagem em movimento de acordo com qualquer uma das modalidades tem um formato predefinido de modo que possa ser decodificado de acordo com o método de codificação usado nas modalidades. O dispositivo de decodificação de imagem em movimento compatível ao dispositivo de codificação de imagem em movimento é capaz de decodificar o fluxo de bits do formato de dados predefinido.
[00430] Se uma rede com ou sem fio for usada para trocar fluxos de bits entre o dispositivo de codificação de imagem em movimento e o dispositivo de decodificação de imagem em movimento, o fluxo de bits pode ser convertido em um formato de dados adequado ao modo de transmissão pelo canal de comunicação e ser transmitido de modo correspondente. Neste caso, deve-se proporcionar um dispositivo de transmissão de imagem em movimento para converter os fluxos de bits emitidos a partir do dispositivo de codificação de imagem em movimento em dados codificados de um formato de dados adequado ao modo de transmissão pelo canal de comunicação e para transmitir os fluxos de bits pela rede, e um dispositivo de recepção de imagem em movimento para receber os fluxos de bits a partir da rede para recuperar o fluxo de bits e fornecer os fluxos de bits recuperados ao dispositivo de decodificação de imagem em movimento.
[00431] O dispositivo de transmissão de imagem em movimento inclui uma memória para armazenar em buffer os fluxos de bits emitidos a partir do dispositivo de codificação de imagem em movimento,
Petição 870190017641, de 21/02/2019, pág. 179/264
176/190 uma unidade de processamento de pacote para empacotar os fluxos de bits, e uma unidade de transmissão para transmitir os fluxos de bits empacotados pela rede. O dispositivo de recepção de imagem em movimento inclui uma unidade de recepção para receber os dados codificados empacotados pela rede, uma memória para armazenar em buffer os dados codificados recebidos, e uma unidade de processamento de pacote para submeter os dados codificados a um processo de pacote a fim de gerar fluxos de bits e proporcionar os fluxos de bits gerados ao dispositivo de decodificação de imagem em movimento.
[00432] Forneceu-se acima uma explicação baseada nas modalidades exemplificadoras. Pretende-se que a modalidade seja ilustrativa somente e ficará obvio aos indivíduos versados na técnica que várias modificações para constituir elementos e processos podem ser desenvolvidas e que tais modificações também estão no escopo da presente invenção.
Item 1 [00433] Dispositivo de codificação de imagem adaptado para codificar cada um dos blocos obtidos particionando-se cada imagem de imagens em movimento, utilizando-se vetores de movimento, que compreende: uma unidade de aquisição configurada para adquirir informações de codificação em uma pluralidade de candidatos de bloco de referência para o bloco sujeito à codificação; uma primeira unidade de detecção de modo configurada para construir, em um primeiro modo de interpredição que usa as informações sobre um vetor de movimento proporcionado nas informações de codificação de um bloco de referência identificado por um índice, uma primeira lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, atribuir índices para identificar os candidatos de bloco de referência adicionados na primeira lista de candidato, e emitir os índices da pluralidade de candidatos de bloco
Petição 870190017641, de 21/02/2019, pág. 180/264
177/190 de referência; uma segunda unidade de detecção de modo configurada para construir, em um segundo modo de interpredição que usa uma diferença de preditor de vetor de movimento entre um preditor de vetor de movimento com base nas informações sobre um vetor de movimento proporcionado nas informações de codificação de um bloco de referência identificado por um índice e um vetor de movimento do bloco sujeito à codificação, uma segunda lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, atribuir índices para identificar candidatos de bloco de referência adicionados na segunda lista de candidato, e emitir os índices da pluralidade de candidatos de bloco de referência e a diferença de vetor de movimento; uma unidade de decisão de método de predição configurada para decidir um bloco de referência e um modo de interpredição para cada bloco sujeito à codificação, com base nas saídas das unidades de detecção de primeiro e segundo modo; e uma unidade de geração de fluxo de bits configurada para codificar o índice do bloco de referência decidido pela unidade de decisão de método de predição, sendo que as informações de modo de predição indicam o modo de interpredição decidido pela unidade de decisão de método de predição, e a diferença de vetor de movimento correspondente ao bloco de referência, sendo que a diferença de vetor de movimento é codificada quando a unidade de decisão de método de predição decidir sobre o segundo modo de interpredição, em que as unidades de detecção de primeiro e segundo modo usam uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
Item 2 [00434] Dispositivo de codificação de imagem, de acordo o Item 1, em que quanto maior for a primeira ordem predeterminada, menor será o tamanho de uma palavra-código do índice atribuído pela primeira
Petição 870190017641, de 21/02/2019, pág. 181/264
178/190 unidade de detecção de modo ao candidato de bloco de referência. Item 3 [00435] Dispositivo de codificação de imagem, de acordo o Item 1 ou Item 2, em que a primeira ordem predeterminada de dispor a pluralidade de candidatos de bloco de referência na primeira lista de candidato construída pela primeira unidade de detecção de modo difere da segunda ordem predeterminada de dispor a pluralidade de candidatos de bloco de referência na segunda lista de candidato construída pela segunda unidade de detecção de modo.
Item 4 [00436] Dispositivo de codificação de imagem, de acordo com um os Itens 1 a 3, em que a primeira unidade de detecção de modo constrói a primeira lista de candidato da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado, e a segunda unidade de detecção de modo constrói a segunda lista de candidato da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado.
Item 5 [00437] Dispositivo de codificação de imagem, de acordo com um os Itens 1 a 4, em que a pluralidade de candidatos de bloco de referência inclui blocos codificados espacialmente vizinhos ao bloco sujeito à codificação e blocos incluídos em uma imagem em um ponto de tempo diferente de uma imagem incluindo o bloco sujeito à codificação, em que as unidades de detecção de primeiro e segundo modo dispõem a pluralidade de candidatos de bloco de referência de modo que uma posição de um bloco incluído em uma imagem em um ponto de tempo diferente na primeira e na segunda ordens predeterminadas seja menor que uma posição de um bloco espacialmente vizinho na primeira e na segunda ordens predeterminadas.
Petição 870190017641, de 21/02/2019, pág. 182/264
179/190
Item 6 [00438] Dispositivo de codificação de imagem, de acordo o Item 5, em que a primeira unidade de detecção de modo constrói a primeira lista de candidato de acordo com uma primeira ordem predeterminada proporcionando-se um imite superior predeterminado ao número de blocos codificados espacialmente vizinhos dispostos na primeira lista de candidato, e utilizando-se tantos blocos de referência quanto definidos pelo limite superior na primeira ordem predeterminada.
Item 7 [00439] Dispositivo de codificação de imagem, de acordo o Item 5 ou Item 6, em que a segunda unidade de detecção de modo constrói a segunda lista de candidato, definindo-se aqueles entre a pluralidade de blocos codificados espacialmente vizinhos dispostos à esquerda do bloco sujeito à codificação como pertencentes a um grupo de bloco à esquerda, define aqueles blocos dispostos acima do bloco sujeito à codificação como pertencentes a um grupo de bloco acima, deriva um candidato que representa cada um dos grupos de bloco, e constrói a segunda lista de candidato definindo-se a segunda ordem predeterminada de modo que o candidato do grupo de bloco à esquerda e o candidato do grupo de bloco acima sejam dispostos na ordem declarada. Item 8 [00440] Dispositivo de codificação de imagem, de acordo com um os Itens 1 a 7, em que a primeira unidade de detecção de modo define um número máximo de candidatos de bloco de referência dispostos na primeira lista de candidato, e constrói a primeira lista de candidato com base no número máximo de candidatos de bloco de referência, e em que a unidade de geração de fluxo de bits codifica as informações que indicam o número máximo de candidatos de bloco de referência e inclui as informações no fluxo de bits.
Item 9
Petição 870190017641, de 21/02/2019, pág. 183/264
180/190 [00441] Método de codificação de imagem adaptado para codificar cada um dos blocos obtidos particionando-se cada imagem de imagens em movimento, utilizando-se vetores de movimento, que compreende: adquirir informações de codificação sobre uma pluralidade de candidatos de bloco de referência para o bloco sujeito à codificação; constrói, em um primeiro modo de interpredição que usa informações sobre um vetor de movimento proporcionado nas informações de codificação de um bloco de referência identificado por um índice, uma primeira lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, atribuir os índices para identificar candidatos de bloco de referência adicionados na primeira lista de candidato, e emitir os índices da pluralidade de candidatos de bloco de referência; constrói, em um segundo modo de interpredição que usa uma diferença de preditor de vetor de movimento entre um preditor de vetor de movimento com base nas informações sobre um vetor de movimento proporcionado nas informações de codificação de um bloco de referência identificado por um índice e um vetor de movimento do bloco sujeito à codificação, uma segunda lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com a segunda ordem predeterminada, atribuir índices para identificar candidatos de bloco de referência adicionados na segunda lista de candidato, e emitir os índices da pluralidade de candidatos de bloco de referência e a diferença de vetor de movimento; decidir um bloco de referência e um modo de interpredição para cada bloco sujeito à codificação, com base nas saídas a partir da construção da primeira e da segunda listas de candidato; e codificar o índice do bloco de referência decidido decidindo-se um bloco de referência, sendo que as informações de modo de predição indicam o modo de interpredição decidido decidindo-se um bloco de referência, e a diferença de vetor de movimento correspondente ao bloco de referên
Petição 870190017641, de 21/02/2019, pág. 184/264
181/190 cia, sendo que a diferença de vetor de movimento é codificada quando o segundo modo de interpredição for decidido, em que a construção da primeira e da segunda lista de candidatos usa uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
Item 10 [00442] Programa de codificação de imagem embutido em um meio de gravação legível por computador não transitório e adaptado para codificar cada um dos blocos obtidos particionando-se cada imagem de imagens em movimento, utilizando-se vetores de movimento, que compreende: um primeiro módulo configurado para adquirir informações de codificação sobre uma pluralidade de candidatos de bloco de referência para o bloco sujeito à codificação; um segundo módulo configurado para construir, em um primeiro modo de interpredição que usa informações sobre um vetor de movimento proporcionado nas informações de codificação de um bloco de referência identificado por um índice, uma primeira lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, atribuir índices para identificar candidatos de bloco de referência adicionados na primeira lista de candidato, e emitir os índices da pluralidade de candidatos de bloco de referência; um terceiro módulo configurado para construir, em um segundo modo de interpredição que usa uma diferença de preditor de vetor de movimento entre um preditor de vetor de movimento com base nas informações sobre um vetor de movimento proporcionado nas informações de codificação de um bloco de referência identificado por um índice e um vetor de movimento do bloco sujeito à codificação, uma segunda lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com a segunda ordem predeterminada, atribuir índices para identificar candidatos de bloco de referência adicionados na segunda
Petição 870190017641, de 21/02/2019, pág. 185/264
182/190 lista de candidato, e emitir os índices da pluralidade de candidatos de bloco de referência e a diferença de vetor de movimento; um quarto módulo configurado para decidir um bloco de referência e um modo de interpredição para cada bloco sujeito à codificação, com base nas saídas do primeiro e do segundo módulos; e um quinto módulo configurado para codificar o índice do bloco de referência decidido pelo quarto módulo, informações de modo de predição que indicam o modo de interpredição decidido pelo quarto módulo, e a diferença de vetor de movimento correspondente ao bloco de referência, sendo que a diferença de vetor de movimento é codificada quando o quarto módulo decidir sobre o segundo modo de interpredição, em que o segundo e o terceiro módulos usam uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
Item 11 [00443] Dispositivo de decodificação de imagem adaptado para decodificar um fluxo de bits codificado em unidades de blocos obtidos particionando-se cada imagem de imagens em movimento, utilizandose vetores de movimento, que compreende: uma unidade de decodificação de fluxo de bits configurada para decodificar o fluxo de bits para derivar, para cada bloco sujeito à decodificação, sendo que as informações de modo de predição indicam um modo de interpredição e um índice que indica um bloco de referência que o bloco sujeito à decodificação se refere a, ou derivar informações de modo de predição que indicam um modo de interpredição, um índice que indica um bloco de referência que o bloco sujeito à decodificação se refere a, e uma diferença de vetor de movimento associada ao bloco de referência; uma unidade de aquisição configurada para adquirir informações de codificação sobre uma pluralidade de candidatos de bloco de referência para o bloco sujeito à decodificação; uma primeira unidade de saída de modo configurada para construir, quando o modo de interpredição in
Petição 870190017641, de 21/02/2019, pág. 186/264
183/190 dicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits indicar um primeiro modo de interpredição que usa informações sobre um vetor de movimento proporcionado nas informações de codificação do bloco de referência identificado pelo índice, uma primeira lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, identificar um bloco de referência referido pelo bloco sujeito à decodificação na primeira lista de candidato referindo-se ao índice do bloco de referência decodificado pela unidade de decodificação de fluxo de bits, e emitir as informações de codificação; uma segunda unidade de saída de modo configurada para construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits indicar um segundo modo de interpredição que usa uma diferença de vetor de movimento associada ao bloco de referência identificado pelo índice, uma segunda lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, identificar um bloco de referência referido pelo bloco sujeito à decodificação na segunda lista de candidato referindo-se ao índice do bloco de referência decodificado pela unidade de decodificação de fluxo de bits, e derivar e emitir um vetor de movimento para o bloco sujeito à decodificação a partir do preditor de vetor de movimento com base nas informações sobre o vetor de movimento proporcionado nas informações de codificação do bloco de referência e a partir da diferença de vetor de movimento decodificada pela unidade de decodificação de fluxo de bits; e uma unidade de predição de compensação de movimento configurada para realizar uma compensação de movimento usando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits, referindo-se a informações emitidas a par
Petição 870190017641, de 21/02/2019, pág. 187/264
184/190 tir da primeira unidade de saída de modo ou da segunda unidade de saída de modo, a fim de gerar uma imagem de predição para o bloco sujeito à decodificação, em que a primeira e a unidades de saída de segundo modo usam uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência.
Item 12 [00444] Dispositivo de decodificação de imagem, de acordo com o Item 11, em que quanto maior a primeira ordem predeterminada, menor será o tamanho de uma palavra-código do índice atribuída pela primeira unidade de saída de modo ao candidato de bloco de referência.
Item 13 [00445] Dispositivo de decodificação de imagem, de acordo com o Item 11 ou Item 12, em que a primeira ordem predeterminada de dispor os candidatos de bloco de referência na primeira lista de candidato construída pela primeira unidade de saída de modo difere da segunda ordem predeterminada de dispor os candidatos de bloco de referência na segunda lista de candidato gerada pela segunda unidade de saída de modo.
Item 14 [00446] Dispositivo de decodificação de imagem, de acordo com um dos Itens 11 a 13, em que a primeira unidade de detecção de modo constrói a primeira lista de candidato da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado, e a segunda unidade de detecção de modo constrói a segunda lista de candidato da pluralidade de candidatos de bloco de referência de modo que o número de candidatos de bloco de referência seja limitado.
Item 15 [00447] Dispositivo de decodificação de imagem, de acordo com um
Petição 870190017641, de 21/02/2019, pág. 188/264
185/190 dos Itens 11 a 14, em que a pluralidade de candidatos de bloco de referência inclui blocos decodificados espacialmente vizinhos ao bloco sujeito à decodificação e blocos incluídos em uma imagem em um ponto de tempo diferente a partir de uma imagem incluindo o bloco sujeito à decodificação, e em que a primeira unidade de saída de modo e a segunda unidade de saída de modo dispõem a pluralidade de candidatos de bloco de referência de modo que uma posição de um bloco incluído em uma imagem em um ponto de tempo diferente na primeira e na segunda ordens predeterminadas seja menor que uma posição de um bloco espacialmente vizinho na primeira e na segunda ordens predeterminadas.
Item 16 [00448] Dispositivo de decodificação de imagem, de acordo com o Item 15, em que a primeira unidade de saída de modo constrói a primeira lista de candidato de acordo com uma primeira ordem predeterminada proporcionando-se um limite superior predeterminado ao número de blocos decodificados espacialmente vizinhos dispostos na primeira lista de candidato, e utilizando-se tantos blocos de referência quanto definidos pelo limite superior na primeira ordem predeterminada.
Item 17 [00449] Dispositivo de decodificação de imagem, de acordo com Item 15 ou Item 16, em que a segunda unidade de saída de modo constrói a segunda lista de candidato, definindo-se aqueles entre uma pluralidade de blocos decodificados espacialmente vizinhos dispostos à esquerda do bloco sujeito à decodificação como pertencentes a um grupo de bloco à esquerda, define aqueles blocos dispostos acima do bloco sujeito à decodificação como pertencentes a um grupo de bloco acima, deriva um candidato que representa cada um dos grupos de bloco, e constrói a segunda lista de candidato definindo-se a segunda
Petição 870190017641, de 21/02/2019, pág. 189/264
186/190 ordem predeterminada de modo que o candidato do grupo de bloco à esquerda e o candidato do grupo de bloco acima sejam dispostos na ordem declarada.
Item 18 [00450] Dispositivo de decodificação de imagem, de acordo com um dos Itens 11 a 17, em que a primeira unidade de saída de modo constrói a primeira lista de candidato com base em um número máximo de candidatos de bloco de referência dispostos na primeira lista de candidato, sendo que o número máximo é derivado do fluxo de bits pela unidade de decodificação de fluxo de bits.
Item 19 [00451] Método de decodificação de imagem adaptado para decodificar um fluxo de bits codificado em unidades de blocos obtidos particionando-se cada imagem de imagens em movimento, utilizando-se vetores de movimento, que compreende: decodificar o fluxo de bits para derivar, para cada bloco sujeito à decodificação, informações de modo de predição que indicam um modo de interpredição e um índice que indica um bloco de referência que o bloco sujeito à decodificação se refere a, ou derivar informações de modo de predição que indicam um modo de interpredição, um índice que indica um bloco de referência que o bloco sujeito à decodificação se refere a, e uma diferença de vetor de movimento associada ao bloco de referência; adquirir informações de codificação sobre uma pluralidade de candidatos de bloco de referência para o bloco sujeito à decodificação; construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela decodificação indicar um primeiro modo de interpredição que usa informações sobre um vetor de movimento proporcionado nas informações de codificação do bloco de referência identificadas pelo índice, uma primeira lista de candidato da pluralidade de candidatos de bloco de referência de acordo com uma primeira
Petição 870190017641, de 21/02/2019, pág. 190/264
187/190 ordem predeterminada, identificar um bloco de referência referido pelo bloco sujeito à decodificação na primeira lista de candidato referindose ao índice do bloco de referência decodificado pela decodificação, e emitir as informações de codificação; construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela decodificação indicar um segundo modo de interpredição que usa uma diferença de vetor de movimento associada ao bloco de referência identificado pelo índice, uma segunda lista de candidato da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, identificar um bloco de referência referido pelo bloco sujeito à decodificação na segunda lista de candidato referindo-se ao índice do bloco de referência decodificado pela decodificação, e derivar e emitir um vetor de movimento para o bloco sujeito à decodificação a partir do preditor de vetor de movimento com base nas informações sobre o vetor de movimento proporcionado nas informações de codificação do bloco de referência e a partir da diferença de vetor de movimento decodificada pela decodificação; e realizar uma compensação de movimento usando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela decodificação, referindo-se às informações emitidas a partir da construção da primeira e da segunda listas de candidato, a fim de gerar uma imagem predita para o bloco sujeito à decodificação, em que a construção da primeira e da segunda listas de candidato usa uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência. Item 20 [00452] Programa de decodificação de imagem embutido em um meio de gravação legível por computador não transitório e adaptado para decodificar um fluxo de bits codificado em unidades de blocos obtidos particionando-se cada imagem de imagens em movimento, utilizando-se vetores de movimento, que compreende: um primeiro
Petição 870190017641, de 21/02/2019, pág. 191/264
188/190 módulo configurado para decodificar o fluxo de bits para derivar, para cada bloco sujeito à decodificação, informações de modo de predição que indicam um modo de interpredição e um índice que indica um bloco de referência que o bloco sujeito à decodificação se refere a, ou derivar informações de modo de predição que indicam um modo de interpredição, um índice que indica um bloco de referência que o bloco sujeito à decodificação se refere a, e uma diferença de vetor de movimento associada ao bloco de referência; um segundo módulo configurado para adquirir informações de codificação sobre uma pluralidade de candidatos de bloco de referência para o bloco sujeito à decodificação; um terceiro módulo configurado para construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pelo primeiro módulo indicar um primeiro modo de interpredição que usa informações sobre um vetor de movimento proporcionado nas informações de codificação do bloco de referência identificado pelo índice, uma primeira lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, identificar um bloco de referência referido pelo bloco sujeito à decodificação na primeira lista de candidato referindo-se ao índice do bloco de referência decodificado pelo primeiro módulo, e emitir as informações de codificação; um quarto módulo configurado para construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pelo primeiro módulo indicar um segundo modo de interpredição que usa uma diferença de vetor de movimento associada ao bloco de referência identificado pelo índice, uma segunda lista de candidato a partir da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, identificar um bloco de referência referido pelo bloco sujeito à decodificação na segunda lista de candidato referindo-se ao índice do bloco de referência decodificado pelo primeiro módulo, e de
Petição 870190017641, de 21/02/2019, pág. 192/264
189/190 rivar e emitir um vetor de movimento para o bloco sujeito à decodificação a partir do preditor de vetor de movimento com base nas informações sobre o vetor de movimento proporcionado nas informações de codificação do bloco de referência e a partir da diferença de vetor de movimento decodificada pelo primeiro módulo; e um quinto módulo configurado para realizar uma compensação de movimento usando o modo de interpredição indicado pelas informações de modo de predição decodificadas pelo primeiro módulo, referindo-se às informações emitidas a partir do terceiro módulo ou do quarto módulo, a fim de gerar uma imagem de predição para o bloco sujeito à decodificação, em que o terceiro e o quarto módulos usam uma pluralidade de blocos comuns como a pluralidade de candidatos de bloco de referência. DESCRIÇÃO DAS REFERÊNCIAS NUMÉRICAS [00453] 100 dispositivo de codificação de imagem em movimento,
101 memória de imagem, 102 unidade de estimação de vetor de movimento, 103 unidade de predição de vetor de movimento, 104 unidade de detecção de informações de interpredição, 105 unidade de predição de compensação de movimento, 106 unidade de detecção de intercalação, 107 unidade de decisão de método de predição, 108 comutador, 109 primeira unidade de geração de fluxo de bits, 110 unidade de geração de sinal residual, 111 unidade de transformada ortogonal/quantização, 112 unidade de quantização inversa/transformada ortogonal inversa, 113 unidade de sobreposição de sinal de imagem decodificada, 114 memória de armazenamento de informações de codificação, 115 memória de imagem decodificada, 116 segunda unidade de geração de fluxo de bits, 117 unidade de multiplexação de fluxo de bits, 200 dispositivo de decodificação de imagem em movimento, 201 unidade de demutiplexação fluxo de bits, 202 primeira unidade de decodificação de fluxo de bits, 203 segunda unidade de decodificação de fluxo de bits, 204 unidade de derivação de vetor de movimento, 205
Petição 870190017641, de 21/02/2019, pág. 193/264
190/190 unidade de detecção de informações de interpredição, 206 unidade de decisão de intercalação, 207 unidade de predição de compensação de movimento, 208 unidade de quantização inversa/transformada ortogonal inversa, 209 unidade de sobreposição de sinal de imagem decodificada, 210 memória de armazenamento de informações de codificação, 211 memória de imagem decodificada, 212 switch, 301 unidade de detecção de posição de bloco alvo, 302 unidade de designação de bloco vizinho, 303 memória temporária, 310 unidade de derivação de informações de codificação, 311 unidade de construção de lista de candidato de referência, 312 unidade de detecção de informações idênticas, 313 unidade de saída, 314 memória de armazenamento de lista de candidato de referência, 315 unidade de seleção, 318 unidade de restrição de candidato de referência, 320 unidade de derivação de informações de codificação, 321 unidade de construção de lista de candidato de referência, 322 unidade de detecção de informações idênticas, 323 unidade de saída, 324 memória de armazenamento de lista de candidato de referência, 326 unidade de derivação de diferença de vetor de movimento, 328 unidade de restrição de candidato de referência, 329 unidade de controle de candidato de referência APLICABILIDADE INDUSTRIAL [00454] A presente invenção é aplicável à tecnologia de codificação e decodificação de imagem em movimento que utiliza predição de compensação de movimento.

Claims (3)

  1. REIVINDICAÇÕES
    1. Dispositivo de decodificação de imagem adaptado para decodificar um fluxo de bits codificado em unidades de blocos obtidas particionando cada imagem de imagens em movimento, utilizando vetores de movimento, caracterizado pelo fato de que compreende:
    uma unidade de decodificação de fluxo de bits (202) configurada para decodificar o fluxo de bits para derivar, para cada bloco sujeito à decodificação, informações de modo de predição indicando um modo de interpredição e um índice indicando um bloco de referência que o bloco sujeito à decodificação se refere, ou derivar informações de modo de predição indicando um modo de interpredição, um índice indicando um bloco de referência que o bloco sujeito à decodificação se refere, e uma diferença de vetor de movimento associada com o bloco de referência;
    uma unidade de aquisição (205) configurada para adquirir informações de codificação sobre uma pluralidade de candidatos de bloco de referência para o bloco sujeito à decodificação;
    uma primeira unidade de saída de modo (206) configurada para construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits (202) indicar um primeiro modo de interpredição que usa informações em um vetor de movimento proporcionado nas informações de codificação do bloco de referência identificado pelo índice, uma primeira lista de candidato da pluralidade de candidatos de bloco de referência de acordo com uma primeira ordem predeterminada, para identificar um bloco de referência referido pelo bloco sujeito à decodificação na primeira lista de candidato referindo-se ao índice do bloco de referência decodificado pela unidade de decodificação de fluxo de bits, e emitir as informações de codificação;
    uma segunda unidade de saída de modo (204) configurada
    Petição 870190017641, de 21/02/2019, pág. 195/264
  2. 2/3 para construir, quando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits (202) indicar um segundo modo de interpredição que usa uma diferença de vetor de movimento associada com o bloco de referência identificado pelo índice, uma segunda lista de candidato da pluralidade de candidatos de bloco de referência de acordo com uma segunda ordem predeterminada, para identificar um bloco de referência referido pelo bloco sujeito à decodificação na segunda lista de candidato referindo-se ao índice do bloco de referência decodificado pela unidade de decodificação de fluxo de bits (202), e derivar e emitir um vetor de movimento para o bloco sujeito à decodificação a partir do preditor de vetor de movimento com base nas informações sobre o vetor de movimento proporcionado nas informações de codificação do bloco de referência e a partir da diferença de vetor de movimento decodificada pela unidade de decodificação de fluxo de bits; e uma unidade de predição de compensação de movimento (207) configurada para realizar compensação de movimento usando o modo de interpredição indicado pelas informações de modo de predição decodificadas pela unidade de decodificação de fluxo de bits (202), referindo-se às informações emitidas a partir da primeira unidade de saída de modo (206) ou da segunda unidade de saída de modo (204), a fim de gerar uma imagem de predição para o bloco sujeito à decodificação, em que a primeira unidade de saída de modo e a segunda unidade de saída de modo (206, 204) usam uma pluralidade de blocos comuns à pluralidade de candidatos de bloco de referência, e em que a primeira ordem predeterminada de dispor os candidatos de bloco de referência na primeira lista de candidato construída pela primeira unidade de saída de modo (206) difere da segunda ordem predeterminada de dispor os candidatos de bloco de referência
    Petição 870190017641, de 21/02/2019, pág. 196/264
  3. 3/3 na segunda lista de candidato construída pela segunda unidade de saída de modo (204).
BR112013033818A 2011-06-30 2012-06-26 dispositivo de decodificação de imagem BR112013033818B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011146770A JP5246303B2 (ja) 2011-06-30 2011-06-30 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP2011146769A JP5644701B2 (ja) 2011-06-30 2011-06-30 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
PCT/JP2012/004135 WO2013001793A1 (ja) 2011-06-30 2012-06-26 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム

Publications (2)

Publication Number Publication Date
BR112013033818A2 BR112013033818A2 (pt) 2017-02-14
BR112013033818B1 true BR112013033818B1 (pt) 2020-02-04

Family

ID=47423713

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013033818A BR112013033818B1 (pt) 2011-06-30 2012-06-26 dispositivo de decodificação de imagem

Country Status (9)

Country Link
US (5) US8982956B2 (pt)
EP (5) EP3419289B1 (pt)
KR (5) KR101598306B1 (pt)
CN (5) CN106851267B (pt)
BR (1) BR112013033818B1 (pt)
HU (3) HUE053035T2 (pt)
PL (3) PL3419289T3 (pt)
TW (5) TW201608879A (pt)
WO (1) WO2013001793A1 (pt)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3627839B1 (en) 2011-03-21 2021-10-20 LG Electronics Inc. Method for selecting motion vector predictor
EP3419289B1 (en) * 2011-06-30 2020-12-23 JVC KENWOOD Corporation Image decoding device, image decoding method, and image decoding program
JP6422011B2 (ja) 2012-05-11 2018-11-14 サン パテント トラスト 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
US9483812B2 (en) * 2013-03-25 2016-11-01 Imax Corporation Enhancing motion pictures with accurate motion information
KR20140122195A (ko) * 2013-04-05 2014-10-17 삼성전자주식회사 인터 레이어 복호화 및 부호화 방법 및 장치를 위한 인터 예측 후보 결정 방법
US10070070B2 (en) * 2014-05-28 2018-09-04 Mediatek Inc. Video processing apparatus with transform unit size selection, mode information unit size selection and/or picture width/height decision, and related video processing method thereof
US20150350686A1 (en) * 2014-05-29 2015-12-03 Apple Inc. Preencoder assisted video encoding
KR20170078672A (ko) 2014-10-31 2017-07-07 삼성전자주식회사 고정밀 스킵 부호화를 이용한 비디오 부호화 장치 및 비디오 복호화 장치 및 그 방법
KR20160131526A (ko) * 2015-05-07 2016-11-16 삼성전자주식회사 시스템 온 칩, 상기 시스템 온 칩을 포함하는 디스플레이 시스템, 및 상기 디스플레이 시스템의 동작 방법
CN108353185B (zh) * 2015-08-28 2022-09-13 株式会社Kt 用于处理视频信号的方法和设备
EP3416623B1 (en) 2016-02-15 2021-08-11 University of Georgia Research Foundation, Inc. Ipa-3-loaded liposomes and methods of use thereof
EP4072141A1 (en) 2016-03-24 2022-10-12 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding video signal
US20190158860A1 (en) * 2016-05-13 2019-05-23 Sharp Kabushiki Kaisha Video decoding device
TWI610558B (zh) * 2016-05-26 2018-01-01 晨星半導體股份有限公司 位元分配方法及視訊編碼裝置
WO2019003993A1 (ja) 2017-06-26 2019-01-03 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN111279388A (zh) * 2017-10-25 2020-06-12 株式会社索思未来 动态图像处理装置、动态图像处理系统、以及动态图像处理方法
WO2019112072A1 (ko) * 2017-12-04 2019-06-13 엘지전자 주식회사 영상 코딩 시스템에서 수정된 움직임 정보 후보 리스트에 기반한 영상 디코딩 방법 및 장치
US10491897B2 (en) 2018-04-13 2019-11-26 Google Llc Spatially adaptive quantization-aware deblocking filter
US10469869B1 (en) * 2018-06-01 2019-11-05 Tencent America LLC Method and apparatus for video coding
WO2020003274A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
WO2020003261A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Selection from multiple luts
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
GB2588006B (en) 2018-06-29 2023-03-22 Beijing Bytedance Network Tech Co Ltd Number of motion candidates in a look up table to be checked according to mode
CN110662054B (zh) 2018-06-29 2023-01-06 北京字节跳动网络技术有限公司 用于视频处理的方法、装置、计算机可读存储介质
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
EP4325861A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
WO2020008346A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Rules on updating luts
BR112021001384A2 (pt) * 2018-08-06 2021-04-20 Electronics And Telecommunications Research Institute método e dispositivo para codificação/decodificação de imagens, e mídia de gravação que armazena fluxo de bits
CN110868601B (zh) * 2018-08-28 2024-03-15 华为技术有限公司 帧间预测方法、装置以及视频编码器和视频解码器
WO2020053798A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
CN118555391A (zh) * 2018-09-21 2024-08-27 韩国电子通信研究院 图像编码/解码方法和用于发送压缩视频数据的装置
WO2020094079A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Block size dependent storage of motion information
US10887611B2 (en) * 2018-12-27 2021-01-05 Qualcomm Incorporated Pruning for illumination compensation mode
EP3905685B1 (en) * 2018-12-28 2024-03-20 JVCKenwood Corporation Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
US11595680B2 (en) * 2018-12-28 2023-02-28 Godo Kaisha Ip Bridge 1 Picture decoding device, picture decoding method, and picture decoding program with history-based candidate selection
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN110809161B (zh) * 2019-03-11 2020-12-29 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法及装置
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
WO2020238706A1 (en) * 2019-05-24 2020-12-03 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using for ibc merge list

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3703836C2 (de) 1987-02-07 1995-12-21 Heinrich Lindert Bearbeitungsanlage für Geflügelfleisch
US5883678A (en) * 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
JP4034380B2 (ja) * 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
JP3637996B2 (ja) 1997-03-28 2005-04-13 シャープ株式会社 領域統合が可能な動き補償フレーム間予測方式を用いた動画像符号化・復号化装置
KR100407691B1 (ko) * 2000-12-21 2003-12-01 한국전자통신연구원 계층탐색을 이용한 움직임 추정장치 및 방법
JP3823767B2 (ja) * 2001-07-18 2006-09-20 日本電信電話株式会社 動画像の前景背景領域分離方法、及びその方法を用いた条件付画素補填による動画像符号化方法
DE10300048B4 (de) * 2002-01-05 2005-05-12 Samsung Electronics Co., Ltd., Suwon Verfahren und Vorrichtung zur Bildcodierung und -decodierung
US7596279B2 (en) * 2002-04-26 2009-09-29 Ntt Docomo, Inc. Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, and image decoding program
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
JP4213646B2 (ja) * 2003-12-26 2009-01-21 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム。
KR100878827B1 (ko) * 2005-07-08 2009-01-14 엘지전자 주식회사 영상 신호의 코딩정보를 압축/해제하기 위해 모델링하는방법
KR101336475B1 (ko) * 2005-09-26 2013-12-04 미쓰비시덴키 가부시키가이샤 동화상 부호화 장치 및 동화상 복호 장치
KR20070056627A (ko) * 2005-11-30 2007-06-04 삼성전자주식회사 움직임 추정장치, 움직임 추정방법 및 전역 움직임추정장치
CA2674438C (en) * 2007-01-08 2013-07-09 Nokia Corporation Improved inter-layer prediction for extended spatial scalability in video coding
KR100809354B1 (ko) * 2007-02-02 2008-03-05 삼성전자주식회사 복원된 프레임의 프레임율을 업컨버팅하는 장치 및 방법
JP5025286B2 (ja) * 2007-02-28 2012-09-12 シャープ株式会社 符号化装置及び復号装置
US20100266042A1 (en) * 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
CN100571370C (zh) 2007-05-24 2009-12-16 中兴通讯股份有限公司 将传统iptv终端接入ims域的装置、系统和方法
CN100496127C (zh) * 2007-06-05 2009-06-03 南京大学 Mpeg-2到h.264码的快速转换方法
US8139875B2 (en) * 2007-06-28 2012-03-20 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
CN101198064A (zh) * 2007-12-10 2008-06-11 武汉大学 一种分辨率分层技术中的运动矢量预测方法
CN101953167B (zh) * 2007-12-20 2013-03-27 高通股份有限公司 减少光晕的图像插值
RU2011104707A (ru) * 2008-07-10 2012-08-20 Мицубиси Электрик Корпорейшн (Jp) Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений и способ декодирования изображений
JP5401071B2 (ja) * 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
CN101931739A (zh) * 2009-06-23 2010-12-29 鸿富锦精密工业(深圳)有限公司 绝对误差总和值估算系统及方法
CN101600108B (zh) * 2009-06-26 2011-02-02 北京工业大学 一种多视点视频编码中的运动和视差联合估计方法
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
KR20110069740A (ko) * 2009-12-17 2011-06-23 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
KR101457396B1 (ko) * 2010-01-14 2014-11-03 삼성전자주식회사 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치
CN103039075B (zh) * 2010-05-21 2015-11-25 Jvc建伍株式会社 图像编码装置、图像编码方法、以及图像解码装置、图像解码方法
KR101449679B1 (ko) * 2010-08-18 2014-10-15 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법, 및 참조픽처 인덱싱 장치 및 방법
US9282338B2 (en) * 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
EP3419289B1 (en) * 2011-06-30 2020-12-23 JVC KENWOOD Corporation Image decoding device, image decoding method, and image decoding program
JP5644701B2 (ja) 2011-06-30 2014-12-24 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
PL231161B1 (pl) * 2011-10-17 2019-01-31 Kt Corp Sposób dekodowania sygnału wideo

Also Published As

Publication number Publication date
KR20150085093A (ko) 2015-07-22
CN107071403A (zh) 2017-08-18
HUE052633T2 (hu) 2021-05-28
CN107105228B (zh) 2020-03-20
EP3419290B1 (en) 2020-12-23
TW201309039A (zh) 2013-02-16
EP3419289A1 (en) 2018-12-26
CN107105228A (zh) 2017-08-29
EP3422714A1 (en) 2019-01-02
TW201608879A (zh) 2016-03-01
KR20140031384A (ko) 2014-03-12
BR112013033818A2 (pt) 2017-02-14
TW201722158A (zh) 2017-06-16
CN107105227B (zh) 2019-10-25
KR20170064554A (ko) 2017-06-09
US8982956B2 (en) 2015-03-17
TW201707456A (zh) 2017-02-16
US9191680B2 (en) 2015-11-17
US9800873B2 (en) 2017-10-24
KR101681011B1 (ko) 2016-11-29
CN103609120A (zh) 2014-02-26
EP2728882A4 (en) 2015-03-25
US20140219356A1 (en) 2014-08-07
PL3422714T3 (pl) 2021-05-31
US20150131734A1 (en) 2015-05-14
EP3285489A1 (en) 2018-02-21
US20160241857A1 (en) 2016-08-18
EP3419289B1 (en) 2020-12-23
TWI577183B (zh) 2017-04-01
EP3422714B1 (en) 2020-12-23
EP2728882B1 (en) 2017-11-22
EP3419290A1 (en) 2018-12-26
TWI521951B (zh) 2016-02-11
CN106851267B (zh) 2019-10-22
PL3419290T3 (pl) 2021-05-31
HUE053035T2 (hu) 2021-06-28
CN106851267A (zh) 2017-06-13
TWI605707B (zh) 2017-11-11
TWI563835B (pt) 2016-12-21
US20160080759A1 (en) 2016-03-17
CN107071403B (zh) 2019-09-24
EP2728882A1 (en) 2014-05-07
US9706208B2 (en) 2017-07-11
KR20160139044A (ko) 2016-12-06
KR20160023917A (ko) 2016-03-03
PL3419289T3 (pl) 2021-04-19
HUE052632T2 (hu) 2021-05-28
KR101744468B1 (ko) 2017-06-07
US20170105000A1 (en) 2017-04-13
KR101729429B1 (ko) 2017-04-21
CN107105227A (zh) 2017-08-29
US9363529B2 (en) 2016-06-07
KR101777097B1 (ko) 2017-09-08
EP3285489B1 (en) 2019-04-24
TW201722159A (zh) 2017-06-16
WO2013001793A1 (ja) 2013-01-03
CN103609120B (zh) 2016-09-28
KR101598306B1 (ko) 2016-02-26
TWI605708B (zh) 2017-11-11

Similar Documents

Publication Publication Date Title
BR112013033818B1 (pt) dispositivo de decodificação de imagem
JP6233490B2 (ja) 画像復号装置、画像復号方法、及び画像復号プログラム
JP5644701B2 (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
JP6036976B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036977B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
WO2013024588A1 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
JP5776714B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5776711B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5246303B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5776713B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP6036975B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036974B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP2013059023A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP5776712B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP2017076980A (ja) 画像符号化装置
JP2015201893A (ja) 画像復号装置

Legal Events

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

Ipc: H04N 19/139 (2014.01), H04N 19/103 (2014.01), H04N

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B09X Decision of grant: republication
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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