BR122020008353B1 - Dispositivo de codificação de foto em movimento e método de codificação de foto em movimento - Google Patents

Dispositivo de codificação de foto em movimento e método de codificação de foto em movimento Download PDF

Info

Publication number
BR122020008353B1
BR122020008353B1 BR122020008353-0A BR122020008353A BR122020008353B1 BR 122020008353 B1 BR122020008353 B1 BR 122020008353B1 BR 122020008353 A BR122020008353 A BR 122020008353A BR 122020008353 B1 BR122020008353 B1 BR 122020008353B1
Authority
BR
Brazil
Prior art keywords
motion vector
prediction
block
vector prediction
photo
Prior art date
Application number
BR122020008353-0A
Other languages
English (en)
Inventor
Shigeru Fukushima
Hiroya Nakamura
Hideki Takehara
Original Assignee
JVC Kenwood Corporation
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 JP2011289286A external-priority patent/JP5617834B2/ja
Priority claimed from JP2011289285A external-priority patent/JP5747816B2/ja
Application filed by JVC Kenwood Corporation filed Critical JVC Kenwood Corporation
Publication of BR122020008353B1 publication Critical patent/BR122020008353B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/182Methods 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 a pixel
    • 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
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

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

Abstract

DISPOSITIVO DE CODIFICAÇÃO DE FOTO EM MOVIMENTO E MÉTODO DE CODIFICAÇÃO DE FOTO EM MOVIMENTO. A presente invenção refere-se a uma unidade de geração de candidato de previsor de vetor de movimento (121, 221) que faz uma previsão com base em um vetor de movimento de um dos blocos vizinhos codificados que são vizinhos a um bloco-alvo de codificação em espaço ou tempo e gera uma pluralidade de candidatos a previsores de vetor de movimento. Uma unidade de remoção de candidato de previsor de vetor de movimento redundante (123) remove os candidatos a previsores de vetor de movimento que têm identidade dentre os candidatos a previsores de vetor de movimento previstos com base em um bloco vizinho codificado que é vizinho em espaço de uma lista de candidato de previsor de vetor de movimento em que pelo menos um é deixado. Uma unidade de seleção de previsor de vetor de movimento (126) seleciona um previsor de vetor de movimento da pluralidade de candidatos a previsores de vetor de movimento. Uma primeira unidade geradora de fluxo de bits (109) codifica informações que representam o previsor de vetor de movimento selecionado.

Description

ANTECEDENTES
[001] A presente invenção refere-se a tecnologias de codificação e decodificação de foto em movimento e, mais particularmente, a tecnologias de codificação e decodificação de foto em movimento com uso de compensação de movimento.
[002] Como um sistema de codificação de compressão represen tativo de uma foto em movimento, há uma especificação para MPEG-4 AVC/H. 264 (doravante, referido como AVC). Na AVC, uma compensação de movimento é usada na qual uma foto é particionada em blocos retangulares, uma foto que foi codificada/decodificada é definida como uma foto de referência e um movimento da foto de referência é previsto. Uma técnica que prevê um movimento de acordo com tal compensação de movimento é chamada de uma interprevisão. Na interprevi- são de acordo com a AVC, uma pluralidade de fotos pode ser usada como as fotos de referência, a foto mais apropriada é selecionada dentre tal uma pluralidade de fotos para cada bloco e a compensação de movimento é realizada. Um índice de referência é atribuído a cada foto de referência e a foto de referência é especificada com o uso do índice de referência. Além disso, em uma foto B, no máximo duas fotos são selecionadas dentre fotos de referência que forma codifica- das/decodificadas de modo a serem usadas para interprevisões. Tais previsões feitas de duas fotos de referência são classificadas em uma previsão L0 (previsão de lista 0) que é principalmente usada para uma previsão para a direção para frente e uma previsão L1 (previsão de lista 1) que é principalmente usada para uma previsão para a direção para trás.
[003] Além disso, uma biprevisão que usa as duas interprevisões Petição 870200052220, de 27/04/2020, pág. 43/154 das previsões L0 e L1 é definida. No caso da biprevisão, através de previsões bidirecionais, os sinais interprevistos de acordo com as previsões L0 e L1 são multiplicados pelos coeficientes de ponderação e os sinais resultantes se sobrepõem uns aos outros com valores de compensação que são adicionados aos mesmos, de modo que um sinal de foto de interprevisão final seja gerado. Os coeficientes de pesagem e os valores de compensação usados para uma previsão ponderada são definidos para valores representativos nas unidades de fotos para cada foto de referência de cada lista e codificados. Como informações de codificação relacionadas a uma interprevisão, para cada bloco, há um modo de previsão que especifica ambas as previsões da previsão L0 e da previsão L1 e, para cada lista de referência de cada referência, um índice de referência que especifica uma foto de referência e um vetor de movimento que representa a direção de movimento e a quantidade de movimento do bloco e tais informações de codificação são codificadas/decodificadas.
[004] Em um sistema de codificação de foto em movimento que realiza a compensação de movimento, a fim de reduzir a quantidade de codificação de um vetor de movimento em cada bloco, um processo de previsão é realizado para o vetor de movimento. De acordo com a AVC, usando-se uma correlação forte entre um vetor de movimento de um alvo de codificação e os vetores de movimento dos blocos vizinhos dispostos na periferia dos mesmos, uma previsão de vetor de movimento é calculada fazendo-se uma previsão com base nos blocos vizinhos dispostos na periferia, uma diferença de vetor de movimento que é uma diferença entre o vetor de movimento do alvo de codificação e a predição de vetor de movimento é calculada e a diferença de vetor de movimento é codificada, de modo que a quantidade de codificação seja reduzida.
[005] Mais especificamente, conforme ilustrado na Figura 34A, Petição 870200052220, de 27/04/2020, pág. 44/154 uma mediana é calculada com base nos vetores de movimento de blocos vizinhos A, B e C dispostos na periferia e é definida como uma previsão de vetor de movimento e uma diferença entre um vetor de movimento e a previsão de vetor de movimento é tomada, de modo que a quantidade de codificação do vetor de movimento seja reduzida. Porém, conforme ilustrado na Figura 34B, em um caso em que os tamanhos ou os formatos do bloco alvo de codificação e dos blocos vizi-nhos são diferentes uns dos outros, quando uma pluralidade de blocos vizinhos está presente no lado esquerdo, um bloco mais acima dos blocos vizinhos ou quando uma pluralidade de blocos vizinhos está presente no lado superior, um bloco mais à esquerda dos blocos vizinhos é definido como um bloco de previsão e uma previsão são feitas com base no vetor de movimento do bloco de previsão determinado.
[006] Além disso, de acordo com uma tecnologia revelada na Li teratura de Patentes 1, um vetor de previsão é calculado com base nos vetores de movimento de uma pluralidade de blocos vizinhos de um bloco alvo de processamento e as informações de foto de referência e, consequentemente, a exatidão do vetor de previsão é aprimorada, de modo que um aumento na quantidade de codificação de um vetor de codificação seja suprimido.
LISTA DE CITAÇÃO LITERATURA DE PATENTES
[007] Literatura de Patente 1, Pedido de Patente Japonês Aberto à Inspeção Pública no 2011-147172.
SUMÁRIO
[008] Porém, de acordo com o método descrito na Literatura de Patente 1, uma vez que apenas um vetor de previsão é obtido, a exatidão de previsão da previsão de vetor de movimento é abaixada dependendo de uma foto, e a eficiência de codificação pode ser baixa.
[009] Em tal uma situação, os inventores da presente invenção Petição 870200052220, de 27/04/2020, pág. 45/154 reconheceram a necessidade para diminuir a quantidade de codificação total através da compressão adicionalmente de informações de codificação em um sistema de codificação de foto em movimento com o uso da compensação de movimento.
[0010] A presente invenção é planejada levando em consideração tal situação e um objetivo da mesma é fornecer uma tecnologia de codificação e decodificação de foto em movimento para aprimorar a eficiência de codificação reduzindo-se a quantidade de codificação de uma diferença de vetor de movimento calculando-se os candidatos para uma previsão de vetor de movimento. Além disso, um outro objetivo da mesma é fornecer uma tecnologia de codificação e decodificação de foto em movimento para aprimorar a eficiência de codificação reduzindo-se a quantidade de codificação das informações de codificação calculando-se os candidatos para as informações de codificação.
[0011] A fim de resolver o problema, uma \dispositivo de codifica ção de foto em movimento de acordo com um aspecto da invenção é aquele que codifica uma foto em movimento com o uso da compensação de movimento nas unidades dos blocos obtidos dividindo-se cada foto da foto em movimento e o dispositivo de codificação de foto em movimento inclui: uma unidade de geração de candidato de previsão de vetor de movimento (121, 122) configurada para derivar uma pluralidade de candidatos de previsão de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos codificados que estão vizinhos a um bloco-alvo de codificação no espaço ou no tempo e construir uma lista de candidato de previsão de vetor de movimento; uma unidade de remoção de candidato redundante de previsão de vetor de movimento (123) configurado para remover os candidatos de previsão de vetor de movimento que têm identidade entre os candidatos de previsão de vetor de movimento previstos com base em um bloco codificado que está vizinho no espaço da lista de Petição 870200052220, de 27/04/2020, pág. 46/154 candidato de previsão de vetor de movimento com pelo menos um que está à esquerda; uma unidade de seleção de previsão de vetor de movimento (126) configurada para selecionar uma previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento; uma unidade de calculado de vetor diferencial (127) configurado para calcular uma diferença de vetor de movimento com base em uma diferença entre a previsão de vetor de movimento selecionada e o vetor de movimento usado para a compensação de movimento; e uma unidade de codificação (109) configurada para as informações de código que representam a previsão de vetor de movimento selecionada junto com a diferença de vetor de movimento.
[0012] De acordo com um outro aspecto da presente invenção, também é fornecido um dispositivo de codificação de foto em movimento. Esse dispositivo é um dispositivo de codificação de foto em movimento que codifica uma foto em movimento com o uso da compensação de movimento nas unidades de blocos obtidos dividindo-se cada foto da foto em movimento e inclui: uma unidade de geração de candidato de previsão de vetor de movimento (121, 122) configurada para derivar uma pluralidade de candidatos de previsão de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos codificados que estão vizinhos a um bloco- alvo de codificação no espaço ou no tempo e construir uma lista de candidato de previsão de vetor de movimento; uma unidade de remoção de candidato redundante de previsão de vetor de movimento (123) configurada para remover os candidatos de previsão de vetor de movimento que têm um mesmo valor de vetor de movimento entre os candidatos de previsão de vetor de movimento previstos com base em um bloco codificado que está vizinho em espaço da lista de candidato de previsão de vetor de movimento com um que é excluído; uma unidade de seleção de previsão de vetor de movimento (126) configurada Petição 870200052220, de 27/04/2020, pág. 47/154 para selecionar uma previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento; uma unidade de calculado de vetor diferencial (127) configurado para calcular uma diferença de vetor de movimento com base em uma diferença entre a previsão de vetor de movimento selecionada e o vetor de movimento usado para a compensação de movimento; e uma unidade de codificação (109) configurada para as informações de código que representam a previsão de vetor de movimento selecionada junto com a diferença de vetor de movimento.
[0013] De acordo com um outro aspecto da presente invenção, é fornecido um método de codificação de foto em movimento. Esse método é um método de codificação de foto em movimento para codificar uma foto em movimento com o uso da compensação de movimento nas unidades de blocos obtidos dividindo-se cada foto da foto em movimento e inclui: derivar uma pluralidade de candidatos de previsão de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos codificados que estão vizinhos a um bloco alvo de codificação no espaço ou no tempo e construir uma lista de candidato de previsão de vetor de movimento; remover os candidatos de previsão de vetor de movimento que têm identidade dentre os candidatos de previsão de vetor de movimento previstos com base em um bloco codificado que é vizinho em espaço da lista de candidato de previsão de vetor de movimento com pelo menos um que está à esquerda; selecionar um de previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento; calcular uma diferença de vetor de movimento com base em uma diferença entre o de previsão de vetor de movimento selecionado e o vetor de movimento usado para a compensação de movimento; e codificar informações que representam o de previsão de vetor de movimento selecionado junto com a diferença de vetor de movimento. Petição 870200052220, de 27/04/2020, pág. 48/154
[0014] De acordo com um outro aspecto da presente invenção, também é fornecido um método de codificação de foto em movimento. Esse método é um método de codificação de foto em movimento para codificar uma foto em movimento com o uso da compensação de movimento nas unidades de blocos obtidos dividindo-se cada foto da foto em movimento e inclui: derivar uma pluralidade de candidatos de previsão de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos codificados que estão vizinhos a um bloco alvo de codificação no espaço ou no tempo e construir uma lista de candidato de previsão de vetor de movimento; remover os candidatos de previsão de vetor de movimento que têm um mesmo valor de vetor de movimento entre os candidatos de previsão de vetor de movimento previstos com base em um bloco codificado que está vizinho em espaço da lista de candidato de previsão de vetor de movimento com um que é excluído; selecionar um de previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento; calcular uma diferença de vetor de movimento com base em uma diferença entre o de previsão de vetor de movimento selecionado e o vetor de movimento usado para a compensação de movimento; e codificar informações que representam o de previsão de vetor de movimento selecionado junto com a diferença de vetor de movimento.
[0015] De acordo com um outro aspecto da presente invenção, é fornecido um dispositivo de decodificação de foto em movimento que decodifica um fluxo de bits no qual uma foto em movimento é codificada com uso da compensação de movimento nas unidades de blocos obtidos dividindo-se cada foto da foto em movimento. O dispositivo de decodificação de foto em movimento inclui: uma unidade de decodifi- cação (202) configurada para decodificar informações que representam uma previsão de vetor de movimento a ser selecionada junto com uma diferença de vetor de movimento; uma unidade de geração de Petição 870200052220, de 27/04/2020, pág. 49/154 candidato de previsão de vetor de movimento (221, 222) configurada para derivar uma pluralidade de candidatos de previsão de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos decodificados que estão vizinhos a um bloco- alvo de decodificação no espaço ou no tempo e construir uma lista de candidato de previsão de vetor de movimento; uma unidade de remo-ção de candidato redundante de previsão de vetor de movimento (223) configurado para remover os candidatos de previsão de vetor de movimento que têm identidade entre os candidatos de previsão de vetor de movimento previstos com base em um bloco decodificado que está vizinho no espaço da lista de candidato de previsão de vetor de movimento com pelo menos um que está à esquerda; uma unidade de se-leção de previsão de vetor de movimento (225) configurada para selecionar uma previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento com base nas informações que representam a previsão de vetor de movimento decodificada a ser selecionada; e uma unidade de cálculo de vetor de movimento (226) configurada para calcular um vetor de movimento usado para a compensação de movimento adicionando-se a previsão de vetor de movimento sele-cionada e a diferença de vetor de movimento juntas.
[0016] De acordo com um outro aspecto da presente invenção, também é fornecida um dispositivo de decodificação de foto em movimento. Esse dispositivo é um dispositivo de decodificação de foto em movimento que decodifica um fluxo de bits no qual uma foto em movimento é codificada com o uso da compensação de movimento nas unidades de blocos obtidos dividindo-se cada foto da foto em movimento. O dispositivo de decodificação de foto em movimento inclui: uma unidade de decodificação (202) configurada para decodificar informações que representam uma previsão de vetor de movimento a ser selecionada junto com uma diferença de vetor de movimento; uma Petição 870200052220, de 27/04/2020, pág. 50/154 unidade de geração de candidato de previsão de vetor de movimento (221, 222) configurada para derivar uma pluralidade de candidatos de previsão de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos decodificados que estão vizinhos a um bloco-alvo de decodificação no espaço ou no tempo e construir uma lista de candidato de previsão de vetor de movimento; uma unidade de remoção de candidato redundante de previsão de vetor de movimento (223) configurada para remover os candidatos de previsão de vetor de movimento que têm um mesmo valor de vetor de movimento entre os candidatos de previsão de vetor de movimento previstos com base em um bloco decodificado que está vizinho em espaço da lista de candidato de previsão de vetor de movimento com um que é excluído; uma unidade de seleção de previsão de vetor de movimento (225) configurada para selecionar uma previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento com base nas informações que representam a previsão de vetor de movimento decodificada a ser selecionada; e uma unidade de cálculo de vetor de movimento (226) configurada para calcular um vetor de movimento usado para a compensação de movimento adicionando-se a previsão de vetor de movimento selecionada e a diferença de vetor de movimento juntas.
[0017] De acordo com um outro aspecto da presente invenção, é fornecido um método de decodificação de foto em movimento. Esse método é um método de decodificação de foto em movimento para decodificar um fluxo de bits no qual uma foto em movimento é codificada com o uso da compensação de movimento nas unidades de blocos obtidos dividindo-se cada foto da foto em movimento. O método de decodificação de foto em movimento inclui: decodificar informações que representam um de previsão de vetor de movimento a ser selecionado junto com uma diferença de vetor de movimento; derivar uma Petição 870200052220, de 27/04/2020, pág. 51/154 pluralidade de candidatos de previsão de vetor de movimento fazendo- se uma previsão com base em um vetor de movimento de um dos blocos decodificados que são vizinhos de um bloco-alvo de decodificação em espaço ou tempo e construir uma lista de candidato de previsão de vetor de movimento; remover os candidatos de previsão de vetor de movimento que têm identidade dentre os candidatos de previsão de vetor de movimento previstos com base em um bloco decodificador que é vizinho em espaço da lista de candidato de previsão de vetor de movimento com pelo menos um que está à esquerda; selecionar um de previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento com base em informações que representam o de previsão de vetor de movimento decodificado a ser selecionado; e calcular um vetor de movimento usado para compensação de movimento adicionando-se o de previsão de vetor de movimento selecionado e a diferença de vetor de movimento juntos.
[0018] De acordo com um outro aspecto da invenção, também é fornecido um método de decodificação de foto em movimento. Esse método é um método de decodificação de foto em movimento para decodificar um fluxo de bits no qual uma foto em movimento é codificada com o uso da compensação de movimento nas unidades de blocos obtidos dividindo-se cada foto da foto em movimento e inclui: decodificar informações que representam um de previsão de vetor de movimento a ser selecionado junto com uma diferença de vetor de movimento; derivar uma pluralidade de candidatos de previsão de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos decodificados que são vizinhos de um bloco- alvo de decodificação em espaço ou tempo e construir uma lista de candidato de previsão de vetor de movimento; remover os candidatos de previsão de vetor de movimento que têm um mesmo valor de vetor de movimento entre os candidatos de previsão de vetor de movimento Petição 870200052220, de 27/04/2020, pág. 52/154 previstos com base em um bloco decodificado que está vizinho em espaço da lista de candidato de previsão de vetor de movimento com um que é excluído; selecionar um de previsão de vetor de movimento da lista de candidato de previsão de vetor de movimento com base em informações que representam o de previsão de vetor de movimento decodificado a ser selecionado; e calcular um vetor de movimento usado para compensação de movimento adicionando-se o de previsão de vetor de movimento selecionado e a diferença de vetor de movimento juntos.
[0019] Ademais, uma combinação arbitrária dos elementos consti tuintes descritos acima e uma conversão da representação da presente invenção entre um método, um dispositivo, um sistema, um meio de gravação, um programa de computador e similares são válidos como um aspecto da presente invenção.
[0020] De acordo com a presente invenção, uma pluralidade de previsões de vetor de movimento é calculada e uma previsão de vetor de movimento ideal é selecionada dentre a pluralidade das previsões de vetor de movimento e, consequentemente, a quantidade de codificação gerada da diferença de vetor de movimento é reduzida, de modo que a eficiência de codificação seja aprimorada.
BREVE DESCRIÇÃO DOS DESENHOS
[0021] A Figura 1 é um diagrama em blocos que ilustra a configuração de um dispositivo de codificação de foto em movimento que executa um método de previsão de vetor de movimento de acordo com uma modalidade.
[0022] A Figura 2 é um diagrama em blocos que ilustra a configuração de um dispositivo de decodificação de foto em movimento que executa um método de previsão de vetor de movimento de acordo com uma modalidade.
[0023] A Figura 3 é um diagrama que ilustra os blocos em árvore e
[0024] As Figuras 4A a 4D são diagramas que ilustram modos de partição dos blocos de previsão.
[0025] A Figura 5 é um diagrama que ilustra um grupo de blocos de previsão.
[0026] A Figura 6 é um diagrama que ilustra um grupo de blocos de previsão.
[0027] A Figura 7 é um diagrama que ilustra um grupo de blocos de previsão.
[0028] A Figura 8 é um diagrama que ilustra um grupo de blocos de previsão.
[0029] A Figura 9 é um diagrama que ilustra um grupo de blocos de previsão.
[0030] A Figura 10 é um diagrama que ilustra a sintaxe de um fluxo de bits em um nível de fatia relacionado a um método de previsão de vetor de movimento.
[0031] A Figura 11 é um diagrama que ilustra a sintaxe de um fluxo de bits em um nível de bloco de previsão relacionado a um método de previsão de vetor de movimento.
[0032] A Figura 12 é um diagrama em blocos que ilustra uma con figuração detalhada de uma unidade de cálculo de diferença de vetor de movimento ilustrada na Figura 1.
[0033] A Figura 13 é um diagrama em blocos que ilustra uma con figuração detalhada de uma unidade de cálculo de vetor de movimento ilustrada na Figura 2.
[0034] A Figura 14 é um fluxograma que ilustra a sequência do processo de cálculo de diferença de vetor de movimento da unidade de cálculo de diferença de vetor de movimento ilustrada na Figura 1.
[0035] A Figura 15 é um fluxograma que ilustra a sequência do processo de cálculo de vetor de movimento da unidade de cálculo de Petição 870200052220, de 27/04/2020, pág. 54/154 vetor de movimento ilustrada na Figura 2.
[0036] A Figura 16 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento e construir uma lista de previsão de vetor de movimento.
[0037] A Figura 17 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento de acordo com uma primeira modalidade.
[0038] A Figura 18 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento.
[0039] A Figura 19 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento de acordo com a primeira modalidade.
[0040] A Figura 20 é um fluxograma que ilustra a sequência do processo de calcular o escalonamento de um vetor de movimento.
[0041] A Figura 21 é um fluxograma que ilustra a sequência do processo de calcular o escalonamento do vetor de movimento através de aritmética de número inteiro.
[0042] A Figura 22 é um fluxograma que ilustra a sequência do processo de derivar uma previsão de vetor de movimento no lado de decodificação de acordo com uma segunda modalidade.
[0043] A Figura 23 é um diagrama que ilustra um padrão de sele- ção de previsão de vetor de movimento de um caso no qual uma previsão de vetor de movimento de acordo com a segunda modalidade é determinada para ser um candidato de previsão de vetor de movimento espacial.
[0044] A Figura 24 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento.
[0045] A Figura 25 é um fluxograma que ilustra a sequência do processo de derivar uma foto de um tempo diferente.
[0046] A Figura 26 é um fluxograma que ilustra a sequência do processo de derivar um bloco de previsão candidate de uma foto de um tempo diferente.
[0047] A Figura 27 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento.
[0048] A Figura 28 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento.
[0049] A Figura 29 é um fluxograma que ilustra a sequência do processo de calcular o escalonamento de um vetor de movimento.
[0050] A Figura 30 é um fluxograma que ilustra a sequência do processo de calcular o escalonamento de um vetor de movimento através de aritmética de número inteiro.
[0051] A Figura 31 é um fluxograma que ilustra a sequência do processo de adicionar candidatos de previsão de vetor de movimento a uma lista de candidato de previsão de vetor de movimento.
[0052] A Figura 32 é um fluxograma que ilustra a sequência do processo de remover os candidatos de previsão de vetor de movimen to redundantes da uma lista de candidato de previsão de vetor de movimento.
[0053] A Figura 33 é um fluxograma que ilustra a sequência do processo de limitar o número dos candidatos de previsão de vetor de movimento.
[0054] As Figuras 34A e 34B são diagramas que ilustram um mé todo convencional de calcular uma previsão de vetor de movimento.
DESCRIÇÃO DETALHADA
[0055] Essa modalidade se refere à codificação de uma foto em movimento e, a fim de aprimorar a eficiência de codificação, particularmente, na codificação de foto em movimento na qual uma foto é particionada em blocos retangulares que têm um tamanho arbitrário e um formato arbitrário e a compensação de movimento é realizada nas unidades de blocos entre as fotos, uma pluralidade de previsões de vetor Petição 870200052220, de 27/04/2020, pág. 56/154 de movimento são calculadas com base nos vetores de movimento dos blocos codificados vizinhos e um vetor diferencial entre o vetor de movimento de um bloco alvo de codificação e uma previsão de vetor de movimento selecionada é calculado e é codifico de modo a reduzir a quantidade de codificação. Alternativamente, usando-se as informações de codificação dos blocos codificados vizinhos, as informações de codificação do bloco alvo de codificação são estimadas, de modo que a quantidade de codificação seja reduzida. No caso da decodifica- ção de uma foto em movimento, uma pluralidade de previsões de vetor de movimento é calculada com base nos vetores de movimento dos blocos decodificados vizinhos e o vetor de movimento do bloco alvo de decodificação é calculado com base no vetor decodificado diferencial do fluxo de bits e uma previsão de vetor de movimento selecionada e é decodificada. Além disso, usando-se as informações de codificação dos blocos decodificados vizinhos, as informações de codificação do bloco alvo de decodificação são estimadas.
[0056] Primeiro, as tecnologias e termos técnicos usados nessa modalidade serão definidos. BLOCO EM ÁRVORE E BLOCO DE CODIFICAÇÃO
[0057] Na modalidade, conforme ilustrado na Figura 3, a interior de uma foto é igualmente particionado nas unidades de quadrados que têm um mesmo tamanho arbitrário. Essa unidade é definida como um bloco em árvore e é configurado como uma unidade básica de gerenciamento de endereço para especificar um bloco alvo de codifica- ção/decodificação (um bloco alvo de codificação em um processo de codificação ou um bloco alvo de decodificação em um processo de de- codificação; Doravante, será usado nesse significado, exceto onde especificado em contrário) dentro de uma foto. Exceto para o caso de monocromo, o bloco em árvore é configurado por um sinal de luminân- cia e dois sinais de cores diferentes. O tamanho do bloco em árvore Petição 870200052220, de 27/04/2020, pág. 57/154 pode ser livremente definido para um tamanho de uma potência de 2 de acordo com o tamanho de foto ou uma textura incluída no interior da foto. A fim de otimizar o processo de codificação de acordo com uma textura incluída em uma foto do bloco em árvore, o bloco em árvore pode ser configurado como blocos que têm um tamanho pequeno particionando-se de modo hierárquico o sinal de luminância e o sinal de diferença de cor em quatro partes (em duas partes respectivas vertical e horizontalmente) conforme for necessário. Cada um desses blocos é definido como um bloco de codificação e serve como uma unidade básica do processo no tempo de realização do processo de codi-ficação e do processo de decodificação. Exceto para o caso de mono- cromo, o bloco de codificação também é configurado por um sinal de luminância e dois sinais de diferença de cor. O tamanho máximo do bloco de codificação é o mesmo que o tamanho do bloco em árvore. Um bloco de codificação do qual o tamanho é o tamanho mínimo do bloco de codificação é chamado de um bloco de codificação mínimo e pode ser livremente definido no tamanho de uma potência de 2.
[0058] No caso ilustrado na Figura 3, o bloco de codificação A é configurado como um bloco de codificação sem particionar o bloco em árvore. O bloco de codificação B é um bloco de codificação que é formado particionando-se o bloco em árvore em quatro partes. O bloco de codificação C é um bloco de codificação que é formado particionando-se adicionalmente um bloco, que é obtido particionando-se o bloco em árvore em quatro partes, em quatro partes. O bloco de codificação D é um bloco de codificação que é formado particionando-se de modo hierárquico ainda mais um bloco, que é obtido particionando-se o bloco em árvore em quatro partes, em quatro partes duas vezes e é um bloco de codificação do tamanho mínimo.
MODO DE PREVISÃO
[0059] Nas unidades dos blocos de codificação, o chaveamento é realizado entre uma intraprevisão MODE_INTRA na qual uma previsão é feita com base nos sinais de foto vizinhos que foram codifica- dos/decodificados dentro da foto de um bloco alvo de codificação e uma interprevisão MODE_INTER na qual uma previsão é feita com base nos sinais de foto codificados/decodificados de uma foto diferente da foto do bloco alvo de codificação. Um modo para descriminar entre a intraprevisão MODE_INTRA e a interprevisão MODE_INTER é definida como um modo de previsão PredMode. O modo de previsão PredMode tem o valor da intraprevisão MODE_INTRA ou da interpre- visão MODE_INTER e pode selecionar entre as mesmas para codificar. MODO DE PARTIÇÃO, BLOCO DE PREVISÃO E UNIDADE DE PREVISÃO
[0060] Em um caso no qual a intraprevisão MODE_INTRA e a in- terprevisão MODE_INTER são feitas com o interior de uma foto que é particionada em blocos, a fim de fazer a unidade, em que o chavea- mento entre a intraprevisão e a interprevisão é realizado, menor, as previsões são feitas com o bloco de codificação que é particionado em partes conforme for necessário. Um modo para identificar um método de particionamento do sinal de luminância e do sinal de diferença de cor desse bloco de codificação é definido como um modo de partição (PartMode). Além disso, os blocos particionados são definidos como blocos de previsão. Conforme ilustrado nas Figuras 4A a 4D, quatro tipos de modos de partição (PartMode) são definidos de acordo com o método de particionamento do sinal de luminância do bloco de codificação. Um modo de partição (PartMode) no qual o sinal de luminância do bloco de codificação não é particionado de modo a ser considerado como um bloco de previsão (Figura 4A) é definido como uma partição 2Nx2N (PART_2Nx2N), um modo de partição (PartMode) no qual o sinal de luminância do bloco de codificação é particionado em duas Petição 870200052220, de 27/04/2020, pág. 59/154 partes na direção horizontal de modo a formar dois blocos de previsão (Figura 4B) é definido como uma partição 2NxN (PART_2NxN), um modo de partição (PartMode) no qual o sinal de luminância do bloco de codificação é particionado na direção vertical e o bloco de codificação é formado como dois blocos de previsão (Figura 4C) é definido como uma partição Nx2N (PART_Nx2N) e um modo de partição (PartMode) no qual o sinal de luminância do bloco de codificação é particionado através de particionamento igual nas direções horizontal e vertical de modo a formar quatro blocos de previsão (Figura 4D) é definido como uma partição NxN (PART_NxN). Além disso, o sinal de diferença de cor é particionado nas mesmas taxas de partição vertical e horizontal do sinal de luminância para cada modo de partição (PartMode).
[0061] No interior do bloco de codificação, a fim de especificar blo cos de previsão respectivos, os números que começam a partir de zero são atribuídos aos blocos de previsão presentes no interior do bloco de codificação na ordem de codificação. Esses números são definidos com índices de partição PartIdx. Cada número representado no interior de cada bloco de previsão dos blocos de codificação ilustrado nas Figuras 4A a 4D representam o índice de partição PartIdx do bloco de previsão. Na partição 2NxN PART_2NxN ilustrada na Figura 4B, o índice de partição PartIdx do bloco de previsão superior é definido para "0" e o índice de partição PartIdx do bloco de previsão inferior é definido para "1". Na partição Nx2N PART_Nx2N ilustrada na Figura 4C, o índice de partição PartIdx do bloco de previsão esquerdo é definido para "0" e o índice de partição PartIdx do bloco de previsão direito é definido para "1". Na partição NxN PART_NxN ilustrada na Figura 4D, o índice de partição PartIdx do bloco de previsão superior esquerdo é definido para "0", o índice de partição PartIdx do bloco de previsão superior direito é definido para "1", o índice de partição PartIdx do bloco de previsão inferior esquerdo é definido para "2" e o índice de partição Petição 870200052220, de 27/04/2020, pág. 60/154 PartIdx do bloco de previsão inferior direito é definido para "3".
[0062] Em um caso no qual o modo de previsão PredMode é a in- terprevisão MODE_INTER, em um bloco de codificação além do bloco de codificação D que é o bloco de codificação mínimo, a partição 2Nx2N PART_2Nx2N, a partição 2NxN PART_2NxN e a partição Nx2N PART_Nx2N são definidas como os modos de partição PartMode e, apenas no bloco de codificação D que é o bloco de codificação mínimo, em adição à partição 2Nx2N PART_2Nx2N, à partição 2NxN PART_2NxN e à partição Nx2N PART_Nx2N, a partição NxN PART_NxN é definida como os modos de partição PartMode. A razão para não definir a partição NXN PART_NxN em um bloco além do bloco de codificação mínimo é que o bloco de codificação pode ser dividido em quatro partes de modo a representar pequenos blocos de codificação em um bloco além do bloco de codificação mínimo. POSIÇÃO DE BLOCO EM ÁRVORE, BLOCO DE CODIFICAÇÃO, BLOCO DE PREVISÃO E BLOCO DE CONVERSÃO
[0063] Como a posição de cada um dos blocos que inclui um bloco em árvore, um bloco de codificação, um bloco de previsão e um bloco de conversão de acordo com essa modalidade, a posição de um pixel de um sinal de luminância superior mais à esquerda incluído na área de cada bloco é representada como coordenadas bidimensionais de (x, y) com a posição do pixel do sinal de luminância superior mais à esquerda da tela do sinal de luminâncias que é definida como a origem (0, 0). Como as direções dos eixos geométricos de coordenada, a direção para à direita na direção horizontal e a direção para baixo na direção vertical são definidas como direções positivas e a unidade é uma unidade de pixel do sinal de luminância. Não apenas em um caso no qual o formato de diferença de cor é 4 : 4 : 4 em que o tamanho de foto (o número de pixels) é o mesmo entre o sinal de luminância e o sinal de diferença de cor, mas também em um caso no qual a formato Petição 870200052220, de 27/04/2020, pág. 61/154 de diferença de cor é 4 : 2 : 0 ou 4 : 2 : 2 em que o tamanho de foto (o número de pixels) é diferente entre o sinal de luminância e o sinal de diferença de cor, a posição de cada bloco do sinal de diferença de cor é representada como coordenadas de um pixel do sinal de luminância incluído na área do bloco e a unidade é um pixel do sinal de luminân- cia. Configurando-se como tal, não apenas a posição de cada bloco do sinal de diferença de cor pode ser especificada, mas também a relação posicional entre o bloco do sinal de luminância e o bloco do sinal de diferença de cor é claro comparando-se os valores das coordenadas. GRUPO DOS BLOCOS DE PREVISÃO
[0064] Um grupo configurado através de uma pluralidade de blo cos de previsão é definido como um grupo de bloco de previsão. As Figuras 5, 6, 7 e 8 são diagramas que ilustra os grupos de bloco de previsão vizinhos a um bloco de previsão que é o alvo de codifica- ção/decodificação dentro de uma foto do bloco de previsão que é o alvo de codificação/decodificação. A Figura 9 é um diagrama que ilustra um grupo de bloco de previsão, que já foi codificado/decodificado, presente na mesma posição que aquela do bloco de previsão que é o alvo de codificação/decodificação ou uma posição vizinha ao mesmo em uma foto codificada/decodificada de um tempo diferente do tempo do bloco de previsão que é o alvo de codificação/decodificação. O grupo de bloco de previsão será descrito com referência às Figuras 5, 6, 7, 8 e 9.
[0065] Conforme ilustrado na Figura 5, um primeiro grupo de bloco de previsão configurado através de um bloco de previsão A1 que é vizinho ao lado esquerdo de um bloco de previsão, que é o alvo de codi- ficação/decodificação, dentro de uma foto do bloco de previsão que é o alvo de codificação/decodificação e um bloco de previsão A0 que é vizinho ao vértice esquerdo inferior do bloco de previsão que é o alvo de codificação/decodificação é definido como um grupo de bloco de Petição 870200052220, de 27/04/2020, pág. 62/154 previsão vizinho ao lado esquerdo.
[0066] Além disso, conforme ilustrado na Figura 6, mesmo em um caso no qual o tamanho do bloco de previsão vizinho ao lado esquerdo do bloco de previsão que é o alvo de codificação/decodificação é maior que aquele do bloco de previsão que é o alvo de codifica- ção/decodificação, de acordo com a condição supracitada, em um caso no qual um bloco de previsão A vizinho ao lado esquerdo é vizinho ao lado esquerdo do bloco de previsão que é o alvo de codifica- ção/decodificação, o bloco de previsão A é definido como o bloco de previsão A1 e, em um caso no qual o bloco de previsão A é vizinho ao vértice esquerdo inferior do bloco de previsão que é o alvo de codifica- ção/decodificação, o bloco de previsão A é definido como o bloco de previsão A0. No exemplo ilustrado na Figura 6, os blocos de previsão A0 e A1 são os mesmos.
[0067] Ademais, conforme ilustrado na Figura 7, em um caso no qual uma pluralidade de blocos de previsão vizinha ao lado esquerdo do bloco de previsão que é o alvo de codificação/decodificação estão presentes e o tamanho de cada um dentre a pluralidade de blocos de previsão é menor que aquele do bloco de previsão que é o alvo de co- dificação/decodificação, nessa modalidade, apenas um bloco de previsão A10 mais inferior dentre os blocos de previsão vizinhos ao lado esquerdo é definido como o bloco de previsão A1 vizinho ao lado esquerdo.
[0068] De maneira substancialmente similar à definida do grupo de bloco de previsão vizinho ao lado esquerdo, um segundo grupo de bloco de previsão configurado por um bloco de previsão B1 vizinho ao lado superior do bloco de previsão que é o alvo de codifica- ção/decodificação dentro da foto do bloco de previsão que é o alvo de codificação/decodificação, um bloco de previsão B0 vizinho ao vértice superior direito do bloco de previsão que é o alvo de codifica- Petição 870200052220, de 27/04/2020, pág. 63/154 ção/decodificação e um bloco de previsão B2 vizinho ao vértice esquerdo superior do bloco de previsão que é o alvo de codifica- ção/decodificação é definido como um grupo de bloco de previsão vizinho ao lado superior.
[0069] Além disso, conforme ilustrado na Figura 8, mesmo em um caso no qual o tamanho do bloco de previsão vizinho ao lado superior do bloco de previsão que é o alvo de codificação/decodificação é maior que aquele do bloco de previsão que é o alvo de codifica- ção/decodificação, de acordo com a condição supracitada, em um caso no qual um bloco de previsão B vizinho ao lado superior é vizinho ao lado superior do bloco de previsão que é o alvo de codifica- ção/decodificação, o bloco de previsão B é definido como o bloco de previsão B1, em um caso no qual o bloco de previsão B é vizinho ao vértice direito superior do bloco de previsão que é o alvo de codifica- ção/decodificação, o bloco de previsão B é definido como o bloco de previsão B0 e, em um caso no qual o bloco de previsão B é vizinho ao vértice esquerdo superior do bloco de previsão que é o alvo de codifi- cação/decodificação, o bloco de previsão B é definido como o bloco de previsão B2. No exemplo ilustrado na Figura 8, os blocos de previsão B0, B1 e B2 são os mesmos.
[0070] Ademais, conforme ilustrado na Figura 7, em um caso no qual uma pluralidade de blocos de previsão vizinha ao lado superior do bloco de previsão que é o alvo de codificação/decodificação estão presentes e o tamanho de cada um da pluralidade dos blocos de previsão é menor que aquele do bloco de previsão que é o alvo de codifica- ção/decodificação, nessa modalidade, apenas um bloco de previsão mais à direita B10 dentre os blocos de previsão vizinhos ao lado superior é definido como o bloco de previsão B1 vizinho ao lado superior.
[0071] Uma diferença do grupo de bloco de previsão vizinho ao lado esquerdo é que o bloco de previsão B2 vizinho ao vértice esquerPetição 870200052220, de 27/04/2020, pág. 64/154 do superior do bloco de previsão que é o alvo de codifica- ção/decodificação é incluído no grupo de bloco de previsão vizinho ao lado superior. Enquanto o bloco de previsão esquerdo superior B2 pode ser incluído em qualquer grupo de bloco de previsão, aqui no presente documento, o bloco de previsão esquerdo superior B2 é incluído no grupo de bloco de previsão vizinho ao lado superior. Consequentemente, o número dos blocos de previsão do grupo de bloco de previsão vizinho ao lado superior é maior que aquele dos blocos de previsão do grupo de bloco de previsão vizinho ao lado esquerdo.
[0072] Conforme ilustrado na Figura 9, em uma foto codifica- da/decodificada de um tempo que é diferente do tempo do bloco de previsão que é o alvo de codificação/decodificação, um terceiro grupo de bloco de previsão configurado através dos grupos de bloco de previsão T0 e T1, que já foram codificados/decodificados, presentes na mesma posição que a posição do bloco de previsão que é o alvo de codificação/decodificação ou em uma posição vizinha ao mesmo é definido como um grupo de bloco de previsão de um tempo diferente. MODO DE INTERPREVISÃO E LISTA DE REFERÊNCIA
[0073] Em uma modalidade da presente invenção, em uma inter- previsão que faz uma previsão com base em um sinal de foto de uma foto codificada/decodificada, uma pluralidade de fotos decodificadas pode ser usada como fotos de referência. A fim de específica uma foto de referência selecionada dentre a pluralidade de fotos de referência, um índice é fixado a cada bloco de previsão. Em uma fatia B, uma in- terprevisão pode ser feita selecionando-se duas fotos de referência arbitrárias para cada bloco de previsão e há uma previsão L0 Pred_L0, uma previsão L1 Pred_L1 e uma biprevisão Pred_BI como os modos da interprevisão. As fotos de referência são gerenciadas através de L0 (lista de referência 0) e L1 (lista de referência 1) de uma estrutura de lista e, projetando-se um índice de referência de L0 ou/e L1, uma foto Petição 870200052220, de 27/04/2020, pág. 65/154 de referência pode ser especificada. A previsão L0 Pred_L0 é uma in- terprevisão que se refere a uma foto de referência gerenciada pela lista de referência L0, a previsão L1 Pred_L1 é uma interprevisão que se refere a uma foto de referência gerenciada pela lista de referência L1 e a biprevisão Pred_BI é uma interprevisão que se refere a uma foto de referência gerenciada através das listas de referência L0 e L1 realizando-se ambas as previsões L0 e L1. Em uma interprevisão de uma fatia P, apenas a previsão L0 pode ser usada. Além disso, em uma in- terprevisão de uma fatia B, a previsão L0, a previsão L1 e a biprevisão Pred_BI que realizam média ou ponderação das previsões L0 e L1 podem ser usadas. Nos processos descritos a seguir, assume-se que o processo é realizado para cada uma das listas de referência L0 e L1 para uma constante ou uma variável a qual um sufixo LX (aqui no presente documento, X é 0 ou 1) de acordo com a saída é anexada. POC
[0074] Uma POC é uma variável que é associada a uma foto a ser codificada e define-se um valor aumentado a cada momento por um na sequência de saída/exibição de uma foto à mesma. Com base nos valores das POCs, a identidade das fotos e a ordem das fotos na sequência de saída/exibição podem ser determinadas e uma distância entre as fotos podem ser derivadas. Por exemplo, em um caso no qual as POCs de duas fotos têm o mesmo valor, as fotos podem ser determinadas para ser a mesma. Por outro lado, em um caso no qual as POCs de duas fotos têm valores mutualmente diferentes, uma foto que em um valor menor da POC pode ser determinada para ser uma foto que é emitida/exibida em primeiro momento e uma diferença entre as POCs das duas fotos representam uma distância entre as fotos na direção do eixo geométrico de tempo.
MODALIDADE 1
[0075] A modalidade 1 da presente invenção será descrita com referência aos desenhos. A Figura 1 é um diagrama em blocos que ilustra a configuração de um dispositivo de codificação de foto em movimento de acordo com a modalidade da presente invenção. O dispositivo de codificação de foto em movimento de acordo com a modalidade inclui: uma memória de foto 101; uma unidade de detecção de vetor de movimento 102; uma unidade de cálculo de diferença de vetor de movimento 103; uma unidade de estimativa de informações de interprevisão 104; uma unidade de previsão de compensação de movimento 105; uma unidade de determinação de método de previsão 106; uma unidade de geração de sinal residual 107; uma unidade de quantiza- ção e transformação ortogonal 108; uma primeira unidade de geração de fluxo de bits 109; uma segunda unidade de geração de fluxo de bits 110; uma unidade de multiplexação 111; uma unidade de transforma- ção ortogonal inversa e quantização inversa 112; uma unidade de sobreposição de sinal de foto decodificado 113; uma memória de armazenamento de informações de codificação 114; e uma memória de foto de decodificação 115.
[0076] A memória de foto 101 armazena temporariamente um sinal de foto de uma foto de alvo de codificação que é fornecido em ordem do tempo de exibição. A memória de foto 101 fornece o sinal de foto armazenado da foto de alvo de codificação para a unidade de detec- ção de vetor de movimento 102, a unidade de determinação de método de previsão 106 e a unidade de geração de sinal residual 107 nas unidades de blocos de pixel predeterminados. Naquele momento, os sinais de foto das fotos armazenadas em ordem de tempo de exibição são redispostas em ordem de codificação e são emitidas a partir da memória de foto 101 nas unidades de blocos pixel.
[0077] A unidade de detecção de vetor de movimento 102 detecta o tamanho de cada bloco de previsão e o vetor de movimento de cada modo de previsão nas unidades de blocos de previsão através de corPetição 870200052220, de 27/04/2020, pág. 67/154 respondência de bloco ou similares entre um sinal de foto fornecido da memória de foto 101 e uma foto de referência alimentada da memória de foto de decodificação 115 e fornece o vetor de movimento detectado à unidade de previsão de compensação de movimento 105, a unidade de cálculo de diferença de vetor de movimento 103 e a unidade de determinação de método de previsão 106.
[0078] A unidade de cálculo de diferença de vetor de movimento 103, usando-se as informações de codificação de um sinal de foto, que já foi codificado, armazenadas na memória de armazenamento de informações de codificação 114, constrói uma lista de previsão de vetor de movimento a ser descrita mais tarde calculando-se uma pluralidade de candidatos de previsão de vetor de movimento, seleciona uma previsão de vetor de movimento ideal dentre a pluralidade de candidatos de previsão de vetor de movimento adicionados à lista de previsão de vetor de movimento gerada, calcula uma diferença de vetor de movimento com base no vetor de movimento detectado pela unidade de detecção de vetor de movimento 102 e pela previsão de vetor de movimento e fornece a diferença calculada do vetor de movimento a unidade de determinação de método de previsão 106. Além disso, um índice de previsão de vetor de movimento usado para especificar uma previsão de vetor de movimento selecionada dentre os candidatos de previsão de vetor de movimento adicionados à lista de previsão de vetor de movimento gerada é fornecido à unidade de determinação de método de previsão 106. A configuração e a operação da unidade de cálculo de diferença de vetor de movimento 103 serão descritas em detalhe posteriormente.
[0079] A unidade de estimativa de informações de interprevisão 104 estima as informações de interprevisão de um modo de mesclagem. Aqui no presente documento, o modo de mesclagem é um modo no qual as informações de interprevisão de um bloco de previsão inPetição 870200052220, de 27/04/2020, pág. 68/154 terprevisto vizinho que foi codificado ou um bloco de previsão interprevisto de uma outra foto é usado em vez das informações de interprevisão de codificação como, por exemplo, o modo de previsão do bloco de previsão, o índice de referência (as informações usadas para especificar uma foto de referência usada para a compensação de movimento dentre uma pluralidade de fotos de referência adicionadas à lista de referência), o vetor de movimento e similares. Usando-se as informa- ções de codificação de um bloco de previsão, que já foi codificado, armazenadas na memória de armazenamento de informações de codificação 114, uma pluralidade de candidatos de mesclagem (candidatos para informações de interprevisão) é calculada de modo a construir uma lista de candidatos de mesclagem, um candidato de mesclagem ideal é selecionado a partir da pluralidade de candidatos de mesclagem adicionada à lista de candidatos de mesclagem construída, às informações de interprevisão como, por exemplo, o modo de previsão, o índice de referência, o vetor de movimento e similares do candidate de mesclagem selecionado são alimentadas à unidade de previsão de compensação de movimento 105 e um índice de mesclagem que especifica o candidato de mesclagem selecionado é alimento à unidade de determinação de método de previsão 106.
[0080] A unidade de previsão de compensação de movimento 105 gera um sinal de foto previsto fazendo-se a compensação de movimento com base na foto de referência usando-se o vetor de movimento detectado pela unidade de detecção de vetor de movimento 102 e pela unidade de estimativa de informações de interprevisão 104 e fornece o sinal de foto previsto gerado à unidade de determinação de método de previsão 106. Além disso, na previsão L0 e na previsão L1, uma previsão de sentido único é feita. No caso da biprevisão Pred_BI, uma previsão bidirecional é feita, os sinais interprevistos das previsões L0 e L1 são multiplicados de modo adaptável pelos coeficientes de pe- Petição 870200052220, de 27/04/2020, pág. 69/154 sagem e os sinais resultantes são sobrepostos com um valor de deslocamento que é adicionado aos mesmos, de modo que um sinal de foto previsto final seja gerado.
[0081] A unidade de determinação de método de previsão 106, avaliando-se a quantidade de codificações de diferença de vetor de movimentos de acordo com uma pluralidade de métodos de previsão, a quantidade de distorção entre um sinal de foto previsto e um sinal de foto e similares, determina um modo de previsão PredMode que determina a interprevisão PRED_INTER ou a intraprevisão PRED_INTRA e o modo de partição PartMode nas unidades de blocos de codificação, determina um método de previsão como, por exemplo, um modo de mesclagem ou um modo de não mesclagem nas unidades de blocos de previsão na interprevisão PRED_INTER, determina o índice de mesclagem no caso do modo de mesclagem ou um sinalizador de in- terprevisão, um índice de previsão de vetor de movimento, os índices de referência de L0 e L1, uma diferença de vetor de movimento e similares em um caso no qual o modo não é o modo de mesclagem e fornece as informações de codificação de acordo com as determinações à primeira unidade de geração de fluxo de bits 109.
[0082] Além disso, a unidade de determinação de método de pre visão 106 armazena as informações que representam o método de previsão determinado e as informações de codificação que incluem um vetor de movimento e similares de acordo com o método de previsão determinado na memória de armazenamento de informações de codificação 114. Aqui no presente documento, as informações de codificação armazenadas incluem um modo de previsão PredMode, um modo de partição PartMode, sinalizadores predFlagL0 e predFlagL1 respectivamente que representam se usa a previsão L0 e se usa a previsão L1, os índices de referência refIdxL0 e refIdxL1 das listas de referência L0 e L1, os vetores de movimento mvL0 e mvL1 das listas de referên- Petição 870200052220, de 27/04/2020, pág. 70/154 cia L0 e L1 e similares. Aqui no presente documento, em um caso no qual o modo de previsão PredMode é a intraprevisão MODE_INTRA, ambas a sinalização predFlagL0 que representa se usa a previsão L0 e a sinalização predFlagL1 que representa se usa a previsão L1 são "0". Por outro lado, em um caso no qual o modo de previsão PredMode é a interprevisão MODE_INTER e o modo de interprevisão é a previsão L0 Pred_L0, a sinalização predFlagL0 que representa se usa a previsão L0 é "1" e a sinalização predFlagL1 que representa se usa a previsão L1 é "0". Além disso, em um caso no qual o modo de inter- previsão é a previsão L1 Pred_L1, a sinalização predFlagL0 que representa se usa a previsão L0 é "0" e a sinalização predFlagL1 que representa se usa a previsão L1 é "1". Em um caso no qual o modo de interprevisão é a biprevisão Pred_BI, ambas a sinalização predFlagL0 que representa se usa a previsão L0 e a sinalização predFlagL1 que representa se usa a previsão L1 são "1". A unidade de determinação de método de previsão 106 fornece um sinal de foto previsto de acordo com o modo de previsão determinado para a unidade de geração de sinal residual 107 e a unidade de sobreposição de sinal de foto decodificado 113.
[0083] A unidade de geração de sinal residual 107 gera um sinal residual realizando-se a subtração entre um sinal de foto a ser codificado e um sinal de foto previsto e fornece o sinal residual gerado para a unidade de quantização e transformação ortogonal 108.
[0084] A unidade de quantização e transformação ortogonal 108 gera um sinal residual quantizado e ortogonalmente transformado realizando-se quantização e transformação ortogonal do sinal residual de acordo com um parâmetro de quantização e fornece o sinal residual quantizado e ortogonalmente transformado gerado à segunda unidade de geração de fluxo de bits 110 e à unidade de transformação ortogonal inversa e quantização inversa 112. Além disso, a unidade de quan- Petição 870200052220, de 27/04/2020, pág. 71/154 tização e transformação ortogonal 108 armazena o parâmetro de quantização na memória de armazenamento de informações de codificação 114.
[0085] A primeira unidade de geração de fluxo de bits 109, em adi ção às informações nas unidades de sequências, às fotos, às fatias e aos blocos de codificação, codifica as informações de codificação de acordo com o método de previsão determinado pela unidade de determinação de método de previsão 106 para cada bloco de codificação e cada bloco de previsão. Mais especificamente, um primeiro fluxo de bits é gerado realizando-se codificação de entropia das informações de codificação como, por exemplo, as informações relacionadas a um modo de previsão PredMode para cada bloco de codificação, um modo de partição PartMode, no caso da interprevisão PRED_INTER, uma sinalização usada para determinar o modo de mesclagem ou não, no caso do modo de mesclagem, um índice de mesclagem, no caso de um modo de não mesclagem, um modo de interprevisão, um índice de previsão de vetor de movimento, uma diferença de vetor de movimento e similares de acordo com uma regra de sintaxe regulada a ser descrita mais tarde e o primeiro fluxo de bits de codificação gerado é fornecido à unidade de multiplexação 111.
[0086] A segunda unidade de geração de fluxo de bits 110 gera um segundo fluxo de bits realizando-se a codificação de entropia do sinal residual quantizado e ortogonalmente transformado de acordo com a regra de sintaxe regulada e fornece o segundo fluxo de bits gerado para a unidade de multiplexação 111. A unidade de multiplexação 111 multiplexa o primeiro fluxo de bits e o segundo fluxo de bits de acordo com uma regra de sintaxe regulada e emita o fluxo de bit multiplexado.
[0087] A unidade de transformação ortogonal inversa e quantiza- tizado e transformado ortogonalmente fornecido a partir da unidade de quantização e transformação ortogonal 108 e fornece o sinal residual para a unidade de sobreposição de sinal de foto decodificado 113.
[0088] A unidade de sobreposição de sinal de foto decodificado 113 gera uma foto decodificada sobrepondo-se um sinal de foto previsto de acordo com a determinação feita pela unidade de determinação de método de previsão 106 e o sinal residual que é inversamente quantizado e transformado de modo inversamente ortogonal pela unidade de transformação ortogonal inversa e quantização inversa 112 juntos e armazena a foto decodificada gerada na memória de foto de decodificação 115. Além disso, há também um caso no qual se realiza um processo de filtragem que diminui uma distorção como, por exemplo, uma distorção de bloco de acordo com a codificação para a foto codificada e a foto decodificada processada é armazenada na memória de foto de decodificação 115.
[0089] A Figura 2 é um diagrama em blocos que ilustra a configu ração de um dispositivo de decodificação de foto em movimento de acordo com uma modalidade da presente invenção que corresponde ao dispositivo de codificação de foto em movimento ilustrado na Figura 1. O dispositivo de decodificação de foto em movimento de acordo com a modalidade inclui: uma unidade de separação 201; uma primeira unidade de decodificação fluxo de bits 202; uma segunda unidade de decodificação fluxo de bits 203; uma unidade de cálculo de vetor de movimento 204; uma unidade de estimativa de informações de inter- previsão 205; unidade de compensação de movimento 206; uma unidade de transformação ortogonal inversa e quantização inversa 207; uma unidade de sobreposição de sinal de foto decodificado 208; uma memória de armazenamento de informações de codificação 209, e uma memória de foto de decodificação 210.
[0090] Uma vez que o processo de decodificação do dispositivo de Petição 870200052220, de 27/04/2020, pág. 73/154 decodificação de foto em movimento ilustrado na Figura 2 corresponde ao processo de codificação fornecido no interior do dispositivo de codificação de foto em movimento ilustrado na Figura 1, as configurações da unidade de compensação de movimento 206, a unidade de transformação ortogonal inversa e quantização inversa 207, a unidade de sobreposição de sinal de foto decodificado 208, a memória de armazenamento de informações de codificação 209 e a memória de foto de decodificação 210 ilustrados na Figura 2 têm funções que correspondem respectivamente às configurações da unidade de previsão de compensação de movimento 105, a unidade de transformação ortogonal inversa e quantização inversa 112, a unidade de sobreposição de sinal de foto decodificado 113, a memória de armazenamento de informações de codificação 114 e a memória de foto de decodificação 115 do dispositivo de codificação de foto em movimento ilustrados na Figura 1.
[0091] O fluxo de bits fornecido à unidade de separação 201 é se parado de acordo com uma regra de sintaxe regulada e os fluxos de bits separados são fornecidos à primeira unidade de decodificação fluxo de bits 202 e à segunda unidade de decodificação fluxo de bits 203.
[0092] A primeira unidade de decodificação fluxo de bits 202 codi fica os fluxos de bits fornecidos, adquirindo, desse modo, as informações nas unidades de sequências, nas fotos, nas fatias e nos blocos de codificação e as informações de codificação nas unidades de blocos de previsão. Mais especificamente, as informações de codificação como, por exemplo, as informações relacionadas a um modo de previsão PredMode usado para determinar a interprevisão PRED_INTER ou a intraprevisão PRED_INTRA nas unidades de blocos de codificação, um modo de partição PartMode, no caso da interprevisão PRED_INTER, uma sinalização usada para determinar o modo de mesclagem ou não, no caso do modo de mesclagem, um índice de Petição 870200052220, de 27/04/2020, pág. 74/154 mesclagem, no caso de um modo de não mesclagem, um modo de interprevisão, um índice de previsão de vetor de movimento, uma diferença de vetor de movimento e similares é decodificada de acordo com uma regra de sintaxe regulada a ser descrita mais tarde e as informações de codificação são fornecidas para a unidade de cálculo de vetor de movimento 204 ou para a unidade de estimativa de informa-ções de interprevisão 205.
[0093] A segunda unidade de decodificação fluxo de bits 203 cal cula um sinal residual quantizado e transformado ortogonalmente de-codificando-se o fluxo de bits fornecido e fornece o sinal residual quan- tizado e transformado ortogonalmente para a unidade de transformação ortogonal inversa e quantização inversa 207.
[0094] Em um caso no qual o bloco de previsão que é o alvo de decodificação não é o modo de mesclagem, a unidade de cálculo de vetor de movimento 204, usando-se as informações de codificação de um sinal de foto, que já foi decodificado, armazenadas na memória de armazenamento de informações de codificação 209, calcula uma pluralidade de candidatos de previsão de vetor de movimento de modo a gerar uma lista de previsão de vetor de movimento a ser descrita mais tarde, seleciona uma previsão de vetor de movimento de acordo com um índice de previsão de vetor de movimento que é decodificada e fornecida pela primeira unidade de decodificação fluxo de bits 202 dentre a pluralidade de candidatos de previsão de vetor de movimento adicionada à lista de previsão de vetor de movimento construída, calcula um vetor de movimento com base no vetor diferencial pela primeira unidade de decodificação fluxo de bits 202 e a previsão de vetor de movimento selecionada, fornece o vetor de movimento para a unidade de compensação de movimento 206 junto com outras informações de codificação e armazena o vetor de movimento na memória de armazenamento de informações de codificação 209. As informações de codifi- Petição 870200052220, de 27/04/2020, pág. 75/154 cação do bloco de previsão que é fornecida e armazenada aqui no presente documento inclui o modo de previsão PredMode, o modo de partição PartMode, as sinalizações predFlagL0 e predFlagL1 que representam respectivamente se usa a previsão L0 e se usa a L1 previsão, os índices de referência refIdxL0 e refIdxL1 das listas de referência L0 e L1, os vetores de movimento mvL0 e mvL1 das listas de referência L0 e L1 e similares. Aqui no presente documento, em um caso no qual o modo de previsão PredMode é a intraprevisão MO- DE_INTRA, ambas a sinalização predFlagL0 que representa se usa a previsão L0 e a sinalização predFlagL1 que representa se usa a previsão L1 são "0". Por outro lado, em um caso no qual o modo de previsão PredMode é a interprevisão MODE_INTER e o modo de interpre- visão é a previsão L0 Pred_L0, a sinalização predFlagL0 que representa se usa a previsão L0 é "1" e a sinalização predFlagL1 que representa se usa a previsão L1 é "0". Além disso, em um caso no qual o modo de interprevisão é a previsão L1 Pred_L1, a sinalização predFlagL0 que representa se usa a previsão L0 é "0" e a sinalização predFlagL1 que representa se usa a previsão L1 é "1". Em um caso no qual o modo de interprevisão é a biprevisão Pred_BI, ambas a sinalização predFlagL0 que representa se usa a previsão L0 e a sinalização predFlagL1 que representa se usa a previsão L1 são "1". A configuração e a operação da unidade de cálculo de vetor de movimento 204 será descrita em detalhe posteriormente.
[0095] Quando o bloco de previsão que é o alvo de decodificação está no modo de mesclagem, a unidade de estimativa de informações de interprevisão 205 estima as informações de interprevisão do modo de mesclagem. Usando-se as informações de codificação do bloco de previsão, que já foram decodificadas, armazenadas na memória de armazenamento de informações de codificação 114, uma pluralidade de candidatos de mesclagem é calculada, de modo a construir uma Petição 870200052220, de 27/04/2020, pág. 76/154 lista de candidatos de mesclagem, selecionar um candidato de mes- clagem que corresponde ao índice de mesclagem que é decodificado e fornecido pela primeira unidade de decodificação fluxo de bits 202 dentre a pluralidade de candidatos de mesclagem adicionada à lista de candidatos de mesclagem construída, as informações de interprevisão como, por exemplo, o modo de previsão PredMode do candidato de mesclagem selecionado, o modo de partição PartMode, as sinaliza-ções que representam respectivamente se usa a previsão L0 e se usa a previsão L1 e os índices de referência das listas de referência L0 e L1 e os vetores de movimento das listas de referência L0 e L1 e similares são fornecidas para a unidade de compensação de movimento 206 e são armazenadas na memória de armazenamento de informações de codificação 209.
[0096] A unidade de compensação de movimento 206 gera um si nal de foto previsto fazendo-se a compensação de movimento com base na foto de referência usando-se o vetor de movimento calculado através da unidade de cálculo de vetor de movimento 204 e fornece o sinal de foto previsto gerado para a unidade de sobreposição de sinal de foto decodificado 208. Além disso, no case da biprevisão Pred_BI, dois sinais de foto compensados por movimento das previsões L0 e L1 são multiplicados de modo adaptativo por coeficientes de pesagem e são sobrepostos juntos, de modo que um sinal de foto previsto final seja gerado.
[0097] A unidade de transformação ortogonal inversa e quantiza- ção inversa 207 realiza uma transformação ortogonal inversa e uma quantização inversa do sinal residual quantizado e transformado orto-gonalmente decodificado pela primeira unidade de decodificação fluxo de bits 202, adquirindo, desse modo, um sinal residual inversamente quantizado e transformado de modo inversamente ortogonal.
[0098] A unidade de sobreposição de sinal de foto decodificado Petição 870200052220, de 27/04/2020, pág. 77/154 208 decodifica um sinal de foto de decodificação sobrepondo-se o sinal de foto previsto que é obtido através da unidade de compensação de movimento 206 através da compensação de movimento e o sinal residual que é quantizado inversamente e transformado de modo inversamente ortogonal pela unidade de transformação ortogonal inversa e quantização inversa 207 juntos e armazena o sinal de foto de de- codificação na memória de foto de decodificação 210. Quando o sinal de foto de decodificação for armazenado na memória de foto de deco- dificação 210, há também um caso no qual um processo de filtragem que diminui uma distorção como, por exemplo, uma distorção de bloco de acordo com a codificação é realizada para a foto decodificada e a foto decodificada processada é armazenada na memória de foto de decodificação 210.
SINTAXE
[0099] Em seguida, se descreverá a sintaxe que é uma regra co mum ao processo de codificação e ao processo de decodificação de um fluxo de bits de uma foto em movimento que é codificada por um dispositivo de codificação de foto em movimento que inclui o método de previsão de vetor de movimento de acordo com essa modalidade e é decodificada por um dispositivo de decodificação.
[00100] A Figura 10 ilustra a estrutura de uma primeira sintaxe descrita em um cabeçalho de fatia nas unidades de fatias de um fluxo de bits gerado de acordo com essa modalidade. Aqui no presente documento, apenas os elementos de sintaxe relacionados a essa modalidade são ilustrados. Em um caso no qual o tipo de fatia é B, dispõe-se uma sinalização collocated_from_l0_flag que representa uma das listas de referência L0 e L1 na qual se define uma foto colPic de um tempo diferente usado quando um candidato de previsão de vetor de movimento da direção de tempo ou um candidato de mesclagem é calcu-lado. A sinalização collocated_from_l0_flag será descrita em detalhe Petição 870200052220, de 27/04/2020, pág. 78/154 mais tarde.
[00101] Além disso, os elementos de sintaxe descritos acima podem ser dispostos em um conjunto de parâmetro de foto que descreve o conjunto de elementos de sintaxe nas unidades de fotos.
[00102] A Figura 11 ilustra o padrão da sintaxe descrita nas unidades de blocos de previsão. Em um caso no qual o valor do modo de previsão PredMode de um bloco de previsão representa a interprevi- são MODE_INTER, uma sinalização merge_flag[x0][y0] que representa um modo de mesclagem ou não é disposto. Aqui no presente documento, x0 e y0 são índices que representam a posição de um pixel do bloco de previsão esquerdo superior dentro da foto do sinal de lumi- nância e a sinalização merge_flag[x0][y0] é uma sinalização que representa se ou não o modo é um modo de mesclagem do bloco de previsão posicionado em (x0, y0) dentro da foto.
[00103] Em seguida, em um caso no qual a sinalização mer- ge_flag[x0][y0] é "1", a mesma representa o modo de mesclagem e um elemento de sintaxe merge_idx[x0][y0] de um índice de uma lista de mesclagem que é uma lista de candidatos de mesclagem a ser referida é disposto. Aqui no presente documento, x0 e y0 são índices que representam a posição de um pixel do bloco de previsão esquerdo superior dentro da foto e o elemento de sintaxe merge_idx[x0][y0] é um índice de mesclagem do bloco de previsão posicionado em (x0, y0) dentro da foto.
[00104] Por outro lado, em um caso no qual a sinalização merge_flag[x0][y0] é "0", a mesma representa que o modo não é o modo de mesclagem e, em um caso no qual o tipo de fatia é B, um elemento de sintaxe inter_pred_flag[x0][y0] que especifica o modo de interprevisão é disposto e a previsão L0 Pred_L0, a previsão L1 Pred_L1 ou a biprevisão Pred_BI é identificada com o uso desse elemento de sintaxe. De acordo com o modo de interprevisão, para cada uma das listas de referência L0 e L1, um elemento de sintaxe ref_idx_l0[x0][y0] ou ref_idx_l1[x0][y0] do índice de referência usado para especificar a foto de referência e um elemento de sintaxe mvd_l0[x0][y0][j] ou mvd_l1[x0][y0][j] de uma diferença de vetor de movimento que é uma diferença entre o vetor de movimento do bloco de previsão obtido no processo de detecção vetor de movimento e a previsão de vetor de movimento são dispostos. Aqui no presente documento, x0 e y0 são índices que representam a posição de um pixel esquerdo superior do bloco de previsão dentro da foto, ref_idx_l0[x0][y0] e mvd_l0[x0][y0][j] são o índice de referência L0 e uma diferença de vetor de movimento do bloco de previsão posicionado em (x0, y0) dentro da foto e ref_idx_l1[x0][y0] e mvd_l1[x0][y0][j] são o índice de referência L1 e uma diferença de vetor de movimento do bloco de previsão posicionado em (x0, y0) dentro da foto. Além disso, j representa um componente da diferença de vetor de movimento. Dessa forma, um componente x é representado em um caso no qual j é "0" e um componente y é representado em um caso no qual j é "1". Em seguida, os elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] dos índices da lista de previsão de vetor de movimento que é uma lista de previsões de vetor de movimento a ser referida são dispostos. Aqui no presente documento, x0 e y0 são índices que representam a posição de um pixel esquerdo superior do bloco de previsão dentro da foto e mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] são os índices de previsão de vetor de movimento dos índices de referência L0 e L1 do bloco de previsão posicionado em (x0, y0) dentro da foto.
[00105] O método de previsão de vetor de movimento de acordo com uma modalidade é usado na unidade de cálculo de diferença de vetor de movimento 103 do dispositivo de codificação de foto em movimento ilustrada na Figura 1 e a unidade de cálculo de vetor de movimento 204 do dispositivo de decodificação em movimento ilustrado na Figura 2.
[00106] O método de previsão de vetor de movimento, de acordo com a modalidade, será descrito com referência às Figuras. O método de previsão de vetor de movimento é usado em qualquer um do processo de codificação e o processo de decodificação em unidades de blocos de previsão que configuram um bloco de codificação. Em um caso em que o modo de previsão do bloco de previsão é a interprevi- são MODE_INTER, e o modo não é o modo de mesclagem, no caso de codificação, o método de previsão de vetor de movimento é usado quando um de previsão de vetor de movimento é derivado usando um vetor de movimento codificado que é usado quando uma diferença de vetor de movimento codificado a partir de um vetor de movimento que é o alvo de codificação. Além disso, no caso de decodificação, o método de previsão de vetor de movimento é usado quando um de previsão de vetor de movimento é derivado usando um vetor de movimento decodificado usado quando um vetor de movimento do alvo de decodifi- cação é calculado.
[00107] (Previsão de Vetor de movimento em Codificação)
[00108] No dispositivo de codificação de foto móvel que codifica um fluxo de bit de uma foto móvel com base na sintaxe descrita acima, a operação do método de previsão de vetor de movimento, de acordo com a modalidade, será descrita. Em um caso em que a compensação de movimento é feita em unidades de fatias, em outras palavras, em um caso em que o tipo de fatia é uma fatia P (fatia de previsão unidire- cional) ou uma fatia B (fatia de previsão bidirecional), e o modo de previsão do bloco de previsão dentro da fatia é a interprevisão MO- DE_INTER, o método de previsão de vetor de movimento é aplicado a um bloco de previsão usado para codificar ou decodificar uma diferença de vetor de movimento que não está no modo de mesclagem.
[00109] A Figura 12 é um diagrama que ilustra uma configuração Petição 870200052220, de 27/04/2020, pág. 81/154 detalhada da unidade de cálculo de diferença de vetor de movimento 103 do dispositivo de codificação de foto móvel ilustrado na Figura 1. Uma porção da Figura 12 que é circundada por uma linha de quadro espessa ilustra a unidade de cálculo de diferença de vetor de movimento 103.
[00110] Além disso, uma porção que é circundada por uma linha pontilhada espessa no interior da mesma ilustra unidades operacionais, de acordo com o método de previsão de vetor de movimento a ser descrito posteriormente, e é similarmente instalada em um dispositivo de decodificação de foto móvel que corresponde ao dispositivo de codificação de foto móvel, de acordo com a modalidade, de modo que o mesmo resultado de determinação sem ter contradição entre o processo de codificação e o processo de decodificação seja adquirido. Doravante, o método de previsão de vetor de movimento no processo de codificação será descrito com referência a esse desenho.
[00111] A unidade de cálculo de diferença de vetor de movimento 103 inclui: uma unidade de geração de candidato de previsão de vetor de movimento 121; uma unidade de adição de candidato de previsão de vetor de movimento 122; uma unidade de remoção de candidato redundante de previsão de vetor de movimento 123; uma unidade de limitação de número de candidato de previsão de vetor de movimento 124; uma unidade de cálculo de quantidade de codificação de candidato de previsão de vetor de movimento 125; uma unidade de seleção de previsão de vetor de movimento 126; e uma unidade de subtração de vetor de movimento 127.
[00112] Em um processo de cálculo de diferença de vetor de movimento realizado pela unidade de cálculo de diferença de vetor de movimento 103, diferenças de vetor de movimento de vetores de movimento usados em um método de interprevisão selecionado para o bloco-alvo de codificação são calculadas para a lista de referências L0 e L1. Mais especificamente, em um caso em que o modo de previsão PredMode do bloco-alvo de codificação é o interprevisão MO- DE_INTER, e o modo de interprevisão do bloco-alvo de codificação é a previsão L0 Pred_L0, uma lista de previsão de vetor de movimento mvpListL0 da lista de referência L0 é calculada, um de previsão de vetor de movimento mvpL0 é selecionado, e uma diferença de vetor de movimento mvdL0 do vetor de movimento da lista de referência L0 é calculada. Por outro lado, em um caso em que o modo de interprevi- são Pred_L1 do bloco-alvo de codificação é a previsão L1, uma lista de previsão de vetor de movimento mvpListL1 da lista de referência L1 é calculada, um de previsão de vetor de movimento mvpL1 é selecionado, e uma diferença de vetor de movimento mvdL1 do vetor de movimento da lista de referência L1 é calculada. Além disso, em um caso em que o modo de interprevisão do bloco-alvo de codificação é o Pred_BI de biprevisão, tanto a previsão L0 quanto a previsão L1 são realizadas, desse modo, uma lista de previsão de vetor de movimento mvpListL0 da lista de referência L0 é calculada, um de previsão de vetor de movimento mvpL0 da lista de referência L0 é selecionado, e uma diferença de vetor de movimento mvdL0 do vetor de movimento mvL0 da lista de referência L0 é calculada, e uma lista de previsão de vetor de movimento mvpListL1 da lista de referência L1 é calculada, um de previsão de vetor de movimento mvpL1 da lista de referência L1 é calculado, e uma diferença de vetor de movimento mvdL1 do vetor de movimento mvL1 da lista de referência L1 é calculada.
[00113] Embora o processo de cálculo de diferença de vetor de movimento seja realizado para cada uma das listas de referência L0 e L1, o processo de cálculo de diferença de vetor de movimento é comum a ambas as listas de referência L0 e L1. Assim, na descrição a seguir, L0 e L1 serão denotadas por LX comum. No processo de cálculo de diferença de vetor de movimento da lista de referência L0, X é "0", e no Petição 870200052220, de 27/04/2020, pág. 83/154 processo de cálculo de diferença de vetor de movimento da lista de referência L1, X é "1". Além disso, durante o processo de cálculo de diferença de vetor de movimento da lista de referência LX, em um caso em que as informações não da lista de referência LX, mas informações da outra lista são referidas, a outra lista será denotada por LY.
[00114] A unidade de geração de candidato de previsão de vetor de movimento 121, para cada uma das listas de referências L0 e L1, de três grupos de bloco de previsão incluindo: um grupo de bloco de previsão (um grupo de bloco de previsão vizinho do lado esquerdo do bloco de previsão dentro da foto do bloco de previsão que é o alvo de codificação; A0 e A1 ilustrados na Figura 5) vizinho do lado esquerdo; um grupo de bloco de previsão (um grupo de bloco de previsão vizinho no lado superior do bloco de previsão dentro da foto do bloco de previsão que é o alvo de codificação; B0, B1 e B2 ilustrados na Figura 5) vizinho no lado superior; e um grupo de bloco de previsão de um tempo diferente (um grupo de bloco de previsão, que já foi codificado, presen-te na mesma posição daquele de um bloco de previsão que é o alvo de codificação ou em uma posição vizinha do mesmo em uma foto de um tempo diferente do tempo do bloco de previsão; T0 e T1 ilustrados na Figura 9), deriva um vetor de movimento mvLXCol, mvLXA e mvLXB para cada grupo de bloco de previsão, define os vetores de movimento derivados como candidatos de previsão de vetor de movimento, e fornece os candidatos de previsão de vetor de movimento à unidade de adição de candidato de previsão de vetor de movimento 122. Doravante, o vetor de movimento mvLXCol será referido como um candidato de previsão de vetor de movimento de tempo, e os vetores de movimento mvLXA e mvLXB serão referidos como candidatos de previsão de vetor de movimento espaciais. Quando os candidatos de previsão de vetor de movimento são calculados, as informações de codificação tais como o índice de referência e o POC do bloco de pre- Petição 870200052220, de 27/04/2020, pág. 84/154 visão que é o alvo de codificação, o modo de previsão de um bloco de previsão codificado que é armazenado na memória de armazenamento de informações de codificação 114, o índice de referência para cada lista de referência, o POC da foto de referência, o vetor de movimento, e similares são usadas.
[00115] Os candidatos de previsão de vetor de movimento mvLXCol, mvLXA e mvLXB podem ser derivados realizando escalonamento de acordo com a relação entre o POC da foto de alvo de codificação e o POC da foto de referência.
[00116] A unidade de geração de candidato de previsão de vetor de movimento 121, para cada grupo de bloco de previsão, em uma ordem predeterminada, faz uma determinação de uma condição a ser descrita posteriormente para o bloco de previsão dentro de cada grupo de bloco de previsão, seleciona um vetor de movimento do bloco de previsão que satisfaz, primeiramente, a condição e define os vetores de movimento selecionados como os candidatos de previsão de vetor de movimento mvLXCol, mvLXA e mvLXB.
[00117] A fim de calcular um de previsão de vetor de movimento a partir de um grupo de bloco de previsão vizinho no lado esquerdo, na ordem (a ordem de A0 e A1 a partir de A0 ilustrado na Figura 5) do lado inferior para o lado superior do grupo de bloco de previsão vizinho no lado esquerdo, a fim de calcular um de previsão de vetor de movimento a partir de um grupo de bloco de previsão vizinho no lado superior, na ordem (a ordem de B0, B1 e B2 a partir de B0 ilustrado na Figura 5) do lado direito para o lado esquerdo do grupo de bloco de previsão vizinho no lado superior, e a fim de calcular um vetor de movimento de previsão a partir de um grupo de bloco de previsão de um tempo diferente, na ordem de T0 e T1 a partir de T0 ilustrado na Figura 9, uma determinação da condição a ser descrita posteriormente é feita para cada bloco de previsão, um vetor de movimento do bloco de pre- Petição 870200052220, de 27/04/2020, pág. 85/154 visão que satisfaz, primeiramente, a condição é selecionado, e os candidatos de previsão de vetor de movimento são definidos como mvLXCol, mvLXA e mvLXB.
[00118] Em outras palavras, no grupo de bloco de previsão vizinho à esquerda, um bloco de previsão mais baixo de todos tem o nível de prioridade mais alto, e o nível de prioridade é atribuído a partir do lado inferior para o lado superior. Além disso, no grupo de bloco de previsão vizinho superior, um bloco de previsão mais à direita tem o nível de prioridade mais alto, e o nível de prioridade é atribuído a partir do lado direito para o lado esquerdo. No grupo de bloco de previsão de um tempo diferente, o bloco de previsão T0 tem o nível de prioridade mais alto, e o nível de prioridade é atribuído na ordem de T0 e T1.
[00119] (Ciclo de Determinação de condição de Bloco de Previsão Espacial)
[00120] Para o grupo de bloco de previsão vizinho esquerdo, as determinações de condição são aplicadas com os níveis de prioridade de determinações de condição 1, 2, 3 e 4 descritos abaixo. Entretanto, para o grupo de bloco de previsão vizinho superior, as determinações de condição são aplicadas com os níveis de prioridade de determinações de condição 1 e 2 descritos abaixo.
[00121] Determinação de Condição
[00122] Determinação de condição 1: Em uma lista de referência LX que é a mesma daquela do vetor de movimento da lista de referência LX, que é o alvo de cálculo de diferença de vetor de movimento, do bloco de previsão que é o alvo de codificação/decodificação, uma previsão com o uso do mesmo índice de referência, em outras palavras, a mesma foto de referência também é feita em um bloco de previsão vizinho.
[00123] Determinação de condição 2: Embora a lista de referência LY seja diferente daquela do vetor de movimento da lista de referência LX do alvo de cálculo de diferença de vetor de movimento do bloco de previsão que é o alvo de codificação/decodificação, uma previsão com o uso da mesma foto de referência é realizada em um bloco de previsão vizinho.
[00124] Determinação de condição 3: Usando-se a lista de referência LX que é a mesma daquela do vetor de movimento da lista de referência LX do alvo de cálculo de diferença de vetor de movimento do bloco de previsão que é o alvo de codificação/decodificação, uma previsão com o uso de uma foto de referência diferente é realizada para um bloco de previsão vizinho.
[00125] Determinação de condição 4: Usando-se a lista de referência LY diferente do vetor de movimento da lista de referência LX do alvo de cálculo de diferença de vetor de movimento do bloco de previsão que é o alvo de codificação/decodificação, uma previsão usando uma foto de referência diferente é realizada para um bloco de previsão vizinho.
[00126] Em um caso em que qualquer uma de tais condições é satisfeita, um vetor de movimento que satisfaz a condição é empregado como um candidato de vetor de previsão no bloco de previsão, e as subsequentes determinações de condição não são feitas. Além disso, em um caso em que a condição de Determinação de condição 1 ou Determinação de condição 2 é satisfeita, o vetor de movimento do bloco de previsão vizinho correspondente é o mesmo da foto de referência do bloco de previsão de alvo de codificação e é diretamente definido como o candidato de previsão de vetor de movimento. Por outro lado, em um caso em que a condição de Determinação de condição 3 ou 4 é satisfeita, o vetor de movimento do bloco de previsão vizinho correspondente é diferente da foto de referência do bloco de previsão que é o alvo de codificação e, assim, o candidato de previsão de vetor de movimento é calculado realizando escalonamento com base no ve- Petição 870200052220, de 27/04/2020, pág. 87/154 tor de movimento.
[00127] As quatro determinações de condição descritas acima são feitas realizando varredura nos blocos de previsão dentro do grupo de bloco de previsão na sequência a seguir, desse modo um vetor de previsão é determinado.
[00128] Sequência de Varredura de Vetor de Previsão
[00129] A determinação do de previsão de vetor de movimento com o uso da mesma foto de referência para o qual o cálculo de escalonamento não é necessário é configurado para a prioridade, e duas determinações de condição das quatro determinações de condição são feitas para cada bloco de previsão, e, em um caso em que as condições não são satisfeitas, a determinação de condição seguinte do bloco de previsão é feita. Primeiramente, as Determinações de Condição 1 e 2 são feitas para cada bloco de previsão disposto dentro do grupo de bloco de previsão vizinho e, a seguir, as Determinações de Condição 3 e 4 são feitas para cada bloco de previsão disposto dentro do grupo de bloco de previsão vizinho.
[00130] Mais especificamente, as determinações de condição são feitas nos níveis de prioridade a seguir (aqui, N é A ou B).
[00131] Determinação de Condição 1 de Bloco de Previsão N0 (a mesma lista de referência LX e a mesma foto de referência)
[00132] Determinação de Condição 2 de Bloco de Previsão N0 (uma lista de referência LY diferente e a mesma foto de referência)
[00133] Determinação de Condição 1 de Bloco de Previsão N1 (a mesma lista de referência LX e a mesma foto de referência)
[00134] Determinação de Condição 2 de Bloco de Previsão N1 (uma lista de referência LY diferente e a mesma foto de referência)
[00135] Determinação de Condição 1 de Bloco de Previsão N2 (a mesma lista de referência LX e a mesma foto de referência)
[00136] Determinação de Condição 2 de Bloco de Previsão N2 (uma lista de referência LY diferente e a mesma foto de referência)
[00137] Determinação de Condição 3 de Bloco de Previsão N0 (a mesma lista de referência LX e uma foto de referência diferente)
[00138] Determinação de Condição 4 de Bloco de Previsão N0 (uma lista de referência LY diferente e uma foto de referência diferente)
[00139] Determinação de Condição 3 de Bloco de Previsão N1 (a mesma lista de referência LX e uma foto de referência diferente)
[00140] Determinação de condição 4 de Bloco de Previsão N2 (uma lista de referência LY diferente e uma foto de referência diferente)
[00141] Determinação de Condição 3 de Bloco de Previsão N1 (a mesma lista de referência LX e uma foto de referência diferente)
[00142] Determinação de Condição 4 de Bloco de Previsão N2 (uma lista de referência LY diferente e uma foto de referência diferente)
[00143] Realizando a varredura, conforme descrito acima, um de previsão de vetor de movimento, que tem alta precisão de previsão, com o uso da mesma foto de referência para o qual o cálculo de escalonamento não é necessário pode ser facilmente selecionado e, assim, a quantidade de codificação da diferença de vetor de movimento diminui, e há uma vantagem em aperfeiçoar a eficiência de codificação.
[00144] Aqui, no grupo de bloco de previsão vizinho esquerdo, o grupo é configurado por dois blocos de previsão e, assim, as sequências de 5, 6, 11 e 12 da varredura descrita acima não são realizadas.
[00145] Além disso, no grupo de bloco de previsão vizinho superior, o grupo é configurado por três blocos de previsão e, assim, as sequências de 1 a 12 da varredura descrita acima podem ser realizadas. Entretanto, na presente invenção, somente as sequências 1 a 6 da varredura descrita acima são realizadas, mas as sequências 7 a 12 não são realizadas (Determinações de condição 3 e 4 não são feitas). Petição 870200052220, de 27/04/2020, pág. 89/154 Em outras palavras, no grupo de bloco de previsão vizinho superior, a varredura sob a condição para a qual o cálculo de escalonamento é necessário é omitida.
[00146] Dessa maneira, o cálculo de escalonamento para o qual a divisão do grupo de bloco de previsão vizinho superior é necessária pode ser omitida e, assim, o cálculo de escalonamento pode ser limitado apenas aos candidatos de vetor de previsão do grupo de bloco de previsão vizinho esquerdo. Em um caso em que o grupo de bloco de previsão vizinho esquerdo e o grupo de bloco de previsão vizinho superior são processados de um modo paralelo, como um candidato de vetor de previsão espacial, apenas um circuito de cálculo de escalonamento pode ser incluído, através do qual a escala de circuito pode ser reduzida. Além disso, no caso em que o grupo de bloco de previsão vizinho esquerdo e o grupo de bloco de previsão vizinho superior são processados de um modo paralelo, uma diferença na quantidade de processamento de acordo com uma diferença no número de blocos de previsão configurados dentro do grupo de bloco de previsão vizinho pode ser diminuída. Em outras palavras, omitindo-se o processo do cálculo de escalonamento do grupo de bloco de previsão vizinho superior do qual o número de blocos de previsão é grande, a quantidade de cálculo máxima a qual um fenômeno de engarrafamento ocorre pode ser reduzido. Como resultado, uma diferença entre a quantidade de cálculo do grupo de bloco de previsão vizinho esquerdo e a quantidade de cálculo do grupo de bloco de previsão vizinho superior diminui, através da qual o processamento paralelo pode ser realizado de modo eficaz.
[00147] O fluxo do processo descrito acima será descrito em detalhe com referência aos fluxogramas ilustrados nas Figuras 17 a 21.
[00148] A derivação de informações de movimento de um bloco vizinho será descrito. Nessa modalidade, um buffer de linha e um buffer de bloco em que as informações de movimento são armazenadas são dispostos. Em um caso em que as informações de movimento são derivadas de um bloco de previsão vizinho no lado esquerdo, as informa- ções de movimento são derivadas do buffer de bloco, e, para um bloco de previsão vizinho no lado superior, em um caso em que o bloco de previsão vizinho no lado superior está dentro do bloco árvore, de maneira similar ao caso do bloco de previsão vizinho no lado esquerdo, as informações de movimento são derivadas a partir do buffer de bloco. Por outro lado, em um caso em que o bloco de previsão vizinho no lado superior é disposto fora do bloco árvore, as informações de movimento são derivadas a partir do buffer de linha.
[00149] Aqui, a fim de diminuir a quantidade de uso da memória interna reduzindo o tamanho do buffer de linha das informações de movimento, o tamanho do buffer de linha no qual as informações de movimento são armazenadas é comprimido para 1/2 na direção horizontal. Mais especificamente, a fim de prever um vetor de movimento de um bloco vizinho que não codificado, enquanto o buffer de bloco armazena as informações de movimento em uma unidade mínima (por exemplo, um bloco de 4x4) da compensação de movimento de modo a ser preparado para um acesso a partir de um bloco vizinho, o buffer de linha reduz informações de movimento em uma unidade (por exemplo, um bloco de 4x8) que é duas vezes a unidade mínima da compensação de movimento na direção horizontal e armazena as informações de movimento reduzidas no buffer de linha. Assim, em um caso em que um bloco vizinho na direção vertical é disposto fora do bloco árvore, há uma possibilidade de derivar informações de movimento que são diferentes das informações de movimento reais do bloco. Em outras palavras, comprimindo o tamanho do buffer de linha das informações de movimento para 1/2 na direção horizontal, consequentemente, um de previsão de vetor de movimento derivado a partir do grupo de Petição 870200052220, de 27/04/2020, pág. 91/154 bloco de previsão vizinho no lado superior tem confiabilidade do de previsão de vetor de movimento mais baixo do que o de previsão de vetor de movimento derivado a partir do grupo de bloco de previsão vizinho no lado esquerdo. Uma das razões para omitir a varredura sob a condição a qual o cálculo de escalonamento é necessário no grupo de bloco de previsão vizinho no lado superior é que, mesmo quando o cálculo de escalonamento do de previsão de vetor de movimento a partir do grupo de bloco de previsão vizinho no lado superior é omitido reduzindo o tamanho do buffer de linha, há uma baixa influência na eficiência de codificação.
[00150] Aqui, embora a razão de compressão do buffer de linha tenha sido descrita como 1/2, aparentemente, como a razão de compressão aumenta, a confiabilidade do de previsão de vetor de movimento derivado a partir do grupo de bloco de previsão vizinho no lado superior é abaixada e, assim, o efeito de omitir a varredura sob uma condição a qual o cálculo de escalonamento é necessário no grupo de bloco de previsão vizinho no lado superior é aperfeiçoado.
[00151] O cálculo do candidato de vetor de previsão mvLXCol a partir do grupo de bloco de previsão de um tempo diferente será descrito posteriormente em detalhe com referência aos fluxogramas ilustrados nas Figuras 24 a 30.
[00152] A descrição será apresentada com referência novamente à Figura 12. A seguir, a unidade de adição de candidato de previsão de vetor de movimento 122 armazena os candidatos de previsão de vetor de movimento calculados mvLXCol, mvLXA e mvLXB na lista de previsão de vetor de movimento mvpListLX.
[00153] A seguir, a unidade de remoção de candidato redundante de previsão de vetor de movimento 123 compara os valores de vetor de movimento dos candidatos de previsão de vetor de movimento que são armazenados na lista de previsão de vetor de movimento mvpLisPetição 870200052220, de 27/04/2020, pág. 92/154 tLX da lista de referência LX um com o outro, determina candidatos de previsão de vetor de movimento que têm os mesmos valores de vetor de movimento a partir dos candidatos de previsão de vetor de movimento, deixa um primeiro dos candidatos de previsão de vetor de movimento determinado para ter os mesmos valores de vetor de movimento, e remove os outros candidatos de previsão de vetor de movimento a partir da lista de previsão de vetor de movimento mvpListLX de modo a não permitir que os candidatos de previsão de vetor de movimento sejam redundantes, atualizando, desse modo, a lista de previsão de vetor de movimento mvpListLX.
[00154] A unidade de limitação de número de candidato de previsão de vetor de movimento 124 contabiliza o número dos candidatos de previsão de vetor de movimento adicionados na lista de previsão de vetor de movimento mvpListLX da lista de referência LX e define o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX para o valor do número de candidatos contabilizados.
[00155] Além disso, a unidade de limitação de número de candidato de previsão de vetor de movimento 124 fixa o número numMVPCan- dLX dos candidatos de previsão de vetor de movimento da lista de referência LX adicionados na lista de previsão de vetor de movimento mvpListLX da lista de referência LX a um número final de definição fi- nalNumMVPCand de candidatos.
[00156] Nessa modalidade, o número final finalNumMVPCand de candidatos é definido em "2". A razão para fixar o número de candidatos de vetor de previsão é que, quando o número de candidatos de previsão de vetor de movimento adicionados na lista de previsão de vetor de movimento varia de acordo com o estado de construção da lista de previsão de vetor de movimento, ao menos que a lista de previsão de vetor de movimento seja construída no lado de decodificação, Petição 870200052220, de 27/04/2020, pág. 93/154 a decodificação de entropia do índice de previsão de vetor de movimento não pode ser realizada. Assim, a dependência entre a construção da lista de previsão de vetor de movimento e a decodificação de entropia ocorre, e há uma possibilidade da ocorrência de um tempo de espera para a decodificação de entropia. Além disso, em um caso em que a decodificação de entropia depende do estado de construção da lista de previsão de vetor de movimento incluindo o candidato de previsão de vetor de movimento mvLXCol derivado do bloco de previsão de uma foto de um tempo diferente, quando um erro ocorre no momento de decodificação do fluxo de bit de uma foto diferente, o fluxo de bit da presente foto é influenciado pelo erro e, assim, há um problema em que a decodificação de entropia não pode ser normalmente continuada. Definindo o número final finalNumMVPCand de candidatos a um número fixado, a decodificação de entropia do índice de previsão de vetor de movimento pode ser realizada independentemente da construção da lista de previsão de vetor de movimento, e, mesmo quando um erro ocorre no momento de decodificação do fluxo de bit de uma foto diferente, a decodificação de entropia do fluxo de bit da foto presente pode ser continuada sem ter a influência do mesmo.
[00157] Em um caso em que o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX é menor do que o número final definido finalNumMVPCand de candidatos, a unidade de limitação de número de candidato de previsão de vetor de movimento 124 adiciona vetores de movimento que têm um valor de (0, 0) à lista de previsão de vetor de movimento mvpListLX até o número numMVPCandLX de candidatos de previsão de vetor de movimento ser o mesmo do número final finalNumMVPCand de candidatos, limitando, desse modo, o número dos candidatos de previsão de vetor de movimento ao valor definido. Nesse caso, enquanto os vetores de movimento que têm o valor de (0, 0) podem ser adicionados de Petição 870200052220, de 27/04/2020, pág. 94/154 modo redundante, mesmo quando o índice de previsão de vetor de movimento tem um valor específico dentro de uma faixa de "0" a (número definido de candidatos -1), o de previsão de vetor de movimento pode ser determinado no lado de decodificação. Por outro lado, em um caso em que o número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX é maior do que o número final definido finalNumMVPCand dos candidatos, todos os elementos adicionados em índices maiores do que "finalNumMVPCand - 1" são removidos da lista de previsão de vetor de movimento mvpListLX de modo a permitir que o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX seja o mesmo do número final finalNumMVPCand de candidatos, através do qual o número dos candidatos de previsão de vetor de movimento é limitado ao valor definido. A lista de previsão de vetor de movimento atualizada mvpListLX é fornecida à unidade de cálculo de quantidade de codificação de candidato de previsão de vetor de movimento 125 e a unidade de seleção de previsão de vetor de movimento 126.
[00158] Enquanto isso, a unidade de detecção de vetor de movimento 102, que é ilustrada na Figura 1, detecta um vetor de movimento mvLX da lista de referência LX (aqui, X = 0 ou 1) para cada bloco de previsão. Tal vetor de movimento mvLX é fornecido à unidade de cálculo de quantidade de codificação de candidato de previsão de vetor de movimento 125 junto com os candidatos de previsão de vetor de movimento da lista de previsão de vetor de movimento atualizada mvpListLX.
[00159] A unidade de cálculo de quantidade de codificação de candidato de previsão de vetor de movimento 125 calcula uma diferença de vetor de movimento em relação ao vetor de movimento mvLX para cada candidato de previsão de vetor de movimento mvpListLX[i] armazenado na lista de previsão de vetor de movimento mvpListLX da lista Petição 870200052220, de 27/04/2020, pág. 95/154 de referência LX (aqui, X = 0 ou 1), respectivamente calcula as quantidades de codificação quando as diferenças de vetor de movimento são codificadas, e fornece as mesmas à unidade de seleção de previsão de vetor de movimento 126.
[00160] A unidade de seleção de previsão de vetor de movimento 126 seleciona um candidato de previsão de vetor de movimento mvpListLX[i], para o qual a quantidade de codificação é a mínima das quantidades de codificação para os candidatos de previsão de vetor de movimento, de entre elementos adicionados na lista de previsão de vetor de movimento mvpListLX do índice de referência LX como o de previsão de vetor de movimento mvpLX da lista de referência LX. Em um caso em que há uma pluralidade de candidatos de previsão de vetor de movimento, para o qual a quantidade de codificação gerada é a mínima, na lista de previsão de vetor de movimento mvpListLX, um candidato de previsão de vetor de movimento mvpListLX[i] para o qual o índice i incluído na lista de previsão de vetor de movimento mvpLis- tLX tem um menor valor é selecionado como um de previsão de vetor de movimento favorável mvpLX da lista de referência LX. Então, o de previsão de vetor de movimento selecionado mvpLX é fornecido à unidade de subtração de vetor de movimento 127. Além disso, o índice i incluído na lista de previsão de vetor de movimento que corresponde ao de previsão de vetor de movimento selecionado mvpLX é emitido como o índice de previsão de vetor de movimento mvpIdxLX da lista de referência LX.
[00161] Por fim, a unidade de subtração de vetor de movimento 127 calcula uma diferença de vetor de movimento mvdLX da lista de referência LX subtraindo o de previsão de vetor de movimento selecionado mvpLX da lista de referência LX a partir do vetor de movimento mvLX da lista de referência LX e emite a diferença de vetor de movimento mvdLX. Petição 870200052220, de 27/04/2020, pág. 96/154
[00162] mvdLX = mvLX - mvpLX
[00163] Referindo-se de volta à Figura 1, a unidade de previsão de compensação de movimento 105 adquire um sinal de foto previsto realizando compensação de movimento de acordo com o vetor de movimento mvLX da lista de referência LX (aqui, X = 0 ou 1) fornecido a partir da unidade de detecção de vetor de movimento 102 referindo-se a um sinal de foto de uma foto decodificada que é armazenada na memória de foto decodificada 115 e fornece o sinal de foto previsto adquirido à unidade de determinação de método de previsão 106.
[00164] A unidade de determinação de método de previsão 106 determina um método de previsão. Uma quantidade de codificação e uma distorção de codificação são calculados para cada modo de previsão, e um tamanho de bloco de previsão e um modo de previsão para o qual a quantidade de codificação gerada e a distorção de codificação são as menores são determinados. A quantidade de codificação das informações de movimento é calculada codificando a diferença de vetor de movimento mvdLX da lista de referência LX fornecida a partir da unidade de subtração de vetor de movimento 127 da unidade de cálculo de diferença de vetor de movimento 103 e o índice de previsão de vetor de movimento mvpIdxLX da lista de referência LX que representa o de previsão de vetor de movimento fornecido a partir da unidade de seleção de previsão de vetor de movimento 126. Além disso, a quantidade de codificação de um sinal residual de previsão que é adquirido codificando um sinal residual de previsão entre o sinal de foto previsto fornecido a partir da unidade de previsão de compensação de movimento 105 e o sinal de foto de alvo de codificação fornecido a partir da memória de foto 101 é calculada. Então, uma quantidade de codificação total gerada adquirida adicionando a quantidade de codificação das informações de movimento e a quantidade de codificação do sinal residual de previsão é calculada e é definida como um primeiro Petição 870200052220, de 27/04/2020, pág. 97/154 valor de avaliação.
[00165] Além disso, após tal sinal residual de previsão ser codificado, o sinal residual de previsão codificado é decodificado para a avaliação da quantidade de distorção, e uma distorção de codificação é calculada como uma taxa que representa um erro a partir do sinal de foto original que ocorre de acordo com a codificação. Comparando as quantidades totais de codificação gerada e as distorções de codificação de compensações de movimento uma com a outra, o tamanho de bloco de previsão e o modo de previsão para o qual a quantidade de codificação gerada e a distorção de codificação são as menores são determinados. O método de previsão do vetor de movimento descrito acima é usado para o vetor de movimento mvLX de acordo com o modo de previsão do tamanho do bloco de previsão determinado, e um índice mvpIdxLX que representa o de previsão de vetor de movimento é codificado como um elemento de sintaxe mvp_idx_lX[i] que é representado como um segundo padrão de sintaxe em unidades de blocos de previsão. Além disso, embora a quantidade de codificação gerada calculada aqui é preferencialmente adquirida simulando o processo de codificação, a quantidade de codificação gerada pode ser aproximada de um modo simples ou ser grosseiramente estimada.
[00166] (Previsão de Vetor de movimento em Decodificação)
[00167] Em um dispositivo de decodificação de foto móvel que decodifica o fluxo de bit de uma foto móvel codificada com base na sintaxe descrita acima, a operação, de acordo com o método de previsão de vetor de movimento da presente invenção será descrita agora.
[00168] Em um caso em que o método de previsão de vetor de movimento, de acordo com uma modalidade, é realizado, o processo é realizado pela unidade de cálculo de vetor de movimento 204 do dispositivo de decodificação de foto móvel ilustrado na Figura 2. A Figura 13 é um diagrama que ilustra uma configuração detalhada da unidade de cálculo de vetor de movimento 204 do dispositivo de decodificação de foto móvel ilustrado na Figura 2 que corresponde ao dispositivo de codificação de foto móvel, de acordo com a modalidade. Uma porção da Figura 13 que é circundada por uma linha de estrutura espessa ilustra a unidade de cálculo de vetor de movimento 204. Além disso, uma porção que é circundada por uma linha pontilhada espessa no interior da mesma ilustra unidades operacionais de acordo com o mé- todo de previsão de vetor de movimento a ser descrito posteriormente e é instalada de modo similar no dispositivo de codificação de foto mó- vel, de modo que o mesmo resultado de determinação não tendo contradição entre o processo de codificação e o processo de decodifica- ção seja adquirido. Doravante, o método de previsão de vetor de movimento no processo de decodificação será descrito com referência a esse desenho.
[00169] A unidade de cálculo de vetor de movimento 204 inclui: uma unidade de geração de candidato de previsão de vetor de movimento 221; uma unidade de adição de candidato de previsão de vetor de movimento 222; uma unidade de remoção de candidato redundante de previsão de vetor de movimento 223; uma unidade de limitação de número de candidato de previsão de vetor de movimento 224; uma unidade de seleção de previsão de vetor de movimento 225; e uma unidade de adição de vetor de movimento 226.
[00170] Em um processo de cálculo de vetor de movimento realizado pela unidade de cálculo de vetor de movimento 204, um vetor de movimento usado na interprevisão é calculado para cada uma das listas de referência L0 e L1. Mais especificamente, em um caso em que o modo de previsão PredMode do bloco-alvo de codificação é o MO- DE_INTER de interprevisão, e o modo de interprevisão do bloco-alvo de codificação é a previsão L0 Pred_L0, uma lista de previsão de vetor de movimento mvpListL0 da lista de referência L0 é calculada, um de Petição 870200052220, de 27/04/2020, pág. 99/154 previsão de vetor de movimento mvpL0 é selecionado, e um vetor de movimento mvL0 da lista de referência L0 é calculado. Por outro lado, em um caso em que o modo de interprevisão do bloco-alvo de codificação é a previsão L1 Pred_L1, uma lista de previsão de vetor de movimento mvpListL1 da lista de referência L1 é calculada, um de previsão de vetor de movimento mvpL1 é selecionado, e um vetor de movimento mvL1 da lista de referência L1 é calculado. Além disso, em um caso em que o modo de interprevisão do bloco-alvo de codificação é a biprevisão Pred_BI, ambas as previsão L0 e a previsão L1 são realizadas, desse modo, uma lista de previsão de vetor de movimento mvpListL0 da lista de referência L0 é calculada, um de previsão de vetor de movimento mvpL0 da lista de referência L0 é selecionado, e um vetor de movimento mvL0 da lista de referência L0 é calculado, e uma lista de previsão de vetor de movimento mvpListL1 da lista de referência L1 é calculada, um de previsão de vetor de movimento mvpL1 da lista de referência L1 é calculado, e um vetor de movimento mvL1 da lista de referência L1 é calculado.
[00171] De modo similar ao lado de codificação, também no lado de decodificação, embora o processo de cálculo de vetor de movimento seja realizado para cada uma das listas de referência L0 e L1, o processo de cálculo de vetor de movimento é comum a ambas as listas de referência L0 e L1. Assim, na descrição a seguir, L0 e L1 serão denotados comumente por LX. No processo de cálculo de vetor de movimento da lista de referência L0, X é "0", e no processo de cálculo de vetor de movimento da lista de referência L1, X é "1". Além disso, durante o processo de cálculo de vetor de movimento da lista de referência LX, em um caso em que as informações não da lista de referência LX, mas informações da outra lista são referidas, a outra lista será denotada por LY.
[00172] A unidade de geração de candidato de previsão de vetor de Petição 870200052220, de 27/04/2020, pág. 100/154 movimento 221, a unidade de adição de candidato de previsão de vetor de movimento 222, a unidade de remoção de candidato redundante de previsão de vetor de movimento 223, e a unidade de limitação de número de candidato de previsão de vetor de movimento 224 dispostas dentro da unidade de cálculo de vetor de movimento 204 são reguladas para realizar respectivamente as mesmas operações da unidade de geração de candidato de previsão de vetor de movimento 121, a unidade de adição de candidato de previsão de vetor de movimento 122, a unidade de remoção de candidato redundante de previsão de vetor de movimento 123, e a unidade de limitação de número de candidato de previsão de vetor de movimento 124 dispostas dentro da unidade de cálculo de diferença de vetor de movimento 103 no lado de codificação, através do qual os mesmos candidatos de previsão de vetor de movimento que não têm contradição entre o lado de codifica-ção e o lado de decodificação podem ser adquiridos no lado de codificação e no dispositivo de decodificação.
[00173] A unidade de geração de candidato de previsão de vetor de movimento 221 realiza o mesmo processo daquele da unidade de geração de candidato de previsão de vetor de movimento 121 no lado de codificação ilustrado na Figura 12. Os vetores de movimento de um bloco decodificado de previsão vizinho do bloco-alvo de decodificação dentro da foto do bloco-alvo de decodificação, um bloco de previsão decodificado presente na mesma posição daquela do bloco-alvo de decodificação ou em uma posição vizinha do mesmo dentro de uma foto diferente, e similar, que são decodificados e gravados na memória de armazenamento de informações de codificação 209, são lidos a partir da memória de armazenamento de informações de codificação 209. A partir dos vetores de movimento de um bloco diferente decodificado lido a partir da memória de armazenamento de informações de codificação 209, os candidatos de previsão de vetor de movimento Petição 870200052220, de 27/04/2020, pág. 101/154 mvLXCol, mvLXA e mvLXB são gerados para cada grupo de bloco de previsão e são fornecidos à unidade de adição de candidato de previsão de vetor de movimento 222.
[00174] Os candidatos de previsão de vetor de movimento mvLXCol, mvLXA e mvLXB podem ser calculados realizando escalonamento de acordo com o índice de referência. Como a unidade de geração de candidato de previsão de vetor de movimento 221 realiza o mesmo processo daquele da unidade de geração de candidato de previsão de vetor de movimento 121 no lado de codificação ilustrado na Figura 12, a descrição detalhada do mesmo não será apresentada no presente documento.
[00175] A seguir, a unidade de adição de candidato de previsão de vetor de movimento 222 realiza o mesmo processo daquele da unidade de adição de candidato de previsão de vetor de movimento 122 no lado de codificação ilustrado na Figura 12. Os candidatos de previsão de vetor de movimento calculados mvLXCol, mvLXA e mvLXB são armazenados na lista de previsão de vetor de movimento mvpListLX da lista de referência LX.
[00176] A seguir, a unidade de remoção de candidato redundante de previsão de vetor de movimento 223 realiza o mesmo processo daquele da unidade de remoção de candidato redundante de previsão de vetor de movimento 123 no lado de codificação ilustrado na Figura 12. Os candidatos de previsão de vetor de movimento que têm os mesmos valores de vetor de movimento a partir dos candidatos de previsão de vetor de movimento armazenados na lista de previsão de vetor de movimento mvpListLX da lista de referência LX são determinados, um primeiro dos candidatos de previsão de vetor de movimento determinado para ter os mesmos valores de vetor de movimento é deixado, e os outros candidatos de previsão de vetor de movimento são removidos da lista de previsão de vetor de movimento mvpListLX de modo a Petição 870200052220, de 27/04/2020, pág. 102/154 não permitir que os candidatos de previsão de vetor de movimento sejam redundantes, desse modo, a lista de previsão de vetor de movimento mvpListLX é atualizada.
[00177] A seguir, a unidade de limitação de número de candidato de previsão de vetor de movimento 224 realiza o mesmo processo daquele da unidade de limitação de número de candidato de previsão de vetor de movimento 124 no lado de codificação ilustrado na Figura 12. A unidade de limitação de número de candidato de previsão de vetor de movimento 224 contabiliza o número de elementos adicionados na lista de previsão de vetor de movimento mvpListLX e define o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX para o valor do número de candidatos contabilizados.
[00178] Além disso, para a mesma razão descrita no lado de codificação, a unidade de limitação de número de candidato de previsão de vetor de movimento 224 fixa o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX adicionados na lista de previsão de vetor de movimento mvpListLX para um número final finalNumMVPCand de candidatos.
[00179] Nessa modalidade, o número final finalNumMVPCand de candidatos é definido "2". Em um caso em que o número numMV- PCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX é menor do que o número final definido finalNumMV- PCand de candidatos, os vetores de movimento que têm um valor de (0, 0) são adicionados à lista de previsão de vetor de movimento mvpListLX até o número numMVPCandLX de candidatos de previsão de vetor de movimento ser o mesmo do número final finalNumMV- PCand de candidatos, limitando, desse modo, o número dos candidatos de previsão de vetor de movimento ao valor definido. Nesse caso, enquanto os vetores de movimento que têm o valor de (0, 0) podem Petição 870200052220, de 27/04/2020, pág. 103/154 ser adicionados de modo redundante, mesmo quando o índice de previsão de vetor de movimento tem um valor específico dentro de uma faixa de "0" a "valor definido -1", o de previsão de vetor de movimento pode ser determinado no lado de decodificação. Por outro lado, em um caso em que o número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX é maior do que o número final definido finalNumMVPCand dos candidatos, todos os elementos adicionados em índices maiores do que "finalNumMVPCand - 1" são removidos da lista de previsão de vetor de movimento mvpListLX de modo a permitir que o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX seja o mesmo do número final finalNumMVPCand de candidatos, desse modo, o número dos candidatos de previsão de vetor de movimento é limitado ao valor definido. A lista atualizada de previsão de vetor de movimento mvpListLX é fornecida à unidade de seleção de previsão de vetor de movimento 225.
[00180] Enquanto isso, a diferença de vetor de movimento mvdLX da lista de referência LX (aqui, X = 0 ou 1) para cada bloco de previsão decodificado pela primeira unidade de decodificação de fluxo de bit 202 é fornecida à unidade de adição de vetor de movimento 226. Além disso, o índice de previsão de vetor de movimento mvpIdxLX do de previsão de vetor de movimento da lista de referência LX que é decodificada pela primeira unidade de decodificação de fluxo de bit 202 é fornecida à unidade de seleção de previsão de vetor de movimento 225.
[00181] A unidade de seleção de previsão de vetor de movimento 225 é fornecida com o índice de previsão de vetor de movimento mvpIdxLX da lista de referência LX decodificada pela primeira unidade de decodificação de fluxo de bit 202 e extrai um candidato de previsão de vetor de movimento mvpListLX[mvpIdxLX] que corresponde ao ín- Petição 870200052220, de 27/04/2020, pág. 104/154 dice fornecido mvpIdxLX a partir da lista de previsão de vetor de movimento mvpListLX como o de previsão de vetor de movimento mvpLX da lista de referência LX. O candidato de previsão de vetor de movimento fornecido é fornecido à unidade de adição de vetor de movimento 226 como o de previsão de vetor de movimento mvpLX.
[00182] Por fim, a unidade de adição de vetor de movimento 226 calcula o vetor de movimento mv da lista de referência LX adicionando a diferença de vetor de movimento mvdLX da lista de referência LX que é decodificada e fornecida pela primeira unidade de decodificação de fluxo de bit 202 e o de previsão de vetor de movimento mvpLX da lista de referência LX e emite o vetor de movimento mvLX.
[00183] mvLX = mvpLX + mvdLX
[00184] Conforme descrito acima, o vetor de movimento mvLX da lista de referência LX é calculado para cada bloco de previsão. Um sinal de foto previsto é gerado realizando compensação de movimento com o uso do vetor de movimento e é adicionado ao sinal residual de previsão decodificado, desse modo, um sinal de foto decodificado é gerado.
[00185] As sequências de processo da unidade de cálculo de diferença de vetor de movimento 103 do dispositivo de codificação de foto móvel e a unidade de cálculo de vetor de movimento 204 do dispositivo de decodificação de foto móvel será respectivamente descrita com referência aos fluxogramas ilustrados nas Figuras 14 e 15. A Figura 14 é um fluxograma que ilustra a sequência do processo de cálculo de diferença de vetor de movimento realizado pelo dispositivo de codifica- ção de foto móvel, e a Figura 15 é um fluxograma que ilustra a sequência do processo de cálculo de vetor de movimento do dispositivo de decodificação de foto móvel.
[00186] A sequência do processo de cálculo de diferença de vetor de movimento no lado de codificação será descrito com referência à Figura 14. No lado de codificação, primeiramente, o número final finalNumMVCand dos candidatos de previsão de vetor de movimento é definido pela unidade de cálculo de diferença de vetor de movimento 103 (S100). Nessa modalidade, o número final finalNumMVPCand de candidatos é definido "2".
[00187] Subsequentemente, a diferença de vetor de movimento do vetor de movimento usado na interprevisão que é selecionado como o bloco-alvo de codificação é calculado para cada uma das listas de referência L0 e L1 pela unidade de cálculo de diferença de vetor de movimento 103 (S101 a S106).
[00188] Em um caso em que a diferença de vetor de movimento mvdLX da lista de referência LX é calculada (Sim em S102), os candidatos de previsão de vetor de movimento da lista de referência LX são calculados de modo a construir a lista de previsão de vetor de movimento mvpListLX da lista de referência LX (S103). Uma pluralidade dos candidatos de previsão de vetor de movimento é calculada pela unidade de geração de candidato de previsão de vetor de movimento 121 da unidade de cálculo de diferença de vetor de movimento 103, os candidatos de previsão de vetor de movimento calculados são adicionados à lista de previsão de vetor de movimento mvpListLX pela uni-dade de adição de candidato de previsão de vetor de movimento 122, candidatos de previsão de vetor de movimento desnecessários são removidos pela unidade de remoção de candidato redundante de previsão de vetor de movimento 123, e o número de candidatos de previsão de vetor de movimento é fixado ao número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX que são adicionados na lista de previsão de vetor de movimento mvpListLX pela unidade de limitação de número de candidato de previsão de vetor de movimento 124, desse modo, a lista de previsão de vetor de movimento mvpListLX é construído. Uma sequência de pro- Petição 870200052220, de 27/04/2020, pág. 106/154 cesso detalhada da etapa S103 será descrita posteriormente com referência a um fluxograma ilustrado na Figura 16.
[00189] Subsequentemente, o de previsão de vetor de movimento mvpLX da lista de referência LX é selecionado a partir da lista de previsão de vetor de movimento mvpListLX da lista de referência LX pela unidade de cálculo de quantidade de codificação de candidato de previsão de vetor de movimento 125 e a unidade de seleção de previsão de vetor de movimento 126 (S104). Primeiramente, cada diferença de vetor de movimento que é uma diferença entre o vetor de movimento mvLX e cada candidato de previsão de vetor de movimento mvpListLX[i] armazenado na lista de previsão de vetor de movimento mvpListLX é calculada pela unidade de cálculo de quantidade de codificação de candidato de previsão de vetor de movimento 125, a quantidade de codificação quando a diferença de vetor de movimento é codificada é calculada para cada elemento da lista de previsão de vetor de movimento mvpListLX, e o candidato de previsão de vetor de movimento mvpListLX[i], para o qual a quantidade de codificação para cada candidato de previsão de vetor de movimento é a mínima é selecionado a partir dos elementos adicionados na lista de previsão de vetor de movimento mvpListLX como o de previsão de vetor de movimento mvpLX pela unidade de seleção de previsão de vetor de movimento 126. Em um caso em que há uma pluralidade de candidatos de previsão de vetor de movimento, para os quais a quantidade de codificação gerada é a mínima, na lista de previsão de vetor de movimento mvpListLX, um candidato de previsão de vetor de movimento mvpListLX[i] para o qual o índice i incluído na lista de previsão de vetor de movimento mvpListLX tem um menor valor é selecionado como um de previsão de vetor de movimento favorável mvpLX.
[00190] Subsequentemente, subtraindo o de previsão de vetor de movimento selecionado mvpLX da lista de referência LX a partir do vePetição 870200052220, de 27/04/2020, pág. 107/154 tor de movimento mvLX da lista de referência LX com o uso da unidade de subtração de vetor de movimento 127, a diferença de vetor de movimento mvdLX da lista de referência LX é calculada (S105).
[00191] mvdLX = mvLX - mvpLX
[00192] A seguir, a sequência do processo de cálculo de vetor de movimento no lado de decodificação será descrita com referência à Figura 15. Também no lado de decodificação, o vetor de movimento usado na interprevisão é calculado para cada uma das listas de referência L0 e L1 pela unidade de cálculo de vetor de movimento 204 (S201 a S206).
[00193] Em um caso em que o vetor de movimento mvdLX da lista de referência LX é calculado (Sim em S202), os candidatos de previsão de vetor de movimento da lista de referência LX são calculados de modo a construir a lista de previsão de vetor de movimento mvpListLX da lista de referência LX (S203). Uma pluralidade dos candidatos de previsão de vetor de movimento dentro da unidade de cálculo de vetor de movimento 204 é calculada pela unidade de geração de candidato de previsão de vetor de movimento 221, os candidatos de previsão de vetor de movimento calculados são adicionados à lista de previsão de vetor de movimento mvpListLX pela unidade de adição de candidato de previsão de vetor de movimento 222, os candidatos de previsão de vetor de movimento desnecessários são removidos pela unidade de remoção de candidato redundante de previsão de vetor de movimento 223, e o número de candidatos de previsão de vetor de movimento é fixado ao número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX que são adicionados na lista de previsão de vetor de movimento mvpListLX pela unidade de limitação de número de candidato de previsão de vetor de movimento 224, desse modo, a lista de previsão de vetor de movimento mvpListLX é construída. Uma sequência de processo detalhada da etapa S203 será Petição 870200052220, de 27/04/2020, pág. 108/154 descrita posteriormente com referência ao fluxograma ilustrado na Figura 16.
[00194] Subsequentemente, o candidato de previsão de vetor de movimento mvpListLX[mvpIdxLX] que corresponde ao índice mvpIdxLX do de previsão de vetor de movimento decodificado pela primeira unidade de decodificação de fluxo de bit 202 é extraído da lista de previsão de vetor de movimento mvpListLX como o de previsão de vetor de movimento selecionado mvpLX pela unidade de seleção de previsão de vetor de movimento 225 (S204).
[00195] Subsequentemente, adicionando a diferença de vetor de movimento mvdLX da lista de referência LX, que é decodificada e fornecida pela primeira unidade de decodificação de fluxo de bit 202, e o de previsão de vetor de movimento mvpLX da lista de referência LX com o uso da unidade de adição de vetor de movimento 226, o vetor de movimento mvLX da lista de referência LX é calculado (S205).
[00196] mvLX = mvpLX + mvdLX
[00197] A seguir, a sequência do processo de derivar candidatos de previsão de vetor de movimento e construir uma lista de previsão de vetor de movimento que é comum a S103 ilustrado na Figura 14 e S203 ilustrado na Figura 15 será descrita em detalhe com referência ao fluxograma ilustrado na Figura 16.
[00198] (Método de Previsão de Vetor de movimento)
[00199] A Figura 16 é um fluxograma que ilustra a sequência de processo das unidades de geração de candidato de previsão de vetor de movimento 121 e 221, as unidades de adição de candidato de previsão de vetor de movimento 122 e 222, as unidades de remoção de candidato redundante de previsão de vetor de movimento 123 e 223, e as unidades de limitação de número de candidato de previsão de vetor de movimento 124 e 224 que têm funções comuns à unidade de cálculo de diferença de vetor de movimento 103 do dispositivo de codifica- Petição 870200052220, de 27/04/2020, pág. 109/154 ção de foto móvel e à unidade de cálculo de vetor de movimento 204 do dispositivo de decodificação de foto móvel.
[00200] Primeiramente, a unidade de geração de candidato de previsão de vetor de movimento 121 ou 221 deriva candidatos de previsão de vetor de movimento a partir de um bloco de previsão de uma foto de um tempo diferente e deriva uma sinalização availableFla- gLXCol que representa se um candidato de previsão de vetor de movimento de um bloco de previsão de uma foto de um tempo diferente pode ou não ser usado, um vetor de movimento mvLXCol, um índice de referência refIdxCol, e uma lista ListCol (S301 ilustrado na Figura 16). A sequência do processo de derivar a etapa S301 será descrita em detalhe abaixo com referência aos fluxogramas ilustrados nas Fi-guras 24 a 30.
[00201] Subsequentemente, a unidade de geração de candidato de previsão de vetor de movimento 121 ou 221 deriva candidatos de previsão de vetor de movimento a partir de um bloco de previsão que é vizinho no lado esquerdo e deriva uma sinalização availableFlagLXA que representa se o candidato de previsão de vetor de movimento do bloco de previsão vizinho no lado esquerdo pode ou não ser usado, um vetor de movimento mvLXA, um índice de referência refIdxA, e uma lista ListA (S302 ilustrado na Figura 16). Além disso, X é "0" no caso da lista de referência L0, e X é "1" no caso da lista de referência L1 (o mesmo na descrição apresentada abaixo). Subsequentemente, a unidade de geração de candidato de previsão de vetor de movimento 121 ou 221 deriva candidatos de previsão de vetor de movimento a partir de um bloco de previsão que é vizinho no lado superior e deriva uma sinalização availableFlagLXB que representa se o candidato de previsão de vetor de movimento do bloco de previsão vizinho no lado superior pode ou não ser usado, um vetor de movimento mvLXB, um índice de referência refIdxB, e uma lista ListB (S303 ilustrado na Figura Petição 870200052220, de 27/04/2020, pág. 110/154 16). Os processos das etapas S302 e S303 ilustrados na Figura 16 são comuns exceto que as posições e os números de blocos vizinhos a serem referidos são diferentes um do outro, e as sequências de varredura dos blocos vizinhos são diferentes uma da outra e deriva uma sinalização availableFlagLXN que representa se o candidato de previsão de vetor de movimento do bloco de previsão pode ou não ser usado, um vetor de movimento mvLXN, um índice de referência refIdxN, e uma lista ListN (aqui, N é A ou B, que é o mesmo na descrição apresentada abaixo). A sequência de processo de S302 e S303 será descrita abaixo em detalhe com referência aos fluxogramas ilustrados nas Figuras 17 a 21.
[00202] Subsequentemente, a unidade de adição de candidato de previsão de vetor de movimento 122 ou 222 constrói uma lista de previsão de vetor de movimento mvpListLX e adiciona os candidatos de vetor de previsão mvLXCol, mvLXA e mvLXB de cada lista de referência LX (S304 ilustrado na Figura 16). A sequência do processo de registro da etapa S304 será descrita abaixo em detalhe com referência ao fluxograma ilustrado na Figura 31.
[00203] Subsequentemente, a unidade de remoção de candidato redundante de previsão de vetor de movimento 123 ou 223, em um caso em que o candidato de vetor de previsão espacial mvLXA derivado a partir do grupo de bloco de previsão vizinho no lado esquerdo e o candidato de previsão de vetor de movimento espacial mvLXB derivado a partir do grupo de bloco de previsão vizinho no lado superior, que são dispostos dentro da lista de previsão de vetor de movimento mvpListLX têm o mesmo valor, determina um dos mesmos como um candidato de vetor de movimento redundante, deixa o candidato de vetor de movimento mvLXA disposto na ordem anterior, em outras palavras, o candidato de vetor de movimento mvLXA de um vetor de movimento que tem o menor índice i, e remove o candidato de vetor de Petição 870200052220, de 27/04/2020, pág. 111/154 movimento redundante mvLXB (S305 ilustrado na Figura 16). Na unidade de comparação/remoção de candidato redundante, a comparação de redundância de vetor de movimento entre o candidato de previsão de vetor de movimento de tempo mvLXCol e o candidato de previsão de vetor de movimento espacial mvLXA ou mvLXB não é realizado. A razão para isso é a seguinte: A geração do candidato de previsão de vetor de movimento de tempo e a geração do candidato de previsão de vetor de movimento espacial são processadas frequentemente de um modo paralelo devido a uma diferença nas memórias de informações de movimento dos mesmos a serem acessadas e uma diferença nas quantidades de processamento dos mesmos. Desse modo, em um caso em que uma comparação de vetor de movimento entre o candidato de previsão de vetor de movimento de tempo e o candidato de previsão de vetor de movimento espacial é feita, é necessário avançar a sincronização em um caso em que o processamento paralelo é realizado, e o tempo em espera de um dos processos aumenta. Assim, é preferencial separar o processo de derivar o candidato de previsão de vetor de movimento de tempo e o processo de derivar o candidato de previsão de vetor de movimento espacial um do outro o máximo possível, desse modo, na presente invenção, a comparação de redundância de vetor de movimento entre o candidato de previsão de vetor de movimento de tempo e o candidato de previsão de vetor de movimento espacial não é realizado. Como o processo de derivar o de previsão de vetor de movimento de tempo e o processo de derivar o de previsão de vetor de movimento espacial são diferentes um do outro, os candidatos de previsão de vetor de movimento de características mutuamente diferentes são derivados. Assim, há uma pequena probabilidade de que o de previsão de vetor de movimento de tempo e o de previsão de vetor de movimento espacial sejam o mesmo, e não há diminuição na eficiência de codificação mesmo quando a compara- Petição 870200052220, de 27/04/2020, pág. 112/154 ção de vetor de movimento entre o candidato de previsão de vetor de movimento de tempo e o candidato de previsão de vetor de movimento espacial não é feita. A sequência do processo de remoção da etapa S305 será descrita abaixo em detalhes com referência ao fluxograma ilustrado na Figura 32.
[00204] Subsequentemente, a unidade de limitação de número de candidato de previsão de vetor de movimento 124 ou 224 contabiliza o número de elementos adicionados na lista de previsão de vetor de movimento mvpListLX, define o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX para o número dos elementos adicionados, e limita o número numMVPCan- dLX dos candidatos de previsão de vetor de movimento da lista de referência LX adicionados na lista de previsão de vetor de movimento mvpListLX ao número final definido finalNumMVPCand de candidatos (S306 ilustrado na Figura 16). A sequência do processo de remoção da etapa S306 será descrita abaixo em detalhes com referência ao fluxo- grama ilustrado na Figura 33.
[00205] A sequência de derivar o candidato de previsão de vetor de movimento a partir dos blocos de previsão vizinhos no lado esquerdo ou no lado superior em S301 e S302 ilustrados na Figura 16 será descrita em detalhes.
[00206] Conforme ilustrado nas Figuras 5, 6, 7 e 8, os candidatos de previsão de vetor de movimento são derivados a partir de blocos de previsão dispostos na periferia que são vizinhos de um bloco de previsão (o bloco de previsão que é o alvo de processamento ilustrado nas Figuras 5, 6, 7 e 8) definido para realizar a compensação de movimento do interior do bloco de codificação dentro da mesma foto.
[00207] Como os candidatos de previsão de vetor de movimento, candidatos de previsão de vetor de movimento são selecionados a partir do grupo de bloco de previsão A que é configurado por blocos de previsão Ak (aqui, k = 0 ou 1) vizinhos no lado esquerdo do bloco de previsão que é o alvo de processamento, em outras palavras, A0 e A1 e o grupo de bloco de previsão B que é configurado pelo bloco de previsão Bk (aqui, k = 0, 1, ou 2) vizinho no lado superior, em outras palavras, B0, B1 e B2.
[00208] A seguir, o método de derivar os candidatos de previsão de vetor de movimento a partir do grupo de bloco de previsão N vizinho no lado esquerdo e no lado superior na sequência do processo de S301 e S302 ilustrado na Figura 16 será descrito. A Figura 17 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento in S301 e S302 ilustrado na Figura 16 de acordo com o método de varredura descrito acima. O sufixo X é 0 ou 1 que representa uma lista de referência, e N é A (lado esquerdo) ou B (lado superior) que representa a área do grupo de bloco de previsão vizinho.
[00209] A fim de derivar candidatos de previsão de vetor de movimento a partir do bloco de previsão esquerdo (S301 ilustrado na Figura 16) e a fim de derivar candidatos de previsão de vetor de movimento a partir dos blocos de previsão A0 e A1 vizinhos no lado esquerdo do bloco de previsão que é o alvo de codificação/decodificação com N como A na Figura 17 e os candidatos de previsão de vetor de movimento a partir do bloco de previsão superior (S302 ilustrado na Figura 16), candidatos de previsão de vetor de movimento são calculados na sequência descrita abaixo a partir de blocos de previsão B0, B1 e B2 vizinhos no lado superior com N como B na Figura 17.
[00210] Primeiramente, blocos de previsão vizinhos ao bloco de previsão que é o alvo de codificação/decodificação são especificados e, em um caso onde o bloco de previsão Nk (aqui, k = 0, 1, ou 2; 2 é apenas para um grupo de blocos de previsão superior) pode ser usado, as informações de codificação armazenadas na memória de armaPetição 870200052220, de 27/04/2020, pág. 114/154 zenamento de informações de codificação 114 ou a memória de armazenamento de informações de codificação 209 é derivada. Aqui, as informações de codificação do bloco de previsão vizinho Nk a ser derivado inclui um modo de previsão PredMode, uma sinalização predFlagLX [xNk][yNk] que representa se a lista de referência LX é usada, um índice de referência refIdxLX [xNk][yNk] da lista de referência LX, um vetor de movimento mvLX [xNk][yNk] da lista de referência LX. No caso de um grupo de blocos de previsão (N = A) vizinho ao lado esquerdo do bloco de previsão que é o alvo de codificação/decodificação (Sim em S1101), as informações de codificação são derivadas especificando-se um bloco de previsão A0 vizinho ao lado esquerdo inferior e um bloco de previsão A1 vizinho ao lado esquerdo (S1102 e S1103). Por outro lado, no caso de um grupo de blocos de previsão (N = B) vizinho ao lado superior do bloco de previsão que é o alvo de codifica- ção/decodificação (Não em S1101), as informações de codificação são derivadas especificando-se um bloco de previsão B0 vizinho ao lado direito superior, um bloco de previsão B1 vizinho ao lado superior e um bloco de previsão B2 vizinho ao lado esquerdo superior (S1104, S1105, e S1106). Além disso, o bloco de previsão vizinho Nk pode ser usado em um case onde o bloco de previsão vizinho está localizado no lado interno de uma fatia que inclui o bloco de previsão de codifica- ção/decodificação alvo, mas não pode ser usado em um caso onde o bloco de previsão vizinho está localizado fora da fatia.
[00211] Em seguida, a sinalização availableFlagLXN que representa se o de previsão de vetor de movimento é selecionado do grupo de blocos de previsão N é definido como "0" e o vetor de movimento mvLXN que representa o grupo de blocos de previsão N é definido como (0, 0) (S1107).
[00212] Em seguida, um candidato de previsão de vetor de movimento que satisfaz a Determinação de Condição 1 ou a Determinação Petição 870200052220, de 27/04/2020, pág. 115/154 de Condição 2 descrito acima é derivado (S1108). De dentre os blocos de previsão vizinhos N0, N1, e N2 (N2 é apenas para o grupo de blocos de previsão vizinho superior B) do grupo de blocos de previsão N (aqui, N é A ou B), um bloco de previsão que tem um vetor de movimento de uma foto de referência da mesma lista de referência LX que é a mesma que a lista de referência LX definida como o alvo atual no bloco de previsão de codificação/decodificação alvo ou uma lista de referência LY (Y = !X; em um caso onde a lista de referência que é o alvo atual é L0, a lista de referência oposta é L1 e, em um caso onde a lista de referência que é o alvo atual é L1, a lista de referência oposta é L0 que é oposta à lista de referência LX definida como o alvo atual no bloco de previsão de codificação/decodificação alvo é procurada e o vetor de movimento é definido como o candidato de previsão de vetor de movimento.
[00213] A Figura 18 é um fluxograma que ilustra a sequência do processo de derivação da etapa S1108 ilustrada na Figura 17. O processo seguinte é desempenhado para os blocos de previsão vizinhos Nk (aqui, k = 0, 1, ou 2; 2 é apenas para o grupo de blocos de previsão vizinho superior) de acordo com a ordem k = 0, 1, e 2 (S1201 a S1207). O processo seguinte é desempenhado de acordo com a ordem A0 e A1 do lado inferior para o lado superior em um caso onde N é A e de acordo com a ordem B0, B1, e B2 do lado direito para o lado esquerdo em um caso onde N é B.
[00214] Um caso onde o bloco de previsão vizinho Nk pode ser usado e o modo de previsão PredMode do bloco de previsão Nk não é a intraprevisão MODE_INTRA (Sim em S1202), a determinação de condição da Determinação de Condição 1 descrita acima é feita (S1203). Em um caso onde a sinalização predFlagLX [xNk][yNk] que representa se o uso da lista de referência LX do bloco de previsão vizinho Nk é 1, em outras palavras, em um caso onde uma interprevisão Petição 870200052220, de 27/04/2020, pág. 116/154 do bloco de previsão vizinho Nk é feita com o uso do vetor de movimento da lista de referência LX que é o mesmo daquele do alvo de cálculo e o índice de referência refIdxLX[xNk][yNk] de LX do bloco de previsão vizinho Nk e o índice refIdxLX do bloco de previsão que é o alvo de processamento são os mesmos, em outras palavras, uma in- terprevisão do bloco de previsão vizinho Nk é feita com o uso da mesma foto de referência na LX previsão (Sim em S1203), o processo procede para a etapa S1204 e caso contrário (Não em S1203), a determinação de condição da etapa S1205 é feita.
[00215] No caso de Sim na etapa S1203, a sinalização available- FlagLXN é definida como "1", o de previsão de vetor de movimento mvLXN do grupo de blocos de previsão N é definido como o valor do vetor de movimento mvLX[xNk][yNk] da lista de referência LX do bloco de previsão vizinho Nk, o índice de referência refIdxN do grupo de blocos de previsão N é definido como o valor do índice de referência re- fIdxLX[xNk][yNk] da lista de referência LX do bloco de previsão vizinho Nk, e a lista de referência ListN do grupo de blocos de previsão N é definida como LX (S1204) e então, esse processo de cálculo de candidato de previsão de vetor de movimento se encerra.
[00216] Por outro lado, no caso de Não na etapa S1203, a determinação de condição da Determinação de Condição 2 descrita acima é feita (S1205). Em um caso onde a sinalização predFlagLY que representa usar ou não a lista de referência LY do bloco de previsão vizinho Nk é 1, em outras palavras, em um caso onde a interprevisão do bloco de previsão vizinho Nk é feita com o uso do vetor de movimento da lista de referência LY que é diferente daquela do alvo de cálculo e o POC da foto de referência da lista de referência LY oposta à lista de referência LX que é o alvo atual do bloco de previsão vizinho Nk e o POC da foto de referência da lista de referência LX do bloco de previsão que é o alvo de processamento são os mesmos, em outras pala- Petição 870200052220, de 27/04/2020, pág. 117/154 vras, em um caso onde uma interprevisão do bloco de previsão vizinho Nk é feita com o uso da mesma foto de referência na LY previsão (Sim em S1205), o processo procede para a etapa S1206, a sinalização availableFlagLXN é definida como "1", o de previsão de vetor de movimento mvLXN do grupo de blocos de previsão N é definido como o valor do vetor de movimento mvLY[xNk][yNk] da lista de referência LY do bloco de previsão vizinho Nk, o índice de referência refIdxN do grupo de blocos de previsão N é definido como o valor do índice de referência refIdxLY[xNk][yNk] da lista de referência LY do bloco de previsão vizinho Nk, e a lista de referência ListN do grupo de blocos de previsão N é definida como LY (S1206) e então, esse processo de cálculo de candidato de previsão de vetor de movimento se encerra.
[00217] Em um caso se tal condição não é satisfeita, em outras palavras, no caso de Não em S1203 e Não em S1205, k é aumentado por um, o processo (S1201 a S1207) do bloco de previsão vizinho seguinte é desempenhado e o processo é repetido até que a sinalização availableFlagLXN seja "1" ou o processo do bloco vizinho A1 ou B2 seja completo.
[00218] Subsequentemente, com referência de volta ao fluxograma ilustrado na Figura 17, quando o grupo de blocos de previsão é vizinho ao lado esquerdo (N = A) e a sinalização availableFlagLXN é "0" (Sim em S1109), em outras palavras, um candidato de previsão de vetor de movimento não pode ser calculado na etapa S1108 para o grupo de blocos de previsão vizinho ao lado esquerdo, um candidato de previsão de vetor de movimento que satisfaz a Determinação de Condição 3 ou a Determinação de Condição 4 descrita acima é calculado (S1110).
[00219] A Figura 19 é um fluxograma que ilustra a sequência do processo de derivação da etapa S1110 ilustrada na Figura 17. O processo seguinte é desempenhado de acordo com a ordem k = 0 e k =1 para o bloco de previsão vizinho Nk (aqui, k = 0 ou 1) (S1301 a S1307).
[00220] Um caso onde o bloco de previsão vizinho Nk pode ser usado e o modo de previsão PredMode do bloco de previsão Nk não é a intraprevisão MODE_INTRA (Sim em S1302), a determinação de condição da Determinação de Condição 3 descrita acima é feita (S1303). Em um caso onde a sinalização predFlagLX [xNk][yNk] que representa usar ou não a lista de referência LX do bloco de previsão vizinho Nk é 1, em outras palavras, em um caso onde uma interprevi- são do bloco de previsão vizinho Nk é feita com o uso do vetor de movimento da lista de referência LX que é a mesma do que aquela do alvo de cálculo, o processo procede para a etapa S1304 e caso contrário (Não em S1303), a determinação de condição da etapa S1305 é feita.
[00221] No caso de Sim na etapa S1303, a sinalização available- FlagLXN é definida como "1", o de previsão de vetor de movimento mvLXN do grupo de blocos de previsão N é definido como o valor do vetor de movimento mvLX[xNk][yNk] da lista de referência LX do bloco de previsão vizinho Nk, o índice de referência refIdxN do grupo de blocos de previsão N é definido como o valor do índice de referência re- fIdxLX[xNk][yNk] da lista de referência LX do bloco de previsão vizinho Nk, e a lista de referência ListN do grupo de blocos de previsão N é definida como LX (S1304) e então, o processo procede para a etapa S1308.
[00222] Em um caso de Não na etapa S1303, a determinação de condição da Determinação de Condição 4 descrita acima é feita (S1305). Em um caso onde a sinalização predFlagLY que representa usar ou não a lista de referência LY do bloco de previsão vizinho Nk é 1, em outras palavras, em um caso onde uma interprevisão do bloco de previsão vizinho Nk é feita com o uso do vetor de movimento da Petição 870200052220, de 27/04/2020, pág. 119/154 lista de referência LY que é diferente daquele do alvo de cálculo (Sim in S1305), a sinalização availableFlagLXN é definida como "1", o de previsão de vetor de movimento mvLXN do grupo de blocos de previsão N é definido como o valor do vetor de movimento mvLY[xNk][yNk] da lista de referência LY do bloco de previsão vizinho Nk, o de previsão de vetor de movimento mvLXN do grupo de blocos de previsão N é definido como o valor do vetor de movimento mvLY[xNk][yNk] da lista de referência LY do bloco de previsão vizinho Nk, o índice de referência refIdxN do grupo de blocos de previsão N é definido como o valor do índice de referência refIdxLY[xNk][yNk] da lista de referência LY do bloco de previsão vizinho Nk e a lista de referência ListN do grupo de blocos de previsão N é definida como LY (S1306) e então, o processo procede para a etapa S1308.
[00223] Por outro lado, em um caso em que tal condição não é satisfeita (no caso de Não em S1303 e Não em S1305), k é aumentado por um, o processo (S1301 a S1307) do bloco de previsão vizinho seguinte é desempenhado e o processo é repetido até que a sinalização availableFlagLXN seja "1" ou o processo do bloco vizinho A1 seja completo e então o processo procede para a etapa S1308.
[00224] Subsequentemente, quando a sinalização availableFlagLXN é "1" (Sim em S1308), escalonamento do vetor de movimento mvLXN é desempenhado (S1309). A sequência do processo de calcular o escalonamento do candidato de previsão de vetor de movimento espacial na etapa S1309 será descrita com referência às Figuras 20 e 21.
[00225] A Figura 20 é um fluxograma que ilustra a sequência do processo de calcular o escalonamento de um vetor de movimento na etapa S1309 ilustrada na Figura 19.
[00226] Uma distância de interfoto td é calculada subtraindo-se o POC da foto de referência referida pela lista ListN do bloco de previsão vizinho a partir do POC da foto-alvo de codificação/decodificação atual (S1601). Em um caso onde a foto de referência referida pela lista ListN do bloco de previsão vizinho é anterior à foto-alvo de codifica- ção/decodificação atual na ordem de visualização, a distância de interfoto td tem um valor positivo. Por outro lado, em um caso onde a foto de referência que é referida a título da lista ListN do bloco de previsão vizinho é posterior à foto-alvo de codificação/decodificação atual na ordem de visualização, a distância de interfoto td tem um valor negativo.
[00227] td = POC de foto-alvo de codificação/decodificação atual - POC de foto de referência que é referido a título da lista de referência ListN do bloco de previsão vizinho.
[00228] Em seguida, uma distância de interfoto tb é calculada subtraindo-se o POC da foto de referência que é referida a título da lista LX da foto alvo de codificação/decodificação atual a partir do POC da foto alvo de codificação/decodificação atual (S1602). Em um caso onde a foto de referência que é referida a título da lista LX da foto alvo de codificação/decodificação atual é anterior à foto alvo de codifica- ção/decodificação atual na ordem de visualização, a distância de inter- foto tb tem um valor positivo. Por outro lado, em um caso onde a foto de referência que é referida a título da lista LX da foto alvo de codifica- ção/decodificação atual é posterior à foto alvo de codificação/decodi- ficação atual na ordem de visualização, a distância de interfoto tb tem um valor negativo.
[00229] tb = POC de foto alvo de codificação/decodificação atual - POC de foto de referência que é referido a título da referência LX de foto alvo de codificação/decodificação atual.
[00230] Subsequentemente, multiplicando-se o vetor de movimento mvLXN por um fator de escalonamento tb/td de acordo com a equação seguinte, o processo de cálculo de escalonamento é desempenhado Petição 870200052220, de 27/04/2020, pág. 121/154 (S1603) e o vetor de movimento mvLXN escalonado é obtido.
[00231] mvLXN = tb/td * mvLXN
[00232] Além disso, um exemplo de um caso onde o cálculo de escalonamento da etapa S1603 é desempenhado como cálculo de precisão de número inteiro é ilustrado na Figura 21. O processo das etapas S1604 a S1606 ilustrado na Figura 21 corresponde ao processo da etapa S1603 ilustrada na Figura 20.
[00233] Primeiramente, de modo similar ao fluxograma ilustrado na Figura 20, a distância de interfoto td e a distância da interfoto tb são calculadas (S1601 e S1602).
[00234] Posteriormente, uma variável tx é calculada usando-se a equação seguinte (S1603).
[00235] tx = (16384 + Abs(td/2))/ td
[00236] Subsequentemente, um fator de escalonamento DistScale- Factor é calculado com o uso da equação seguinte (S1605).
[00237] DistScaleFactor = (tb*tx + 32) >> 6
[00238] Subsequentemente, um vetor de movimento mvLXN escalonado é obtido usando-se a equação seguinte (S1606).
[00239] mvLXN = ClipMv(Sign(DistScaleFactor*mvLXN) * ((Abs(DistScaleFactor*mvLXN) + 127) >> 8))
[00240] Em seguida, um método de derivar um candidato de previsão de vetor de movimento de um bloco de previsão de uma foto de um tempo diferente em S303 ilustrado na Figura 16 será descrito em detalhe. A Figura 24 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento na etapa S303 ilustrada na Figura 16.
[00241] Primeiramente, é determinado se a foto colPic de um tempo diferente é ou não definida na lista de referência L0 ou na lista de referência L1 com base em slice_type e collocated_from_l0_flag (S2101 ilustrada na Figura 24).
[00242] A Figura 25 é um fluxograma que ilustra a sequência do processo de derivar uma foto colPic de um tempo diferente na etapa S2101 ilustrada na Figura 24. Em um caso onde slice_type é B e a sinalização descrita acima collocated_from_l0_flag é "0" (Sim em S2201 ilustrado na Figura 25 e Sim em S2202), RefPicList1 [0], em outras palavras, uma foto da qual o índice de referência da lista de referência L1 é "0" é definida como a foto colPic de um tempo diferente (S2203 ilustrada na Figura 25). Do contrário, em outras palavras, em um caso onde a sinalização descrita acima collocated_from_l0_flag é "1" (Não em S2201 ilustrado na Figura 25, Não em S2202, e Não em S2204), Re- fPicList0 [0], em outras palavras, uma foto da qual o índice de referência da lista de referência L0 é "0" é definida como a foto colPic de um tempo diferente (S2205 ilustrado na Figura 25).
[00243] Em seguida, com referência de volta ao fluxograma ilustrado na Figura 24, um bloco de previsão colPU de um tempo diferente é calculado e as informações de codificação são derivadas (S2102 ilustrado na Figura 24).
[00244] A Figura 26 é um fluxograma que ilustra a sequência do processo de derivar o bloco de previsão colPU da foto colPic de um tempo diferente na etapa S2102 da Figura 24.
[00245] Primeiramente, um bloco de previsão localizado no lado direito inferior (lado externo) na mesma posição do bloco de previsão que é o alvo de processamento dentro da foto colPic de um tempo diferente é definido como o bloco de previsão colPU de um tempo diferente (S2301 ilustrado na Figura 26). Esse bloco de previsão corresponde ao bloco de previsão T0 ilustrado na Figura 9.
[00246] Em seguida, em um caso onde o bloco de previsão está localizado do lado de fora do bloco árvore do bloco de previsão de bloco de codificação de um tempo diferente e o modo de previsão PredMode do bloco de previsão colPU é a intraprevisão MODE_INTRA (S2302 e S2303 ilustrados na Figura 26), um bloco de previsão localizado na posição direita inferior de centro que é a mesma que a posi- ção do bloco de previsão que é o alvo de processamento dentro da foto colPic de um tempo diferente é redefinido como o bloco de previsão colPU de um tempo diferente (S2304 ilustrado na Figura 26). Esse bloco de previsão corresponde ao bloco de previsão T1 ilustrado na Figura 9. O motivo da mudança do bloco de previsão colPu para o bloco de previsão localizado na posição direita inferior de centro que é a mesma que a posição do bloco de previsão, que é o alvo de processamento, é que o custo de um acesso de memória de hardware é alto para a derivação das informações de colPU do lado de fora do bloco árvore.
[00247] Em seguida, com referência de volta ao fluxograma ilustrado na Figura 24, o de previsão de vetor de movimento mvLXCol da lista de referência LX calculado a partir de um bloco de previsão de uma foto diferente que está localizada na mesma posição que a posição do bloco de previsão, que é o alvo de codificação/decodificação e uma sinalização availableFlagLXCol que representa se as informações de codificação da lista de referência LX do grupo de blocos de previsão Col são ou não válidas são calculados (S2103 ilustrado na Figura 24).
[00248] A Figura 27 é um fluxograma que ilustra o processo de derivar as informações de interprevisão na etapa S2103 ilustrada na Figura 24.
[00249] Em um caso onde o modo de previsão PredMode do bloco de previsão colPU de um tempo diferente é a intraprevisão MO- DE_INTRA e não pode ser usado (Não em S2401 ilustrado na Figura 27 e Não em S2402), a sinalização availableFlagLXCol é definido como "0", o vetor de movimento mvLXCol é definido como (0, 0) (S2403 e S2404 ilustrado na Figura 27) e o processo se encerra. Petição 870200052220, de 27/04/2020, pág. 124/154
[00250] Em um caso onde o bloco de previsão colPU pode ser usado e o modo de previsão PredMode não é a intraprevisão MO- DE_INTRA (Sim em S2401 ilustrado na Figura 27 e Sim em S2402), o vetor de movimento mvCol e o índice de reflexão refIdxCol são calculados na sequência seguinte.
[00251] Em um caso onde a sinalização PredFlagL0[xPCol][yPCol] que representa se a previsão L0 do bloco de previsão colPU é ou não usada "0" (Sim em S2405 ilustrado na Figura 27), uma vez que o modo de previsão do bloco de previsão colPU é Pred_L1, o vetor de movimento mvCol é definido como o valor de MvL1[xPCol][yPCol] que é o vetor de movimento de L1 do bloco de previsão colPU (S2406 ilustrado na Figura 27), o índice de referência refIdxCol é definido como o valor do índice de referência RefIdxL1[xPCol][yPCol] da lista de referência L1 (S2407 ilustrado na Figura 27) e a lista ListCol é definida como L1 (S2408 ilustrado na Figura 27).
[00252] Por outro lado, em um caso onde a sinalização de previsão PredFlagL0[xPCol][yPCol] L0 do bloco de previsão colPU não é "0" (Não in S2405 ilustrado na Figura 27), é determinado se a sinalização de previsão PredFlagL1[xPCol][yPCol] L1 do bloco de previsão colPU é ou não "0". Em um caso onde a sinalização de previsão PredFlagL1[xPCol][yPCol] L1 do bloco de previsão colPU é "0" (Sim em S2409 ilustrado na Figura 27), o vetor de movimento mvCol é definido como o valor de MvL0[xPCol][yPCol] que é o vetor de movimento da lista de referência L0 do bloco de previsão colPU (S2410 ilustrado na Figura 27), o índice de referência refIdxCol ´´e definido como o valor do índice de referência RefIdxL0[xPCol][yPCol] da lista de referência L0 (S2411 ilustrado na Figura 27) e a lista ListCol é definida como L0 (S2412 ilustrado na Figura 27).
[00253] Em um caso onde nenhuma da sinalização de previsão ção de previsão PredFlagL1[xPCol][yPCol] L1 do bloco de previsão colPU não é "0" (Não em S2405 ilustrado na Figura 27 e Não em S2409), o modo de interprevisão do bloco de previsão colPU é a biprevisão Pred_BI e em conformidade, um é selecionado de dois vetores de movimento das listas de referência L0 e L1 (S2413 ilustrado na Figura 27).
[00254] A Figura 28 é um fluxograma que ilustra a sequência do processo de derivar informações de interprevisão de um bloco de previsão quando o modo de interprevisão do bloco de previsão colPU é a biprevisão Pred_BI.
[00255] Primeiramente, é determinado se os POCs de todas as fotos adicionadas na lista de referência são menores do que o POC da foto-alvo de codificação/decodificação atual (S2501). Em um caso onde os POCs de todas as fotos adicionadas em todas as listas de referência L0 e L1 do bloco de previsão colPU são menores do que o POC da foto alvo de codificação/decodificação atual (Sim em S2501) e em um caso onde X é "0", em outras palavras, o candidato de vetor de previsão in do vetor de movimento da lista de referência L0 do bloco de previsão que é o alvo de codificação/decodificação é calculado (Sim em S2502), as informações de interprevisão do lado L0 do bloco de previsão colPU são selecionadas. Por outro lado, em um caso onde X é "1", em outras palavras, o candidato de vetor de previsão do vetor de movimento da lista de referência L1 do bloco de previsão que é o alvo de codificação/decodificação é calculado (Não em S2502), as informações de interprevisão do lado L1 do bloco de previsão colPU são selecionadas. Por outro lado, em um caso onde pelo menos um dos POCs das fotos adicionadas em todas as listas de referência L0 e L1 do bloco de previsão colPU é maior do que o POC da foto alvo de co- dificação/decodificação atual (Não em S2501), em um caso onde a sinalização collocated_from_l0_flag é "0" (Sim em S2503), as informa- Petição 870200052220, de 27/04/2020, pág. 126/154 ções de interprevisão do lado L0 do bloco de previsão colPU é são se-lecionadas. Por outro lado, em um caso onde a sinalização colloca- ted_from_l0_flag é "1" (Não em S2503), as informações de interprevi- são do lado L1 do bloco de previsão colPU são selecionadas. Em outras palavras, em um caso onde o bloco de previsão colPU é definido com o uso da lista de referência L1, L0 é selecionada como o vetor de movimento mvCol e, em um caso onde o bloco de previsão colPU é definido com o uso da lista de referência L0, L1 é selecionada como o vetor de movimento mvCol. Configurando-se a seleção do bloco de previsão colPU e a lista de seleção do vetor de movimento mvCol para serem opostos um ao outro, um vetor de previsão que tem alta precisão capaz de fazer uma previsão de interpolação com o uso de um vetor de movimento para uma foto de referência em uma direção da foto colPic para a foto alvo de codificação pode ser calculado.
[00256] Em um caso onde as informações de interprevisão do lado L0 do bloco de previsão colPU são selecionadas (Sim em S2502 e Sim em S2503), o vetor de movimento mvCol é definido como o valor do MvL0[xPCol][yPCol] (S2504), o índice de referência refIdxCol é definido como o valor do RefIdxL0[xPCol][yPCol] (S2505) e a lista ListCol é definida como L0 (S2506).
[00257] Por outro lado, em um caso onde a informações de interprevisão do lado L1 do bloco de previsão colPU é selecionado (Não em S2502 e Não em S2503), o vetor de movimento mvCol é definido como o valor do MvL1[xPCol][yPCol] (S2507), o índice de referência refIdxCol é definido como o valor de RefIdxL1[xPCol][yPCol] (S2508) e a lista ListCol é definida como L1 (S2509).
[00258] Com referência de volta à Figura 27, quando as informa- ções de interprevisão podem ser derivadas do bloco de previsão colPU, a sinalização availableFlagLXCol é definida como "1" (S2414 ilustrado na Figura 27).
[00259] Em seguida, com referência de volta ao fluxograma ilustrado na Figura 24, em um caso onde a sinalização availableFlagLXCol é "1" (Sim em S2104 ilustrado na Figura 24), o vetor de movimento mvLXCol é escalonado como necessário (S2105 ilustrado na Figura 24). A sequência do processo de cálculo do escalonamento do vetor de movimento mvLXCol será descrito com referência às Figuras 29 e 30.
[00260] A Figura 29 é um fluxograma que ilustra a sequência do processo de calcular o escalonamento do vetor de movimento na etapa S2105 ilustrada na Figura 24.
[00261] Uma distância de interfoto td é calculada subtraindo-se o POC da foto de referência que é referida a título da lista ListCol do bloco de previsão colPU a partir do POC da foto colPic de um tempo diferente (S2601). EM um caso onde o POC da foto de referência que é referida a título da lista ListCol do bloco de previsão colPU é anterior à foto colPic de um tempo diferente na ordem de visualização, a distância de interfoto td tem um valor positivo. Por outro lado, em um caso onde o POC da foto de referência que é referida a título da lista ListCol do bloco de previsão colPU é posterior à foto colPic de um tempo diferente na ordem de visualização, a distância de interfoto td tem um valor negativo.
[00262] td = POC de foto colPic de tempo diferente - POC de foto de referência que é referida a título da lista ListCol do bloco de previsão colPU
[00263] Uma distância de interfoto tb é calculada subtraindo-se o POC da foto de referência que é referida a título da lista LX da foto alvo de codificação/decodificação atual a partir do POC da foto alvo de codificação/decodificação atual (S2602). Em um caso onde a foto de referência que é referida a título da lista LX da foto alvo de codifica- ção/decodificação atual é anterior à foto alvo de codificação/decodifi- Petição 870200052220, de 27/04/2020, pág. 128/154 cação atual na ordem de visualização, a distância de interfoto tb tem um valor positivo. Por outro lado, em um caso onde a foto de referência que é referida a título da lista LX da foto alvo de codifica- ção/decodificação atual é posterior à foto-alvo de codifica- ção/decodificação atual na ordem de visualização, a distância de inter- foto tb tem um valor negativo.
[00264] tb = POC de foto-alvo de codificação/decodificação atual - POC de foto de referência que é referido a título da referência LX de foto-alvo de codificação/decodificação atual.
[00265] Subsequentemente, as distâncias de interfoto td e tb são comparadas umas com as outras (S2603). Em um caso onde as distâncias de interfoto td e tb são as mesmas (Sim em S2603), esse processo de cálculo de escalonamento se encerra. Por outro lado, em um caso onde as distâncias de interfoto td e tb não são as mesmas (Não em S2603), multiplicando-se o vetor de movimento mvLXCol by por um fator de escalonamento tb/td com o uso da equação seguinte, o processo de calculo de escalonamento é desempenhado (S2604), pelo qual o vetor de movimento mvLXCol escalonado é obtido.
[00266] mvLXCol = tb/td * mvLXCol
[00267] Além disso, um exemplo de um caso onde o cálculo de escalonamento da etapa S2604 é desempenhado como cálculo de precisão de número inteiro é ilustrado na Figura 30. O processo das etapas S2605 a S2607 ilustrada na Figura 30 corresponde ao processo da etapa S2604 ilustrado na Figura 29.
[00268] Primeiramente, de modo similar ao fluxograma ilustrado na Figura 29, a distância de interfoto td e a distância de interfoto tb são calculadas (S2601 e S2602).
[00269] Subsequentemente, as distâncias de interfoto td e tb são comparadas umas com as outras (S2603). Em um caso onde as distâncias de interfoto td e tb são as mesmas (Sim em S2603), esse pro- Petição 870200052220, de 27/04/2020, pág. 129/154 cesso de cálculo de escalonamento se encerra. Por outro lado, em um caso onde as distâncias de interfoto td e tb não são as mesmas (Não em S2603), uma variável tx é calculada usando-se a equação seguinte (S2605).
[00270] tx = (16384 + Abs(td/2))/td
[00271] Subsequentemente, um fator de escalonamento DistScale- Factor é calculado com o uso da equação seguinte (S2606).
[00272] DistScaleFactor = (tb*tx + 32) >> 6
[00273] Subsequentemente, um vetor de movimento mvLXN escalonado é obtido usando-se a equação seguinte (S2607).
[00274] mvLXN = ClipMv(Sign(DistScaleFactor*mvLXN) * ((Abs(DistScaleFactor*mvLXN) + 127) >> 8))
[00275] A sequência de adicionar um candidato de previsão de vetor de movimento à lista de previsão de vetor de movimento em S304 ilustrado na Figura 16 será descrito em detalhe.
[00276] Os candidatos de previsão de vetor de movimento mvLXCol, mvLXA, e mvLXB de cada lista de referência LX que são calculados em S301, S302, e S303 ilustrados na Figura 16 são adicionados à lista de previsão de vetor de movimento mvpListLX da lista de referência LX (S304). Na modalidade da presente invenção, níveis de prioridade atribuídos e, adicionando-se os candidatos de previsão de vetor de movimento mvLXCol, mvLXA, e mvLXB à lista de previsão de vetor de movimento mvpListLX da lista de referência LX de acordo com a ordem do nível de prioridade do nível mais alto ao nível mais baixo, um elemento que tem um nível de prioridade alto é arrumado no lado da frente da lista de previsão de vetor de movimento. Quando um número de elementos dentro da lista de previsão de vetor de movimento é limitado em S306 ilustrado na Figura 16, excluindo-se elementos arrumados no lado traseiro da lista de previsão de vetor de movimento a partir da lista de previsão de vetor de movimento, elementos que têm Petição 870200052220, de 27/04/2020, pág. 130/154 níveis de prioridade altos são deixados.
[00277] A lista de previsão de vetor de movimento mvpListLX forma uma estrutura de lista, é administrada por um índice i que representa a posição dentro da lista de previsão de vetor de movimento e tem uma área de armazenamento que armazena o candidato de previsão de vetor de movimento que corresponde ao índice i como um elemento que é instalado no mesmo. O número do índice i se inicia a partir do 0 e o candidato de previsão de vetor de movimento é armazenado na área de armazenamento da lista de previsão de vetor de movimento mvpListLX. Em um processo subsequente, o candidato de previsão de vetor de movimento que é um elemento do índice i adicionado na lista de previsão de vetor de movimento mvpListLX será representado como mvpListLX[i].
[00278] Em seguida, o método para o processo de adicionar os candidatos de previsão de vetor de movimento mvLXCol, mvLXA, e mvLXB da lista de referência LX para a lista de previsão de vetor de movimento mvpListLX da lista de referência LX em S304 ilustrado na Figura 16 será descrito em detalhe. A Figura 31 é um fluxograma que ilustra a sequência do processo de derivar candidatos de previsão de vetor de movimento na etapa S304 ilustrada na Figura 16.
[00279] Primeiramente, o índice i da lista de previsão de vetor de movimento mvpListLX é definido como "0" (S3101). Em um caso onde a sinalização availableFlagLXCol é "1" (Sim em S3102), o candidato de previsão de vetor de movimento mvLXCol da lista de referência LX é adicionado a uma posição que corresponde ao índice i da lista de previsão de vetor de movimento mvpListLX (S3103) e a atualização é desempenhada adicionando-se "1" ao índice i (S3104).
[00280] Subsequentemente, em um caso onde a sinalização availableFlagLXA é "1" (Sim em S3105), o candidato de previsão de vetor de movimento mvLXA da lista de referência LX é adicionado a uma posiPetição 870200052220, de 27/04/2020, pág. 131/154 ção que corresponde ao índice i da lista de previsão de vetor de movimento mvpListLXmvpListLX (S3106) e a atualização é desempenhada adicionando-se "1" ao índice i (S3107).
[00281] Subsequentemente, em um caso onde a sinalização availa- bleFlagLXB é "1" (Sim em S3108), o candidato de previsão de vetor de movimento mvLXB da lista de referência LX é adicionado a uma posição que corresponde ao índice i da lista de previsão de vetor de movimento mvpListLX (S3109) e o processo de adição da lista de previsão de vetor de movimento se encerra.
[00282] Na sequência de adição da lista de previsão de vetor de movimento, após um candidato de previsão de vetor de movimento temporal ser adicionado, dois candidatos de previsão de vetor de movimento espaciais são adicionados. Em outras palavras, o nível de prioridade do candidato de previsão de vetor de movimento temporal é definido para ser mais alto do que aquele do candidato de previsão de vetor de movimento espacial.
[00283] Em seguida, o método de remoção de um candidato de previsão de vetor de movimento redundante, que está incluído na lista de previsão de vetor de movimento, em S305 ilustrado na Figura 16 será descrito em detalhe. A Figura 32 é um fluxograma que ilustra a sequência do processo de remoção de candidatos de previsão de vetor de movimento redundantes em S305 ilustrado na Figura 16.
[00284] A unidade de remoção de candidato redundante de previsão de vetor de movimento 123 ou 223 compara candidatos de vetor de movimento previstos espacialmente adicionados na lista de previsão de vetor de movimento mvpListLX uns com os outros (S4101). Em um caso onde uma pluralidade de candidatos de vetor de movimento tem o mesmo valor (Sim em S4102), os candidatos de vetor de movimento são determinados para serem candidatos de vetor de movimento redundantes e, em uma ordem descendente, em outras palavras, os Petição 870200052220, de 27/04/2020, pág. 132/154 candidatos de vetor de movimento redundantes são removidos com exceção de um candidato de vetor de movimento que tem o menor índice i (S4103). Aqui, uma comparação da identidade de candidatos de vetor de movimento não é desempenhada entre o candidato de previsão de vetor de movimento temporal e o candidato de previsão de vetor de movimento espacial. A geração do candidato de previsão de vetor de movimento temporal e a geração do candidato de previsão de vetor de movimento espacial podem ser implantadas através de um processo paralelo devido a uma diferença nas memórias de informações de movimento das mesmas a serem acessadas e uma diferença nas quantidades de processamento das mesmas. Em um caso onde uma comparação de vetor de movimento entre o candidato de previsão de vetor de movimento temporal e o candidato de previsão de vetor de movimento espacial é feita, um tempo de espera ocorre quando o processo paralelo é desempenhado. Em conformidade, é preferencial que não haja dependência entre o candidato de previsão de vetor de movimento temporal e o candidato de previsão de vetor de movimento espacial e, desse modo, na presente invenção, a comparação de redundância do vetor de movimento entre o candidato de previsão de vetor de movimento temporal e o candidato de previsão de vetor de movimento espacial não é desempenhada. Aqui, a fim de adicionalmente diminuir a quantidade de processamento, uma determinação de se vetores de previsão são ou não idênticos pode não ser desempenhada entre os candidatos de previsão de vetor de movimento espaciais. Além disso, após os candidatos de vetor de movimento redundantes são removidos, dentro da lista de previsão de vetor de movimento mvpListLX, uma área de armazenamento do candidato de previsão de vetor de movimento removido é vaga e em conformidade, o índice i = 0 é usado como a referência e a parte de dentro da lista de previsão de vetor de movimento é preenchido com os candidatos de previsão de Petição 870200052220, de 27/04/2020, pág. 133/154 vetor de movimento de acordo com a ordem do valor do índice i na ordem ascendente (S4104). Por exemplo, em um caso onde um candidato de previsão de vetor de movimento mvListLX[1] que tem um índice i de "1" é removido e os candidatos de previsão de vetor de movimento mvListLX [0] e mvListLX[2] que têm índices de 0 e 2 são deixados, o candidato de previsão de vetor de movimento mvListLX[2] que tem um índice i de "2" é mudado recentemente para um candidato de previsão de vetor de movimento mvListLX[1] que tem um índice i de "1". Além disso, um candidato de previsão de vetor de movimento mvListLX[2] que tem um índice de "2" é definido para não estar presente.
[00285] Em seguida, o método de limitar o número de candidatos de vetor de movimento incluído na lista de previsão de vetor de movimento em S306 ilustrado na Figura 16 será descrito em detalhe. A Figura 33 é um fluxograma que ilustra a sequência do processo de limitar o número de candidatos de previsão de vetor de movimento em S306 ilustrado na Figura 16.
[00286] A unidade de limitação de número de candidato de previsão de vetor de movimento 124 ou 224 limita o número numMVPCandLX dos candidatos de previsão de vetor de movimento da lista de referência LX adicionados na lista de previsão de vetor de movimento mvpLis- tLX da lista de referência LX para um número final definido final- NumMVPCand de candidatos.
[00287] Primeiramente, o número de elementos adicionados na lista de previsão de vetor de movimento mvpListLX da lista de referência LX é contado e o número dos elementos é definido como o número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX (S5101).
[00288] Subsequentemente, em um caso onde o número numMV- PCandLX de candidatos de previsão de vetor de movimento da lista de Petição 870200052220, de 27/04/2020, pág. 134/154 referência LX é menor do que o número final finalNumMVPCand de candidatos (Sim em S5103), um vetor de movimento que tem o valor de (0, 0) é adicionado a uma posição na qual o índice i da lista de previsão de vetor de movimento mvpListLX da lista de referência LX corresponde ao numMVPCandLX (S5104) e um é adicionado ao numMVPCandLX (S5105). Em um caso onde o número numMVPCan- dLX de candidatos de previsão de vetor de movimento e o número final finalNumMVPCand de candidatos têm o mesmo valor (Sim em S5105), esse processo de limitação se encerra. Por outro lado, em um caso onde o número numMVPCandLX de candidatos de previsão de vetor de movimento e o número final finalNumMVPCand de candidatos não têm o mesmo valor (Não em S5105), o processo das etapas S5104 e S5105 é repetido até que o número numMVPCandLX de candidatos de previsão de vetor de movimento e o número final final- NumMVPCand de candidatos tenham o mesmo valor. Em outras palavras, um MV que tem um valor de (0, 0) é adicionado até que o número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX chegue ao número final finalNumMVPCand de candidatos. Como acima, adicionando-se MVs que têm o valor de (0, 0) de modo redundante, mesmo em um caso onde o índice de um de previsão de vetor de movimento tem certo valor na faixa que é igual a ou maior que zero e é menor do que o número final finalNumMV- PCand de candidatos, o de previsão de vetor de movimento pode ser determinado.
[00289] Por outro lado, em um caso onde o número numMVPCan- dLX de candidatos de previsão de vetor de movimento da lista de referência LX é maior do que o número final finalNumMVPCand de candidatos (Não em S5103 e Sim em S5107), todos os candidatos de previsão de vetor de movimento, sendo que cada um tem o índice i da lista de previsão de vetor de movimento mvpListLX da lista de referência LX Petição 870200052220, de 27/04/2020, pág. 135/154 a serem maiores do que "finalNumMVPCand - 1" são removidos (S5108), o valor de finalNumMVPCand é definido como o número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX (S5109) e esse processo de limitação se encerra.
[00290] Em um caso onde o número numMVPCandLX de candidatos de previsão de vetor de movimento da lista de referência LX é o mesmo que o número final finalNumMVPCand de candidatos (Não em S5103 e Não em S5107), esse processo de limitação se encerra sem desempenhar o processo de limitação.
[00291] (Modalidade 2)
[00292] Em uma segunda modalidade, no lado de decodificação, um de previsão de vetor de movimento é especificado sem construir uma lista de previsão de vetor de movimento. Em um caso onde a lista de previsão de vetor de movimento é construída, enquanto é necessário desempenhar cálculo de escalonamento para cada um do candidato espacial e o candidato temporal, na segunda modalidade, especificando-se um de previsão de vetor de movimento sem gerar uma lista de previsão de vetor de movimento, o número de vezes que um cálculo de escalonamento pode ser suprimido. Um dispositivo de codificação de acordo com a modalidade e um dispositivo de decodificação de acordo com a modalidade que não a mesma àqueles da Modalidade 1. Além disso, o mesmo resultado de decodificação do de previsão de vetor de movimento como o da primeira modalidade pode ser obtido.
[00293] A Figura 22 é um fluxograma que ilustra derivação de um de previsão de vetor de movimento no lado de decodificação de acordo com a Modalidade 2.
[00294] Primeiramente, mvp_idx_LX que é um índice do candidato de previsão de vetor de movimento e availableFlagLXCol que representa se um candidato temporal pode ou não ser usado são derivadas Petição 870200052220, de 27/04/2020, pág. 136/154 (S2201 e S2202). A ordem de derivação de mvp_idx_LX e available- FlagLXCol é arbitrária e desse modo a ordem de S2201 e S2202 pode ser intercambiada. Em seguida, é determinado se os valores de mvp_idx_LX e availableFlagLXCol que foram derivados satisfazem ou não mvp_idx_LX == 0 e availableFlagLXCol == 1 (S2203). Uma vez que os candidatos de previsão de vetor de movimento são adicionados (gerados) de acordo com a ordem mvLXCol, mvLXA, e mvLXB, em um caso onde mvp_idx_LX == 0 e availableFlagLXCol == 1 (Sim em S2203), o candidato de previsão de vetor de movimento pode ser especificado como um candidato de previsão de vetor de movimento temporal e em conformidade, um vetor de movimento é derivado a partir de um bloco de previsão de um tempo diferente e o vetor de movimento derivado é definido como o de previsão de vetor de movimento (S2204). Por outro lado, em um caso onde mvp_idx_LX == 0 e availa- bleFlagLXCol == 1 não são satisfeitas (Não em S2203), em outras palavras, em um caso onde mvp_idx_LX=!0 ou availableFlagLXCol == 0, o candidato de previsão de vetor de movimento pode ser especificado como um candidato de previsão de vetor de movimento espacial e em conformidade, um vetor de movimento é derivado do bloco de previsão espacial. Na presente invenção, os candidatos de vetor de previsão são adicionados de acordo com a ordem mvLXCol, mvLXA, e mvLXB, e o nível de prioridade do candidato de previsão de vetor de movimento temporal é definido como o mais alto. Em conformidade, em um caso onde um candidato de previsão de vetor de movimento temporal está presente, mvp_idx_LX == 0 é necessariamente satisfeito e, no caso de mvp_idx_LX!= 0, um candidato de previsão de vetor de movimento de espaço pode ser necessariamente especificado. Além disso, no caso de availableFlagLXCol == 0, o mesmo representa que o candidato de previsão de vetor de movimento temporal não está presente e em conformidade, o de previsão de vetor de movimento pode ser Petição 870200052220, de 27/04/2020, pág. 137/154 especificado como um candidato de previsão de vetor de movimento espacial. Portanto, em concordância com os valores de mvp_idx_LX e availableFlagLXCol, pode ser determinado se o de previsão de vetor de movimento é ou não o candidato de previsão de vetor de movimento temporal ou o candidato de previsão de vetor de movimento espacial.
[00295] Em um caso onde o de previsão de vetor de movimento é determinado a ser um candidato de previsão de vetor de movimento espacial (Não em S2203), de modo similar ao S303 de acordo com a primeira modalidade ilustrada na Figura 16, um candidato de vetor de previsão é derivado a partir do bloco de previsão superior (S2206). Subsequentemente, é determinado se o candidato de vetor de previsão é ou não derivado do bloco de previsão esquerdo e o candidato de vetor de previsão derivado do bloco de previsão superior são o mesmo vetor de movimento e, em um caso onde os vetores de movimento são os mesmos, um do mesmo é removido (S2207). Finalmente, um de previsão de vetor de movimento é selecionado com base no valor de mvp_idx_LX (S2208). Aqui, a fim de reduzir adicionalmente a quantidade de processo, o candidato de previsão de vetor de movimento espacial pode ser especificado com base em apenas availableFlagLXA sem determinar a identidade de vetores de previsão entre os candidatos de previsão de vetor de movimento espaciais.
[00296] A Figura 23 ilustra o padrão de uma seleção de previsão de vetor de movimento (S2208 ilustrado na Figura 22) de um caso onde um de previsão de vetor de movimento é determinado a ser um candidato de previsão de vetor de movimento espacial (Não em S2203 ilustrado na Figura 22). Em um caso onde mvp_idx_LX == 0 e available- FlagLXCol == 0, o primeiro candidate espacial é selecionado. Em um caso onde mvp_idx_LX == 1 e availableFlagLXCol == 1, o primeiro candidate espacial é selecionado. Em um caso onde mvp_idx_LX == 1 Petição 870200052220, de 27/04/2020, pág. 138/154 e availableFlagLXCol == 0, o segundo candidato espacial é selecionado. Além disso, em um caso onde um candidato de previsão de vetor de movimento espacial não está presente em cada condição, o de previsão de vetor de movimento é definido como (0, 0).
[00297] Como na segunda modalidade, especificando-se um de previsão de vetor de movimento sem construir uma lista de previsão de vetor de movimento, o mesmo vetor de previsão como o de um caso onde decodificação é desempenhada em concordância com a primeira modalidade é obtida e, adicionalmente, há as vantagens seguintes.
[00298] Com base nos valores de mvp_idx_LX e availableFla- gLXCol, pode ser determinado se o de previsão de vetor de movimento é ou não um candidato de previsão de vetor de movimento temporal ou um candidato de previsão de vetor de movimento espacial. Em conformidade, apenas um do processo de derivação de vetor de previsão do candidato de previsão de vetor de movimento temporal e do processo de derivação de vetor de previsão do candidato de previsão de vetor de movimento espacial pode ser desempenhado. Portanto, a quantidade de processamento de decodificação é cerca de uma metade de um caso onde ambos o candidato de previsão de vetor de movimento temporal e o candidato de previsão de vetor de movimento espacial são derivados. Em conformidade, a velocidade de execução é elevada do ponto de vista do software e o consumo pode ser reduzido do ponto de vista do hardware.
[00299] Além disso, em um caso onde a lista de previsão de vetor de movimento é construída, em um caso onde o cálculo de escalonamento do de previsão de vetor de movimento é necessário para cada um do candidato de previsão de vetor de movimento temporal e do candidato de previsão de vetor de movimento espacial, na primeira modalidade, é necessário desempenhar o cálculo de escalonamento uma vez para derivação do candidato de previsão de vetor de movi- Petição 870200052220, de 27/04/2020, pág. 139/154 mento temporal e uma vez para derivação do candidato de previsão de vetor de movimento espacial. Entretanto, na segunda modalidade, um do processo de derivação de vetor de previsão do candidato de previsão de vetor de movimento temporal e o processo de derivação de vetor de previsão do candidato de previsão de vetor de movimento espacial é selecionado e é desempenhado e em conformidade, o de previsão de vetor de movimento pode ser derivado desempenhando-se o cálculo de escalonamento uma vez no lado de decodificação. Em conformidade, particularmente, um circuito de escalonamento que requer desempenhar divisão com o uso de hardware pode ser usado de modo comum para derivação do candidato de previsão de vetor de movimento temporal e para derivação do candidato de previsão de vetor de movimento espacial, pela qual a escala de circuito pode ser reduzida.
[00300] Além disso, uma vez que o resultado de decodificação de acordo com a primeira modalidade da presente invenção e o resultado de decodificação de acordo com a segunda modalidade são os mesmos, a arquitetura pode ser selecionada no lado de decodificação. Em outras palavras, em um caso onde a mesma configuração é desejada no lado de codificação e no lado de decodificação como em um sistema tal como uma filmadora na qual o dispositivo de codificação e o dispositivo de decodificação são integrados, como na primeira modalidade, o de previsão de vetor de movimento pode ser especificado construindo-se a lista de candidatos de previsão de vetor de movimento. Por outro lado, em um caso onde apenas a redução da quantidade de processamento no lado de decodificação é de significância, como na segunda modalidade, após um candidato temporal ou um candidato espacial ser especificado sem construir uma lista de candidatos de previsão de vetor de movimento, o de previsão de vetor de movimento pode ser especificado operando-se apenas uma da derivação do candidato espacial e da derivação do candidato temporal. Petição 870200052220, de 27/04/2020, pág. 140/154
[00301] Os pontos da modalidade que traz tais vantagens da presente invenção nos dois pontos seguintes.
[00302] O candidato de previsão de vetor de movimento temporal (um candidato) é definido a ter um nível de prioridade mais alto do que o dos candidatos de previsão de vetor de movimento espaciais (dois candidatos).
[00303] O processo de remoção de candidato redundante de um caso onde os candidatos de previsão de vetor de movimento são os mesmos não é desempenhado entre os candidatos de previsão de vetor de movimento temporais e os candidatos de previsão de vetor de movimento espaciais (o processo de remoção de candidato redundante é permitido apenas entre os candidatos de previsão de vetor de movimento espaciais).
[00304] Em outras palavras, o nível de prioridade do candidato de previsão de vetor de movimento temporal capaz de determinar de modo singular se o candidato de previsão de vetor de movimento está ou não presente com base na sinalização de usabilidade de candidato de previsão de vetor de movimento temporal availableFlagLXCol usada para um único candidato de previsão de vetor de movimento é definida a ser alta, o nível de prioridade do de previsão de vetor de movimento espacial que tem uma pluralidade de candidatos de previsão de vetor de movimento e tem o número de candidatos de previsão de vetor de movimento a ser cambiável é definido como baixo e o de previsão de vetor de movimento é adicionado à lista dos candidatos de previsão de vetor de movimento, que é uma característica distinta. Dentre os candidatos de previsão de vetor de movimento espaciais, candidatos redundantes são removidos com base na determinação de identidade e em conformidade, o nível de prioridade do mesmo é definido a ser baixo na lista de candidato de previsão de vetor de movimento de modo a ser adicionado em uma categoria baixa. Por outro lado, uma vez que a Petição 870200052220, de 27/04/2020, pág. 141/154 determinação de identidade não é feita entre o candidato de previsão de vetor de movimento temporal e o candidato de previsão de vetor de movimento espacial, o candidato de previsão de vetor de movimento temporal é configurado para ter um nível de prioridade alto na lista de candidato de previsão de vetor de movimento de modo a ser adicionado em uma categoria alta. Em conformidade, o de previsão de vetor de movimento espacial e o de previsão de vetor de movimento temporal pode ser separado na lista e o grau de separação entre a direção espacial e a direção temporal é elevado na previsão de vetor de movimento e eficiência do processo é realçada e a escala de circuito é reduzida.
[00305] O fluxo de bits de uma saída de foto em movimento pelo dispositivo de codificação de foto em movimento de acordo com a modalidade descrita acima de um formato de dados específico de modo a ser decodificado em concordância com o método de codificação usado na modalidade e em conformidade, o dispositivo de decodificação de foto em movimento que corresponde ao dispositivo de codificação de foto em movimento pode decodificar o fluxo de bits do formato de dados específico.
[00306] Em um caso onde uma rede com fio e sem fio é usada para trocar um fluxo de bits entre o dispositivo de codificação de foto em movimento o dispositivo de decodificação de foto em movimento, o fluxo de bits pode ser convertido em um formato de dados que é apropriado para a forma de transmissão em um percurso de comunicação e ser transmitido. Em tal caso, um dispositivo de transmissão de foto em movimento é disposto, que converte uma saída de fluxo de bits pelo dispositivo de codificação de foto em movimento em dados de codificação de um formato de dados que é apropriado para a forma de transmissão no percurso de comunicação e um dispositivo de recepção de foto em movimento é disposto, que recebe os dados de codifi- Petição 870200052220, de 27/04/2020, pág. 142/154 cação da rede, restaura o fluxo de bits dos dados de codificação e fornece o fluxo de bits restaurado ao dispositivo de decodificação de foto em movimento.
[00307] O dispositivo de transmissão de foto em movimento inclui: uma memória que armazena temporariamente uma saída de fluxo de bits pelo dispositivo de codificação de foto em movimento; uma unidade de processamento de pacote que empacota o fluxo de bits; e uma unidade de transmissão que transmite dados de codificação empacotados através de uma rede. O dispositivo de recepção de foto em movimento inclui: uma unidade de recepção que recebe dados de codificação empacotados através de uma rede; uma memória que armazena temporariamente os dados de codificação recebidos; e uma unidade de processamento de pacote que gera um fluxo de bits desempenhando-se um processo de pacote de dados de codificação e fornece o fluxo de bits gerado ao dispositivo de decodificação de foto em mo-vimento.
[00308] Os processos em relação à codificação e à decodificação descritas acima podem ser realizados não apenas como um dispositivo de transmissão/armazenamento/recepção que usa hardware, mas também por firmware armazenado em uma memória ROM (ROM), uma memória rápida, ou similares ou software de um computador ou similar. O programa de firmware ou software pode ser fornecido dotado de ser registrado em um meio de registro que pode ser lido por um computador ou similar, pode ser fornecido de um servidor através de uma rede com fio e sem fio, ou pode ser fornecido como transmissão de dados de transmissão digital de satélite.
[00309] Como acima, a presente invenção foi descrita com base nas modalidades. Entretanto, tais modalidades são meramente exemplos e é compreendido para uma pessoa versada na técnica que vá- rias modificações podem ser feitas em cada elemento constituinte das mesmas ou uma combinação de cada sequência de processo e tais exemplos modificados também pertencem ao escopo da presente invenção.
DESCRIÇÃO DAS REFERÊNCIAS NUMÉRICAS
[00310] 101 memória de foto, 102 unidade de detecção de vetor de movimento, 103 unidade de cálculo de diferença de vetor de movimento, 104 unidade de estima de informações de interprevisão, 105 unidade de previsão de compensação de movimento, 106 unidade de determinação de método de previsão, 107 unidade de geração de sinal residual, 108 unidade de quantização e transformação ortogonal, 109 primeira unidade de geração de fluxo de bits, 110 segunda unidade de geração de fluxo de bits, 111 unidade de multiplexação, 112 unidade de quantização inversa e transformação ortogonal inversa, 113 unidade de superposição de sinal de foto decodificada, 114 memória de armazenamento de informações de codificação, 115 memória de foto decodificada, 121 unidade de geração de candidato de previsão de vetor de movimento, 122 unidade de adição de candidato de previsão de vetor de movimento, 123 unidade de remoção de candidato redundante de previsão de vetor de movimento, 124 unidade de limitação de número de candidato de previsão de vetor de movimento, 125 unidade de cálculo de quantidade de codificação de candidato de previsão de vetor de movimento, 126 unidade de seleção de previsão de vetor de movimento, 127 unidade de subtração de vetor de movimento, 201 unidade de separação, 202 primeira unidade de decodificação de fluxo de bits, 203 segunda unidade de decodificação de fluxo de bits, 204 unidade de cálculo de vetor de movimento, 205 unidade de estima de informações de interprevisão, 206 unidade de compensação de movimento, 207 unidade de quantização inversa e transformação ortogonal inversa, 208 unidade de superposição de sinal de foto decodificada, 209 memória de armazenamento de informações decodificadas, 210 Petição 870200052220, de 27/04/2020, pág. 144/154 memória de foto decodificada, 221 unidade de geração de candidato de previsão de vetor de movimento, 222 unidade de adição de candidato de previsão de vetor de movimento, 223 unidade de remoção de candidato redundante de previsão de vetor de movimento, 224 unidade de limitação de número de candidato de previsão de vetor de movimento, 225 unidade de seleção de previsão de vetor de movimento, 226 unidade de adição de vetor de movimento.
APLICABILIDADE INDUSTRIAL
[00311] A presente invenção pode ser usada na tecnologia de codificação de foto em movimento com o uso de compensação de movimento. Petição 870200052220, de 27/04/2020, pág. 145/154

Claims (3)

1. Dispositivo de codificação de foto em movimento que codifica uma foto em movimento com o uso de compensação de movimento em unidades de blocos obtidos dividindo-se cada foto da foto em movimento, sendo que o dispositivo de codificação de foto em movimento é caracterizado pelo fato de que compreende: uma unidade de geração de candidato de previsor de vetor de movimento (121, 122) configurada para derivar uma pluralidade de candidatos de previsores de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dentre blocos decodificados que são vizinhos a um bloco-alvo de decodificação em espaço ou tempo e construir uma lista de candidatos de previsor de vetor de movimento.
2. Dispositivo de codificação de foto caracterizado pelo fato de que compreende: uma unidade de remoção de candidatos de previsor de vetor de movimento redundante (123) configurada para comparar se os valores de vetores são ou não os mesmos dentre candidatos a previ- sores de vetor de movimento previstos a partir de um bloco decodificado que é vizinho em espaço e remover os candidatos a previsores de vetor de movimento que têm os mesmos valores de vetores a partir da lista de candidato de previsor de vetor de movimento em que um é deixado sem comparar se um valor de vetor de um previsor de vetor de movimento previsto de um bloco codificado que é vizinho em espaço ou não e um valor de vetor de um previsor de vetor de movimento previsto a partir de um bloco decodificado que é vizinho em tempo são os mesmos; uma unidade de cálculo de vetor diferencial (103) configurada para calcular uma diferença de vetor de movimento com base em uma diferença entre o previsor de vetor de movimento selecionado e o vetor de movimento usado para a compensação de movimento; e uma unidade de codificação (109) configurada para codificar informações que representam o previsor de vetor de movimento selecionado junto com a diferença de vetor de movimento.
3. Método de codificação de foto em movimento para codificar uma foto em movimento com o uso de compensação de movimento em unidades de blocos obtidos dividindo-se cada foto da foto em movimento, sendo que o método de codificação de foto em movimento é caracterizado pelo fato de que compreende as etapas de: derivar uma pluralidade de candidatos a previsores de vetor de movimento fazendo-se uma previsão com base em um vetor de movimento de um dos blocos codificados que são vizinhos a um bloco- alvo codificador em espaço ou tempo e construir uma lista de candidato de previsor de vetor de movimento; comparar se valores de vetores são ou não os mesmos dentre candidatos a previsores de vetor de movimento previstos de um bloco codificado que é vizinho em espaço e remover os candidatos a previsores de vetor de movimento que têm os mesmos valores de vetores da lista de candidato de previsor de vetor de movimento em que pelo menos um é deixado sem comparar se um valor de vetor de um previsor de vetor de movimento previsto de um bloco codificado que é vizinho em espaço e um valor de vetor de um previsor de vetor de movimento previsto de um bloco codificado que é vizinho em tempo são os mesmos; em uma diferença entre o previsor de vetor de movimento selecionado e o vetor de movimento usado para a compensação de movimento; e codificar informações que representam o previsor de vetor de movimento selecionado junto com a diferença de vetor de movimento.
BR122020008353-0A 2011-12-28 2012-12-26 Dispositivo de codificação de foto em movimento e método de codificação de foto em movimento BR122020008353B1 (pt)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2011-289286 2011-12-28
JP2011289286A JP5617834B2 (ja) 2011-12-28 2011-12-28 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2011-289285 2011-12-28
JP2011289285A JP5747816B2 (ja) 2011-12-28 2011-12-28 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
BR112014013969-5A BR112014013969B1 (pt) 2011-12-28 2012-12-26 Dispositivo de codificação de vídeo, método de codificação de vídeo, programa de codificação de vídeo, dispositivo de decodificação de vídeo, método de decodificação de vídeo, programa de decodificação de vídeo
PCT/JP2012/008325 WO2013099244A1 (ja) 2011-12-28 2012-12-26 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム

Publications (1)

Publication Number Publication Date
BR122020008353B1 true BR122020008353B1 (pt) 2022-05-10

Family

ID=48696777

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112014013969-5A BR112014013969B1 (pt) 2011-12-28 2012-12-26 Dispositivo de codificação de vídeo, método de codificação de vídeo, programa de codificação de vídeo, dispositivo de decodificação de vídeo, método de decodificação de vídeo, programa de decodificação de vídeo
BR122020008353-0A BR122020008353B1 (pt) 2011-12-28 2012-12-26 Dispositivo de codificação de foto em movimento e método de codificação de foto em movimento

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112014013969-5A BR112014013969B1 (pt) 2011-12-28 2012-12-26 Dispositivo de codificação de vídeo, método de codificação de vídeo, programa de codificação de vídeo, dispositivo de decodificação de vídeo, método de decodificação de vídeo, programa de decodificação de vídeo

Country Status (5)

Country Link
US (8) US10015514B2 (pt)
BR (2) BR112014013969B1 (pt)
RU (5) RU2579665C9 (pt)
TW (5) TWI643493B (pt)
WO (1) WO2013099244A1 (pt)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013032073A1 (ko) 2011-08-29 2013-03-07 주식회사 아이벡스피티홀딩스 Amvp 모드에서의 예측 블록 생성 방법
BR112014013969B1 (pt) 2011-12-28 2022-05-10 JVC Kenwood Corporation Dispositivo de codificação de vídeo, método de codificação de vídeo, programa de codificação de vídeo, dispositivo de decodificação de vídeo, método de decodificação de vídeo, programa de decodificação de vídeo
CN110336999B (zh) 2013-12-18 2021-09-03 寰发股份有限公司 利用调色板编码的编码视频数据区块的方法和装置
CN105981388B (zh) * 2013-12-27 2019-05-10 寰发股份有限公司 调色板编码中句法冗余移除的方法和装置
CN106031171B (zh) 2013-12-27 2019-08-30 联发科技股份有限公司 具有跨块预测的调色板编码的方法和装置
US10484696B2 (en) 2014-01-07 2019-11-19 Mediatek Inc. Method and apparatus for color index prediction
WO2017034113A1 (ko) 2015-08-24 2017-03-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10812822B2 (en) * 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
CN109644271B (zh) * 2016-09-06 2021-04-13 联发科技股份有限公司 用于二叉树分割块的确定候选集的方法及装置
US10735761B2 (en) * 2017-05-19 2020-08-04 Mediatek Inc Method and apparatus of video coding
CA3072323A1 (en) 2017-09-26 2019-04-04 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method and decoding method
WO2019151093A1 (en) * 2018-01-30 2019-08-08 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction for video coding using motion vector predictor origins
WO2019216325A1 (en) 2018-05-09 2019-11-14 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction using a derived set of motion vectors
CN115866272A (zh) * 2018-05-16 2023-03-28 华为技术有限公司 一种视频编解码方法和装置
WO2020003274A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
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
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
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
WO2020003261A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Selection from multiple luts
CN110662054B (zh) 2018-06-29 2023-01-06 北京字节跳动网络技术有限公司 用于视频处理的方法、装置、计算机可读存储介质
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
US10715812B2 (en) * 2018-07-13 2020-07-14 Tencent America LLC Method and apparatus for video coding
JP7237144B2 (ja) 2018-08-10 2023-03-10 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオ処理方法、ビデオ処理装置、エンコーダ、デコーダ、媒体、およびコンピュータプログラム
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
US11197017B2 (en) * 2018-12-06 2021-12-07 Tencent America LLC Methods and apparatuses for video coding
JP6933235B2 (ja) * 2018-12-13 2021-09-08 株式会社Jvcケンウッド 画像復号装置、画像復号方法、及び画像復号プログラム
US11196988B2 (en) * 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
WO2020140221A1 (zh) * 2019-01-02 2020-07-09 北京大学 候选mv列表构建方法和装置
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中的运动候选的插入顺序
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CN113824960B (zh) * 2019-11-13 2024-02-23 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读介质及电子设备
CN113709498B (zh) * 2020-05-20 2023-06-02 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4150742B2 (ja) 2002-01-09 2008-09-17 松下電器産業株式会社 動きベクトル復号化方法
ES2588388T3 (es) * 2002-04-19 2016-11-02 Panasonic Intellectual Property Corporation Of America Método de cálculo de vectores de movimiento
WO2004008775A1 (ja) * 2002-07-15 2004-01-22 Hitachi, Ltd. 動画像符号化方法及び復号化方法
US7020201B2 (en) * 2002-11-20 2006-03-28 National Chiao Tung University Method and apparatus for motion estimation with all binary representation
CA2663672C (en) * 2006-09-20 2014-08-12 Nippon Telegraph And Telephone Corporation Image encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for storing the programs
JP2011501555A (ja) * 2007-10-16 2011-01-06 エルジー エレクトロニクス インコーポレイティド ビデオ信号処理方法及び装置
JP2009164880A (ja) * 2008-01-07 2009-07-23 Mitsubishi Electric Corp トランスコーダ及び受信機
EP2266318B1 (en) * 2008-03-19 2020-04-22 Nokia Technologies Oy Combined motion vector and reference index prediction for video coding
CN102239693B (zh) * 2008-12-03 2013-12-18 株式会社日立制作所 运动图像解码方法和运动图像编码方法
WO2010131537A1 (ja) * 2009-05-11 2010-11-18 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、方法およびプログラム、並びに、動画像復号化装置、方法およびプログラム
TW201130311A (en) * 2009-06-10 2011-09-01 Panasonic Corp Image encoding method, image decoding method, and devices therefor
KR101768207B1 (ko) * 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US9628788B2 (en) * 2010-03-16 2017-04-18 Thomson Licensing Methods and apparatus for implicit adaptive motion vector predictor selection for video encoding and decoding
US9319716B2 (en) * 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9866859B2 (en) * 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
BR112014013969B1 (pt) 2011-12-28 2022-05-10 JVC Kenwood Corporation Dispositivo de codificação de vídeo, método de codificação de vídeo, programa de codificação de vídeo, dispositivo de decodificação de vídeo, método de decodificação de vídeo, programa de decodificação de vídeo

Also Published As

Publication number Publication date
US10015514B2 (en) 2018-07-03
RU2639939C1 (ru) 2017-12-25
RU2579665C9 (ru) 2016-12-27
US10171832B2 (en) 2019-01-01
TW201739249A (zh) 2017-11-01
US10165301B2 (en) 2018-12-25
TW201342932A (zh) 2013-10-16
US10080031B1 (en) 2018-09-18
US20180343465A1 (en) 2018-11-29
US20180343466A1 (en) 2018-11-29
RU2639937C1 (ru) 2017-12-25
RU2623796C1 (ru) 2017-06-29
RU2014130465A (ru) 2016-02-20
RU2639665C9 (ru) 2018-04-25
TWI666924B (zh) 2019-07-21
TWI643493B (zh) 2018-12-01
TW201811049A (zh) 2018-03-16
TWI597972B (zh) 2017-09-01
US10469865B2 (en) 2019-11-05
US10171831B2 (en) 2019-01-01
RU2623796C9 (ru) 2017-11-15
US20180270501A1 (en) 2018-09-20
TW201907727A (zh) 2019-02-16
BR112014013969B1 (pt) 2022-05-10
BR112014013969A8 (pt) 2021-03-02
TWI616091B (zh) 2018-02-21
RU2639939C9 (ru) 2018-03-26
WO2013099244A1 (ja) 2013-07-04
US20190124351A1 (en) 2019-04-25
US20200014951A1 (en) 2020-01-09
RU2579665C2 (ru) 2016-04-10
US10631003B2 (en) 2020-04-21
US20180343464A1 (en) 2018-11-29
US20160286233A1 (en) 2016-09-29
US20140286427A1 (en) 2014-09-25
RU2639665C1 (ru) 2017-12-21
TW201714453A (zh) 2017-04-16
BR112014013969A2 (pt) 2017-06-13
TWI575941B (zh) 2017-03-21
RU2639937C9 (ru) 2018-04-25

Similar Documents

Publication Publication Date Title
BR122020008353B1 (pt) Dispositivo de codificação de foto em movimento e método de codificação de foto em movimento
KR101809881B1 (ko) 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체
JP6079912B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP2013085235A (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
JP5747816B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5962877B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP2013131918A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP5617834B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2016192793A (ja) 動画像符号化装置
JP5962876B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP6037061B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5962875B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5975146B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
BR122020015070B1 (pt) Dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento
JP5874790B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5874791B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2015019405A (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2015019404A (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2013192081A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2013192080A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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