BR112020021718A2 - codificador, decodificador, método de codificação e método de decodificação - Google Patents

codificador, decodificador, método de codificação e método de decodificação Download PDF

Info

Publication number
BR112020021718A2
BR112020021718A2 BR112020021718-2A BR112020021718A BR112020021718A2 BR 112020021718 A2 BR112020021718 A2 BR 112020021718A2 BR 112020021718 A BR112020021718 A BR 112020021718A BR 112020021718 A2 BR112020021718 A2 BR 112020021718A2
Authority
BR
Brazil
Prior art keywords
partition
list
size
motion vector
candidates
Prior art date
Application number
BR112020021718-2A
Other languages
English (en)
Other versions
BR112020021718B1 (pt
Inventor
Chong Soon Lim
Ryuichi KANOH
Hai Wei Sun
Sughosh Pavan SHASHIDHAR
Han Boon Teo
Ru Ling LIAO
Jing Ya LI
Tadamasa Toma
Takahiro Nishi
Kiyofumi Abe
Original Assignee
Panasonic Intellectual Property Corporation Of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corporation Of America filed Critical Panasonic Intellectual Property Corporation Of America
Publication of BR112020021718A2 publication Critical patent/BR112020021718A2/pt
Publication of BR112020021718B1 publication Critical patent/BR112020021718B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

A presente invenção refere-se a um codificador (100) o qual inclui um circuito (160) e memória (162). Utilizando a memória (162), o circuito (160) gera uma lista a qual inclui candidatos para um primeiro vetor de movimento para uma primeira partição. A lista tem um tamanho de lista máximo e uma ordem dos candidatos, e pelo menos um do tamanho de lista máximo ou da ordem dos candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição. O circuito (160) seleciona o primeiro vetor de movimento dos candidatos incluídos na lista; codifica um índice que indica o primeiro vetor de movimento dentre os candidatos na lista no fluxo de bits com base no tamanho de lista máximo; e gera a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.

Description

Relatório Descritivo da Patente de Invenção para "CODIFI- CADOR, DECODIFICADOR, MÉTODO DE CODIFICAÇÃO E MÉ- TODO DE DECODIFICAÇÃO".
CAMPO TÉCNICO
[0001] A presente descrição refere-se a um codificador, etc. para codificar um vídeo em um fluxo de bits utilizando uma imagem predita.
TÉCNICA ANTERIOR
[0002] Convencionalmente, existiu H.265 também referido como HEVC (Codificação de Vídeo de Alta Eficiência) como um padrão para codificar um vídeo (NPL 1).
LISTA DE CITAÇÕES LITERATURA DE NÃO PATENTE: NPL 1:
[0003] H.265 (ISO/IEC 23008-2 HEVC)/HEVC (Codificação de Ví- deo de Alta Eficiência).
SUMÁRIO DA INVENÇÃO PROBLEMA TÉCNICO
[0004] No entanto, se as informações para predição em codificação ou decodificação de um vídeo não forem apropriadamente configura- das, um aumento em quantidade de códigos, uma diminuição em quali- dade de imagem, etc. pode ocorrer.
[0005] Em vista disto, a presente descrição provê um codificador, etc. o que torna possível configurar tais informações para predição apro- priadamente.
SOLUÇÃO PARA O PROBLEMA
[0006] Um codificador de acordo com um aspecto da presente des- crição é um codificador o qual codifica um vídeo em um fluxo de bits utilizando uma imagem predita, e qual inclui um circuito e uma memória. Utilizando a memória, o circuito gera uma lista a qual inclui uma plurali-
dade de candidatos para um primeiro vetor de movimento para uma pri- meira partição no vídeo, e na qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da primeira partição no vídeo. A lista tem um tamanho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de par- tição ou uma forma de partição da primeira partição. Utilizando a memó- ria, o circuito: seleciona o primeiro vetor de movimento da pluralidade de candidatos incluída na lista; codifica um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo; e gera a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
[0007] Deve ser notado que estes aspectos gerais ou específicos podem ser implementados utilizando um sistema, um aparelho, um mé- todo, um circuito integrado, um programa de computador, ou um meio de gravação legível por computador não transitório tal como um CD- ROM, ou qualquer a combinação de sistemas, aparelhos, métodos, cir- cuitos integrados, programas de computador, ou meios de gravação le- gíveis por computador.
EFEITO VANTAJOSO DA INVENÇÃO
[0008] O codificador, etc. de acordo com um aspecto da presente descrição torna possível configurar informações para predição apropri- adamente.
BREVE DESCRIÇÃO DOS DESENHOS
[0009] Figura 1 é um diagrama de blocos que ilustra uma configu- ração funcional de um codificador de acordo com a Modalidade 1. Figura 2 ilustra um exemplo de divisão de bloco de acordo com a Modalidade 1.
Figura 3 é um gráfico que indica funções de base de trans- formada para cada tipo de transformada.
Figura 4A ilustra um exemplo de uma forma de filtro utilizado em ALF.
Figura 4B ilustra outro exemplo de uma forma de filtro utili- zado em ALF.
Figura 4C ilustra outro exemplo de uma forma de filtro utili- zado em ALF.
Figura 5A ilustra 67 modos de intrapredição utilizados em in- trapredição.
Figura 5B é um fluxograma para ilustrar um esboço de um processo de correção de imagem de predição executado através de pro- cessamento de OBMC.
Figura 5C é um diagrama conceitual para ilustrar um esboço de um processo de correção de imagem de predição executado através de processamento de OBMC.
Figura 5D ilustra um exemplo de FRUC.
Figura 6 é para ilustrar coincidência de padrão (coincidência bilateral) entre dois blocos ao longo de uma trajetória de movimento.
Figura 7 é para ilustrar coincidência de padrão (coincidência de gabarito) entre um gabarito na imagem corrente e um bloco em uma imagem de referência.
Figura 8 é para ilustrar um modelo assumindo um movimento linear uniforme.
Figura 9A é para ilustrar derivar um vetor de movimento de cada sub-bloco com base em vetores de movimento de blocos vizinhos.
Figura 9B é para ilustrar um esboço de um processo para derivar um vetor de movimento através de modo de mesclagem.
Figura 9C é um diagrama conceitual para ilustrar um esboço de processamento de DMVR.
Figura 9D é para ilustrar um esboço de um método de gera- ção de imagem de predição que utiliza um processo de correção de lu- minância executado através de processamento de LIC.
Figura 10 é um diagrama de blocos que ilustra uma configu- ração funcional de um decodificador de acordo com a Modalidade 1. Figura 11 é um fluxograma que indica um primeiro aspecto de interpredição executado por um codificador de acordo com a Moda- lidade 1. Figura 12 é um fluxograma que indica o primeiro aspecto de interpredição executado por um decodificador de acordo com a Modali- dade 1. Figura 13 é um diagrama conceitual que ilustra exemplos de números máximos de candidatos de vetor de movimento os quais são dependentes de tamanhos de partição de acordo com a Modalidade 1. Figura 14 é um diagrama conceitual que ilustra outros exem- plos de números máximos de candidatos de vetor de movimento os quais são dependentes de tamanhos de partição de acordo com a Mo- dalidade 1. Figura 15 é um fluxograma que indica um segundo aspecto de interpredição executado pelo codificador de acordo com a Modali- dade 1. Figura 16 é um fluxograma que indica o segundo aspecto de interpredição executado pelo decodificador de acordo com a Modali- dade 1. Figura 17 é um diagrama conceitual que ilustra exemplos de números máximos de candidatos de vetor de movimento os quais são dependentes de tamanhos de partição de acordo com a Modalidade 1. Figura 18 é um diagrama conceitual que ilustra exemplos de números máximos de candidatos de vetor de movimento os quais são dependentes de formas de partição de acordo com a Modalidade 1.
Figura 19 é um fluxograma que indica um terceiro aspecto interpredição executado pelo codificador de acordo com a Modalidade
1. Figura 20 é um fluxograma que indica o terceiro aspecto in- terpredição executado pelo decodificador de acordo com a Modalidade
1. Figura 21 é um diagrama conceitual que ilustra exemplos de números máximos de candidatos de vetor de movimento os quais são dependentes de tamanhos de partição de acordo com a Modalidade 1. Figura 22 é um diagrama conceitual que ilustra exemplos de números máximos de candidatos de vetor de movimento os quais são dependentes de tamanhos de partição de acordo com a Modalidade 1. Figura 23 é um fluxograma que indica um quarto aspecto de interpredição executado pelo codificador de acordo com a Modalidade
1. Figura 24 é um fluxograma que indica o quarto aspecto de interpredição executado pelo decodificador de acordo com a Modali- dade 1. Figura 25 é um diagrama conceitual que ilustra ordens de candidatos exemplares as quais são dependentes de tamanhos de par- tição de acordo com a Modalidade 1. Figura 26 é um diagrama conceitual que ilustra ordens de candidatos exemplares as quais são dependentes de formas de partição de acordo com a Modalidade 1. Figura 27 é um diagrama de blocos que ilustra um exemplo de montagem do codificador de acordo com a Modalidade 1. Figura 28 é um fluxograma que indica um exemplo de uma operação executada pelo codificador de acordo com a Modalidade 1. Figura 29 é um diagrama de blocos que ilustra um exemplo de montagem do decodificador de acordo com a Modalidade 1.
Figura 30 é um fluxograma que indica um exemplo de uma operação executada pelo decodificador de acordo com a Modalidade 1. Figura 31 ilustra uma configuração geral de um sistema de provisão de conteúdo para implementar um serviço de distribuição de conteúdo. Figura 32 ilustra um exemplo de uma estrutura de codifica- ção em codificação escalável. Figura 33 ilustra um exemplo de uma estrutura de codifica- ção em codificação escalável. Figura 34 ilustra um exemplo de uma tela de display de uma webpage. Figura 35 ilustra um exemplo de uma tela de display de uma webpage. Figura 36 ilustra um exemplo de um smartphone. Figura 37 é um diagrama de blocos que ilustra um exemplo de configuração de um smartphone.
DESCRIÇÃO DE MODALIDADES EXEMPLARES
[0010] Conhecimento Subjacente que Forma a Base da Pre- sente Descrição Por exemplo, um codificador codifica um vídeo. O codificador pode utilizar interpredição ou intrapredição quando codificando o vídeo bloco por bloco. Quando utilizando interpredição para codificar um bloco corrente a ser processado, o codificador identifica um bloco de referên- cia e gera uma imagem predita do bloco corrente referindo a um bloco de referência. O codificador então codifica uma imagem de diferença entre a imagem predita do bloco corrente e a imagem original do bloco corrente, por meio disto reduzindo a quantidade de códigos.
[0011] Além disto, um decodificador decodifica uma imagem de di- ferença quando decodificando um vídeo. O decodificador então gera uma imagem predita de um bloco corrente a ser processado referindo a um bloco de referência e soma a imagem predita e a imagem de dife- rença para reconstruir a imagem original. Neste modo, o decodificador é capaz de decodificar o vídeo.
[0012] Além disto, por exemplo, o codificador e o decodificador ge- ram uma lista de candidatos de vetor de movimento para o bloco cor- rente utilizando um método comum, e selecionam um vetor de movi- mento para o bloco corrente da lista de candidatos de vetor de movi- mento. O codificador e o decodificador então geram um valor predito do bloco corrente utilizando o vetor de movimento para o bloco corrente.
[0013] Além disto, o codificador codifica um índice que indica o vetor de movimento para o bloco corrente na lista de candidatos de vetor de movimento para o bloco corrente. Além disto, o decodificador decodifica um índice que indica o vetor de movimento para o bloco corrente na lista de candidatos de vetor de movimento para o bloco corrente.
[0014] Neste modo, o codificador e o decodificador são capazes de selecionar o mesmo vetor de movimento da lista de candidatos de vetor de movimento gerada utilizando o método comum, e gerar a mesma imagem predita utilizando o mesmo vetor de movimento. O codificador e o decodificador são então capazes de codificar e decodificar o vídeo apropriadamente utilizando a mesma imagem predita.
[0015] No entanto, se as informações para predição não forem con- figuradas apropriadamente, a quantidade de códigos pode aumentar.
[0016] Por exemplo, a quantidade de códigos de um índice que in- dica um vetor de movimento para um bloco corrente a ser processado em uma lista de candidatos de vetor de movimento é dependente de um tamanho de lista máximo da lista de candidatos de vetor de movimento. Além disto, a quantidade de códigos do índice que indica o vetor de movimento para o bloco corrente é dependente da posição do vetor de movimento para o bloco corrente na lista de candidatos de vetor de mo- vimento. Por exemplo, a quantidade de códigos do índice que indica o vetor de movimento para o bloco corrente na lista de candidatos de vetor de movimento é dependente da ordem de candidatos na lista de candi- datos de vetor de movimento.
[0017] Consequentemente, a quantidade de códigos do índice que indica o vetor de movimento para o bloco corrente na lista de candidatos de vetor de movimento pode aumentar dependendo do tamanho de lista máximo da lista de candidatos de vetor de movimento e da ordem de candidatos na lista de candidatos de vetor de movimento.
[0018] Em vista disto, por exemplo, um codificador de acordo com um aspecto da presente descrição é um codificador o qual codifica um vídeo em um fluxo de bits utilizando uma imagem predita, e o qual inclui um circuito e uma memória. Utilizando a memória, o circuito gera uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no vídeo, e na qual a plurali- dade de candidatos inclui um candidato o qual é derivado de um se- gundo vetor de movimento da segunda partição diferente da primeira partição no vídeo. A lista tem um tamanho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista má- ximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição. Utilizando a memória, o circuito: seleciona o primeiro vetor de movimento da pluralidade de candidatos incluída na lista; codi- fica um índice que indica o primeiro vetor de movimento dentre a plura- lidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo; e gera a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
[0019] Neste modo, o codificador é capaz de gerar a lista de candi- datos de vetor de movimento com base no tamanho de lista máximo ou na ordem dos candidatos a qual é dependente do tamanho de partição ou da forma de partição. Consequentemente, o codificador é capaz de gerar a lista de candidatos apropriada com base no tamanho de partição ou na forma de partição. Em outras palavras, o codificador é capaz de apropriadamente configurar as informações para predição. Consequen- temente, o codificador é capaz de contribuir para a redução em quanti- dade de códigos.
[0020] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um primeiro tamanho de partição, e o tamanho de lista máximo é um segundo tama- nho de lista maior do que o primeiro tamanho de lista quando o tamanho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
[0021] Neste modo, o codificador é capaz de selecionar o vetor de movimento apropriado dentre o grande número de candidatos de vetor de movimento para a pequena partição. Por outro lado, existe a possi- bilidade que nenhum vetor de movimento apropriado esteja incluído no grande número de candidatos de vetor de movimento para a grande partição. Consequentemente, o codificador é capaz de contribuir para a redução em quantidade de códigos do índice que indica o vetor de mo- vimento utilizando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a grande partição.
[0022] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um primeiro tamanho de partição, e o tamanho de lista máximo é um segundo tama- nho de lista menor do que o primeiro tamanho de lista quando o tama- nho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
[0023] Neste modo, o codificador é capaz de selecionar o vetor de movimento apropriado dentre o grande número de candidatos de vetor de movimento para a grande partição. Consequentemente, o codificador é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utili- zando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a pequena partição.
[0024] Além disto, por exemplo, o tamanho de lista máximo é de- pendente da forma de partição, e a forma de partição é uma de um qua- drado, um retângulo, e um triângulo.
[0025] Neste modo, o codificador é capaz de gerar a lista de candi- datos apropriada com base na forma de partição a qual é uma de um quadrado, um retângulo, ou um triângulo.
[0026] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um triângulo, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um triân- gulo.
[0027] Neste modo, o codificador é capaz de selecionar o vetor de movimento apropriado dentre o grande número de candidatos de vetor de movimento para a partição retangular. Por outro lado, existe uma possibilidade que o número de partições processadas referíveis seja pe- queno e o número de candidatos de vetor de movimento deriváveis seja pequeno ao redor da partição triangular. Consequentemente, o codifica- dor é capaz de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a partição triangular.
[0028] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um quadrado, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um qua- drado.
[0029] Neste modo, o codificador é capaz de selecionar um vetor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma partição que tem uma forma complicada. Con- sequentemente, o codificador é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos de um índice que indica um vetor de movimento utilizando uma lista de candidatos de ve- tor de movimento que tem um pequeno tamanho de lista máximo para uma partição que tem uma forma simples.
[0030] Além disto, por exemplo, o circuito: codifica o índice utili- zando um primeiro número de bits quando o tamanho de lista máximo é um primeiro tamanho de lista; e codifica o índice utilizando um segundo número de bits maior do que o primeiro número de bits quando o tama- nho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0031] Neste modo, o codificador é capaz de codificar o índice utili- zando o número de bits apropriado com base no tamanho de lista má- ximo.
[0032] Além disto, por exemplo, a segunda partição é uma partição a qual é vizinha da primeira partição.
[0033] Neste modo, o codificador é capaz de derivar um candidato para o vetor de movimento para a partição corrente de um vetor de mo- vimento de uma partição que é vizinha à partição corrente. Consequen- temente, o codificador é capaz de apropriadamente derivar o candidato para o vetor de movimento para a partição corrente do vetor de movi- mento que é assumido ser similar ao vetor de movimento para a partição corrente.
[0034] Além disto, por exemplo, um decodificador de acordo com um aspecto da presente descrição é um decodificador o qual decodifica um vídeo de um fluxo de bits utilizando uma imagem predita, e o qual inclui um circuito e uma memória. Utilizando a memória, o circuito gera uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no vídeo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da pri- meira partição no vídeo. A lista tem um tamanho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição. Utilizando a memória, o circuito: decodifica um ín- dice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista do fluxo de bits com base no tamanho de lista má- ximo; seleciona o primeiro vetor de movimento da pluralidade de candi- datos na lista utilizando o índice; e gera a imagem predita para a pri- meira partição utilizando o primeiro vetor de movimento.
[0035] Neste modo, o decodificador é capaz de gerar a lista de can- didatos de vetor de movimento com base no tamanho de lista máximo ou na ordem dos candidatos a qual é dependente do tamanho de parti- ção ou da forma de partição. Consequentemente, o decodificador é ca- paz de gerar a lista de candidatos apropriada com base no tamanho de partição ou na forma de partição. Em outras palavras, o decodificador é capaz de apropriadamente configurar as informações para predição. Consequentemente, o decodificador é capaz de contribuir para a redu- ção em quantidade de códigos.
[0036] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um primeiro tamanho de partição, e o tamanho de lista máximo é um segundo tama- nho de lista maior do que o primeiro tamanho de lista quando o tamanho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
[0037] Neste modo, o decodificador é capaz de selecionar o vetor de movimento apropriado dentre o grande número de candidatos de ve- tor de movimento para a pequena partição. Por outro lado, existe uma possibilidade que nenhum vetor de movimento apropriado esteja inclu- ído no grande número de candidatos de vetor de movimento para a grande partição. Consequentemente, o decodificador é capaz de contri- buir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candidatos de vetor de movi- mento que tem o pequeno tamanho de lista máximo para a grande par- tição.
[0038] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um primeiro tamanho de partição, e o tamanho de lista máximo é um segundo tama- nho de lista menor do que o primeiro tamanho de lista quando o tama- nho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
[0039] Neste modo, o decodificador é capaz de selecionar o vetor de movimento apropriado dentre o grande número de candidatos de ve- tor de movimento para a grande partição. Por outro lado, o decodificador é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utili- zando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a pequena partição.
[0040] Além disto, por exemplo, o tamanho de lista máximo é de- pendente da forma de partição, e a forma de partição é uma de um qua- drado, um retângulo, e um triângulo.
[0041] Neste modo, o decodificador é capaz de gerar a lista de can- didatos apropriada com base na forma de partição a qual é uma de um quadrado, um retângulo, ou um triângulo.
[0042] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um triângulo, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um triân- gulo.
[0043] Neste modo, o decodificador é capaz de selecionar o vetor de movimento apropriado dentre o grande número de candidatos de ve- tor de movimento para a partição retangular. Por outro lado, existe uma possibilidade que o número de partições processadas referíveis seja pe- queno e o número de candidatos de vetor de movimento deriváveis seja pequeno ao redor da partição triangular. Consequentemente, o decodi- ficador é capaz de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candida- tos de vetor de movimento que tem o pequeno tamanho de lista máximo para a partição triangular.
[0044] Além disto, por exemplo, o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um quadrado, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um qua- drado.
[0045] Neste modo, o decodificador é capaz de selecionar um vetor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma partição que tem uma forma complicada. Por outro lado, o decodificador é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos de um índice que indica um vetor de movimento utilizando uma lista de candidatos de ve- tor de movimento que tem um pequeno tamanho de lista máximo para uma partição que tem uma forma simples.
[0046] Além disto, por exemplo, o circuito: decodifica o índice utili- zando um primeiro número de bits quando o tamanho de lista máximo é um primeiro tamanho de lista; e decodifica o índice utilizando um se- gundo número de bits maior do que o primeiro número de bits quando o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0047] Neste modo, o decodificador é capaz de decodificar o índice utilizando o número de bits apropriado com base no tamanho de lista máximo.
[0048] Além disto, por exemplo, a segunda partição é uma partição a qual é vizinha da primeira partição.
[0049] Neste modo, o decodificador é capaz de derivar um candi- dato para o vetor de movimento para a partição corrente de um vetor de movimento de uma partição que é vizinha à partição corrente. Conse- quentemente, o decodificador é capaz de apropriadamente derivar o candidato para o vetor de movimento para a partição corrente do vetor de movimento que é assumido ser similar ao vetor de movimento para a partição corrente.
[0050] Além disto, por exemplo, um método de codificação de acordo com um aspecto da presente descrição é um método de codifi- cação de codificar um vídeo em um fluxo de bits utilizando uma imagem predita. O método de codificação inclui gerar uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no vídeo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movi- mento de uma segunda partição diferente da primeira partição no vídeo. A lista tem um tamanho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição. O método de codificação inclui: selecionar o primeiro vetor de movimento da pluralidade de candidatos incluída na lista; codificar um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo; e gerar uma imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
[0051] Neste modo, é possível gerar a lista de candidatos de vetor de movimento com base no tamanho de lista máximo ou na ordem dos candidatos a qual é dependente do tamanho de partição ou da forma de partição. Consequentemente, é possível gerar a lista de candidatos apropriada com base no tamanho de partição ou na forma de partição. Em outras palavras, é possível apropriadamente configurar as informa- ções para predição. Assim, é possível contribuir para redução na quan- tidade de códigos.
[0052] Além disto, por exemplo, um método de decodificação de acordo com um aspecto da presente descrição é um método de decodi- ficação de decodificar um vídeo de um fluxo de bits utilizando uma ima- gem predita. O método de decodificação inclui gerar uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movi- mento para uma primeira partição no vídeo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da primeira partição no vídeo. A lista tem um tamanho de lista máximo e uma ordem da plu- ralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição. O método de decodificação inclui: decodificar um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista do fluxo de bits com base no tamanho de lista máximo; selecio- nar o primeiro vetor de movimento da pluralidade de candidatos na lista utilizando o índice; e gerar uma imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
[0053] Neste modo, o decodificador é capaz de gerar a lista de can- didatos de vetor de movimento com base no tamanho de lista máximo ou na ordem dos candidatos a qual é dependente do tamanho de parti- ção ou da forma de partição. Consequentemente, o decodificador é ca- paz de gerar a lista de candidatos apropriada com base no tamanho de partição ou na forma de partição. Em outras palavras, o decodificador é capaz de apropriadamente configurar as informações para predição. Consequentemente, o decodificador é capaz de contribuir para a redu- ção em quantidade de códigos.
[0054] Além disto, por exemplo, um codificador de acordo com um aspecto da presente descrição é um codificador o qual codifica um vídeo em um fluxo de bits utilizando uma imagem predita, e inclui um divisor, um intrapreditor, um interpreditor, um transformador, um quantizador, e um codificador de entropia.
[0055] O divisor divide uma imagem corrente a ser processada in- cluída no vídeo em uma pluralidade de blocos. O intrapreditor gera a imagem predita para o bloco corrente na imagem corrente utilizando uma imagem de referência na imagem corrente. O interpreditor gera a imagem predita utilizando uma imagem de referência em uma imagem de referência diferente da imagem corrente.
[0056] O transformador transforma uma imagem de diferença entre a imagem predita gerada ou pelo intrapreditor ou o interpreditor e uma imagem do bloco corrente para gerar uma pluralidade de coeficientes de transformada. O quantizador quantiza a pluralidade de coeficientes de transformada para gerar uma pluralidade de coeficientes quantiza- dos. O codificador de entropia codifica a pluralidade de coeficientes quantizados no fluxo de bits.
[0057] Além disto, o interpreditor gera uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no vídeo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movi- mento de uma segunda partição diferente da primeira partição no vídeo.
A lista tem um tamanho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição. O interpreditor seleciona o primeiro vetor de movimento da pluralidade de candidatos incluída na lista, e codifica um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo.
[0058] Além disto, no codificador de entropia, o interpreditor codifica um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo, e gera a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
[0059] Além disto, por exemplo, um decodificador de acordo com um aspecto da presente descrição é um decodificador o qual decodifica um vídeo de um fluxo de bits utilizando uma imagem predita, e inclui um decodificador de entropia, um quantizador inverso, um transformador in- verso, um intrapreditor, um interpreditor, e um somador (reconstrutor).
[0060] O decodificador de entropia decodifica uma pluralidade de coeficientes quantizados do fluxo de bits. O quantizador inverso quan- tiza inverso a pluralidade de coeficientes quantizados para obter uma pluralidade de coeficientes de transformada. O transformador inverso transforma inverso a pluralidade de coeficientes de transformada para obter uma imagem de diferença.
[0061] O intrapreditor gera a imagem predita para um bloco corrente a ser processado em uma imagem corrente utilizando uma imagem de referência na imagem corrente incluída no vídeo. O interpreditor gera a imagem predita utilizando uma imagem de referência em uma imagem de referência diferente da imagem corrente. The somador soma a ima- gem predita gerada ou pelo intrapreditor ou o interpreditor e a imagem de diferença para reconstruir uma imagem do bloco corrente.
[0062] Além disto, o interpreditor gera uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no vídeo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movi- mento de uma segunda partição diferente da primeira partição no vídeo. A lista tem um tamanho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição.
[0063] Além disto, o decodificador de entropia decodifica um índice que indica o primeiro vetor de movimento dentre a pluralidade de candi- datos na lista do fluxo de bits com base no tamanho de lista máximo. Além disto, o interpreditor seleciona o primeiro vetor de movimento da pluralidade de candidatos na lista utilizando o índice, e gera a imagem predita para a primeira partição utilizando o primeiro vetor de movi- mento.
[0064] Além disso, estes aspectos gerais ou específicos podem ser implementados utilizando um sistema, um aparelho, um método, um cir- cuito integrado, um programa de computador, ou um meio de gravação legível por computador não transitório tal como um CD-ROM, ou qual- quer combinação de sistemas, aparelhos, métodos, circuitos integrados, programas de computador, ou meios de gravação legíveis por compu- tador.
[0065] Daqui em diante, modalidades serão descritas com referên- cia aos desenhos.
[0066] Deve ser notado que as modalidades abaixo descritas cada uma indica um exemplo geral ou específico. Os valores numéricos, for- mas, materiais, elementos constituintes, a disposição e conexão dos elementos constituintes, etapas, ordem das etapas, etc. indicados na modalidade seguinte e variações são meros exemplos, e portanto não pretendem limitar o escopo das reivindicações. Portanto, entre os ele- mentos constituintes nas modalidades seguintes, aqueles não recitados em nenhuma das reivindicações independentes que definem os concei- tos inventivos mais amplos são descritos como componentes opcionais. MODALIDADE 1
[0067] Primeiro, um esboço da Modalidade 1 será apresentado. A Modalidade 1 é um exemplo de um codificador e um decodificador aos quais os processos e/ou configurações apresentados na descrição sub- sequente de aspectos da presente descrição são aplicáveis. Note que a Modalidade 1 é meramente um exemplo de um codificador e um deco- dificador aos quais os processos e/ou configurações apresentados na descrição de aspectos da presente descrição são aplicáveis. Os proces- sos e/ou configurações apresentados na descrição de aspectos da pre- sente descrição podem também ser implementados em um codificador e um decodificador diferentes daqueles de acordo com a Modalidade 1.
[0068] Quando os processos e/ou configurações apresentados na descrição de aspectos da presente descrição são aplicados na Modali- dade 1, por exemplo, qualquer um dos seguintes pode ser executado.
[0069] (1) considerando o codificador ou o decodificador de acordo com a Modalidade 1, entre os componentes incluídos no codificador ou no decodificador de acordo com a Modalidade 1, substituir um compo- nente que corresponde a um componente apresentado na descrição de aspectos da presente descrição por um componente apresentado na descrição de aspectos da presente descrição; (2) considerando o codificador ou o decodificador de acordo com a Modalidade 1, implementar mudanças discricionárias nas fun- ções ou processos implementados executados por um ou mais compo- nentes incluídos no codificador ou no decodificador de acordo com a Modalidade 1, tal como adição, substituição, ou remoção, etc., de tais funções ou processos implementados, então substituir um componente que corresponde a um componente apresentado na descrição de as- pectos da presente descrição por um componente apresentado na des- crição de aspectos da presente descrição; (3) considerando o método implementado pelo codificador ou o decodificador de acordo com a Modalidade 1, implementar mudanças discricionárias tal como adição de processos e/ou substituição, remoção de um ou mais dos processos incluídos no método, e então substituir um processo que corresponde a um processo apresentado na descrição de aspectos da presente descrição por um processo apresentado na descrição de aspectos da presente descrição; (4) combinar um ou mais componentes incluídos no codifica- dor ou no decodificador de acordo com a Modalidade 1 com um compo- nente apresentado na descrição de aspectos da presente descrição, um componente que inclui uma ou mais funções incluídas em um compo- nente apresentado na descrição de aspectos da presente descrição, ou um componente que implementa um ou mais processos implementados por um componente apresentado na descrição de aspectos da presente descrição; (5) combinar um componente que inclui uma ou mais fun- ções incluídas em um ou mais componentes incluídos no codificador ou no decodificador de acordo com a Modalidade 1, ou um componente que implementa um ou mais processos implementados por um ou mais componentes incluídos no codificador ou no decodificador de acordo com a Modalidade 1 por um componente apresentado na descrição de aspectos da presente descrição, um componente que inclui uma ou mais funções incluídas em um componente apresentado na descrição de aspectos da presente descrição, ou um componente que implementa um ou mais processos implementados por um componente apresentado na descrição de aspectos da presente descrição;
(6) considerando o método implementado pelo codificador ou o decodificador de acordo com a Modalidade 1, entre os processos in- cluídos no método, substituir um processo que corresponde a um pro- cesso apresentado na descrição de aspectos da presente descrição por um processo apresentado na descrição de aspectos da presente des- crição; e (7) combinar um ou mais processos incluídos no método im- plementado pelo codificador ou o decodificador de acordo com a Moda- lidade 1 com um processo apresentado na descrição de aspectos da presente descrição.
[0070] Note que a implementação dos processos e/ou configura- ções apresentados na descrição dos aspectos da presente descrição não está limitado aos exemplos acima. Por exemplo, os processos e/ou configurações apresentados na descrição de aspectos da presente des- crição podem ser implementados em um dispositivo utilizado para um propósito diferente do codificador de imagem móvel / imagem ou do de- codificador de imagem móvel / imagem descrito na Modalidade 1. Mais ainda, os processos e/ou configurações apresentados na descrição de aspectos da presente descrição podem ser independentemente imple- mentados. Mais ainda, os processos e/ou configurações descritos nos diferentes aspectos podem ser combinados. Esboço de Codificador
[0071] Primeiro, o codificador de acordo com a Modalidade 1 será esboçado. A Figura 1 é um diagrama de blocos que ilustra uma configu- ração funcional do codificador 100 de acordo com a Modalidade 1. O codificador 100 é um codificador de imagem móvel / imagem que codi- fica uma imagem móvel / imagem bloco por bloco.
[0072] Como ilustrado na Figura 1, o codificador 100 é um disposi- tivo que codifica uma imagem bloco por bloco, e inclui um divisor 102,
subtrator 104, transformador 106, quantizador 108, codificador de en- tropia 110, quantizador inverso 112, transformador inverso 114, soma- dor 116, memória de blocos 118, filtro de loop 120, memória de quadros 122, intrapreditor 124, interpreditor 126, e controlador de predição 128.
[0073] O codificador 100 é realizado como, por exemplo, um pro- cessador e memória genéricos. Neste caso, quando um programa de software armazenado na memória é executado pelo processador, o pro- cessador funciona como o divisor 102, subtrator 104, transformador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, filtro de loop 120, intrapreditor 124, interpreditor 126, e controlador de predição 128. Alternativamente, o codificador 100 pode ser realizado como um ou mais circuitos eletrô- nicos dedicados que correspondem ao divisor 102, subtrator 104, trans- formador 106, quantizador 108, codificador de entropia 110, quantizador inverso 112, transformador inverso 114, somador 116, filtro de loop 120, intrapreditor 124, interpreditor 126, e controlador de predição 128.
[0074] Daqui em diante, cada componente incluído no codificador 100 será descrito. Divisor
[0075] O divisor 102 divide cada imagem incluída em uma imagem móvel inserida em blocos, e emite cada bloco para o subtrator 104. Por exemplo, o divisor 102 primeiro divide uma imagem em blocos de um tamanho fixo (por exemplo, 128×128). O bloco de tamanho fixo é tam- bém referido como uma unidade de árvore de codificação (CTU). O di- visor 102 então divide cada bloco de tamanho fixo em blocos de tama- nhos variáveis (por exemplo, 64×64 ou menores), com base em divisão de bloco de quadtree recursivo e/ou árvore binária. O bloco de tamanho variável é também referido como uma unidade de codificação (CU), uma unidade de predição (PU), ou uma unidade de transformada (TU). Note que nesta modalidade, não há necessidade de diferenciar entre CU, PU,
e TU; todos ou alguns dos blocos em uma imagem podem ser proces- sados por CU, PU, ou TU.
[0076] A Figura 2 ilustra um exemplo de divisão de bloco de acordo com a Modalidade 1. Na Figura 2, as linhas cheias representam limites de bloco de blocos divididos por divisão de bloco quadtree, e as linhas tracejadas representam limites de bloco de blocos divididos por divisão de bloco de árvore binária.
[0077] Aqui, o bloco 10 é um bloco de 128×128 pixels quadrado (bloco de 128×128). Este bloco de 128×128 10 é primeiro dividido em quadro blocos de 64x64 quadrados (divisão de bloco de quadtree).
[0078] O bloco de 64x64 superior esquerdo é adicionalmente verti- calmente dividido em dois blocos de 32×64 retangulares, e o bloco de 32×64 esquerdo é adicionalmente verticalmente dividido em dois blocos de 16×64 retangulares (divisão de bloco de árvore binária). Como um resultado, o bloco de 64x64 superior esquerdo é dividido em dois blocos de 16×64 11 e 12 e um bloco de 32×64 13.
[0079] O bloco de 64x64 superior direito é horizontalmente dividido em dois blocos de 64×32 retangulares 14 e 15 (divisão de bloco de ár- vore binária).
[0080] O bloco de 64x64 inferior esquerdo é primeiro dividido em quatro blocos de 32x32 quadrados (divisão de bloco de quadtree). O bloco superior esquerdo e o bloco inferior direito entre os quatro blocos de 32x32 são adicionalmente divididos. O bloco de 32x32 superior es- querdo é verticalmente dividido em dois blocos de 16x32 retangulares, e o bloco de 16×32 direito é adicionalmente horizontalmente dividido em dois blocos de 16x16 (divisão de bloco de árvore binária). O bloco de 32x32 inferior direito é horizontalmente dividido em dois blocos de 32×16 (divisão de bloco de árvore binária). Como um resultado, o bloco de 64x64 inferior esquerdo é dividido no bloco de 16×32 16, dois blocos de 16x16 17 e 18, dois blocos de 32x32 19 e 20, e dois blocos de 32×16
21 e 22.
[0081] O bloco de 64x64 inferior direito 23 não é dividido.
[0082] Como acima descrito, na Figura 2, o bloco 10 é dividido em 13 blocos de tamanho variável 11 até 23 com base em divisão de bloco de quadtree recursivo e árvore binária. Este tipo de divisão é também referido como divisão de quadtree mais árvore binária (QTBT).
[0083] Note que na Figura 2, um bloco é dividido em quatro ou dois blocos (divisão de bloco de quadtree ou árvore binária), mas a divisão não está limitada a este exemplo. Por exemplo, um bloco pode ser divi- dido em três blocos (divisão de bloco ternária). A divisão que inclui tal divisão de bloco ternária é também referida como uma divisão de árvore de múltiplos tipos (MBT). Subtrator
[0084] O subtrator 104 subtrai um sinal de predição (amostra de predição) de um sinal original (amostra original) por bloco dividido pelo divisor 102. Em outras palavras, o subtrator 104 calcula erros de predi- ção (também referidos como resíduos) de um bloco a ser codificado (da- qui em diante referido como um bloco corrente). O subtrator 104 então emite os erros de predição calculados para o transformador 106.
[0085] O sinal original é um sinal inserido no codificador 100, e é um sinal que representa uma imagem para cada imagem incluída em uma imagem móvel (por exemplo, um sinal luma e dois sinais croma). Daqui em diante, um sinal que representa uma imagem é também referido como uma amostra. Transformador
[0086] O transformador 106 transforma erros de predição de domí- nio espacial em coeficientes de transformada de domínio de frequência, e emite os coeficientes de transformada para o quantizador 108. Mais especificamente, o transformador 106 aplica, por exemplo, uma trans- formada de cosseno discreta predefinida (DCT) ou transformada de seno discreta (DST) nos erros de predição de domínio espacial.
[0087] Note que o transformador 106 pode adaptavelmente seleci- onar um tipo de transformada dentre uma pluralidade de tipo de trans- formadas, e erros de predição de transformada em coeficientes de transformada utilizando uma função de base de transformada que cor- responde ao tipo de transformada selecionado. Este tipo de transfor- mada é também referida como uma transformada de múltiplos núcleos explícita (EMT) ou transformada múltipla adaptável (AMT).
[0088] Os tipos de transformada incluem, por exemplo, DCT-II, DCT-V, DCT-VIII, DST-I, e DST-VII. A Figura 3 é um gráfico que indica funções de base de transformada para cada tipo de transformada. Na Figura 3, N indica o número de pixels de entrada. Por exemplo, a sele- ção de um tipo de transformada dentre a pluralidade de tipos de trans- formada pode depender do tipo de predição (intrapredição e interpredi- ção), e pode depender do modo intrapredição.
[0089] As informações que indicam se aplicar tal EMT ou AMT (re- feridas como, por exemplo, um sinalizador de AMT) e informações que indicam o tipo de transformada selecionado são sinalizadas no nível de CU. Note que a sinalização de tais informações não precisa ser execu- tada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de telas lado a lado, ou nível de CTU).
[0090] Mais ainda, o transformador 106 pode aplicar uma transfor- mada secundária nos coeficientes de transformada (resultado da trans- formada). Tal transformada secundária é também referida como trans- formada secundária adaptável (AST) ou transformada secundária não separável (NSST). Por exemplo, o transformador 106 aplica uma trans- formada secundária a cada sub-bloco (por exemplo, cada sub-bloco de 4x4) incluído no bloco dos coeficientes de transformada que correspon- dem aos erros de intrapredição. As informações que indicam se aplicar
NSST e as informações relativas à matriz de transformada utilizada em NSST são sinalizadas no nível de CU. Note que a sinalização de tais informações não precisa ser executada no nível de CU, e pode ser exe- cutada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de telas lado a lado, ou nível de CTU).
[0091] Aqui, uma transformada separável é um método no qual uma transformada é executada uma pluralidade de vezes, separadamente executando uma transformada para cada direção de acordo com o nú- mero de dimensões inserido. Uma transformada não separável é um método de executar uma transformada coletiva no qual duas ou mais dimensões em uma entrada multidimensional são coletivamente consi- deradas como uma única dimensão.
[0092] Em um exemplo de uma transformada não separável, quando a entrada é um bloco de 4x4, o bloco de 4x4 é considerado como uma única rede que inclui 16 componentes, e a transformada aplica uma matriz de transformada de 16x16 na rede.
[0093] Mais ainda, similar ao acima, após um bloco de 4x4 de en- trada ser considerado como uma única rede que inclui 16 componentes, uma transformada que executa uma pluralidade de rotações Givens so- bre a rede (isto é, uma Transformada de Hypercube-Givens) é também um exemplo de uma transformada não separável. Quantizador
[0094] O quantizador 108 quantiza os coeficientes de transformada emitidos do transformador 106. Mais especificamente, o quantizador 108 escaneia, em uma ordem de escaneamento predeterminada, os co- eficientes de transformada do bloco corrente, e quantiza os coeficientes de transformada escaneados com base em parâmetros de quantização (QP) que correspondem aos coeficientes de transformada. O quantiza- dor 108 então emite os coeficientes de transformada quantizados (daqui em diante referidos como coeficientes quantizados) do bloco corrente para o codificador de entropia 110 e o quantizador inverso 112.
[0095] Uma ordem predeterminada é uma ordem para quantizar / quantizar inversamente os coeficientes de transformada. Por exemplo, uma ordem de escaneamento pré-determinada é definida como ordem de frequência ascendente (de baixa para alta frequência) ou ordem de frequência descendente (de alta para baixa frequência).
[0096] Um parâmetro de quantização é um parâmetro que define um tamanho de etapa de quantização (largura de quantização). Por exemplo, se o valor do parâmetro de quantização aumentar, o tamanho de etapa de quantização também aumenta. Em outras palavras, se o valor do parâmetro de quantização aumentar, o erro de quantização au- menta. Codificador de Entropia
[0097] O codificador de entropia 110 gera um sinal codificado (fluxo de bits codificado) codificando em comprimento variável os coeficientes quantizados, os quais são entradas do quantizador 108. Mais especifi- camente, o codificador de entropia 110, por exemplo, binariza coeficien- tes quantizados e codifica em aritmética o sinal binário. Quantizador Inverso
[0098] O quantizador inverso 112 quantiza inverso os coeficientes quantizados, os quais são entradas do quantizador 108. Mais especifi- camente, o quantizador inverso 112 quantiza inverso, em uma ordem de escaneamento predeterminada, os coeficientes quantizados do bloco corrente. O quantizador inverso 112 então emite os coeficientes de transformada quantizados inversos do bloco corrente para o trans- formador inverso 114. Transformador Inverso
[0099] O transformador inverso 114 restaura erros de predição transformando inverso os coeficientes de transformada os quais são en-
tradas do quantizador inverso 112. Mais especificamente, o transforma- dor inverso 114 restaura os erros de predição do bloco corrente apli- cando uma transformada inversa que corresponde à transformada apli- cada pelo transformador 106 nos coeficientes de transformada. O trans- formador inverso 114 então emite os erros de predição restaurados para o somador 116.
[0100] Note que, como informações são perdidas na quantização, os erros de predição restaurados não coincidem com os erros de predi- ção calculados pelo subtrator 104. Em outras palavras, os erros de pre- dição restaurados incluem erros de quantização. Somador
[0101] O somador 116 reconstrói o bloco corrente somando os erros de predição, os quais são entradas do transformador inverso 114, e amostras de predição, as quais são entradas do controlador de predição
128. O somador 116 então emite o bloco reconstruído para a memória de blocos 118 e o filtro de loop 120. Um bloco reconstruído é também referido como um bloco decodificado local. Memória de blocos
[0102] A memória de blocos 118 é um armazenamento para arma- zenar blocos em uma imagem a ser codificada (daqui em diante referida como uma imagem corrente) para referência em intrapredição. Mais es- pecificamente, a memória de blocos 118 armazena blocos reconstruí- dos emitidos do somador 116. Filtro de Loop
[0103] O filtro de loop 120 aplica um filtro de loop a blocos recons- truídos pelo somador 116, e emite os blocos reconstruídos filtrados para memória de quadros 122. Um filtro de loop é um filtro utilizado em um loop de codificação (filtro in-loop), e inclui, por exemplo, um filtro de des- bloqueio (DF), um deslocamento adaptável de amostra (SAO) e um filtro de loop adaptável (ALF).
[0104] Em ALF, um filtro de mínimo erro quadrático para remover artefatos de compressão é aplicado. Por exemplo, um filtro dentre uma pluralidade de filtros é selecionado para cada sub-bloco de 2×2 no bloco corrente com base em direção e atividade de gradientes locais, e é apli- cado.
[0105] Mais especificamente, primeiro, cada sub-bloco (por exem- plo, cada sub-bloco de 2×2) é categorizado em um de uma pluralidade de classes (por exemplo, 15 ou 25 classes). A classificação do sub- bloco é baseada em direcionalidade e atividade de gradiente. Por exem- plo, o índice de classificação C é derivado com base em direcionalidade do gradiente D (por exemplo, 0 a 2 ou 0 a 4) e atividade de gradiente A (por exemplo, 0 a 4) (por exemplo, C = 5D + A). Então, com base no índice de classificação C, cada sub-bloco é categorizado em uma de uma pluralidade de classes (por exemplo, 15 ou 25 classes).
[0106] Por exemplo, a direcionalidade de gradiente D é calculada comparando gradientes de uma pluralidade de direções (por exemplo, as direções horizontal, vertical, e duas diagonais). Mais ainda, por exemplo, a atividade de gradiente A é calculada somando gradientes de uma pluralidade de direções e quantizando a soma.
[0107] O filtro a ser utilizado para cada sub-bloco é determinado dentre a pluralidade de filtros com base no resultado de tal categoriza- ção.
[0108] A forma de filtro a ser utilizada em ALF é, por exemplo, uma forma de filtro simétrica circular. A Figura 4A até Figura 4C ilustram exemplos de forma de filtros utilizadas em ALF. A Figura 4A ilustra um filtro em forma de diamante de 5×5, a Figura 4B ilustra um filtro em forma de diamante de 7×7, e a Figura 4C ilustra um filtro em forma de diamante de 9×9. As informações que indicam a forma de filtro estão sinalizadas no nível de imagem. Note que a sinalização de informações que indicam a forma de filtro não precisa ser executada no nível da imagem, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de telas lado a lado, nível de CTU, ou nível de CU).
[0109] A habilitação ou desabilitação de ALF é determinada no nível da imagem ou no nível de CU. Por exemplo, para luma, a decisão de aplicar ALF ou não é feita no nível de CU, e para croma, a decisão de aplicar ALF ou não é feita no nível de imagem. As informações que in- dicam se ALF está habilitado ou desabilitado são sinalizadas no nível de imagem ou nível de CU. Note que a sinalização de informações que indicam se ALF está habilitado ou desabilitado não precisam ser execu- tadas no nível de imagem ou nível de CU, e podem ser executadas em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de telas lado a lado, ou nível de CTU).
[0110] O conjunto de coeficientes para a pluralidade de filtros sele- cionáveis (por exemplo, 15 ou 25 filtros) é sinalizado no nível de ima- gem. Note que a sinalização do conjunto de coeficientes não precisa ser executada no nível de imagem, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de fatia, nível de telas lado a lado, nível de CTU, nível de CU, ou nível de sub-bloco). Memória de Quadros
[0111] A memória de quadros 122 é um armazenamento para ar- mazenar imagens de referência utilizadas em interpredição, e é também referido como um armazenamento temporário de quadros. Mais especi- ficamente, a memória de quadros 122 armazena blocos reconstruídos filtrados pelo filtro de loop 120. Intrapreditor
[0112] O intrapreditor 124 gera um sinal de predição (sinal de intra- predição) intrapredizendo o bloco corrente com referência a um bloco ou blocos na imagem corrente e armazenados na memória de blocos 118 (também referida como predição intraquadro). Mais especifica-
mente, o intrapreditor 124 gera um sinal de intrapredição por intrapredi- ção com referência a amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos vizinhos ao bloco corrente, e então emite o sinal de intrapredição para o controlador de predição 128.
[0113] Por exemplo, o intrapreditor 124 executa intrapredição utili- zando um modo dentre uma pluralidade de modos de intrapredição pre- definidos. Os modos de intrapredição incluem um ou mais modos de predição não direcional e uma pluralidade de modos de predição direci- onal.
[0114] Os um ou mais modos de predição não direcional incluem, por exemplo, modo de predição plana e modo de predição DC definidos no padrão H.265 / codificação de vídeo de alta eficiência (HEVC) (ver NPL 1).
[0115] A pluralidade de modos de predição direcional inclui, por exemplo, os 33 modos de predição direcional definidos no padrão H.265 / HEVC. Note que a pluralidade de modos de predição direcional pode ainda incluir 32 modos de predição direcional além dos 33 modos de predição direcional (para um total de 65 modos de predição direcional). A Figura 5A ilustra 67 modos de intrapredição utilizados em intrapredi- ção (dois modos de predição não direcional e 65 modos de predição direcional). As setas cheias representam as 33 direções definidas no padrão H.265 / HEVC, e as setas tracejadas representam as 32 direções adicionais.
[0116] Note que um bloco de luma pode ser referenciado em intra- predição de bloco de croma. Em outras palavras, um componente de croma do bloco corrente pode ser predito com base em um componente de luma do bloco corrente. Tal intrapredição é também referida como predição de modelo linear de componente cruzado (CCLM). Tal modo de intrapredição de bloco de croma que referência um bloco de luma (referido como, por exemplo, modo de CCLM) pode ser adicionado como um dos modos de intrapredição de bloco de croma.
[0117] O intrapreditor 124 pode corrigir valores de pixel de pós-in- trapredição com base em gradientes de pixel de referência horizontal / vertical. Intrapredição acompanhada por este tipo de correção é também referida como uma combinação de intrapredição dependente de posição (PDPC). As informações que indicam se aplicar PDPC ou não (referidas como, por exemplo, um sinalizador de PDPC) são, por exemplo, sinali- zadas no nível de CU. Note que a sinalização destas informações não precisa ser executada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de telas lado a lado, ou nível de CTU). Interpreditor
[0118] O interpreditor 126 gera um sinal de predição (sinal de inter- predição) interpredizendo o bloco corrente com referência a um bloco ou blocos em uma imagem de referência, a qual é diferente da imagem corrente e está armazenada na memória de quadros 122 (também refe- rida como predição interquadros). A interpredição e executada por bloco corrente ou sub-bloco (por exemplo, por bloco de 4×4) no bloco cor- rente. Por exemplo, o interpreditor 126 executa estimativa de movimento em uma imagem de referência para o bloco ou sub-bloco corrente. O interpreditor 126 então gera um sinal de interpredição do bloco ou sub- bloco corrente por compensação de movimento utilizando informações de movimento (por exemplo, um vetor de movimento) obtidas de esti- mativa de movimento. O interpreditor 126 então emite o sinal de inter- predição gerado para o controlador de predição 128.
[0119] As informações de movimento utilizadas em compensação de movimento são sinalizadas. Um preditor de vetor de movimento pode ser utilizado para a sinalização do vetor de movimento. Em outras pala- vras, a diferença entre o vetor de movimento e o preditor de vetor de movimento pode ser sinalizada.
[0120] Note que o sinal de interpredição pode ser gerado utilizando informações de movimento para um bloco vizinho além das informações de movimento para o bloco corrente obtidas de estimativa de movi- mento. Mais especificamente, o sinal de interpredição pode ser gerado por sub-bloco no bloco corrente calculando uma soma ponderada de um sinal de predição com base em informações de movimento obtidas de estimativa de movimento e um sinal de predição com base em informa- ções de movimento para um bloco vizinho. Tal interpredição (compen- sação de movimento) é também referida como compensação de movi- mento de bloco sobreposta (OBMC).
[0121] Em tal modo de OBMC, as informações que indicam o tama- nho de sub-bloco para OBMC (referidas como, por exemplo, tamanho de bloco de OBMC) são sinalizadas no nível de sequência. Mais ainda, as informações que indicam se aplicar o modo de OBMC ou não (refe- ridas como, por exemplo, um sinalizador de OBMC) são sinalizadas no nível de CU. Note que a sinalização de tais informações não precisa ser executada no nível de sequência e nível de CU, e pode ser executada em outro nível (por exemplo, no nível de imagem, nível de fatia, nível de telas lado a lado, nível de CTU, ou nível de sub-bloco).
[0122] Daqui em diante, o modo de OBMC será descrito em mais detalhes. A Figura 5B é um fluxograma e Figura 5C é um diagrama con- ceitual para ilustrar um esboço de um processo de correção de imagem de predição executado através de processamento de OBMC.
[0123] Primeiro, uma imagem de predição (Pred) é obtida através de compensação de movimento típica utilizando um vetor de movimento (MV) atribuído ao bloco corrente.
[0124] A seguir, uma imagem de predição (Pred_L) é obtida apli- cando um vetor de movimento (MV_L) do bloco esquerdo vizinho codi- ficado no bloco corrente, e um primeiro passo da correção da imagem de predição é feito sobrepondo a imagem de predição e Pred_L.
[0125] Similarmente, uma imagem de predição (Pred_U) é obtida aplicando um vetor de movimento (MV_U) do bloco superior vizinho co- dificado no bloco corrente, e um segundo passo da correção da imagem de predição é feito sobrepondo a imagem de predição que resulta do primeiro passo e Pred_U. O resultado do segundo passo é a imagem de predição final.
[0126] Note que o exemplo acima é um método de correção de dois passos que utiliza os blocos esquerdo e superior vizinhos, mas o mé- todo pode ser um método de correção de três passos ou mais alto que também utiliza o bloco direito e/ou esquerdo vizinho.
[0127] Note que a região sujeita à sobreposição pode ser a região de pixel inteira do bloco, e, alternativamente, pode ser uma região de limite de bloco parcial.
[0128] Note que aqui, o processo de correção de imagem de predi- ção está descrito como sendo baseado em uma única imagem de refe- rência, mas o mesmo se aplica quando uma imagem de predição é cor- rigida com base em uma pluralidade de imagens de referência. Em tal caso, após as imagens de predição corrigidas que resultam de executar correção com base em cada uma das imagens de referências serem obtidas, as imagens de predição corrigidas obtidas são adicionalmente sobrepostas para obter a imagem de predição final.
[0129] Note que a unidade do bloco corrente pode ser um bloco de predição e, alternativamente, pode ser um sub-bloco obtido adicional- mente dividindo o bloco de predição.
[0130] Um exemplo de um método para determinar se implementar processamento de OBMC é utilizando um obmc_flag, o qual é um sinal que indica se implementar o processamento de OBMC. Como um exem- plo específico, o codificador determina se o bloco corrente pertence a uma região que inclui um movimento complicado. O codificador ajusta o obmc_flag para um valor de "1" quando o bloco pertence a uma região que inclui um movimento complicado e implementa o processamento de OBMC quando codificando, e ajusta o obmc_flag para um valor de "0" quando o bloco não pertence a uma região que inclui um movimento complicado e codifica sem implementar o processamento de OBMC. O decodificador comuta entre implementar o processamento de OBMC ou não decodificando o obmc_flag escrito no fluxo e executando a decodi- ficação de acordo com o valor de sinalizador.
[0131] Note que as informações de movimento podem ser deriva- das no lado do decodificador sem serem sinalizadas. Por exemplo, um modo de mesclagem definido no padrão H.265/HEVC pode ser utilizado. Mais ainda, por exemplo, as informações de movimento podem ser de- rivadas executando estimativa de movimento no lado de o decodifica- dor. Neste caso, a estimativa do movimento e executada sem utilizar os valores de pixel do bloco corrente.
[0132] Aqui, um modo para executar estimativa de movimento no lado de o decodificador será descrito. Um modo para executar estima- tiva de movimento no lado de o decodificador é também referido como um modo de derivação de vetor de movimento coincidido em padrão (PMMVD) ou modo de aumento de resolução de taxa de quadros (FRUC).
[0133] Um exemplo de processamento de FRUC está ilustrado na Figura 5D. Primeiro, uma lista de candidatos (uma lista de candidatos pode ser uma lista de mesclagem) de candidatos cada um incluindo um preditor de vetor de movimento é gerada com referência a vetores de movimento de blocos codificados que estão espacialmente ou tempo- ralmente vizinhos ao bloco corrente. A seguir, o melhor MV candidato é selecionado dentre uma pluralidade de MVs candidatos registrados na lista de candidatos. Por exemplo, os valores de avaliação para os can- didatos incluídos na lista de candidatos são calculados e um candidato é selecionado com base nos valores de avaliação calculados.
[0134] A seguir, um vetor de movimento para o bloco corrente é de- rivado do vetor de movimento do candidato selecionado. Mais especifi- camente, por exemplo, o vetor de movimento para o bloco corrente é calculado como o vetor de movimento do candidato selecionado (melhor MV candidato) como está. Alternativamente, o vetor de movimento para o bloco corrente pode ser derivado por coincidência de padrão execu- tada na vizinhança de uma posição em uma imagem de referência que corresponde ao vetor de movimento do candidato selecionado. Em ou- tras palavras, quando a vizinhança do melhor MV candidato é pesqui- sada através do mesmo método e um MV que tem um melhor valor de avaliação é encontrado, o melhor MV candidato pode ser atualizado para o MV que tem o melhor valor de avaliação, e o MV que tem o me- lhor valor de avaliação pode ser utilizado como o MV final para o bloco corrente. Note que uma configuração na qual este processamento não é implementado é também aceitável.
[0135] Os mesmos processos podem ser executados em casos nos quais o processamento é executado em unidades de sub-blocos.
[0136] Note que um valor de avaliação é calculado calculando a di- ferença na imagem reconstruída por coincidência de padrão executada entre uma região em uma imagem de referência que corresponde a um vetor de movimento e uma região predeterminada. Note que o valor de avaliação pode ser calculado utilizando alguma outra informação além da diferença.
[0137] A coincidência de padrão utilizada é ou a primeira coincidên- cia de padrão ou a segunda coincidência de padrão. A primeira coinci- dência de padrão e a segunda coincidência de padrão são também re- feridas como coincidência bilateral e coincidência de gabarito, respecti- vamente.
[0138] Na primeira coincidência de padrão, a coincidência de pa- drão e executada entre dois blocos ao longo da trajetória de movimento do bloco corrente em duas diferentes imagens de referência. Portanto, na primeira coincidência de padrão, uma região em outra imagem de referência em conformidade com a trajetória de movimento do bloco cor- rente é utilizada como a região predeterminada para o cálculo acima descrito do valor de avaliação de candidato.
[0139] A Figura 6 é para ilustrar um exemplo de uma coincidência de padrão (coincidência bilateral) entre dois blocos ao longo de uma trajetória de movimento. Como ilustrado na Figura 6, na primeira coinci- dência de padrão, dois vetores de movimento (MV0, MV1) são deriva- dos encontrando a melhor coincidência entre dois blocos ao longo da trajetória de movimento do bloco corrente (Cur block) em duas diferen- tes imagens de referência (Ref0, Ref1). Mais especificamente, uma di- ferença entre (i) uma imagem reconstruída em uma posição especifi- cada em uma primeira imagem de referência codificada (Ref0) especifi- cada por um MV candidato e (ii) uma imagem reconstruída em uma po- sição especificada em uma segunda imagem de referência codificada (Ref1) especificada por um MV simétrico escalado em um intervalo de tempo de exibição do MV candidato pode ser derivada, e o valor de ava- liação para o bloco corrente pode ser calculado utilizando a diferença derivada. O MV candidato que tem o melhor valor de avaliação dentre a pluralidade de MVs candidatos pode ser selecionado como o MV final.
[0140] Sob a suposição de trajetória de movimento contínuo, os ve- tores de movimento (MV0, MV1) que apontam para os dois blocos de referência deverão ser proporcionais às distâncias temporais (TD0, TD1) entre a imagem corrente (Cur Pic) e as duas imagens de referência (Ref0, Ref1). Por exemplo, quando a imagem corrente está temporal- mente entre as duas imagens de referência e a distância temporal da imagem corrente para as duas imagens de referência é a mesma, a pri- meira coincidência de padrão deriva um vetor de movimento bidirecional baseado em espelho.
[0141] Na segunda coincidência de padrão, a coincidência de pa- drão e executada entre um gabarito na imagem corrente (blocos vizi- nhos ao bloco corrente na imagem corrente (por exemplo, os blocos vi- zinhos superior e/ou esquerdo)) e um bloco em uma imagem de refe- rência. Portanto, na segunda coincidência de padrão, um bloco vizinho ao bloco corrente na imagem corrente é utilizado como a região prede- terminada para o cálculo acima descrito do valor de avaliação de candi- dato.
[0142] A Figura 7 é para ilustrar um exemplo de coincidência de pa- drão (coincidência de gabarito) entre um gabarito na imagem corrente e um bloco em uma imagem de referência. Como ilustrado na Figura 7, na segunda coincidência de padrão, um vetor de movimento do bloco corrente é derivado pesquisando uma imagem de referência (Ref0) para encontrar o bloco que melhor coincide com os blocos vizinhos do bloco corrente (Cur bloco) na imagem corrente (Cur Pic). Mais especifica- mente, uma diferença entre (i) uma imagem reconstruída de uma região codificada que é ambas ou uma das regiões esquerda vizinha e superior vizinha e (ii) uma imagem reconstruída na mesma posição em uma ima- gem de referência codificada (Ref0) especificada por um MV candidato pode ser derivada, e o valor de avaliação para o bloco corrente pode ser calculado utilizando a diferença derivada. O MV candidato que tem o melhor valor de avaliação dentre a pluralidade de MVs candidato pode ser selecionado com o melhor MV candidato.
[0143] As informações que indicam se aplicar o modo de FRUC ou não (referidas como, por exemplo, um sinalizador de FRUC) são sinali- zadas no nível de CU. Mais ainda, quando o modo de FRUC é aplicado (por exemplo, quando o sinalizador de FRUC é ajustado para verda- deiro), as informações que indicam o método de coincidência de padrão (primeira coincidência de padrão ou segunda coincidência de padrão)
são sinalizadas no nível de CU. Note que a sinalização de tais informa- ções não precisa ser executada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de telas lado a lado, nível de CTU, ou nível de sub- bloco).
[0144] Aqui, um modo para derivar um vetor de movimento com base em um modelo assumindo um movimento linear uniforme será descrito. Este modo é também referido como um modo de fluxo ótico bidirecional (BIO).
[0145] A Figura 8 é para ilustrar um modelo assumindo um movi- mento linear uniforme. Na Figura 8, (vx, vy) denotam um vetor de veloci- dade, e 0 e 1 denotam distâncias temporais entre a imagem corrente (Cur Pic) e duas imagens de referência (Ref0, Ref1). (MVx0, MVy0) de- notam um vetor de movimento que corresponde à imagem de referência Ref0, e (MVx1, MVy1) denotam um vetor de movimento que corresponde à imagem de referência Ref1.
[0146] Aqui, sob a suposição de movimento linear uniforme exibido pelo vetor de velocidade (vx, vy), (MVx0, MVy0) e (MVx1, MVy1) são re- presentados (vx0, vy0) e (−vx1, −vy1), respectivamente, e a seguinte equação de fluxo ótico é dada. MATH. 1 k  k  k  I t  v x I x  v y I y  0. (1)
[0147] Aqui, I(k) denota um valor de luma da imagem de referência k (k = 0, 1) após a compensação de movimento. Esta equação de fluxo ótico mostra que a soma de (i) a derivada de tempo do valor de luma, (ii) o produto da velocidade horizontal e do componente horizontal do gradiente espacial de uma imagem de referência, e (iii) o produto da velocidade vertical e do componente vertical do gradiente espacial de uma imagem de referência é igual a zero. Um vetor de movimento de cada bloco obtido de, por exemplo, uma lista de mesclagem é corrigido pixel por pixel com base em uma combinação da equação de fluxo ótico e da interpolação de Hermite.
[0148] Note que um vetor de movimento pode ser derivado no lado de o decodificador utilizando um método outro que derivar um vetor de movimento com base em um modelo assumindo movimento linear uni- forme. Por exemplo, um vetor de movimento pode ser derivado para cada sub-bloco com base em vetores de movimento de blocos vizinhos.
[0149] Aqui, um modo no qual um vetor de movimento é derivado para cada sub-bloco com base em vetores de movimento de blocos vi- zinhos será descrito. Este modo é também referido como um modo de predição de compensação de movimento afim.
[0150] A Figura 9A é para ilustrar derivar um vetor de movimento de cada sub-bloco com base em vetores de movimento de blocos vizinhos. Na Figura 9A, o bloco corrente inclui 16 sub-blocos de 4×4. Aqui, o vetor de movimento v0 do ponto de controle de canto superior esquerdo no bloco corrente é derivado com base em vetores de movimento de sub- blocos vizinhos, e o vetor de movimento v1 do ponto de controle de canto superior direito do bloco corrente é derivado com base em vetores de movimento de blocos vizinhos. Então, utilizando os dois vetores de mo- vimento v0 e v1, o vetor de movimento (vx, vy) de cada sub-bloco no bloco corrente é derivado utilizando a Equação 2 abaixo. MATH. 2  (v  v0 x ) ( v1 y  v 0 y )  v x  1x x y  v0 x  w w   v0 y ) (2) (v v  1 y ( v1 x  v 0 x ) x y  v0 y   y w w
[0151] Aqui, x e y são posições horizontal e vertical do sub-bloco, respectivamente, e w é um coeficiente ponderado predeterminado.
[0152] Tal modo de predição de compensação de movimento afim pode incluir um número de modos de diferentes métodos de derivar os vetores de movimento dos pontos de controle de canto superior es- querdo e superior direito. As informações que indicam tal modo de pre- dição de compensação de movimento afim (referido como, por exemplo, um sinalizador afim) são sinalizadas no nível de CU. Note que a sinali- zação de informações indicando o modo de predição de compensação de movimento afim não precisa ser executada no nível de CU, e pode ser executada em outro nível (por exemplo, no nível de sequência, nível de imagem, nível de fatia, nível de telas lado a lado, nível de CTU, ou nível de sub-bloco). Controlador de Predição
[0153] O controlador de predição 128 seleciona ou o sinal de intra- predição ou o sinal de interpredição, e emite o sinal de predição seleci- onado para o subtrator 104 e somador 116.
[0154] Aqui, um exemplo de derivar um vetor de movimento através de modo de mesclagem em uma imagem corrente será dado. A Figura 9B é para ilustrar um esboço de um processo para derivar um vetor de movimento através de modo de mesclagem.
[0155] Primeiro, uma lista de preditores de MV na qual os preditores de MV candidatos são registrados é gerada. Os exemplos de preditores de MV candidatos incluem: preditores de MV espacialmente vizinhos, os quais são MVs de blocos codificados posicionados na vizinhança es- pacial do bloco corrente; um preditor de MV temporalmente vizinho, o qual é um MV de um bloco em uma imagem de referência codificada que é vizinha de um bloco na mesma localização que o bloco corrente; um preditor de MV combinado, o qual é um MV gerado pela combinação dos valores de MV do preditor de MV espacialmente vizinho e do predi- tor de MV temporalmente vizinho; e um preditor de MV zero o qual é um MV cujo valor é zero.
[0156] A seguir, o MV do bloco corrente é determinado selecio-
nando um preditor de MV dentre a pluralidade de preditores de MV re- gistrados na lista de preditores de MV.
[0157] Mais ainda, no codificador de comprimento variável, um mer- ge_idx, o qual é um sinal que indica qual preditor de MV é selecionado, é escrito e codificado no fluxo.
[0158] Note que os preditores de MV registrados na lista de predi- cadores de MV ilustrada na Figura 9B constituem um exemplo. O nú- mero de preditores de MV registrados na lista de preditores de MV pode ser diferente do número ilustrado na Figura 9B, os preditores de MV registrados na lista de preditores de MV podem omitir um ou mais dos tipos de preditores de MV dados no exemplo da Figura 9B, e os predi- tores de MV registrados na lista de preditores de MV podem incluir um ou mais tipos de preditores de MV além de e diferentes dos tipos dados no exemplo na Figura 9B.
[0159] Note que o MV final pode ser determinado executando um processamento de DMVR (a ser posteriormente descrito) utilizando o MV do bloco corrente derivado através do modo de mesclagem.
[0160] Aqui, um exemplo de determinar um MV utilizando o proces- samento de DMVR será fornecido.
[0161] A Figura 9C é um diagrama conceitual para ilustrar um es- boço de processamento de DMVR.
[0162] Primeiro, o conjunto de MVP mais apropriado para o bloco corrente é considerado ser o MV candidato, os pixels de referência são obtidos de uma primeira imagem de referência, a qual é uma imagem processada na direção L0 de acordo com o MV candidato, e uma se- gunda imagem de referência, a qual é uma imagem processada na di- reção L1 de acordo com o MV candidato, e um gabarito é gerado calcu- lando a média dos pixels de referência.
[0163] A seguir, utilizando o gabarito, as regiões circundantes dos
MVs candidatos da primeira e segunda imagens de referência são pes- quisadas, e o MV com o custo mais baixo é determinado para ser o MV final. Note que o valor de custo é calculado utilizando, por exemplo, a diferença entre cada valor de pixel no gabarito e cada valor de pixel nas regiões pesquisadas, assim como o valor de MV.
[0164] Note que os esboços dos processos aqui descritos são fun- damentalmente os mesmos tanto no codificador quanto no decodifica- dor.
[0165] Note que um processamento outro que o processamento exatamente como acima descrito pode ser utilizado, desde que o pro- cessamento seja capaz de derivar o MV final pesquisando nos arredores do MV candidato.
[0166] Aqui um exemplo de um modo que gera uma imagem de pre- dição utilizando processamento de LIC será fornecido.
[0167] A Figura 9D é para ilustrar um esboço de um método de ge- ração de imagem de predição que utiliza um processo de correção de luminância executado através de processamento de LIC.
[0168] Primeiro, um MV é extraído para obter, de uma imagem de referência codificada, uma imagem de referência que corresponde ao bloco corrente.
[0169] A seguir, informações que indicam como o valor de luminân- cia mudou entre a imagem de referência e a imagem corrente são ex- traídas e um parâmetro de correção de luminância é calculado utilizando valores de pixel de luminância para a região de referência vizinha es- querda codificada e a região de referência vizinha superior codificada, e o valor do pixel de luminância na mesma localização na imagem de re- ferência especificada pelo MV.
[0170] A imagem de predição para o bloco corrente é gerada exe- cutando um processo de correção de luminância utilizando o parâmetro de correção de luminância na imagem de referência na imagem de re- ferência especificada pelo MV.
[0171] Note que a forma da região de referência circundante ilus- trada na Figura 9D é apenas um exemplo; a região de referência circun- dante pode ter uma forma diferente.
[0172] Mais ainda, apesar de uma imagem de predição ser gerada de uma única imagem de referência neste exemplo, em casos nos quais uma imagem de predição é gerada de uma pluralidade de imagens de referência também, a imagem de predição é gerada após a executar um processo de correção de luminância, através do mesmo método, nas imagens de referência obtidas das imagens de referência.
[0173] Um exemplo de um método para determinar se implementar o processamento de LIC é utilizando um lic_flag, o qual é um sinal que indica se implementar o processamento de LIC. Como exemplo especí- fico, o codificador determina se o bloco corrente pertence a uma região de mudança de luminância. O codificador ajusta o lic_flag para um valor de "1" quando o bloco pertence a uma região de mudança de luminância e implementa o processamento de LIC quando codificando, e ajusta o lic_flag para um valor de "0" quando o bloco não pertence a uma região de mudança de luminância e codifica sem implementar o processa- mento de LIC. O decodificador comuta entre implementar o processa- mento de LIC ou não decodificando o lic_flag escrito no fluxo e execu- tando a decodificação de acordo com o valor de sinalizador.
[0174] Um exemplo de um diferente método de determinar se im- plementar o processamento de LIC é determinar isto de acordo com se o processamento de LIC foi determinado para ser implementado para um bloco circundante. Em um exemplo específico, quando o modo de mesclagem é utilizado no bloco corrente, se o processamento de LIC foi aplicado na codificação do bloco codificado circundante selecionado quando derivando o MV no processamento de modo de mesclagem pode ser determinado, e se implementar o processamento de LIC ou não pode ser comutado com base no resultado da determinação. Note que neste exemplo, o mesmo se aplica ao processamento executado no lado do decodificador. Esboço do decodificador
[0175] A seguir, um decodificador capaz de decodificar um sinal co- dificado (fluxo de bits codificado) emitido do codificador 100 será des- crito. A Figura 10 é um diagrama de blocos que ilustra uma configuração funcional do decodificador 200 de acordo com a Modalidade 1. O deco- dificador 200 é um decodificador de imagem móvel / imagem que deco- difica uma imagem móvel / imagem bloco por bloco.
[0176] Como ilustrado na Figura 10, o decodificador 200 inclui um decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, somador 208, memória de blocos 210, filtro de loop 212, memória de quadros 214, intrapreditor 216, interpreditor 218, e contro- lador de predição 220.
[0177] O decodificador 200 é realizado como, por exemplo, um pro- cessador e memória genéricos. Neste caso, quando um programa de software armazenado na memória é executado pelo processador, o pro- cessador funciona como o decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, somador 208, filtro de loop 212, intrapreditor 216, interpreditor 218, e controlador de predição 220. Alter- nativamente, o decodificador 200 pode ser realizado como um ou mais circuitos eletrônicos dedicados que correspondem ao decodificador de entropia 202, quantizador inverso 204, transformador inverso 206, so- mador 208, filtro de loop 212, intrapreditor 216, interpreditor 218, e con- trolador de predição 220.
[0178] Daqui em diante, cada componente incluído no decodificador 200 será descrito. Decodificador de Entropia
[0179] O decodificador entropia 202 decodifica em entropia um fluxo de bits codificado. Mais especificamente, por exemplo, o decodificador de entropia 202 decodifica por aritmética um fluxo de bits codificado em um sinal binário. O decodificador de entropia 202 então debinariza o sinal binário. Com isto, o decodificador de entropia 202 emite coeficien- tes quantizados de cada bloco para o quantizador inverso 204. Quantizador inverso
[0180] O quantizador inverso 204 quantiza inverso coeficientes quantizados de um bloco a ser decodificado (daqui em diante referido como um bloco corrente), os quais são entradas do decodificador de entropia 202. Mais especificamente, o quantizador inverso 204 quantiza inverso coeficientes quantizados do bloco corrente com base em parâ- metros de quantização que corresponde aos coeficientes quantizados. O quantizador inverso 204 então emite os coeficientes quantizados in- versos (isto é, coeficientes de transformada) do bloco corrente para o transformador inverso 206. Transformador Inverso
[0181] O transformador inverso 206 restaura os erros de predição transformando inverso os coeficientes de transformada os quais são en- tradas do quantizador inverso 204.
[0182] Por exemplo, quando as informações analisadas de um fluxo de bits codificado indicam a aplicação de EMT ou AMT (por exemplo, quando o sinalizador de AMT é ajustado para verdadeiro), o transforma- dor inverso 206 transforma inverso os coeficientes de transformada do bloco corrente com base em informações que indicam o tipo de trans- formada analisado.
[0183] Mais ainda, por exemplo, quando as informações analisadas de um fluxo de bits codificado indicam a aplicação de NSST, o transfor- mador inverso 206 aplica uma transformada inversa secundária nos co- eficientes de transformada.
Somador
[0184] O somador 208 reconstrói o bloco corrente somando os erros de predição, os quais são entradas do transformador inverso 206, e amostras de predição, as quais são uma entrada do controlador de pre- dição 220. O somador 208 então emite o bloco reconstruído para a me- mória de blocos 210 e filtro de loop 212. Memória de blocos
[0185] A memória de blocos 210 é um armazenamento para arma- zenar blocos em uma imagem a ser decodificada (daqui em diante refe- rida como a imagem corrente) para referência em intrapredição. Mais especificamente, a memória de blocos 210 armazena os blocos recons- truídos emitidos do somador 208. Filtro de loop
[0186] O filtro de loop 212 aplica um filtro de loop em blocos recons- truídos pelo somador 208, e emite os blocos reconstruídos filtrados para a memória de quadros 214 e, por exemplo, um dispositivo de display.
[0187] Quando as informações que indicam a habilitação ou desa- bilitação de ALF analisado de um fluxo de bits codificado indicam habi- litado, um filtro dentre uma pluralidade de filtros é selecionado com base na direção e atividade de gradientes locais, e o filtro selecionado é apli- cado no bloco reconstruído. Memória de Quadros
[0188] A memória de quadros 214 é um armazenamento para ar- mazenar imagens de referência utilizadas na interpredição, e é também referida como um armazenamento temporário de quadros. Mais especi- ficamente, a memória de quadros 214 armazena blocos reconstruídos filtrados pelo filtro de loop 212. Intrapreditor
[0189] O Intrapreditor 216 gera um sinal de predição (sinal de intra-
predição) por intrapredição com referência a um bloco ou blocos na ima- gem corrente e armazenada na memória de blocos 210. Mais especifi- camente, o intrapreditor 216 gera um sinal de intrapredição por intrapre- dição com referência às amostras (por exemplo, valores de luma e/ou croma) de um bloco ou blocos vizinhos ao bloco corrente, e então emite o sinal de intrapredição para o controlador de predição 220.
[0190] Note que quando um modo de intrapredição no qual um bloco de croma é intrapredito de um bloco de luma é selecionado, o intrapreditor 216 pode predizer o componente de croma do bloco cor- rente com base no componente de luma do bloco corrente.
[0191] Mais ainda, quando as informações que indicam a aplicação de PDPC são analisadas de um fluxo de bits codificado, o intrapreditor 216 corrige os valores de pixel de pós-intrapredição com base em gra- dientes de pixel de referência horizontal / vertical. Interpreditor
[0192] O interpreditor 218 prediz o bloco corrente com referência a uma imagem de referência armazenada na memória de quadros 214. A interpredição e executada por bloco corrente ou por sub-bloco (por exemplo, por bloco de 4×4) no bloco corrente. Por exemplo, o interpre- ditor 218 gera um sinal de interpredição do bloco corrente ou sub-bloco por compensação de movimento utilizando informações de movimento (por exemplo, um vetor de movimento) analisadas de um fluxo de bits codificado e emite o sinal de interpredição para o controlador de predi- ção 220.
[0193] Note que quando as informações analisadas do fluxo de bits codificado indicam a aplicação de modo OBMC, o interpreditor 218 gera o sinal de interpredição utilizando informações de movimento para um bloco vizinho além de informações de movimento para o bloco corrente obtidas de estimativa de movimento.
[0194] Mais ainda, quando as informações analisadas do fluxo de bits codificado indicam a aplicação de modo de FRUC, o interpreditor 218 deriva as informações de movimento executando estimativa de mo- vimento de acordo com o método de coincidência de padrão (coincidên- cia bilateral ou coincidência de gabarito) analisado do fluxo de bits codi- ficado. O interpreditor 218 então executa compensação de movimento utilizando as informações de movimento derivadas.
[0195] Mais ainda, quando o modo de BIO deve ser aplicado, o in- terpreditor 218 deriva um vetor de movimento com base em um modelo assumindo um movimento linear uniforme. Mais ainda, quando as infor- mações analisadas do fluxo de bits codificado indicam que o modo de predição de compensação de movimento afim deve ser aplicado, o in- terpreditor 218 deriva um vetor de movimento de cada sub-bloco com base em vetores de movimento de blocos vizinhos. Controlador de Predição
[0196] O controlador de predição 220 seleciona ou o sinal intrapre- dição ou o sinal de interpredição e emite o sinal de predição selecionado para o somador 208. Detalhes de Interpredição
[0197] Na interpredição de acordo com esta modalidade, uma lista de candidatos de vetor de movimento é gerada para uma partição cor- rente a ser processada, e um vetor de movimento para a partição cor- rente é selecionado da lista de candidatos de vetor de movimento. Uma imagem predita para a partição corrente é então gerada utilizando a ve- tor de movimento para a partição corrente. A partição corrente é então codificada e decodificada utilizando a imagem predita.
[0198] Aqui, a partição é uma partição incluída em uma imagem, e pode também ser representada como um bloco, uma área, ou uma faixa. A partição pode ser uma unidade codificação ou uma subunidade de codificação obtenível dividindo uma unidade de codificação. Além disto, a partição pode ser uma unidade de predição ou uma subunidade de predição obtenível dividindo uma unidade de predição. Além disto, a partição pode ser uma unidade de transformada ou a subunidade de transformada obtenível dividindo uma unidade de transformada.
[0199] Além disto, a partição por ser uma partição retangular ou uma partição não retangular. Além disto, a partição retangular pode ser uma partição quadrada ou uma partição não quadrada. Além disto, a partição não retangular pode ser uma partição triangular ou uma parti- ção que tem outra forma.
[0200] A lista de candidatos de vetor de movimento pode ser repre- sentada como uma lista de candidatos de vetor de movimento ou sim- plesmente como uma lista. A lista de candidatos de vetor de movimento para a partição corrente inclui uma pluralidade de candidatos para o ve- tor de movimento para a partição corrente. Os candidatos podem tam- bém ser representados como preditores de vetor de movimento ou can- didatos de vetor de movimento. Os candidatos incluídos na lista de can- didatos de vetor de movimento para a partição corrente são derivados de, por exemplo, vetores de movimento para partições vizinhas que são vizinhas da partição corrente. A lista de candidatos de vetor de movi- mento pode ser a lista de mesclagem ou a lista no modo de FRUC acima descrita, ou uma lista em outro modo.
[0201] Especificamente, os vetores de movimento de partições vizi- nhas podem ser derivados como candidatos. Além disto, os candidatos podem ser derivados escalando vetores de movimento de partições vi- zinhas. Aqui, os vetores de movimento das partições vizinhas são veto- res de movimento utilizados para codificar ou decodificar as partições vizinhas.
[0202] Além disto, dentre a pluralidade de candidatos na lista de candidatos de vetor de movimento para a partição corrente, um parâ- metro de índice de mesclagem que indica o vetor de movimento para a partição corrente é codificado e decodificado. Neste modo, o mesmo vetor de movimento é selecionado e utilizado codificação e decodifica- ção no codificador 100 e o decodificador 200. O parâmetro de índice de mesclagem pode também ser representado como um parâmetro de ín- dice de vetor de mesclagem ou simplesmente um índice. O parâmetro de índice de mesclagem indica qualquer um da pluralidade de candida- tos na lista de candidatos de vetor de movimento. Por através de regra, a lista de candidatos de vetor de movimento não está limitada à lista de candidatos de vetor de movimento no modo de mesclagem.
[0203] Daqui em diante, descrições são dadas de uma pluralidade de modos específicos para interpredição executada pelo codificador 100 e o decodificador 200. Primeiro Aspecto de Interpredição
[0204] Nesta modalidade, um número máximo de candidatos de ve- tor de movimento em uma lista de candidatos de vetor de movimento, isto é, um tamanho de lista máximo da lista de candidatos de vetor de movimento é dependente adaptavelmente de um tamanho de partição. O tamanho de lista máximo pode também ser representada como um tamanho de limite superior ou simplesmente como um tamanho de lista.
[0205] Um parâmetro de índice de mesclagem para selecionar um vetor de movimento da lista de candidatos de vetor de movimento é co- dificado em um fluxo de bits no codificador 100, e o parâmetro de índice de mesclagem codificado é decodificado do fluxo de bits no decodifica- dor 200. Neste tempo, o parâmetro de índice de mesclagem é codificado utilizando codificação aritmética e é decodificado utilizando decodifica- ção aritmética.
[0206] O tamanho de código do parâmetro de índice de mesclagem é dependente do número máximo de candidatos de vetor de movimento. Em outras palavras, a quantidade de códigos do parâmetro de índice de mesclagem é dependente do tamanho de lista máximo da lista de can- didatos de vetor de movimento. Quando o tamanho de lista máximo é um primeiro tamanho de lista menor do que um segundo tamanho de lista, um parâmetro de índice de mesclagem é codificado e decodificado utilizando um pequeno número de bits comparado com o caso onde o tamanho de lista máximo é o segundo tamanho de lista.
[0207] Por exemplo, quando o tamanho de lista máximo é pequeno, pelo menos um do limite superior ou do limite inferior no número de bits de um parâmetro de índice de mesclagem é pequeno comparado com o caso onde o tamanho de lista máximo é grande.
[0208] A Figura 11 é um fluxograma que indica o primeiro aspecto de interpredição executado pelo codificador 100 ilustrado na Figura 1.
[0209] Primeiro, o interpreditor 126 no codificador 100 deriva um nú- mero máximo com base no tamanho de partição de uma partição cor- rente a ser processada (S101). O número máximo é um tamanho má- ximo de candidatos de vetor de movimento para o vetor de movimento a ser utilizado para predizer a partição corrente. O interpreditor 126 de- riva um número máximo diferente com base em um tamanho de parti- ção. Por exemplo, o interpreditor 126 pode derivar um menor número máximo para uma partição maior do que para uma partição menor. Em outras palavras, o interpreditor 126 pode derivar um número máximo maior para a partição menor do que para a partição maior.
[0210] A seguir, o interpreditor 126 gera uma pluralidade de candi- datos de vetor de movimento para a partição corrente até que o número de candidatos de vetor de movimento atinge o número máximo para ge- rar uma lista de candidatos de vetor de movimento (S102). O interpredi- tor 126 então seleciona um vetor de movimento para a partição corrente da lista de candidatos de vetor de movimento (S103).
[0211] A seguir, o codificador de entropia 110 do codificador 100 codifica um parâmetro de índice de mesclagem que indica o vetor de movimento para a partição corrente dentre a pluralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento.
Neste tempo, o codificador de entropia 110 codifica, em um fluxo de bits, um parâmetro de índice de mesclagem com base no número máximo derivado (S104).
[0212] Por exemplo, o codificador de entropia 110 binariza o parâ- metro de índice de mesclagem em uma pluralidade de bits, e codifica a pluralidade de bits utilizando codificação aritmética. No método de bina- rização e no método de codificação aritmética, o parâmetro de índice de mesclagem pode ser representado como um pequeno número de bits quando o número máximo derivado é pequeno comparado com o caso onde o número máximo derivado é grande.
[0213] Finalmente, o codificador 100 codifica a partição corrente uti- lizando um vetor de movimento selecionado (S105).
[0214] Especificamente, o interpreditor 126 gera uma imagem pre- dita s partição corrente utilizando o vetor de movimento selecionado. O subtrator 104 deriva uma imagem de diferença entre a imagem original e a imagem predita da partição corrente. O transformador 106 trans- forma a imagem de diferença em uma pluralidade de coeficientes de transformada. O quantizador 108 quantiza a pluralidade de coeficientes de transformada. O codificador de entropia 110 então codifica a plurali- dade quantizada de coeficientes de transformada em um fluxo de bits.
[0215] A Figura 12 é um fluxograma que indica o primeiro aspecto de interpredição executado pelo decodificador 200 ilustrado na Figura
10.
[0216] Primeiro, o interpreditor 218 no decodificador 200 deriva um número máximo com base no tamanho de partição de uma partição cor- rente a ser processada (S111). O número máximo é um tamanho má- ximo de candidatos de vetor de movimento para o vetor de movimento a ser utilizado para predizer a partição corrente. O interpreditor 218 de- riva um número máximo diferente com base em um tamanho de parti- ção. Por exemplo, o interpreditor 218 pode derivar um menor número máximo para uma partição maior do que para uma partição menor.
[0217] A seguir, o interpreditor 218 gera uma pluralidade de candi- datos de vetor de movimento para a partição corrente até que o número de candidatos de vetor de movimento atinge o número máximo para ge- rar uma lista de candidatos de vetor de movimento (S112). Além disto, decodificador de entropia 202 no decodificador 200 decodifica, de um fluxo de bits, um parâmetro de índice de mesclagem com base no nú- mero máximo derivado (S113). Por exemplo, o decodificador de entro- pia 202 decodifica o parâmetro de índice de mesclagem utilizando de- codificação aritmética.
[0218] Este parâmetro de índice de mesclagem indica o vetor de movimento para a partição dentre a pluralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento. O interpre- ditor 218 seleciona um vetor de movimento para a partição corrente da lista de candidatos de vetor de movimento com base no parâmetro de índice de mesclagem (S114). No método de binarização e no método de codificação aritmética, o parâmetro de índice de mesclagem pode ser representado como um pequeno número de bits quando o número máximo derivado é pequeno comparado com o caso onde o número máximo derivado é grande.
[0219] Finalmente, o decodificador 200 decodifica a partição cor- rente utilizando o vetor de movimento selecionado (S115).
[0220] Especificamente, o interpreditor 218 gera uma imagem pre- dita da partição corrente utilizando o vetor de movimento selecionado. O decodificador de entropia 202 decodifica, do fluxo de bits, a plurali- dade quantizada de coeficientes de transformada. O quantizador in- verso 204 quantiza inverso a pluralidade quantizada de coeficientes de transformada. O transformador inverso 206 transforma a pluralidade de coeficientes de transformada em uma imagem de diferença. O somador 208 soma a imagem de diferença e a imagem predita para reconstruir uma imagem.
[0221] A lista de candidatos de vetor de movimento inclui uma plu- ralidade de candidatos para o vetor de movimento para a partição cor- rente. Os números de candidatos de vetor de movimento variam entre duas partições que têm diferentes tamanhos de partição. Em outras pa- lavras, dois tamanhos de lista máximos para as duas listas de candida- tos de vetores de movimento a serem geradas para as duas partições que têm os diferentes tamanhos de partição variam.
[0222] A Figura 13 ilustra exemplos dos números máximos de can- didatos de vetor de movimento relativos a tamanhos de partição. Neste exemplo, quando o tamanho de partição de uma primeira partição é maior do que o tamanho de partição de uma segunda partição, o número máximo de vetores de movimento para a primeira partição é menor do que o número máximo de vetores de movimento para a segunda parti- ção.
[0223] Neste modo, é altamente provável que o codificador 100 e o decodificador 200 possam selecionar um vetor de movimento apropri- ado dentre um grande número de candidatos de vetor de movimento para a pequena partição.
[0224] Por outro lado, existe uma possibilidade que nenhum vetor de movimento apropriado esteja incluído no grande número de candida- tos de vetor de movimento para a grande partição. Consequentemente, o codificador 100 e o decodificador 200 são capazes de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a grande partição.
[0225] A Figura 14 ilustra outros exemplos dos números máximos de candidatos de vetor de movimento relativos a tamanhos de partição. Neste exemplo, quando o tamanho de partição de uma primeira partição é maior do que o tamanho de partição de uma segunda partição, o nú- mero máximo de vetores de movimento para a primeira partição é maior do que o número máximo de vetores de movimento para a segunda par- tição. Em outras palavras, quando o tamanho de partição da primeira partição é menor do que o tamanho de partição da segunda partição, o número máximo de vetores de movimento para a primeira partição é menor do que o número máximo de vetores de movimento para a se- gunda partição.
[0226] Quando um bloco pequeno é utilizado, o número total de blo- cos aumenta. Neste modo, existe uma possibilidade que o número total de blocos aumente e a quantidade de códigos diminua. Nos exemplos na Figura 14, o codificador 100 e o decodificador 200 são capazes de reduzir um aumento em quantidade de códigos utilizando a lista de can- didatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a pequena partição.
[0227] Neste aspecto, os números máximos de candidatos de vetor de movimento para os vetores de movimento são adaptavelmente de- terminados com base nos tamanhos de partição. Neste modo, é possí- vel aumentar a eficiência de codificação e otimizar a quantidade de com- putação. Além disto, é possível aumentar a qualidade de imagem atra- vés do processamento de predição apropriado.
[0228] Deve ser notado que o codificador 100 e o decodificador 200 executam interpredição no mesmo modo. Além disso, pelo menos parte deste aspecto pode ser combinada com pelo menos parte de outros um ou mais aspectos. Além disso, qualquer um dos processos, elementos, sintaxes, características, e uma combinação opcional destes de acordo com este aspecto podem ser aplicados a qualquer um dos aspectos.
[0229] Todos os processos acima descritos nem sempre precisam ser incluídos em um método, e todos os elementos nem sempre preci-
sam ser incluídos em um dispositivo. Em outras palavras, parte da plu- ralidade de processos acima descritos nem sempre precisa ser incluída no método, e parte da pluralidade de elementos acima descritos nem sempre precisa ser incluída no dispositivo. Segundo Aspecto de Interpredição
[0230] Nesta modalidade, um número máximo de candidatos de ve- tor de movimento em uma lista de candidatos de vetor de movimento, isto é, um tamanho de lista máximo da lista de candidatos de vetor de movimento é dependente adaptavelmente de uma forma de partição. O tamanho de lista máximo pode também ser representado como um ta- manho de limite superior ou simplesmente como um tamanho de lista.
[0231] Um parâmetro de índice de mesclagem para selecionar um vetor de movimento da lista de candidatos de vetor de movimento é co- dificado em um fluxo de bits no codificador 100, e o parâmetro de índice de mesclagem codificado é decodificado do fluxo de bits no decodifica- dor 200. Neste tempo, o parâmetro de índice de mesclagem é codificado utilizando codificação aritmética e é decodificado utilizando decodifica- ção aritmética.
[0232] O tamanho de código do parâmetro de índice de mesclagem é dependente do número máximo de candidatos de vetor de movimento. Em outras palavras, a quantidade de códigos do parâmetro de índice de mesclagem é dependente do tamanho de lista máximo da lista de can- didatos de vetor de movimento. Quando o tamanho de lista máximo é um primeiro tamanho de lista menor do que um segundo tamanho de lista, um parâmetro de índice de mesclagem é codificado e decodificado utilizando um pequeno número de bits comparado com o caso onde o tamanho de lista máximo é o segundo tamanho de lista.
[0233] Por exemplo, quando o tamanho de lista máximo é pequeno, pelo menos um do limite superior ou do limite inferior no número de bits de um parâmetro de índice de mesclagem é pequeno comparado com o caso onde o tamanho de lista máximo é grande.
[0234] A Figura 15 é um fluxograma que indica o segundo aspecto de interpredição executado pelo codificador 100 ilustrado na Figura 1.
[0235] Primeiro, o interpreditor 126 no codificador 100 deriva um nú- mero máximo com base na forma de partição de uma partição corrente a ser processada (S201). O número máximo é um tamanho máximo de candidatos de vetor de movimento para o vetor de movimento a ser uti- lizado para predizer a partição corrente. O interpreditor 126 deriva um número máximo diferente com base em uma forma de partição dife- rente. Por exemplo, o interpreditor 126 pode derivar um número máximo menor para uma partição não retangular (triangular) do que um número máximo para uma partição retangular.
[0236] A seguir, o interpreditor 126 gera uma pluralidade de candi- datos de vetor de movimento para a partição corrente até que o número de candidatos de vetor de movimento atinge o número máximo para ge- rar uma lista de candidatos de vetor de movimento (S202). O interpredi- tor 126 então seleciona um vetor de movimento para a partição corrente da lista de candidatos de vetor de movimento (S203).
[0237] A seguir, o codificador de entropia 110 do codificador 100 codifica um parâmetro de índice de mesclagem que indica o vetor de movimento para a partição corrente dentre a pluralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento. Neste tempo, o codificador de entropia 110 encodes, em um fluxo de bits, um parâmetro de índice de mesclagem com base no número má- ximo derivado (S204).
[0238] Por exemplo, o codificador de entropia 110 binariza o parâ- metro de índice de mesclagem em uma pluralidade de bits, e codifica a pluralidade de bits utilizando codificação aritmética. No método de bina- rização e o método de codificação aritmética, o parâmetro de índice de mesclagem pode ser representado como um pequeno número de bits quando o número máximo derivado é menor do que quando o número máximo derivado é grande.
[0239] Finalmente, o codificador 100 codifica a partição corrente uti- lizando o vetor de movimento selecionado (S205).
[0240] Especificamente, o interpreditor 126 gera uma imagem pre- dita da partição corrente utilizando o vetor de movimento selecionado. O subtrator 104 deriva uma imagem de diferença entre a imagem origi- nal e a imagem predita da partição corrente. O transformador 106 trans- forma a imagem de diferença em uma pluralidade de coeficientes de transformada. O quantizador 108 quantiza a pluralidade de coeficientes de transformada. O codificador de entropia 110 então codifica a plurali- dade quantizada de coeficientes de transformada em um fluxo de bits.
[0241] A Figura 16 é um fluxograma que indica o segundo aspecto de interpredição executado pelo decodificador 200 ilustrado na Figura
10.
[0242] Primeiro, o interpreditor 218 no decodificador 200 deriva um número máximo com base na forma de partição de uma partição cor- rente a ser processado (S211). O número máximo é um tamanho má- ximo de candidatos de vetor de movimento para o vetor de movimento para ser utilizado para predizer a partição corrente. O interpreditor 218 deriva um número máximo diferente com base em uma forma de parti- ção diferente. Por exemplo, interpreditor 218 pode derivar um número máximo menor para uma partição não retangular (triangular) do que um número máximo para uma partição retangular.
[0243] A seguir, o interpreditor 218 gera uma pluralidade de candi- datos de vetor de movimento para a partição corrente até que o número de candidatos de vetor de movimento atinge o número máximo para ge- rar uma lista de candidatos de vetor de movimento (S212). Além disto, decodificador de entropia 202 no decodificador 200 decodifica, de um fluxo de bits, um parâmetro de índice de mesclagem com base no nú- mero máximo derivado (S213). Por exemplo, o decodificador de entro- pia 202 decodifica o parâmetro de índice de mesclagem utilizando de- codificação aritmética.
[0244] Este parâmetro de índice de mesclagem indica o vetor de movimento para a partição dentre a pluralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento. O interpre- ditor 218 seleciona um vetor de movimento para a partição corrente da lista de candidatos de vetor de movimento com base no parâmetro de índice de mesclagem (S214). No método de binarização e no método de codificação aritmética, o parâmetro de índice de mesclagem pode ser representado como um pequeno número de bits quando o número máximo derivado é pequeno comparado com o caso onde o número máximo derivado é grande.
[0245] Finalmente, o decodificador 200 decodifica a partição cor- rente utilizando o vetor de movimento selecionado (S215).
[0246] Especificamente, o interpreditor 218 gera uma imagem pre- dita da partição corrente utilizando o vetor de movimento selecionado. O decodificador de entropia 202 decodifica, do fluxo de bits, a plurali- dade quantizada de coeficientes de transformada. O quantizador in- verso 204 quantiza inverso a pluralidade quantizada de coeficientes de transformada. O transformador inverso 206 transforma a pluralidade de coeficientes de transformada em uma imagem de diferença. O somador 208 soma a imagem de diferença e a imagem predita para reconstruir uma imagem.
[0247] A lista de candidatos de vetor de movimento inclui uma plu- ralidade de candidatos para o vetor de movimento para partição cor- rente. Os números de candidatos de vetor de movimento máximos va- riam entre duas partições que têm diferentes formas de partição. Em outras palavras, dois tamanhos de lista máximos para as duas listas de candidatos de vetor de movimento a serem geradas para as duas parti- ções que têm as diferentes formas de partição variam.
[0248] A Figura 17 ilustra exemplos dos números máximos de can- didatos de vetor de movimento relativos às formas de partição. Nestes exemplos, o número máximo de candidatos de vetor de movimento para uma partição triangular é menor do que o número máximo de candidatos de vetor de movimento para uma partição retangular.
[0249] Neste modo, é altamente provável que o codificador 100 e o decodificador 200 possam selecionar um vetor de movimento apropri- ado dentre um grande número de candidatos de vetor de movimento para a partição retangular.
[0250] Por outro lado, existe uma possibilidade que o número de partições processadas referíveis seja pequeno e o número de candida- tos de vetor de movimento deriváveis seja pequeno ao redor da partição triangular. Consequentemente, o codificador 100 e o decodificador 200 são capazes de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a partição triangular.
[0251] No entanto, por exemplo, quando uma partição que é vizinha da hipotenusa de uma partição triangular está disponível, existe uma possibilidade que o número de partições processadas referíveis seja grande e que o número de candidatos de vetor de movimento deriváveis é grande ao redor da partição triangular. Consequentemente, o número máximo de vetores de movimento para a partição triangular não está limitado aos exemplos na Figura 17, e pode ser maior do que o número máximo de vetores de movimento para a partição retangular.
[0252] A Figura 18 ilustra outros exemplos dos números máximos de candidatos de vetor de movimento relativos às formas de partição.
Nestes exemplos, o número máximo de candidatos de vetor de movi- mento para a partição retangular (não quadrada) é maior do que o nú- mero máximo de candidatos de vetor de movimento para a partição qua- drada.
[0253] Neste modo, o codificador 100 e o decodificador 200 são ca- pazes de selecionar um vetor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma partição que tem uma forma complicada. Por outro lado, o codificador 100 e o decodificador 200 são capazes de simplificar o processamento utili- zando uma lista de candidatos de vetor de movimento que tem um pe- queno tamanho de lista máximo para uma partição que tem uma forma simples. Neste modo, o codificador 100 e o decodificador 200 são ca- pazes de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento.
[0254] Além disto, por exemplo, uma partição retangular (não qua- drada) é assumida ter diferentes características entre um lado longo e um lado curto. Consequentemente, é assumido ser efetivo que um nú- mero comparativamente grande de candidatos de vetor de movimento seja derivado de uma pluralidade de partições vizinhas, e que um vetor de movimento seja selecionado do número comparativamente grande de candidatos de vetor de movimento. Por outro lado, uma partição qua- drada é assumida não ter características similares à partição retangular (não quadrada). Assim, é assumido ser efetivo que o processamento seja simplificado.
[0255] No entanto, existe uma possibilidade que nenhum vetor de movimento apropriado esteja incluído no grande número de candidatos de vetor de movimento para uma partição complicada. Consequente- mente, pode ser efetivo reduzir a quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candidatos de vetor de movimento que tem um pequeno tamanho de lista máximo para a parti- ção complicada. Consequentemente, o número máximo de candidatos de vetor de movimento para uma partição retangular (não quadrada) não está limitado ao exemplo na Figura 18, e pode ser menor do que o número máximo de vetores de movimento para uma partição quadrada.
[0256] Neste aspecto, os números máximos de candidatos de vetor de movimento para os vetores de movimento são adaptavelmente de- terminados com base nas formas de partição. Neste modo, é possível aumentar a eficiência de codificação e otimizar a quantidade de compu- tação. Além disto, é possível aumentar a qualidade de imagem através do processamento de predição apropriado.
[0257] Deve ser notado que o codificador 100 e o decodificador 200 executam interpredição no mesmo modo. Além disto, pelo menos parte deste aspecto pode ser combinada com pelo menos parte de outros um ou mais aspectos. Além disto, qualquer um dos processos, elementos, sintaxes, características, e uma combinação opcional destes de acordo com este aspecto pode ser aplicado a qualquer dos aspectos.
[0258] Todos os processos acima descritos nem sempre precisam estar incluídos em um método, e todos os elementos nem sempre pre- cisam estar incluídos em um dispositivo. Em outras palavras, parte da pluralidade de processos acima descritos nem sempre precisa estar in- cluída no método, e parte da pluralidade de elementos acima descritos nem sempre precisa estar incluída no dispositivo. Terceiro Aspecto de Interpredição
[0259] Nesta modalidade, a ordem de candidatos de vetor de movi- mento em uma lista de candidatos de vetor de movimento, isto é, a or- dem de candidatos na lista de candidatos de vetor de movimento é de- pendente adaptavelmente de um tamanho de partição. Uma pluralidade de candidatos de vetor de movimento pode ser derivada em uma ordem inicial, e pode ser redisposta com base em um tamanho de partição.
[0260] Um parâmetro de índice de mesclagem para selecionar um vetor de movimento da lista de candidatos de vetor de movimento é co- dificado em um fluxo de bits no codificador 100, e o parâmetro de índice de mesclagem codificado é decodificado do fluxo de bits no decodifica- dor 200. Neste tempo, o parâmetro de índice de mesclagem é codificado utilizando codificação aritmética e é decodificado utilizando decodifica- ção aritmética.
[0261] O tamanho de código do parâmetro de índice de mesclagem é dependente da posição do candidato de vetor de movimento que in- dica o parâmetro de índice de mesclagem na ordem de candidatos na lista de candidatos de vetor de movimento. O parâmetro de índice de mesclagem que indica um candidato de vetor de movimento disposto antes de outro candidato de vetor de movimento na ordem de candida- tos na lista de candidatos de vetor de movimento é codificado e decodi- ficada utilizando um pequeno número de bits comparado com o caso do parâmetro de índice de mesclagem que indica o outro candidato de ve- tor de movimento disposto após.
[0262] A Figura 19 é um fluxograma que indica o terceiro aspecto de interpredição executado pelo codificador 100 ilustrado na Figura 1.
[0263] Primeiro, o interpreditor 126 no codificador 100 gera, para uma partição, uma lista de candidatos de vetor de movimento que inclui uma pluralidade de candidatos de vetor de movimento em ordem a qual é dependente do tamanho de partição (S301). Por exemplo, o interpre- ditor 126 pode gerar, para uma grande partição, uma lista de candidatos de vetor de movimento que inclui uma pluralidade de candidatos de ve- tor de movimento em ordem diferente da ordem no caso de uma pe- quena partição.
[0264] A seguir, o interpreditor 126 então seleciona um vetor de mo- vimento para a partição corrente da lista de candidatos de vetor de mo- vimento (S302).
[0265] A seguir, o codificador de entropia 110 do codificador 100 codifica, em um fluxo de bits, um parâmetro de índice de mesclagem que indica o vetor de movimento para a partição corrente dentre a plu- ralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento (S303). Por exemplo, o codificador de entropia 110 binariza o parâmetro de índice de mesclagem em uma pluralidade de bits, e codifica a pluralidade de bits utilizando codificação aritmética.
[0266] Finalmente, o codificador 100 codifica a partição corrente uti- lizando o vetor de movimento selecionado (S304).
[0267] Especificamente, o interpreditor 126 gera uma imagem pre- dita da partição corrente utilizando o vetor de movimento selecionado. O subtrator 104 deriva uma imagem de diferença entre a imagem origi- nal e a imagem predita da partição corrente. O transformador 106 trans- forma a imagem de diferença em uma pluralidade de coeficientes de transformada. O quantizador 108 quantiza a pluralidade de coeficientes de transformada. O codificador de entropia 110 então codifica a plurali- dade quantizada de coeficientes de transformada em um fluxo de bits.
[0268] A Figura 20 é um fluxograma que indica o terceiro aspecto de interpredição executado pelo decodificador 200 ilustrado na Figura
10.
[0269] Primeiro, o interpreditor 218 no decodificador 200 gera, para uma partição, uma lista de candidatos de vetor de movimento que inclui uma pluralidade de candidatos de vetor de movimento em ordem a qual é dependente do tamanho de partição (S311). Por exemplo, o interpre- ditor 218 pode gerar, para uma grande partição, uma lista de candidatos de vetor de movimento que inclui uma pluralidade de candidatos de ve- tor de movimento em ordem a qual é diferente da ordem no caso de uma pequena partição.
[0270] A seguir, o decodificador de entropia 202 no decodificador
200 decodifica, de um fluxo de bits, um parâmetro de índice de mescla- gem que indica o vetor de movimento para a partição corrente dentre a pluralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento (S312). Por exemplo, o decodificador de entropia 202 decodifica o parâmetro de índice de mesclagem utilizando decodi- ficação aritmética.
[0271] O interpreditor 218 então seleciona um vetor de movimento para a partição corrente da lista de candidatos de vetor de movimento com base no parâmetro de índice de mesclagem (S313).
[0272] Finalmente, o decodificador 200 decodifica a partição cor- rente utilizando o vetor de movimento selecionado (S314).
[0273] Especificamente, o interpreditor 218 gera uma imagem pre- dita da partição corrente utilizando o vetor de movimento selecionado. O decodificador de entropia 202 decodifica, do fluxo de bits, a plurali- dade quantizada de coeficientes de transformada. O quantizador in- verso 204 quantiza inverso a pluralidade quantizada de coeficientes de transformada. O transformador inverso 206 transforma a pluralidade de coeficientes de transformada em uma imagem de diferença. O somador 208 soma a imagem de diferença e a imagem predita para reconstruir uma imagem.
[0274] Como acima descrito, a lista de candidatos de vetor de mo- vimento gerada para cada partição inclui a pluralidade de candidatos de vetor de movimento para o vetor de movimento para a partição. As or- dens de candidatos variam entre as duas listas de candidatos de vetor de movimento geradas respectivamente para as duas partições que têm diferentes tamanhos de partição.
[0275] A Figura 21 ilustra exemplos das ordens de candidatos rela- tivas a tamanhos de partição. Nestes exemplos, as ordens de candida- tos variam entre uma grande partição e uma pequena partição.
[0276] A Figura 22 ilustra outros exemplos das ordens de candida- tos relativas a tamanhos de partição. Nestes exemplos, a ordem de can- didatos varia entre um bloco de M × M/2 e um bloco quadrado de M × M.
[0277] Neste aspecto, as ordens de candidatos de vetor de movi- mento para os vetores de movimento são adaptavelmente determinadas com base nos tamanhos de partição. Neste modo, é possível aumentar a eficiência de codificação.
[0278] Deve ser notado que o codificador 100 e o decodificador 200 executam interpredição no mesmo modo. Além disto, pelo menos parte deste aspecto pode ser combinada com pelo menos parte de outros um ou mais aspectos. Além disto, qualquer um dos processos, elementos, sintaxes, características, e uma combinação opcional destes de acordo com este aspecto pode ser aplicado a qualquer dos aspectos.
[0279] Todos os processos acima descritos nem sempre precisam estar incluídos em um método, e todos os elementos nem sempre pre- cisam estar incluídos em um dispositivo. Em outras palavras, parte da pluralidade de processos acima descritos nem sempre precisa estar in- cluída no método, e parte da pluralidade de elementos acima descritos nem sempre precisa estar incluída no dispositivo. Quarto Aspecto de Interpredição
[0280] Nesta modalidade, a ordem de candidatos de vetor de movi- mento em uma lista de candidatos de vetor de movimento, isto é, a or- dem de candidatos na lista de candidatos de vetor de movimento é de- pendente adaptavelmente de uma forma de partição. Uma pluralidade de candidatos de vetor de movimento pode ser derivada em uma ordem inicial, e pode ser redisposta com base em uma forma de partição.
[0281] Um parâmetro de índice de mesclagem para selecionar um vetor de movimento da lista de candidatos de vetor de movimento é co- dificado em um fluxo de bits no codificador 100, e o parâmetro de índice de mesclagem codificado é decodificado do fluxo de bits no decodifica- dor 200. Neste tempo, o parâmetro de índice de mesclagem é codificado utilizando codificação aritmética e é decodificado utilizando decodifica- ção aritmética.
[0282] O tamanho de código do parâmetro de índice de mesclagem é dependente da posição do candidato de vetor de movimento que in- dica o parâmetro de índice de mesclagem na ordem de candidatos na lista de candidatos de vetor de movimento. O parâmetro de índice de mesclagem que indica um candidato de vetor de movimento disposto antes de outro candidato de vetor de movimento na ordem de candida- tos na lista de candidatos de vetor de movimento é codificado e decodi- ficado utilizando um pequeno número de bits comparado com o caso do outro parâmetro de índice de mesclagem que indica o outro candidato de vetor de movimento disposto após.
[0283] A Figura 23 é um fluxograma que indica o quarto aspecto de interpredição executado pelo codificador 100 ilustrado na Figura 1.
[0284] Primeiro, o interpreditor 126 no codificador 100 gera, para uma partição, uma lista de candidatos de vetor de movimento que inclui uma pluralidade de candidatos de vetor de movimento em ordem a qual é dependente da forma de partição (S401). Por exemplo, o interpreditor 126 pode gerar, para uma partição não retangular (triangular), uma lista de candidatos de vetor de movimento que inclui uma pluralidade de can- didatos de vetor de movimento em ordem a qual é diferente da ordem no caso de uma partição retangular.
[0285] A seguir, o interpreditor 126 então seleciona um vetor de mo- vimento para a partição corrente da lista de candidatos de vetor de mo- vimento (S402).
[0286] A seguir, o codificador de entropia 110 do codificador 100 codifica, em um fluxo de bits, um parâmetro de índice de mesclagem que indica o vetor de movimento para a partição corrente dentre a plu- ralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento (S403). Por exemplo, o codificador de entropia 110 binariza o parâmetro de índice de mesclagem em uma pluralidade de bits, e codifica a pluralidade de bits utilizando codificação aritmética.
[0287] Finalmente, o codificador 100 codifica a partição corrente uti- lizando o vetor de movimento selecionado (S404).
[0288] Especificamente, o interpreditor 126 gera uma imagem pre- dita da partição corrente utilizando o vetor de movimento selecionado. O subtrator 104 deriva uma imagem de diferença entre a imagem origi- nal e a imagem predita da partição corrente. O transformador 106 trans- forma a imagem de diferença em uma pluralidade de coeficientes de transformada. O quantizador 108 quantiza a pluralidade de coeficientes de transformada. O codificador de entropia 110 então codifica a plurali- dade quantizada de coeficientes de transformada em um fluxo de bits.
[0289] A Figura 24 é um fluxograma que indica o quarto aspecto de interpredição executado pelo decodificador 200 ilustrado na Figura 10.
[0290] Primeiro, o interpreditor 218 no decodificador 200 gera, para uma partição corrente a ser decodificada, uma lista de candidatos de vetor de movimento que inclui uma pluralidade de candidatos de vetor de movimento em ordem a qual é dependente da forma de partição (S411). Por exemplo, o interpreditor 218 pode gerar, para uma partição não retangular (triangular), uma lista de candidatos de vetor de movi- mento que inclui uma pluralidade de candidatos de vetor de movimento em ordem a qual é diferente da ordem no caso de uma partição retan- gular.
[0291] A seguir, o decodificador de entropia 202 no decodificador 200 decodifica, de um fluxo de bits, um parâmetro de índice de mescla- gem que indica o vetor de movimento para a partição corrente dentre a pluralidade de candidatos de vetor de movimento na lista de candidatos de vetor de movimento (S412). Por exemplo, o decodificador de entropia 202 decodifica o parâmetro de índice de mesclagem utilizando decodi- ficação aritmética.
[0292] O interpreditor 218 então seleciona um vetor de movimento para a partição corrente da lista de candidatos de vetor de movimento com base no parâmetro de índice de mesclagem (S413).
[0293] Finalmente, o decodificador 200 decodifica a partição cor- rente utilizando o vetor de movimento selecionado (S414).
[0294] Especificamente, o interpreditor 218 gera uma imagem pre- dita da partição corrente utilizando o vetor de movimento selecionado. O decodificador de entropia 202 decodifica, do fluxo de bits, a plurali- dade quantizada de coeficientes de transformada. O quantizador in- verso 204 quantiza inverso a pluralidade quantizada de coeficientes de transformada. O transformador inverso 206 transforma a pluralidade de coeficientes de transformada em uma imagem de diferença. O somador 208 soma a imagem de diferença e a imagem predita para reconstruir uma imagem.
[0295] Como acima descrito, a lista de candidatos de vetor de mo- vimento gerada para cada partição inclui a pluralidade de candidatos de vetor de movimento para o vetor de movimento para a partição. As or- dens de candidatos variam entre as duas listas de candidatos de vetor de movimento geradas respectivamente para as duas partições que têm diferentes formas de partição.
[0296] A Figura 25 ilustra exemplos das ordens de candidatos rela- tivas às formas de partição. Nestes exemplos, as ordens de candidatos variam entre uma partição retangular e uma partição triangular.
[0297] A Figura 26 ilustra outros exemplos das ordens de candida- tos relativas às formas de partição. Nestes exemplos, as ordens de can- didatos variam entre um bloco de M × N e um bloco de N × M. Estas duas partições podem ter a mesma forma e diferentes orientações.
Quando as orientações das partições que têm a mesma forma são dife- rentes, as ordens de candidatos podem variar. Em outras palavras, as ordens de candidatos podem ser dependentes das orientações das for- mas de partição. Em outras palavras, as ordens de candidatos podem ser dependentes das formas de partição as quais têm uma orientação como um atributo.
[0298] Deve ser notado que a Figura 26 ilustra um exemplo, e as ordens de candidatos podem não ser dependentes das orientações de formas de partição. Em outras palavras, as ordens de candidatos podem ser dependentes das formas de partição as quais não têm orientações como atributos. Por exemplo, estas duas partições podem ter diferentes formas de partição ou ter a mesma ordem de candidatos quando as for- mas de partição são as mesmas.
[0299] Neste aspecto, as ordens de candidatos de vetor de movi- mento para os vetores de movimento são adaptavelmente determinadas com base nas formas de partição. Neste modo, é possível aumentar a eficiência de codificação.
[0300] Deve ser notado que o codificador 100 e o decodificador 200 executam interpredição no mesmo modo. Além disto, pelo menos parte deste aspecto pode ser combinada com pelo menos parte de outros um ou mais aspectos. Além disto, qualquer um dos processos, elementos, sintaxes, características, e uma combinação opcional destes de acordo com este aspecto pode ser aplicado a qualquer dos aspectos.
[0301] Todos os processos acima descritos nem sempre precisam estar incluídos em um método, e todos os elementos nem sempre pre- cisam estar incluídos em um dispositivo. Em outras palavras, parte da pluralidade de processos acima descritos nem sempre precisa estar in- cluída no método, e parte da pluralidade de elementos acima descritos nem sempre precisa estar incluída no dispositivo. Exemplo de Montagem
[0302] A Figura 27 é um diagrama de blocos que ilustra um exemplo de montagem do codificador 100. O codificador 100 inclui um circuito 160 e uma memória 162. Por exemplo, uma pluralidade de elementos constituintes do codificador 100 ilustrado na Figura 1 está montada no processador 100 e memória 162 ilustrados na Figura 27.
[0303] O circuito 160 é um circuito eletrônico acessível à memória 162, e executa processamento de informações. Por exemplo, o circuito 160 é um circuito eletrônico dedicado ou de uso geral o qual codifica vídeos utilizando a memória 162. O circuito 160 pode ser um processa- dor tal como uma CPU. O circuito 160 pode ser uma combinação de uma pluralidade de circuitos eletrônicos.
[0304] Além disso, por exemplo, o circuito 160 pode desempenhar as funções de elementos constituintes outros que os elementos consti- tuintes para armazenar informações dentre a pluralidade de elementos constituintes do codificador 100 ilustrado na Figura 1. Em outras pala- vras, o circuito 160 pode executar as operações acima descritas por es- tes elementos constituintes.
[0305] A memória 162 é uma memória de uso geral ou dedicada na quais as informações para permitir o circuito 160 codificar um vídeo es- tão armazenadas. A memória 162 pode ser um circuito eletrônico, pode ser conectada no circuito 160, e pode ser incluída no circuito 160.
[0306] A Memória 162 pode ser uma combinação de uma plurali- dade de circuitos eletrônicos, ou pode estar configurada com uma plu- ralidade de submemórias. A memória 162 pode ser um disco magnético, um disco ótico, ou similares, ou pode ser representada como armaze- namento, um meio de gravação, ou similares. A memória 162 pode ser uma memória não volátil ou memória volátil.
[0307] Por exemplo, memória 162 pode assumir as funções de ele- mentos constituintes para armazenar informações dentre a pluralidade de elementos constituintes do codificador 100 ilustrado na Figura 1. Es- pecificamente, a memória 162 pode assumir as funções de memória de blocos 118 e memória de quadros 122 ilustradas na Figura 1.
[0308] Por exemplo, um vídeo a ser codificado ou um fluxo de bits que corresponde ao vídeo codificado pode ser gravado na memória 162. A memória 162 pode incluir um programa para fazer com que o circuito 160 codifique um vídeo gravado na mesma.
[0309] No codificador 100, não é sempre necessário que todos os elementos constituintes ilustrados na Figura 1 sejam montados, e que todos os processos acima descritos sejam executados. Parte dos ele- mentos constituintes ilustrados na Figura 1 pode ser incluída em outro dispositivo, e parte dos processos acima descritos pode ser executada por outro dispositivo. Além disto, no codificador 100, por meio da parte da pluralidade de elementos constituintes ilustrados na Figura 1 sendo montada e a parte dos processos acima descritos sendo executada, as informações para predição podem ser configuradas apropriadamente.
[0310] A Figura 28 é um fluxograma que indica um exemplo de uma operação executada pelo codificador 100 ilustrado na Figura 27. Por exemplo, quando o codificador 100 codifica um vídeo em um fluxo de bits utilizando uma imagem predita, o circuito 160 no codificador 100 executa a operação indicada na Figura 28 utilizando a memória 162.
[0311] Primeiro, o circuito 160 gera uma lista que inclui uma plurali- dade de candidatos para um primeiro vetor de movimento para uma pri- meira partição em um vídeo (S501). A pluralidade de candidatos incluída nesta lista inclui um candidato derivado de um segundo vetor de movi- mento para uma segunda partição diferente da primeira partição no ví- deo. Além disto, pelo menos um do tamanho de lista máximo da lista ou da ordem da pluralidade de candidatos incluída na lista é dependente em pelo menos um do tamanho de partição ou da forma de partição da primeira partição.
[0312] A seguir, o circuito 160 seleciona um vetor de movimento da pluralidade de candidatos incluída na lista (S502). Além disto, o circuito 160 codifica, em um fluxo de bits, um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos incluída na lista com base no tamanho de lista máximo (S503). O circuito 160 então gera uma imagem predita da primeira partição utilizando o primeiro vetor de movi- mento (S504).
[0313] Neste modo, o codificador 100 é capaz de gerar a lista de candidatos de vetor de movimento com base no tamanho de lista má- ximo ou na ordem de candidatos a qual é dependente do tamanho de partição ou da forma de partição. Consequentemente, o codificador 100 é capaz de gerar uma lista de candidatos apropriada com base no ta- manho de partição ou na forma de partição. Em outras palavras, o codi- ficador 100 é capaz de apropriadamente configurar as informações para predição. Consequentemente, o codificador 100 é capaz de contribuir para a redução em quantidade de códigos.
[0314] Por exemplo, quando o tamanho de partição é um primeiro tamanho de partição, o tamanho de lista máximo pode ser o primeiro tamanho de lista. Quando o tamanho de partição é um segundo tama- nho de partição menor do que o primeiro tamanho de partição, o tama- nho de lista máximo pode ser um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0315] Neste modo, o codificador 100 é capaz de selecionar um ve- tor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma pequena partição. Por outro lado, existe uma possibilidade que nenhum vetor de movimento apropriado esteja incluído no grande número de candidatos de vetor de movimento para a grande partição. Consequentemente, o codificador 100 é capaz de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando uma lista de candidatos de vetor de movimento que tem um pequeno tamanho de lista máximo para a grande partição.
[0316] Por exemplo, quando o tamanho de partição é um primeiro tamanho de partição, o tamanho de lista máximo pode ser o primeiro tamanho de lista. Quando o tamanho de partição é um segundo tama- nho de partição menor do que o primeiro tamanho de partição, o tama- nho de lista máximo pode ser um segundo tamanho de lista menor do que o primeiro tamanho de lista.
[0317] Neste modo, o codificador 100 é capaz de selecionar o vetor de movimento apropriado dentre o grande número de candidatos de ve- tor de movimento para a grande partição. Consequentemente, o codifi- cador 100 é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos do índice que indica o vetor de mo- vimento utilizando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a grande partição.
[0318] Além disto, por exemplo, o tamanho de lista máximo pode ser dependente da forma de partição a qual é uma de um quadrado, um retângulo, ou um triângulo. Neste modo, o codificador 100 é capaz de gerar uma lista de candidatos apropriada com base na forma de partição a qual é uma de um quadrado, um retângulo, ou um triângulo.
[0319] Além disto, por exemplo, quando a forma de partição é um triângulo, o tamanho de lista máximo pode ser o primeiro tamanho de lista. Quando a forma de partição não é um triângulo, o tamanho de lista máximo pode ser um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0320] Neste modo, o codificador 100 é capaz de selecionar um ve- tor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma partição retangular. Por outro lado, existe uma possibilidade que o número de partições processadas refe- ríveis seja pequeno e o número de candidatos de vetor de movimento deriváveis seja pequeno ao redor da partição triangular. Consequente- mente, o codificador 100 é capaz de contribuir para a redução em quan- tidade de códigos do índice que indica o vetor de movimento utilizando uma lista de candidatos de vetor de movimento que tem um pequeno tamanho de lista máximo para a partição triangular.
[0321] Além disto, por exemplo, quando a forma de partição é um quadrado, o tamanho de lista máximo pode ser o primeiro tamanho de lista. Quando a forma de partição não é um quadrado, o tamanho de lista máximo pode ser um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0322] Neste modo, o codificador 100 é capaz de selecionar um ve- tor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma partição que tem uma forma compli- cada. Consequentemente, o codificador 100 é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos de um índice que indica um vetor de movimento utilizando uma lista de candidatos de vetor de movimento que tem um pequeno tamanho de lista máximo para uma partição que tem uma forma simples.
[0323] Além disto, por exemplo, quando o tamanho de lista máximo é o primeiro tamanho de lista, o circuito 160 pode codificar um índice utilizando um primeiro número de bits. Quando o tamanho de lista má- ximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista, o circuito 160 pode então codificar um índice utilizando um se- gundo número de bits maior do que o primeiro número de bits. Neste modo, o codificador 100 é capaz de codificar o índice utilizando um nú- mero de bits apropriado com base no tamanho de lista máximo.
[0324] Além disto, por exemplo, a segunda partição pode ser uma partição que é vizinha da primeira partição.
[0325] Neste modo, o codificador 100 é capaz de derivar um candi- dato para o vetor de movimento para a partição corrente de um vetor de movimento de uma partição que é vizinha à partição corrente. Conse- quentemente, o codificador 100 é capaz de apropriadamente derivar o candidato para o vetor de movimento para a partição corrente do vetor de movimento que é assumido ser similar ao vetor de movimento para a partição corrente.
[0326] A Figura 29 é um diagrama de blocos que ilustra um exemplo de montar o decodificador 200. O decodificador 200 inclui um circuito 260 e uma memória 262. Por exemplo, a pluralidade de elementos cons- tituintes do decodificador 200 ilustrado na Figura 10 é montada em um circuito 260 e memória 262 ilustrados na Figura 29.
[0327] O circuito 260 é um circuito eletrônico acessível à memória 262, e executa processamento de informações. Por exemplo, circuito 260 é um circuito eletrônico dedicado ou de uso geral o qual decodifica vídeos utilizando a memória 262. O circuito 260 pode ser um processa- dor tal como uma CPU. O circuito 260 pode ser uma combinação de uma pluralidade de circuitos eletrônicos.
[0328] Além disto, por exemplo, circuito 260 pode assumir as fun- ções de elementos constituintes outros que os elementos constituintes para armazenar informações dentre a pluralidade de elementos consti- tuintes do decodificador 200 ilustrado na Figura 10. Em outras palavras, circuito 260 pode executar as operações acima descritas por estes ele- mentos constituintes.
[0329] A Memória 262 é uma memória de uso geral ou dedicada na qual as informações para permitir o circuito 260 decodificar um vídeo estão armazenadas. A memória 262 pode ser um circuito eletrônico, pode estar conectada ao circuito 260, e pode ser incluída no circuito
260.
[0330] A memória 262 pode ser uma combinação de uma plurali- dade de circuitos eletrônicos, ou pode estar configurada com uma plu- ralidade de submemórias. A memória 262 pode ser um disco magnético,
um disco ótico, ou similares, ou pode ser representada como armaze- namento, um meio de gravação, ou similares. A memória 262 pode ser uma memória não volátil ou memória volátil.
[0331] Por exemplo, memória 262 pode assumir as funções de ele- mentos constituintes para armazenar informações dentre a pluralidade de elementos constituintes do decodificador 200 ilustrado na Figura 10. Especificamente, a memória 262 pode assumir as funções de memória de blocos 210 e memória de quadros 214 ilustradas na Figura 10.
[0332] Por exemplo, um fluxo de bits que corresponde a um vídeo codificado ou um vídeo decodificado pode ser gravado na memória 262. A memória 262 pode incluir um programa para fazer com que circuito 260 decodifique um vídeo gravado no mesmo.
[0333] No decodificador 200, não é sempre necessário que todos os elementos constituintes ilustrados na Figura 10 sejam montados, e que todos os processos acima descritos sejam executados. Parte dos elementos constituintes ilustrados na Figura 10 pode ser incluída em outro dispositivo, e parte dos processos acima descritos pode ser exe- cutada por outro dispositivo. Além disto, no decodificador 200, por meio da parte da pluralidade de elementos constituintes ilustrados na Figura 10 sendo montada e a parte dos processos acima descritos sendo exe- cutada, as informações para predição podem ser configuradas apropri- adamente.
[0334] A Figura 30 é um fluxograma que indica um exemplo de uma operação executada pelo decodificador 200 ilustrado na Figura 29. Por exemplo, quando o decodificador 200 decodifica, de um fluxo de bits, um vídeo utilizando uma imagem predita, o circuito 260 no decodificador 200 executa a operação indicada na Figura 30 utilizando a memória 262.
[0335] Primeiro, o circuito 260 gera uma lista que inclui uma plurali- dade de candidatos para um primeiro vetor de movimento para uma pri- meira partição em um vídeo (S511). A pluralidade de candidatos incluída nesta lista inclui candidatos derivados de um segundo vetor de movi- mento para uma segunda partição diferente da primeira partição no ví- deo. Além disto, pelo menos um do tamanho de lista máximo da lista ou da ordem da pluralidade de candidatos incluída na lista é dependente de pelo menos um do tamanho de partição e da forma de partição da primeira partição.
[0336] Além disto, o circuito 260 decodifica, de um fluxo de bits, um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos incluída na lista com base no tamanho de lista máximo (S512). A seguir, o circuito 260 seleciona um primeiro vetor de movi- mento da pluralidade de candidatos incluída na lista utilizando o índice (S513). O circuito 260 então gera uma imagem predita da primeira par- tição utilizando o primeiro vetor de movimento (S514).
[0337] Neste modo, o decodificador 200 é capaz de gerar uma lista de candidatos de vetor de movimento com base no tamanho de lista máximo ou na ordem de candidatos a qual é dependente do tamanho de partição ou da forma de partição. Consequentemente, o decodifica- dor 200 é capaz de gerar uma lista de candidatos apropriada com base no tamanho de partição ou na forma de partição. Em outras palavras, o decodificador 200 é capaz de apropriadamente configurar as informa- ções para predição. Consequentemente, o decodificador 200 é capaz de contribuir para a redução em quantidade de códigos.
[0338] Por exemplo, quando o tamanho de partição é um primeiro tamanho de partição, o tamanho de lista máximo pode ser um primeiro tamanho de lista. Quando o tamanho de partição é um segundo tama- nho de partição menor do que o primeiro tamanho de partição, o tama- nho de lista máximo pode ser um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0339] Neste modo, o decodificador 200 é capaz de selecionar um vetor de movimento apropriado dentre o grande número de candidatos de vetor de movimento para a pequena partição. Por outro lado, existe uma possibilidade que nenhum vetor de movimento apropriado esteja incluído no grande número de candidatos de vetor de movimento para a grande partição. Consequentemente, o decodificador 200 é capaz de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candidatos de vetor de movi- mento que tem o pequeno tamanho de lista máximo para a grande par- tição.
[0340] Por exemplo, quando o tamanho de partição é um primeiro tamanho de partição, o tamanho de lista máximo pode ser o primeiro tamanho de lista. Quando o tamanho de partição é um segundo tama- nho de partição menor do que o primeiro tamanho de partição, o tama- nho de lista máximo pode ser um segundo tamanho de lista menor do que o primeiro tamanho de lista.
[0341] Neste modo, o decodificador 200 é capaz de selecionar um vetor de movimento apropriado dentre o grande número de candidatos de vetor de movimento para a grande partição. Consequentemente, o decodificador 200 é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utilizando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a pequena partição.
[0342] Além disto, por exemplo, o tamanho de lista máximo pode ser dependente da forma de partição a qual é uma de um quadrado, um retângulo, ou um triângulo. Neste modo, o decodificador 200 é capaz de gerar uma lista de candidatos apropriada com base na forma de partição a qual é uma de um quadrado, um retângulo, ou um triângulo.
[0343] Além disto, por exemplo, quando a forma de partição é um triângulo, o tamanho de lista máximo pode ser um primeiro tamanho de lista. Quando a forma de partição não é um triângulo, o tamanho de lista máximo pode ser um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0344] Neste modo, o decodificador 200 é capaz de selecionar um vetor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma partição retangular. Por outro lado, existe uma possibilidade que o número de partições processadas refe- ríveis seja pequeno e o número de candidatos de vetor de movimento deriváveis seja pequeno ao redor da partição triangular. Consequente- mente, o decodificador 200 é capaz de contribuir para a redução em quantidade de códigos do índice que indica o vetor de movimento utili- zando a lista de candidatos de vetor de movimento que tem o pequeno tamanho de lista máximo para a partição triangular.
[0345] Além disto, por exemplo, quando a forma de partição é um quadrado, o tamanho de lista máximo pode ser um primeiro tamanho de lista. Quando a forma de partição não é um quadrado, o tamanho de lista máximo pode ser um segundo tamanho de lista maior do que o primeiro tamanho de lista.
[0346] Neste modo, o decodificador 200 é capaz de selecionar um vetor de movimento apropriado dentre um grande número de candidatos de vetor de movimento para uma partição que tem uma forma compli- cada. Consequentemente, o decodificador 200 é capaz de simplificar o processamento e contribuir para a redução em quantidade de códigos de um índice que indica um vetor de movimento utilizando uma lista de candidatos de vetor de movimento que tem um pequeno tamanho de lista máximo para uma partição que tem uma forma simples.
[0347] Além disto, por exemplo, quando o tamanho de lista máximo é o primeiro tamanho de lista, o circuito 260 pode decodificar um índice utilizando um primeiro número de bits. Quando o tamanho de lista má- ximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista, o circuito 260 pode então decodificar o índice utilizando um se- gundo número de bits maior do que o primeiro número de bits. Neste modo, o decodificador 200 é capaz de decodificar o índice utilizando um número de bits apropriado com base no tamanho de lista máximo.
[0348] Além disto, por exemplo, a segunda partição pode ser uma partição que é vizinha da primeira partição.
[0349] Neste modo, o decodificador 200 é capaz de derivar um can- didato para o vetor de movimento para a partição corrente de um vetor de movimento de uma partição que é vizinha à partição corrente. Con- sequentemente, o decodificador 200 é capaz de apropriadamente deri- var o candidato para o vetor de movimento para a partição corrente do vetor de movimento que é assumido ser similar ao vetor de movimento para a partição corrente. Suplementos
[0350] O codificador 100 e o decodificador 200 de acordo com as modalidades acima descritas podem ser utilizados respectivamente como um codificador de imagem e um decodificador de imagem, ou como um codificador de vídeo e a decodificador de vídeo.
[0351] Alternativamente, cada um do codificador 100 e do decodifi- cador 200 pode ser utilizado como um dispositivo de predição ou um dispositivo de interpredição. Em outras palavras, cada um do codificador 100 e do decodificador 200 pode corresponder somente ao interpreditor 126 e interpreditor 218, respectivamente. Os outros elementos consti- tuintes do codificador de entropia 110, decodificador de entropia 202, etc. podem estar incluídos em um ou mais outros dispositivos.
[0352] Alternativamente, pelo menos parte das modalidades pode ser utilizada como um método de codificação e/ou um método de deco- dificação, como um método de predição, e/ou como outros métodos.
[0353] Além disto, in nas descrições acima, o tamanho de lista má- ximo ou a ordem de candidatos na lista de candidatos de vetor de mo- vimento para o vetor de movimento para codificar a partição corrente são dependentes do tamanho de partição e da forma de partição da partição corrente.
[0354] No entanto, o tamanho de lista máximo ou a ordem de can- didatos na lista de candidatos de preditor de vetor de movimento para um preditor de vetor de movimento para codificar a partição corrente pode ser dependente do tamanho de partição ou da forma de partição da partição corrente. Em outras palavras, o vetor de movimento pode ser substituído pelo preditor de vetor de movimento. Por exemplo, neste caso, uma diferença de vetor de movimento a qual é uma diferença en- tre o vetor de movimento e o preditor de vetor de movimento é codificada e decodificada.
[0355] Além disso, em cada uma das modalidades acima, cada um dos elementos constituintes pode ser implementado com uma configu- ração de hardware dedicada ou implementado executando um pro- grama de software adequado para o elemento constituinte. Cada ele- mento constituinte pode ser implementado por um executor de pro- grama tal como uma CPU ou um processador lendo e executando um programa de software o qual está gravado em um meio de gravação tal como um disco rígido ou uma memória de semicondutor.
[0356] Especificamente, cada um do codificador 100 e do decodifi- cador 200 pode incluir um circuito de processamento e armazenamento eletricamente conectado no circuito de processamento e acessível do circuito de processamento. Por exemplo, o circuito de processamento corresponde ao circuito 160 ou 260, e o armazenamento corresponde à memória 162 ou 262.
[0357] O circuito de processamento inclui pelo menos um do hardware dedicado ou do executor do programa, e executa o processo utilizando o armazenamento. Além disso, quando o circuito de proces- samento inclui o executor de programa, o armazenamento armazena um programa de software que é executado pelo executor de programa.
[0358] Aqui, o software o qual implementa o codificador 100, deco- dificador 200, etc. de acordo com cada uma das modalidades acima descritas é um programa como abaixo indicado.
[0359] Por exemplo, este programa pode fazer com que um compu- tador execute um método de codificação de codificar um vídeo em um fluxo de bits utilizando uma imagem predita. O método de codificação inclui gerar uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no vídeo, e no qual a pluralidade de candidatos inclui um candidato o qual é deri- vado de um segundo vetor de movimento de uma segunda partição di- ferente da primeira partição no vídeo. A lista tem um tamanho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição. O método de codificação inclui: selecionar o primeiro vetor de movimento da pluralidade de candidatos incluída na lista; codificar um índice que indica o primeiro vetor de mo- vimento dentre a pluralidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo; e gerar uma imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
[0360] Além disto, por exemplo, este programa pode fazer com que um computador execute um método de decodificação de decodificar um vídeo de um fluxo de bits utilizando uma imagem predita. O método de decodificação inclui gerar uma lista a qual inclui uma pluralidade de can- didatos para um primeiro vetor de movimento para uma primeira parti- ção no vídeo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da primeira partição no vídeo. A lista tendo um tama- nho de lista máximo e uma ordem da pluralidade de candidatos, e pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos é dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição; decodificar um índice que indica o primeiro vetor de movimento dentre a pluralidade de candi- datos na lista do fluxo de bits com base no tamanho de lista máximo. O método de decodificação inclui selecionar o primeiro vetor de movi- mento da pluralidade de candidatos na lista utilizando o índice, e gerar uma imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
[0361] Além disto, cada elemento constituinte pode ser um circuito como acima descrito. Os circuitos podem compor um circuito como um todo, ou podem ser circuitos separados. Alternativamente, cada ele- mento constituinte pode ser implementado como um processador geral, ou pode ser implementado como um processador dedicado.
[0362] Além disto, o processo que é executado por um elemento constituinte específico pode ser executado por outro elemento consti- tuinte. Além disto, a ordem de execução de processamento pode ser modificada, ou uma pluralidade de processos pode ser executada em paralelo. Além disto, um codificador e um decodificador podem incluir o codificador 100 e o decodificador 200.
[0363] Os números ordinais, tais como "primeiro" e "segundo", utili- zados na descrição podem ser mudados arbitrariamente. Além disto, os números ordinais podem ser adicionados arbitrariamente a elementos constituintes, etc., ou podem ser removidos de elementos constituintes, etc.
[0364] Apesar de aspectos do codificador 100 e do decodificador 200 terem sido descritos com base nas modalidades, aspectos do codi- ficador 100 e do decodificador 200 não estão limitados às modalidades. O escopo dos aspectos do codificador 100 e do decodificador 200 pode abranger modalidades obteníveis adicionando, a qualquer uma dessas modalidades, vários tipos de modificações que uma pessoa versada na técnica chegaria sem se desviar do escopo da presente descrição e mo- dalidades configuráveis arbitrariamente combinando elementos consti- tuintes em diferentes modalidades.
[0365] Esta modalidade pode ser uma executada em combinação com pelo menos parte de outros aspectos da presente descrição. Além disso, parte do processamento descrito em cada um dos fluxogramas, parte da configuração de cada um dos dispositivos, parte de cada uma das sintaxes, etc. de acordo com esta modalidade podem ser combina- das com um ou mais outros aspectos. MODALIDADE 2
[0366] Como descrito na modalidade acima, cada bloco funcional pode tipicamente ser realizado como uma MPU e memória, por exem- plo. Mais ainda, os processos executados por cada um dos blocos fun- cionais são tipicamente realizados por uma unidade de execução de programa, tal como um processador, lendo e executando software (um programa) gravado em um meio de gravação tal como uma ROM. O software pode ser distribuído através de, por exemplo, download, e pode ser gravado em um meio de gravação tal como uma memória de semi- condutor e distribuído. Note que cada bloco funcional pode, é claro, tam- bém ser realizado como hardware (circuito dedicado).
[0367] Mais ainda, o processamento descrito na modalidade pode ser realizado através de processamento integrado utilizando um único aparelho (sistema), e, alternativamente, pode ser realizado através de processamento descentralizado utilizando uma pluralidade de apare- lhos. Mais ainda, o processador que executa o programa acima descrito pode ser uma a processador único ou a pluralidade de processadores. Em outras palavras, um processamento integrado pode ser realizado, e, alternativamente, um processamento descentralizado pode ser execu- tado.
[0368] As modalidades da presente descrição não estão limitadas à modalidade exemplar acima; várias modificações podem ser feitas nas modalidades exemplares, os resultados das quais estão também inclu- ídos dentro do escopo das modalidades da presente descrição.
[0369] A seguir, exemplos de aplicação do método de codificação de imagem móvel (método de codificação de imagem) e o método de decodificação de imagem móvel (método de decodificação de imagem) descritos em cada uma das modalidades acima e um sistema que em- prega os mesmos serão descritos. O sistema está caracterizado como incluindo um codificador de imagem que emprega o método de codifica- ção de imagem, um decodificador de imagem que emprega o método de decodificação de imagem, e um codificador / decodificador de ima- gem que inclui tanto o codificador de imagem quanto o decodificador de imagem. Outras configurações incluídas no sistema podem ser modifi- cadas em uma base de caso por caso. Exemplos de Utilização
[0370] A Figura 31 ilustra uma configuração geral do sistema de provisão de conteúdo ex100 para implementar um serviço de distribui- ção de conteúdo. A área na qual o serviço de comunicação está provido está dividida em células de tamanhos desejados, e estações de base ex106, ex107, ex108, ex109, e ex110, as quais são estações sem fio fixas, estão localizadas em respectivas células.
[0371] No sistema de provisão de conteúdo ex100, dispositivos que incluem um computador ex111, dispositivo de jogos ex112, câmera ex113, utensílio doméstico ex114, e smartphone ex115 estão conecta- dos na Internet ex101 através de um provedor de serviço de Internet ex102 ou rede de comunicações ex104 e estações de base ex106 até ex110. O sistema de provisão de conteúdo ex100 pode combinar e co- nectar qualquer combinação dos elementos acima. Os dispositivos po- dem ser diretamente ou indiretamente conectados juntos através de uma rede telefônica ou comunicação de campo próximo ao invés de através de estações de base ex106 até ex110, as quais são estações sem fio fixas. Mais ainda, o servidor de fluxo ex103 está conectado a dispositivos que incluem o computador ex111, dispositivo de jogos ex112, câmera ex113, utensílio domésticos ex114, e smartphone ex115 através, por exemplo, da internet ex101. O servidor de fluxo ex103 está também conectado a, por exemplo, um terminal em um hotspot no avião ex117 através do satélite ex116.
[0372] Note que, ao invés de estações de base ex106 até ex110, pontos de acesso sem fio ou hotspots podem ser utilizados. O servidor de fluxo ex103 pode estar conectado na rede de comunicações ex104 diretamente ao invés de através da internet ex101 ou provedor de ser- viços de internet ex102, e pode estar conectado no avião ex117 direta- mente ao invés de através do satélite ex116.
[0373] A câmera ex113 é um dispositivo capaz de capturar imagens estáticas e vídeo, tal como uma câmera digital. O smartphone ex115 é um dispositivo de smartphone, telefone celular, ou telefone de sistema portátil pessoal (PHS) que pode operar sob os padrões de sistema de comunicações móveis dos sistemas 2G, 3G, 3.9G, e 4G típicos, assim como o sistema 5G de próxima geração.
[0374] O utensílio doméstico ex118 é, por exemplo, um refrigerador ou um dispositivo incluído em um sistema de cogeração de célula de combustível doméstico.
[0375] No sistema de provisão de conteúdo ex100, um terminal que inclui uma função de captura de imagem e/ou vídeo é capaz de, por exemplo, fluxo ao vivo conectando ao servidor de fluxo ex103 através da, por exemplo, estação de base ex106. Quando em fluxo ao vivo, um terminal (por exemplo, computador ex111, dispositivo de jogos ex112, câmera ex113, utensílio doméstico ex114, smartphone ex115, ou avião ex117) executa o processamento de codificação descrito nas modalida- des acima em conteúdo de imagem estática ou de vídeo capturado por um usuário através do terminal, multiplexa os dados de vídeo obtidos através da codificação e dados de áudio obtidos pela codificação de áu- dio que corresponde ao vídeo, e transmite os dados obtidos para o ser- vidor de fluxo ex103. Em outras palavras, o terminal funciona como o codificador de imagem de acordo com um aspecto da presente descri- ção.
[0376] O servidor de fluxo ex103 transmite em fluxo os dados de conteúdo transmitidos para clientes que solicitam o fluxo. Exemplos de clientes incluem o computador ex111, dispositivo de jogos ex112, câ- mera ex113, utensílio doméstico ex114, smartphone ex115 e terminais dentro do avião ex117, os quais são capazes de decodificar os dados codificados acima descritos. Dispositivos que recebem os dados em fluxo decodificam e reproduzem os dados recebidos. Em outras pala- vras, os dispositivos cada um funciona como o decodificador de imagem de acordo com um aspecto da presente descrição. Processamento Descentralizado
[0377] O servidor de fluxo ex103 pode ser realizado como uma plu- ralidade de servidores ou computadores entre os quais tarefas tais como o processamento, gravação e fluxo de dados são divididas. Por exem- plo, o servidor de fluxo ex103 pode ser realizado como uma rede de fornecimento de conteúdo (CDN) que faz fluxo do conteúdo através de uma rede que conecta múltiplos servidores de borda localizados através do mundo. Em uma CDN, um servidor de borda fisicamente próximo do cliente é dinamicamente designado para o cliente. O conteúdo é colo- cado em cache e em fluxo para o servidor de borda para reduzir os tem- pos de carga. Em caso de, por exemplo, algum tipo de um erro ou uma mudança em conectividade devido a, por exemplo, um pico no tráfego, é possível executar o fluxo de dados estavelmente em altas velocidades já que é possível evitar as partes afetadas da rede, por exemplo, divi- dindo o processamento entre uma pluralidade de servidores de borda ou comutando os deveres de fluxo para um diferente servidor de borda, e continuando o fluxo.
[0378] A descentralização não está limitada a apenas a divisão do processamento para fluxo; a codificação dos dados capturados pode ser dividida entre e executada pelos terminais, no lado do servidor, ou am- bos. Em um exemplo, em codificação típica, o processamento é execu- tado em dois loops. O primeiro loop é para detectar quão complicada a imagem é em uma base de quadro por quadro ou cena por cena, ou detectando a carga de codificação. O segundo loop é para processa- mento que mantém a qualidade de imagem e aperfeiçoa a eficiência de codificação. Por exemplo, é possível reduzir a carga de processamento dos terminais e aperfeiçoar a qualidade e eficiência de codificação do conteúdo fazendo os terminais executarem o primeiro loop da codifica- ção e fazendo o lado do servidor que recebeu o conteúdo executar o segundo loop da codificação. Em tal caso, quando do recebimento de uma solicitação de decodificação, é possível que os dados codificados que resultam do primeiro loop executado por um terminal sejam recebi- dos e reproduzidos em outro terminal em aproximadamente tempo real. Isto torna possível realizar um fluxo uniforme em tempo real.
[0379] Em outro exemplo, a câmera ex113 ou similares extrai uma quantidade de características de uma imagem, comprime os dados re- lacionados à quantidade de características como metadados e transmite os metadados comprimidos para um servidor. Por exemplo, o servidor determina a significância de um objeto com base na quantidade de ca- racterísticas e muda a precisão de quantização consequentemente para executar uma compressão adequada para o significado da imagem. Os dados de quantidade de características são especificamente efetivos em aperfeiçoar a precisão e eficiência de predição de vetor de movi- mento durante a segunda passagem de compressão executada pelo servidor. Mais ainda, uma codificação que tem uma carga de processa- mento relativamente baixa, tal como codificação de comprimento variá- vel (VLC), pode ser manipulada pelo terminal, e a codificação que tem uma carga de processamento relativamente alta, tal como codificação aritmética binária adaptável ao contexto (CABAC), pode ser manipulada pelo servidor.
[0380] Em ainda em outro exemplo, existem casos nos quais uma pluralidade de vídeos de aproximadamente a mesma cena é capturada por uma pluralidade de terminais em, por exemplo, um estádio, shop- ping, ou fábrica. Em tal caso, por exemplo, a codificação pode ser des- centralizada dividindo as tarefas de processamento entre a pluralidade de terminais que capturou os vídeos e, se necessário, outros terminais que não capturaram os vídeos e o servidor, em uma base por unidade. As unidades podem ser, por exemplo, grupos de imagens (GOP), ima- gens, ou telas lado a lado que resultam da divisão de uma imagem. Isto torna possível reduzir os tempos de carga e conseguir um fluxo que é mais próximo do tempo real.
[0381] Mais ainda, como os vídeos são de aproximadamente a mesma cena, o gerenciamento e/ou instrução podem ser executados pelo servidor de modo que os vídeos capturados pelos terminais pos- sam ser referenciados cruzados. Mais ainda, o servidor pode receber dados codificados dos terminais, mudar a relação de referência entre itens de dados ou corrigir ou substituir as próprias imagens, e então executar a codificação. Isto torna possível gerar um fluxo com qualidade e eficiência aumentadas para os itens de dados individuais.
[0382] Mais ainda, o servidor pode transmitir um fluxo de dados de vídeo após executar transcodificação para converter o formato de codi- ficação dos dados de vídeo. Por exemplo, o servidor pode converter o formato de codificação de MPEG para VP, e pode converter H.264 para H.265.
[0383] Neste modo, a codificação pode ser executada por um ter- minal ou um ou mais servidores. Consequentemente, apesar do dispo- sitivo que executa a codificação ser referido como um "servidor" ou "ter- minal" na descrição seguinte, alguns ou todos os processos executados pelo servidor podem ser executados pelo terminal, e do mesmo modo alguns ou todos os processos executados pelo terminal podem ser exe- cutados pelo servidor. Isto também se aplica a processos de decodifica- ção. 3D, Múltiplos Ângulos
[0384] Em anos recentes, a utilização de imagens ou vídeos combi- nados com imagens ou vídeos de diferentes cenas concorrentemente capturadas ou a mesma cena capturada de diferentes ângulos por uma pluralidade de terminais tais como a câmera ex113 e/ou smartphone ex115 aumentou. Os vídeos capturados pelos terminais são combina- dos com base na, por exemplo, relação posicional relativa separada- mente obtida entre os terminais, ou regiões em um vídeo que tem pon- tos de características coincidentes.
[0385] Além da codificação de imagens móveis bidimensionais, o servidor pode codificar uma imagem estática com base em análise de cena de uma imagem móvel ou automaticamente ou em um ponto no tempo especificado pelo usuário, e transmitir a imagem estática codifi- cada para um terminal de recepção. Mais ainda, quando o servidor pode obter a relação posicional relativa entre os terminais de captura de ví- deo, além de imagens móveis bidimensionais, o servidor pode gerar uma geometria tridimensional de uma cena com base no vídeo da mesma cena capturada de diferentes ângulos. Note que o servidor pode separadamente codificar dados tridimensionais gerados de, por exem- plo, uma nuvem de pontos, e pode, com base em resultado de reconhe- cer ou rastrear uma pessoa ou objeto utilizando dados tridimensionais, selecionar ou reconstruir e gerar um vídeo a ser transmitido para um terminal de recepção de vídeos capturados por uma pluralidade de ter- minais.
[0386] Isto permite o usuário desfrutar uma cena livremente seleci- onando vídeos que correspondem aos terminais de captura de vídeo, e permite o usuário desfrutar o conteúdo obtido extraindo, dos dados tri- dimensionais reconstruídos de uma pluralidade de imagens ou vídeos, um vídeo de um ponto de vista selecionado. Mais ainda, similar a com vídeo, o som pode ser gravado de ângulos relativamente diferentes, e o servidor pode multiplexar, com o vídeo, o áudio de um ângulo ou espaço específico de acordo com o vídeo, e transmitir o resultado.
[0387] Em anos recentes, um conteúdo que é um composto do mundo real e um mundo virtual, tal como conteúdo de realidade virtual (VR) e realidade aumentada (AR), também se tornou popular. No caso de imagens de VR, o servidor pode criar imagens dos pontos de vista de ambos os olhos esquerdo e direito e executar uma codificação que tolera uma referência entre as duas imagens de ponto de vista, tal como uma codificação de múltiplas visões (MVC), e alternativamente, pode codificar as imagens como fluxos separados sem referenciar. Quando as imagens são decodificadas como fluxos separados, os fluxos podem ser sincronizados quando reproduzidos de modo a recriar um espaço tridimensional virtual de acordo com o ponto de vista do usuário.
[0388] No caso de imagens de AR, o servidor sobrepõe informações de objetos virtuais que existem em um espaço virtual por sobre informa- ções de câmeras que representam um espaço de mundo real, com base em uma posição ou movimento tridimensional da perspectiva do usuá- rio. O decodificador pode obter ou armazenar informações de objetos virtuais e dados tridimensionais, gerar imagens bidimensionais com base no movimento da perspectiva do usuário, e então gerar dados so- brepostos conectando uniformemente as imagens. Alternativamente, o decodificador pode transmitir, para o servidor, o movimento da perspec- tiva do usuário além de uma solicitação para informações de objetos virtuais, e o servidor pode gerar dados sobrepostos com base em dados tridimensionais armazenados no servidor de acordo com o movimento recebido, e codificar e transmitir em fluxo os dados sobrepostos gerados pelo decodificador. Note que os dados sobrepostos incluem, além de valores RGB, um valor α que indica transparência, e o servidor ajusta o valor α para seções outras que o objeto gerado dos dados tridimensio- nais para, por exemplo, 0, e pode executar a codificação enquanto estas seções são transparentes. Alternativamente, o servidor pode ajustar o fundo para um valor RGB pré-determinado, tal como um chroma key, e gerar dados nos quais áreas outras que o objeto são ajustadas como o fundo.
[0389] A decodificação de dados similarmente transmitidos em fluxo pode ser executada pelo cliente (isto é, os terminais), no lado de servi- dor, ou dividido entre estes. Em um exemplo, um terminal pode transmi- tir uma solicitação de recepção para um servidor, o conteúdo solicitado pode ser recebido e decodificado por outro terminal, e um sinal decodi- ficado pode ser transmitido para um dispositivo que tem um display. É possível reproduzir dados de alta qualidade de imagem, descentrali- zando o processamento e apropriadamente selecionando o conteúdo independentemente da capacidade de processamento do próprio termi- nal de comunicações. Em ainda outro exemplo, enquanto uma TV, por exemplo, está recebendo dados de imagem que são grandes em tama- nho, uma região de uma imagem tal como telas lado a lado obtidas di- vidindo a imagem, pode ser decodificada e exibida em um terminal pes- soal ou terminais de um espectador ou espectadores da TV. Isto torna possível que os espectadores compartilhem uma visualização de ima- gem grande assim como para que cada espectador verificar em sua área designada ou inspecionar uma região em mais detalhes adicionais de perto.
[0390] No futuro, tanto internamente quanto externamente, em situ- ações nas quais uma pluralidade de conexões sem fio é possível sobre distâncias próximas, médias, e distantes, é esperado ser capaz de uni- formemente receber um conteúdo mesmo quando comutando para da- dos apropriados para a conexão corrente, utilizando um padrão de sis- tema de fluxo tal como MPEG-DASH. Com isto, o usuário pode comutar entre os dados em tempo real enquanto livremente selecionando um decodificador ou aparelho de display que inclui não somente seu próprio terminal, mas também, por exemplo, displays dispostos internamente ou externamente. Mais ainda, com base em, por exemplo, informações so- bre a posição do usuário, a decodificação pode ser executada enquanto comutando qual terminal faz a decodificação e qual terminal faz a exibi- ção de conteúdo. Isto torna possível, enquanto em rota para um destino, exibir, sobre a parede de um prédio próximo, no qual um dispositivo ca- paz de exibir conteúdo está embutido ou sobre parte do solo, mapear informações enquanto em movimento. Mais ainda, é também possível comutar a taxa de bits dos dados recebidos com base na acessibilidade para os dados codificados em uma rede, tal como quando os dados co- dificados são colocados em cache em um servidor rapidamente acessí- vel do terminal de recepção ou quando os dados codificados são copia- dos para um servidor de borda em um serviço de fornecimento de con- teúdo. Codificação Escalável
[0391] A comutação de conteúdo será descrita com referência a um fluxo escalável, ilustrado na Figura 32, o qual é codificado em compres- são através de implementação do método de codificação de imagem móvel descrito na modalidade acima. O servidor pode ter uma configu- ração na qual o conteúdo é comutado enquanto fazendo uso da escala- bilidade temporal e/ou espacial de um fluxo, a qual é conseguida por divisão em e codificação de camadas, como ilustrado na Figura 32. Note que pode existir uma pluralidade de fluxos individuais que são o mesmo conteúdo mas de diferente qualidade. Em outras palavras, determi- nando qual camada decodificar com base em fatores internos, tal como a capacidade de processamento do lado do decodificador, e fatores ex- ternos, tal como a largura de banda de comunicação, o lado do decodi- ficador pode livremente comutar entre conteúdo de baixa resolução e conteúdo de alta resolução enquanto decodificando. Por exemplo, em um caso no qual o usuário deseja continuar assistindo, em casa em um dispositivo tal como uma TV conectada na internet, um vídeo que ele ou ela estava anteriormente assistindo no smartphone ex115 enquanto em movimento, o dispositivo pode simplesmente decodificar o mesmo fluxo até uma diferente camada, o que reduz a carga de lado de servidor.
[0392] Mais ainda, além da configuração acima descrita na qual a escalabilidade é conseguida como um resultado das imagens sendo co- dificadas por camada e a camada de melhoramento está acima da ca- mada de base, a camada de melhoramento pode incluir metadados com base em, por exemplo, informações estatísticas sobre a imagem, e o lado de decodificador pode gerar um conteúdo de alta qualidade de ima- gem executando formação de imagens de superresolução sobre uma imagem na camada de base com base nos metadados. A formação de imagem de superresolução pode ser aperfeiçoando a razão de SN, en- quanto mantendo a resolução e/ou aumentando a resolução. Os meta- dados incluem informações para identificar um coeficiente de filtro linear ou um não linear utilizado em processamento de superresolução, ou in- formações que identificam um valor de parâmetro em processamento de filtro, aprendizado de máquina, ou método de menores quadrados utilizados em processamento de superresolução.
[0393] Alternativamente, uma configuração na qual uma imagem está dividida em, por exemplo, telas lado a lado de acordo com o signi- ficado de, por exemplo, um objeto na imagem, e no lado de decodifica- dor, somente uma região parcial é decodificada selecionando telas lado a lado para decodificar, é também aceitável. Mais ainda, armazenando um atributo sobre o objeto (pessoa, carro, bola, etc.) e uma posição do objeto no vídeo (coordenadas em imagens idênticas) como metadados, o lado de decodificador pode identificar a posição de um objeto desejado com base nos metadados e determinar qual tela ou telas lado a lado incluem aquele objeto. Por exemplo, como ilustrado na Figura 33, os metadados são armazenados utilizando uma estrutura de armazena- mento de dados diferente de dados de pixel tal como uma mensagem SEI em HEVC. Estes metadados indicam, por exemplo, a posição, ta- manho, ou cor do objeto principal.
[0394] Mais ainda, os metadados podem ser armazenados em uni- dades de uma pluralidade de imagens, tal como fluxo, sequência ou uni- dades de acesso randômico. Com isto, o lado de decodificador pode obter, por exemplo, o tempo no qual uma pessoa específica aparece no vídeo, e ajustando este com as informações de unidade de imagem, pode identificar uma imagem na qual o objeto está presente e a posição do objeto na imagem. Otimização de Webpage
[0395] A Figura 34 ilustra um exemplo de uma tela de display de uma webpage sobre, por exemplo, o computador ex111. A Figura 35 ilustra um exemplo de uma tela de display de uma webpage sobre, por exemplo, o smartphone ex115. Como ilustrado na Figura 34 e Figura 35, uma webpage pode incluir uma pluralidade de conexões de imagem as quais são conexões para o conteúdo de imagem, e a aparência da webpage difere dependendo do dispositivo utilizado para ver a web- page. Quando uma pluralidade de conexões de imagem é visível sobre a tela, até que o usuário explicitamente selecione uma conexão de ima- gem, ou até que a conexão de imagem esteja no centro aproximado da tela ou a conexão de imagem inteira caiba na tela, o aparelho de display (decodificador) exibe, como as conexões de imagem, imagens estáticas incluídas no conteúdo ou imagens I, exibe um vídeo tal como um gif animado utilizando uma pluralidade de imagens estáticas ou imagens I, por exemplo, ou recebe somente a camada de base e decodifica e exibe o vídeo .
[0396] Quando uma conexão de imagem é selecionada pelo usuá- rio, o aparelho de display decodifica dando a prioridade mais alta para a camada de base. Note que se existirem informações no código HTML da webpage indicando que o conteúdo é escalável, o aparelho de dis- play pode decodificar até a camada de melhoramento. Mais ainda, de modo a garantir uma reprodução em tempo real, antes de uma seleção ser feita ou quando a largura de banda é severamente limitada, o apa- relho de display pode reduzir o retardo entre o ponto no tempo no qual a imagem dianteira é decodificada e o ponto no tempo no qual a imagem descodificada é exibida (isto é, o retardo entre o início da decodificação do conteúdo para a exibição do conteúdo) decodificando e exibindo so- mente imagens de referência direta (imagem I, imagem P, imagem B de referência direta). Mais ainda, o aparelho de display pode proposital- mente ignorar a relação de referência entre as imagens e decodificar grosseiramente todas as imagens B e P como imagens de referência direta, e então executar decodificação normal conforme o número de imagens recebidas ao longo do tempo aumenta. Direção Autônoma
[0397] Quando transmitindo e recebendo uma imagem estática ou dados de vídeo, tais como informações de mapa bi ou tridimensional para direção autônoma ou direção assistida de um automóvel, o terminal de recepção pode receber, além de dados de imagens que pertencem a uma ou mais camadas, informações sobre, por exemplo, o clima ou construção de estradas tais como metadados, e associar os metadados com os dados da imagem quando decodificando. Note que os metada- dos podem ser atribuídos por camada e, alternativamente, podem sim- plesmente ser multiplexados com os dados de imagem.
[0398] Em tal caso, uma vez como um automóvel, drone, avião, etc., que inclui o terminal de recepção é móvel, o terminal de recepção pode ininterruptamente receber e decodificar enquanto comutando entre as estações de base entre as estações de base ex106 até ex110 transmi- tindo informações que indicam a posição do terminal de recepção quando da solicitação de recepção. Mais ainda, de acordo com a sele- ção feita pelo usuário, a situação do usuário, ou a largura de banda da conexão, o terminal de recepção pode dinamicamente selecionar em qual graus os metadados são recebidos ou em qual grau as informações de mapa, por exemplo, são atualizadas.
[0399] Com isto, no sistema de provisão de conteúdo ex100, o cli- ente pode receber, decodificar, e reproduzir, em tempo real, as informa- ções codificadas transmitidas pelo usuário. Fluxo de Conteúdo Individual
[0400] No sistema de provisão de conteúdo ex100, além de alta qualidade de imagem, conteúdo longo distribuído por uma entidade de distribuição de vídeo, fluxo de unidifusão ou multidifusão de baixa qua- lidade de imagem, curto conteúdo de um indivíduo é também possível. Mais ainda, tal conteúdo de indivíduos é provável de adicionalmente au- mentar em popularidade. O servidor pode primeiro executar um proces- samento de edição no conteúdo antes do processamento de codifica- ção, de modo a refinar o conteúdo individual. Isto pode ser conseguido com, por exemplo, a seguinte configuração.
[0401] Em tempo real, enquanto capturando um conteúdo de vídeo ou imagem ou após o conteúdo ter sido capturado e acumulado, o ser- vidor executa um processamento de reconhecimento com base nos da- dos brutos ou codificados, tal como processamento de erro de captura, processamento de pesquisa de cena, análise de significado, e/ou pro- cessamento de detecção de objetos. Então, com base no resultado do processamento de reconhecimento, o servidor - ou quando avisado ou automaticamente - edita o conteúdo, exemplos dos quais incluem: cor- reção tal como foco e/ou correção de embaçamento de movimento; re- moção de cenas de baixa prioridade, tais como cenas que são baixas em luminosidade comparadas com outras imagens ou fora de foco; ajuste da borda do objeto; e ajuste de tonalidade de cor. O servidor co- difica os dados editados com base no resultado da edição. É conhecido que vídeos excessivamente longos tendem a receber menos visualiza- ções. Consequentemente, de modo a manter o conteúdo dentro de um comprimento específico que escala com o comprimento do vídeo origi- nal, o servidor pode, além das cenas de baixa prioridade acima descri- tas, automaticamente recortar cenas com baixo movimento com base em um resultado de processamento de imagem. Alternativamente, o servidor pode gerar e codificar um resumo de vídeo com base em um resultado de uma análise do significado de uma cena.
[0402] Note que existem casos nos quais o conteúdo individual pode incluir um conteúdo que infringe um direito autoral, direitos morais, direitos de imagem, etc. Tal caso pode levar a uma situação desfavorá- vel para o criador, tal como quando o conteúdo é compartilhado além do escopo pretendido pelo criador. Consequentemente, antes da codifi- cação, o servidor pode, por exemplo, editar imagens de modo a desfo- car faces de pessoas na periferia da tela ou desfocar o interior de uma casa, por exemplo. Mais ainda, o servidor pode ser configurado para reconhecer as faces de pessoas outras que uma pessoa registrada em imagens a serem codificadas, e quando tais faces aparecem em uma imagem, por exemplo, aplicar um filtro de mosaico na face da pessoa. Alternativamente, como pré ou pós-processamento para codificação, o usuário pode especificar, por razões de direitos autorais, uma região de uma imagem que inclui uma pessoa ou uma região do fundo a ser pro- cessado, e o servidor pode processar a região especificada, por exem- plo, substituindo a região por uma diferente imagem ou desfocando a região. Se a região incluir uma pessoa, a pessoa pode ser rastreada na imagem móvel a região da cabeça pode ser substituída por outra ima- gem conforme a pessoa move.
[0403] Mais ainda, como existe uma demanda para visualização em tempo real de conteúdo produzido por indivíduos, os quais tendem a ser pequenos em tamanho de dados, o decodificador primeiro recebe a ca- mada de base como a prioridade mais alta e executa decodificação e reprodução, apesar disto poder diferir dependendo da largura de banda. Quando o conteúdo é reproduzido duas ou mais vezes, tal como quando o decodificador recebe a camada de melhoramento durante a decodifi- cação e reprodução da camada de base e faz um loop na reprodução, o decodificador pode reproduzir um vídeo de alta qualidade de imagem incluindo a camada de melhoramento. Se o fluxo for codificado utili- zando tal codificação escalável, o vídeo pode ser de baixa qualidade quando em um estado não selecionado ou no início do vídeo, mas este pode oferecer uma experiência na qual a qualidade da imagem do fluxo progressivamente aumenta em um modo inteligente. Isto não está limi- tado a apenas codificação escalável; a mesma experiência pode ser oferecida configurando um único fluxo de um fluxo de baixa qualidade reproduzido pela primeira vez e um segundo fluxo codificado utilizando o primeiro fluxo como uma referência. Outros Exemplos de Utilização
[0404] A codificação e decodificação podem ser executadas por LSI ex500, o qual está tipicamente incluído em cada terminal. O LSI ex500 pode estar configurado de um único chip ou uma pluralidade de chips. O software para codificar e decodificar imagens móveis pode ser inte- grado em algum tipo de meio de gravação (tal como um CD-ROM, um disco flexível, ou um disco rígido) que é legível pelo, por exemplo, com- putador ex111, e a codificação e decodificação podem ser executas uti- lizando o software. Mais ainda, quando o smartphone ex115 está equi- pado com uma câmera, os dados de vídeo obtidos pela câmera podem ser transmitidos. Neste caso, os dados do vídeo são codificados por LSI ex500 incluído no smartphone ex115.
[0405] Note que LSI ex500 pode estar configurado para fazer down- load e ativar uma aplicação. Em tal caso, o terminal primeiro determina se este é compatível com o esquema utilizado para codificar o conteúdo ou se este é capaz de executar um serviço específico. Quando o termi- nal não é compatível com o esquema de codificação do conteúdo ou quando o terminal não é capaz de executar um serviço específico, o terminal primeiro faz download de um codec ou software de aplicação então obtém e reproduz o conteúdo.
[0406] Além do exemplo de sistema de provisão de conteúdo ex100 que utiliza internet ex101, pelo menos o codificador de imagem móvel (codificador de imagem) ou o decodificador de imagem móvel (decodifi- cador de imagem) descrito nas modalidades acima podem ser imple- mentados em um sistema de transmissão digital. O mesmo processa- mento de codificação e processamento de decodificação podem ser aplicados para transmitir e receber ondas de rádio transmitidas sobre- postas com dados de áudio e vídeo multiplexado utilizando, por exem- plo, um satélite, apesar disto ser impulsionado na direção de multidifu- são enquanto que unidifusão é mais fácil com o sistema de provisão de conteúdo ex100. Configuração de Hardware
[0407] A Figura 36 ilustra o smartphone ex115. A Figura 37 ilustra um exemplo de configuração do smartphone ex115. O smartphone ex115 inclui uma antena ex450 para transmitir e receber ondas de rádio para e da estação base ex110, uma câmera ex465 capaz de capturar vídeo e imagens estáticas, e um display ex458 que exibe dados deco- dificados, tal como vídeo capturado pela câmera ex465 e vídeo recebido pela antena ex450. O smartphone ex115 ainda inclui uma interface de usuário ex466 tal como um painel de toque, uma unidade de saída de áudio ex457 tal como um alto-falante para emitir voz ou outro áudio, uma unidade de entrada de áudio ex456 tal como um microfone para entrada de áudio, uma memória ex467 capaz de armazenar dados decodifica- dos tais como vídeo ou imagens estáticas capturados, áudio gravado, vídeo ou imagens estáticas recebidas, e correio, assim como dados de- codificados, e a fenda ex464 a qual é uma interface para SIM ex468 para autorizar acesso a uma rede e vários dados. Note que uma memó- ria externa pode ser utilizada ao invés da memória ex467.
[0408] Mais ainda, o controlador principal ex460 o qual abrangente- mente controla o display ex458 e interface de usuário ex466, circuito de fonte de alimentação ex461, controlador de entrada de interface de usu- ário ex462, processador de sinal de vídeo ex455, interface de câmera ex463, controlador de display ex459, modulador / demodulador ex452, multiplexador / demultiplexador ex453, processador de sinal de áudio ex454, fenda ex464, e memória ex467 são conectados através do bar- ramento ex470.
[0409] Quando o usuário liga o botão de energia do circuito de fonte de alimentação ex461, o smartphone ex115 é energizado em um estado operável por cada componente sendo suprido com energia de um pa- cote de bateria.
[0410] O smartphone ex115 executa um processamento para, por exemplo, chamada e transmissão de dados, com base no controle exe- cutado pelo controlador principal ex460, o qual inclui uma CPU, ROM, e
RAM.
Quando fazendo chamadas, um sinal de áudio gravado pela uni- dade de entrada de áudio ex456 é convertido em um sinal de áudio di- gital pelo processador de sinal de áudio ex454, e este é aplicado com processamento de espectro de dispersão pelo modulador / demodula- dor ex452 e conversão digital-analógica e processamento de conversão de frequência pelo transmissor / receptor ex451, e então transmitido através da antena ex450. Os dados recebidos são amplificados, conver- tidos em frequência, e convertidos analógico-digital, processado em es- pectro de dispersão inverso pelo modulador / demodulador ex452, con- vertido em um sinal de áudio analógico pelo processador de sinal de áudio ex454, e então emitido da unidade de saída de áudio ex457. No modo de transmissão de dados, texto, imagem estática, ou dados de vídeo é transmitido pelo controlador principal ex460 através do contro- lador de entrada de interface de usuário ex462 como um resultado de operação de, por exemplo, a interface de usuário ex466 do corpo prin- cipal, e um processamento de transmissão e recepção similar é execu- tado.
No modo de transmissão de dados, quando enviando um vídeo, imagem estática, ou vídeo e áudio, o processador de sinal de vídeo ex455, codifica por compressão através do método de codificação de imagem móvel descrito na modalidade acima, um sinal de vídeo arma- zenado na memória ex467 ou um sinal de vídeo inserido da câmera ex465, e transmite os dados de vídeo codificados para o multiplexador / demultiplexador ex453. Mais ainda, o processador de sinal de áudio ex454 codifica um sinal de áudio gravado pela unidade de entrada de áudio ex456 enquanto a câmera ex465 está capturando, por exemplo, um vídeo ou imagem estática, e transmite os dados de áudio codificados para o multiplexador / demultiplexador ex453. O multiplexador / demul- tiplexador ex453 multiplexa os dados de vídeo codificados e os dados de áudio codificados utilizando um esquema predeterminado, modula e converte os dados utilizando o modulador / demodulador (circuito de modulador / demodulador) ex452 e o transmissor / receptor ex451 e transmite o resultado através da antena ex450.
[0411] Quando um vídeo anexo em um e-mail ou um chat, ou um vídeo conectado de uma webpage, por exemplo, é recebido, de modo a decodificar os dados multiplexados recebidos através da antena ex450, o multiplexador / demultiplexador ex453 demultiplexa os dados multiple- xados para dividir os dados multiplexados em um fluxo de bits de dados de vídeo e um fluxo de bits de dados de áudio, supre os dados de vídeo codificados para o processador de sinal de vídeo ex455 através do bar- ramento síncrono ex470, e supre os dados de áudio codificados para o processador de sinal de áudio ex454 através do barramento síncrono ex470. O processador de sinal de vídeo ex455 decodifica o sinal de ví- deo utilizando um método de decodificação de imagem móvel que cor- responde ao método de codificação de imagem móvel descrito na mo- dalidade acima, e um vídeo ou uma imagem estática incluído no arquivo de imagem móvel conectado é exibido no display ex458 através do con- trolador de display ex459. Mais ainda, o processador de sinal de áudio ex454 decodifica o sinal de áudio e emite áudio da unidade de saída de áudio ex457. Note que, como um fluxo em tempo real está se tornando cada vez mais popular, existem casos nos quais a reprodução do áudio pode ser socialmente inadequada dependendo do ambiente do usuário. Consequentemente, como um valor inicial, uma configuração na qual somente os dados de vídeo são reproduzidos, isto é, o sinal de áudio não é reproduzido, é preferível. O áudio pode ser sincronizado e repro- duzido somente quando uma entrada, tal como quando o usuário clica nos dados de vídeo, é recebida.
[0412] Apesar do smartphone ex115 ter sido utilizado no exemplo acima, três implementações são concebíveis: um terminal de transcep- tor que inclui tanto um codificador quanto um decodificador; um terminal de transmissor que inclui somente um codificador; e um terminal de re- ceptor que inclui somente um decodificador. Ainda, na descrição do sis- tema de transmissão digital, um exemplo é dado no qual dados multi- plexados obtidos como um resultado de dados de vídeo sendo multiple- xados com, por exemplo, dados de áudio, são recebidos ou transmiti- dos, mas os dados multiplexados podem ser dados de vídeo multiple- xados com dados outros que dados de áudio, tal como dados de texto relativos ao vídeo. Mais ainda, os próprios dados do vídeo ao invés dos dados multiplexados podem ser recebidos ou transmitidos.
[0413] Apesar do controlador principal ex460, que inclui uma CPU, ser descrito como controlando os processos de codificação ou decodifi- cação, os terminais frequentemente incluem GPUs. Consequente- mente, uma configuração é aceitável na qual uma grande área é pro- cessada de uma vez, fazendo utilização da capacidade de desempenho da GPU através de memória compartilhada pela CPU e GPU ou memó- ria que inclui um endereço que é gerenciado de modo a permitir uma utilização comum pela CPU e GPU. Isto torna possível encurtar o tempo de codificação, manter a natureza de tempo real do fluxo, e reduzir o retardo. Especificamente, o processamento relativo à estimativa de mo- vimento, filtragem de desbloqueio, deslocamento adaptável de amostra (SAO), e transformação / quantização pode ser efetivamente executado pela GPU ao invés da CPU em unidades de, por exemplo, imagens, todas de uma vez.
APLICABILIDADE INDUSTRIAL
[0414] A presente descrição é aplicável para, por exemplo, recepto- res de televisão, gravadores de vídeo digital, sistemas de navegação de carros, telefones móveis, câmeras digitais, câmeras de vídeo digitais, sistemas de teleconferência, espelhos eletrônicos, etc.
MARCAS DE REFERÊNCIA NOS DESENHOS 100 codificador
102 divisor 104 subtrator 106 transformador 108 quantizador 110 codificador de entropia 112, 204 quantizador inverso 114, 206 transformador inverso 116, 208 somador 118, 210 memória de blocos 120, 212 filtro de loop 122, 214 memória de quadros 124, 216 intrapreditor 126, 218 interpreditor 128, 220 controlador de predição 160, 260 circuito 162, 262 memória 200 decodificador 202 decodificador de entropia

Claims (18)

REIVINDICAÇÕES
1. Codificador que codifica um vídeo em um fluxo de bits uti- lizando uma imagem predita, caracterizado pelo fato de compreender: um circuito; e uma memória, em que, utilizando a memória, o circuito: gera uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no ví- deo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da primeira partição no vídeo, a lista tendo um tamanho de lista máximo e uma ordem da pluralidade de candidatos, pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos sendo dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição; seleciona o primeiro vetor de movimento da pluralidade de candidatos incluída na lista; codifica um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo; e gera a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
2. Codificador de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um pri- meiro tamanho de partição, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando o tamanho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
3. Codificador de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um pri- meiro tamanho de partição, e o tamanho de lista máximo é um segundo tamanho de lista menor do que o primeiro tamanho de lista quando o tamanho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
4. Codificador de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de lista máximo é dependente da forma de partição, e a forma de partição é uma de um quadrado, um retângulo, e um triângulo.
5. Codificador de acordo com qualquer uma das reivindica- ções 1 e 4, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um triângulo, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um triângulo.
6. Codificador de acordo com qualquer uma das reivindica- ções 1 e 4, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um qua- drado, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um quadrado.
7. Codificador de acordo com qualquer uma das reivindica- ções 1 a 6, caracterizado pelo fato de que o circuito: codifica o índice utilizando um primeiro número de bits quando o tamanho de lista máximo é um primeiro tamanho de lista; e codifica o índice utilizando um segundo número de bits maior do que o primeiro número de bits quando o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista.
8. Codificador de acordo com qualquer uma das reivindica- ções 1 a 7, caracterizado pelo fato de que a segunda partição é uma par- tição a qual é vizinha da primeira partição.
9. Decodificador que decodifica um vídeo de um fluxo de bits utilizando uma imagem predita, caracterizado pelo fato de que compre- ende: um circuito; e uma memória, em que, utilizando a memória, o circuito: gera uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no ví- deo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da primeira partição no vídeo, a lista tendo um tamanho de lista máximo e uma ordem da pluralidade de candidatos, pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos sendo dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição; decodifica um índice que indica o primeiro vetor de movi- mento dentre a pluralidade de candidatos na lista do fluxo de bits com base no tamanho de lista máximo;
seleciona o primeiro vetor de movimento da pluralidade de candidatos na lista utilizando o índice; e gera a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
10. Decodificador de acordo com a reivindicação 9, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um pri- meiro tamanho de partição, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando o tamanho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
11. Decodificador de acordo com a reivindicação 9, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando o tamanho de partição é um pri- meiro tamanho de partição, e o tamanho de lista máximo é um segundo tamanho de lista menor do que o primeiro tamanho de lista quando o tamanho de partição é um segundo tamanho de partição menor do que o primeiro tamanho de partição.
12. Decodificador de acordo com a reivindicação 9, caracterizado pelo fato de que o tamanho de lista máximo é dependente da forma de partição, e a forma de partição é uma de um quadrado, um retângulo, e um triângulo.
13. Decodificador de acordo com qualquer uma das reivindi- cações 9 e 12, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um triângulo, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um triângulo.
14. Decodificador de acordo com qualquer uma das reivindi- cações 9 e 12, caracterizado pelo fato de que o tamanho de lista máximo é um primeiro tamanho de lista quando a forma de partição é um qua- drado, e o tamanho de lista máximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista quando a forma de partição não é um quadrado.
15. Decodificador de acordo com qualquer uma das reivindi- cações 9 a 14, caracterizado pelo fato de que o circuito: decodifica o índice utilizando um primeiro número de bits quando o tamanho de lista máximo é um primeiro tamanho de lista; e decodifica o índice utilizando um segundo número de bits maior do que o primeiro número de bits quando o tamanho de lista má- ximo é um segundo tamanho de lista maior do que o primeiro tamanho de lista.
16. Decodificador de acordo com qualquer uma das reivindi- cações 9 a 15, caracterizado pelo fato de que a segunda partição é uma par- tição a qual é vizinha da primeira partição.
17. Método de codificação de codificar um vídeo em um fluxo de bits utilizando uma imagem predita, caracterizado pelo fato de que compreende: gerar uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no ví- deo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da primeira partição no vídeo, a lista tendo um tamanho de lista máximo e uma ordem da pluralidade de candidatos, pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos sendo dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição; selecionar o primeiro vetor de movimento da pluralidade de candidatos incluída na lista; codificar um índice que indica o primeiro vetor de movimento dentre a pluralidade de candidatos na lista no fluxo de bits com base no tamanho de lista máximo; e gerar a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
18. Método de decodificação de decodificar um vídeo de um fluxo de bits utilizando uma imagem predita, caracterizado pelo fato de que compreende: gerar uma lista a qual inclui uma pluralidade de candidatos para um primeiro vetor de movimento para uma primeira partição no ví- deo, e no qual a pluralidade de candidatos inclui um candidato o qual é derivado de um segundo vetor de movimento de uma segunda partição diferente da primeira partição no vídeo, a lista tendo um tamanho de lista máximo e uma ordem da pluralidade de candidatos, pelo menos um do tamanho de lista máximo ou da ordem da pluralidade de candidatos sendo dependente de pelo menos um de um tamanho de partição ou uma forma de partição da primeira partição; decodificar um índice que indica o primeiro vetor de movi- mento dentre a pluralidade de candidatos na lista do fluxo de bits com base no tamanho de lista máximo; selecionar o primeiro vetor de movimento da pluralidade de candidatos na lista utilizando o índice; e gerar a imagem predita para a primeira partição utilizando o primeiro vetor de movimento.
Petição 870200133624, de 23/10/2020, pág. 12/178
DIVISOR TRANSFORMADOR CODIFICADOR
QUANTIZADOR
DE ENTROPIA
QUANTIZADOR
INVERSO 1/36
TRANSFORMADOR
INVERSO
CONTROLADOR
DE PREDIÇÃO INTRAPRE- MEMÓRIA
DITOR DE BLOCOS
MEMÓRIA INTRAPRE- FILTRO
DE
DITOR DE LOOP
QUADROS
TIPO DE
FUNÇÕES DE BASE
TRANSFORMADA
ONDE
ONDE
0: PLANO 1: DC
INÍCIO
OBTER MV DE BLOCO ESQUERDO VIZINHO OBTER IMAGEM DE PREDIÇÃO POR MV_L
CORRIGIR IMAGEM DE PREDIÇÃO POR SOBREPOSIÇÃO PONDERADA DE PRED_L
OBTER MV DE BLOCO SUPERIOR VIZINHO OBTER IMAGEM DE PREDIÇÃO POR MV_U
CORRIGIR IMAGEM DE PREDIÇÃO POR SOBREPOSIÇÃO PONDERADA DE PRED_U
FIM
Petição 870200133624, de 23/10/2020, pág. 18/178
IMAGEM DE REFERÊNCIA IMAGEM CORRENTE
BLOCO SUPERIOR
VIZINHO
BLOCO CORRETE 7/36
BLOCO ESQUERDO
VIZINHO
IMAGEM
DE PREDIÇÃO
FINAL
INÍCIO
INICIAR LOOP DE PROCESSAMENTO DE FRUC
GERAR LISTA DE CANDIDATOS DE MV
SELECIONAR MELHOR MV CANDIDATO
PESQUISAR VIZINHANÇA DE
MELHOR MV CANDIDATO
TERMINAR LOOP DE PROCESSAMENTO
DE FRUC
FIM
DE MOVIMENTO
TRAJETÓRIA
GABARITO
(IMAGEM B)
IMAGEM DE REFERÊNCIA
IMAGEM CORRENTE CODIFICADA Petição 870200133624, de 23/10/2020, pág. 24/178 13/36
MESCLAR LISTA PREDITOR DE PREDITOR DE PREDITOR DE PREDITOR DE PREDITOR PREDITOR
DE PREDITORES MV MV MV MV PREDITOR DE
DE CANDIDATOS DE MV DE MV ESPACIALMENTE ESPACIALMENTE ESPACIALMENTE ESPACIALMENTE MV ZERO 7 DE MV VIZINHO 1 VIZINHO 2 VIZINHO 3 COMBINADO 5 COMBINADO 6 VIZINHO 4
SELECIONAR UM PREDITOR DE MV DE UMA LISTA DE PREDITORES DE MV E ATRIBUIR COMO MV PARA BLOCO CORRENTE
Petição 870200133624, de 23/10/2020, pág. 25/178 GABARITO GERADO COM BASE EM PIXEL DE REFERÊNCIA DE MV CANDIDATO (L0) E PIXEL DE REFERÊNCIA DE MV CANDIDATO (L1)
MV CANDIDATO (L0) MV CANDIDATO 14/36 (L1)
BLOCO CORRENTE
PRIMEIRA IMAGEM DE IMAGEM CORRENTE SEGUNDA IMAGEM REFERÊNCIA (L0) DE REFERÊNCIA (L1)
IMAGEM DE REFERÊNCIA IMAGEM CORRENTE
BLOCO CORRENTE
REGIÕES DE
REFERÊNCIA
CIRCUNDANTES
PARA CORREÇÃO
DE LUMINÂNCIA
CALCULAR
PARÂMETRO DE
CORREÇÃO DE
LUMINÂNCIA
PROCESSAMENTO
DE CORREÇÃO
DE LUMINÂNCIA
IMAGEM DE REFERÊNCIA IMAGEM DE PREDIÇÃO
Petição 870200133624, de 23/10/2020, pág. 27/178
DECODIFICADOR QUANTIZADOR TRANSFORMADOR FILTRO
DE ENTROPIA INVERSO INVERSO DE LOOP 16/36
CONTROLADOR
DE PREDIÇÃO INTRA- MEMÓRIA
PREDITOR DE BLOCOS INTRA- MEMÓRIA
PREDITOR DE QUADROS
INÍCIO
DERIVAR NÚMERO MÁXIMO COM BASE EM
TAMANHO DE PARTIÇÃO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO COM BASE EM NÚMERO MÁXIMO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO CODIFICAR, EM FLUXO DE BITS, PARÂMETRO DE ÍNDICE
DE MESCLAGEM QUE INDICA VETOR DE MOVIMENTO
COM BASE EM NÚMERO MÁXIMO DERIVADO
CODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
INÍCIO
DERIVAR NÚMERO MÁXIMO COM BASE NO
TAMANHO DE PARTIÇÃO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO COM BASE NO NÚMERO
MÁXIMO DECODIFICAR, DO FLUXO DE BITS, PARÂMETRO DE
ÍNDICE DE MESCLAGEM QUE INDICA VETOR DE
MOVIMENTO COM BASE EM NÚMERO MÁXIMO DERIVADO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO COM BASE
EM PARÂMETRO DE ÍNDICE DE MESCLAGEM
DECODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
TAMANHO DE PARTIÇÃO = M x N TAMANHO DE PARTIÇÃO = M/2 x N/2
NÚMERO MÁXIMO DE NÚMERO MÁXIMO DE
CANDIDATOS DE VETOR CANDIDATOS DE VETOR DE MOVIMENTO=6 DE MOVIMENTO=6 TAMANHO DE PARTIÇÃO = 2N x N TAMANHO DE PARTIÇÃO = N x N
NÚMERO MÁXIMO DE NÚMERO MÁXIMO DE
CANDIDATOS DE VETOR CANDIDATOS DE VETOR DE MOVIMENTO=6 DE MOVIMENTO=4
INÍCIO
DERIVAR NÚMERO MÁXIMO COM BASE NA
FORMA DE PARTIÇÃO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO COM BASE NO
NÚMERO MÁXIMO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO CODIFICAR, EM FLUXO DE BITS, PARÂMETRO DE ÍNDICE
DE MESCLAGEM QUE INDICA VETOR DE MOVIMENTO
COM BASE EM NÚMERO MÁXIMO DERIVADO
CODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
INÍCIO
DERIVAR NÚMERO MÁXIMO COM BASE EM
TAMANHO DE PARTIÇÃO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO COM BASE EM NÚMERO MÁXIMO DECODIFICAR, DO FLUXO DE BITS, PARÂMETROS DE
ÍNDICE DE MESCLAGEM QUE INDICA VETOR DE
MOVIMENTO COM BASE EM NÚMERO MÁXIMO DERIVADO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO COM BASE
EM PARÂMETRO DE ÍNDICE DE MESCLAGEM
DECODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
PARTIÇÃO RETANGULAR PARTIÇÃO TRIANGULAR
NÚMERO MÁXIMO DE NÚMERO MÁXIMO DE
CANDIDATOS DE VETOR CANDIDATOS DE VETOR DE MOVIMENTO=8 DE MOVIMENTO=6
PARTIÇÃO NÃO PARTIÇÃO QUADRADA DE N x N QUADRADA DE M x N
NÚMERO MÁXIMO DE NÚMERO MÁXIMO DE
CANDIDATOS DE VETOR CANDIDATOS DE VETOR DE MOVIMENTO=8 DE MOVIMENTO=6
INÍCIO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO QUE INCLUI CANDIDATOS DE
VETOR DE MOVIMENTO EM DIFERENTE ORDEM A QUAL
É DEPENDENTE DO TAMANHO DE PARTIÇÃO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO CODIFICAR, EM FLUXO DE BITS, PARÂMETRO DE ÍNDICE
DE MESCLAGEM QUE INDICA VETOR DE MOVIMENTO
CODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
INÍCIO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO QUE INCLUI CANDIDATOS DE
VETOR DE MOVIMENTO EM DIFERENTE ORDEM A QUAL
É DEPENDENTE DO TAMANHO DE PARTIÇÃO DECODIFICAR, DE FLUXO DE BITS, PARÂMETRO DE ÍNDICE
DE MESCLAGEM QUE INDICA VETOR DE MOVIMENTO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO COM BASE EM
PARÂMETRO DE ÍNDICE DE MESCLAGEM
DECODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
PARTIÇÃO RETANGULAR PARTIÇÃO RETANGULAR DE 2M x 2N DE M x N
LISTA LISTA
PARTIÇÃO NÃO PARTIÇÃO QUADRADA DE M x N QUADRADA DE M x M
LISTA LISTA
INÍCIO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO QUE INCLUI CANDIDATOS DE
VETOR DE MOVIMENTO EM ORDEM A QUAL É
DEPENDENTE DE FORMA DE PARTIÇÃO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO CODIFICAR, EM FLUXO DE BITS, PARÂMETRO DE ÍNDICE
DE MESCLAGEM QUE INDICA VETOR DE MOVIMENTO
CODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
INÍCIO GERAR, PARA PARTIÇÃO, LISTA DE CANDIDATOS DE
VETOR DE MOVIMENTO QUE INCLUI CANDIDATOS DE
VETOR DE MOVIMENTO EM ORDEM A QUAL É
DEPENDENTE DE FORMA PARTIÇÃO DECODIFICAR, DE FLUXO DE BITS, PARÂMETRO DE ÍNDICE
DE MESCLAGEM QUE INDICA VETOR DE MOVIMENTO
SELECIONAR VETOR DE MOVIMENTO DE LISTA DE
CANDIDATOS DE VETOR DE MOVIMENTO COM BASE
NO PARÂMETRO DE ÍNDICE DE MESCLAGEM
DECODIFICAR PARTIÇÃO UTILIZANDO VETOR DE
MOVIMENTO SELECIONADO
FIM
PARTIÇÃO RETANGULAR PARTIÇÃO TRIANGULAR
LISTA LISTA
PARTIÇÃO NÃO PARTIÇÃO NÃO QUADRADA DE M x N QUADRADA DE M x N
LISTA LISTA
CODIFICADOR
CIRCUITO
MEMÓRIA
INÍCIO
GERAR LISTA DE CANDIDATOS A QUAL INCLUI
CANDIDATOS DE VETOR DE MOVIMENTO E É
DEPENDENTE DE PELO MENOS UM DE TAMANHO
OU FORMA DE PARTIÇÃO
SELECIONAR VETOR DE MOVIMENTO DE CANDIDATOS
DE VETOR DE MOVIMENTO NA LISTA
CODIFICAR PARÂMETRO DE ÍNDICE DE MESCLAGEM
QUE INDICA VETOR DE MOVIMENTO
GERAR IMAGEM DE PREDIÇÃO UTILIZANDO
VETOR DE MOVIMENTO
FIM
DECODIFICADOR
CIRCUITO
MEMÓRIA
INÍCIO
GERAR LISTA A QUAL INCLUI CANDIDATOS DE VETOR
DE MOVIMENTO E É DEPENDENTE DE PELO MENOS
UM DE TAMANHO OU FORMA DE PARTIÇÃO
CODIFICAR PARÂMETRO DE ÍNDICE DE MESCLAGEM
QUE INDICA VETOR DE MOVIMENTO
SELECIONAR VETOR DE MOVIMENTO DE CANDIDATOS
DE VETOR DE MOVIMENTO NA LISTA
GERAR IMAGEM DE PREDIÇÃO UTILIZANDO
VETOR DE MOVIMENTO
FIM
AVIÃO Petição 870200133624, de 23/10/2020, pág. 42/178
SATÉLITE
SERVIDOR DE FLUXO
COMPUTADOR 31/36
DISPOSITIVO DE JOGOS
INTERNET
CÂMERA
UTENSÍLIO
DOMÉSTICO
SMARTPHONE
PROVEDOR DE SERVIÇO
DE INTERNET
CAMADA DE BASE
MELHORAMENTO
CAMADA DE
TEMPORAL
CAMADA
Petição 870200133624, de 23/10/2020, pág. 44/178
CAMADA
TEMPORAL UNIDADE DE ACESSO
CAMADA DE
MELHORAMENTO 33/36
CAMADA DE BASE
CONTROLADOR CADA
CIRCUITO DE FONTE
DE DISPLAY COMPONENTE
DE ALIMENTAÇÃO
MODULADOR CONTROLADOR
TRANSMISSOR / DEMODU PRINCIPAL / RECEPTOR
LADOR
MEMÓRIA
FENDA MULTIPLEXADOR /
DEMULTIPLEXADOR
INTERFACE
PROCESSADOR CÂMERA
DE CÂMERA
DE SINAL
UNIDADE DE DE VÍDEO
ENTRADA
DE ÁUDIO CONTROLADOR PROCE- INTERFACE
DE ENTRADA DE
SSADOR DE
INTERFACE
DE
UNIDADE DE SINAL DE USUÁRIO
DE USUÁRIO
SAÍDA DE ÁUDIO ÁUDIO
BR112020021718-2A 2018-05-17 2019-05-14 Codificador, decodificador, método de codificação e método de decodificação BR112020021718B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862672801P 2018-05-17 2018-05-17
US62/672,801 2018-05-17
PCT/JP2019/019072 WO2019221103A1 (ja) 2018-05-17 2019-05-14 符号化装置、復号装置、符号化方法及び復号方法

Publications (2)

Publication Number Publication Date
BR112020021718A2 true BR112020021718A2 (pt) 2021-01-26
BR112020021718B1 BR112020021718B1 (pt) 2024-01-16

Family

ID=68540657

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020021718-2A BR112020021718B1 (pt) 2018-05-17 2019-05-14 Codificador, decodificador, método de codificação e método de decodificação

Country Status (7)

Country Link
US (4) US11438621B2 (pt)
JP (3) JP7001822B2 (pt)
KR (2) KR102470053B1 (pt)
CN (1) CN112119637B (pt)
BR (1) BR112020021718B1 (pt)
MX (1) MX2020012042A (pt)
WO (1) WO2019221103A1 (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117834910A (zh) * 2018-07-02 2024-04-05 英迪股份有限公司 对视频进行解码的方法和对视频进行编码的方法
MX2021000265A (es) * 2018-07-17 2021-03-25 Panasonic Ip Corp America Prediccion de vectores de movimiento para codificacion de video.
CN111418208B (zh) * 2018-11-06 2023-12-05 北京字节跳动网络技术有限公司 用于几何分割的权重推导
JP2024006359A (ja) * 2022-07-01 2024-01-17 Kddi株式会社 画像復号装置、画像復号方法及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101742449B1 (ko) * 2011-03-08 2017-05-31 가부시키가이샤 제이브이씨 켄우드 동화상 부호화 장치, 동화상 부호화방법 및 동화상 부호화 프로그램, 및 동화상 복호 장치, 동화상 복호 방법 및 동화상 복호 프로그램
CN107181961A (zh) * 2011-05-31 2017-09-19 Jvc 建伍株式会社 动图像编码装置、动图像编码方法以及记录介质
TWI586155B (zh) * 2011-09-28 2017-06-01 Jvc Kenwood Corp A motion picture decoding apparatus, a motion picture decoding method, and a recording medium
WO2015006884A1 (en) 2013-07-19 2015-01-22 Qualcomm Incorporated 3d video coding with partition-based depth inter coding
CN103747258B (zh) * 2014-01-27 2015-02-04 中国科学技术大学 一种高性能视频编码标准的加密处理方法
CN114222140A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 视频信号的解码方法
US11503305B2 (en) 2016-08-03 2022-11-15 Kt Corporation Method and apparatus for processing video signal
CN110089115B (zh) * 2016-08-26 2021-07-06 夏普株式会社 图像解码装置、图像编码装置
WO2019151279A1 (ja) * 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Also Published As

Publication number Publication date
US20230262255A1 (en) 2023-08-17
US20210136402A1 (en) 2021-05-06
JP2022051735A (ja) 2022-04-01
CN112119637B (zh) 2024-03-22
US20220360815A1 (en) 2022-11-10
US20240179341A1 (en) 2024-05-30
WO2019221103A1 (ja) 2019-11-21
US11438621B2 (en) 2022-09-06
JP7001822B2 (ja) 2022-01-20
KR20210008482A (ko) 2021-01-22
MX2020012042A (es) 2021-01-29
JP2023165866A (ja) 2023-11-17
JPWO2019221103A1 (ja) 2021-03-18
US11930206B2 (en) 2024-03-12
KR20220159483A (ko) 2022-12-02
US11665366B2 (en) 2023-05-30
CN112119637A (zh) 2020-12-22
BR112020021718B1 (pt) 2024-01-16
KR102470053B1 (ko) 2022-11-23

Similar Documents

Publication Publication Date Title
US11812049B2 (en) Image encoder and related non-transitory computer readable medium for image decoding
US20230319300A1 (en) System and method for video coding
BR112020002254A2 (pt) codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem
US11463725B2 (en) Encoder, decoder, encoding method, and decoding method
BR112020010935A2 (pt) dispositivo de codificação de imagem, dispositivo de decodificação de imagem, método de codificação de imagem, e método de decodificação de imagem
BR112020002205A2 (pt) codificador de imagem, decodificador de imagem, método de codificação de imagem e método de decodificação de imagem
US11949884B2 (en) Encoder, decoder, encoding method, and decoding method
BR112020000876A2 (pt) dispositivo codificador, dispositivo decodificador, método de codificação, e método de decodificação
ES2917553T3 (es) Dispositivo de codificación, procedimiento de codificación, dispositivo de decodificación y procedimiento de decodificación
BR112020001579A2 (pt) codificador, decodificador, método de codificação, método de decodificação
BR112020013554A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
BR112021004822A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112020021718A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112021014711A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
US11395012B2 (en) Encoder, decoder, encoding method, and decoding method of partitioning a picture using selective partition mode
BR112020021187A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
BR112021005443A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
US20230388536A1 (en) Encoder, decoder, encoding method, and decoding method
BR112021009596A2 (pt) codificador, decodificador, método de codificação, e método de decodificação
US20240073441A1 (en) Encoder, decoder, encoding method, and decoding method
BR112021011019A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
BR112021012769A2 (pt) Codificador, decodificador, método de codificação e método de decodificação
US20190273938A1 (en) Encoding method, decoding method, encoder, and decoder
BR112021001890A2 (pt) codificador, decodificador, método de codificação e método de decodificação
BR112020016755A2 (pt) Codificador, decodificador, método de codificação e método de decodificação

Legal Events

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 14/05/2019, OBSERVADAS AS CONDICOES LEGAIS