BR112014013977B1 - Dispositivo de codificação de vídeo, método de codificação de vídeo e programa de codificação de vídeo e dispositivo de decodificação de vídeo, método de decodificação de vídeo e programa de decodificação de vídeo - Google Patents
Dispositivo de codificação de vídeo, método de codificação de vídeo e programa de codificação de vídeo e dispositivo de decodificação de vídeo, método de decodificação de vídeo e programa de decodificação de vídeo Download PDFInfo
- Publication number
- BR112014013977B1 BR112014013977B1 BR112014013977-6A BR112014013977A BR112014013977B1 BR 112014013977 B1 BR112014013977 B1 BR 112014013977B1 BR 112014013977 A BR112014013977 A BR 112014013977A BR 112014013977 B1 BR112014013977 B1 BR 112014013977B1
- Authority
- BR
- Brazil
- Prior art keywords
- block
- prediction
- candidate
- merge
- motion
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000033001 locomotion Effects 0.000 claims abstract description 611
- 239000013598 vector Substances 0.000 claims description 345
- 238000009795 derivation Methods 0.000 claims description 14
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 abstract 2
- 230000002123 temporal effect Effects 0.000 description 131
- 230000008569 process Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 47
- 238000012545 processing Methods 0.000 description 26
- 230000000153 supplemental effect Effects 0.000 description 26
- 238000011156 evaluation Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 238000004458 analytical method Methods 0.000 description 13
- 230000009977 dual effect Effects 0.000 description 12
- 238000010276 construction Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000002156 mixing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000010977 unit operation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/645—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
DISPOSITIVO CODIFICADOR DE VÍDEO, MÉTODO CODIFICADOR DE VÍDEO E PROGRAMA CODIFICADOR DE VÍDEO, DISPOSITIVO DECODIFICADOR DE VÍDEO, MÉTODO DECODIFICADOR DE VÍDEO E PROGRAMA DECODIFICADOR DE VÍDEO. A presente invenção refere-se à unidade de geração de candidato de informações de movimento de mesclagem (140) que deriva, quando informações indicativas da possibilidade de derivar um candidato de informações de movimento de mesclagem compartilhada para todos os blocos de previsão em um bloco de codificação forem informações indicativas da derivação de um candidato de informações de movimento de mesclagem compartilhada para todos os blocos de previsão no bloco de codificação, uma pluralidade de candidatos de informações de movimento de mesclagem compartilhada para todos os blocos de previsão no bloco de codificação. Uma unidade de seleção de informações de movimento de mesclagem (141) seleciona um candidato de informações de movimento de mesclagem a partir da pluralidade de candidatos de informações de movimento de mesclagem e usa o candidato de informações de movimento de mesclagem selecionado em um bloco de previsão submetido à codificação.
Description
[001] A presente invenção refere-se a uma tecnologia de codifi-cação e decodificação de fotos de movimento com o uso de previsão de compensação de movimento e, mais particularmente, a um dispositivo de codificação de foto de movimento, um método para codificação de foto de movimento e um programa de codificação de foto de movimento e um dispositivo de decodificação de foto de movimento, um método de decodificação de foto de movimento e um programa de de- codificação de foto de movimento que codificam e decodificam informações de movimento usado na previsão de compensação de movimento.
[002] A previsão de compensação de movimento é usada em co-dificação de compressão de foto de movimento comumente usada. A previsão de compensação de movimento é uma tecnologia de divisão de uma foto-alvo em blocos pequenos e de geração, como um sinal de previsão, de um sinal localizado em uma posição movida a partir de um bloco-alvo da foto-alvo para um bloco de referência de uma foto de referência com base na quantia de movimento indicada por um vetor de movimento, em que a foto de referência é uma foto decodificada. A previsão de compensação de movimento inclui previsão única realizada com o uso de um único vetor de movimento e previsão dupla realizada com o uso de dois vetores de movimento.
[003] A respeito de vetores de movimento, um vetor de movimen- to de um bloco codificado vizinho de um bloco-alvo é ajustado para ser um estimador de vetor de movimento (referido simplesmente também como "estimador de vetor"), e uma diferença entre um vetor de movimento do bloco-alvo e do estimador de vetor é obtida e transmitida como um vetor de codificação de modo a aprimorar eficiência de compressão.
[004] A codificação de compressão de foto de movimento tal co-mo MPEG-4AVC/H.264 (doravante, MPEG-4AVC) permite a previsão de compensação de movimento altamente precisa fazendo-se com que o tamanho de um bloco usado para compensação de movimento seja pequeno com variações. Por outro lado, existe é um problema que o tamanho de código de um vetor de codificação se torna grande quando se reduz o tamanho do bloco.
[005] Assim, em MPEG-4AVC, a continuidade de movimento em uma direção temporal é focada, e a previsão de compensação de movimento em um modo direto temporal é usado em que a compensação de movimento é alcançada, sem transmissão de vetores de codificação, dimensionando-se um vetor de movimento de um bloco em uma foto de referência que esteja localizada na mesma posição que um bloco-alvo de acordo com uma distância entre quadros e com o uso do vetor de movimento dimensionado como um vetor de movimento do bloco-alvo, em que a foto de referência é uma foto processada diferente de uma foto-alvo na qual o bloco-alvo está localizado. Isso permite uma redução em um tamanho de código de um vetor de movimento, alcançando aprimoramento na eficiência de codificação.
[006] Além disso, com foco na continuidade de movimento em uma direção espacial, documento de Patente 1 revela um método para alcançar a previsão de compensação de movimento, sem transmissão de vetores de codificação, com o uso de um vetor de movimento de um bloco processado vizinho de um bloco-alvo como um vetor de mo- vimento do bloco processado.
[007] Documento de Patente 1 JP 10-276439
[008] Na derivação de um vetor de movimento em uma direção temporal tal como aquela definida no MPEG-4AV definido acima, o dimensionamento é exigido no momento da derivação e operações complicadas se tornam, assim, necessárias. No método descrito no Documento de Patente 1, um vetor de movimento de um bloco processado vizinho de um bloco-alvo de previsão é usado como um vetor de movimento do bloco-alvo de previsão, e no caso de realizar a previsão de compensação de movimento coletivamente em uma pluralidade de blocos de previsão vizinhos, um processo de previsão de movimento paralelo pode não ser realizado.
[009] Consequentemente, um propósito da presente invenção é fornecer uma tecnologia de codificação de foto de movimento e deco- dificação de foto de movimento com a capacidade de alcançar eficientemente processamento paralelo de previsão de compensação de movimento que realiza previsão de compensação de movimento coletivamente em uma pluralidade de blocos de previsão vizinhos ao mesmo tempo em que utiliza um vetor de movimento de um bloco processado vizinho de um bloco-alvo de previsão na geração de um bloco de movimento do bloco-alvo de previsão.
[0010] Um dispositivo de codificação de foto de movimento de a-cordo com uma modalidade da presente invenção é um dispositivo de codificação de foto de movimento adaptado para codificar um bloco de codificação que consiste em mais que ou igual a um bloco de previsão incluindo: uma unidade de geração de candidato de informações de movimento de mesclagem (140) configurada para derivar, quando in- formações que indiquem se derivar ou não um candidato de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de codificação forem informações que indiquem a derivação de um candidato de informações de movimento de mescla- gem compartilhadas por todos os blocos de previsão no bloco de codificação, uma pluralidade de candidatos de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de codificação; uma unidade de seleção de informações de movimento de mesclagem (141) configurada para selecionar um candidato de informações de movimento de mesclagem dentre a pluralidade de candidatos de informações de movimento de mesclagem e para usar o candidato de informações de movimento de mesclagem selecionado em um bloco de previsão submetido à codificação; e uma unidade de codificação (104) configurada para codificar um índice para especificar o candidato de informações de movimento de mesclagem selecionado como um índice de especificação de candidato.
[0011] Outra modalidade da presente invenção se refere a um dispositivo de codificação de foto de movimento. Esse dispositivo é um dispositivo de codificação de foto de movimento adaptado para dividir um bloco de codificação em uma pluralidade de blocos de previsão com base em um tipo de divisão e realizar compensação de movimento que inclui: uma unidade de geração de candidato de informações de movimento de mesclagem (140) configurada para gerar uma pluralidade de candidatos de informações de movimento de mesclagem com-partilhadas em um dos blocos de previsão no bloco de codificação; uma unidade de seleção de informações de movimento de mesclagem (141) configurada para selecionar um candidato de informações de movimento de mesclagem dentre a pluralidade de candidatos de informações de movimento de mesclagem e ajustar o candidato de informações de movimento de mesclagem selecionado para ser infor- mações de movimento do bloco de previsão submetido à codificação; e uma unidade de codificação (104) configurada para codificar um índice para especificar o candidato de informações de movimento de mesclagem selecionado como um índice de especificação de candidato.
[0012] Ainda outra modalidade da presente invenção se refere a um método de codificação de foto de movimento. Esse método é um método de codificação de foto de movimento para codificar um bloco de codificação que consiste em mais que ou igual a um bloco de previsão que inclui: derivar, quando informações que indiquem se derivar ou não um candidato de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de codificação forem informações que indiquem a derivação de um candidato de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de codificação, uma pluralidade de candidatos de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de codificação; selecionar um candidato de informações de movimento de mesclagem dentre a pluralidade de candidatos de informações de movimento de mescla- gem e usar o candidato de informações de movimento de mesclagem selecionado em um bloco de previsão submetido à codificação; e codificar um índice para especificar o candidato de informações de movimento de mesclagem selecionado como um índice de especificação de candidato.
[0013] Um dispositivo de decodificação de foto de movimento de acordo com uma modalidade da presente invenção é um dispositivo de decodificação de foto de movimento adaptado para decodificar um bloco de decodificação que consiste em mais que ou igual a um bloco de previsão que inclui: um unidade de decodificação (201) configurada para decodificar, a partir de um fluxo de bits em que um índice para especificar um candidato de informações de movimento de mesclagem usado em um bloco de previsão submetido à decodificação é codificado como um índice de especificação de candidato, o índice de especificação de candidato; uma unidade de geração de candidato de informações de movimento de mesclagem (230) configurada para derivar, quando informações que indiquem se derivar ou não um candidato de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de decodificação forem informações que indiquem a derivação de um candidato de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de decodificação, uma pluralidade de candidatos de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de decodificação; e uma unidade de seleção de informações de movimento de mesclagem (231) configurada para selecionar um candidato de informações de movimento de mesclagem dentre a pluralidade de candidatos de informações de movimento de mesclagem com base no índice de especificação de candidato e para usar o candidato de informações de movimento de mesclagem selecionado no bloco de previsão submetido à decodificação.
[0014] Outra modalidade da presente invenção se refere a um dispositivo de decodificação de foto de movimento. Esse dispositivo é um dispositivo de decodificação de foto de movimento adaptado para dividir um bloco de decodificação em uma pluralidade de blocos de previsão com base em um tipo de divisão e realizar compensação de movimento que inclui: uma unidade de decodificação (201) configurada para decodificar, a partir de um fluxo de bits em que um índice para especificar um candidato de informações de movimento de mesclagem usado em um bloco de previsão submetido à decodificação é codifica-do como um índice de especificação de candidato, o índice de especificação de candidato; uma unidade de geração de candidato de infor- mações de movimento de mesclagem (230) configurada para gerar uma pluralidade de candidatos de informações de movimento de mes- clagem compartilhadas em qualquer um dos blocos de previsão no bloco de codificação; e uma unidade de seleção de informações de movimento de mesclagem (231) configurada para selecionar um candidato de informações de movimento de mesclagem dentre a pluralidade de candidatos de informações de movimento de mesclagem com base no índice de especificação de candidato e para ajustar o candidato de informações de movimento de mesclagem selecionado para se-rem as informações de movimento do bloco de previsão submetido à decodificação.
[0015] Ainda outra modalidade da presente invenção se refere a um método de decodificação de foto de movimento. Esse método é um método de decodificação de foto de movimento para decodificar um bloco de decodificação que consiste em mais que ou igual a um bloco de previsão que inclui: decodificar, a partir de um fluxo de bits em que um índice para especificar um candidato de informações de movimento de mesclagem usado em um bloco de previsão submetido à decodi- ficação é codificado como um índice de especificação de candidato, o índice de especificação de candidato; derivar, quando informações que indiquem se derivar ou não um candidato de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de decodificação forem informações que indiquem a derivação de um candidato de informações de movimento de mesclagem compartilhadas por todos os blocos de previsão no bloco de decodificação, uma pluralidade de candidatos de informações de movimento de mes- clagem compartilhadas por todos os blocos de previsão no bloco de decodificação; e selecionar um candidato de informações de movimento de mesclagem dentre a pluralidade de candidatos de informações de movimento de mesclagem com base no índice de especificação de candidato e usar o candidato de informações de movimento de mes- clagem selecionado no bloco de previsão submetido à decodificação.
[0016] Combinações opcionais dos elementos de constituição mencionados anteriormente e implantações da invenção na forma de métodos, aparelhos, sistemas, meios de registro e programas de computador podem ser praticados, também, como modos adicionais da presente invenção.
[0017] De acordo com a presente invenção, o processamento paralelo de previsão de compensação de movimento pode ser eficientemente alcançado que realize a previsão de compensação de movimento coletivamente em uma pluralidade de blocos de previsão vizinhos ao mesmo tempo em que utiliza um vetor de movimento de um bloco processado vizinho de um bloco-alvo de previsão na geração de um bloco de movimento do bloco-alvo de previsão.
[0018] As Figuras 1A e 1B são diagramas que mostram blocos de codificação;
[0019] As Figuras 2A a 2D são diagramas que explicam tipos de tamanho de bloco de previsão;
[0020] A Figura 3 é um diagrama que explica tipos de tamanho de bloco de previsão;
[0021] A Figura 4 é um diagrama que explica modos de codifica-ção de previsão;
[0022] A Figura 5 é um diagrama que explica relacionamentos entre índices de mesclagem e fluxos de bits;
[0023] A Figura 6 é um diagrama que explica um exemplo de sin-taxe de um bloco de previsão;
[0024] A Figura 7 é um diagrama que mostra a configuração de um dispositivo de codificação de foto de movimento de acordo com uma primeira modalidade;
[0025] A Figura 8 é um diagrama que mostra a configuração de uma unidade de geração de informações de movimento mostrada na Figura 7;
[0026] A Figura 9 é um diagrama que explica a configuração de uma unidade de determinação de modo de mesclagem mostrada na Figura 8;
[0027] A Figura 10 é um diagrama que explica a configuração de uma unidade de construção de lista de candidato de informações de movimento de mesclagem mostrada na Figura 9;
[0028] A Figura 11 é um fluxograma que explica a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem mostrada na Figura 9;
[0029] A Figura 12 é um diagrama que explica um grupo de bloco de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N;
[0030] A Figura 13 é um diagrama que mostra um grupo de bloco de candidato que ocorre quando um relacionamento posicional que é o mesmo que aquele de um bloco de previsão de um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N é aplicado a um bloco de previsão em um bloco de codificação que não tem um tipo de tamanho de bloco de previsão de 2Nx2N;
[0031] A Figura 14 é um diagrama que explica um exemplo de um relacionamento posicional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco de candidato espacial na primeira modalidade;
[0032] A Figura 15 é um fluxograma que explica a operação de uma unidade de geração de candidato de informações de movimento de mesclagem espacial mostrada na Figura 10;
[0033] A Figura 16 é um fluxograma que explica a operação de uma unidade de geração de candidato de informações de movimento de mesclagem temporal mostrada na Figura 10;
[0034] A Figura 17 é um fluxograma que explica a operação de uma primeira unidade de suprimento de candidato de informações de movimento de mesclagem mostrada na Figura 10;
[0035] A Figura 18 é um diagrama que explica relacionamentos dentre o número de verificações de combinação, um candidato de informações de movimento de mesclagem M e um candidato de informações de movimento de mesclagem N;
[0036] A Figura 19 é um fluxograma que explica a operação de uma segunda unidade de suprimento de candidato de informações de movimento de mesclagem mostrada na Figura 10;
[0037] A Figura 20 é um diagrama que mostra a configuração de um dispositivo de decodificação de foto de movimento de acordo com a primeira modalidade;
[0038] A Figura 21 é um diagrama que mostra a configuração de uma unidade de reprodução de informações de movimento mostrada na Figura 20;
[0039] A Figura 22 é um diagrama que mostra a configuração de uma unidade de reprodução de informações de movimento de mescla- gem mostrada na Figura 21;
[0040] A Figura 23 é um diagrama que explica um relacionamento posicional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco de candidato espacial em uma segunda modalidade;
[0041] A Figura 24 é um diagrama que explica um relacionamento posicional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco de candidato espacial em um exemplo em que um bloco de candidato de um bloco de previsão em um bloco de codificação é compartilhado sem depender de um tipo de tamanho de bloco de previsão;
[0042] A Figura 25 é um diagrama que explica um relacionamento posicional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco de candidato espacial em uma terceira modalidade;
[0043] A Figura 26 é um fluxograma que explica a operação de uma unidade de construção de lista de candidato de informações de movimento de mesclagem de acordo com a terceira modalidade;
[0044] A Figura 27 é um diagrama que explica uma linha de limite inferior de bloco de codificação máxima e um grupo de bloco de candidato temporal;
[0045] A Figura 28 é um diagrama que explica um relacionamento posicional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco de candidato espacial em uma quarta modalidade;
[0046] A Figura 29 é um diagrama que explica a configuração de uma unidade de construção de lista de candidato de informações de movimento de mesclagem de acordo com a quarta modalidade;
[0047] A Figura 30 é um fluxograma que explica a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem de acordo com a quarta modalidade;
[0048] A Figura 31 é um diagrama que explica a configuração de uma unidade de construção de lista de candidato de informações de movimento de mesclagem de acordo com uma quinta modalidade;
[0049] A Figura 32 é um fluxograma que explica a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem de acordo com a quinta modalidade;
[0050] A Figura 33 mostra a configuração de uma unidade de de-terminação de modo de estimador de vetor;
[0051] A Figura 34 é um diagrama que explica a configuração de uma unidade de construção de lista de candidato de estimador de ve- tor;
[0052] A Figura 35 é um fluxograma que explica a operação da unidade de construção de lista de candidato de estimador de vetor; e
[0053] A Figura 36 é um diagrama que explica a configuração de uma unidade de reprodução de vetor de movimento.
[0054] Primeiramente, uma explicação de uma tecnologia na qual as modalidades da presente invenção são baseadas é primeiramente dada.
[0055] Atualmente, dispositivos e sistemas compatíveis com um sistema de codificação tal como MPEG (Grupo de Especialistas em Fotos de Movimento) ou similares se tornaram amplamente usados. Em tal sistema de codificação, uma pluralidade de fotos que são contínuas em um eixo temporal é tratada como informações de sinal digital. Nesse caso, com o propósito de difusão altamente eficiente, transmissão, acúmulo e similares de informações, a codificação por compressão é realizada com o uso de previsão de compensação de movimento em que uma foto é dividida em uma pluralidade de blocos e redundância em uma direção temporal é usada e com o uso de transformação ortogonal tal como transformada discreta de cosseno em que uma redundância em uma direção espacial é usada.
[0056] Em 2003, através de trabalho cooperativo do Comitê Técnico Conjunto (ISO/IEC) da Organização Internacional para Padronização (ISO) e da Comissão Eletrotécnica Internacional (IEC) e do Setor de Padronização de Telecomunicação da União de Telecomunicação Internacional (ITU-T), um sistema de codificação chamado MPEG-4 AVC/H.264 (um número padrão de 14496-10 é atribuído em ISO/IEC e um número padrão de H.264 é atribuído em ITU-I, e esse sistema é doravante referido como MPEG-4AVC) foi estabelecido como um padrão global. Em MPEG-4AVC, um valor médio de vetores de movimen- to respectivos de uma pluralidade de blocos vizinhos de um bloco-alvo é basicamente ajustado para ser um estimador de vetor. Se o tamanho de um bloco de previsão não for quadrado e um índice de referência de um bloco vizinho específico de um bloco-alvo for o mesmo que um índice de referência do bloco-alvo, um vetor de movimento do bloco vizinho específico é ajustado para ser um estimador de vetor.
[0057] Atualmente, através de trabalho cooperativo do Comitê Técnico Conjunto (ISO/IEC) da Organização Internacional para Padronização (ISO) e da Comissão Eletrotécnica Internacional (IEC) e do Setor de Padronização de Telecomunicação da União de Telecomunicação Internacional (ITU-T), a padronização de um sistema de codificação chamado HEVC é considerado.
[0058] Na padronização de HEVC, um modo de mesclagem é considerado em que um único bloco de candidato é selecionado a partir de um grupo de bloco de candidato composto de blocos de candidato, que são uma pluralidade de blocos vizinhos e blocos de outra foto que é decodificada, de modo que as informações do bloco de candidato selecionado sejam codificadas e decodificadas.
[0059] Na presente modalidade, um sinal de foto que foi inserido é dividido em unidades de blocos de codificação máximos, e os blocos de codificação máximos que foram divididos são processados em ordem de varredura. Um bloco de codificação tem uma estrutura hierárquica, e blocos de codificação menores podem ser obtidos dividindose em quatro o bloco de codificação sequencialmente em consideração à eficiência de codificação e similares. Os blocos de codificação divididos em quatro são codificados em ordem de varredura em zigue- zague. Blocos de codificação mínimos que não podem ser diminuídos são referidos como blocos de codificação mínimos. Os blocos de codi- ficação representam unidades de codificação. Se o número de ocorrências de divisão for zero em um bloco de codificação máximo, o bloco de codificação máximo também representa um bloco de codificação. Na presente modalidade, um bloco de codificação máximo representa 64 pixels x 64 pixels, e um bloco de codificação mínimo representa 8 pixels x 8 pixels.
[0060] As Figuras 1A e 1B são diagramas para explicar blocos de codificação. Em um exemplo mostrado na Figura 1A, um bloco de codificação é dividido em dez partes. CU0, CU1 e CU9 representam blocos de codificação de 32 pixels x 32 pixels, CU2, CU3, e CU8 representam blocos de codificação de 16 pixels x 16 pixels, e CU4, CU5, CU6, e CU7 representam blocos de codificação de 8 pixels x 8 pixels. Em um exemplo mostrado na Figura 1B, um bloco de codificação é dividido em uma parte.
[0061] Na presente modalidade, um bloco de codificação é adicionalmente dividido em blocos de previsão (também referidos como divisões). Um bloco de codificação é dividido em mais do que ou igual a um bloco de previsão de acordo com um tipo de tamanho de bloco de previsão (também referido como "tipo de divisão"). As Figuras 2A a 2D são diagramas para explicar tipos de tamanho de bloco de previsão. A Figura 2A mostra 2Nx2N em que um bloco de codificação não é divido. A Figura 2B mostra 2NxN em que um bloco de codificação é dividido pela metade em uma direção horizontal. A Figura 2C mostra Nx2N em que um bloco de codificação é divido pela metade em uma direção vertical. A Figura 2D mostra NxN em que um bloco de codificação é dividido em quatro em uma direção vertical e horizontal. 2Nx2N consiste em um único bloco de previsão 0. Tanto 2NxN quanto Nx2N, cada um, consistem em dois blocos de previsão: um bloco de previsão 0 e um bloco de previsão 1. NxN consiste em quatro blocos de previsão: um bloco de previsão 0, um bloco de previsão 1, um bloco de previsão 2 e um bloco de previsão 3. A codificação é realizada na ordem de um bloco de previsão 0, um bloco de previsão 1, um bloco de previsão 2 e um bloco de previsão 3.
[0062] A Figura 3 é um diagrama para explicar tamanhos de bloco de previsão de acordo com o número de ocorrências de divisão de um bloco de codificação e tipos de tamanho de bloco de previsão. Para tamanhos de bloco de previsão na presente modalidade, existem 13 tamanhos de bloco de previsão a partir de 64 pixels x 64 pixels, em que o número de CU ocorrências de divisão é 0 e um tipo de tamanho de bloco de previsão é 2Nx2N, a 4 pixels x 4 pixels, em que o número de CU ocorrências de divisão é 3 e um tipo de tamanho de bloco de previsão é N x N. Por exemplo, um bloco de codificação pode ser divido pela metade em uma direção vertical ou horizontal de uma maneira assimétrica.
[0063] Na presente modalidade, um bloco de codificação máximo representa 64 pixels x 64 pixels, e um bloco de codificação mínimo representa 8 pixels x 8 pixels. No entanto, o bloco de codificação máximo e o bloco de codificação mínimo não são limitados a essa combinação. Padrões de divisão de um bloco de previsão são mostrados serem aqueles das Figuras 2A a 2D. No entanto, os padrões de divisão não são limitados a isso contanto que os padrões de divisão sejam uma combinação de padrões em que um bloco de previsão é dividido em mais do que ou igual a parte.
[0064] Na presente modalidade, a previsão de compensação de movimento e o número de vetores de codificação podem ser mudados para cada bloco de previsão. Uma explicação é dada agora com o uso da Figura 4 a respeito de um exemplo de um modo de codificação de previsão ao qual a previsão de compensação de movimento e o núme- ro de vetores de codificação são associados. A Figura 4 é um diagrama para explicar modos de codificação de previsão.
[0065] Os modos de codificação de previsão mostrados na Figura 4 incluem PredL0 em que uma direção de previsão de previsão de compensação de movimento é previsão única (previsão L0) e o número de vetores de codificação é 1, PredL1 em que uma direção de previsão de previsão de compensação de movimento é previsão única (previsão L1) e o número de vetores de codificação é 1, PredBI em que uma direção de previsão de previsão de compensação de movimento é previsão dupla (previsão BI) e o número de vetores de codificação é 2, e um modo de mesclagem (MERGE) em que uma direção de previsão de previsão de compensação de movimento é previsão única (previsão L0/previsão L1) ou previsão dupla (previsão BI) e o número de vetores de codificação é 0. Existe também um modo intra (Intra), que é um modo de codificação de previsão em que a previsão de compensação de movimento não é realizada. Nesses modos, Pre- dL0, PredL1 e PredBI são modos de estimador de vetor.
[0066] No modo de mesclagem, uma direção de previsão pode ser qualquer uma dentre previsão L0, previsão L1 e previsão BI. Isso se dá devido ao fato de que a direção de previsão de um bloco de candidato selecionado a partir de um grupo de bloco de candidato é passada adiante sem qualquer mudança como a direção de previsão do modo de mesclagem, ou a direção de previsão do modo de mesclagem é derivado a partir de informações decodificadas. Também, um vetor de codificação não é codificado no modo de mesclagem. Isso se dá devido ao fato de que um vetor de movimento de um bloco de candidato selecionado a partir de um grupo de bloco de candidato é passado adiante sem qualquer mudança como um vetor de codificação do modo de mesclagem, ou o vetor de codificação do modo de mesclagem é derivado através de uma regra predeterminada.
[0067] A presente modalidade permite que uma foto de referência ideal seja selecionada a partir de uma pluralidade de fotos de referência na previsão de compensação de movimento para o aprimoramento da precisão da previsão de compensação de movimento. Portanto, uma foto de referência usada na previsão de compensação de movimento é codificada junto com um vetor de codificação como uma foto de referência índice. Uma foto de referência índice usado na previsão de compensação de movimento tem um valor numérico mais do que ou igual a 0. Se a previsão de compensação de movimento for previsão única, um índice de referência é usado. Se a previsão de compensação de movimento for previsão dupla, dois índices de referência são usados (Figura 4).
[0068] Um índice de referência não é codificado no modo de mes- clagem. Isso se dá devido ao fato de que um índice de referência de um bloco de candidato selecionado a partir de um grupo de bloco de candidato é passado adiante sem qualquer mudança como um índice de referência do modo de mesclagem, ou o índice de referência do modo de mesclagem é derivado através de uma regra predeterminada.
[0069] Na presente modalidade, mais do que ou igual a uma foto de referência que pode ser usada na previsão de compensação de movimento é adicionada em uma lista de índice de referência antecipadamente, e, indicando-se uma foto de referência adicionada na lista de índice de referência por um índice de referência, a foto de referência é determinada e usada na previsão de compensação de movimento. Os tipos de listas de índice de referência incluem uma lista de índice de referência L0 (também referida como uma lista de índice de referência de previsão L0) e uma lista de índice de referência L1 (também referida como uma lista de índice de referência de previsão L1). Se a previsão de compensação de movimento for previsão única, ou a previsão L0 em que uma foto de referência na lista de índice de referência L0 é usada ou a previsão L1 em que uma foto de referência na lista de índice de referência L1 é usada é usada. Se a previsão de compensação de movimento for previsão dupla, a previsão BI em que tanto a lista de índice de referência L0 quanto a lista de índice de referência L1 são usadas é usada. O número máximo de fotos de referência que pode ser adicionado em cada lista de índice de referência é ajustado para ser 16.
[0070] No caso de um modo de mesclagem na presente modali-dade, com o uso de, como um grupo de bloco de candidato, uma pluralidade de blocos vizinhos em uma foto-alvo e blocos no e ao redor de um bloco de previsão de posição idêntica localizado na mesma posição que um bloco-alvo de previsão em outra foto que é decodificada, em que um bloco de candidato tem um modo de codificação de previsão, vetor de movimento e índice de referência ideais é selecionado a partir do grupo de bloco de candidato de modo a codificar e decodificar um índice de mesclagem para indicar o bloco de candidato selecionado. Um índice de mesclagem é usado somente durante o modo de mesclagem (Figura 4). O número máximo de índices de mesclagem (também referido como o número máximo de candidatos de mescla- gem) é 5, e um índice de mesclagem é um número inteiro de 0 a 4. O número máximo de índices de mesclagem é ajustado para ser 5 nesse caso. No entanto, o número máximo de índices de mesclagem não é limitado a isso contanto que o número máximo de índices de mescla- gem seja mais do que ou igual a 2.
[0071] Doravante, as informações de movimento de um bloco de candidato submetido a um índice de mesclagem é referido como um candidato de informações de movimento de mesclagem, e uma cole- ção de candidatos de informações de movimento de mesclagem é referida como uma lista de candidato de informações de movimento de mesclagem. Doravante, as informações de movimento incluem uma direção de previsão, um vetor de movimento e um índice de referência.
[0072] Uma explicação é dada agora a respeito de relacionamentos entre índices de mesclagem e fluxos de bits. A Figura 5 é um diagrama para explicar relacionamentos entre índices de mesclagem e fluxos de bits. Se um índice de mesclagem for 0, um fluxo de bits é "0". Se um índice de mesclagem for 1, um fluxo de bits é "10". Se um índice de mesclagem for 2, um fluxo de bits é "110". Se um índice de mes- clagem for 3, um fluxo de bits é "1110". Se um índice de mesclagem for 4, um fluxo de bits é "1111". Assim, os índices de mesclagem e os fluxos de bits são ajustados de modo que os fluxos de bits respectivos se tornem mais longos conforme os índices de mesclagem se tornam maiores. Portanto, atribuindo-se um índice de mesclagem pequeno a um bloco de candidato com alta seletividade, a eficiência de codificação pode ser aprimorada.
[0073] Uma explicação é dada agora a respeito de relacionamen-tos entre uma lista de candidato de informações de movimento de mesclagem e índices de mesclagem. Um índice de mesclagem 0 representa um primeiro (0-ésimo) candidato de informações de movimento de mesclagem de uma lista de candidato de informações de movimento de mesclagem. Doravante, um índice de mesclagem m representa um m-ésimo candidato de informações de movimento de mesclagem da lista de candidato de informações de movimento de mesclagem, em que m é um número inteiro de 0 a [(número máximo de candidatos de mesclagem) - 1].
[0074] A fim de aprimorar a precisão de um estimador de vetor na presente modalidade, com o uso de, como um grupo de bloco de can- didato, uma pluralidade de blocos vizinhos em uma foto-alvo e blocos no ou ao redor de um bloco de previsão de posição idêntica localizado na mesma posição que um bloco-alvo de previsão em outra foto que é decodificada, em que um bloco de candidato que tem um vetor de movimento ideal como um estimador de vetor é selecionado a partir do grupo de bloco de candidato de modo a codificar e decodificar um índice de estimador de vetor para indicar o bloco de candidato selecio-nado. Se a previsão de compensação de movimento for previsão única, um índice de estimador de vetor é usado. Se a previsão de compensação de movimento for previsão dupla, dois índices de estimador de vetor são usados (Figura 4). O número máximo de índices de esti- mador de vetor (também referido como o número máximo de candidatos de estimador de vetor) é 2, e um índice de estimador de vetor é um número inteiro de 0 ou 1. O número máximo de índices de estimador de vetor é ajustado para ser 2 nesse caso. No entanto, o número máximo de índices de estimador de vetor não é limitado a isso contanto que o número máximo de índices de estimador de vetor seja mais do que ou igual a 2.
[0075] Uma explicação é dada agora a respeito de relacionamen-tos entre índices de estimador de vetor e fluxos de bits. Um fluxo de bits de um índice de estimador de vetor é "0" quando o índice de esti- mador de vetor for 0, e um fluxo de bits de um índice de estimador de vetor é "1" quando o índice de estimador de vetor for 1. Se o número máximo de candidatos de estimador de vetor for mais do que ou igual a 3, fluxos de bits podem ser atribuídos em uma regra similar àquela de um índice de mesclagem (um fluxo de bits se torna mais longo conforme um índice se torna maior).
[0076] Doravante, um vetor de movimento de um bloco de candi-dato submetido a um índice de estimador de vetor é referido como um candidato de estimador de vetor, e uma coleção de candidatos de es- timador de vetor é referida como uma lista de candidato de estimador de vetor.
[0077] Uma explicação é dada a respeito de um exemplo de sintaxe de um bloco de previsão de acordo com a presente modalidade. A Figura 6 é um diagrama que explica sintaxe de acordo com a presente modalidade. A Figura 6 mostra um exemplo de uma estrutura de sintaxe de uma árvore de codificação (Árvore de Codificação), um bloco de codificação (Unidade de Codificação) e um bloco de previsão (Unidade de Previsão). Na árvore de codificação, informações de divisão do bloco de codificação são gerenciadas. Na árvore de codificação, s- plit_coding_unit_flag é ajustado. Se o split_coding_unit_flag for 1, a árvore de codificação é dividida em quatro árvores de codificação. Se o split_coding_unit_flag for 0, a árvore de codificação representa um bloco de codificação (Unidade de Codificação). No bloco de codificação, um sinalizador de modo de salto (skip_flag), um modo de previsão (pred_mode), e um tipo de tamanho de bloco de previsão (part_mode) são ajustados. O bloco de codificação é dividido em um, dois ou quatro blocos de previsão de acordo com o sinalizador de modo de salto e o tipo de tamanho de bloco de previsão. O modo de previsão mostra se o bloco de codificação é um bloco de codificação no qual intra-previsão é realizada ou um bloco de codificação no qual in- terprevisão (previsão de compensação de movimento) é realizada. Se o sinalizador de modo de salto for 1, um modo de salto é implantado. Existe um bloco de previsão no modo de salto. O número de ocorrências de divisão de um bloco de codificação é referido, também, como uma profundidade do bloco de codificação (árvore de codificação).
[0078] Ajustados no bloco de previsão são um sinalizador de mes- clagem (merge_flag), um índice de mesclagem (merge_idx), um tipo de interprevisão (inter_pred_type), um índice de referência da previsão L0 (ref_idx_l0), uma diferença de vetor da previsão L0 (mvd_l0[0], mvd_l0[1]), um índice de estimador de vetor da previsão L0 (mvp_idx_l0), um índice de referência da previsão L1 (ref_idx_l1), uma diferença de vetor da previsão L1 (mvd_l1[0], mvd_l1[1]) e um índice de estimador de vetor da previsão L1 (mvp_idx_l1). Na diferença de vetor, [0] representa um componente horizontal, e [1] representa um componente vertical.
[0079] Nesse caso, inter_pred_type mostra uma direção de previsão de previsão de compensação de movimento (também referido como um tipo de interprevisão) e inclui três tipos: Pred_L0 (previsão única de previsão L0); Pred_L1 (previsão única de previsão L1); e Pred_BI (previsão dupla de previsão BI). Se inter_pred_type for Pred_L0 ou Pred_BI, informações relacionadas à previsão L0 são ajustadas. Se inter_pred_type for Pred_L1 ou Pred_BI, informações relacionadas à previsão L1 são ajustadas. Em uma foto P (fatia P), in- ter_pred_type representa unicamente Pred_L0. Assim, inter_pred_type é omitido.
[0080] No caso do modo de salto, um bloco de previsão é um bloco de codificação no qual interprevisão é realizada, e um modo de mesclagem é usado como um modo de codificação de previsão. Portanto, um índice de mesclagem é ajustado no caso do modo de salto.
[0081] A sintaxe de acordo com a presente modalidade é ajustada conforme mostrado na Figura 6. No entanto, a sintaxe não é limitada a isso contanto que blocos de codificação e blocos de previsão tenham uma pluralidade de bloco de tamanhos e o modo de mesclagem e o modo de estimador de vetor possam ser usados.
[0082] Uma explicação é dada doravante, junto com figures, a respeito dos detalhes de um dispositivo de codificação de foto de movimento, um método para codificação de foto de movimento e um programa de codificação de foto de movimento, e do dispositivo de deco- dificação de foto de movimento, um método de decodificação de foto de movimento e um programa de decodificação de foto de movimento de acordo com uma modalidade preferencial da presente invenção. Nas explicações das figuras, os mesmos elementos devem ser denotados pelos menos números de referência e explicações duplicativas serão omitidas.
[0083] A Figura 7 mostra a configuração de um dispositivo de codificação de foto de movimento 100 de acordo com uma primeira modalidade. O dispositivo de codificação de foto de movimento 100 é um dispositivo que codifica um sinal de foto de movimento em unidades de blocos de previsão para realizar previsão de compensação de movimento. assume-se que a divisão de um bloco de codificação, a determinação de um modo de salto, a determinação de um tipo de tamanho de bloco de previsão, a determinação de um tamanho de bloco de pre-visão e uma posição em um bloco de codificação de um bloco de previsão (também referido como informações de posição ou um número de bloco de previsão de um bloco de previsão), e a determinação de se um modo de codificação de previsão é intra são determinadas por uma unidade de controle de codificação de ordem superior (não é mostrada). Assim, uma explicação é dada a respeito de um caso em que um modo de codificação de previsão não é intra na primeira modalidade. Uma explicação é dada a respeito de uma foto B (fatia B), que corresponde à previsão dupla, na primeira modalidade. Para uma foto P (fatia P), que não corresponde à previsão dupla, a previsão L1 precisa ser omitida.
[0084] O dispositivo de codificação de foto de movimento 100 é alcançado por hardware tal como um dispositivo de processamento de informações ou similares dotado de um CPU (Unidade de Processa- mento Central), uma memória de quadro, um disco rígido e similares. Através da operação dos elementos constituintes acima, o dispositivo de codificação de foto de movimento 100 alcança elementos constituintes funcionais explicados em seguida. As informações de posição, o tamanho de bloco de previsão e a direção de previsão de previsão de compensação de movimento de um bloco-alvo de previsão são assumidos serem compartilhados no dispositivo de codificação de foto de movimento 100 e, portanto, não são mostrados.
[0085] O dispositivo de codificação de foto de movimento 100 de acordo com a primeira modalidade inclui uma unidade de derivação de foto de bloco de previsão 101, uma unidade de subtração 102, uma unidade de codificação de erro de previsão 103, uma unidade de geração de fluxo de bits 104, uma unidade de decodificação de erro de previsão 105, uma unidade de compensação de movimento 106, uma unidade de adição 107, uma unidade de detecção de vetor de movimento 108, uma unidade de geração de informações de movimento 109, uma memória de quadro 110 e uma memória de informações de movimento 111.
[0086] Uma explicação é dada em seguida a respeito da função e da operação de cada componente. A unidade de derivação de foto de bloco de previsão 101 deriva um sinal de foto de um bloco-alvo de previsão a partir de um sinal de foto suprido a partir de um terminal 10 com base nas informações de posição e tamanho de bloco de previsão do bloco de previsão e supre o sinal de foto do bloco de previsão à unidade de subtração 102, à unidade de detecção de vetor de movimento 108 e à unidade de geração de informações de movimento 109.
[0087] A unidade de detecção de vetor de movimento 108 detecta vetores de movimento respectivos e índices de referência respectivos que mostram fotos de referência para a previsão L0 e a previsão L1 no sinal de foto suprido pela unidade de derivação de foto de bloco de previsão 101 e sinais de foto respectivos que correspondem a uma pluralidade de fotos de referência armazenadas na mesma. A unidade de detecção de vetor de movimento 108 supre os vetores de movimento respectivos da previsão L0 e da previsão L1 e os índices de referência respectivos da previsão L0 e da previsão L1 à unidade de gera-ção de informações de movimento 109. Apesar de ser descrito que a unidade de detecção de vetor de movimento 108 usa sinais de foto respectivos que correspondem à pluralidade de fotos de referência armazenadas na mesma como fotos de referência, a unidade de detecção de vetor de movimento 108 pode usar, também, fotos de referência armazenadas na memória de quadro 110.
[0088] Em um método comumente praticado de detecção de um vetor de movimento, um valor de avaliação de um erro entre um sinal de foto de uma foto-alvo e um sinal de previsão de uma foto de referência movida da mesma posição por uma quantia predeterminada de deslocamento é calculado, e uma quantia de deslocamento que resulta no menor valor de avaliação do erro é ajustado para representar um vetor de movimento. Se houver uma pluralidade de fotos de referência, um vetor de movimento é detectado para cada uma das fotos de referência, e uma foto de referência com o menor valor de avaliação do erro é selecionada. Como o valor de avaliação do erro, um SAD (Soma de Diferença Absoluta) que mostra a soma de uma diferença absoluta, um MSE (Quadrado Médio do Erro) que mostra um quadrado médio do erro ou similares podem ser usados. É possível, também, adicionar uma quantia de codificação de vetor de movimento ao valor de avaliação do erro de modo a fazer a avaliação.
[0089] A unidade de geração de informações de movimento 109 determina um modo de codificação de previsão com base nos vetores de movimento respectivos da previsão L0 e da previsão L1 e os índices de referência respectivos da previsão L0 e da previsão L1 supridos pela unidade de detecção de vetor de movimento 108, um grupo de bloco de candidato suprido pela memória de informações de movimento 111, as fotos de referência armazenadas na memória de quadro 110 que são indicadas pelos índices de referência respectivos e o sinal de foto suprido pela unidade de derivação de foto de bloco de previsão 101.
[0090] Com base no modo de codificação de previsão que foi determinado, a unidade de geração de informações de movimento 109 supre, à unidade de geração de fluxo de bits 104, um sinalizador de mesclagem, um índice de mesclagem, uma direção de previsão de previsão de compensação de movimento, índices de referência respectivos da previsão L0 e da previsão L1, diferenças de vetor respectivas da previsão L0 e da previsão L1 e índices de estimador de vetor respectivos da previsão L0 e da previsão L1, conforme necessário. A unidade de geração de informações de movimento 109 supre, à unidade de compensação de movimento 106 e à memória de informações de movimento 111, a direção de previsão de previsão de compensação de movimento, os índices de referência respectivos da previsão L0 e da previsão L1 e vetores de movimento respectivos da previsão L0 e da previsão L1. Detalhes da unidade de geração de informações de movimento 109 serão descritos posteriormente.
[0091] Se a direção de previsão de previsão de compensação de movimento suprida pela unidade de geração de informações de movimento 109 for previsão LN, a unidade de compensação de movimento 106 realiza compensação de movimento em uma foto de referência na memória de quadro 110 que é indicada por um índice de referência de previsão LN suprida pela unidade de geração de informações de movimento 109 com base em um vetor de movimento de previsão LN su- prido pela unidade de geração de informações de movimento 109 de modo a gerar um sinal de previsão for previsão LN. N é 0 ou 1. Se a direção de previsão de previsão de compensação de movimento for previsão dupla, um valor médio de sinais de previsão respectivos para a previsão L0 e a previsão L1 é ajustado para representar o sinal de previsão. Os sinais de previsão respectivos para a previsão L0 e a previsão L1 podem ser ponderados. A unidade de compensação de movimento 106 supre os sinais de previsão à unidade de subtração 102.
[0092] A unidade de subtração 102 subtrai o sinal de foto suprido pela unidade de derivação de foto de bloco de previsão 101 e os sinais de previsão supridos pela unidade de compensação de movimento 106 de modo a calcular um sinal de previsão de erro e supre o sinal de previsão de erro à unidade de codificação de erro de previsão 103.
[0093] A unidade de codificação de erro de previsão 103 gera dados de codificação de erro de previsão realizando-se um processe tal como transformação ortogonal, quantização ou similares no sinal de previsão de erro fornecido pela unidade de subtração 102 e supre os dados de codificação de erro de previsão à unidade de geração de fluxo de bits 104 e à unidade de decodificação de erro de previsão 105.
[0094] A unidade de geração de fluxo de bits 104 submete os dados de codificação de erro de previsão supridos pela unidade de codificação de erro de previsão 103 e pelo sinalizador de mesclagem, o índice de mesclagem, a direção de previsão (tipo de interprevisão) de previsão de compensação de movimento, os índices de referência respectivos da previsão L0 e da previsão L1, as diferenças de vetor respectivas da previsão L0 e da previsão L1 e o índices de estimador de vetor respectivos da previsão L0 e da previsão L1 supridos pela unidade de geração de informações de movimento 109 para codificação de entropia de acordo com a ordem da sintaxe mostrada na Figura 6 de modo a gerar um fluxo de bits e supre o fluxo de bits ao terminal 11 como um fluxo de bits. A codificação de entropia é realizada por um método, incluindo codificação de comprimento variável tal como codificação aritmética, codificação de Huffman ou similares.
[0095] A unidade de geração de fluxo de bits 104 multiplexa as informações de divisão para o bloco de codificação, o tipo de tamanho de bloco de previsão e o modo de codificação de previsão usados no dispositivo de codificação de foto de movimento 100 no fluxo de bits junto com um SPS (Conjunto de Parâmetro de Sequência) que define um grupo de parâmetro para determinar as propriedades do fluxo de bits, um PPS (Conjunto de Parâmetro de Foto) que define um grupo de parâmetro para determinar as propriedades da foto, um cabeçalho de fatia que define um grupo de parâmetro para determinar as propriedades da fatia e similares.
[0096] A unidade de decodificação de erro de previsão 105 gera um sinal de previsão de erro realizando-se um processo tal como quantização inversa, transformação ortogonal inversa ou similares nos dados de codificação de erro de previsão supridos pela unidade de codificação de erro de previsão 103 e supre o sinal de previsão de erro à unidade de adição 107. A unidade de adição 107 adiciona o sinal de previsão de erro suprido pela unidade de decodificação de erro de previsão 105 e os sinais de previsão supridos pela unidade de compensação de movimento 106 de modo a gerar um sinal de foto de de- codificação e supre o sinal de foto de decodificação à memória de quadro 110.
[0097] A memória de quadro 110 armazena o sinal de foto de de- codificação suprido pela unidade de adição 107. Para uma foto decodificada em que a decodificação de toda a foto tenha sido concluída, a memória de quadro 110 armazena um número predeterminado de mais do que ou igual a uma foto da mesma como uma foto de referên- cia. A memória de quadro 110 supre um sinal de foto de referência armazenado à unidade de compensação de movimento 106 e à unidade de geração de informações de movimento 109. Uma área de armazenamento que armazena imagens de referência é controlada por um método de FIFO (primeiro a entrar, primeiro a sair).
[0098] A memória de informações de movimento 111 armazena informações de movimento supridas pela unidade de geração de informações de movimento 109 para um número de fotos predeterminado nas unidades dos tamanhos de bloco de previsão mínimos. A memória de informações de movimento 111 ajusta as informações de movimento de um bloco vizinho do bloco-alvo de previsão para representar um grupo de bloco de candidato espacial.
[0099] Também, a memória de informações de movimento 111 a-justa informações de movimento em um bloco de previsão de posição idêntica, que é localizado na mesma posição que o bloco-alvo de previsão, em uma ColPic e um bloco ao redor do bloco de previsão de posição idêntica para representar um grupo de bloco de candidato temporal. A memória de informações de movimento 111 supre o grupo de bloco de candidato espacial e o grupo de bloco de candidato temporal à unidade de geração de informações de movimento 109 como grupos de bloco de candidato. A memória de informações de movimento 111 é sincronizada com a memória de quadro 110 e é controlada pelo método de FIFO (primeiro a entrar, primeiro a sair).
[00100] Uma ColPic é uma foto que foi decodificada e que é dife-rente a partir de uma foto com um bloco-alvo de previsão e é armazenada na memória de quadro 110 como uma foto de referência. Na primeira modalidade, uma ColPic é uma foto de referência que é decodificada imediatamente antes de uma foto-alvo. Na primeira modalidade, a ColPic é uma foto de referência que é decodificada imediatamente antes de uma foto-alvo. No entanto, contanto que a ColPic seja uma foto decodificada, a ColPic pode ser uma foto de referência imediatamente antes ou imediatamente depois da foto-alvo na ordem de exibição e pode ser especificada em um fluxo de bits.
[00101] Uma explicação é dada agora a respeito de um método de gerenciamento das informações de movimento na memória de informações de movimento 111. As informações de movimento são armazenadas em unidades dos blocos de previsão mínimos em cada área de memória. Cada área de memória armazena pelo menos uma direção de previsão, um vetor de movimento de previsão L0, um índice de referência de previsão L0, um vetor de movimento de previsão L1 e um índice de referência de previsão L1.
[00102] Se o modo de codificação de previsão para o modo intra, (0,0) é armazenado como os vetores de movimento respectivos da previsão L0 e da previsão L1, e "-1" é armazenado como os índices de referência respectivos da previsão L0 e da previsão L1. Doravante, em (H,V) de um vetor de movimento, H representa um componente horizontal, e V representa um componente vertical. Contanto que possa ser determinado que um modo em que a previsão de compensação de movimento não é realizada é usado, o valor "-1" dos índices de referência pode ser qualquer valor. Doravante, o que é simplesmente expressado como "bloco" representa a unidade de bloco de previsão mínima a não ser que seja observado o contrário. O mesmo ocorre para um bloco fora da área. Como no caso do modo intra, (0,0) é armazenado como vetores de movimento respectivos de previsão L0 e previsão L1, e "-1" é armazenado como índices de referência respectivos de previsão L0 e previsão L1. Uma direção LX (X é 0 ou 1) ser válida significa que um índice de referência na direção LX é mais que ou igual a 0. A direção LX ser inválida (não válida) significa que o índice de referência na direção LX é "-1".
[00103] Uma explicação é dada agora a respeito da configuração detalhada da unidade de geração de informações de movimento 109. A Figura 8 mostra a configuração da unidade de geração de informações de movimento 109. A unidade de geração de informações de movimento 109 inclui uma unidade de determinação de modo de estima- dor de vetor 120, uma unidade de determinação de modo de mescla- gem 121 e uma unidade de determinação de modo de codificação de previsão 122. Um terminal 12, um terminal 13, um terminal 14, um terminal 15, um terminal 16, um terminal 50, e um terminal 51 são co-nectados à memória de informações de movimento 111, à unidade de detecção de vetor de movimento 108, à memória de quadro 110, à unidade de derivação de foto de bloco de previsão 101, à unidade de geração de fluxo de bits 104, à unidade de compensação de movimento 106 e à memória de informações de movimento 111, respectivamente.
[00104] Uma explicação é dada em seguida a respeito da função e da operação de cada componente. A unidade de determinação de modo de estimador de vetor 120 determina um tipo de interprevisão com base em um grupo de bloco de candidato suprido pelo terminal 12, vetores de movimento respectivos de previsão L0 e previsão L1 e índices de referência respectivos da previsão L0 e da previsão L1 supridos pelo terminal 13, uma foto de referência indicada por um índice de referência suprido pelo terminal 14 e um sinal de foto suprido pelo terminal 15. Com base no tipo de interprevisão, a unidade de determinação de modo de estimador de vetor 120 seleciona índices de estimador de vetor respectivos da previsão L0 e da previsão L1 de modo a calcular diferenças de vetor respectivas da previsão L0 e da previsão L1 e cal- cula um erro de previsão e também calcula um valor de avaliação de distorção de taxa. A unidade de determinação de modo de estimador de vetor 120 supre, então, informações de movimento, as diferenças de vetor, os índices de estimador de vetor e os valores de avaliação de distorção de taxa com base no tipo de interprevisão à unidade de determinação de modo de codificação de previsão 122.
[00105] A unidade de determinação de modo de mesclagem 121 constrói uma lista de candidato de informações de movimento de mes- clagem a partir do grupo de bloco de candidato suprido pelo terminal 12, da foto de referência suprida pelo terminal 14 e do sinal de foto suprido pelo terminal 15, seleciona um candidato de informações de movimento de mesclagem a partir da lista de candidato de informações de movimento de mesclagem de modo a determinar um índice de mesclagem e calcula um valor de avaliação de distorção de taxa. A unidade de determinação de modo de mesclagem 121 supre, então, informações de movimento do candidato de informações de movimento de mesclagem, o índice de mesclagem e o valor de avaliação de distorção de taxa à unidade de determinação de modo de codificação de previsão 122. Detalhes da unidade de determinação de modo de mesclagem 121 serão descritos posteriormente.
[00106] A unidade de determinação de modo de codificação de previsão 122 determina um sinalizador de mesclagem comparando-se o valor de avaliação de distorção de taxa suprido pela unidade de determinação de modo de estimador de vetor 120 e o valor de avaliação de distorção de taxa suprido pela unidade de determinação de modo de mesclagem 121.
[00107] Se o valor de avaliação de distorção de taxa para o modo de estimador de vetor for menor que o valor de avaliação de distorção de taxa para o modo de mesclagem, a unidade de determinação de modo de codificação de previsão 122 ajusta o sinalizador de mescla- gem para "0". A unidade de determinação de modo de codificação de previsão 122 supre, ao terminal 16, o sinalizador de mesclagem e o tipo de interprevisão, os índices de referência, as diferenças de vetor e o índice de estimador de vetor suprido pela unidade de determinação de modo de estimador de vetor 120 e supre as informações de movimento supridas pela unidade de determinação de modo de estimador de vetor 120 aos terminais 50 e 51.
[00108] Se o valor de avaliação de distorção de taxa para o modo de mesclagem for o valor de avaliação de distorção de taxa para o modo de estimador de vetor ou menos, a unidade de determinação de modo de codificação de previsão 122 ajusta o sinalizador de mescla- gem para "1". A unidade de determinação de modo de codificação de previsão 122 supre, ao terminal 16, o sinalizador de mesclagem e o índice de mesclagem supridos pela unidade de determinação de modo de mesclagem 121 e supre as informações de movimento supridas pela unidade de determinação de modo de mesclagem 121 aos terminais 50 e 51. Um método específico de calcular um valor de avaliação de distorção de taxa não é o ponto principal da presente invenção e uma explicação detalhada do mesmo é, portanto, omitida. A partir de um erro de previsão e uma quantia de codificação, uma quantia de erro de previsão por uma quantia de codificação é calculada. O valor de avaliação de distorção de taxa é um valor de avaliação que tem uma propriedade em que a eficiência de codificação se torna mais alto conforme o valor de avaliação de distorção de taxa se torna menor. Portanto, selecionando-se um modo de codificação de previsão com um valor de avaliação de distorção de taxa pequeno, a eficiência de codificação pode ser aprimorada.
[00109] Uma explicação é dada agora a respeito da configuração detalhada da unidade de determinação de modo de mesclagem 121. A Figura 9 é um diagrama para explicar a configuração da unidade de determinação de modo de mesclagem 121. A unidade de determinação de modo de mesclagem 121 inclui uma unidade de construção de lista de candidato de informações de movimento de mesclagem 140 e uma unidade de seleção de informações de movimento de mesclagem 141. Uma unidade de construção de lista de candidato de informações de movimento de mesclagem 140 é fornecida, também, da mesma maneira em um dispositivo de decodificação de foto de movimento 200 que decodifica um fluxo de bits gerado pelo dispositivo de codificação de foto de movimento 100 de acordo com a primeira modalidade e uma lista de informações de movimento de mesclagem idêntica é construída, cada uma, no dispositivo de codificação de foto de movimento 100 e no dispositivo de decodificação de foto de movimento 200.
[00110] Uma explicação é dada em seguida a respeito da função e da operação de cada componente. A unidade de construção de lista de candidato de informações de movimento de mesclagem 140 constrói uma lista de candidato de informações de movimento de mesclagem, incluindo candidatos de informações de movimento de mesclagem do número máximo de candidatos de mesclagem a partir do grupo de bloco de candidato suprido pelo terminal 12 e supre a lista de candidato de informações de movimento de mesclagem à unidade de seleção de informações de movimento de mesclagem 141. A configuração detalhada da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 será descrita posteriormente.
[00111] A unidade de seleção de informações de movimento de mesclagem 141 seleciona um candidato de informações de movimento de mesclagem ideal a partir da lista de candidato de informações de movimento de mesclagem suprida pela unidade de construção de lista de candidato de informações de movimento de mesclagem 140, determina um índice de mesclagem que servem como informações que indicam o candidato de informações de movimento de mesclagem se-lecionado e supre o índice de mesclagem ao terminal 17.
[00112] Uma explicação é dada agora a respeito de um método de seleção do candidato de informações de movimento de mesclagem ideal. Uma quantia de erro de previsão é calculada a partir da foto de referência obtida realizando-se previsão de compensação de movimento com base na direção de previsão, no vetor de movimento e no índice de referência do candidato de informações de movimento de mesclagem e suprida pelo terminal 14 e a partir do sinal de foto suprido pelo terminal 15. Um valor de avaliação de distorção de taxa é calculado a partir da quantia de codificação do índice de mesclagem e da quantia de erro de previsão e um candidato de informações de movi-mento de mesclagem com o menor valor de avaliação de distorção de taxa é selecionado como o candidato de informações de movimento de mesclagem ideal.
[00113] Uma explicação é dada agora da configuração detalhada da unidade de construção de lista de candidato de informações de movimento de mesclagem 140. A Figura 10 é um diagrama para explicar a configuração da unidade de construção de lista de candidato de informações de movimento de mesclagem 140. Um terminal 19 é conectado à unidade de seleção de informações de movimento de mes- clagem 141. A unidade de construção de lista de candidato de informações de movimento de mesclagem 140 inclui uma unidade de geração de candidato de informações de movimento de mesclagem espa- cial 160, uma unidade de geração de candidato de informações de movimento de mesclagem temporal 161, uma unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162, uma primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 e uma segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164. Doravante, uma expressão de "gerar" um candidato de informa-ções de movimento de mesclagem é usada. No entanto, a expressão de "gerar" pode ser mudada para uma expressão de "derivar".
[00114] Uma explicação é dada em seguida a respeito da função e da operação de cada componente. A Figura 11 é um fluxograma para explicar a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140. Primeiramente, a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 inicializa uma lista de candidato de informações de movimento de mesclagem (S100). Não existe candidato de infor-mações de movimento de mesclagem na lista de candidato de informações de movimento de mesclagem inicializada.
[00115] A unidade de geração de candidato de informações de movimento de mesclagem espacial 160 gera, então, candidatos de informações de movimento de mesclagem espaciais, tanto quanto zero ao número máximo de candidatos de informações de movimento de mes- clagem espaciais, a partir do grupo de bloco de candidato suprido pelo terminal 12 de modo a adicionar os candidatos de informações de movimento de mesclagem espaciais gerados à lista de candidato de in-formações de movimento de mesclagem (S101) e supre a lista de candidato de informações de movimento de mesclagem e o grupo de bloco de candidato à unidade de geração de candidato de informações de movimento de mesclagem temporal 161. A operação detalhada da unidade de geração de candidato de informações de movimento de mesclagem espacial 160 será descrita posteriormente. Descrições serão feitas, também, posteriormente a respeito do número máximo de candidatos de informações de movimento de mesclagem espaciais.
[00116] A unidade de geração de candidato de informações de movimento de mesclagem temporal 161 gera, então, candidatos de informações de movimento de mesclagem temporais, tanto quanto zero ao número máximo de candidatos de informações de movimento de mes- clagem temporais, a partir do grupo de bloco de candidato suprido pela unidade de geração de candidato de informações de movimento de mesclagem espacial 160 de modo a adicionar os candidatos de informações de movimento de mesclagem temporais gerados à lista de candidato de informações de movimento de mesclagem suprida pela unidade de geração de candidato de informações de movimento de mesclagem espacial 160 (S102) e supre a lista de candidato de informações de movimento de mesclagem à unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162. A operação detalhada da unidade de geração de candidato de informações de movimento de mesclagem temporal 161 será descrita posteriormente. Descrições serão feitas, também, posteriormente a respeito do número máximo de candidatos de informações de movimento de mesclagem temporais.
[00117] A unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162 examina, então, os candidatos de informações de movimento de mesclagem adicionados na lista de candidato de informações de movimento de mesclagem suprida pela unidade de geração de candidato de informações de movimento de mesclagem temporal 161, deixa, se houver uma pluralidade de candidatos de informações de movimento de mesclagem que tem as mesmas informações de movimento, um dentre a pluralidade de candidatos de informações de movimento de mesclagem ao mesmo tempo em que apaga o resto dos candidatos de informações de movimento de mesclagem (S103) e supre a lista de candidato de informações de movimento de mesclagem à primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163. Os candidatos de informações de movimento de mesclagem adicionados à lista de candidato de informações de movimento de mesclagem são todos candidatos de informações de movimento de mesclagem diferentes nesse momento.
[00118] A primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 gera, então, zero a dois primeiros candidatos de informações de movimento de mesclagem suplementares a partir dos candidatos de informações de movimento de mesclagem adicionados à lista de candidato de informações de movimento de mesclagem suprida pela unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162 de modo a adicionar os primeiros candidatos de informações de movimento de mesclagem suplementares à lista de candidato de informações de movimento de mesclagem (S104) e supre a lista de candidato de informações de movimento de mesclagem à segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164. A operação detalhada da primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 será descrita posteriormente.
[00119] A segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164 continua gerando, então segundos candidatos de informações de movimento de mesclagem suplementares até que o número de candidatos de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mesclagem suprida pela primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 alcance o número máximo de candidatos de mesclagem de modo a adicionar os segundos candidatos de informações de movimento de mesclagem suplementares à lista de candidato de informações de movimento de mesclagem (S105) e supre a lista de candidato de informações de movimento de mesclagem ao terminal 19. A operação detalhada da segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164 será descrita posteriormente.
[00120] A unidade de geração de candidato de informações de movimento de mesclagem espacial 160 e a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 são descritas para gerar respectivamente um candidato de informações de movimento de mesclagem espacial e um candidato de informações de movimento de mesclagem temporal e adicionar respectivamente o candidato de informações de movimento de mesclagem espacial e o candidato de informações de movimento de mesclagem temporal à lista de candidato de informações de movimento de mesclagem. Alternativamente, a unidade de geração de candidato de informações de movimento de mesclagem espacial 160 e a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 podem gerar, somente, um candidato de informações de movimento de mesclagem espacial e um candidato de informações de movimento de mesclagem temporal, respectivamente, e a lista de candidato de informações de movimento de mesclagem pode ser construída a partir de candidatos gerados imediatamente antes da unidade de apaga- mento de candidato de informações de movimento de mesclagem redundante 162.
[00121] Doravante, uma explicação é dada a respeito de um grupo de bloco de candidato de um bloco de previsão. Primeiramente, uma explicação é dada a respeito de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. A Figura 12 é um diagrama que explica um grupo de bloco de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. A Figura 12 mostra um exemplo em que um tamanho de bloco de previsão é 16 pixels x 16 pixels. Blocos de candidato temporal H e I descritos posteriormente existem em uma foto decodificada que é diferente a partir de uma foto em que blocos de candidato espacial A a E, que são descritos posteriormente, também, existem. No entanto, para facilitar a compreensão e a explicação, a Figura 12 mostra os blocos de candidato temporal H e I junto com os blocos de candidato espacial A a E.
[00122] O grupo de bloco de candidato espacial inclui um bloco A localizado à esquerda um pixel do bloco de previsão inferior à esquerda, um bloco B localizado acima de um pixel do bloco de previsão superior à direita, um bloco C localizado diagonalmente acima da direita de um pixel do bloco de previsão superior à direita, um bloco E localizado diagonalmente abaixo da esquerda de um pixel do bloco de pre-visão inferior à esquerda e um bloco D localizado diagonalmente acima da esquerda de um pixel do bloco de previsão superior à direita. Conforme descrito, o grupo de bloco de candidato espacial é determinado com base na posição e no tamanho do bloco de previsão. O grupo de bloco de candidato temporal inclui dois blocos: um bloco H e um bloco I, que são blocos representativos em uma área predeterminada da ColPic. Quando a posição do pixel superior à esquerda do bloco- alvo de previsão é ajustado para ser (x, y) e a largura e a altura do bloco-alvo de previsão são ajustados para ser PUW e PUH, respectivamente, um bloco na ColPic que inclui uma posição de pixel de ((((x + PUW) >> 4) << 4), (((y + PUH) >> 4) << 4)) como a posição de um pixel superior à esquerda do bloco é ajustada para ser um bloco de can- didato temporal H, em que ">>" representa um deslocamento de bit em uma direção para direita e "<<" representa um deslocamento de bit em uma direção para esquerda.
[00123] De modo similar, um bloco na ColPic que inclui uma posição de pixel de (x + (PUW >> 1), y + (PUH >> 1)) como a posição de um pixel superior à esquerda do bloco é ajustada para ser um bloco de candidato temporal I. Conforme descrito, o grupo de bloco de candidato temporal é determinado com base na posição e no tamanho do bloco de previsão. Conforme descrito, ajustando-se o bloco de candidato temporal como os blocos representativos da área predeterminada da ColPic (16 pixels x 16 pixels, nesse caso), vetores de movimento e índices de referência a serem armazenados pela ColPic podem ser re-duzidos. Reduzir vetores de movimento e índices de referência que são armazenados em uma foto permite que uma pluralidade de foto decodificadas seja submetida à ColPic, tendo, assim, o efeito de aprimoramento da eficiência de previsão.
[00124] Um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N consiste em um bloco de previsão. Assim, a posição de um bloco de candidato em relação a um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N é igual à posição do bloco de candidato em relação ao bloco de codificação, e a posição do bloco de candidato está fora o bloco de codificação.
[00125] Na Figura, o bloco A está localizado na esquerda inferior do bloco de previsão. No entanto, contanto que o bloco A esteja em contato com o lado esquerdo do bloco de previsão, a posição do bloco A não é limitado a isso. O bloco B está localizado na direita superior do bloco de previsão. No entanto, contanto que o bloco B esteja em contato com o lado superior do bloco de previsão, a posição do bloco B não é limitada a isso. O grupo de bloco de candidato temporal é ajus- tado para incluir os dois blocos: o bloco H; e o bloco I. No entanto, o grupo de bloco de candidato temporal não é limitado a esse ajuste.
[00126] Uma explicação é dada agora a respeito de um exemplo em que um relacionamento posicional que é o mesmo que aquele de um bloco de previsão de um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N é aplicado a um bloco de previsão em um bloco de codificação que não tem um tipo de tamanho de bloco de previsão de 2Nx2N. A Figura 13 é um diagrama que mostra um grupo de bloco de candidato que ocorre quando um relacionamento posicional que é o mesmo que aquele de um bloco de previsão de um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N é aplicado a um bloco de previsão em um bloco de codificação que não tem um tipo de tamanho de bloco de previsão de 2Nx2N. NA Figura 13, como no caso da Figura 12, os blocos de candidato temporal H e I existem em uma foto decodificada que é diferente a partir de uma foto em que blocos de candidato espacial A a E existem. No entanto, para facilitar a compreensão e a explicação, a Figura 13 mostra os blocos de candidato temporal H e I junto com os blocos de candidato espacial A a E. As Figuras 13A a 13H mostram grupos de bloco de candidato respectivos para um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN e um bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, respectivamente. A Figura 13 mostra um exemplo em que um tamanho de bloco de previsão é 16 pixels x 16 pixels. Um grupo de bloco de candidato temporal é derivado da mesma maneira que no caso de um tipo de tamanho de bloco de previsão de 2Nx2N e a posição de um bloco H é mostrada na Figura 13. Conforme descrito, em um bloco de previsão incluído em um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N, um grupo de bloco de candidato é determinado para cada bloco de previsão com base na posição e no tamanho do bloco de previsão.
[00127] No caso do bloco de previsão 1 de um tipo de tamanho de bloco de previsão de Nx2N (Figura 13B), um bloco A está localizado dentro de um bloco de previsão 0 do mesmo bloco de codificação, e informações de movimento do bloco de previsão 0 precisam ser determinadas antes do processamento do bloco de previsão 1 a fim de obter informações de movimento do bloco A. Assim, o bloco de previsão 0 e o bloco de previsão 1 não pode ser processado ao mesmo tempo se o bloco A for usado como um bloco de candidato do bloco de previsão 1. O bloco de codificação máximo é processado em ordem de varredura, e um bloco de codificação é processado em ordem de varredura em ziguezague. Assim, um bloco E sempre se torna um bloco não processado. De modo similar, no caso do bloco de previsão 1 de um tipo de tamanho de bloco de previsão de 2NxN (Figura 13D), um bloco B está localizado dentro de um bloco de previsão 0 do mesmo bloco de codificação, e um bloco C sempre se torna um bloco não processado. Para o bloco de previsão 1 (Figura 13F), o bloco de previsão 2 (Figura 13G), o bloco de previsão 3 (Figura 13H) em que, cada um, têm um tipo de tamanho de bloco de previsão de NxN, um bloco no mesmo bloco de codificação e um bloco que sempre se torna um bloco não processado são mostrados respectivamente nas Figuras 13.
[00128] No bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, no bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, no bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN e no bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN, o número de blocos de candidato que não estão localizados dentro do mesmo bloco de codificação e não se tornam blocos não processados é três. No bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, o número de blocos de candidato que não estão localizados dentro do mesmo bloco de codificação e não se tornam blocos não processados é zero. Uma redução no número de blocos de candidato leva a uma diminuição na eficiência de previsão.
[00129] A Figura 14 é um diagrama que explica um exemplo de um relacionamento posicional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco de candidato espacial na primeira modalidade. O mesmo na Figura 13 também se aplica a um grupo de bloco de candidato temporal. As Figuras 14A a 14H mostram grupos de bloco de candidato espacial respectivos para um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN e um bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, res- pectivamente. A Figura 14 mostra um exemplo em que um tamanho de bloco de previsão é 16 pixels x 16 pixels.
[00130] Na Figura, um bloco localizado dentro de outro bloco de previsão no mesmo bloco de codificação é substituído por um bloco de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. Em outras palavras, no caso do bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N (Figura 14B), um bloco A é mudado para um bloco A de um bloco de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. No caso do bloco de previsão 1 de um tipo de tamanho de bloco de previsão de 2NxN (Figura 14D), um bloco B é mudado para um bloco B de um bloco de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. No caso do bloco de previsão 1 de um tipo de tamanho de bloco de previsão de NxN (Figura 14F), um bloco A e um bloco E são respectivamente mudados para um bloco A e um bloco E de blocos de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. No caso do bloco de previsão 2 de um tipo de tamanho de bloco de previsão de NxN (Figura 14G), um bloco B e um bloco C são respectivamente mudados para um bloco B e um bloco C que são blocos de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. No caso do bloco de previsão 3 de um tipo de tamanho de bloco de previsão de NxN (Figura 14H), um bloco A, um bloco B, e um bloco D são respectivamente mudados para um bloco A, um bloco B e um bloco D que são blocos de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N.
[00131] O número de blocos de candidato válidos é cinco para o bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, o bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, o bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, o bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN e o bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN.
[00132] Conforme descrito acima, mudando-se um bloco de candidato incluído em outro bloco de previsão do mesmo bloco de codificação para um bloco de candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N, que resulta no maior tamanho de bloco de previsão de um tamanho de bloco de previsão de um bloco de codificação, um relacionamento de dependência de informações de movimento entre os blocos de previsão incluídos no bloco de codificação é perdido, e uma pluralidade de blocos de previsão incluídos no bloco de codificação pode ser processada ao mesmo tempo.
[00133] Uma explicação é dada agora da operação detalhada da unidade de geração de candidato de informações de movimento de mesclagem espacial 160. A Figura 15 é um fluxograma para explicar a operação da unidade de geração de candidato de informações de movimento de mesclagem espacial 160. A unidade de geração de candidato de informações de movimento de mesclagem espacial 160 repete os seguintes processos na ordem de um bloco A, um bloco B, um bloco C, um bloco E e um bloco D, que são blocos de candidato incluídos em um grupo de bloco de candidato espacial de um grupo de bloco de candidato (S110 a S114).
[00134] Primeiramente, a unidade de geração de candidato de informações de movimento de mesclagem espacial 160 verifica se um bloco de candidato é válido (S111). Um bloco de candidato ser válido significa que pelo menos um dos índices de referência respectivos de previsão L0 e previsão L1 do bloco de candidato é mais que ou igual a 0. Se o bloco de candidato for válido (Y in S111), a unidade de geração de candidato de informações de movimento de mesclagem espacial 160 adiciona informações de movimento do bloco de candidato à lista de candidato de informações de movimento de mesclagem como um candidato de informações de movimento de mesclagem espacial (S112). Se o bloco de candidato não for válido (N em S111), a unidade de geração de candidato de informações de movimento de mesclagem espacial 160 verifica um bloco de candidato subsequente (S114). Subsequentemente à etapa S112, a unidade de geração de candidato de informações de movimento de mesclagem espacial 160 verifica se o número de candidatos de informações de movimento de mesclagem espaciais adicionados à lista de candidato de informações de movimento de mesclagem é o número máximo de candidatos de informações de movimento de mesclagem espaciais (S113). Nesse caso, o número máximo de candidatos de informações de movimento de mes- clagem espaciais é ajustado para ser 4. Se o número de candidatos de informações de movimento de mesclagem espaciais adicionado à lista de candidato de informações de movimento de mesclagem não for o número máximo de candidatos de informações de movimento de mes- clagem espaciais (N in S113), a unidade de geração de candidato de informações de movimento de mesclagem espacial 160 verifica um bloco subsequente de candidato (S114). Se o número de candidatos de informações de movimento de mesclagem espaciais adicionados à lista de candidato de informações de movimento de mesclagem for o número máximo de candidatos de informações de movimento de mes- clagem espaciais (Y in S113), a unidade de geração de candidato de informações de movimento de mesclagem espacial 160 termina o processo.
[00135] Em ordem para adição à lista de candidato de informações de movimento de mesclagem ao mesmo tempo em que dá prioridade às informações de movimento do bloco A e o bloco B, que têm uma linha de contato longa com o bloco-alvo e são geralmente considerados ter correlação alta com o bloco-alvo, a ordem dos processos são ajustados para ser o bloco A, o bloco B, o bloco C, o bloco E e o bloco D. No entanto, a ordem dos processos não é limitada a isso, contanto que candidatos de informações de movimento de mesclagem sejam adicionados à lista de candidato de informações de movimento de mesclagem em ordem descendente de correlação com o bloco-alvo ou em ordem descendente de uma probabilidade de seleção como um bloco de candidato. Por exemplo, no caso do bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, a ordem pode ser a ordem de um bloco B, um bloco C, um bloco E, um bloco D e um bloco A. No caso do bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, a ordem pode ser um bloco A, um bloco C, um bloco E, um bloco D e um bloco B. No caso do bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, a ordem pode ser um bloco B, um bloco C, um bloco D, um bloco A e um bloco E. No caso do bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN, a ordem pode ser um bloco A, um bloco E, um bloco D, um bloco B e um bloco C. No caso do bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, a ordem pode ser um bloco C, um bloco E, um bloco A, um bloco B e um bloco D. Conforme descrito, adicionando-se candidatos de informações de movimento de mesclagem à lista de candidato de informações de movimento de mesclagem em ordem de proximidade ao bloco-alvo de previsão, atribuição de um grande índice de mesclagem a um bloco próximo ao bloco-alvo de previsão pode ser evitada, e a eficiência de codificação pode ser aprimorada. O número máximo de candidatos de informações de movimento de mesclagem espaciais é ajustado para ser 4. No entanto, o número máximo não é limitado a isso contanto que o número de candidatos de informações de movimento de mes- clagem espaciais seja mais que ou igual a 1 e seja menos que ou igual ao número máximo de candidatos de mesclagem.
[00136] Uma explicação é dada agora da operação detalhada da unidade de geração de candidato de informações de movimento de mesclagem temporal 161. A Figura 16 é um fluxograma para explicar a operação da unidade de geração de candidato de informações de movimento de mesclagem temporal 161. A unidade de geração de candidato de informações de movimento de mesclagem temporal 161 repete os seguintes processos para cada direção de previsão LX de previsão L0 e previsão L1 (S120 a S127). X é 0 ou 1. A unidade de geração de candidato de informações de movimento de mesclagem temporal 161 repete os seguintes processos na ordem de um bloco H e um bloco I, que são blocos de candidato incluídos em um grupo de bloco de candidato temporal de um grupo de bloco de candidato (S121 a S126).
[00137] A unidade de geração de candidato de informações de movimento de mesclagem temporal 161 verifica se a previsão LN de um bloco de candidato é válida (S122). N é 0 ou 1. Assume-se que N seja idêntico a X. A previsão LN de um bloco de candidato ser válida significa que um índice de referência da previsão LN do bloco de candidato é mais que ou igual a 0. Se a previsão LN do bloco de candidato é válido (Y em S122), um vetor de movimento da previsão LN do bloco de candidato é ajustado para ser um vetor de movimento de referência (S123). Se a previsão LN do bloco de candidato não for válida (N em S122), as etapas 123 a 126 são puladas e um bloco subsequente de candidato é verificado (S126).
[00138] Subsequentemente à etapa S123, a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 determina uma foto de referência da previsão LX de um candidato de informações de movimento de mesclagem temporal (S124). Nesse caso, a foto de referência da previsão LX do candidato de informações de movimento de mesclagem temporal é ajustada para ser uma foto de referência de um índice de referência 0. Nesse caso, a foto de referência da previsão LX do candidato de informações de movimento de mesclagem temporal é ajustada para ser uma foto de referência de um índice de referência 0. No entanto, a foto de referência não é limitada a isso, contanto que a foto de referência não dependa do valor de outro bloco de previsão no bloco de codificação. Então, dimensionando-se o vetor de movimento de referência para ser compatível com uma distância entre a foto-alvo e a foto de referência da previsão LX do candidato de informações de movimento de mesclagem temporal, a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 calcula um vetor de movimento da previsão LX do candidato de informações de movimento de mesclagem temporal (S125) e processa a direção de previsão subsequente (S127). Um método específico de cálculo do vetor de movimento da previsão LX do candidato de informações de movimento de mesclagem temporal será descrito posteriormente. Subsequentemente à etapa S127 em que os processos são terminados para a previsão L0 e a previsão L1, a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 verifica se pelo menos uma dentre a previsão L0 e a previsão L1 do candidato de informações de movimento de mesclagem temporal é válida (S128). Se pelo menos uma dentre a previsão L0 e a previsão L1 do candidato de informações de movimento de mescla- gem temporal for válida (Y in S128), a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 determi-na o tipo de interprevisão do candidato de informações de movimento de mesclagem temporal e adiciona o candidato de informações de movimento de mesclagem temporal à lista de candidato de informações de movimento de mesclagem (S129). Para a determinação do tipo de interprevisão, o tipo de interprevisão do candidato de informações de movimento de mesclagem temporal é ajustado para ser Pred_L0 somente se a previsão L0 for válida, o tipo de interprevisão do candidato de informações de movimento de mesclagem temporal é ajustado para ser Pred_L1 somente se a previsão L1 for válida e o tipo de interprevisão do candidato de informações de movimento de mes- clagem temporal é ajustado para ser Pred_BI se tanto a previsão L0 quanto a previsão L1 forem válidas.
[00139] Subsequentemente, uma explicação é dada do método de cálculo do vetor de movimento da previsão LX do candidato de informações de movimento de mesclagem temporal. Se uma distância de interfoto entre uma ColPic que tem um bloco de candidato temporal e uma imagem de referência ColRefLXPic, que é uma foto referida pelo bloco de candidato temporal em previsão de compensação de movimento da previsão LX, uma distância de interfoto entre uma imagem de referência RefLXPic da previsão LX do candidato de informações de movimento de mesclagem temporal e uma foto-alvo CurPic, e o vetor de movimento de referência da previsão LX forem denotadas como td, tb e mvLX, respectivamente, um vetor de movimento mvLXCol da previsão LX do candidato de informações de movimento de mescla- gem temporal é calculado pela Expressão 1. Pode-se compreender com base na Expressão 1 que subtração, divisão e multiplicação para o cálculo de tb e td são necessárias para o cálculo do vetor de movimento da previsão LX do candidato de informações de movimento de mesclagem temporal.
[00140] mvLXCol = tb / td * mvLX; Expressão 1
[00141] No caso do uso da aritmética de número inteiro para a sim- plificação da aritmética de ponto flutuante, por exemplo, a Expressão 1 pode ser usada após ser expandida como na Expressão 2 à Expressão 4. Abs(v) é uma função para calcular o valor absoluto de um valor v. Clip3(uv,lv,v) é uma função que limita o valor v para ser de um limite inferior lv para um limite superior uv. Sign(v) é uma função que retorna a 1 se o valor v for maior ou igual a 0 e retorna a -1 se o valor v for menor do que 0.
[00142] tx = (16384 + Abs(td / 2)) / td; Expressão 2
[00143] DistScaleFactor = Clip3(-1024, 1023, (tb * tx + 32) >> 6); Expressão 3
[00144] mvLXCol = Sign(DistScaleFactor * mvLX) * ((Abs(DistScaleFactor * mvLX) + 127) >> 8); Expressão 4
[00145] Nesse caso, o número máximo de candidatos de informações de movimento de mesclagem temporal, que no número máximo de candidatos de informações de movimento de mesclagem temporal que pode ser adicionado à lista de candidato de informações de movimento de mesclagem, é ajustado para ser 1. Portanto, embora um processo que corresponde à etapa S115 mostrada na Figura 14, que é um fluxograma que explica a operação da unidade de geração de candidato de informações de movimento de mesclagem espacial 160, seja omitido na Figura 16, o processo que corresponde à etapa S115 pode ser adicionado após a etapa S129 se o número máximo dos candidatos de informações de movimento de mesclagem temporal for maior ou igual a 2.
[00146] Nesse caso, N é ajustado para ser o mesmo que X. Entretanto, N pode ser diferente de X e não é limitado ao mesmo.
[00147] Uma explicação é agora dada da operação detalhada da primeira unidade de suprimento de candidato de informações de mo- vimento de mesclagem 163. A Figura 17 é um fluxograma para explicar a operação da primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163. Primeiro, a primeira unidade de suprimento de candidato de informações de movimento de mes- clagem 163 calcula o MaxNumGenCand, que é o número máximo para gerar os primeiros candidatos de informações de movimento de mes- clagem suplementares, pela Expressão 5 a partir do número de candidatos de informações de movimento de mesclagem (NumCandList) e do número máximo dos candidatos de mesclagem (MaxNumMerge- Cand) adicionados à lista de candidato de informações de movimento de mesclagem suprida pela primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 (S170).
[00148] MaxNumGenCand = MaxNumMergeCand - NumCandList; (NumCandList > 1)
[00149] MaxNumGenCand = 0; (NumCandList <= 1) Expressão 5
[00150] Então, a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 verifica se o MaxNum- GenCand é maior do que 0 (S171). Se o MaxNumGenCand não for maior do que 0 (N em S171), a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 finaliza o processo. Se o MaxNumGenCand for maior do que 0 (S em S171), a primeira unidade de suprimento de candidato de informações de mo-vimento de mesclagem 163 realiza o processo seguinte. Primeiro, a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 determina o loopTimes, que é o número das verificações de combinação. loopTimes é ajustado para ser Num- CandListxNumCandList. Se o loopTimes exceder 8, o loopTimes é limitado a 8 (S172). loopTimes é um número inteiro de 0 a 7. Os processos a seguir são repetidos somente para o loopTimes (S172 a S180). A primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 determina uma combinação de um candidato de informações de movimento de mesclagem M e um candidato de informações de movimento de mesclagem N (S173). As relações entre o número de verificações de combinação, o candidato de informações de movimento de mesclagem M e o candidato de informações de movimento de mesclagem N. A Figura 18 é um diagrama para explicar as relações entre o número de verificações de combinação, o candidato de informações de movimento de mesclagem M e o candidato de informações de movimento de mesclagem N. Como na Figura 18, M e N são valores diferentes e são ajustados em ordem ascendente do valor total de M e N. A primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 verifica se a previsão L0 do candidato de informações de movimento de mescla- gem M é válida e se a previsão L1 do candidato de informações de movimento de mesclagem N é válida (S174). Se a previsão L0 do candidato de informações de movimento de mesclagem M for válida e a previsão L1 do candidato de informações de movimento de mescla- gem N for válida (S em S174), a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 verifica se uma foto de referência e um vetor de movimento da previsão L0 do candidato de informações de movimento de mesclagem M são diferentes de uma foto de referência e um vetor de movimento da previsão L1 do candidato de informações de movimento de mesclagem N (S175). Se a previsão L0 do candidato de informações de movimento de mes- clagem M for válida e a previsão L1 do candidato de informações de movimento de mesclagem N não for válida (N em S174), a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 processa uma combinação subsequente. Se a foto de referência da previsão L0 do candidato de informações de movimento de mesclagem M for diferente da foto de referência da previsão L1 do candidato de informações de movimento de mesclagem N for válida (S em S175), a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 gera um candidato de informações de movimento de mesclagem dupla que tem um tipo de interpre- visão de Pred_BI combinando-se o vetor de movimento e a foto de referência da previsão L0 do candidato de informações de movimento de mesclagem M e o vetor de movimento e a foto de referência da previsão L1 do candidato de informações de movimento de mesclagem N (S176). Nesse caso, a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 gera, como um primeiro candidato de informações de movimento de mesclagem suplementar, informações de movimento de mesclagem dupla obtidas com-binando-se as informações de movimento da previsão L0 de um candidato de informações de movimento de mesclagem e as informações de movimento da previsão L1 de um candidato de informações de movimento de mesclagem diferente. Se a foto de referência da previsão L0 do candidato de informações de movimento de mesclagem M for a mesma que a foto de referência da previsão L1 do candidato de informações de movimento de mesclagem N (N em S175), a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 processa uma combinação subsequente. Subsequentemente à etapa S176, a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 adiciona o candidato de informações de movimento de mesclagem dupla à lista de candidato de informações de movimento de mesclagem (S178). Subsequen-temente à etapa S178, a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 verifica se o número de fragmentos das informações de movimento de mesclagem dupla geradas é o MaxNumGenCand (S179). Se o número de fragmentos das informações de movimento de mesclagem dupla geradas for o MaxNumGenCand (S em S179), a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 finaliza o processo. Se o número de fragmentos das informações de movimento de mesclagem dupla geradas não for o MaxNumGenCand (N em S179), a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 processa uma combinação subsequente.
[00151] Nesse caso, o primeiro candidato de informações de movimento de mesclagem suplementar é ajustado para ser um candidato de informações de movimento de mesclagem dupla, no qual a direção da previsão de compensação de movimento é bidirecional, combinando-se o vetor de movimento e a foto de referência da previsão L0 de um candidato de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mesclagem e o vetor de movimento e a foto de referência da previsão L1 de outro candidato de informações de movimento de mesclagem. Entretanto, o primeiro candidato de informações de movimento de mesclagem suplementar não é limitado a isso. Por exemplo, o primeiro candidato de informações de movimento de mesclagem suplementar pode ser um candidato de informações de movimento de mesclagem, no qual a direção da previsão de compensação de movimento é bidirecional, obtido adicionando-se um valor de desvio de +1 ou similar ao vetor de movimento da previsão L0 e ao vetor de movimento da previsão L1 de um candidato de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mesclagem ou um candidato de informações de movimento de mesclagem, no qual a direção da previsão de compensação de movimento é unidirecional, obtido adicionando-se um valor de desvio de +1 ou similar ao vetor de movimento da previsão L0 ou ao vetor de movimento da previsão L1 de um candidato de informações de movimento de mesclagem adicio- nado à lista de candidato de informações de movimento de mescla- gem. Como outro exemplo do primeiro candidato de informações de movimento de mesclagem suplementar, um novo candidato de informações de movimento de mesclagem, no qual a direção da previsão de compensação de movimento é bidirecional, pode ser gerado obtendo-se um vetor de movimento da previsão L1 pelo dimensionamento com o uso, como uma referência, de um vetor de movimento da previsão L0 de um candidato de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mes- clagem e, então, combinando esses vetores de movimento. Alternativamente, esses podem ser arbitrariamente combinados.
[00152] Nesse caso, se houver uma pequena diferença entre as informações de movimento de um candidato de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mesclagem e o movimento de um candidato de informações de movimento alvo, o primeiro candidato de informações de movimento de mesclagem suplementar permite um aumento na eficácia de codificação através da geração de um novo candidato de informações de movimento de mesclagem que é válido através da modificação das informações de movimento do candidato de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mesclagem.
[00153] Uma explicação é dada agora da operação detalhada da segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164. A Figura 19 é um fluxograma para explicar a operação da segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164. Primeiro, a segunda unidade de suprimento de candidato de informações de movimento de mes- clagem 164 calcula o MaxNumGenCand, que é o número máximo para gerar primeiros candidatos de informações de movimento de mescla- gem suplementares, pela Expressão 6 a partir do número de candidatos de informações de movimento de mesclagem (NumCandList) e do número máximo de candidatos de mesclagem (MaxNumMergeCand) adicionado à lista de candidato de informações de movimento de mes- clagem suprida pela primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 (S190).
[00154] MaxNumGenCand = MaxNumMergeCand - NumCandList; Expressão 6
[00155] Então, a segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164 repete os processos a seguir para o número de vezes de MaxNumGenCand para i (S191 a S195), em que i é um número inteiro de 0 a (MaxNumGenCand - 1). A segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164 gera um segundo candidato de informações de movimento de mesclagem suplementar que tem um vetor de movimento de (0,0) e um índice de referência de i para a previsão L0, um vetor de movimento de (0,0) e um índice de referência de i para a previsão L1 e um tipo de interprevisão de Pred_BI (S192). A segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164 adiciona o segundo candidato de informações de movimento de mesclagem suplementar à lista de candidato de informações de movimento de mesclagem (S194). A segunda unidade de su-primento de candidato de informações de movimento de mesclagem 164 processa um i subsequente (S195).
[00156] Nesse caso, o segundo candidato de informações de movimento de mesclagem suplementar é ajustado para ser um candidato de informações de movimento de mesclagem que tem um vetor de movimento de (0,0) e um índice de referência de i para a previsão L0, um vetor de movimento de (0,0) e um índice de referência de i para a previsão L1 e um tipo de interprevisão de Pred_BI. Isso é porque, em uma foto de movimento comumente usada, a frequência de ocorrência de um candidato de informações de movimento de mesclagem com um vetor de movimento de (0,0) para a previsão L0 e para a previsão L1 é estatisticamente alta. O segundo candidato de informações de movimento de mesclagem suplementar não é limitado a isso, contanto que o segundo candidato de informações de movimento de mescla- gem suplementar seja ajustado a um candidato de informações de movimento de mesclagem que não depende das informações de movimento de um candidato de informações de movimento de mescla- gem adicionado à lista de candidato de informações de movimento de mesclagem e que tem uma frequência de uso estatisticamente alta. Por exemplo, o vetor de movimento da previsão L0 e o vetor de movimento da previsão L1 podem tomar, cada um, um valor de vetor diferente de (0,0) e podem ser ajustados de modo que um índice de referência da previsão L0 e um índice de referência da previsão L1 sejam diferentes. Alternativamente, o segundo candidato de informações de movimento de mesclagem suplementar pode ser ajustado para ser as informações de movimento que têm uma alta frequência de ocorrência de uma foto codificada ou uma porção de uma foto codificada de modo a ser codificado em um fluxo de bits e, então, transmitido. Nesse caso, uma explicação é dada em relação a uma foto B. No caso de uma foto P, um segundo candidato de informações de movimento de mescla- gem suplementar que tem um vetor de movimento de (0,0) para a previsão L0 e um tipo de interprevisão de Pred_L0 é gerado.
[00157] Ajustar um candidato de informações de movimento de mesclagem que não depende de um candidato de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mesclagem como o segundo candidato de informa- ções de movimento de mesclagem suplementar permite o uso de um modo de mesclagem quando o número de candidatos de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mesclagem é zero e a eficácia de codificação pode ser melhorada. Também, quando as informações de movimento de um candidato de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mes- clagem são diferentes do movimento de um candidato de informações de movimento alvo, a eficácia de codificação pode ser melhorada aumentando-se as escolhas através da geração de um novo candidato de informações de movimento de mesclagem.
[00158] (Configuração do dispositivo de decodificação de foto de movimento 200) Uma explicação é dada agora de um dispositivo de decodificação de foto de movimento de acordo com a primeira modalidade. A Figura 20 é um diagrama que mostra a configuração do dispositivo de decodificação de foto de movimento 200 de acordo com a primeira modalidade. O dispositivo de decodificação de foto de movimento 200 é um dispositivo que gera uma imagem de reprodução através da decodificação de um fluxo de bits codificado pelo dispositivo de codificação de foto de movimento 100.
[00159] O dispositivo de decodificação de foto de movimento 200 é alcançado por hardware tal como um dispositivo de processamento de informações ou similar dotado de uma CPU (Unidade de Processamento Central), uma memória de quadro, um disco rígido e similares. Pela operação dos elementos de constituição, o dispositivo de decodi- ficação de foto de movimento 200 alcança elementos de constituição funcionais explicados a seguir. Presume-se que a partição de um bloco de codificação, a determinação de um modo de salto, a determinação de um tipo de tamanho de bloco de previsão, a determinação de um tamanho de bloco de previsão e uma posição em um bloco de codifi- cação de um bloco de previsão (também referida como informações de posição de um bloco de previsão) e a determinação de se um modo de codificação de previsão é intra sejam determinadas por uma unidade de controle de ordem superior (não mostrado). Assim, uma explicação é dada em relação a um caso em que um modo de codificação de previsão não é intra. Presume-se que as informações de posição e o ta-manho de bloco de previsão de um bloco de previsão submetido à de- codificação sejam compartilhados no dispositivo de decodificação de foto de movimento 200 e não são, assim, mostrados.
[00160] O dispositivo de decodificação de foto de movimento 200 de acordo com a primeira modalidade includes a unidade de análise de fluxo de bits 201, uma unidade de decodificação de erro de previsão 202, uma unidade de adição 203, uma unidade de reprodução de informações de movimento 204, uma unidade de compensação de movimento 205, uma memória de quadro 206 e uma memória de informações de movimento 207.
[00161] Uma explicação é dada a seguir em relação à função e à operação de cada componente. A unidade de análise de fluxo de bits 201 analisa um fluxo de bits suprido pelo terminal 30 de modo a submeter dados de codificação de erro de previsão, um sinalizador de mesclagem, um índice de mesclagem, uma direção de previsão (tipo de interprevisão) da previsão de compensação de movimento, um índice de referência, uma diferença de vetor e um índice de previsor de vetor para a decodificação de entropia de acordo com a sintaxe. A de- codificação de entropia é realizada por um método, incluindo codificação de comprimento variável tal como a codificação aritmética, codificação de Huffman ou similares. A unidade de análise de fluxo de bits 201 supre os dados de codificação de erro de previsão para a unidade de decodificação de erro de previsão 202 e supre o sinalizador de mesclagem, o índice de mesclagem, o tipo de interprevisão, o índice de referência, a diferença de vetor e o índice de previsor de vetor para a unidade de reprodução de informações de movimento 204.
[00162] A unidade de análise de fluxo de bits 201 decodifica as informações de partição para um bloco de codificação, um tipo de tamanho de bloco de previsão e um modo de codificação de previsão que são usados no dispositivo de decodificação de foto de movimento 200 do fluxo de bits juntamente com um SPS (Conjunto de Parâmetro de Sequência) que define um grupo de parâmetro para determinar as propriedades do fluxo de bits, um PPS (Conjunto de Parâmetro de Foto) que define um grupo de parâmetro para determinar as propriedades de uma foto, um cabeçalho de fatia que define um grupo de parâmetro para determinar as propriedades de uma fatia e similares.
[00163] A unidade de reprodução de informações de movimento 204 reproduz as informações de movimento do sinalizador de mescla- gem, o índice de mesclagem, o tipo de interprevisão, o índice de referência, a diferença de vetor e o índice de previsor de vetor suprido pela unidade de análise de fluxo de bits 201 e o grupo de bloco candidato suprido pela memória de informações de movimento 207 e supre as informações de movimento para a unidade de compensação de movimento 205 e a memória de informações de movimento 207. A configuração detalhada da unidade de reprodução de informações de movimento 204 será descrita posteriormente.
[00164] A unidade de compensação de movimento 205 realiza a compensação de movimento em uma foto de referência que é indicada por um índice de referência na memória de quadro 206 com base nas informações de movimento supridas pela unidade de reprodução de informações de movimento 204 de modo a gerar um sinal de previsão. Se a direção de previsão for previsão dupla, a unidade de compensa- ção de movimento 205 gera a média de respectivos sinais de previsão para a previsão L0 e a previsão L1 como o sinal de previsão e supre o sinal de previsão para a unidade de adição 203.
[00165] A unidade de decodificação de erro de previsão 202 gera um sinal de erro de previsão realizando um processo tal como a quan- tização inversa, transformação ortogonal inversa ou similares nos dados de codificação de erro de previsão supridos pela unidade de análise de fluxo de bits 201 e supre o sinal de erro de previsão para a unidade de adição 203.
[00166] A unidade de adição 203 adiciona o sinal de erro de previsão suprido pela unidade de decodificação de erro de previsão 202 e o sinal de previsão suprido pela unidade de compensação de movimento 205 de modo a gerar um sinal de foto de decodificação e supre o sinal de foto de decodificação para a memória de quadro 206 e o terminal 31.
[00167] A memória de quadro 206 e a memória de informações de movimento 207 têm as mesmas respectivas funções da memória de quadro 110 e da memória de informações de movimento 111 do dispositivo de codificação de foto de movimento 100, respectivamente. A memória de quadro 206 armazena o sinal de foto de decodificação suprido pela unidade de adição 203. A memória de informações de movimento 207 armazena as informações de movimento supridas pela unidade de reprodução de informações de movimento 204 em unidades dos tamanhos mínimos de bloco de previsão.
[00168] Uma explicação é dada agora em relação à configuração detalhada da unidade de reprodução de informações de movimento 204. A Figura 21 mostra a configuração da unidade de reprodução de informações de movimento 204. A unidade de reprodução de informa- ções de movimento 204 inclui uma unidade de decisão de modo de codificação 210, uma unidade de reprodução de vetor de movimento 211 e uma unidade de reprodução de informações de movimento de mesclagem 212. Um terminal 32, um terminal 33, um terminal 34 e um terminal 36 são conectados à unidade de análise de fluxo de bits 201, à memória de informações de movimento 207, à unidade de compensação de movimento 205 e à memória de informações de movimento 207, respectivamente.
[00169] Uma explicação é dada a seguir em relação à função e à operação de cada componente. A unidade de decisão de modo de codificação 210 determina se o sinalizador de mesclagem suprido pela unidade de análise de fluxo de bits 201 é "0" ou "1". Se o sinalizador de mesclagem for "0", a unidade de decisão de modo de codificação 210 supre o tipo de interprevisão, o índice de referência, a diferença de vetor e o índice de previsor de vetor suprido pela unidade de análise de fluxo de bits 201 para a unidade de reprodução de vetor de mo-vimento 211. Se o sinalizador de mesclagem for "1", a unidade de decisão de modo de codificação 210 supre o índice de mesclagem suprido pela unidade de análise de fluxo de bits 201 para a unidade de reprodução de informações de movimento de mesclagem 212.
[00170] A unidade de reprodução de vetor de movimento 211 reproduz um vetor de movimento do tipo de interprevisão, índice de referência, diferença de vetor e índice de previsor de vetor suprido pela unidade de decisão de modo de codificação 210 e o grupo de bloco candidato suprido pelo terminal 22 de modo a gerar as informações de movimento e supre as informações de movimento para o terminal 34 e o terminal 36.
[00171] A unidade de reprodução de informações de movimento de mesclagem 212 constrói uma lista de candidato de informações de movimento de mesclagem a partir do grupo de bloco candidato suprido pelo terminal 33, seleciona as informações de movimento de um candidato de informações de movimento de mesclagem indicado pelo índice de mesclagem suprido pela unidade de decisão de modo de codificação 210 a partir da lista de candidato de informações de movimento de mesclagem e supre as informações de movimento para o terminal 34 e o terminal 36.
[00172] Uma explicação é dada agora em relação à configuração detalhada da unidade de reprodução de informações de movimento de mesclagem 212. A Figura 22 mostra a configuração da unidade de reprodução de informações de movimento de mesclagem 212. A unidade de reprodução de informações de movimento de mesclagem 212 inclui uma unidade de construção de lista de candidato de informações de movimento de mesclagem 230 e uma unidade de seleção de informações de movimento de mesclagem 231. Um terminal 35 é conectado à unidade de decisão de modo de codificação 210.
[00173] Uma explicação é dada a seguir em relação à função e à operação de cada componente. A unidade de construção de lista de candidato de informações de movimento de mesclagem 230 tem a mesma função que a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 do dispositivo de codificação de foto de movimento 100, constrói uma lista de candidato de informações de movimento de mesclagem pela mesma operação que a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 do dispositivo de codificação de foto de movimento 100 e supre a lista de candidato de informações de movimento de mesclagem para a unidade de seleção de informações de movimento de mesclagem 231.
[00174] A unidade de seleção de informações de movimento de mesclagem 231 seleciona um candidato de informações de movimento de mesclagem indicado pelo índice de mesclagem suprido pelo terminal 35 a partir da lista de candidato de informações de movimento de mesclagem suprida pela unidade de construção de lista de candidato de informações de movimento de mesclagem 230, determina as informações de movimento de mesclagem e supre as informações de mo-vimento das informações de movimento de mesclagem para os terminais 34 e 36.
[00175] Conforme descrito acima, o dispositivo de decodificação de foto de movimento 200 pode gerar uma imagem de reprodução através da decodificação de um fluxo de bits codificado pelo dispositivo de codificação de foto de movimento 100.
[00176] Uma explicação é dada a seguir em relação à segunda modalidade. Um grupo de bloco candidato espacial usado na unidade de geração de candidato de informações de movimento de mesclagem espacial 160 para um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N é diferente deste na primeira modalidade. Uma explicação é dada a seguir em relação a um grupo de bloco candidato espacial de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N na segunda modalidade.
[00177] A Figura 23 é um diagrama que explica uma relação posi- cional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N e um grupo de bloco candidato espacial na segunda modalidade. As Figuras 23A a 23H mostram os res- pectivos grupos de bloco candidato espacial para um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN e um bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, respectivamente. A Figura 23 mostra um exemplo em que um tamanho de bloco de previsão é 16 pixels x 16 pixels. Conforme descrito, em um bloco de previsão incluído em um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N, um grupo de bloco candidato é determinado para cada bloco de previsão com base na posição e no tamanho do bloco de previsão.
[00178] Na figura, adicionalmente ao primeiro exemplo, um bloco que sempre se torna não processado é substituído por um bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. Em outras palavras, no caso de um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N (Figura 23B), um bloco E é alterado para um bloco E de um bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. No caso de um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN (Figura 23D), um bloco C é alterado para um bloco C de um bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. No caso de um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN (Figura 23H), um bloco C e um bloco E são respectivamente alterados para um bloco C e um bloco E dos blocos candidatos de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2N*2N.
[00179] Conforme descrito acima, alterando-se um bloco candidato que sempre se torna não processado para um bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N, o bloco candidato que sempre se torna não processado pode ser alterado para um bloco candidato que tem a possibilidade de se tornar válido. Um aumento nas escolhas de modos de mesclagem aumenta a seletividade dos modos de mesclagens e a eficácia de co-dificação pode, assim, ser melhorada. A eficácia de codificação pode ser melhorada adicionando-se um primeiro candidato de informações de movimento de mesclagem suplementar que tem uma seletividade relativamente maior do que um segundo candidato de informações de movimento de mesclagem suplementar à lista de candidato de informações de movimento de mesclagem através da geração de novas informações de movimento combinando-se as informações de movimento do bloco candidato substituído e as informações de movimento de outro candidato de informações de movimento de mesclagem ou modificando as informações de movimento do bloco candidato substituído. Particularmente, já que pelo menos dois candidatos de informações de movimento de mesclagem são exigidos ao usar um candidato de informações de movimento de mesclagem dupla, as informações de movimento de um bloco candidato substituído opera eficazmente no caso em que há somente um candidato de informações de movimento de mesclagem, diferente do bloco candidato substituído, que é adicionado à lista de candidato de informações de movimento de mes- clagem.
[00180] Na operação da unidade de geração de candidato de informações de movimento de mesclagem espacial 160, a ordem de adição à lista de candidato de informações de movimento de mesclagem é ajustada para ser a ordem de um bloco A, um bloco B, um bloco C, um bloco E e um bloco D. Entretanto, a ordem pode ser alterada conforme segue.
[00181] No caso do bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, a ordem pode ser a ordem de um bloco B, um bloco C, um bloco D, um bloco A e um bloco E. No caso do bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, a ordem pode ser um bloco A, um bloco E, um bloco D, um bloco B e um bloco C. No caso do bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, a ordem pode ser um bloco B, um bloco C, um bloco D, um bloco A, e um bloco E. No caso do bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN, a ordem pode ser um bloco A, um bloco E, um bloco D, um bloco B, e um bloco C. Conforme descrito, adicionando-se os candidatos de informações de movimento de mesclagem à lista de candidato de informações de movimento de mesclagem na ordem de proximidade ao bloco de previsão alvo, a designação de um índice de mes- clagem grande a um bloco próximo ao bloco de previsão alvo pode ser impedida e a eficácia de codificação pode ser melhorada.
[00182] Primeiro, uma explicação é dada em relação a um exemplo em que um bloco candidato de um bloco de previsão em um bloco de codificação é compartilhado sem depender de um tipo de tamanho de bloco de previsão. Um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N, um grupo de bloco candidato espacial e um grupo de bloco candidato temporal são diferentes daqueles na primeira modalidade. Uma explicação é dada a seguir em relação a um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N, um grupo de bloco candidato espacial e um grupo de bloco candidato temporal em um exemplo em que um bloco candidato de um bloco de previsão em um bloco de codificação é compartilhado sem depender de um tipo de tamanho de bloco de previsão. Nesse exemplo, um bloco candidato de um bloco de previsão em um bloco de codificação compartilhado sem depender de um tipo de tamanho de bloco de previsão é usado como um bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N.
[00183] A Figura 24 é um diagrama que explica uma relação posi- cional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco candidato em um exemplo em que um bloco candidato de um bloco de previsão em um bloco de codificação é compartilhado sem depender de um tipo de tamanho de bloco de previsão. Na Figura 24, os blocos candidatos temporais H e I existem em uma foto decodificada que é diferente de uma foto em que os blocos candidatos espaciais A a E existem. Entre-tanto, visando a facilidade do entendimento e explicação, a Figura 24 mostra os blocos candidatos temporais H e I juntamente com os blocos candidatos espaciais A a E. As Figuras 24A a 24H mostram os respectivos grupos de bloco candidato espacial para um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN e um bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, respectivamente. A Figura 24 mos- tra um exemplo em que um tamanho de bloco de previsão é 16 pixels x 16 pixels. Como um grupo de bloco candidato temporal de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N, um grupo de bloco candidato temporal derivado como um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N é usado conforme mostrado na Figura 24.
[00184] Conforme descrito acima, um bloco candidato não depende de um tipo de tamanho de bloco de previsão e é ajustado para ser um bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N. Em outras palavras, sem depender de um tipo de tamanho de bloco de previsão, um bloco candidato obtido quando um tipo de tamanho de bloco de previsão é 2Nx2N é compartilhado em todos os blocos de previsão no bloco de codificação. Em outras palavras, de acordo com as unidades de construção de lista de candidato de informações de movimento de mesclagem 140 e 230, uma lista de candidato de informações de movimento de mesclagem idêntica é construída se um bloco candidato idêntico for usado. Portanto, sem depender de um tipo de tamanho de bloco de previsão, uma lista de candidato de informações de movimento de mesclagem derivada quando um tipo de tamanho de bloco de previsão é 2Nx2N é compartilhada em todos os blocos de previsão no bloco de codificação. Através disso, antes da determinação de um tipo de tamanho de bloco de previsão, um bloco candidato pode ser determinado de modo que uma lista de candidato de informações de movimento de mescla- gem possa ser determinada. No caso em que o bloco de codificação é dividido em uma pluralidade de blocos de previsão, não é mais necessário derivar um bloco candidato para cada bloco de previsão. Assim, o número de vezes que a lista de candidato de informações de movimento de mesclagem mostrada na Figura 11 é construída é reduzido a 1/2 (no caso de divisão em duas partes) ou 1/4 (no caso de divisão em quatro partes). Também, os blocos de previsão do bloco de codificação podem ser processados em paralelo.
[00185] Uma explicação é dada a seguir em relação a outro exemplo da terceira modalidade. Um grupo de bloco candidato espacial e um grupo de bloco candidato temporal usados na unidade de geração de candidato de informações de movimento de mesclagem espacial 160 e na operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 para um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N são diferentes daqueles na primeira modalidade. Uma explicação é dada a seguir em relação a um grupo de bloco candidato espa-cial e um grupo de bloco candidato temporal de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N na terceira modalidade.
[00186] Nesse caso, no caso em que um bloco de previsão é dividido em uma pluralidade de fragmentos, um bloco candidato de um bloco de previsão 0 é usado como um bloco candidato de todos os blocos de previsão no bloco de codificação.
[00187] A Figura 25 é um diagrama que explica uma relação posi- cional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N e um grupo de bloco candidato na terceira modalidade. Na Figura 25, os blocos candidatos temporais H e I existem em uma foto decodificada que é diferente de uma foto em que os blocos candidatos espaciais A a E existem. Entretanto, visando a facilidade do entendimento e explicação, a Figura 25 mostra os blocos candidatos temporais H e I juntamente com os blocos candidatos espaciais A a E. As Figuras 25A a 25H mostram os respectivos grupos de bloco candidato espacial e os respectivos grupos de bloco candidato temporal para um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de N*2N, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN e um bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, respectivamente. A Figura 25 mostra um exemplo em que um tamanho de bloco de previsão é 16 pixels x 16 pixels. Como um grupo de bloco candidato temporal de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N, um grupo de bloco candidato temporal derivado como um bloco de previsão 0 é usado conforme mostrado na Figura 25.
[00188] Uma explicação é dada agora da operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140. A Figura 26 é um fluxograma que explica a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a terceira modalidade. A adição da etapa S106 e da etapa S107 é diferente da Figura 11 que mostra a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a primeira modalidade. Uma explicação é dada em relação à etapa S106 e à etapa S107, que são diferentes da primeira modalidade. A unidade de construção de lista de candidato de informações de movimento de mesclagem 140 verifica se o bloco de previsão alvo é um bloco de previsão 0 (S106). Se o bloco de previsão alvo é um bloco de previsão 0 (S em S106), a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 realiza os processos da etapa S100 a S105 e finaliza o processo. Se o bloco de previsão alvo não for um bloco de previsão 0 (N em S106), a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 usa a lista de candidato de informações de movimento de mesclagem do bloco de previsão 0 como a lista de candidato de informações de movimento de mesclagem do bloco de previsão alvo (S107) e finaliza o processo.
[00189] Conforme descrito acima, usando-se um bloco candidato de um bloco de previsão 0 como um bloco candidato de todos os blocos de previsão no bloco de codificação no caso em que o bloco de codificação é dividido em uma pluralidade de blocos de previsão, não é mais necessário construir uma lista de candidato de informações de movimento de mesclagem de um bloco de previsão diferente do bloco de previsão 0. Assim, o número de vezes que a lista de candidato de informações de movimento de mesclagem mostrada na Figura 11 é construída é reduzido para 1/2 (no caso da divisão em duas partes) ou 1/4 (no caso da divisão em quatro partes). Em outras palavras, uma lista de candidato de informações de movimento de mesclagem derivado no bloco de previsão 0 pode ser também compartilhada em qualquer um dos blocos de previsão do bloco de codificação. Também, já que a lista de candidato de informações de movimento de mesclagem pode ser construída antes da posição de um bloco de previsão ser determinada se o tipo de tamanho de bloco de previsão for determinado, um projeto de circuito e um projeto de software podem se tornar flexíveis e um tamanho de circuito e um tamanho de software podem ser reduzidos. Também, os blocos de previsão do bloco de codificação podem ser processados em paralelo.
[00190] Ademais, ajustando-se a posição de um bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N para ser a posição de um bloco candidato diferente daquelas de um bloco de previsão que tem um tipo de tama nho de bloco de previsão de 2N*2N, a probabilidade de seleção de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N pode ser aumentada e a eficácia de codificação pode ser mais melhorada em comparação ao exemplo em que um bloco candidato de um bloco de previsão em um bloco de codificação é compartilhado sem depender de um tipo de tamanho de bloco de previsão. Ademais, já que o bloco de previsão 0 não inclui um bloco candidato incluído em outro bloco de previsão no mesmo bloco de codificação ou um bloco candidato que sempre se tornar não processado, a probabilidade de um candidato de informações de movimento de mesclagem se tornar válido pode ser aumentada e a eficácia de previsão pode, assim, ser melhorada. Já que o modo de salto no qual a eficácia de codificação pé a maior é equivalente a um tipo de tamanho de bloco de previsão de 2N*2N, não há efeito causado pela presente modalidade.
[00191] Na terceira modalidade, como um bloco representativo de um bloco de codificação, um bloco de previsão 0, que é o primeiro bloco de previsão no bloco de codificação, é usado. Entretanto, o bloco representativo não é limitado a isso. Por exemplo, um bloco de previsão que usa um modo de mesclagem primeiro no bloco de codificação pode ser também usado. Nesse caso, S106 e S107 são conforme mostrado a seguir. É verificado se uma lista de candidato de informações de movimento de mesclagem já foi construída no bloco de codifi-cação (S106). Se uma lista de candidato de informações de movimento de mesclagem não tiver sido construída ainda no bloco de codificação (S em S106), os processos da etapa S100 a S105 são realizados e o processo é finalizado. Se uma lista de candidato de informações de movimento de mesclagem já tiver sido construída no bloco de codificação (N em S106), a lista de candidato de informações de movimento de mesclagem já construída no bloco de codificação é usada (S107) e o processo é finalizado.
[00192] Conforme descrito acima, usando-se uma lista de candidato de informações de movimento de mesclagem de um bloco de previsão que usa um modo de mesclagem primeiro no bloco de codificação também em outro bloco de previsão no bloco de codificação, pelo menos a eficácia de previsão de um bloco de previsão que usa um modo de mesclagem primeiro pode ser melhorada. Também, como um bloco representativo do bloco de codificação, o último bloco de previsão (um bloco de previsão 1 no caso da divisão em duas partes e um bloco de previsão 3 no caso da divisão em quatro partes) no bloco de codificação pode também ser usado. Nesse caso, ajustando-se a posição de um grupo de bloco candidato temporal para ser a posição de um bloco candidato diferente daquelas de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2N*2N, a probabilidade de seleção de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N pode ser aumentada e a eficácia de previsão pode ser melhorada.
[00193] Também, como na segunda modalidade, a adição à lista de candidato de informações de movimento de mesclagem pode ser na ordem de proximidade a um bloco de previsão alvo.
[00194] Uma explicação é dada a seguir em relação a uma primeira variação exemplificativa da terceira modalidade. A limitação de um grupo de bloco candidato temporal por uma linha limite inferior de bloco de codificação máximo é diferente da terceira modalidade. Uma explicação é dada em relação à limitação de um grupo de bloco candidato temporal por uma linha limite inferior de bloco de codificação máximo. A Figura 27 é um diagrama que explica uma linha limite inferior de bloco de codificação máximo e um grupo de bloco candidato temporal. Conforme mostrado na Figura 27, uma linha limite inferior de bloco de codificação máximo é uma linha em que os pixels da parte mais inferior de um bloco de codificação máximo são incluídos. Impondo-se uma limitação tal como um bloco localizado abaixo da linha limite inferior de bloco de codificação máximo, a capacidade de uma área de armazenamento temporário para um grupo de bloco candidato temporal pode ser reduzida no dispositivo de codificação de foto de movimento 100 e no dispositivo de decodificação de foto de movimento 200.
[00195] Se uma relação posicional que é a mesma que aquela de um bloco de previsão de uma bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N for aplicada a um bloco de previsão em um bloco de codificação que não tem um tipo de tamanho de bloco de previsão de 2Nx2N, a posição de um bloco candidato temporal (H1) de um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, que está em contato com a linha limite inferior de bloco de codificação máximo mostrada em 27, não pode ser usada no caso em que a linha limite inferior de bloco de codificação máximo é fornecida.
[00196] Entretanto, como na terceira modalidade, com o uso de, quando um bloco de previsão é dividido em uma pluralidade de blocos, um bloco candidato de um bloco de previsão 0 como um bloco candidato de todos os blocos de previsão no bloco de codificação, um bloco candidato temporal (H0) é usado como um grupo de bloco candidato temporal. Assim, o bloco candidato temporal pode ser tornado válido e a eficácia de previsão pode, assim, ser melhorada. Isso também se aplica a um bloco de previsão 2 e um bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN.
[00197] Uma explicação é dada a seguir em relação a uma quarta modalidade. Um grupo de bloco candidato espacial e um grupo de blo- co candidato temporal de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e a configuração e a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 são diferentes daquelas na primeira modalidade. Uma explicação é dada a seguir em relação a um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N, um grupo de bloco candidato espacial e um grupo de bloco candidato temporal na quarta modalidade.
[00198] Nesse caso, presume-se que uma relação posicional que é a mesma que aquela de um bloco de previsão de um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N seja aplicada no grupo de bloco candidato espacial. Como o grupo de bloco candidato temporal, um grupo de bloco candidato temporal derivado como o bloco de previsão 0 é usado.
[00199] A Figura 28 é um diagrama que explica uma relação posi- cional entre um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N e um grupo de bloco candidato na quarta modalidade. Na Figura 28, os blocos candidatos temporais H e I existem em uma foto decodificada que é diferente de uma foto em que os blocos candidatos espaciais A a E existem. Entretanto, visando a facilidade do entendimento e explicação, a Figura 28 mostra os blocos candidatos temporais H e I juntamente com os blocos candidatos espaciais A a E. As Figuras 28A a 28H mostram os respectivos grupos de bloco candidato espacial para um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de Nx2N, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de 2NxN, um bloco de previsão 0 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 1 que tem um tipo de tamanho de bloco de previsão de NxN, um bloco de previsão 2 que tem um tipo de tamanho de bloco de previsão de NxN e um bloco de previsão 3 que tem um tipo de tamanho de bloco de previsão de NxN, respectivamente. A Figura 28 mostra um exemplo em que um tamanho de bloco de previsão é 16 pixels x 16 pixels. Como um grupo de bloco candidato temporal de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2Nx2N, um grupo de bloco candidato temporal derivado como bloco de previsão 0 é usado conforme mostrado na Figura 28. Indubitavelmente, como um grupo de bloco candidato temporal de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente 2Nx2N, um grupo de bloco candidato temporal derivado como um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2Nx2N pode ser também usado.
[00200] Uma explicação é dada agora da configuração e operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140. A Figura 29 é um fluxograma que explica a configuração da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a quarta modalidade. A posição da unidade de geração de candidato de informações de movimento de mesclagem temporal 161 fornecida em um estágio seguindo a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 é diferente desta na primeira modalidade. A Figura 30 é um fluxograma que explica a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a quarta modalidade. A adição da etapa S106 e da etapa S108 e a posição da etapa S102 são diferentes da Figura 11 que mostra a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a primeira modalidade. Uma explica- ção é dada em relação às diferenças da primeira modalidade.
[00201] A unidade de geração de candidato de informações de movimento de mesclagem espacial 160 gera candidatos de informações de movimento de mesclagem espaciais, tanto quanto zero ao número máximo de candidatos de informações de movimento de mesclagem espaciais, a partir do grupo de bloco candidato suprido pelo terminal 12 de modo a adicionar os candidatos de informações de movimento de mesclagem espaciais gerados à lista de candidato de informações de movimento de mesclagem (S101) e supre a lista de candidato de informações de movimento de mesclagem e o grupo de bloco candidato à unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162.
[00202] A unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162 examina, então, os candidatos de informações de movimento de mesclagem adicionados na lista de candidato de informações de movimento de mesclagem suprida pela unidade de geração de candidato de informações de movimento de mesclagem espacial 160, deixa, se houver uma pluralidade de candidatos de informações de movimento de mesclagem que têm as mesmas informações de movimento, um dentre a pluralidade de candidatos de informações de movimento de mesclagem enquanto apaga o resto dos candidatos de informações de movimento de mesclagem (S103) e supre a lista de candidato de informações de movimento de mesclagem para a primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163.
[00203] A primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163, então, gera zero a dois primeiros candidatos de informações de movimento de mesclagem suplementares a partir dos candidatos de informações de movimento de mesclagem adicionados à lista de candidato de informações de movi- mento de mesclagem suprida pela unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162 de modo a adicionar os primeiros candidatos de informações de movimento de mesclagem suplementares à lista de candidato de informações de movimento de mesclagem (S104) e supre a lista de candidato de informações de movimento de mesclagem e o grupo de bloco candidato à unidade de geração de candidato de informações de movimento de mesclagem temporal 161.
[00204] A seguir, a unidade de geração de candidato de informa-ções de movimento de mesclagem temporal 161 verifica se o bloco de previsão alvo é um bloco de previsão 0 (S106). Se o bloco de previsão alvo for um bloco de previsão 0 (S em S106), a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 gera candidatos de informações de movimento de mesclagem temporal, tanto quanto zero ao número máximo de candidatos de informações de movimento de mesclagem temporal, a partir do grupo de bloco candidato suprido pela unidade de apagamento de candidato de infor-mações de movimento de mesclagem redundante 162 de modo a adicionar os candidatos de informações de movimento de mesclagem temporal gerados à lista de candidato de informações de movimento de mesclagem suprida pela unidade de apagamento de candidato de informações de movimento de mesclagem redundante 162 (S102) e supre a lista de candidato de informações de movimento de mescla- gem para a segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164. Se o bloco de previsão alvo não for um bloco de previsão 0 (N em S106), a unidade de geração de candidato de informações de movimento de mesclagem temporal 161 adiciona um candidato de informações de movimento de mesclagem temporal de um bloco candidato 0 à lista de candidato de informações de movimento de mesclagem (S108) e supre a lista de candidato de informações de movimento de mesclagem para a segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164.
[00205] A segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164, então, continua gerando segundos candidatos de informações de movimento de mesclagem suplementares até o número de candidatos de informações de movimento de mesclagem adicionados à lista de candidato de informações de movimento de mesclagem suprida pela unidade de geração de candidato de informações de movimento de mesclagem temporal 161 alcançar o número máximo de candidatos de mesclagem de modo a adicionar os segundos candidatos de informações de movimento de mesclagem suplementares à lista de candidato de informações de movimento de mesclagem (S105) e supre a lista de candidato de informações de movimento de mesclagem para o terminal 19.
[00206] Conforme descrito acima, ajustando-se um grupo de bloco candidato espacial de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N para ser um no qual uma relação posicional que é a mesma que aquela de um bloco de previsão de um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2N*2N é aplicada e ajustando um grupo de bloco candidato temporal para ser um grupo de bloco candidato temporal de um bloco de previsão 0, o grupo de bloco candidato temporal pode ser de-terminado mediante a determinação do tipo de tamanho de bloco de previsão. Em outras palavras, um candidato de informações de movimento de mesclagem temporal derivado no bloco de previsão 0 pode ser também compartilhado em qualquer um dos blocos de previsão do bloco de codificação. Por outro lado, o grupo de bloco candidato espacial é determinado para cada bloco de previsão com base na posição e no tamanho do bloco de previsão. Já que as informações de movimen- to de um bloco candidato são usadas diretamente para a derivação de um candidato de informações de movimento de mesclagem espacial, uma operação aritmética é desnecessária e o tempo de processamento é, assim, curto. Entretanto, já que um processo de calcular um vetor tal como aqueles na Expressão 1 ou na Expressão 2 a Expressão 4 é necessário para a derivação de um candidato de informações de mo-vimento de mesclagem temporal e já que há um processo para determinar um tipo de interprevisão, o tempo de processamento se tornar mais longo.
[00207] Assim, ajustando-se a derivação de um candidato de informações de movimento de mesclagem temporal que exige que o tempo de processamento mais longo em um processo para construir a lista de candidato de informações de movimento de mesclagem seja realizado uma vez em um bloco de codificação, o tempo de processamento exigido quando um bloco de previsão é dividido em uma pluralidade de blocos pode ser encurtado.
[00208] Ademais, usando-se um bloco vizinho ao bloco de previsão alvo como um candidato de informações de movimento de mesclagem espacial, a probabilidade de seleção de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N pode ser aumentada e a eficácia de codificação pode ser mais melhorada em comparação ao exemplo em que um bloco candidato de um bloco de previsão em um bloco de codificação é compartilhado sem depender de um tipo de tamanho de bloco de previsão. Também, já que os blocos representativos em uma área predeterminada de um ColPic são usados como o grupo de bloco candidato temporal, a precisão do grupo de bloco candidato temporal se torna relativamente baixa em comparação ao grupo de bloco candidato espacial e uma diminuição na eficácia de previsão pode ser impedida mesmo quando a precisão do grupo de bloco candidato temporal é diminuída.
[00209] Nesse caso, o tempo usado para derivar um candidato de informações de movimento de mesclagem temporal é suficientemente mais longo do que a derivação de um candidato de informações de movimento de mesclagem espacial, a operação da unidade de apa- gamento de candidato de informações de movimento de mesclagem redundante 162 e a operação da primeira unidade de suprimento de candidato de informações de movimento de mesclagem 163 e a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 é ajustado conforme mostrado na Figura 30. Alternativamente, por exemplo, S106, S102 e S108 podem ser movidos em um estágio que segue S101 ou S103 dando prioridade à eficácia de previsão ou podem ser fornecidos em um estágio que segue S105 dando prioridade à eficácia de processamento. No caso de fornecer S106, S102 e S108 em um estágio que segue S105, o número de candidatos de informações de movimento de mesclagem adicionado à lista de candidato de informações de movimento de mes- clagem emitida a partir da segunda unidade de suprimento de candidato de informações de movimento de mesclagem 164 é ajustado para ser um número que é menor do que o número máximo de candidatos de mesclagem por um.
[00210] Nesse caso, com foco na eficácia de previsão, uma relação posicional que é a mesma que aquela de um bloco de previsão de um bloco de codificação que tem um tipo de tamanho de bloco de previsão de 2Nx2N seja aplicada no grupo de bloco candidato espacial. Entretanto, a fim de alcançar o processamento paralelo de um bloco de previsão no bloco de codificação, um bloco candidato incluído em outro bloco de previsão no mesmo bloco de codificação pode ser ajustado de modo que o bloco candidato não seja usado como um bloco candidato. Alternativamente, como o grupo de bloco candidato temporal, um grupo de bloco candidato temporal derivado como um bloco de previ são 0 pode ser usado combinando-se o grupo de bloco candidato espacial com aqueles de outras modalidades.
[00211] Também, nesse caso, um grupo de bloco candidato temporal de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N é ajustado para ser um grupo de bloco candidato temporal derivado em um bloco de previsão 0, que é o primeiro bloco de previsão no bloco de codificação. Entretanto, o grupo de bloco candidato temporal não é limitado a isso. Por exemplo, o grupo de bloco candidato temporal pode ser um grupo de bloco candidato temporal de um bloco de previsão obtido quando o tipo de tamanho de bloco de previsão é 2N*2N ou pode ser um grupo de bloco candidato temporal do último bloco de previsão (um bloco de previsão 1 no caso da divisão em duas partes e um bloco de previsão 3 no caso da divisão em quatro partes) no bloco de codificação. Se o grupo de bloco candidato temporal for ajustado para ser um grupo de bloco candidato temporal de um bloco de previsão obtido quando o tipo de tamanho de bloco de previsão é 2N*2N, o grupo de bloco candidato temporal pode ser gerado antes do tipo de tamanho de bloco de previsão e da posição de um bloco de previsão serem determinados. Portanto, um projeto de circuito e um projeto de software podem se tornar flexíveis e um tamanho de circuito e um tamanho de software podem ser reduzidos.
[00212] Uma explicação é dada a seguir em relação a uma quinta modalidade. A partir da primeira modalidade, a configuração e a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 são diferentes e a operação da unidade de geração de fluxo de bits 104 e a operação da unidade de análise de fluxo de bits 201 são também diferentes.
[00213] Primeiro, uma explicação é dada da configuração da unidade de construção de lista de candidato de informações de movimento de mesclagem 140. A Figura 31 é um diagrama que explica a configuração da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a quinta modalidade. A partir da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a primeira modalidade mostrada na Figura 10, a adição de uma unidade de ajuste de bloco candidato 165 em um estágio que precede uma unidade de geração de candidato de informações de movimento de mesclagem espacial 160 é diferente. Nesse caso, se a colocação de bloco candidato que dá prioridade à eficácia de previsão é usada ou a colocação bloco candidato que dá prioridade à eficácia de processamento tal como o processamento paralelo ou redução no tempo de processamento é usada é comutado por um sinalizador ou similar.
[00214] Uma explicação é dada agora da operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140. A Figura 32 é um fluxograma que explica a operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a quinta modalidade. A adição da etapa S106 à etapa S108 em um estágio que precede a etapa S100 é diferente da operação da unidade de construção de lista de candidato de informações de movimento de mesclagem 140 de acordo com a primeira modalidade. Uma explicação é dada em relação à etapa S106 à etapa S108. Primeiro, a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 determina se cu_dependent_flag é 1 (S106). Se cu_dependent_flag for 1 (S em S106), a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 emprega a colocação de bloco que dá prioridade à eficácia de previsão (S107). A colocação de bloco que dá prioridade à eficácia de previsão é, por exemplo, a colocação de bloco que consiste em somente blocos candidatos vizinhos a um bloco de previsão alvo tal como o bloco mostrado na Figura 12 em que uma relação posicional que é a mesma que aquela de um bloco de previsão que tem um tipo de tamanho de bloco de previsão de 2N*2N é aplicada a um grupo de bloco candidato de um bloco de previsão que tem um tipo de tamanho de bloco de previsão diferente de 2N*2N. Se cu_dependent_flag for 0 (N em S106), a unidade de construção de lista de candidato de informações de movimento de mesclagem 140 emprega a colocação de bloco que dá prioridade à eficácia de proces-samento (S108). A colocação de bloco que dá prioridade à eficácia de processamento é, por exemplo, a colocação de bloco, incluindo blocos candidatos que não são vizinhos ao bloco de previsão alvo tais como aqueles mostrados na Figura 14, na Figura 23, na Figura 24, na Figura 25 e na Figura 28. Seguindo a etapa S107 e a etapa S108, os processos na e após a etapa S100 são realizados. Nesse caso, na presente modalidade, por exemplo, com base na colocação de bloco que dá prioridade à eficácia de previsão tal como a mostrada na Figura 12, a determinação de um grupo de bloco candidato e a construção de uma lista de candidato de informações de movimento de mesclagem são realizadas para cada bloco de previsão de um bloco de codificação com base na posição e no tamanho do mesmo. Alternativamente, por exemplo, com base na colocação de bloco que dá prioridade à eficácia de processamento tal como a mostrada na Figura 25, construir ou não uma lista de candidato de informações de movimento de mesclagem a partir de um bloco candidato compartilhada em todos os blocos de previsão de um bloco de codificação é comutado.
[00215] No dispositivo de codificação de foto de movimento 100, se enable_cu_parallel_flag é 0 ou 1 é ajustado a um nível maior do que o dispositivo de codificação de foto de movimento 100. Nesse caso, a operação mostrada na Figura 32 é realizada pela unidade de construção de lista de candidato de informações de movimento de mesclagem 140. Entretanto, a operação pode ser ajustada a um nível maior do que o dispositivo de codificação de foto de movimento 100.
[00216] A unidade de geração de fluxo de bits 104 multiplexa cu_dependent_flag a uma posição diferente desta de um bloco de codificação tal como a posição de um SPS, um PPS, um cabeçalho de fatia ou similares. A unidade de análise de fluxo de bits 201 decodifica cu_dependent_flag multiplexado em uma posição diferente desta de um bloco de codificação tal como a posição de um SPS, um PPS, um cabeçalho de fatia ou similares e supre o cu_dependent_flag decodificado para a unidade de reprodução de informações de movimento 204.
[00217] Multiplexando-se cu_dependent_flag em um fluxo de bits, se o fluxo de bits é um fluxo de bits que dá prioridade à eficácia de previsão pode ser determinado facilmente. Também, um fluxo de bits pela colocação de bloco que dá prioridade à eficácia de previsão e um fluxo de bits pela colocação de bloco que dá prioridade à eficácia de processamento podem ser decodificados em um dispositivo de decodi- ficação comum. Para um dispositivo de decodificação que decodifica somente cu_dependent_flag de 0 ou 1, um fluxo de bits pode ser de-codificado corretamente, por exemplo, gerando-se um fluxo de bits enquanto fixa a cu_dependent_flag para ser ou 0 ou 1 por regulamentos de aplicação, um perfil que classifica as ferramentas de codificação tal como MPEG-4AVC ou similares e ignorando cu_dependent_flag ou ajustando cu_dependent_flag implicitamente. Também, multiplexando- se cu_dependent_flag a um cabeçalho maior do que o bloco de codificação, a operação mostrada na Figura 32 pode ser reduzida.
[00218] Nesse caso, a colocação de bloco que dá prioridade à eficácia de previsão e a colocação de bloco que dá prioridade à eficácia de processamento são comutadas por cu_dependent_flag. Entretanto, por exemplo, o seguinte pode também ser possível. A colocação de bloco que dá prioridade à eficácia de processamento é usada quando o número de ocorrências de divisão é maior ou igual a um número predeterminado de vezes. A colocação de bloco que dá prioridade à eficácia de previsão é usada quando o bloco de codificação não é maior ou igual a um tamanho limiar predeterminado. A colocação de bloco que dá prioridade à eficácia de processamento é usada quando o bloco de codificação é menor ou igual a um tamanho limiar prede-terminado. A colocação de bloco que dá prioridade à eficácia de previsão é usada quando o bloco de codificação não é maior ou igual ao tamanho limiar predeterminado. Também, ajustar o tamanho limiar predeterminado para ser 8x8, que é o tamanho de bloco de codificação mínimo, permite a aplicação somente quando o rendimento é aumentado ao máximo e o rendimento e a eficácia de previsão podem, assim, ser equilibrados de um modo ótimo. Nesse caso, se o bloco de codificação é o tamanho limiar predeterminado é determinado na etapa S108. Usando-se a colocação de bloco que dá prioridade à eficácia de processamento quando o número de ocorrências de divisão do bloco de codificação é maior ou igual ao número predeterminado de vezes (ou menor ou igual ao tamanho limiar predeterminado) no bloco de codificação e usando-se a colocação de bloco que dá prioridade à eficácia de previsão quando o número de ocorrências de divisão do bloco de codificação não é maior ou igual ao número predeterminado de vezes (ou menor ou igual ao tamanho limiar predeterminado) no bloco de codificação, a eficácia de previsão e o rendimento podem ser facilmente ajustados. O tamanho limiar predeterminado e o número predeterminado de vezes podem também ser multiplexados em uma posição diferente desta do bloco de codificação tal como a posição de um SPS, um PPS, um cabeçalho de fatia ou similares. Usando-se ena- ble_cu_parallel_flag significando que o tamanho limiar predeterminado ou o número predeterminado de vezes é definido quando ena- ble_cu_parallel_flag é 1 e o tamanho limiar predeterminado ou o número predeterminado de vezes não é definido quando ena- ble_cu_parallel_flag é 0 de modo a realizar a multiplexação em um fluxo de bits, o rendimento e a eficácia de previsão podem ser ajustados mais flexivelmente. Em outras palavras, a colocação de bloco que dá prioridade à eficácia de previsão é sempre usada independentemente do tamanho limiar predeterminado ou do número predeterminado de vezes ajustando-se enable_cu_parallel_flag para ser 0 e o rendimento e a eficácia de previsão podem ser equilibrados comutando-se a eficácia de previsão e a eficácia de processamento de acordo com o tamanho limiar predeterminado ou o número predeterminado de vezes ajustando-se enable_cu_parallel_flag para ser 1.
[00219] Uma explicação é dada a seguir em relação a uma sexta modalidade. Uma explicação detalhada é dada em relação à configuração da unidade de determinação de modo de previsor de vetor 120 e a operação da unidade de reprodução de vetor de movimento 211 do dispositivo de codificação de foto de movimento 100 de acordo com a terceira modalidade. Uma explicação é dada a seguir em relação à configuração detalhada da unidade de determinação de modo de previsor de vetor 120.
[00220] Subsequentemente, uma explicação é dada em relação à configuração detalhada da unidade de determinação de modo de previsor de vetor 120. A Figura 33 mostra a configuração da unidade de determinação de modo de previsor de vetor 120. A unidade de determinação de modo de previsor de vetor 120 inclui uma unidade de construção de lista de candidato de previsor de vetor 130 e uma unidade de determinação de previsor de vetor 131. Um terminal 17 é co- nectado à unidade de determinação de modo de codificação de previsão 122.
[00221] A unidade de construção de lista de candidato de previsor de vetor 130 é também fornecida do mesmo modo na unidade de reprodução de vetor de movimento 211 dentro do dispositivo de decodifi- cação de foto de movimento 200 que decodifica um fluxo de bits gerado por um dispositivo de codificação de foto de movimento 100 de acordo com a sexta modalidade e uma lista de candidato previsor de vetor idêntica é construída cada uma no dispositivo de codificação de foto de movimento 100 e no dispositivo de decodificação de foto de movimento 200.
[00222] Uma explicação é dada a seguir em relação à operação da unidade de determinação de modo de previsor de vetor 120.
[00223] Primeiro, os processos a seguir são realizados para a previsão L0. A seguir, x representa 0. A unidade de construção de lista de candidato de previsor de vetor 130 deriva um índice de referência da previsão LX suprido pelo terminal 13. A unidade de construção de lista de candidato de previsor de vetor 130 constrói uma lista de candidato de estimador de vetor da previsão LX, incluindo os candidatos de es- timador de vetor do número máximo dos candidatos de estimador de vetor do grupo de bloco candidato suprido pelo terminal 12 e o índice de referência da previsão LX. A unidade de construção de lista de candidato de estimador de vetor 130 supre a lista de candidato de estima- dor de vetor da previsão LX para a unidade de determinação de esti- mador de vetor 131.
[00224] A unidade de determinação de estimador de vetor 131 seleciona um candidato de estimador de vetor a partir da lista de candidato de estimador de vetor da previsão LX suprida pela unidade de cons- trução de lista de candidato de estimador de vetor 130 e determina um índice de estimador de vetor da previsão LX.
[00225] A unidade de determinação de estimador de vetor 131 calcula uma diferença de vetor da previsão LX subtraindo-se o estimador de vetor da previsão LX do vetor de movimento da previsão LX suprida pelo terminal 13 e emite a diferença de vetor da previsão LX e o índice de estimador de vetor da previsão LX.
[00226] A unidade de determinação de estimador de vetor 131 calcula uma quantidade de erro de previsão do sinal de foto suprido pelo terminal 15 e de um sinal de previsão da previsão LX obtido realizando-se a previsão de compensação de movimento na foto de referência suprida pelo terminal 14 com base no vetor de movimento da previsão LX e no índice de referência da previsão LX suprida pelo terminal 13 e calcula um valor de avaliação de distorção de taxa de Pred_LX da quantidade de erro de previsão e da quantidade de codificação da diferença de vetor da previsão LX, índice de referência da previsão LX e índice de estimador de vetor da previsão LX.
[00227] Então, um processo que é mesmo que este para a previsão L0 é realizada para a previsão L1 enquanto ajusta X para ser 1.
[00228] Subsequentemente, a unidade de determinação de estima- dor de vetor 131 calcula uma quantidade de erro de previsão do sinal de foto suprido pelo terminal 15 e de um sinal de previsão da previsão BI obtida calculando-se a média do sinal de previsão da previsão L0 e do sinal de previsão da previsão L1 e calcula um valor de avaliação de distorção de taxa de Pred_BI da quantidade de erro de previsão e da quantidade de codificação das respectivas diferenças de vetor da previsão L0 e da previsão L1, os respectivos índices de referência da pre-visão L0 e da previsão L1 e dos índices de estimador de vetor da previsão L0 e da previsão L1.
[00229] A unidade de determinação de estimador de vetor 131 compara o valor de avaliação de distorção de taxa de Pred_L0, o valor de avaliação de distorção de taxa de Pred_L1 e o valor de avaliação de distorção de taxa de Pred_BI e seleciona um modo de codificação de previsão com o menor valor de avaliação de distorção de taxa. A unidade de determinação de estimador de vetor 131 supre, então, as informações de movimento, as diferenças de vetor, os índices de esti- mador de vetor e o valor de avaliação de distorção de taxa com base no modo de codificação de previsão para a unidade de determinação de modo de codificação de previsão 122. Se o modo de codificação de previsão for Pred_L0, o vetor de movimento da previsão L1 se torna (0,0) e o índice de referência da previsão L1 se torna "-1". Se o modo de codificação de previsão for Pred_L1, o vetor de movimento da previsão L0 se torna (0,0) e o índice de referência da previsão L0 se torna "-1".
[00230] Uma explicação é, então dada da configuração detalhada da unidade de construção de lista de candidato de estimador de vetor 130. A Figura 34 é um diagrama para explicar a configuração da unidade de construção de lista de candidato de estimador de vetor 130. Um terminal 18 é conectado à unidade de determinação de estimador de vetor 131. A unidade de construção de lista de candidato de esti- mador de vetor 130 inclui uma unidade de geração de candidato de estimador de vetor espacial 150, uma unidade de geração de candidato de estimador de vetor temporal 151, uma unidade de apagamento de candidato de estimador de vetor redundante 152 e uma unidade de suprimento de candidato de estimador de vetor 153.
[00231] Uma explicação é dada a seguir em relação à função e à operação de cada componente. A unidade de construção de lista de candidato de estimador de vetor 130 constrói uma lista de candidato de estimador de vetor da previsão L0 e uma lista de candidato de es- timador de vetor da previsão L1, conforme necessário. Uma explicação é dada a seguir com o uso da previsão LX. X é 0 ou 1. A Figura 35 é um fluxograma para explicar a operação da unidade de construção de lista de candidato de estimador de vetor 130.
[00232] Primeiro, a unidade de construção de lista de candidato de estimador de vetor 130 inicializa uma lista de candidato de estimador de vetor da previsão LX (S200). Não há nenhum candidato de estima- dor de vetor na lista de candidato de estimador de vetor inicializada da previsão LX.
[00233] A unidade de construção de lista de candidato de estimador de vetor 130 separa os blocos candidatos incluídos no grupo de bloco candidato espacial suprido pelo terminal 12 em dois grupos: um bloco E e um bloco A que formam um primeiro grupo; e um bloco C, um bloco B e um bloco D que formam um segundo grupo e repete os processos a seguir na ordem do primeiro grupo para o segundo grupo (S201 a S203).
[00234] Nesse caso, em relação ao grupo de bloco candidato suprido pelo terminal 12, o mesmo grupo de bloco candidato que no modo de mesclagem é usado para um grupo de bloco candidato de 2N*2N e um grupo de bloco candidato na qual uma relação posicional que é a mesma que aquela de 2N*2N é aplicada é usado para um grupo de bloco candidato diferente de 2N*2N. Conforme a explicação é dada na suposição de que o índice de referência da previsão LX suprida pelo terminal 13, o grupo de bloco candidato suprido pelo terminal 12 e a lista de candidato de estimador de vetor da previsão LX são comparti-lhados dentro da unidade de construção de lista de candidato de esti- mador de vetor 130.
[00235] A unidade de geração de candidato de estimador de vetor espacial 150 gera zero ou um candidato de estimador de vetor espacial da previsão LX a partir do grupo de bloco candidato de um i-ésimo grupo (i é 1 ou 2), adiciona o candidato de estimador de vetor espacial da previsão LX à lista de candidato de estimador de vetor da previsão LX (S202) e supre a lista de candidato de estimador de vetor da previsão LX e o grupo de bloco candidato para a unidade de geração de candidato de estimador de vetor temporal 151.
[00236] Uma explicação é dada agora em relação a um método específico para derivar o candidato de estimador de vetor espacial. Os processos a seguir são repetidos para o primeiro grupo e para o segundo grupo. A unidade de geração de candidato de estimador de vetor espacial 150 verifica o bloco E e o bloco A em ordem como os blocos candidatos no primeiro grupo e verifica o bloco C, o bloco B e o bloco D em ordem como os blocos candidatos no segundo grupo.
[00237] Os processos a seguir são realizados para cada bloco candidato a ordem da previsão L0 e da previsão L1. Doravante, uma explicação é dada em relação à previsão L0 e à previsão L1 como a previsão LN.
[00238] A unidade de geração de candidato de estimador de vetor espacial 150 verifica se uma foto de referência indicada por um índice de referência da previsão LN do bloco candidato é a mesma que uma foto de referência indicada pelo índice de referência da previsão LX suprida pelo terminal 13.
[00239] Se a foto de referência indicada pelo índice de referência da previsão LN do bloco candidato for a mesma que a foto de referência indicada pelo índice de referência da previsão LX suprida pelo terminal 13, a unidade de geração de candidato de estimador de vetor espacial 150 finaliza o processo em relação a um vetor de movimento da previsão LN do bloco candidato como o candidato de estimador de vetor espacial.
[00240] Se a foto de referência indicada pelo índice de referência da previsão LN do bloco candidato não for a mesma que a foto de referência indicada pelo índice de referência da previsão LX suprida pelo terminal 13, a unidade de geração de candidato de estimador de vetor espacial 150 verifica a previsão LN subsequente ou um bloco candidato subsequente.
[00241] A unidade de geração de candidato de estimador de vetor espacial 150 finaliza o processo a verificação é concluída para todos os blocos candidatos.
[00242] Conforme descrito acima, zero ou um candidato de estima- dor de vetor espacial é derivado a partir de cada um dos grupos e zero a dois candidatos de estimador de vetor espacial são derivados para a previsão LX.
[00243] Subsequentemente, a unidade de geração de candidato de estimador de vetor espacial 151 gera zero ou um candidato de estima- dor de vetor temporal da previsão LX a partir do grupo de bloco candidato temporal, adiciona o candidato de estimador de vetor temporal da previsão LX à lista de candidato de estimador de vetor da previsão LX (S204) e supre a lista de candidato de estimador de vetor da previsão LX e o grupo de bloco candidato para a unidade de suprimento de candidato de estimador de vetor 153.
[00244] Uma explicação é dada agora em relação a um método específico para derivar o candidato de estimador de vetor temporal. A unidade de geração de candidato de estimador de vetor temporal 151 verifica na ordem do bloco H e do bloco I em relação ao grupo de bloco candidato temporal como blocos candidatos. Os processos a seguir são realizados para cada bloco candidato a ordem da previsão L0 e da previsão L1. Doravante, uma explicação é dada em relação à previsão L0 e à previsão L1 como a previsão LN. A unidade de geração de can- didato de estimador de vetor temporal 151 verifica se a previsão LN do bloco candidato é válida. A previsão LN do bloco candidato sendo válida significa que o índice de referência do mesmo é maior ou igual a 0. Se a previsão LN do bloco candidato for válida, a unidade de geração de candidato de estimador de vetor temporal 151 deriva o candidato de estimador de vetor temporal com o uso de um vetor de movimento da previsão LN do bloco candidato como um vetor de movimento de referência e finaliza o processo. Uma descrição do método para derivar o candidato de estimador de vetor temporal será descrita posteriormente. Se a previsão LN do bloco candidato não for válida, a unidade de geração de candidato de estimador de vetor temporal 151 verifica um bloco candidato subsequente. A unidade de geração de candidato de estimador de vetor espacial 150 finaliza o processo a verificação é concluída para todos os blocos candidatos.
[00245] Uma explicação é dada agora em relação a um método para derivar o candidato de estimador de vetor temporal. Com o uso de uma distância de interfoto entre uma ColPic que tem um bloco candidato temporal e uma ColRefLXPic, que é uma foto referida pelo bloco candidato temporal na previsão de compensação de movimento da previsão LN, uma distância de interfoto entre uma imagem de referência RefLXPic indicada pelo índice de referência da previsão LX e uma foto alvo CurPic e o vetor de movimento de referência da previsão LX como td, tb e mvLX, respectivamente, um candidato de estimador de vetor temporal mvLXCol é calculado pela Expressão 1.
[00246] A unidade de apagamento de candidato de estimador de vetor redundante 152 verifica os candidatos de estimador de vetor adicionados à lista de candidato de estimador de vetor da previsão LX suprida pela unidade de geração de candidato de estimador de vetor temporal 151, deixa, quando há uma pluralidade de candidatos de es- timador de vetor que têm um vetor idêntico, um candidato de estima- dor de vetor e apaga o resto dos candidatos de estimador de vetor, apaga, quando o número dos candidatos de estimador de vetor adicionados à lista de candidato de estimador de vetor da previsão LX excede o número máximo dos candidatos de estimador de vetor, os candidatos de estimador de vetor na última parte da lista de candidato de estimador de vetor da previsão LX de modo que o número dos candidatos de estimador de vetor adicionados à lista de candidato de esti- mador de vetor da previsão LX se torne menor ou igual ao número máximo dos candidatos de estimador de vetor (S205), supra a lista de candidato de estimador de vetor da previsão LX para a unidade de suprimento de candidato de estimador de vetor 153. Os candidatos de informações de movimento de mesclagem adicionados à lista de candidato de estimador de vetor da previsão LX são todos candidatos de informações de movimento de mesclagem diferente dessa vez.
[00247] A unidade de suprimento de candidato de estimador de vetor 153 gera os candidatos de suprimento de estimador de vetor, adiciona os candidatos de suprimento de estimador de vetor de modo que o número dos candidatos de estimador de vetor adicionados à lista de candidato de estimador de vetor da previsão LX suprida pela unidade de apagamento de candidato de estimador de vetor redundante 152 se torne o número máximo dos candidatos de estimador de vetor (S206) e supre os candidatos de suprimento de estimador de vetor para o terminal 18. Presume-se que os candidatos de suprimento de estima- dor de vetor têm um vetor de movimento (0,0). Nesse caso, os candi-datos de suprimento de estimador de vetor são ajustados para ter um vetor de movimento (0,0). Entretanto, os candidatos de suprimento de estimador de vetor podem ter um valor predeterminado tal como (1,1) ou ter um vetor de movimento em que um componente horizontal ou um componente vertical de um candidato de estimador de vetor espacial é ajustado para ser +1 ou -1.
[00248] Nesse caso, os blocos candidatos incluídos no grupo de bloco candidato espacial suprido pelo terminal 12 são separados em dois grupos de modo que um candidato de estimador de vetor de movimento espacial possa ser selecionado, cada um, a partir de cada um dos grupos. Entretanto, os blocos candidatos podem ser colocados em um grupo e dois candidatos de estimador de vetor de movimento espacial podem ser selecionados.
[00249] Uma explicação é dada a seguir em relação à configuração detalhada da unidade de reprodução de vetor de movimento 211.
[00250] Subsequentemente, uma explicação é dada em relação à configuração detalhada da unidade de reprodução de vetor de movimento 211. A Figura 36 é um diagrama que explica a configuração da unidade de reprodução de vetor de movimento 211. A unidade de reprodução de vetor de movimento 211 inclui uma unidade de construção de lista de candidato de estimador de vetor 220, uma unidade de seleção de estimador de vetor 221 e uma unidade de adição 222. Um terminal 35 é conectado à unidade de decisão de modo de codificação 210.
[00251] Uma explicação é dada a seguir em relação à função e à operação de cada componente. A unidade de reprodução de vetor de movimento 211 calcula um vetor de movimento para a previsão L0 se o tipo de interprevisão suprido pelo terminal 35 for a previsão L0, calcula um vetor de movimento for previsão L1 se o tipo de interprevisão for a previsão L1 e calcula um vetor de movimento para a previsão L0 e para a previsão L1 se o tipo de interprevisão for a previsão BI. O cálculo de um vetor de movimento para cada previsão LX é conforme mostra- do a seguir.
[00252] A unidade de reprodução de vetor de movimento 211 constrói uma lista de candidato de estimador de vetor de previsão LX a partir de um índice de referência da previsão LX suprida pelo terminal 35 e um grupo de bloco candidato suprido pelo terminal 33. A unidade de reprodução de vetor de movimento 211 seleciona um candidato de es- timador de vetor indicado por um índice de estimador de vetor da previsão LX a partir da lista de estimador de vetor da previsão LX como um estimador de vetor da previsão LX e adiciona o estimador de vetor da previsão LX e uma diferença de vetor da previsão LX de modo a calcular um vetor de movimento da previsão LX.
[00253] As informações de movimento são geradas combinando-se o vetor de movimento da previsão LX e um tipo de interprevisão e as informações de movimento são supridas para o terminal 34 e o terminal 36.
[00254] Conforme descrito acima, em um modo de mesclagem em que o número máximo de candidatos de mesclagem é 5 e em que o número dos candidatos é relativamente alto, uma lista de candidato de informações de movimento de mesclagem é comunalizada em um bloco de codificação com o uso de um bloco candidato de um bloco de previsão 0 como um bloco candidato de todos os blocos de previsão no bloco de codificação para um grupo de bloco candidato diferente de 2Nx2N de modo a permitir a paralelização dos processos exigidos para a seleção de candidato. Em um modo de estimador de vetor em que o número máximo de candidatos de estimador de vetor é 2 e em que o número dos candidatos é relativamente baixo, eficácia de processamento e eficácia de previsão preferenciais podem ser alcançadas otimizando-se a eficácia de previsão com o uso de um bloco candidato, no qual uma relação posicionai dessa de 2N*2N é aplicada, para um grupo de bloco candidato diferente de 2N*2N.
[00255] O fluxo de bits das fotos de movimento emitidas a partir do dispositivo de codificação de foto de movimento de acordo com qualquer uma das modalidades descritas acima tem um formato de dados específico de modo que o mesmo possa ser decodificado em concordância com o método de codificação usado nas modalidades. O dispositivo de decodificação de foto de movimento compatível com o dispositivo de codificação de foto de movimento pode decodificar o fluxo de bits do formato de dados específico.
[00256] Se uma rede com fio ou sem fio for usada para trocar os fluxos de bits entre o dispositivo de codificação de foto de movimento e o dispositivo de decodificação de foto de movimento, o fluxo de bits pode ser convertido em um formato de dados adequado ao modo de transmissão através de um canal de comunicação e ser transmitido consequentemente. Nesse caso, é fornecido um dispositivo de transmissão de foto de movimento para converter os fluxos de bits emitidos a partir do dispositivo de codificação de foto de movimento em dados de codificação de um formato de dados adequado ao modo de transmissão através do canal de comunicação e para transmitir os fluxos de bits através da rede e um dispositivo de recebimento de foto de movimento para receber os dados de codificação através da rede para recuperar os fluxos de bits e suprir os fluxos de bits recuperados para o dispositivo de decodificação de foto de movimento.
[00257] O dispositivo de transmissão de foto de movimento inclui uma memória para armazenar temporariamente os fluxos de bits emitidos a partir do dispositivo de codificação de foto de movimento, uma unidade de processamento de pacote para empacotar os fluxos de bits e uma unidade de transmissão para transmitir os dados de codificação empacotados através da rede. O dispositivo de recebimento de foto de movimento inclui uma unidade de recebimento para receber os dados de codificação empacotados através da rede, uma memória para ar- mazenar temporariamente os dados de codificação recebidos e uma unidade de processamento de pacote para submeter os dados de codificação a um processo de desempacotamento de modo a gerar fluxos de bits e fornecer os fluxos de bits gerados para o dispositivo de decodificação de foto de movimento.
[00258] Os processos descritos acima relacionados à codificação e à decodificação podem, certamente, ser implantados pelo aparelho com base em hardware para a transmissão, armazenamento ou recebimento. Alternativamente, os processos podem ser implantados por firmware armazenado em uma memória de somente leitura (ROM), uma memória flash, etc. ou por software em um computador, etc. O programa de firmware ou o programa de software pode ser tornado disponível em, por exemplo, um meio de gravação legível por computador. Alternativamente, os programas podem ser tornados disponíveis a partir de um servidor por meio de uma rede com fio ou sem fio. Ainda alternativamente, os programas podem ser tornados disponíveis na forma de transmissão de dados através de sistemas de difusão digital por satélite ou terrestre.
[00259] É descrita acima uma explicação da presente invenção com base nas modalidades. Essas modalidades são destinadas a serem ilustrativas somente e serão óbvias para aqueles versados na técnica que várias modificações para constituir os elementos e processos poderiam ser desenvolvidos e que tais modificações estão também dentro do escopo da presente invenção. DESCRIÇÃO DAS REFERÊNCIAS NUMÉRICAS 100 dispositivo de codificação de foto de movimento 101 unidade de derivação de foto de bloco de previsão 102 unidade de subtração 103 unidade de codificação de erro de previsão 104 unidade de geração de fluxo de bits 105 unidade de decodificação de erro de previsão 106 unidade de compensação de movimento 107 unidade de adição 108 unidade de detecção de vetor de movimento 109 unidade de geração de informações de movimento 110 memória de quadro 111 memória de informações de movimento 120 unidade de determinação de modo de estimador de vetor 121 unidade de determinação de modo de mesclagem 122 unidade de determinação de modo de codificação de previ são 130 unidade de construção de lista de candidato de estimador de vetor 131 unidade de determinação de estimador de vetor 140 unidade de construção de lista de candidato de informações de movimento de mesclagem 141 unidade de seleção de informações de movimento de mes- clagem 150 unidade de geração de candidato de estimador de vetor espacial 151 unidade de geração de candidato de estimador de vetor temporal 152 unidade de apagamento de candidato de estimador de vetor redundante 153 unidade de suprimento de candidato de estimador de vetor 160 unidade de geração de candidato de informações de movi mento de mesclagem espacial 161 unidade de geração de candidato de informações de movimento de mesclagem temporal 162 unidade de apagamento de candidato de informações de movimento de mesclagem redundante 163 primeira unidade de suprimento de candidato de informações de movimento de mesclagem 164 segunda unidade de suprimento de candidato de informações de movimento de mesclagem 165 unidade de ajuste de bloco candidato 166 unidade de suprimento de candidato de informações de movimento de mesclagem substituta 200 dispositivo de decodificação de foto de movimento 201 unidade de análise de fluxo de bits 202 unidade de decodificação de erro de previsão 203 unidade de adição 204 unidade de reprodução de informações de movimento 205 unidade de compensação de movimento 206 memória de quadro 207 memória de informações de movimento 210 unidade de decisão de modo de codificação 211 unidade de reprodução de vetor de movimento 212 unidade de reprodução de informações de movimento de mesclagem 230 unidade de construção de lista de candidato de informações de movimento de mesclagem 231 unidade de seleção de informações de movimento de mes- clagem
[00260] A presente invenção é aplicável a uma tecnologia de codificação e decodificação de foto de movimento para as informações de movimento de codificação e decodificação usadas na previsão de compensação de movimento.
Claims (2)
1. Dispositivo de decodificação de imagem em movimento (200) adaptado para decodificar um bloco de decodificação consistindo em mais que ou igual a um bloco de previsão, caracterizado pelo fato de que compreende: uma unidade de decodificação (201) configurada para decodificar, a partir de um fluxo de bits no qual um índice para especificar um candidato a informações de movimento usado em um bloco de previsão sujeito a decodificação é codificado como um índice de especificação candidato, o índice de especificação candidato; uma unidade de construção de lista de candidatos a informações de movimento (230) configurada para derivar, quando informações indicando se deve ou não derivar um candidato a informações de movimento mesclado compartilhado para todos os blocos de previsão no bloco de decodificação não é uma informação indicando a derivação de um candidato a informações de movimento compartilhado para todos os blocos de previsão no bloco de decodificação, uma pluralidade de candidatos a informações de movimento usando apenas blocos candidatos vizinhos a um bloco de blocos de previsão sujeitos a decodificação no bloco de decodificação; e unidade de seleção de informações de movimento (231) configurada para selecionar um candidato a informações de movimento a partir da pluralidade de candidatos a informações de movimento com base no candidato que especifica o índice e a usar o candidato a informações de movimento selecionado no bloco de previsão sujeito a decodificação, em que a unidade de construção da lista de candidatos à informação de movimento (230) deriva, quando a informação que indica se deve ou não derivar um candidato à informação de movimento compartilhado para todos os blocos de previsão no bloco de decodifi- cação é uma informação indicando a derivação de um candidato à informação de movimento compartilhado para todos os blocos de previsão no bloco de decodificação, um candidato a informações de movimento usando apenas blocos candidatos vizinhos a um primeiro bloco de previsão no bloco de decodificação com base em um tipo de tamanho de bloco de previsão do bloco de decodificação e compartilha o candidato a informações de movimento derivado com um segundo bloco de previsão na decodificação bloco e em que as informações de movimento incluem uma direção de previsão de predição de L0, predição de L1 ou bi-predição, um vetor de movimento e um índice de referência no caso de predição de L0 ou predição de L1, dois vetores de movimento e dois índices de referência no caso de bi-predição, e em que o tipo de tamanho do bloco de previsão se 2NxN ou Nx2N.
2. Método de decodificação de imagem em movimento para decodificar um bloco de decodificação consistindo em mais que ou igual a um bloco de previsão, caracterizado pelo fato de que compreende: decodificação, a partir de um fluxo de bits no qual um índice para especificar um candidato a informações de movimento em fusão usado em um bloco de previsão sujeito a decodificação é codificado como um índice de especificação candidato, o índice de especificação candidato; derivação, quando informações indicando se deve ou não derivar um candidato a informação de movimento compartilhado para todos os blocos de previsão no bloco de decodificação não é informação indicando a derivação de um candidato a informação de movimento compartilhado para todos os blocos de previsão no bloco de decodi- ficação, uma pluralidade de informações de movimento candidatos que usam apenas blocos candidatos vizinhos a um bloco de previsão sujeitos a decodificação no bloco de decodificação; e selecionar um candidato a informações de movimento da pluralidade de candidatos a informações de movimento com base no candidato que especifica o índice e usar o candidato a informações de movimento selecionado no bloco de previsão sujeito a decodificação, em que a derivação deriva, quando a informação que indica se deve ou não derivar um candidato à informação de movimento compartilhado para todos os blocos de previsão no bloco de decodifi- cação é uma informação indicando a derivação de um candidato à informação de movimento compartilhada para todos os blocos de previsão no bloco de decodificação, uma informação de movimento candidato usando apenas blocos candidatos vizinhos a um primeiro bloco de previsão no bloco de decodificação com base em um tipo de tamanho de bloco de previsão do bloco de decodificação e compartilha o candidato de informações de movimento derivado com um segundo bloco de previsão no bloco de decodificação, e em que as informações de movimento incluem uma direção de previsão de predição de L0, predição de L1 ou bi-predição, um vetor de movimento e um índice de referência no caso de predição de L0 ou predição de L1, dois vetores de movimento e dois índices de referência no caso de bi-predição, e em que o tipo de tamanho do bloco de previsão se 2NxN ou Nx2N.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
BR122020014280-4A BR122020014280B1 (pt) | 2011-12-28 | 2012-12-28 | Dispositivo codificador de vídeo, método codificador de vídeo, dispositivo decodificador de vídeo, e método decodificador de vídeo |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-288985 | 2011-12-28 | ||
JP2011288985 | 2011-12-28 | ||
JP2011-288984 | 2011-12-28 | ||
JP2011288984 | 2011-12-28 | ||
JP2012-286857 | 2012-12-28 | ||
JP2012286856A JP5835208B2 (ja) | 2011-12-28 | 2012-12-28 | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム |
JP2012-286856 | 2012-12-28 | ||
PCT/JP2012/008431 WO2013099285A1 (ja) | 2011-12-28 | 2012-12-28 | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム |
JP2012286857A JP5725009B2 (ja) | 2011-12-28 | 2012-12-28 | 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
BR112014013977A2 BR112014013977A2 (pt) | 2017-06-13 |
BR112014013977A8 BR112014013977A8 (pt) | 2021-03-02 |
BR112014013977B1 true BR112014013977B1 (pt) | 2022-05-17 |
Family
ID=49479684
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122020014280-4A BR122020014280B1 (pt) | 2011-12-28 | 2012-12-28 | Dispositivo codificador de vídeo, método codificador de vídeo, dispositivo decodificador de vídeo, e método decodificador de vídeo |
BR112014013977-6A BR112014013977B1 (pt) | 2011-12-28 | 2012-12-28 | Dispositivo de codificação de vídeo, método de codificação de vídeo e programa de codificação de vídeo e dispositivo de decodificação de vídeo, método de decodificação de vídeo e programa de decodificação de vídeo |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122020014280-4A BR122020014280B1 (pt) | 2011-12-28 | 2012-12-28 | Dispositivo codificador de vídeo, método codificador de vídeo, dispositivo decodificador de vídeo, e método decodificador de vídeo |
Country Status (7)
Country | Link |
---|---|
US (6) | US10271063B2 (pt) |
EP (1) | EP2800370A4 (pt) |
CN (5) | CN104025587B (pt) |
BR (2) | BR122020014280B1 (pt) |
RU (5) | RU2589297C9 (pt) |
TW (5) | TWI720750B (pt) |
WO (1) | WO2013099285A1 (pt) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9743078B2 (en) | 2004-07-30 | 2017-08-22 | Euclid Discoveries, Llc | Standards-compliant model-based video encoding and decoding |
HUE061303T2 (hu) * | 2010-05-04 | 2023-06-28 | Lg Electronics Inc | Eljárás és berendezés videojel kódolására és dekódolására |
CN107105279B (zh) * | 2011-09-23 | 2020-03-06 | 株式会社Kt | 用于引导合并候选块的方法和使用该方法的设备 |
US10091507B2 (en) | 2014-03-10 | 2018-10-02 | Euclid Discoveries, Llc | Perceptual optimization for model-based video encoding |
US10097851B2 (en) | 2014-03-10 | 2018-10-09 | Euclid Discoveries, Llc | Perceptual optimization for model-based video encoding |
US9621917B2 (en) * | 2014-03-10 | 2017-04-11 | Euclid Discoveries, Llc | Continuous block tracking for temporal prediction in video encoding |
WO2016153146A1 (ko) * | 2015-03-23 | 2016-09-29 | 엘지전자(주) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
FR3051309A1 (fr) * | 2016-05-10 | 2017-11-17 | Bcom | Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image |
US11095892B2 (en) * | 2016-09-20 | 2021-08-17 | Kt Corporation | Method and apparatus for processing video signal |
US10291928B2 (en) * | 2017-01-10 | 2019-05-14 | Blackberry Limited | Methods and devices for inter-prediction using motion vectors for video coding |
CN116866553A (zh) | 2017-01-16 | 2023-10-10 | 世宗大学校产学协力团 | 影像解码/编码方法以及传送比特流的方法 |
US10484703B2 (en) * | 2017-02-07 | 2019-11-19 | Mediatek Inc. | Adapting merge candidate positions and numbers according to size and/or shape of prediction block |
CN108989799B (zh) * | 2017-06-02 | 2022-03-08 | 阿里巴巴集团控股有限公司 | 一种编码单元参考帧的选择方法、装置及电子设备 |
US10602180B2 (en) * | 2017-06-13 | 2020-03-24 | Qualcomm Incorporated | Motion vector prediction |
WO2019078664A1 (ko) * | 2017-10-20 | 2019-04-25 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
US11044466B2 (en) | 2018-01-26 | 2021-06-22 | Samsung Electronics Co., Ltd. | Image processing device |
CN111819857B (zh) * | 2018-03-14 | 2024-08-23 | 联发科技股份有限公司 | 用于视频编解码的优化分割结构的方法和装置 |
WO2019204386A1 (en) | 2018-04-20 | 2019-10-24 | Huawei Technologies Co., Ltd. | Line buffer for spatial motion vector predictor candidates |
CN110662072B (zh) * | 2018-06-29 | 2022-04-26 | 杭州海康威视数字技术股份有限公司 | 运动信息候选者列表构建方法、装置及可读存储介质 |
CN118714295A (zh) | 2018-07-27 | 2024-09-27 | 三星电子株式会社 | 对图像进行编码和解码的方法和装置 |
WO2020084552A1 (en) * | 2018-10-24 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidate derivation based on spatial neighboring block in sub-block motion vector prediction |
US11172214B2 (en) * | 2018-12-21 | 2021-11-09 | Qualcomm Incorporated | Derivation of processing area for parallel processing in video coding |
US11032560B2 (en) * | 2019-01-17 | 2021-06-08 | Tencent America LLC | Method and apparatus for video coding without updating the HMVP table |
CN113424535A (zh) * | 2019-02-13 | 2021-09-21 | 北京字节跳动网络技术有限公司 | 基于运动矢量预测表的历史更新 |
JP2022068379A (ja) * | 2019-03-08 | 2022-05-10 | シャープ株式会社 | 画像復号装置 |
US11418807B2 (en) * | 2019-03-15 | 2022-08-16 | Tencent America LLC | Temporal motion vector derivation in shared merge region at picture boundary |
US11528504B2 (en) * | 2019-07-11 | 2022-12-13 | Qualcomm Incorporated | Motion vector prediction with motion information collecting buffer |
US11418810B2 (en) * | 2020-09-21 | 2022-08-16 | Tencent America LLC | Methods of inter picture motion prediction for multi-view video compression |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3637996B2 (ja) | 1997-03-28 | 2005-04-13 | シャープ株式会社 | 領域統合が可能な動き補償フレーム間予測方式を用いた動画像符号化・復号化装置 |
DE60312960T2 (de) * | 2002-02-01 | 2007-12-13 | Matsushita Electric Industrial Co., Ltd., Kadoma | Kodierungsverfahren und Dekodierungsverfahren für bewegliche Bilder |
AU2003281133A1 (en) * | 2002-07-15 | 2004-02-02 | Hitachi, Ltd. | Moving picture encoding method and decoding method |
JP4113059B2 (ja) * | 2003-07-28 | 2008-07-02 | 株式会社東芝 | 字幕信号処理装置、字幕信号処理方法及び字幕信号処理プログラム |
FR2860678A1 (fr) * | 2003-10-01 | 2005-04-08 | Thomson Licensing Sa | Procede de codage differentiel |
JP2005117196A (ja) * | 2003-10-03 | 2005-04-28 | Matsushita Electric Ind Co Ltd | 映像符号化方法 |
KR100970726B1 (ko) * | 2003-10-04 | 2010-07-16 | 삼성전자주식회사 | 계층적 움직임 추정 방법 |
JP2005245503A (ja) * | 2004-03-01 | 2005-09-15 | Toshiba Corp | 超音波診断装置、画像表示装置及び画像表示方法 |
EP1578137A2 (en) * | 2004-03-17 | 2005-09-21 | Matsushita Electric Industrial Co., Ltd. | Moving picture coding apparatus with multistep interpolation process |
RU2336661C2 (ru) * | 2005-04-19 | 2008-10-20 | Самсунг Электроникс Ко., Лтд. | Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии |
JP2007043651A (ja) * | 2005-07-05 | 2007-02-15 | Ntt Docomo Inc | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム |
CN102176754B (zh) * | 2005-07-22 | 2013-02-06 | 三菱电机株式会社 | 图像编码装置和方法、以及图像解码装置和方法 |
CN100466739C (zh) * | 2005-10-12 | 2009-03-04 | 华为技术有限公司 | Cabac解码系统及方法 |
JP4790446B2 (ja) * | 2006-03-01 | 2011-10-12 | 三菱電機株式会社 | 動画像復号装置及び動画像符号化装置 |
WO2007116551A1 (ja) * | 2006-03-30 | 2007-10-18 | Kabushiki Kaisha Toshiba | 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法 |
RU2427976C2 (ru) * | 2006-07-28 | 2011-08-27 | Кабусики Кайся Тосиба | Способ и устройство для кодирования и декодирования изображения |
JP5026092B2 (ja) * | 2007-01-12 | 2012-09-12 | 三菱電機株式会社 | 動画像復号装置および動画像復号方法 |
WO2008126843A1 (ja) * | 2007-04-09 | 2008-10-23 | Ntt Docomo, Inc. | 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法および画像予測復号プログラム |
JPWO2009041215A1 (ja) * | 2007-09-25 | 2011-01-20 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置 |
KR101403343B1 (ko) * | 2007-10-04 | 2014-06-09 | 삼성전자주식회사 | 부화소 움직임 추정을 이용한 인터 예측 부호화, 복호화방법 및 장치 |
KR100949475B1 (ko) * | 2007-12-28 | 2010-03-29 | 세종대학교산학협력단 | 스캔 패턴 결정 장치 및 이를 이용한 영상 데이터 부호화방법과 그 장치, 그리고, 이를 이용한 영상 데이터 복호화방법과 그 장치 |
JP2009164880A (ja) | 2008-01-07 | 2009-07-23 | Mitsubishi Electric Corp | トランスコーダ及び受信機 |
WO2009133844A1 (ja) * | 2008-04-30 | 2009-11-05 | 株式会社 東芝 | エッジを考慮したフィルタリング機能を備えた動画像符号化/復号化方法及び装置 |
JP5680283B2 (ja) * | 2008-09-19 | 2015-03-04 | 株式会社Nttドコモ | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び動画像復号プログラム |
JP5401071B2 (ja) * | 2008-10-09 | 2014-01-29 | 株式会社Nttドコモ | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法 |
WO2010070897A1 (ja) * | 2008-12-16 | 2010-06-24 | パナソニック株式会社 | 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、プログラム、及び集積回路 |
KR20100095992A (ko) * | 2009-02-23 | 2010-09-01 | 한국과학기술원 | 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체 |
DK3567852T3 (da) * | 2009-03-23 | 2023-01-16 | Ntt Docomo Inc | Billedforudsigelsesafkodningsindretning og billedforudsigelsesafkodningsfremgangsmåde |
EP2237557A1 (en) * | 2009-04-03 | 2010-10-06 | Panasonic Corporation | Coding for filter coefficients |
JP2010288080A (ja) * | 2009-06-11 | 2010-12-24 | Sony Corp | 画像処理装置及び画像処理方法 |
KR20110068792A (ko) * | 2009-12-16 | 2011-06-22 | 한국전자통신연구원 | 적응적 영상 부호화 장치 및 방법 |
WO2011126340A2 (ko) * | 2010-04-08 | 2011-10-13 | 엘지전자 주식회사 | 오디오 신호 처리 방법 및 장치 |
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 |
-
2012
- 2012-12-28 TW TW108146494A patent/TWI720750B/zh active
- 2012-12-28 CN CN201280060716.XA patent/CN104025587B/zh active Active
- 2012-12-28 BR BR122020014280-4A patent/BR122020014280B1/pt active IP Right Grant
- 2012-12-28 CN CN201710600721.XA patent/CN107888913B/zh active Active
- 2012-12-28 TW TW108100231A patent/TWI684354B/zh active
- 2012-12-28 TW TW105136466A patent/TWI600315B/zh active
- 2012-12-28 CN CN201710602299.1A patent/CN107592542B/zh active Active
- 2012-12-28 EP EP12862882.3A patent/EP2800370A4/en not_active Ceased
- 2012-12-28 CN CN201710602298.7A patent/CN107888914B/zh active Active
- 2012-12-28 CN CN201710602297.2A patent/CN107707912B/zh active Active
- 2012-12-28 RU RU2014130469A patent/RU2589297C9/ru active
- 2012-12-28 TW TW106128618A patent/TWI653878B/zh active
- 2012-12-28 TW TW101151071A patent/TW201334565A/zh unknown
- 2012-12-28 BR BR112014013977-6A patent/BR112014013977B1/pt active IP Right Grant
- 2012-12-28 WO PCT/JP2012/008431 patent/WO2013099285A1/ja active Application Filing
- 2012-12-28 RU RU2016118241A patent/RU2628185C9/ru active
-
2014
- 2014-06-09 US US14/299,907 patent/US10271063B2/en active Active
-
2016
- 2016-07-08 US US15/205,778 patent/US20160323597A1/en not_active Abandoned
-
2017
- 2017-07-07 RU RU2017124177A patent/RU2668523C9/ru active
-
2018
- 2018-09-05 RU RU2018131741A patent/RU2687218C9/ru active
-
2019
- 2019-02-19 US US16/278,863 patent/US10448044B2/en active Active
- 2019-03-06 RU RU2019106387A patent/RU2697927C9/ru active
- 2019-09-03 US US16/558,533 patent/US10631001B2/en active Active
-
2020
- 2020-04-03 US US16/839,128 patent/US10778998B2/en active Active
- 2020-08-14 US US16/993,383 patent/US10820011B1/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112014013977B1 (pt) | Dispositivo de codificação de vídeo, método de codificação de vídeo e programa de codificação de vídeo e dispositivo de decodificação de vídeo, método de decodificação de vídeo e programa de decodificação de vídeo | |
BR112014013961B1 (pt) | Dispositivo de codificação de vídeo, método de codificação de vídeo e programa de codificação de vídeo e dispositivo de decodificação de vídeo, método de decodificação de vídeo e programa de decodificação de vídeo | |
BR112014016922B1 (pt) | Dispositivo e método de codificação de representação em movimento e dispositivo e método de decodificação de representação em movimento | |
JP6065088B2 (ja) | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム | |
BR112021012485B1 (pt) | Dispositivo de codificação de imagem, método de codificação de imagem, dispositivo de decodificação de imagem e método de decodificação de imagem | |
JP5843032B2 (ja) | 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム | |
JP5725009B2 (ja) | 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム | |
JP5843041B1 (ja) | 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム | |
BR122020016747B1 (pt) | Dispositivo de decodificação de representação em movimento |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B15K | Others concerning applications: alteration of classification |
Ipc: H04N 7/00 (2011.01) |
|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
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 28/12/2012, OBSERVADAS AS CONDICOES LEGAIS |